6. Компонентная разработка приложений
74
Для доступа к совместно используемым услугам среды, данным и вычислительным ресур-
сам компонентам требуются:
− протоколы удаленной связи, обеспечивающие взаимосвязь клиентских и серверных
компонентов, распределенных по сети и выполняемых на серверах приложений, баз данных,
системного администрирования и защиты информации (сетевые протоколы прикладного
уровня эталонной модели ВОС). Эти протоколы могут быть синхронными, например, реали-
зующими услугу удаленного вызова процедур, или асинхронными, например, реализующими
услугу обмена сообщениями с промежуточным хранением без блокирования;
− службы каталогов, образующие глобальный механизм именования, организации
и эксплуатации служб и ресурсов, совместно используемых приложениями;
− службы транзакций, объединяющие цепочки совместно работающих приложений
и координирующие одновременные обновления корпоративных баз данных;
− службы системного администрирования, включающие в себя единый набор средств
мониторинга и управления приложениями, сервисами и ресурсами среды выполнения;
− службы защиты информации, которые осуществляют аутентификацию пользова-
телей и приложений, разграничение прав доступа и проверку полномочий при обращении
к ресурсам системы, а также предохраняют сообщения от перехвата и вскрытия при не-
санкционированном доступе.
В предыдущих главах рассмотрены интерфейсы прикладного программирования
(API) этих служб распределенной среды. Эти стандартные интерфейсы подлежат обяза-
тельному учету при проектировании и программировании приложений, в частности при
компонентной разработке приложений.
Имеющиеся на рынке продукты, реализующие указанные выше службы распреде-
ленной среды, нередко предоставляют одни и те же услуги через разные интерфейсы. Но-
менклатура этих продуктов достаточно обширна и непрерывно обновляется, а сведения об
их соответствии принятым («де-юре» и «де-факто») стандартам API не всегда приводятся
их поставщиками. Поэтому задача выбора рационального состава продуктов системного
ПО и ПО промежуточного слоя для распределенной среды является весьма сложной. А с
учетом дополнительных условий конструирования серверных компонентов, опирающихся
на услуги этой распределенной среды, задача тем более усложняется.
Например, серверный компонент приложения может получать от среды услуги
промежуточного хранения данных в процессе обработки транзакций из своего контекста
на этапе выполнения вместо того, чтобы реализовать их самостоятельно. И это должно
быть предусмотрено разработчиком при компонентной разработке приложений.
Серверные компоненты должны обслуживать одновременно множество клиентов
(тогда как компоненты настольных систем поддерживают только одиночных пользовате-
лей), что также должно предусматриваться разработчиком, конструирующим, например,
серверы приложений. Кроме того, серверные компоненты в целях обеспечения масштаби-
руемости и высокой готовности системы часто приходится делать многопоточными, дубли-
ровать их и объединять в пулы. Все эти особенности разработки серверных компонентов
приводят к усложнению задачи организации этих компонентов в статические иерархии кон-
тейнеров, которая следует из основной концепции компонентной разработки приложений.
Разработчики платформ DCP работают над обобщением моделей, строящихся на
базе контейнеров, стремясь к тому, чтобы они обеспечивали на этапе выполнения интер-
фейсы между серверными компонентами и платформами, на которых они должны функ-
ционировать. Развитие таких моделей на базе контейнеров является одним из важнейших
направлений конкретизации общей эталонной модели среды открытых систем OSE / RM.