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

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

Содержание


Что CORBA привносит в Java
CORBA предоставляет масштабируемую инфраструктуру сервер —сер -вер.
Другие претенденты
Подобный материал:
1   ...   8   9   10   11   12   13   14   15   16

Что CORBA привносит в Java


Соединение инфраструктуры Web с CORBA сразу предоставляет три преимущества: 1) избавляет от узкого "горлышка" CGI на сервере; 2) обеспечивает масштабируемость и устойчивость Web-инфраструктуры сервер-сервер; 3) расширяет Java инфраструктурой распределенных объектов. Мы кратко объясним, что это значит:

CORBA избавляет от узкого "горлышка" CGI. Это позволяет клиен­там непосредственно вызвать методы на сервере. Клиенты передают параметры напрямую, используя прекомпилированные стабы, или генерируют их «на лету», используя сервисы динамических вызовов CORBA (DII). В любом случае сервер получает вызов прямо через

прекомпилированный скелетон. Вы можете вызывать на сервере любой метод, определенный с помощью IDL, а не только один метод, описанный посредством HTML. Кроме того, можно переда­вать любые типизированные параметры вместо обычных строк. Это означает, что накладные расходы, связанные с архитектурой кли­ент/сервер очень малы, особенно в сравнении с HTTP/CGI. В случае CGI необходимо запускать новую копию программы каждый раз, когда аплет вызывает метод на сервере. В случае CORBA этого не требуется. К тому же, CGI не сохраняет состояние между вызовами клиента, а CORBA это обеспечивает.

CORBA предоставляет масштабируемую инфраструктуру сервер —сер -вер. Пулы серверных прикладных объектов могут взаимодействовать с использованием CORBA ORB. Эти объекты могут выполняться на нескольких серверах для обеспечения баланса загрузки (load-balancing) серверов для входящих клиентских запросов. ORB может отправить запрос первому доступному объекту, а также увеличить число доступных объектов по необходимости.. CORBA позволяет объектам сервера действовать "в унисон", используя транзакции и связанные сервисы CORBA. В противоположность этому, приложе­ние CGI является "бутылочным горлышком", поскольку должно реагировать на тысячи входящих запросов, но не имеет возможнос­ти распределить нагрузку между несколькими процессами или про­цессорами.

CORBA расширяет Java инфраструктурой распределенных объектов. В настоящее время Java-апплеты не могут взаимодействовать сквозь все адресное пространство, используя вызовы удаленных методов. Это означает, что для Java-апплетов не существует простого спосо­ба вызвать метод на удаленном объекте. CORBA позволяет Java-апп-летам взаимодействовать с другими объектами, написанными на различных языках, преодолевая адресное пространство и сети. К тому же, CORBA обеспечивает богатый набор сервисов распределенных объектов, которые расширяют Java, включая метаданные, транзак­ции, безопасность, Именование, трейдер и коллекции. С помощью CORBA Java-клиенты и аплеты могут вызывать широкий спектр определенных на IDL операций на сервере. В противоположность этому, клиенты HTTP ограничены небольшим набором операций. При­ложения серверной части — это обычные объекты CORBA. Следователь­но, они доступны в любой момент времени. Нет необходимости прохо­дить через издержки обращения к CGI-сценариям для каждого вызова.

В таблице 2-1 просуммированы различия между сегодняшним под­ходом к клиент/серверному взаимодействию Java-to-CGI и решением, основанным на протоколе CORBA ПОР. CORBA с самого начала спро-

ектирована таким образом, чтобы предоставить мощные решения для | трехзвенной архитектуры клиент/сервер. В отличие от этого, взаимодей- | ствие клиент/сервер было искусственно "вклинено" между HTTP и CGI ? — эта мысль пришла в голову слишком поздно. CORBA естественным | образом расширяет объектную модель Java для распределенной среды, i" CORBA также облегчает "расщепление" Java-апплетов на компоненты, | которые могут быть распределены в среде клиент/сервер. Это означает, !-что клиентская часть аплета может оставаться маленькой, что сокраща­ет время загрузки.



В высшей степени незавидные результаты сравнения четко демонст­рируют, почему Java Web нуждается в CORBA. Однако, CORBA — не единственная промежуточная инфраструктура для расширения Web. Су­ществуют, по меньшей мере, три серьезных соперника - сокеты, OLE:

DCOM с ActiveX, а также Java RMI.

Другие претенденты


В части 4 нашей книги Client/Server Programming with Java and CORBA (Wiley, 1997) мы коснулись пяти конкурирующих инфраструктур для построения объектного Web, включая потоковые сокеты, HTTP/CGI, Java RMI, CORBA/IIOP с Caneine, и DCOM/ActiveX (в книге приведе­ны все исходные тексты тестов и их обоснование, прим. ред.). Мы напи­сали одно и то же приложение клиент/сервер, используя каждую из конкурирующих технологий. Затем мы собрали вместе отчеты, которые сравнивают следующие аспекты каждой системы: 1) процесс разработки клиент/серверного приложения, 2) средства интеграции Java, 3) инстал­ляция и установка (deployment), 4) сетевая производительность и 5) меж­галактический охват. В таблице 2-2 показан рейтинг пяти конкурирующих технологий объектного Web. Четыре звезды - высший рейтинг. Прочерк -худший, рейтинг, что означает отсутствие данной функции.



Да, CORBA неизбежна. Почему? В таблице 2-2 все сказано (подроб­ности — в нашей книге по программированию). Единственным реаль­ным соперником CORBA является DCOM. RMI далеко до ORB, данный метод не распространен в промышленности. Сокеты - всего лишь про­токол нижнего уровня. HTTP/CGI тоже не выделяется. Итак, CORBA против DCOM. И, кажется, CORBA выигрывает первый раунд. Но сра­жение продолжится до конца столетия.