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