Web-сервисов

advertisement
Лекция №3. Архитектура Web-приложений
Учебные вопросы:
1. Стандарты и протоколы основе Web-сервисов
2. Технология EJB
3. Технология DCOM
4. Технология CORBA
Вопрос №1
Web-cepвис — приложение, доступное через Internet и
предоставляющее некоторые услуги, форма которых не зависит
от поставщика (так как используется универсальный формат
данных — XML) и платформы функционирования.
В основе Web-сервисов лежат открытые стандарты и протоколы
SOAP (Simple Object Access Protocol), разработанный
консорциумом W3C, определяет формат запросов к Webсервисам. Сообщения между Web-сервисом и его пользователем
пакуются в так называемые SOAP-конверты (SOAP envelopes,
иногда их еще называют XML-конвертами). Само сообщение
может содержать либо запрос на осуществление какого-либо
действия, либо ответ — результат выполнения этого действия;
WSDL (Web Service Description Language). Интерфейс Web-cepвиса описывается в WSDL-документах (a WSDL — это
подмножество XML). Перед развертыванием службы разработчик
составляет ее описание на языке WSDL, указывает адрес Webсервиса, поддерживаемые протоколы, перечень допустимых
операций, форматы запросов и ответов;
UDDI (Universal Description, Discovery and Integration) — протокол
поиска Web-сервисов в Internet (http://www.uddi.org/).
Представляет собой бизнес-реестр, в котором провайдеры Webсервисов регистрируют службы, а разработчики находят
необходимые сервисы для включения в свои приложения.
В данное время существуют три различные технологии,
поддерживающие концепцию распределенных объектных
систем: EJB, DCOM и CORBA.
Вопрос №2
Основная идея, лежавшая в разработке технологии EJB
(Enterprise JavaBeans) — создать такую инфраструктуру для
компонентов, чтобы они могли бы легко «вставляться» («plug in»)
и удаляться из серверов, тем самым повышая или снижая
функциональность сервера.
Новый компонент создается из уже существующих, готовых и
настраиваемых, аналогично RAD-системам.
Опубликованная в марте 1998 г. EJB-спецификация версии 1.0
определяет следующие цели.
1) Облегчить разработчикам создание приложений, избавив их
от необходимости реализовывать с нуля такие сервисы, как
транзакции (transactions), нити (threads), загрузка (load
balancing), хранение, передача и безопасность данных
При этом все равно имеется возможность самому контролировать
и описывать порученные системе процессы.
2) Описать основные структуры EJB-системы, описав при этом
интерфейсы взаимодействия (contracts) между ее компонентами.
3) EJB преследует цель стать стандартом для разработки
клиент/сервер приложений на Java:
а) исходные JavaBeans (Delphi, или другие) компоненты от
различных производителей можно было составлять вместе с
помощью соответствующих RAD-систем, получая в результате
работоспособные клиенты,
б) таким же образом серверные компоненты EJB от различных
производителей также могут быть использованы вместе.
EJB-компоненты, будучи Java-классами, должны, работать на
любом EJB-совместимом сервере даже без перекомпиляции, что
практически нереально для других систем.
4) EJB совместима с Java API, может взаимодействовать с другими
(не обязательно Java) приложениями, а также совместима с
CORBA.
Сущность технологии
EJB-объект (созданный с помощью сервисов контейнера) и EJBкомпонента (созданная разработчиком) реализуют один и тот же
интерфейс. В результате, когда приложение-клиент хочет вызвать
метод у EJB- компоненты, то сначала вызывается аналогичный (по
имени) метод у EJB-объекта, что находится на стороне клиента, а
тот, в свою очередь, связывается с удаленной EJB-компонентой и
вызывает у нее этот метод (с теми же аргументами).
В EJB программные компоненты, которые являются как бы
кирпичиками программы, называются Beans (в переводе —
бобы). Мы будем далее их именовать бинами.
Типы «бинов»
Первый тип Session bean представляет собой EJB-компоненту,
связанную с одним клиентом. «Бины» этого типа, как правило,
имеют ограниченный срок жизни (хотя это и не обязательно) и
редко участвуют в транзакциях.
Он предназначен для выполнения некоторых функций на стороне
сервера от имени одного клиента.
Типы «бинов»
Второй тип Entity bean представляет собой компоненту,
работающую с постоянной (persistent) информацией, хранящейся,
например, в базе данных. Entity beans ассоциируются с
элементами баз данных и могут быть доступны одновременно
нескольким пользователям.
Например, entity bean может представлять собой строку какойнибудь таблицы из базы данных или даже результат операции
SELECT.
Достоинства EJB:
1. быстрое и простое создание;
2. Java-оптимизация;
3. кроссплатформенность;
4. динамическая загрузка компонент-переходников;
5. возможность передачи объектов по значению;
6. встроенная безопасность.
Недостатки EJB:
1. поддержка только одного языка — Java;
2. трудность интегрирования с существующими приложениями;
3. плохая масштабируемость;
4. производительность;
5. отсутствие международной стандартизации.
Вопрос №3
Технология DCOM (Distributed Component Object Model) —
программная архитектура, разработанная компанией Microsoft
для распределения приложений между несколькими
компьютерами в сети. Программный компонент на одной из
машин может использовать DCOM для передачи сообщения (его
называют удаленным вызовом процедуры) к компоненту на
другой машине. DCOM автоматически устанавливает соединение,
передает сообщение и возвращает ответ удаленного компонента.
Достоинства DCOM:
1. независимость от языка;
2. динамический/статический вызов;
3. динамическое нахождение объектов;
4. масштабируемость;
5. открытый стандарт (контроль со стороны TOG);
6. множественность Windows-программистов.
Недостатки DCOM:
1. сложность реализации;
2. зависимость от платформы;
3. нет именования через URL;
4. нет проверки безопасности на уровне выполнении ActiveX
компонент;
5. отсутствие альтернативных разработчиков.
Вопрос №4
Технология CORBA специфицирует инфраструктуру
взаимодействия компонент (объектов) на представительском
уровне и уровне приложений модели OSI. Она позволяет
рассматривать все приложения в распределенной системе как
объекты.
Объекты могут одновременно играть роль и клиента, и сервера:
роль клиента, если объект является инициатором вызова метода
у другого объекта; роль сервера, если другой объект вызывает на
нем какой-нибудь метод.
Объекты-серверы обычно называют «реализацией объектов».
Практика показывает, что большинство объектов одновременно
исполняют роль и клиентов, и серверов, попеременно вызывая
методы на других объектах и отвечая на вызовы извне.
Достоинства CORBA:
1. платформенная независимость;
2. языковая независимость;
3. динамические вызовы;
4. динамическое обнаружение объектов;
5. масштабируемость;
6. CORBA-сервисы;
7. широкая индустриальная поддержка.
Недостатки CORBA:
1. нет передачи параметров по значению;
2. отсутствует динамическая загрузка компонент-переходников;
3. нет именования через URL.
Download