|
LOTUS DOMINO ВНЕДРЕНИЕ И РАЗРАБОТКА: ИНФРАСТРУКТУРА - НАСТОЯЩЕЕ И БУДУЩЕЕ
Сервер Domino выступает в роли буфера между приложением и операционной системой. С другой стороны, сервер Domino – набор сервисов, которые способствуют разработке и выполнению динамических, безопасных приложений для Internet, Intranet, или Extranet. Роль сервера Domino состоит в функциональном обеспечении как внутри, так и между Domino-приложениями. Службы (сервисы) Domino интерпретируют элементы и коды приложения и выполняют их над данной операционной системой. Каждая служба специально оптимизирована под конкретную платформу, на которой поддерживается Domino, для лучшей производительности всего приложения.
Поскольку приложение взаимодействует со службами, а последние взаимодействуют с операционной системой, то приложения Domino являются переносимыми (т.е. не зависят от платформы). Службы Domino подразделяются на прикладные и системные.
-
Прикладные службы обеспечивают любое приложение полным набором функциональных возможностей. Каждое приложение нуждается в механизмах авторизации пользователей, выполнении агентов, индексации видов и т.д. В связи с этим такие службы называют прикладными службами.
-
Системные службы обеспечивают функциональные возможности, позволяющие приложениям работать вместе в одной среде. Каталог Domino хранит информацию о пользователях и определяет пути подключения между приложениями. Маршрутизация позволяет приложениям связываться между собой. Реплицирование позволяет приложениям синхронизировать данные друг с другом.
Клиент Notes при работе с локальными БД (т.е. без сервера Domino) обеспечивает работу определенного набора служб Domino, которые выполняют большинство функциональности Domino локально, тем самым, сокращая нагрузку на сервер. Клиент Notes не поддерживает аналогичный с сервером уровень безопасности и ограничений.
Приложения Domino являются клиент-серверными приложениями. Клиент связывается с приложением, используя собственный механизм удаленного вызова процедур Notes Remote Procedure Call (NRPC), который передает клиентский запрос приложению Domino, и возвращает полученные результаты.
Domino поддерживает также протокол HTTP, позволяющий web браузерам получать доступ к приложениям, размещенным на Domino сервере.
Domino кроме клиента Notes и web браузеров поддерживает и других клиентов с помощью дополнительных коммуникационных протоколов: почтовые клиенты по протоколам SMTP, POP3 и IMAP; работа с новостными конференциями по протоколу NNTP; работа со службами каталогов по протоколу LDAP; а также Domino может взаимодействовать с другими приложениями по технологиям OLE и COM, выступая при этом как в роли клиента, так и сервера.
БД Domino представляют собой файлы из файловой системы сервера/локальной станции. БД Domino содержит две области функциональных возможностей:
-
Notes Storage Facility (NSF) - поддерживает данные и элементы дизайна приложения. Средство хранения (storage facility) содержит записи (notes), которые являются контейнером для данных. Различный тип записей позволяет выполнять определенные функции в рамках БД;
-
Notes Index Facility (NIF) - строит и поддерживает списки для размещения данных в приложении. Эти сортируемые списки называются видами.
Записи в БД Domino могут быть созданы пользователями (тип data note), разработчиками (тип design note) и самим Domino, которые он использует для мониторинга и управления информацией в БД (например: ACL, database header).
По существу все записи в БД одинаковы (по характеристикам). Они (записи) находятся на одном уровне и не разделяются иерархическими или другими отношениями. Записи различаются только хранимыми в них данными, и как их использует Domino.
Записи хранят данные в айтемах (item). Каждый item идентифицируется по своему имени и содержит список значений. Значения в одном item (если это список) должны иметь один и тот же тип данных. Items так же хранят информацию о типе хранимых данных. Эти метаданные доступны приложениям и службам Domino. Записи могут хранить три основных типа данных: Rich text, Text (plain text) и Number (Domino хранит значения дата/время в виде чисел).
Domino обеспечивает доступ к данным документа (data note) различными способами, включая: поля на форме, столбцы в виде, программный код на встроенных языках: @-формул, LotusScript, JavaScript и Java. Помимо перечисленных четырех встроенных языков программирования, Domino поддерживает внешний программный код на Java, C и C++, Visual Basic.
Приведенная выше картина характерна для Domino до 6-й версии включительно. В 7-м релизе для хранения данных помимо традиционного механизма NSF, может еще использоваться и DB2. В этом случае все note БД Domino хранятся в таблицах реляционной БД DB2 со схемой хранения, специально оптимизированной под нужды Domino. Этим решается ряд задач, которые раньше либо были вообще не выполнимы на Domino, либо выполнялись достаточно медленно. Эти задачи следующие: хранение больших объемов данных, полная прозрачность данных Domino для сторонних приложений, ускорение работы взглядов (данная возможность со слов самого IBM будет реализована только в более поздних релизах).
В бета-версии реализация хранения на DB2 возможна только для локальных (не серверных) БД, однако, движение вперед несомненно на лицо. В свое время высокопоставленные менеджеры IBM заявляли, что в Domino никогда не будет реализован механизм блокировки записей. В 6-й версии он уже является штатным механизмом. Возможно, в более поздних релизах 7-й версии Domino будет реализован механизм двухфазных транзакций, а почему бы и нет?
|