Предисловие редакторов русского издания
Вид материала | Документы |
- От редакторов русского издания, 12579.28kb.
- Предисловие переводчика и редактора русского издания, 173.31kb.
- Предисловие от редакторов, 3279.6kb.
- Крайон книга третья. Алхимия человеческого духа руководство по переходу человечества, 3416.54kb.
- Электронная библиотека студента Православного Гуманитарного Университета, 3857.93kb.
- Предисловие, 5158.35kb.
- Автор файла (январь 2009г.): Мухамеджан Мухамеджанов, 250.83kb.
- Предисловие ко второму изданию, 1366.96kb.
- Аллан Кардек спиритизм в самом простом его выражении содержание, 4227.55kb.
- Философия русского религиозного искусства XVI-XX вв. Антология, 6335.43kb.
Заключение
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. Конкуренция на этом рынке огромная. Здесь мы завершаем большое путешествие. Да, настало время перейти к некоторым подробностям. Если вас интересует только общий обзор,