Технический обзор
Другие платформы служат источником решений в технологии клиент - сервер
Разработчики Windows-приложений испытывают растущее влияние технологий с других платформ при создании устойчивых масштабируемых приложений баз данных.
Стараясь дополнить двухуровневую архитектуру клиент - сервер, доминирующую в настольных системах под Windows, корпоративные разработчики присматриваются к испытанным решениям, применяемым в системах под Unix и VMS и на мэйнфреймах. Среди таких стандартных средств - RPC (вызовы удаленных процедур), MOM (промежуточное ПО, ориентированное на сообщения), мониторы обработки транзакций и распределенные объекты.
RPC позволяют процессу выполнять программные функции, внешние по отношению к локальному компьютеру, давая разработчику возможность перенести на сервер некоторые функции, входящие в состав приложения-клиента, а затем добавить код для удаленного вызова этих функций.
Различные технологии RPC, например ONC RPC (открытая сетевая вычислительная среда) фирмы Sun Microsystems, DCE RPC (распределенная вычислительная среда), разработанная Open Software Foundation, и Windows NT RPC корпорации Microsoft, совместимы не на всех уровнях.
Например, Microsoft RPC и DCE RPC совместимы на уровне сетевого протокола, но используют разные API, а ONC и DCE несовместимы даже на уровне сети.
Кроме того, большинство технологий RPC опирается на протокол TCP/IP, но программы Transport Independent RPC фирмы AT&T могут также работать со стеком IPX/SPX.
Достаточно, чтобы показать, что картина в области протоколов RPC весьма запутанна?
Тут на сцене появляется фирма NobleNet со своим набором инструментальных средств EZ-RPC, который обеспечивает единый API более чем для 40 различных вычислительных платформ.
EZ-RPC позволяет разработчикам разделять логику работы системы, используя RPC для создания вычислительных механизмов и серверов бизнес-правил. EZ-RPC доступен для 20 стеков TCP/IP. Он также поддерживает неблокирующие RPC и обратные вызовы клиентов после выполнения удаленных функций.
Промежуточное ПО, ориентированное на сообщения
Промежуточное ПО обработки сообщений позволяет разработчикам создавать программные средства, которые могут совместно работать в гетерогенных, распределенных системах.
Системы с очередями сообщений (message-queuing systems) похожи на системы голосовой почты, в которых можно оставить сообщение, а не дожидаться ответа. Как и в случае с голосовой почтой, система с очередями сообщений отвечает за обеспечение доставки и может активизировать события уведомления.
Система MQSeries корпорации IBM обеспечивает управление очередями для синхронной и асинхронной передачи сообщений, обработку транзакций, триггеры событий, поддержку приоритетов сообщений, средства обеспечения безопасности и преобразования данных.
MQSeries работает с мониторами обработки транзакций, реализующими стандарт обработки транзакций X/Open XA, например, с системой CICS (система управления информацией о клиентах) для Windows NT. IBM поставляет наборы инструментальных средств для MQSeries для разработчиков, использующих Visual C++ корпорации Microsoft и COBOL фирмы MicroFocus.
Интерфейс очереди сообщений MQSeries MQI (Message Queuing Interface) позволяет программам взаимодействовать с менеджером очереди, открывать и закрывать очереди, отправлять и получать сообщения и запрашивать состояние очереди.
MQSeries 2.0 поддерживает Windows NT. Доступны также другие варианты системы, поддерживающие OS/2, MVS, AS/400 и Unix.
Другая ориентированная на сообщения архитектура промежуточного ПО соответствует одноранговой модели, основанной на информации о ресурсах (advertising) и их запросе.
Система PIPES фирмы PeerLogic представляет собой инструмент создания многоуровневых распределенных приложений, совместно использующих ресурсы. PIPES использует архитектуру передачи сообщений между процессами, которая позволяет устранить единое место сбоев, избегая централизованного управления.
Использующие PIPES приложения создают и поддерживают логическое представление ресурсов, используют асинхронное взаимодействие, управляемое событиями, и при необходимости могут работать с RPC и посредниками объектных запросов.
Приложение-сервер PIPES распространяет информацию о доступности ресурсов. PIPES затем обеспечивает информацию о пути доступа к ресурсам, и другие приложения становятся клиентами, использующими эти ресурсы.
PIPES доступна для операционных систем MVS, Unix, OS/2, NetWare и Windows, использующих средства TCP/IP, Advanced Program-to-Program Communications (улучшенный протокол межпрограммного взаимодействия) и CICS. Она включает содержащий 12 функций API для разработчиков, использующих Visual Basic, COBOL, Си и Си++.
EnterpriseConnect фирмы Sybase включает промежуточное ПО работы с сообщениями, которое поддерживает технологии кабельной, беспроводной и мобильной связи. EMS (корпоративная служба обработки сообщений) включает Communications Manager (менеджер связи), обеспечивающий подготовку пакетов, и Event Manager (менеджер событий), обеспечивающий маршрутизацию и поддержку очередей сообщений.
EMS включает возможности обработки транзакций и двунаправленной передачи, а также Communication Agents (агенты связи), обеспечивающие управление физическим уровнем и уровнем канала данных. EMS поддерживает мобильные устройства, такие, как персональные цифровые секретари и портативные клиенты, использующие Macintosh или операционные системы Windows и DOS.
Архитектура EMS является расширяемой, так что для поддержки новых кабельных или беспроводных транспортных протоколов достаточно подключить дополнительные агенты связи.
Sybase сейчас пересматривает свои API систем клиент - сервер, включая в них средства работы в сети, основанные на обработке сообщений. Она также интегрирует EMS с OpenServer, Replication Server и новым промежуточным ПО, использующим объекты.
Sybase недавно подписала соглашение о партнерстве с PeerLogic, предусматривающее поставки комплекта вычислительных средств, базирующегося на распределенных приложениях PIPES и технологии обработки сообщений при беспроводной связи Sybase. Новая архитектура будет доступна пользователям Windows, Windows NT и Unix.
Обработка транзакций
Мониторы обработки транзакций выступают в роли "регулировщиков движения", которые поддерживают целостность данных, блокируя частичные, неполные изменения данных.
Например, при переводе денег с текущего счета на сберегательный приложение должно завершить весь процесс, а не просто снять деньги с текущего счета.
Если данные по всем счетам хранятся в одной СУБД, приложение может выполнить транзакцию, используя программный интерфейс СУБД.
Однако если данные по счетам находятся на распределенных серверах, приложение должно использовать координатор транзакций, который работает независимо от границ между программными интерфейсами СУБД.
Используя парадигму "все или ничего", координатор транзакций осуществляет откат в случае неполного обновления или частично проведенной транзакции. При работе с несколькими базами данных приложение использует двухфазный протокол завершения, чтобы гарантировать, что все участники транзакции могут в ней участвовать. Если один из участников не отвечает на сообщение "Готовы ли вы завершить внесение изменений?", транзакция не выполняется.
Оперативная обработка транзакций для Unix, VMS и мэйнфреймов доступна уже больше 25 лет, но у разработчиков Windows-приложений доступ к ней появился лишь недавно.
Encina корпорации Transarc, Tuxedo фирмы Novell, ACMS корпорации Digital Equipment, Top End корпорации NCR, CICS корпорации IBM и DCT (координатор распределенных транзакций) корпорации Microsoft представляют собой инструменты распределенной обработки транзакций промышленного класса.
Novell является собственником версии Tuxedo для NetWare, а BEA systems предоставляет лицензии на Tuxedo для других платформ.
Microsoft DTC, новый "игрок" в этом классе, представляет собой ПО для Win32, тогда как другие системы поддерживают несколько платформ.
DTC, возможно, является первым представителем нового класса менеджеров распределенных транзакций, использующих согласованные объектные интерфейсы для взаимодействия с базами данных. DTC использует интерфейсы OLE, поддерживает двухфазное завершение и работает с мониторами обработки транзакций, соответствующими стандарту XA, например с Encina.
Приложения вызывают функцию dtcGetTransactionMonitor, готовясь использовать один из интерфейсов транзакций, основанных на протоколе OLE. Чтобы обеспечить уведомление о событиях, DTC использует доступный в рамках OLE механизм точек соединения. DTC поддерживает проведение распределенных транзакций с серверами, для которых доступен менеджер ресурсов DTC, или между ними.
DTC будет доступен бесплатно в составе Windows NT 4.0, поставки которой должны начаться позднее летом этого года.
Объекты удаленной автоматизации и Network OLE
Предлагаемое Microsoft решение проблемы масштабирования вверх до приложений уровня предприятия состоит в опоре на компоненты DTC и OLE, которые инкапсулируют бизнес-правила, и другие прикладные службы.
В Visual Basic 4.0 появилась поддержка интерфейсов удаленной OLE-автоматизации, являющихся предшественниками Network OLE (сетевой OLE) или технологии распределенных составных объектов, которые находятся сейчас в процессе бета-тестирования.
Network OLE поддерживает прозрачную удаленную работу - процесс, с помощью которого OLE "под капотом" обеспечивает поддержку, необходимую, чтобы удаленные составные объекты выглядели как локальные.
Разработчики, использующие OLE для создания распределенных приложений, как правило, будут писать приложения, работающие с Pool Manager (менеджером пула), который выделяет и поддерживает пул объектов для обслуживания запросов от нескольких клиентов.
Скорее всего, технология распределенных объектов (OLE или CORBA - единая архитектура посредника объектных запросов, разработанная Object Management Group) будет приобретать новых сторонников на рынке корпоративных систем, в частности потому, что объектные интерфейсы можно наложить на решения, обеспечиваемые другими системами промежуточного ПО.
Кен Норт
ИНТЕРФЕЙС ОЧЕРЕДИ СООБЩЕНИЙ IBM MQSERIES
Клиенты IBM MQSeries используют интерфейс MQI, чтобы отправлять
сообщения и взаимодействовать с системой управления очередями
Источник: DataBase Associates International
КОРПОРАТИВНАЯ СЛУЖБА ОБРАБОТКИ СООБЩЕНИЙ SYBASE EMS
Архитектура EMS является расширяемой; для поддержки новых кабельных или
беспроводных транспортных протоколов достаточно подключить
дополнительные агенты связей
КООРДИНАТОР РАСПРЕДЕЛЕННЫХ ТРАНЗАКЦИЙ MICROSOFT DCT
Microsoft Distributed Transaction Coordinator (DTC) использует согласованные
объектные интерфейсы для взаимодействия с базами данных. DTC поддерживает
проведение распределенных транзакций с серверами, для которых доступен
менеджер ресурсов DTC, или между ними