Технология построения корпоративного Web-сайта
Рассматриваются основные требования к современному корпоративному сайту, предлагается подход к организации структуры сайта и технические подходы к его построению.
A technology of building of a corporate web-site.pdf Одной из задач при построении автоматизированнойкорпоративной информационной системы является по-строение интернет-представительства, или Web-сайта.Идея предлагаемой технологии заключается не только втом, чтобы создать представительство организации в сетиИнтернет, содержащее статичную часть, но и тесно интег-рировать его функции с остальными составляющими ин-формационной системы, предоставить возможность дина-мичного изменения структуры, степени доступности и ин-формационной составляющей в соответствии с нуждами ор-ганизации.ТРЕБОВАНИЯ К СОВРЕМЕННЫМ САЙТАМК современным корпоративным сайтам предъяв-ляются следующие требования:- единое внешнее оформление для всех генерируе-мых страниц (цветовая гамма, символика организа-ции, пространственное расположение элементовстраниц);- единая и гибкая структура сайта;- единообразие навигации по сайту, наличие картысайта;- удобочитаемость и интуитивная ясность генери-руемых ссылок;- минимальные затраты на поддержку, админист-рирование и развитие сайта;- наличие внешней (пользовательской) и внутрен-ней (корпоративной) частей сайта;- возможность заполнения страниц с использова-нием Web-браузера, минимальные требования к аппа-ратно-программной оснащенности рабочего места;- возможность посещения сайта с помощью всегомножества существующих браузеров;- наличие гибко настраиваемой системы безопас-ности (аутентификация пользователей, авторизациядоступа к структурным и информационным элемен-там, возможность работы в защищенных сеансах(SSL, PKI));- возможность оценки и контроля степени акту-альности предоставляемой информации (отображениедаты последнего изменения и ответственного за раз-дел);- распределенность источников информации;- тесная интеграция с существующими средствамиавтоматизации делопроизводства и учета;- открытость встроенных программных средств,возможность обращения к открытым программнымсредствам сторонних производителей (технологииJava VM, COM, CORBA);- возможность функционирования сайта в кла-стерном режиме (масштабируемость, отказоустойчи-вость и распределение нагрузки);- возможность полнотекстового поиска по вы-бранным разделам или по сайту в целом;- высокая производительность обслуживанияпользователей.ИНСТРУМЕНТАРИЙНа текущий момент на рынке корпоративных сис-тем, включающих поддержку служб Интернета, пред-ставлено множество продуктов и надстроек над суще-ствующими СУБД:- Novell exteNd;- Netscape FastTrack Server, Netscape Enterprise;- Microsoft Internet Information Server, .NET;- Oracle 9i;- Apache Web Server;- IBM Lotus Domino.Все эти продукты имеют специфическую ориента-цию, но с точки зрения построения Web-сайтов ихможно отнести к одному классу.Клиент-серверная среда Lotus Domino/Notes, лидерсреди группового программного обеспечения, ориен-тирована, в общем случае, на приложения для автома-тизации документооборота и деловых процессов [1].Эта платформа включает в себя:- интегрированную среду (Integrated DevelopmentEnvironment) для быстрой разработки приложений(Rapid Application Development), позволяющую быст-ро разрабатывать и разворачивать приложения и под-держивающую открытые интерфейсы COM, CORBA,языки Java и JavaScript;- механизм наследования программных элементов(форм, подформ, видов, агентов и т.д.), позволяющийповторное использование разработанных структур-ных элементов и автоматическое их наследование,что решает задачу построения единого пользователь-ского интерфейса и единого внешнего оформления;- встроенные средства репликации, позволяющиесоздавать распределенные источники информации савтоматической актуализацией данных;- встроенную службу HTTP для генерированиястраниц, соответствующих объектам Domino, вклю-чающую виртуальную машину Java (JVM);- встроенный механизм индексирования информа-ции, содержащейся в документах для последующегополнотекстового поиска;- встроенную систему безопасности, использующуюсимметричные и асимметричные алгоритмы шифрова-ния и электронной подписи, протоколы аутентификации(SSL) и поддерживающую инфраструктуру PKI;- надстройки, позволяющие интегрировать разра-ботанные приложения с реляционными источникамиданных;- службы для создания кластеров уровня приложе-ний Domino и интернет-кластеров.Таким образом, выбор в качестве основы для по-строения Web-сайта Lotus Domino удовлетворяетбольшинству из предъявляемых требований.Остальные требования удовлетворяются техноло-гией построения сайта с использованием встроенныхсредств разработки и международных стандартов Ин-тернета.Инструментами при разработке Web-сайта в этойсреде являются:- виды с критерием отбора документов и сорти-ровкой в колонках;- формы и подформы, являющиеся внешней обо-лочкой для документов и несущие функциональныесоставляющие интерфейса пользователя;- агенты, запускающиеся по команде из формы, ли-бо при наступлении определенного события (измене-ние документов в базе, сохранение Web-документа);- язык @-формул, являющийся наиболее произво-дительным по сравнению с остальными языками;- язык Lotus Script версии 3.1, менее производи-тельный, чем язык @-формул, но более гибкий в слу-чае, когда необходимо произвести достаточно слож-ные действия над большим количеством документов;- язык разметки гипертекста HTML и таблицы кас-кадных стилей CSS не являются встроенными средст-вами Domino, но их можно включать в генерируемыестраницы;- язык JavaScript, позволяющий создавать интерак-тивные приложения для браузера и клиента Notes [2].ЛОГИЧЕСКАЯ СТРУКТУРА САЙТАЛогическая структура сайта в основном определя-ется организационной структурой и сферами деятель-ности организации. В большинстве случаев ее утвер-ждает руководитель организации.Существуют определенные требования к построе-нию структур, обеспечивающие наглядное представ-ление элементов, порядка их следования друг за дру-гом и вложенности.Одно из таких требований - «7±2» - задает коли-чество элементов на уровне. Естественно, существуюти исключения из этого правила (к примеру, в разд.«Подразделения организации» может быть 10 и болееподразделений).Другое требование продиктовано техническимисредствами просмотра сайтов. Это «правило трехкликов», требующее, чтобы до необходимой пользо-вателю информации он мог «добраться», нажав не бо-лее трех раз на элемент системы навигации.Оба эти требования ограничивают количество эле-ментов на уровне, а также высоту дерева рубрикации.Формально логическую структуру сайта можнопредставить либо в виде дерева (с неявным корневымэлементом «стартовая страница»), либо в виде леса,деревьями в котором являются рубрики сайта первогоуровня.Для иллюстрации логической структуры и ее реа-лизации в виде структурных элементов будем исполь-зовать следующий фрагмент структуры сайта:1. Общие сведения1.1. Приветствие ректора1.2. Устав ТГУ1.3. Ученый совет ТГУ1.3.1. Состав1.3.2. Комиссии1.3.3. Решения1.3.4. Объявления о заседаниях…1.4. Ректорат1.5. Структура университета…2. Абитуриенту2.1. Факультеты, специальности2.2. Уровни образования и формы обучения2.3. Правила приема2.4. Вступительные экзамены…Для представления логической структуры в архи-тектуре сайта предусмотрены соответствующие «эле-менты структуры», исполненные в виде документов,создаваемых на основе формы «Элемент структуры».АРХИТЕКТУРА САЙТАОснову архитектуры сайта составляет главная базаданных (core.nsf), содержащая как логическую струк-туру сайта, так и архитектурные элементы, общие длявсех страниц сайта (рис. 1 ).Рис. 1. Логическая структура сайтаВсе остальные базы сайта являются специфичны-ми для конкретных подразделений (информационно-рекламный отдел, ученый совет и др.), используютнекоторые общие элементы (на основе механизма на-следования дизайна) и подключаются к этой главнойбазе регистрацией в ней соответствующих ссылок.Структура сайта представлена в виде иерархии до-кументов с максимальной степенью вложенности 4(что, вообще говоря, продиктовано существующейструктурой сайта и удобством навигации, нежелипрограммными ограничениями).Как уже было сказано выше, элементы структурыслужат для построения иерархии разделов сайта и ав-томатического создания удобочитаемых ссылок. Кро-ме того, сам структурный элемент может содержать иконечную информацию, отображаемую посетителюсайта в браузере.Далее рассмотрим внутреннюю реализацию эле-мента структуры.Поля элемента структурыФорма структурного элемента (рис.2) содержит поля:- Имя документа. Это имя будет отображаться взаголовке документа и будет включено в тег .- Уровень документа. Это многозначное поле, со-держащее последовательный список имен документовродителей - путь от корня сайта до этого документа.Рис. 2. Форма структурного элементаНапример, уровень у страницы «Объявления о за-седаниях» содержит «Общие сведения :: Ученый со-вет ТГУ».- Имя внутренней ссылки. Обязательное поле, со-стоящее из латинских букв и (при необходимости)арабских цифр, для поиска этого документа средидругих документов на своем уровне иерархии. На-пример, для элемента «Объявления о заседаниях» науровне common_sci_counsil внутренней ссылкой будетявляться «announces».При отображении списков документов в браузереDomino генерируют неудобочитаемые ссылки типа:http://ic1004.ic.tsu.ru/webdesign/tsu/core.nsf/31D5942888B0C3E1C6256CC200499D2A/B5802D3C02007CE6C6256CC400452A93?OpenDocument. Этот способ фор-мирования внутренней ссылки не только исполняетпоисковую функцию, но и позволяет решить пробле-му неудобочитаемости [3]. Полная ссылка будет вы-глядеть следующим образом:http://ic1004.ic.tsu.ru/WebDesign/TSU/core.nsf/structurl/common_sci_counsil_announce.- Тип внешней ссылки:абсолютная: страница находится в текущей базеданных (core);относительная:1) если страница находится в другой (отличной отcore) базе данных, дополнительно указывается путь кэтой базе данных;2) если, более того, страница находится на другом(отличном от текущего) сайте, тогда при регистрациидополнительно указывается имя этого сайта.- Полная внутренняя ссылка. Эта ссылка состоит изпоследовательно располагающихся имен внутреннихссылок родительских документов, разделенных симво-лом подчерка «_». Например, страница, содержащаяобъявления о заседаниях ученого совета, имеет полнуювнутреннюю ссылку common_sci_counsil_announces.- Порядковый номер на уровне. Уникальность до-кументов структуры в пределах всей сердцевиннойбазы данных (и, следовательно, в пределах всего сай-та) обеспечена требованием уникальности докумен-тов на каждом уровне и способом построения полныхвнутренних ссылок. Порядок же расположения, внезависимости от лексикографического порядка назва-ний страниц и внутренних ссылок, определяется от-дельным полем - порядковый номер на уровне.Именно по значению в этом поле будет осуществ-ляться сортировка элементов структуры (рис. 3). Еслиэто поле не заполнено, то при сортировке вместо егозначения подставляется значение 99, сдвигая страни-цу в самый низ относительно других.порядковыйномеримястраницывнутренняяссылкаРис. 3. Элементы структуры сайта- Отображение на первой странице. Для созда-ния динамической первой страницы в каждом элемен-те структуры задается, в которой из двух колонок бу-дет видно название и ссылка на этот элемент. Такойспособ организации первой страницы напоминаеткарту сайта, если большинство структурных элемен-тов отображены на ней. Положение элементов в пре-делах колонки задается структурными и ссылочнымиполями, указанными выше.- Авторы. Это поле с разделяемым доступом ау-тентифицированных пользователей к документам. Всепользователи, перечисленные в этом поле, имеютправо изменять этот элемент структуры.- Автор. Отдельное поле, хранящее имя пользова-теля, редактировавшего документ последним (рис. 4).Рис. 4. Отображение контактной информацииответственного в ИнтернетеНа основе этого поля и документа информации обответственном на странице выводится информация одате и времени последнего изменения и ФИО, струк-турное подразделение, должность и контактная ин-формация ответственного.- Читатели. Поле для распределения доступа начтение документов аутентифицированными пользова-телями. Это поле содержит в обязательном порядкеанонимного пользователя (Anonymous), чтобы обыч-ный (не аутентифицированный) пользователь сайтамог получить доступ к документу.- Степень актуальности. Редактируемое поле длякорректора сайта или контролирующего наполнениесайта. Оно может содержать одно из трех значений:1) не заполнено. Низшая степень актуальности.Страница должна быть немедленно заполнена либоудалена, если, конечно, этот структурный элемент неописывает внешнюю ссылку и по логике не долженсодержать тела страницы;2) заполнено. Средняя степень актуальности. Стра-ница содержит определенную информацию, но нельзяговорить о ее актуальности и непротиворечивости;3) заполнено и актуально. Информация была за-полнена исполнителем и проверена корректором.Это поле на страницах не отображается никоимобразом, оно используется только в автоматизирован-ном рабочем месте корректора.- Тело страницы. Это основное форматируемое по-ле, которое содержит всю информацию страницы. Этополе может содержать как обычный текст, так и форма-тированный текст, таблицы, изображения, ссылки и объ-екты. Это поле и будет доступно интернет-браузеру.ПодформыУпомянутая выше возможность наследовать эле-менты форм была использована при создании под-форм. Созданные подформы верхней и нижней частейотображаемых страниц были объявлены как насле-дуемые всеми другими базами данных.Количество подформ, включаемых в формы, опреде-ляет, с одной стороны, гибкость программирования фор-мы и высокую объектную степень абстракции, с другойстороны, производительность приложения в целом, по-скольку при отображении формы тратится время на вы-борку подформ [4]. Для достижения гибкости внешнегоисполнения с минимальными потерями производитель-ности было создано всего две подформы:- верхняя часть (top). Эта часть содержит началоразметки, стартовые теги таблицы, вычисление оглав-ления разделов первого уровня, если текущий раздел -первого уровня, то вычисление оглавления этого раз-дела по ключу - имени текущего раздела и т.д. до чет-вертого уровня. Оглавление разделов отображается налюбой странице, оглавление подразделов - в зависимо-сти от того, на каком уровне пользователь находится.Здесь же располагается открывающий тег таблич-ной ячейки, содержащей основное тело документа;- нижняя часть (bottom). Эта часть обычно сле-дует за телом документа, начинаясь с закрывающеготега табличной ячейки, содержащей основноетело документа. Здесь вычисляется информация обответственном на основе имени пользователя, зане-сенного в документ при записи документа в поле "ав-тор". Завершается описание нижней части закрываю-щими табличными тегами и традиционной информа-цией об авторском праве.Элементы оформленияНаряду с элементами структуры в главной базеданных были созданы также элементы оформления ввиде документов, имеющих имя и набор присоеди-ненных файлов, либо исходный текст и созданных поотдельной форме. Эти элементы могут содержать:- присоединенные изображения. В этих докумен-тах хранятся графические изображения (рамки, знач-ки, баннеры, логотипы) (рис.5);- присоединенные файлы. Некоторые, необходи-мые для статической части, файлы, присоединенные идоступные для скачивания ;- код HTML. Эти документы не содержат присое-диненных файлов, в них находится исходный текстHTML, используемый модульно при формированиистраниц;Рис. 5. Форма элемента оформления- код JavaScript. Документы без присоединенныхфайлов, в них, так же, как в HTML-коде, приводитсяисходный текст на языке JavaScript (описание пере-менных и функций и пр.). С точки зрения оптимиза-ции загрузки отображаемых данных в браузер, такиеописания можно также помещать в присоединенныефайлы с расширением .js - тогда браузер расцениваеттакой модуль как файловый ресурс и в состоянии егокэшировать;- код CSS, XSL. Так же, как HTML- и JavaScript-документы, эти элементы дизайна содержат описаниятаблиц каскадных стилей, классов, псевдоклассов.Страницы обращаются к таким элементам посредст-вом тега [5].Виды для поиска и заполненияСтруктурные элементы сайта хранятся в главнойбазе данных. В качестве поисковых ключей в виде ис-пользуются поля внутренних ссылок. При генерирова-нии страниц осуществляются запросы к этим видам.Генерируемая страница запрашивает по ключу назва-ние ссылки и саму ссылку, в зависимости от поля "типссылки". Если ссылка внутренняя, то конечная полнаяссылка формируется приписыванием пути до сердце-винной базы от корня сайта без указания имени сайта ипрефикса протокола "http://". Если ссылка внешняя,подставляется значение из поля внешней ссылки.Список разделов. В этом виде отбираются доку-менты первого уровня (т.е. те, у которых поле уровняпустое) (рис.6).Рис. 6. Список разделовВид используется страницами при генерации на-вигации по разделам сайта. Первая колонка - ключе-вая, по ней делается запрос. Вторая и третья колонкивозвращают соответственно название раздела (имястраницы в структуре) и ссылку на раздел (внутрен-нюю или внешнюю).Оглавление раздела. В этом виде отбираются вседокументы структуры, у которых многозначное полеуровня содержит лишь одно значение, т.е. все элемен-ты второго уровня. Первая, ключевая колонка содер-жит имя родительского раздела (раздела первогоуровня) с тем, чтобы по ключу-имени раздела можнобыло получить список документов-подразделов за-прашиваемого раздела.Вторая и третья колонки возвращают соответст-венно имя подразделов и их ссылки (так же - внут-ренние или внешние) (рис.7).Рис. 7. Оглавление разделаОглавление подраздела. Еще один вид, отсекаю-щий только документы структуры третьего уровня,т.е. документы, у которых поле уровня содержит ров-но два значения - название корневого раздела и егоподраздела.Ввод данных. Это рабочий вид в головной базеданных, предназначенный для работы ответственныхза заполнение частей сайта. Поскольку каждая страни-ца имеет поля типа «читатели», то аутентифицирован-ные пользователи в одном и том же виде будут видетьтолько те документы, которые доступны им для редак-тирования. Такой способ организации рабочих местдля ввода информации позволяет создать только одинвид для всех пользователей, распределение доступапроисходит автоматически на уровне документов.Web-интерфейс рабочего места пользователяпредставляет собой многооконную среду, где в верх-нем фрейме предоставляется возможность редактиро-вать документы, а в нижнем открывается библиотекаграфических ресурсов (рис.8).Рис. 8. Web-интерфейс пользователя. Страница сайтав режиме просмотра в верхнем фреймеДизайн страниц, единый в пределах всего сайта,определяет форму для ввода, от пользователя же тре-буется знание основных тегов разметки HTML. Биб-лиотека изображений физически находится в другойбазе данных и является общей для всех авторов.АгентыАгенты используются при построении сайта в рабо-чих местах пользователей, заполняющих сайт. Агентзапускается по определенному событию, например,при попытке сохранения документа в браузере.В частности, агенты используются при присоеди-нении файлов к документам - документов Word илифайлов изображений (рис.9). В качестве языка былиспользован язык Lotus Script.Рис. 9. Карточка графического ресурсаПосле того, как пользователь создал документ,присоединил к нему файл и попытался его сохранить,агент вычисляет имя присоединенного файла и зано-сит его в соответствующее поле - имя файла для по-следующей генерации ссылки на этот присоединен-ный к документу файл [6].После того, как документ с присоединенным фай-лом сохранен, его можно использовать в других до-кументах, создавая в них ссылки на ресурс Интернет(рис.10).Рис. 10. Web-интерфейс аттестационного отдела.Пример вставки ссылки на автореферат в формуобъявления о диссертационном советеПри реализации автоматического вычисленияссылок был использован обработчик события формы«WebQuerySave», который, как видно из названия, ак-тивизируется при попытке сохранения, т.е. до факти-ческого сохранения документа.Суть обработчика состоит в том, чтобы получитьсписок имен присоединенных файлов и создать соот-ветствующее многозначное поле для последующейгенерации ссылок. Присоединенный же файл появля-ется в списке только после сохранения документа.Поэтому авторы столкнулись с проблемой «двойногосохранения» при присоединении файла.Генерация же ссылок заключалась в склеиваниистроки (при помощи @-формул) с тегами со списоч-ным полем имен присоединенных файлов:"[ ]"Функция putURL была реализована на языкеJavaScript:function putURL (URLstring) {parent.text.document.forms[0].text.value = "[[]]"+parent.text.document.forms[0].text.value}Обработчики событий JavaScript.В приложениях пользователей - других базах дан-ных сайта (новости ТГУ, новости диссертационныхсоветов ТГУ, ученый совет ТГУ и др.) - созданы спе-цифичные формы для ввода и поиска информации,содержащие свойственный конкретным подразделе-ниям инструментарий.При этом для клиентов web (браузеров) разработа-ны "действия", облегчающие подключение ресурсовинтернета к редактируемым страницам. В описаниистраницы существуют описания функций JavaScript,позволяющие помещать в документ, находящийся водном фрейме браузера, ссылку на открытый ресурс вдругом фрейме браузера. Другими словами, пользова-тель, видя предварительный просмотр изображения,нажимает на изображения, получая в редактируемомдокументе ссылку на него (рис. 11).Рис. 11. Web-интерфейс службы новостей. В верхнем окнеоткрыта форма на редактированиеДругим примером использования JavaScript могутпослужить вызовы различного рода диалоговых окон.Определение общей функции показа диалогов.function showMenu(name) {hideAllMenu();if (name == "AuthorDetails") {document.all[name].style.pixelTop = document.body.clientHeight+document.body.scrollTop-200;document.all[name].style.pixelLeft = (document.body.clientWidth)/2+60;document.all[name].style.visibility = 'visible';}else{document.all[name].style.pixelLeft = (document.body.clientWidth-640)/2+130;document.all[name].style.visibility ='visible';}}Вызов диалогового окна «Автор».Иванов И.И.Вызовы списка разделов и оглавления раздела.РЕАЛИЗАЦИЯ ССЫЛОЧНОСТИПри построении главной базы сайта, регистри-рующей как внутренние, так и внешние ссылки, не-обходимо было создать механизм для получения на-вигации всех уровней в каждой базе, являющейся ча-стью одного сайта, избежав дублирования информа-ции и множественных запросов при генерации стра-ниц. Это достигнуто путем использования несколькихмеханизмов:- наследование дизайна. Главная база (core.nsf)была объявлена шаблоном баз данных. Таким обра-зом, унаследованные другими базами сайта подфор-мы top и bottom приводятся в актуальное состояниесервером Domino по расписанию ежечасно;- переменные-указатели на головную базу. В са-мой головной базе и в других базах данных были соз-даны поля, вычисляемые при открытии и содержащиепуть к головной базе при запросах навигации. Такимобразом, привязка к головной базе была осуществленавведением всего лишь одной константы, это придаетсайту мобильность в случаях, когда файлы будет не-обходимо переместить в другое место на сервере.- имя и путь. Каждая страница, осуществляющаяпоиск контекстно зависимой навигации, должна пере-дать в запросе в качестве параметра
Скачать электронную версию публикации
Загружен, раз: 317
Ключевые слова
Авторы
ФИО | Организация | Дополнительно | |
Толузаков Сергей Геннадьевич | Томский государственный университет | ассистент кафедры теоретических основ информатики | chief@admin.tomsk.ru |
Якунина Елена Николаевна | Томский государственный университет | ведущий программист лаборатории автоматизированных систем управления факультета информатики | Yakunina@inf.tsu.ru |
Ссылки
Линд Дебби, Керн Стив. Lotus Notes и Domino R5.Энциклопедия пользователя: Пер. с англ./Дебби Линд, Стив Керн. К.:Изд-во «Диасофт», 2000. 656 с.
Ионцев Н.Н., Поляков Е.В., Таранченко О.Г. Программирование в Lotus Domino R5: формулы и функции, язык LotusScript, встроенные класс LotusScript и Java. М.: Изд-во «Светотон», 2000. 936 с.
Domino R5 Developer's Handbook. IBM RedBook sg245331.
Domino R5 Designer Help. IBM Lotus Software.
Карандин С., Колосов М., Поляков Е. Краткий справочник по разработке Web-приложений на базе Lotus Domino R5. М.: Изд-во «Светотон», 2000. 331 с.
Поляков Е.В. Средства разработки приложений в Lotus Domino R5: Domino Designer. М.: Изд-во «Светотон», 2002. 468 с.
Domino R5 Administration Help. IBM Lotus Software.
