Логин:   Пароль:






Новости
Рассылки
Форум
Поиск


Java
- Апплеты
- Вопрос-ответ
- Классы
- Примеры
- Руководства
- Статьи
- IDE
- Словарь терминов
- Скачать

Мобильная Java
- Игры
- Примеры
- Статьи
- WAP, WML и пр.

JavaScript
- Вопрос-ответ
- Примеры
- Статьи

Веб-мастеринг
- HTML
- CSS
- SSI

Разминка для ума
Проекты
Книги
Ссылки
Программы
Юмор :)




Rambler's Top100
Rambler's Top100

Статьи - разминка для умаТехнологии WWW, Corba и Java в построении распределенных объектных систем

Технологии WWW, Corba и Java в построении распределенных объектных систем


Предыдущий | Следующий
Содержание
Введение
Распределенные объектные технологии
Преимущества использования
Повторное использование кода
Изолированная разработка
Сопровождение приложений
Тонкие клиенты
Технологии RMI, CORBA и DCOM
RMI
CORBA
DCOM
Преимущества технологии CORBA над технологиями RMI и DCOM
DCOM: за и против
RMI: за и против
CORBA: за и против
Почему CORBA?

Технология CORBA
Введение в CORBA
IDL
Object Management Architecture
Object Request Broker
От RPC к ORB
Достоинства ORB
Object Services
Common Facilities
Application Objects

CORBA и WWW
CORBA-CGI
Java-CORBA
Java -- путь к синхронизации информации
PUSH и PULL
Использование средств Java
Применение технологий Java-CORBA и CORBA-CGI

Заключение
Литература

Введение

Рост популярности глобальной сети Internet и технологии World-Wide-Web в последнее время вызывает повышенный интерес к ним со стороны разработчиков информационных систем.

Изначально WWW создавался только как средство, предоставляющее графический интерфейс в Internet и упрощающее доступ к информации, распределенной по миллионам компьютеров по всему миру. При этом, основными компонентами являлись страницы, узлы, броузеры и сервера Web. Пользователям была предоставлена возможность навигации по Internet с использованием технологии гипертекста, поддерживаемой протоколом HTTP (Hypertext Transfer Protocol) и стандартом языка HTML (Hypertext Markup Language).

Появление CGI (Common Gateway Interface) решило проблему обмена информацией между сервером Web и такими программами как базы данных, которые не могут непосредственно обмениваться данными с броузерами Web. В результате появилась возможность реализации интерактивного взаимодействия конечного пользователя с программами стороны Web сервера, которые обрабатывали информацию, введенную пользователем в броузере, и в качестве результата возвращали сформированную HTML-страницу. Многие из существующих решений доступа к БД в среде Internet основаны на данном подходе.

Появление языка Java предоставило для разработчиков информационных систем абсолютно новые технологические решения построения приложений в среде Internet/Intranet (не стоит, однако, рассматривать Java только как часть технологии WWW, поскольку она позволяет решать задачи гораздо более широкого класса, чем технология, базирующаяся на языке HTML, протоколе HTTP и CGI).

Но как быть в случае взаимодействующих информационных систем, основанных на технологии WWW? Как осуществить интеграцию этих систем друг с другом и с существующими крупными информационными системами?

Существуют различные решения этой проблемы, в основе которых лежит модель распределенных объектных технологий. Выбор такой модели во многом определяет характеристики строящейся информационной системы.

Известно, что распределенная информационная система состоит из совокупности взаимодействующих друг с другом программных компонент. Каждая из таких компонент представляет собой программный модуль, исполняемый в рамках отдельного процесса. Использование объектно - ориентированного подхода при создании крупных информационных систем позволяет рассматривать компоненты информационной системы на различных уровнях абстракции как объекты, каждый из которых обладал бы определенной линией поведения. Взаимодействие таких объектов, в большинстве случаев, осуществляется на базе некоторой среды взаимодействия, основной целью которой является реализация механизма обмена сообщениями в контексте гетерогенных распределенных сред, являющихся характерной чертой большинства крупных организаций.

Построение среды взаимодействия, есть один из труднейших этапов разработки информационной системы. Как показывает практика, создание разработчиками информационных систем собственной, уникальной среды взаимодействия объектов приводит с одной стороны к резкому увеличению затрат на реализацию проекта построения информационной системы, а с другой к неполноте (ущербности) полученного решения. Исследования проектов создания информационных систем позволяют сделать вывод, что для того чтобы избежать неоправданных затрат на разработку собственной, уникальной информационной среды, необходимо использовать уже существующие программные продукты, которые относятся к уровню промежуточного программного обеспечения (middleware) и реализуют так необходимые среды взаимодействия. Однако не все продукты уровня middleware могут использоваться в качестве среды взаимодействия объектов крупной информационной системы. Это обусловлено тем, что одним из основных требований к крупной информационной системе является использование программных продуктов и технологий, удовлетворяющих международным и промышленным стандартам в области открытых информационных систем. В связи с этим, на сегодняшний день, в качестве кандидатов, реализующих высокоуровневую среду взаимодействия, все чаще рассматриваются продукты, поддерживающие стандарт CORBA.

Целью данной работы является теоретическое обоснование того, что на сегодняшний день технологии Java и CORBA лучше всего подходят для интегрирования систем, основанных на технологии WWW, с крупными информационными системами. То есть использование этих технологий уже сейчас позволяет поднять технологию WWW на новый уровень -- уровень распределенных систем.

Распределенные объектные технологии

На сегодняшний день многие компании и производители поглощены прорывом в области Интернет-ориентированных распределенных клиент/сервер систем, основанных на модели распределенных объектов.

Система, построенная по технологии распределенных объектов, состоит из набора компонент (объектов), взаимодействующих друг с другом. При этом объекты, как правило, разбросаны по сети и выполняются отдельно друг от друга.


Рисунок 1: Модель распределенных объектов

Преимущества использования

Использование технологии распределенных объектов позволяет пользоваться всеми преимуществами объектно-ориентированного подхода [2]:
  • сокращение времени разработки (изолированная разработка)
  • сокращение количества ошибок
  • повторное использование программных компонент
  • легче становится будущее изменение системы.

Еще одним важным достоинством таких систем является возможность построения так называемых легких клиентов.

Повторное использование кода

У программистов появляется возможность быстро и эффективно создавать многофункциональные приложения, используя уже существующие plug-and-play компоненты, что заметно снижает стоимость построения новой системы.

Изолированная разработка

Из-за своей модульной основы распределенные приложения позволяют осуществить изолированные друг от друга создание и изолированное изменение модулей (компонент). Вся система разбивается на различные замкнутые, автономные модули, работа над которыми может идти отдельно от других, но которые, в то же время, могут взаимодействовать с другими модулями системы. Для этого модули должны поддерживать протоколы и интерфейсы, определяющие принципы их взаимодействия. Но так как методы, существующие в модулях, изолированы от методов других модулей, то они могут разрабатываться независимо. Таким образом, степень реализации компонент не зависит от состояния кода в других частях системы. Становится возможной параллельная работа нескольких команд над различными частями приложения или системы. Взаимодействие же между разными модулями будет происходить путем установленных протоколов и интерфейсов.

Сопровождение приложений

В силу модульного подхода в системе, замена некой функциональной части приложения для решения возникающих проблем не требует глобальной перестройки всей системы. Наоборот, замена кода происходит только в модулях, которые на самом деле этого требуют. Во-первых, это проще, а во-вторых, значительно быстрее. Снижается также и риск возникновения ошибок при самой замене кода, ведь изменения в большей степени затрагивают внутреннюю часть объектов.

Тонкие клиенты

В распределенной системе имеется возможность перенести всю функциональную логику информационной системы на ее серверную часть. В этом случае приложения-клиенты, с которыми общается пользователь, могут быть сделаны небольшими и легковесными. Системные ресурсы пользователя оказываются более свободными, а вся тяжесть функциональной логики реализуется высокомощным сервером (или сетью из серверов). При этом клиент имеет доступ к практически неограниченному числу хранилищ информации и других объектов. Появляется возможность создания легковесных компонент, пригодных для быстрой загрузки через сеть (Internet) и запуска на компьютере клиента (к такого рода приложениям можно отнести апплеты или Active-X компоненты).

Технологии RMI, CORBA и DCOM

На сегодняшний день выделяются три различные технологии, поддерживающие концепцию распределенных объектных систем. Это технологии RMI, CORBA и DCOM.

RMI

Архитектура RMI (Remote Method Invocation, т.e. вызов удаленного метода), которая интегрирована с JDK1.1, является продуктом компании JavaSoft и реализует распределенную модель вычислений. RMI позволяет клиентским и серверным приложениям через сеть вызывать методы клиентов/серверов, выполняющихся в Java Virtual Machine. Хотя RMI считается легковесной и менее мощной, чем CORBA и DCOM тем не менее, она обладает рядом уникальных свойств, таких как распределенное, автоматическое управление объектами и возможность пересылать сами объекты от машине к машине.

На рисунке 2 показаны основные компоненты архитектуры RMI.


Рисунок 2: Модель RMI

Client Stub (переходник для клиента) и Server Stub (переходник для сервера) порождены от общего интерфейса, но различие между ними в том, что client stub служит просто для подсоединения к RMI Registry, а server stub используется для связи непосредственно с функциями сервера.

CORBA

Технология CORBA (Common Object Request Broker Architecture), разрабатываемая OMG (Object Managment Group) с 1990-го года, позволяет вызывать методы у объектов, находящихся в сети где угодно, так, как если бы все они были локальными объектами.

На рисунке 3 показана основная структура CORBA 2.0 ORB.


Рисунок 3: ORB (CORBA 2.0)

Dynamic Invocation Interface (DII): позволяет клиенту находить сервера и вызывать их методы во время работы системы.
IDL Stubs: определяет, каким образом клиент производит вызов сервера.
ORB Interface: общие как для клиента, так и для сервера сервисы.
IDL Skeleton: обеспечивает статические интерфейсы для объектов определенного типа.
Dynamic Skeleton Inerface: общие интерфейсы для объектов, независимо от их типа, которые не были определены в IDL Skeleton.
Object Adapter: осуществляет коммуникационное взаимодействие между объектом и ORB.

DCOM

Технология DCOM (Distributed Component Object Model) была разработана компанией Microsoft в качестве решения для распределенных систем в 1996-м году. Сейчас DCOM является главным конкурентом CORBA, хотя контролируется он теперь уже не Microsoft, а группой TOG (The Open Group), аналогичной OMG. Вкратце, DCOM представляет собой расширение архитектуры COM до уровня сетевых приложений.


Рисунок 4: Архитектура DCOM

Преимущества технологии CORBA над технологиями RMI и DCOM

У каждой из трех рассматриваемых технологий есть свои уникальные особенности, которые во многом характеризуют возможность или невозможность ее применения для решения поставленной задачи.

DCOM: за и против

Следуя [1] можно перечислить следующие достоинства и недостатки DCOM:

Достоинства
  • Языково-независимость
  • Динамический/статический вызов
  • Динамическое нахождение объектов
  • Масштабируемость
  • Открытый стандарт (контроль со стороны TOG)
Недостатки
  • Сложность реализации
  • Зависимость от платформы
  • Нет именования через URL
  • Нет проверки безопасности на уровне выполнении ActiveX компонент

DCOM является лишь частным решением проблемы распределенных объектных систем. Он хорошо подходит для Microsoft-ориентированных сред. Как только в системе возникает необходимость работать с архитектурой, отличной от WindowsNT и Windows95, DCOM перестает быть оптимальным решением проблемы. Конечно, вскоре это положение может измениться, так как Microsoft стремится перенести DCOM и на другие платформы. Например, фирмой Software AG уже выпущена версия DCOM для Solaris UNIX и планируется выпуск версий и для других версий UNIX. Но все-таки, на сегодняшнем день, DCOM хорош лишь в качестве решения для систем, ориентированных исключительно на продукты Microsoft. Большие нарекания вызывает также отсутствие безопасности при исполнении ActiveX компонент, что может привести к неприятным последствиям.

RMI: за и против

Как отмечалось в [1], RMI имеет следующие положительные и отрицательные стороны:

Достоинства
  • Быстрое и простое создание
  • Java-оптимизация
  • Динамическая загрузка компонент-переходников
  • Возможность передачи объектов по значению
  • Встроенная безопасность
Недостатки
  • Поддержка только одного языка -- Java
  • Свой собственный, не IIOP-совместимый протокол взаимодействия
  • Трудность интегрирования с существующими приложениями
  • Плохая масштабируемость

Благодаря своей легкоиспользуемой Java-модели, RMI является самым простым и самым быстрым способом создания распределенных систем. RMI - хороший выбор для создания RAD-компонент и небольших приложений на языке Java. Конечно, RMI не такая мощная технология, как DCOM или CORBA. В частности, RMI использует свой родной, не CORBA/IIOP-совместимый протокол передачи JRMP и может взаимодействовать лишь с другими Java объектами. Поддержка только одного языка делает невозможным взаимодействие с объектами, написанными не на языке Java. Тем самым, роль RMI в создании больших, масштабируемых промышленных систем, снижается.

CORBA: за и против

Вот небольшой список достоинств и недостатков использования технологии CORBA.

Достоинства
  • Платформенная независимость
  • Языковая независимость
  • Динамические вызовы
  • Динамическое обнаружение объектов
  • Масштабируемость
  • CORBA-сервисы
  • Широкая индустриальная поддержка
Недостатки
  • Нет передачи параметров `по значению'
  • Отсутствует динамическая загрузка компонент-переходников
  • Нет именования через URL

К основным достоинствам CORBA можно отнести межязыковую и межплатформенную поддержку. Хотя CORBA-сервисы и отнесены к достоинствам технологии CORBA, их в равной степени можно одновременно отнести и к недостаткам CORBA, ввиду практически полного отсутствия их реализации. Более подробное описание этих свойств можно найти в [1,3,5].

Почему CORBA?

Почему CORBA является наиболее эффективной, современной, пригодной для крупных проектов технологией распределенных объектов? Потому что, хотя обе технологии -- и CORBA, и DCOM чрезвычайно схожи по своей функциональности и своим возможностям (многоязыковая поддержка, динамический вызов, масштабируемость и др.), у DCOM отсутствует важный критический элемент -- мультиплатформная поддержка. Одного факта, что в настоящий момент DCOM не поддерживает целиком межплатформенную переносимость, вполне достаточно, чтобы не рассматривать его как полноценное, законченное решение. Кроме того, в то время как в состав OMG уже сейчас входят более 700 членов (компаний-производителей программных продуктов, компьютеров, телекоммуникационных систем, разработчиков прикладных систем и конечных пользователей), и практически люба спецификация, разработанная этим консорциумом, фактически становится стандартом, DCOM лишь недавно стал переходить из рук Microsoft в руки аналогичной OMG организации -- группе TOG (The Open Group).

И еще один плюс технологии CORBA: круг производителей продуктов, поддерживающих данную технологию, значительно шире, чем аналогичный круг для DCOM. Таким образом оказывается, что именно CORBA -- технология, полностью предназначенная для промышленных, открытых, распределенных объектных систем.


Предыдущий | Следующий

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 11

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/books/show2b.php on line 30
Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 91

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/news/worldnews.php on line 95