Предисловие редакторов русского издания

Вид материалаДокументы

Содержание


Глава 3. Встречайте Брокеров CORBA/Java
NEO и Joe: краткая история
Что такое Joe?
Обратные вызовы
lona OrbixWeb
От редактора
Что такое OrbixWeb?
Inprise (Visigenic) VisiBroker for Java
От редактора
Что такое VisiBroker for Java?
OSAgent (Smart Agent, прим. ред.).
Как медлительны Java ORB
VisiBroker и Netscape ONE
Internet Foundation Classes
Который из Java ORB
Другие CORBA ORB
Подобный материал:
1   ...   8   9   10   11   12   13   14   15   16

Заключение


Java - это только первый, но все еще недостаточный, шаг в направ­лении создания Объектного Web. Java предлагает огромную гибкость для разработки распределенных приложений, но в настоящее время не под­держивает парадигму клиент/сервер. Чтобы это преодолеть, платформе Java необходимо воспользоваться инфраструктурой распределенных объектов. Тут то и появляется на сцене CORBA от OMG. CORBA предо­ставляет отсутствующие связи между средой переносимых приложений Java и миром межгалактических сервисов. Пересечение объектных техно­логий Java и CORBA — следующий естественный шаг в эволюции Object Web. С помощью Java и CORBA Web становится уникальной платформой для сетевых или, что более точно, ориентированных на сети вычислений.

Глава 3.

Встречайте Брокеров CORBA/Java


CORBA/Java ORB возникают повсюду. В своем натиске производите­ли поставляют ORB на рынок, даже не ожидая официальных специфи­каций OMG для связи Java с архитектурой CORBA. Представляется, что поставщики льют воду на мельницу Java. Итак, что представляют собой CORBA/Java ORB? Это CORBA HOP ORB, написанные на Java для обес­печения переносимости. ORB должны быть способны генерировать свя­зи на языке Java из CORBA IDL. Кроме того, любой код, сгенерирован­ный компилятором IDL, должен быть на чистом Java; у вас должна быть возможность загрузить такой код и запустить его на выполнение на любой машине, содержащей среду выполнения Java.

Обычный аплет Java, содержащий Java ORB, может непосредствен­но вызывать методы объектов CORBA, используя протокол ПОР по­верх Internet. Такой аплет полностью обходит CGI и HTTP, т.е. клиент и сервер устанавливают прямое коммуникационное соединение с помо­щью ORB. Вы можете загрузить клиента, который является CORBA-совместимым аплетом, в любой навигатор, поддерживающий Java, a затем его запустить. Такие загружаемые Java ORB еще называются ОКВлетами.

Где вы могли бы получить один из таких CORBA/Java ORB? Если мы обратимся к публикациям, то обнаружим три ORB, более или менее удовлетворяющих нашему определению: Sun Joe, lona OrbixWebu Visigenic/ Netscape VisiBrokerfor Java (известный ранее как Black Widow). В данной главе мы обсудим основные особенности трех этих продуктов. Мы также кратко остановимся на некоторых не-Java CORBA ORB. Нам кажется, что через несколько лет все основные поставщики CORBA будут предлагать Java ORB поверх ПОР. Итак, вы хотите узнать, кто эти поставщики.

Sun Joe


Sun - создатель Java - была одним из шести членов-основателей OMG. Следовательно, представление компании Sun об архитектуре кли­ент/сервер всегда таково — «распределенные объекты повсюду». Как вы

могли бы предположить, интеграция CORBA и Java - горячая тема по­вестки дня Sun. С точки зрения Sun вы можете использовать объектный Web для разработки всех приложений клиент/сервер, включая рабочие группы, intranct и Internet. В этом разделе мы сначала представим крат­кую историю усилий Sun по интеграции CORBA/Java. Затем рассмотрим особенности системы Joe.

NEO и Joe: краткая история


В сентябре 1995 Sun анонсировала NEO - трехзвенную архитектуру клиент/сервер, которая объединила вместе Java, объекты CORBA и Web. Аббревиатура NEO не означает ничего конкретного. Система NEO вклю­чает: 1) NEOnel CORBA ORB (ранее известный как DOE), 2) клиентские среды Java и OpenStep, 3) структуру управления распределенными систе­мами Solstice, 4) инструментальные средства разработки клиент/сервер.

В январе 1996 на заседании OMG в Сан-Диего Sun первой ввела связи CORBA IDL для Java, а также анонсировала Java ORB под именем Joe. В мае 1996 Sun (или JavaSoft) анонсировала Joe теперь уже как часть Enterprise Java - ядра структуры Java. Это означает, что Joe будет встроен в будущие виртуальные машины Java. В июле 1996 JavaSoft выпустила первую широко доступную бета-версию Joe. В ноябре 1996 JavaSoft дек­ларировала Joe как «официальный» Java ORB для корпоративных систем. В декабре 1996 JavaSoft анонсировала систему Java Transactions, основан­ную на сервисе объектных транзакций CORBA.

Что такое Joe?


В первую очередь Joe — это клиентский Java ORB. Это означает, что вы можете загрузить ОРВлет вместе со своим аплетом, а затем использовать его для вызова серверных объектов на NEO ORB (рис. 3-1). Естественно, вы можете раз и навсегда установить код Joe на свою машину и таким образом избежать его загрузки с каждым аплетом. В настоящий момент Joe и NEO осуществляют коммуникационное взаимодействие, используя два прото­кола Sun: NEO ORB и Door (из проекта Spring). К тому моменту, когда вы будете читать эту книгу, Sun должна реализовать протокол ПОР для Joe и NEO. (В настоящий момент в области middleware Sun ориентируется на продукты своих партнёров, а именно VisiBroker (Inprise) и Orbix (lona). Вместе с тем Sun встраивает Java IDL в JDK. Прим. ред.)

Клиенты Joe могут принимать асинхронные вызовы от сервера с помощью сервиса обратного вызова (смотрите следующую врезку). Что­бы принять обратный вызов, аплет Java должен: 1) определить объект CORBA посредством IDL, 2) создать экземпляр данного объекта, и 3)



экспортировать серверу ссылку на объект. Удаленный сервер может свя­заться с этим аплетом, просто вызвав какую-либо операцию по ссылке на объект. Вызов передается затем клиенту Joe, как вызов обычного метода Java.

Joe содержит также компилятор IDL-e-Java, который автоматичес­ки генерирует стаб клиентского класса Java из стандартных файлов CORBA IDL. В настоящий момент серверные объекты должны быть написаны для платформы NEO ORB. Согласно публикациям, клиенты Joe могут общаться только с объектами NEO. Это ограничение очевидно, поскольку NEO работает только на Sun Solaris. Более того, NEO поддерживает только серверные объекты, написанные на С или C++. Таким образом, Java со стороны сервера не существует. Конечно, версия Joe, совмести­мая с ПОР и ожидаемая в начале 1997, будет способна взаимодейство­вать с любым Java CORBA ORB, поддерживающим ПОР. (Серверная Java наконец появилась. Об ПОР - см. предыдущий комментарий. Прим. ред.)

Обратные вызовы


Итак, что такое обратный вызов? Это вызов клиента сервером. Об­ратный вызов меняет ролями клиента и сервера, он разрешает клиенту стать сервером. Обычно CORBA ORB является как клиентом, так и сер­вером. Следовательно, любой клиент автоматически может приниматьобратные вызовы. Любой сервер, имеющий ссылку на клиента с обрат­ным вызовом, может удаленно его вызвать.

Как только вы приобретете в этом деле некоторую сноровку, то об­наруживаете, что обратные вызовы чрезвычайно удобны. Они позволяют создать весьма динамичную среду клиент/сервер, которая полностью до­полняет Java. Обратные вызовы расширяют клиентскую архитектуру, до­бавляя сообщения от сервера. В общем случае, серверы используют обрат­ные вызовы всегда, когда очень хотят что-то вам сообщить. Обратные вызовы от сервера вскоре будут магически возникать внутри ваших апле-тов или клиентских приложений Java (рис. 3-2). Да, мы переходим в пре­красный новый мир, где каждый клиент будет еще и сервером.


lona OrbixWeb


lona - лидирующий поставщик технологий CORBA. C++ Orbix ORB этой компании в настоящее время работает на 20 операционных систе­мах, включая 12 вариантов Unix, OS/2, NT, Windows 95, Macintosh System 7.5, OpenVMS и MVS. lona ORB поддерживают как протокол ПОР, так и собственный протокол Orbix. В июле 1996 lona выпустила Orbix Web VI.

От редактора: Последняя разработка IONA — Orbix СЗ, Containers, Components and Connectors (Контейнеры, Компоненты и Коннекторы), в которую включены средства мониторинга транзакций Orbix ОТМ, OrbixCOMet - двусторонний мост CORBA — СОМ и EJBHome (Enterprise Java Beans). C3 включает в себя ART - специальную системную компо­нентную архитектуру, Warhol - брокер сообщений, Matisse — графичес­кие средства создания серверных компонентов. Разработка должна быть полностью завершена в течение года. Отдельные части доступны уже сейчас: Новая версия практически полностью будет поддерживать CORBA 3, а именно POA (Portable Object Adapter), IIOP1.2, асинхронный обмен сообщениями, вызов объекта-по-значению.


Что такое OrbixWeb?


OrbixWeb VI - Java-реализация клиента Orbix CORBA ORB компа­нии lona. Это облегченный ORB, который может поставляться через Internet в форме байт-кодов. OrbixWeb позволяет Java аплетам и клиент­ским приложениям взаимодействовать с сервером Orbix, используя или протокол CORBA ПОР, или более старый протокол lona Orbix. Клиенты могут формировать как статические, так и динамические вызовы. OrbixWeb основан на ПОР. Следовательно, вы должны иметь возмож­ность взаимодействовать с серверными объектами через любое ORB, поддерживающие ПОР.

В настоящее время писать серверные объекты Orbix можно только на C++ (рис. 3-3). Однако, к моменту, когда вы будете читать эту книгу, должен быть готов OrbixWeb V2, бета версия которого ожидается в но­ябре 1996. Новая версия предоставляет полную реализацию Java-сервера. (сейчас Orbix поддерживает Java, прим. ред.). Она также поддерживает обратные вызовы клиентов. Компилятор IDL-B-Java из комплекта OrbixWeb подобен своему собрату от Sun, но содержит несколько отли­чий. В конечном варианте lona намерена полностью реализовать специ­фикации OMG по связям CORBA с Java.

Inprise (Visigenic) VisiBroker for Java


VisiBroker начал свое существование как Black Widow ORB компа­нииPostModem. Он был первым CORBA ORB, который поддерживал как клиентские, так и серверные объекты Java. Этот ORB написан пол­ностью на Java, что делает его загружаемым ОРВлетом. В начале 1996 PostModem была приобретена компанией Visigenic — лидером среди поставщиков ППО для БД. В июле 1996 Visigenic изменила имя Black Widow на VisiBroker for Java, a C++ Orbeline ORB компании PostModem теперь называется VisiBroker for C++. В июле 1996 Netscape объявила, что ее инициатива Netscape ONE будет использовать VisiBroker for Java как свой ORB. Netscape встроит VisiBroker во все свои будущие навигаторы и серверы. Наконец, в феврале 1997 Oracle объявила, что будет исполь­зовать VisiBroker как свой ORB, который станет базисом для NCA.

От редактора:

В апреле 1998 года компания Visigenic была приобретена фирмой Borland. 29 апреля 1998 года Borland была переименована в Inprise (на­звание Inprise происходит от нового слогана компании — /ntegrating the Enterprise — "Интегрируя предприятие"). Inprise VisiBroker сейчас функ­ционирует на широком спектре платформ — Windows 95/98/NT, Sun Solaris, HP-UX, , и даже на mainframe под управлением IBM OS/390.

Всего за один 1998 год VisiBroker стал частью всего семейства инст­рументальных средств Inprise — Borland JBuilder, Borland C++Builder и Borland Delphi (привычное имя Borland стало торговой маркой, ассоци­ированной с инструментальными средствами той же компании с но­вым именем — Inprise). Таким образом, разработчики получают не ме­нее широкий спектр средств для создания CORBA приложений, чем существует для Microsoft СОМ.

Ключевым шагом в ориентации Inprise на технологию CORBA стал выпуск первого комплексного продукта для создания интегрированных гетерогенных (многоплатформенных) объектных систем на основе CORBA — Inprise Application Server, включающего VisiBroker ORB, на­бор CORBA-сервисов (включая Naming, Event и Transaction Service), средства разработки (первым из таких стал JBuilder for Application Server, в 1999 году планируется выпустить C++Builder и Delphi for Application Server), а также первую систему на основе Java и CORBA для монито­ринга и управления распределенной прикладной инфраструктурой — AppCenter, который для прикладных распределенных систем должна играть ту же роль, что и OpenView или Unicenter TNG - для сетевой инфраструктуры.

Что такое VisiBroker for Java?


VisiBroker for Java представляет собой CORBA-совместимый клиент­ский и серверный ORB, написанный полностью на Java (рис. 3-4). Все VisiBroker ORB полностью реализуют протокол ПОР, который облегчает объектам C++ вызов методов объектов Java, и наоборот. VisiBroker for Java поддерживает как статические, так и динамические вызовы ме­тодов CORBA. Методы сервера могут вызываться клиентскими прило­жениями Java или аплетами изнутри навигатора. Если навигатор поддер­живает, то аплеты могут использовать Secure Sockets.

Рис. 3-4. VisiBroker: Клиент и Сервер.

VisiBroker for Java содержит полный Репозитарий Интерфейсов CORBA (Interface Repository), написанный на Java. В конечном варианте Visigenic намерена реализовать полную спецификацию OMG связей CORBA с Java. Компилятор IDL из состава VisiBroker генерирует код скелетона серверных объектов на C++ или Java, кроме того, он генери­рует Java-стабы для клиента.

VisiBroker for Java поставляется с сервисом устойчивых объектных именований, который назван OSAgent (Smart Agent, прим. ред.). Множе­ство операционных агентов (OSAgent), выполняющихся в одной сети, автоматически находят друг друга и делят пространство имен между со­бой. Это позволяет вам копировать и выравнивать загрузку объектов на различные серверные машины. В случае сбоя ORB автоматически пере­направляет клиентские вызовы на одну из копий. VisiBroker for Java ORB реализован в менее чем 100 Кбайтные байт-коды Java. Следовательно, его легко можно загрузить на клиентскую машину, если его еще там нет. Этот ORB поддерживает как клиентские, так и серверные функции, что означает, что любой клиент может использовать обратные вызовы. К моменту, когда вы будете читать данную книгу, VisiBroker будет под­держивать Java-версии для CORBA-сервисов именования, событий и транзакций. VisiBroker поддерживает также Caffeine - Pure Java средства разработки поверх CORBA/IIOP. Caffeine делает CORBA прозрачной для Java-программистов. Java-объекты могут вызывать другие объекты на CORBA HOP ORB без необходимости использовать IDL.

Как медлительны Java ORB7


Мы слышали, что C++ намного быстрее Java. Итак, насколько мед­лительны все эти Java ORB? В своей книге Client/Server Programming with Java and CORBA (Wiley, 1997), мы запускали один и тот же Ping-тест на двух ORB: VisiBroker for Java и VisiBroker for C++. Второй - один из самых быстрых и отлаженных среди C++ ORB. Наибольшим сюрпризом стало то, что ЛТ-скомпилированный Java ORB выполнил удаленный Ping так же быстро, как и его с++-дбойник, оба показали время откли­ка 3.2 мсек.

VisiBroker и Netscape ONE


Netscape Open Net\vork Environment (ONE) - стандартизованная плат­форма (и инструментальные средства) для создания нового поколения распределенный приложений клиент/сервер для Internet. Моделью рас­пределенных объектов для этой новой платформы является CORBA ПОР. CORBA будет использоваться для интеграции Java-клиентов, Java-сер­веров и инструментальных средств Java.

Согласно Netscape «ПОР раскрывает мощь сетевых приложений, обеспечивая открытый платформо-независимый протокол для взаимо­действия сетевых приложений. Благодаря ПОР корпорации могут по­степенно показывать и обеспечивать взаимодействие своих приложений не только позади своих брандмауэров, но и через Extranet на электрон­ных рынках, среди потребителей, а также для других компаний. Прило­жения Netscape ONE будут использовать протокол ПОР в качестве ба­зового для обеспечения доступа к сервисам CORBA и ПОР-совмести-мым корпоративным приложениям, например, бизнес-объектам, EDI и сервисам транзакций.»

Netscape Internet Foundation Classes предоставят платформо-незави-симые сервисы для приложений Netscape ONE, написанных на Java и " onclick="return false">прим. ред.). У вас должна быть возможность вызвать любой объект CORBA с помощью " onclick="return false">

Который из Java ORB7


В таблице 3-1 сравниваются Java ORB. Каждый из них имеет сильных сторонников: Joe будет поставляться с каждым Java Development Kit;

VisiBroker будет поставляться с каждым навигатором Netscape и серве­ром Oracle; OrbixWeb продается компанией lona - лидирующим постав­щиком ORB.

Другие CORBA ORB


Рынок Java CORBA все еще в младенческом возрасте. В настоящее вре­мя большинство поставщиков CORBA заняты модернизацией своих ORB



к стандарту CORBA 2.0 и ПОР (для лидеров ориентирами являются стан­дарты CORBA 3.0 и IIOP1.2, прим. ред.). Они еще не пришли к Java. Неко­торые поставщики ожидают спецификаций OMG по Java CORBA свя­зям, прежде чем выпустить Java ORB на рынок. К концу 1996 большинство основных производителей ORB реализовали версии своих ORB, совмес­тимые со стандартом CORBA 2.0. Мы надеемся, что в скором времени они поставят Java ORB и сервисы. Итак, возможно, еще слишком рано выбирать победителя. Поставщики CORBA ORB разделились на два лаге­ря: поставщики больших систем и разработчики новых решений.

ORB от поставщиков больших систем включают Digital ObjectBroker, IBM SOM (сейчас эта технология частично трансформировалась в ComponentBroker и WebSphere, прим. ред.), Sun NEO/Joe, Oracle Web Request Broker (теперь этот продукт стал составной частью нового продукта Oracle Application Server на основе Inprise VisiBroker, прим. ред.}, ICL DAIS и HP ORB Plus. ORB от разработчиков новых решений включают Expersoft PowerBroker, lona Orbixn Inprise VisiBroker. Этот список не претендует на пол­ноту. Вдобавок к перечисленному мир CORBA включает буквально сотни продуктов, которые построены поверх middleware ORB, как то инструмен­тальные средства клиент/сервер, системы публикации-подписки, библио­теки компонентов, ОСУБД и системы управления платформами.

Заключение


Самое приятное в CORBA — у вас всегда есть выбор из более чем одного ORB. Конкуренция на этом рынке огромная. Здесь мы завершаем большое путешествие. Да, настало время перейти к некоторым подроб­ностям. Если вас интересует только общий обзор,