Service Component Architecture a komponenty Oracle SOA Suite Marek Rychlý Vysoké uˇcení technické v Brneˇ Fakulta informaˇcních technologií Ústav informaˇcních systému˚
Pˇrednáška pro IOA 15. ˇríjna 2014
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
1 / 23
Obsah
1
Service Component Architecture (SCA) Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
2
SCA komponenty Oracle SOA Suite Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
3
ˇ Shrnutí a záver
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
2 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
Service Component Architecture (SCA) (opakování z 1. pˇrednášky)
Komponentová aplikace je služba poskládaná z jedné cˇ i více komponent. ˇ komp. aplikace, komponenty behových ˇ (komponenty jsou opet prostˇredí, atp.)
ˇ SOA pˇri návrhu software. je výsledkem uplatnení (SOA je architektonický styl, zatímco SCA je model sestavení)
je nasazována jako celek, díky dekompozici lépe udržovatelná. ˇ v SCA kontejnerech) (SCA zaruˇcuje kompatibilitu komponent, ty beží
(diagram pˇrevzat z „Service Component Architecture, developerWorks, IBM“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
4 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
Komponenty v architektuˇre SCA Služba je implementována jako komponentový systém jako orchestrace dalších služeb, jako kompozice implementaˇcních komponent, cˇ i pˇrímo implementována jako objekt.
Zpusob ˚ implementace muže ˚ záviset na ˇ tj. poˇctu nabízených operací, granularite, ( „fine-grained“ jednoúˇcelové služby vs. „coarse-grained“ super-služby)
ˇ jejím zameˇ ˇ rení a úplnosti, poskytované funkcionalite, ˇ potˇrebné operace) (musí nabízet funkˇcneˇ podobné a všechny nyní i pozdeji
zapouzdˇrení, pro volnou vazbu a znovupoužitelnost, (snažit se mít co nejméneˇ závislostí, zachovat beze-stavovost, atp.)
zpusobu ˚ volání, tj. pˇrístupu a protokolu volání operací. (a/synchronní volání, SOAP pˇres HTTP/JMS, lokální objekt/RPC, atd.)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
5 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
Rozhodování pˇri návrhu SOA/SCA „Fine-grained“ nebo „Coarse-grained“ služby? Doporuˇceno používat „coarse-grained“ (business) služby. (implement. komponentami menší granuality implement. „fine-grained“ objekty)
Jedna na venek publikovaná služba = jeden business proces. (muže ˚ být realizována orchestrací dalších podpurných ˚ a technických služeb)
ˇ vracet co nejvíce informací. S dotazem pˇredávat a s odpovedí ˇ síte, ˇ jednodušší správa služeb; vetší ˇ felxibilita (menší poˇcet volání, tj. zátež ˇ možnosti modifikace služeb bez zmeny ˇ jejich interakcí) budoucího vývoje, tj. vetší
ˇ funkcionalitu do služeb? Jak definovat/rozdelit Operace jedné služby = jedna poskytovaná funkcionalita. (neseskupovat podle (doˇcasné) souslednosti v BP, ale podle (trvalé) funkˇcní souvislosti; napˇr. „naskladnit/vyskladnit zboží“, nikoliv navíc „tisk skladového listu“)
Operace poskytující kompletní funkˇcnost. (napˇr. všechny create/read/update/delete operace se záznamem, nejen create/read/delete vyžadované systémem, kde je nyní služba používána) Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
6 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
SCA komponenta (component) ˇ „Komponenta“ nastavuje „instanci“ nejaké „implementace“ a integruji ji do „komponentového systému“. (implementace použita komponentami s ruznými ˚ parametry a kontextem; napˇr. „business rule“ komponentu lze zapojit ruzn ˚ eˇ do ruzných ˚ BPEL procesu) ˚
Definice komponenty zahrnuje popis component service interface – poskytovaného rozhraní, (popisuje „contract“, tj. zpusob ˚ volání komponenty, napˇr. pom. WSDL)
references – požadovaných rozhraní, (popisuje požadované komponenty/služby pro funkˇcnost dané komponenty)
properties – vlastností/parametru˚ instance, (popisuje konkrétní hodnoty nastavení dané instance v roli dané komponenty)
vlastní implementace. (napˇr. typem komponenty Oracle SOA Suite, kódem, externím odkazem, atp.)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
7 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
SCA komponentový systém (composite) ˇ Komponenty propojeny do složitejších komponentových systému. ˚ (pˇri „hierarchické kompozici“ jsou systémy také komponenty; Oracle nepodporuje)
Komponentový systém v Oracle SOA Suite ˇ v jednom SCA kontejneru, beží ˇ ˇ tak nutno rozdelit ˇ na nekolik ˇ (pokud má bežet distribuovane, systému) ˚
ˇ ( „deployed“) jako celek. je spoušten ˇ rozdelit) ˇ (pokud mají komponenty ruzný ˚ životní cyklus, tak nutno opet
je popsán v souboru composite.xml (editovatelný pomocí SOA Composite Editoru v Oracle JDeveloper)
(diagram pˇrevzat z „Design and develop a more effective SOA, Part 5“) Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
8 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
SCA spojení (bindings, wires) Zpusob ˚ propojení komponent nebo komponentových systému˚ podle strany spojení, (service binding & reference binding – publikace služeb a integrace komp.)
podle pozice vzhledem ke kompozici, (default binding/wire, explicit binding between SCA composites, adapters)
podle technologie/protokolu propojení. (SOAP over HTTP, SOAP over JCA, RMI, file, etc.)
(diagram pˇrevzat z „Oracle Fusion Middleware Developer’s Guide for Oracle SOA Suite 11gR1“) Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
9 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
Adaptéry, architektura JCA ˇ SCA spojení na existující systémy ruzných Umožnují ˚ rozhraní. (file, dbs., etc.; ale také „packaged“/SOAP a „legacy“ rozhraní pro SAP a další)
Adaptéry jsou JCA komponenty použitelné v SCA „composite“. (JCA = Java EE Connector Architecture, což je také interní/ne-SOAP rozhraní ˇ bežných komponent; zapozdˇrením do „composite“ lze zpˇrístupnit pomocí SOAP)
(diagram pˇrevzat z „Oracle Fusion Middleware User’s Guide for Technology Adapters 11gR1“) Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
10 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Komponenty v architektuˇre SCA SCA components, composites, bindings/wires Adaptéry/JCA a Service Data Objects
Service Data Objects (SDOs) Java API pro manipulaci s daty ruzného ˚ puvodu ˚ (JSR 235). (XML zdroje, Web Services, RDBMs, EJBs, podnikové IS pˇrístupné pˇres JCA, atp.)
ˇ jako kolekce stromových struktur. Data v SDO zpˇrístupneny (poskytnuty metody pro procházení stromu, ˚ cˇ tení (meta)informací, a pro zápis)
ˇ pomocí „Data Access Service“ (DAS). SDO zpˇrístupneny ˇ ˇ do zdroje) (DAS umožnuje získat SDO ze zdroje a uložit modifikované SDO zpet
DAS vyžaduje on-line pˇrístup pouze pˇri získání a uložení SDO. (manipulace s SDO muže ˚ být off-line, jsou to tzv. „disconnected data graphs“)
ˇ SDO doplnuje SCA o standardizovaný pˇrístup k datum. ˚ (SCA definuje model sestavení, SDO model pˇrístupu k datum ˚ v SOA systémech)
(diagram pˇrevzat z „An introduction to Service Data Objects for PHP“) Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
11 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
SCA komponenty Oracle SOA Suite 12c BPEL Process orchestruje ostatní komponenty/služby do BP ˇ Mediator smeruje komunikaci/zprávy mezi komponentami/službami Human Task zprostˇredkovává komunikaci s lidmi, úˇcastníky procesu˚ Business Rule implementuje rozhodovací pravidla ˇrídící tok procesu ˇ Spring Service umožnuje integraci Java (POJO) komponent ˇ Adapter zpˇrístupnuje externí systémy a zdroje BPMN Process provádí BPEL procesy realizující dané BPMN modely
(diagram pˇrevzat z „Oracle SOA Suite 11g: Essential Concepts“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
13 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
Tvorba SCA aplikace v nástroji Oracle JDeveloper
(diagram pˇrevzat z „Oracle SCA Composites Visualized By MS Visio“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
14 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
Orchestrace služeb a „BPEL Process“ komponenta Orchestruje napojené komponenty/služby pomocí vlastní logiky. (komponenta je vhodná pro implementaci business procesu/služeb) ˚
Logika orchestrace zapsána v jazyce BPEL v1.1 nebo BPEL v 2.0. (BPEL v1.1 aka BPEL4WS a BPEL v2.0 aka WS-BPEL jsou standardizovány)
BPEL nemá stanovenou grafickou notaci, narozdíl od BPMN. (BPMN modely jsou pˇrevoditelné do BPEL, ikdyž to je pak velmi špatneˇ cˇ itelné)
(diagram pˇrevzat z „Oracle SOA Suite 11g: Essential Concepts“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
15 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
Integrace služeb a komponenta „Mediator“ ˇ Smeruje tok XML zprávy mezi komponentami/službami. ˇ ˇ zpráv) (smerování muže ˚ být na základeˇ hlaviˇcek i na základeˇ tela
ˇ ˇ XSLT transformace a XML validace. Navíc umožnuje provádet ˇ ruzné ˇ rovat jejich platnost) (tj. pˇrevádet ˚ formáty XML dokumentu˚ a oveˇ
Komponenta podporuje také asynchronní volání. ˇ ( „publish/subscribe“, kdy pošle zachycené události pˇríslušným odberatel um) ˚
Lze použít napˇr. k virtualizaci služeb, cˇ i zachytávání událostí. (pˇri virtualizaci Mediator vystupuje v roli virtualizované služby, které je implementována neznámou nebo napˇr. puvodn ˚ eˇ nekompatibilní službou)
Rozhodování možno také pomocí „Business Rule“ komponent. ˇ (tzn. Mediator muže ˚ rozhodovat o smerování/transformaci zpráv na základeˇ ˇ zpráv pomocí „Business Rule“ komponenty) posouzení hlaviˇcek cˇ i tela
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
16 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
Business pravidla a „Business Rule“ komponenta ˇ Umožnuje popsat proces rozhodování na základeˇ run-time stavu. (vhodné pro vyjmutí/abstrakci rozhodování z/v BPEL procesu cˇ i Mediatoru)
Pravidla jako „if-them“ podmínky v rozhodovacích tabulkách. (srozumitelné i pro neprogramátory)
ˇ ené ˇ Vhodné pro „business“ a cˇ asto men podmínky. (mohou upravovat pˇrímo business analytici, bez nutnosti rekompilace aplikace)
(diagram pˇrevzat z „Oracle SOA Suite 11g: Essential Concepts“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
17 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
Zapojení uživatelu˚ a „Human Task“ komponenta ˇ Umožnuje interakci SCA aplikace s uživateli. (zapojení daných uživatelu˚ cˇ i daných skupin uživatelu˚ do business procesu)
Používána samostaneˇ nebo napojena na BPEL proces. (poskytnutí UI klientských službám nebo uživatelské rozhodování v BPEL)
Interakce pˇres BPM Worklist v Oracle SOA Suite, nebo zprávami. (tj. pˇres pˇreddefinované webové rozhraní nebo napˇr. email, SMS, jabber, atp.)
(diagram pˇrevzat z „Oracle SOA Suite 11g: Essential Concepts“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
18 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
Integrace Java aplikací a „Spring Service“ ˇ Umožnuje zaˇclenit Plain Old Java Objects (POJOs). (Spring SCA kontext mapuje tˇrídy na SCA poskytovaná/požadovaná rozhraní)
Alternativa k integraci tˇríd jako Web Services pˇres JAX-WS API. (takto mužeme ˚ zaˇclenit POJO pˇrímo v rámci JCA, bez nutnosti HTTP, atd.)
Komponentu možno použít v SCA cˇ i publikovat jako EJB/WS. (navíc JavaBeans v Spring kontextu mohou používat ostatní komponenty SCA)
(diagram pˇrevzat z „Oracle Fusion Middleware Developer’s Guide for Oracle SOA Suite 11gR1“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
19 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
Pˇrehled komponent a jejich použití v jDeveloperu BPEL Process, Mediator, Business Rule Human Task, Spring Service, Adapter Services
„Adapter Services“ pro externí pˇrístup ˇ definovat externí rozhraní SCA aplikace. Umožnují (poskytovaná/požadovaná rozhraní, tj. „exposed services“/ „external references“)
ˇ požadavky/odpovedi ˇ z/do formátu cízích systému. Pˇrevádejí ˚ (napˇr. CSV soubor na vstupní XML nebo výstupní XML na záznam v log souboru)
(diagram pˇrevzat z „Oracle SOA File Adapter Services“)
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
20 / 23
Service Component Architecture (SCA) SCA komponenty Oracle SOA Suite ˇ Shrnutí a záver
ˇ Shrnutí a záver
ˇ rený a úplný. Služby „coarse-grained“, seznam operací funkˇcneˇ zameˇ SCA poskytuje mode sestavení, SDO model práce s daty v SCA. Oracle SOA Suite nabízí pro SCA komponenty ruzných ˚ typu. ˚ SCA aplikace muže ˚ komunikovat pˇres adaptéry nebo jako Web Service.
ˇ Pˇríšte? Integrace služeb a komponenta „Mediator“ (integrace služeb, EDA a EDN, použití a konfigurace komponenty, tvorba ˇ smerovacích pravidel, . . . )
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
22 / 23
ˇ Podekování
ˇ byl podpoˇren projektem MŠMT Tento pˇredmet ˇ CZ.1.07/2.2.00/15.0163 „Vzdelávání v IT pro praxi“.
Marek Rychlý
Service Component Architecture a komponenty Oracle SOA Suite — Pˇrednáška pro IOA, 15. ˇríjna 2014
23 / 23