Разработка веб-служб при помощи Oracle WebLogic

advertisement
<Insert Picture Here>
Разработка веб-служб при помощи Oracle WebLogic
Андрей Забелин
Oracle CIS
Программа
•
•
•
•
•
•
<Insert Picture Here>
Архитектура веб-служб
Инфраструктура Oracle Web Service
Ключевые возможности
Средства разработки, Администрирование
Выводы
Вопросы и ответы
<Insert Picture Here>
Архитектура веб-служб
Веб службы: что это?
URL-адрес
описания
веб-службы
UDDI
Реестр
веб-служб
WSDL
Поиск
веб-службы
Клиент
веб-службы
(JEE,SOA,.NET,
PL/SQL ,
.NET,C/C++, …)
URL-адрес
веб-службы
SOAP/REST
Вызовы
с передачей информации
в формате XML
Описание
веб-службы
веб-служба
(JEE, SOA,
PL/SQL,
.NET,C/C++,…)
Спецификации JAX-WS и JAX-RPC
WSDL (описание веб-службы)
Конечная точка
веб-службы
Клиент
веб-службы
Stub
WSDL<->Java Mapping
Tie
Container
Dispatch
JAX-WS/RPC API
JAX-WS/RPC API
Runtime System
На клиенте
Runtime System
На сервере
Протоколы (SOAP/REST)
Транспортный уровень
Политики веб-служб
Управление
и хранение
политик
Поиск
ссылки на
политику
Обязательное
использование
политики
Поиск
ссылки на
политику
Клиент
веб-службы
(JEE, .NET,
SCA, …)
Обязательное
использование
политики
SOAP
Security/RM/…
WSDL
With
Policies
Описание
политик
веб-службы
веб-служба
(JEE, .NET,
BPEL, SCA,
…)
Веб-службы сегодня
• Развивающиеся стандарты:
– JAX-*
– WS-*
• Основные пути развития:
–
–
–
–
–
–
Удовлетворение требованиям безопасности
Увеличение производительности
Снижение сложности разработки веб-служб
Совместимость
SOAP или REST
…
<Insert Picture Here>
Инфраструктура
Oracle Web Service
Технологии Oracle Fusion Middleware
Технологии Oracle Fusion Middleware
Миссия Oracle Web Service
Семейства
спецификаций:
• JAX-*
• WS-*
Стандарты
Расширения
Oracle WS
Совместимость
Гарантированная совместимость с:
• продуктами Oracle FMW products
• продуктами от 3-х производителей
Расширения
стандартов:
• Надёжность
• Маштабируемость
•
Производительность
Компоненты Oracle Web Service
Oracle WS
Infra WS
Разработка
JDeveloper
OEPE
SOA WS
Политики
OWSM
policies
WLS
policies
ADF WS
WebCenter WS
Управление
EM
WLS WS
JEE WS
WLS Console
Развитие Oracle Web Service
WLS 9.x
• J2EE 1.4
• JAX-RPC
• WS-Policy & WS-Sec
• расширения
WLS 10.x
• JEE 5
• JAX-WS RI
• WS-*
• Надёжность
• Маштабируемость
FMW 11gR2
• JEE 6
• объединение стеков
• WS-Eventing
• JMS Transport
• SCA
FMW 11gR1
• JEE 5
OAS 10.1.3.x
• двойной стек
• J2EE 1.4
• OWSM политики
• JAX-RPC
• полный цикл управления
• WS-Reliability & WS-Sec
• встроенное связывание
Объединение технологий
Лучший в своём классе стэк Web Service
Oracle WebLogic Server
Admin
Console
Workshop
JMS
WS-*
JAX-RPC
JAX-WS RI
Лучший сервер приложений
WebLogic Server Web Service
Admin
Console
JMS
JAX-RPC
Workshop
WS-*
JAX-WS RI
Enterprise
Manager
Asynch WS
JAX-RPC
JDeveloper
WS-*
OWSM
Лучшая платформа Oracle
Oracle Application Server Web Service
Enterprise
Manager
Asynch WS
JAX-RPC
JDeveloper
WS-*
OWSM
Инфраструктура Oracle Web Services
Управление Web сервисами
с помощью EM/WLC/WLST
WSSecurity
WSAddressing
HTTP
SOAP
WSReliable
Messaging
HTTP
REST
JMS
SOAP
WS-AT
Разработка Web сервисов
с помощью JDeveloper/OEPE
MTOM
Logging
Auditing
JAXB
Data Binding
Asynch
Service
Декларативное QoS (WS-Policy)
JAX-WS
SwA
Stateful
Service
WSIF
Web Services Java Programming Model – Java EE
WebLogic Server
<Insert Picture Here>
Ключевые
возможности
Обзор возможностей
Стандарты
Дополнительные
Управление
• JAX-*
• Надёжность,
• Управление веб-
• SOAP1.* & WS-Policy
• WS-SecurityPolicy
• WS-ReliableMessaging
• WS-Addressing
• WS-SecureConversation
• MTOM
• WS-AT
• REST
• JAXB/SDO databinding
• WS-I BP/BSP/RSP
маштабируемость,
производительность
• Database web service
• JMS transport
• XMLBeans databinding
• SCA-J
• Spring web service
• Stateful веб-службы с
C*Web
• Пользовательские
политики
службами
• Настройка защиты веб-
служб
• Управление
политиками
• Управление веб-
службами с помощью
WLST
• Тестирование веб-
служб
Поддержка стандартов в Weblogic Server
JAX-RPC
•JAX-RPC data-binding rules
•XMLBeans
•WS-ReliableMessaging
• WS-SecureConversation
•WS-Trust
•Расширения в WLS
•Conversational Web
Services
•Asynchronous Requestresponse
•Callbacks
•Buffered Web Services
(JMS)
•Transport-related
Annotations
JAX-WS
•JSR 181/JSR 109
• WS-Policy 1.5, WSSecurityPolicy 1.2.
•WS-Security 1.1, WSSecurityPolicy 1.2
•Smart Policy
•SAML Token Profile 1.1
•MTOM with WS-Security
•JAXB for data-binding
•Woodstox StAX Parser
3.2.4
•WS-Security 1.1, WSSecurityPolicy 1.2
•OWSM security policy
•OASIS XML Catalog v1.1
support
•WS-ReliableMessaging
•WS-SecureConversation
•WS-Trust
Защита веб-служб
Сообщение
SOAP
JAX-WS
клиент
Клиент WS-Security
Sign
Check
Signature
Encrypt
Add Auth
Token
Transport
HTTP
Запрос
Сервер WS-Security
Check Auth
Decrypt
Token
Check
Signature
Отклик
Decrypt
• Управление доступом
Encrypt
Сообщение
SOAP
JAX-WS
конечная
точка
Sign
• Поставляемые политики:
• Конфиденциальность сообщений
• WLS policies
• Сохранность сообщений
• OWSM policies
• Невозможность отказа
• Легко интегрируемая проверка подлинности
• Подключаемые сервисы аутентификации
от политики защиты
• Защищённый обмен
• Security Token Service(STS)
Декларативное качество сервиса (QoS)
Сообщение
SOAP
JAX-WS
клиент
•
Управление
клиентом веб-службы
Auditing/
Logging
WSRM
WSSecurity
Auditing/
Logging
WSRM
Add Auth
Token
Конфигурируются с помошью
• OEM
• WLS Console
• WLST
• JDeveloper/OEPE
Transport
HTTP
Запрос
Отклик
Управление
поставщиком веб-службы
WSSecurity
WSRM
Auditing/
Logging
WSSecurity
WSRM
Auditing/
Logging
Параметры QoS устанавливаются
как политики
• Security
• Reliable Messaging
• Attachment
• Addressing
• Management
Сообщение
SOAP
JAX-WS
конечная
точка
Надёжная доставка (WS-ReliableMessaging)
Получатель
Отправитель
Уровень
приложения
Уровень
приложения
Msg
RM Source
RM Destination
Ack
• Неявная поддержка через политики
• Маштабируется и кластеризуется
• Надёжная передача и восстанавление
сообщения из постоянного хранилища
•Надёжность доставки сообщений: как для
синхронной , так и асинхронной передачи
•Надёжный обмен сообщениями посредством
возможности множественного вызова
Асинхронный вызов веб-службы
Синхронная передача
•Запрос/ответ через HTTP
•Короткие операции
•Обработка в реальном
времени
•Недостатки
•блокировки
•ожидания
•таймауты
Асинхронная передача
•Двусторонний обмен
сообщениями через HTTP
•Продолжительные операции
•Отложенная или групповая
обработка
•Преимущества
•Лучше подходит для
реальных бизнес процессов
•Богатство шаблонов
передачи сообщений
•Основан на многопоточности
и уведомлениях по JMS
Вызовы веб-службы с поддержкой сессии
•
•
•
Полезно для приложений, если
•
Клиент использует
последовательные вызовы
методов сервисов
•
результат вызова метода
сервиса зависит от
предыдущих вызовов
Управление передачей
сообщений к конечной точке
сервиса
•
“закрепление” экземпляра
конечной точки сервиса
•
Сохранение атрибутов в
HTTP-сессии
Стили программирования:
•
JAX-RPC : @Conversation
•
•
JAX-WS : WebServiceContext
Маштабируемость с помощью
Coherence*Web
Сервер
Клиент
GetShoppingCart (new session)
ShoppingCart + SessionID(#1)
addItem + SessionID(#1)
Response + SessionID(#1)
GetShoppingCart(new session)
ShoppingCart + SessionID(#2)
Маштабируемость с помощью Coherence*Web
• Coherence*Web
– Контекст сессий хранится в
распределённом кеше
– Кеширование данных большого
количества сессий
• Преимущества
– Управление данными сессий независимо
от сервера приложений
– Поддержка большого числа сессий без
добавления серверов приложений
– Перезагрузка приложения или контейнера
без потери сессий
• Выгоды от использования
Coherence*Web:
– Бесконечное маштабирование
– Высокая доступность для
продолжительных по времени сессий
• Coherence может применяться также
• для различного вида приложений:
web service , JSF, Spring ;
• на различных серверах приложений:
WebLogic, OAS, WebSphere, Jboss .
Веб-службы для работы с базой данных
Decoding
SOAP
JAX-RPC
Servlet
PL/SQL
JSP
SQL/DML
XML
SQL/Query
AQ
Автоматическая
генерация
Java-классов
Encoding
мапинга
SOAP
SOAP
XML
Libraries Parser
Oracle WebLogic Web Service
JDBC
Создание REST веб-службы
JAX-WS HTTPBinding
JAX-RS (JSR-311)
@WebServiceProvider(
targetNamespace="http://exa
mple.org",
serviceName = "HelloRS")
@BindingType(value =
HTTPBinding.HTTP_BINDING)
public class HelloRS
implements Provider<Source> {
@Path("/helloworld")
public class HelloRS {
@GET
@Produces("text/plain")
public String
getClichedMessage() {
return "Hello World";
}
}
public Source
invoke(Source source) {
return
createSource(“Hello World”); }
}
Сервисно-компонентная архитектура (SCA)
pro perties
Java interface
– Composite: цельная
единица, модуль для
развёртывания
– Service : точка входа в
композит
– Component : элемент,
реализующий логику
– Reference: ссылка на
внешний сервис
– Wire: соединения
сервисов, компонентов
и ссылок на сервисы
– Binding : протоколы для
сервисов и ссылок на
сервисы
WSDL portType
S
S
s ervic e
C1
R
w ire
B inding :
SOAP
JMS
JCS
S
…
C2
c o m po nent
R
R
re ferenc e
c om po s ite
WebLogic SCA:
– Инструменты для создания SCA
приложения на базе простых java-классов
– бесшовная интеграция с Oracle SOA
Platform
<Insert Picture Here>
Средства разработки,
Администрирование
Инструменты разработчика
•
JDeveloper
JAX-RPC/WS & SOA
Редактор WSDL
HTTP Analyzer
• HTTPS
• WS-*
– DBWS
– JAX-RS
– WLS SCA
–
–
–
•
OEPE
–
–
–
–
•
JAX-WS
Редактор WSDL
Редактор JAX-WS/JAXB
WLS SCA
Сборка на WLS
с помощью Ant
–
JAX-RPC/WS
Пример создания веб-службы в JDeveloper
Тестирование веб-службы: JDeveloper
Тестирование веб-службы: JDeveloper
Тестирование веб-службы: OEM
Средства администрирования веб-служб
• Администрирование может
производиться с помощью:
– Oracle Enterprise Manager
– WebLogic Administration Console
– WebLogic Scripting Tool (WLST)
– Конфигурации веб-служб
• поиск
• изменение
– Управление политиками
• включение/отключение
• параметры конфигурации
– Мониторинг активности
• Метрики производительности
• Метрики нарушений исполнения политик
OEM : Полный цикл поддержки политик веб-служб
• Администрирование политик
– Обзор доступных политик
– Подключение политик к вебслужбе
– Мониторинг нарушений политик
• Управление политиками
– Поиск политик
– Создание новых политик
(в том числе на основе существующих)
– Генерация политик клиента
– Отслеживание использования
политик
– Экспорт/импорт
– Поддержка всего жизненного
цикла управления политиками
• Авторизация
• Версионность
• Запрет использования
устаревших политик
<Insert Picture Here>
Выводы
Инфраструктура веб-служб уровня предприятия
Маршрутизация
на основе содержимого
Композитные
приложения
Контроль
доступа
Гарантированная
доставка
Асинхронная
Защита
передача
сообщений
данных
Шаблоны проектирования веб-служб уровня предприятия
WSSecurity
WSAddressing
WSReliable
Messaging
WS-AT
MTOM
Logging
Auditing
JAXB
Data Binding
Asynch
Service
Декларативное QoS (WS-Policy)
JAX-WS
SwA
Stateful
Service
SCA
Web Services Java Programming Model – Java EE
Oracle WebLogic Server
<Insert Picture Here>
Вопросы и ответы
OWSM
Миграция приложений OC4J JAX-RPC
• Два пути миграции:
– Compatibility mode
– Миграция на WebLogic
JAX-RPC веб сервисы
• Подробная документация
– Upgrade Guide for Java EE
• WebLogic SmartUpgrade
– база знаний
– отчёты
– автоматическая миграция
<oracle:preDeploy
output="${out.dir}/preDeploy"
ear = "${build.location}/${app.name}.ear"
input = "1013apps/${app.name}.ear"/>
Поддержка транзакционности веб-служб
JEE
Applications
Java
SCA
Applications
evi t art si ni md A
) X MJ( s noi t ar e p O
Transaction Coordinator
Spring
Ships OC4J TX
Integration
Transaction Recovery Manager
Global
Transaction
Local
Transactions
Protocol Event
Notification (JMX)
Recoverable Last
Resource Commit
Transaction
Propagation
Peer and Inbound
HA Tx Recovery
Logging
(Presume Nothing
Presume Abort)
Transaction Manager (JTA/JTS)
XA Transaction
RAC Affinity
Tx Log
(File or DB)
WS-AtomicTransaction/WS-Coordination
DB Resource
Manager
3rd Party (JMS, DB…)
Resource Manager
(Global, Local Tx)
(Global, Local Tx )
3rd Party (WebLogic, Vitria BW…) Other OC4J Instances
(Global, Local & Tx Propagation)
Transaction Manager
(JTS Tx Interoperability )
Download