SOA és a Web 2ade.web.elte.hu/webtech/Webtech-1.pdfWeb-es architektúra SOA Adatbázis szerver Back...

Preview:

Citation preview

Webtechnológiák információs redszerekben

Bevezető – 1.

Témakörök

• Web szolgáltatások – első beadandó

• Szolgáltatás-Orientált Architektúrák - SOA

• Üzleti folyamatmenedzsment – BPM (Bizagi) – második beadandó

• Enterprise webes protokollok

• IoT protokollok

• Elosztott webes információs rendszerek

• Microservice architectures

Követelmények

Három beadandó feladat

1. "Primitív SOA" - WS (II.13.)

2017. március 13.

2. BPMN feladat (II.20.)

2017. április 24.

3. Összetett beadandó feladat (III.6.)

I. fázis: 2017. május 8.

II. fázis: 2017. június 5.

1. Beadandó - WebShop

• WS kliens – szerver példa alkalmazás: Java / PHP / .NET

• Adatbázis legalább az alábbi táblákból kell álljon: – Termékek adatai: termékId, név, leírás

– Készletinformációk: termék, készletDb, eladási_ár, dátum

– Vevők: id, név, cím

– Eladások: termekid, vevőid, db, ár, dátum

• RESTful WS: Termék és készletinformációk lekérésée

• SOAP WS: Termék értékesítése

• Határidő: 2017. márc. 13.

1. beadandó

5

Nagykereskedői Információs

Rendszer

Nagykereskedői Információs

Rendszer

Kiskereskedői Információs

Rendszer

Kiskereskedői Információs

Rendszer

Készlet

lekérdezés -

RESTFul

Beszerzés -

SOAP

1. beadandó

• WS kliens – szerver példa alkalmazás: Java / PHP / .NET

• Adatbázis: – Termékek adatait: termék név, leírás, eladási_ár

(aktuális) – Készletinformációkat: termék, készletDb

• REST WS: Termék és készletinformációk lekérésée • SOAP WS: Termék értékesítése

• Határidő: 2017. március 13.

Szükséges alapok

• HTTP

• Adatbázis-kezelés

• JavaScript / Java EE / ASP.NET & C# /Python /???

• Modellezési ismeretek

• XML

BEVEZETÉS

8

Szoftver rendszerek

Szoftver rendszerek

Monolitikus Elosztott

Hagyományos Web-alapú szoftverek

Web alkalmazások Szolgáltatás-orientált

alkalmazások

Web-es architektúra

Adatbázis szerver

RDBMS

Back End

Adatbázis szerver

XML DBMS

Nagy kapacitású, összetett

számításokat végző szerver

Front End

Logikai Layer Prezentációs Layer

Middleware

Alkalmazás szerver

Alkalmazás szerver

Web szerver

Prezentációs szerver

Web szerver

Prezentációs szerver

Kliens: Web böngésző

Kliens: Mobil böngésző /

mobil kliens

Internet

Tart

alo

m

HTM

L /

XM

L Ta

rtal

om

H

TML

/ X

ML

Meg

jeln

ítés

C

SS

Meg

jeln

ítés

C

SS

Vis

elke

dés

Ja

vaSc

rip

t V

isel

ked

és

Java

Scri

pt

Load

Bal

ance

r

Web-es architektúra SOA

Adatbázis szerver

Back End / Persistence Layer

Web szolgáltatás (alkalmazási

logika)

Egyéb erőforrások,

legacy systems (ERP, CRM, stb).

Front End

SOA Layer Prezentációs Layer

Middleware

ESB + Orchestration+ Web szerver

Prezentációs szerver

Web szerver

Prezentációs szerver

Kliens: Web böngésző

Kliens: Mobil böngésző /

mobil kliens

Internet

Tart

alo

m

HTM

L /

XM

L Ta

rtal

om

H

TML

/ X

ML

Meg

jeln

ítés

C

SS

Meg

jeln

ítés

C

SS

Vis

elke

dés

Ja

vaSc

rip

t V

isel

ked

és

Java

Scri

pt

Load

Bal

ance

r

WS

WS

WS

SOA: háttér rendszerekből Business Objects (resources), WS + Human task +

Business Rule. Üzleti folyamatok által irányítva

Vállalati alkalmazások

WEB-SZOLGÁLTATÁSOK

15

Webszolgáltatások „fogalma”

• IBM (lényege) – Egy interface, mely a hálózaton keresztül

szabványos XML üzenetekkel érhető el és hozzá formálsi XML leírás tartozik. (soap, wsdl)

• Sun – Szoftverelemek, melyeket az alkalmazások

felkutatnak, egyesíthetnek és átszervezhetnek, hogy megoldást találjanak a felhasználó problémájára. Elsősorban a Java nyelvre és az XML-re támaszkodnak.

16

Webszolgáltatások „fogalma”

• Microsoft (többféleképpen, lényeg)

– Nem objektummodellekre épít, hanem mindenhonnan elérhető webprotokollokon és adatformátumokon keresztül használjuk. Nem foglalkozik a megvalósítással, bármilyen rendszer, bármilyen programnyelv lehet a kiszolgáló. Nem szorítja meg az XML formátumot.

• W3C. 2004

– “A software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with XML serialization in conjunction with other Web-related standards.”

17

Webszolgáltatások „fogalma”

• Bármilyen rendszer • Bármilyen programnyelv • HTTP • URI / URL • MIME típusok • Web itt hálózat, nem feltétlenül Internet (Világháló, World

Wide Web) • Egységesítés, modularitás • (verziózás)

• Kérés-válasz típusú (Request-Response, Rq/Rs) • Lazán kapcsolt • Állapotmentesség

18

Webszolgáltatások

• Előzmények: – RPC (távoli eljáráshívás)

– XML-RPC

– CORBA

• API – Application Programming Interface

• Fajtái: – SOAP

– RESTful

– ...

19

State Machine

20

Start

25

10

5

50

35

30

25Ft

25Ft

10Ft

5Ft

5Ft

10Ft

Példa: Üdítő automata

API, Mashup, Web Service

21

Mashup

22

API protokollok - példák

• Atom

• CSV

• FTP

• GData

• GET

• JSON

• MQTT

• POST

• REST

• RSS

• SMPP

• SMTP

• SOAP

• Text

• XML-RPC

• XMPP

23

RESTful webszolgáltatások

• Representational State Transfer

• CRUD műveletekből HTTP műveleteket készítünk:

24

Alkalmazás művelet HTTP protokoll

Create POST

Retrieve GET

Update PUT

Delete DELETE

Alap HTTP protokoll tesztelése

• http://web-sniffer.net/

• Chrome Postman plugin

• SoapUI

• apigee.com

• Postman: Twitter API tesztelés

– Új Twitter app: https://apps.twitter.com/app/new

– Twitter API: https://api.twitter.com/1.1/search/tweets.json

25

Client

Response

Request

Server

User agent

• Request Line • Request Headers • Message Body

• Status Information • Response Header • Message Body

HTTP Request/Response

Client

Response

Request

Server

User agent

GET /index.html HTTP/1.1 Host: www.example.com

HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT ETag: "3f80f-1b6-3e1cb03b" Content-Type: text/html; charset=UTF-8 Content-Length: 131 Connection: close <html> <head> <title>An Example Page</title> </head> <body> Hello World, this is a very simple HTML document. </body> </html>

HTTP

Erőforrások (Resources) és Reprezentációjuk (Representation)

http://example.com/Resource

Resources

GET /Resource HTTP/1.1 Accept: application/XML

HTTP/1.1 200 OK XML Representation of

Resource

agent (example.com)

Erőforrás: dokumentum, adat, stb.

a szerveren, amit a kliens elérhet.

Az erőforrásoknak számos

reprezentációjuk lehet: pl.: JSON, XML

A kérésben a kliens megadhatja az

elvárt reprezentációt.

RESTful webszolgáltatások

• HTTP(S)

– Hívás 1 – GET

• URL (http://server/service?param1=ertek1&...)

• Név-érték párok (nincs struktúra, csak felsorolás)

• Urlencoding (értékek) Karakter ascii kódja hexadecimálisan % jel után („ ”=„+”)

• 2047 byte adat lehet a kérésben

29

Rész(let)ek

• HTTP(S)

– Hívás 2 – POST

• URL (http://server/service)

• Request data: bármi

• Request header Content-Type

» application/x-www-form-urlencoded (Név-érték párok (nincs struktúra, csak felsorolás))

» text/xml (lehet strukturálni)

30

Rész(let)ek

• HTTP(S) – Eredmény / Válasz

• Bármi lehet

• Általában szöveges adatok

• Response header Content-Type

• HTML

• TEXT

• XML

• JSON (JavaScript Object Notation)

31

Példa:

32

XML

<?xml version="1.0"

encoding="UTF-8"?>

<direct-messages

type="array">

<direct_message>

<text>Hello</text>

<sender>

<name>Teszt Elek</name>

</sender>

</direct-message>

</direct-messages>

JSON

[

{

"text":"Hello",

"sender":{

"name":"Teszt Elek"

}

}

]

JSON (JavaScript Object Notation)

• Nyelvtől független szöveg formátum („C-szerű leírás”) • Emberek számára is olvasható–írható, • Könnyen feldolgozható és előállítható, adatcsere-formátum. A JSON-nak két típusú felépítése lehetséges: • név-érték párok halmaza • értékek rendezett halmaza (pl. tömb, vektor) JSON ELEM LÉTREHOZÁSA PHP-BAN

<?php $array = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($array); // Eredmény: {"a":1,"b":2,"c":3,"d":4,"e":5} ?>

JSON ELEM OBJEKTUMMÁ ALAKÍTÁSA JAVASCRIPTBEN <script type="text/javascript"> var response = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var result = eval("("+response+")"); alert(result.a); // Eredmény: 1 alert(result.b); // Eredmény: 2 </script>

33

Rész(let)ek

• Kliens – Bármilyen rendszer

– Bármilyen böngésző

– Bármilyen nyelven írt alkalmazás • Web application

• Desktop application

• HTTP hívás kezdeményezése

• szövegfeldolgozása Szövegműveletek

XML programkönyvtárak

JSON programkönyvtárak

34

Rész(let)ek

• Szerver

– Bármilyen

– Bármilyen nyelven írt web alkalmazás

• HTTP kérés kiszolgálása Szövegműveletek (mint, ha HTML-t adna vissza)

XML programkönyvtárak

JSON programkönyvtárak

35

SOAP

36

W3C ajánlás (szabványosítás felé)

• SOAP – Simple Object Access Protocol

• Verzió: 1.2

• SOAP – kérés

– Request headerben

• Content-Type: text/xml

• SOAPAction

– Tartalom XML saját névtérben

37

W3C ajánlás (szabványosítás felé)

• SOAP – válasz

– Response headerben

• Content-Type: text/xml

– Válasz ugyanolyan borítékban (Envelope) található, mint a kérés

– Tartalom XML saját névtérben

38

Webszolgáltatások használata

39

Service

Registry /

Broker

Service

Consumer /

Requester

Service

Provider

Register Find

Bind

Execute

Webszolgáltatás protokol szintek

40

Service Transport Service Transport

Service Messaging Service Messaging

Service Description Service Description

Service Discovery Service Discovery - Webszolgáltatások regisztrálása

- UDDI

- Interfész specifikáció

- WSDL

- XML alapú üzenetek

- XML-RPC, SOAP

-Üzenet átviel

- HTTP, SMTP, FTP, BEEP

Service-based Processes Service-based Processes - Webszolgáltatások integrálása

- WS-BPEL

SOAP <soap:Envelope namespaces…>

<soap:Header>

<wsa:MessageID> unique ID </wsa:MessageID>

<wsa:ReplyTo> endpoint </wsa:ReplyTo>

</soap:Header>

<soap:Body>

<bank:BalanceRequest>

data

</bank:BalanceRequest>

</soap:Body>

</soap:Envelope>

SOAP

Body

Header

Példa:

43

Host: server.com

Content-Length: 100

SOAPAction:

"http://server/service"

Content-Type:

text/xml;charset=UTF-8

HTTP/1.1 200 OK

Content-Length: 100

Content-Type:

text/xml;charset=UTF-8

<soapenv:Envelope

xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/>

<soapenv:Header>

</soapenv:Header>

<soapenv:Body>

</soapenv:Body>

</soapenv:Envelope>

SOAP Request Message

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.stock.org/stock">

</soap:Body>

</soap:Envelope>

<m:GetStockPrice>

<m:StockName>IBM</m:StockName>

</m:GetStockPrice>

SOAP Envelope

Message

SOAP Envelope

Namespace

Message

Namespace

SOAP Response Message

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.stock.org/stock">

</soap:Body>

</soap:Envelope>

<m:GetStockPriceResponse>

<m:Price>34.5</m:Price>

</m:GetStockPriceResponse>

SOAP Envelope

Message

Result

returned in

Body

REST példa 1.

GET /stock/IBM HTTP/1.1

Host: www.example.org

Accept: application/xml

SOAP példa 1.

POST /InStock HTTP/1.1

Host: www.example.org

Content-Type: application/soap+xml; charset=utf-8

Content-Length: nnn

<?xml version="1.0"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-

envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-

encoding">

<soap:Body xmlns:m="http://www.example.org/stock">

<m:GetStockPrice>

<m:StockName>IBM</m:StockName>

</m:GetStockPrice>

</soap:Body>

</soap:Envelope>

REST példa 2.

POST /order HTTP/1.1

Host: www.example.org

Content-Type: application/xml; charset=utf-8

<?xml version="1.0"?>

<order>

<StockName>IBM</StockName>

<Quantity>50</Quantity>

</order>

48

SOAP példa 2.

POST /InStock HTTP/1.1

Host: www.example.org

Content-Type: application/soap+xml; charset=utf-8

Content-Length: nnn

<?xml version="1.0"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">

<m:BuyStock>

<m:StockName>IBM</m:StockName>

<m:Quantity>50</m:Quantity>

</m:BuyStock>

</soap:Body>

</soap:Envelope>

WSDL

• Web Service Description Language

• XML alapú specifikációja egy Web szolgáltatásnak

• Szerződés a web service provider és a web service consumer között

• Leírja, hogy:

– Mit, milyen szolgáltatást, funkciót, műveletet érhetünk el?

– Hol érhetjük el (URL, port, protokoll)?

– Hogyan érhetjük el, milyen adatokat, üzenetet kell küldeni, s mit kapunk vissza.

50

WSDL szerkezete <definitions>

<types>

Típus definíciók, XML séma segítségével. Milyen adatokat viszünk át?

</types>

<message>

Üzenet definíció. Milyen üzeneteket küldünk át? Mit kapunk vissza

</message>

<portType>

<operation>

Művelet definíció. Mely műveleteket, függvényeket használjuk? Melyik üzenetre milyen a válaszüzenet? </operation>

</portType>

<binding>

Végpont és műveletek összekötése (protocol definíció). Hogyan vigyük át az üzeneteket?

</binding>

<service>

Hol található a szolgáltatás?

</service>

</definitions>

51

WSDL

specifikáció

types

messages

operations

port types

bidings

services and ports

Szolgáltatás

interfész

leírása

Szolgáltatás

implementáció

leírás

WSDL példa

• Tételezzük fel, hogy az alábbi funkciókat nyújtja a webszolgáltatásunk:

public class MyWebService {

public String udv( String nev ) {

return "Hello " + nev + "!";

}

public int addInt(int n1, int n2 ) {

return n1+n2;

}

}

52

Az ehhez tartozó WSDL – 1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<definitions targetNamespace="http://endpoint.my.ws/"

name="MyWebServiceService"

xmlns="http://schemas.xmlsoap.org/wsdl/"

xmlns:tns="http://endpoint.myws/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://

schemas.xmlsoap.org/wsdl/soap/">

<types/>

<message name="addIntRequest">

<part name="n1" type="xsd:int"/>

<part name="n2" type="xsd:int"/>

</message>

<message name="addIntResponse">

<part name="sum" type="xsd:int"/>

</message>

<message name="udvRequest">

<part name="arg0" type="xsd:string"/>

</message>

<message name="udvResponse">

<part name="return" type="xsd:string"/>

</message> 53

Az ehhez tartozó WSDL – 2. <portType name="MyWebService">

<operation name="addInt" parameterOrder="n1 n2">

<input message="tns:addIntRequest"/>

<output message="tns:addIntResponse"/>

</operation>

<operation name="udv" parameterOrder="arg0">

<input message="tns:udvRequest"/>

<output message="tns:udvResponse"/>

</operation>

</portType>

54

Az ehhez tartozó WSDL – 3. <binding name="MyWebServicePortBinding"

type="tns:MyWebService">

<soap:binding

transport=http://schemas.xmlsoap.org/soap/http

style="rpc"/>

<operation name="addInt">

<soap:operation

soapAction="http://localhost:8080/addInteger"/>

<input>

<soap:body use="literal"

namespace="http://endpoint.myws/"/>

</input>

<output>

<soap:body use="literal"

namespace="http://endpoint.myws/"/>

</output>

</operation>

<operation name="udv">

</operation>

</binding> 55

Az ehhez tartozó WSDL – 4.

<service name="MyWebServiceService">

<port name="MyWebServicePort"

binding="tns:MyWebServicePortBinding">

<soap:address location="http://localhost:8080"/>

</port>

</service>

</definitions>

56

WSDL

• Új irányok/fejlesztések – WADL (Web Application Definition Language)

– WSEL (Web Service Endpoint Language): a szolgáltatás egyéb jellemzőinek leírása, pl.: biztonsági rendszer, használat költségei

– …

58

UDDI

• Universal Description, Discovery and

Integration

• Webszolgáltatás-tár, API specifikáció webszolgáltatások felderítéséhez

• Szolgáltatáskatalógus része

59

UDDI struktúra

• Business entity – szervezeti információk, kontakt

• Business Service – Nyújtott szolgáltatások

• Binding Template – A szolgáltatás eléréséhez szükséges információk

• tModel (technikai model) – Specifikáció, pl.: WSDL

– Osztályozási, kategorizálási információk

UDDI példa

61

Tesztelés – SoapUI

• Felület

• WSDL import

• Validálás (Rq/Rs)

• http://sourceforge.net/projects/soapui/

62

WS teszt - weather

63

SoapUI

64

SoapUI teszt

65

WS segédletek

Java

• JAX-WS tutorial: http://netbeans.org/kb/docs/websvc/jax-ws.html

• JAX-RS tutorial: http://www.vogella.com/articles/REST/article.html

• Netbeans RESTful Web Service Tutorial: http://netbeans.org/kb/docs/websvc/rest.html

.NET

• Create simple Web Service in Visual Studio: http://sarangasl.blogspot.hu/2010/09/create-simple-web-service-in-visual.html

• Step-by-step: http://www.c-sharpcorner.com/UploadFile/1d42da/web-service-basics/

• Building ASP.NET Web API RESTful Service: http://www.agile-code.com/blog/building-an-asp-net-web-api-restful-service/

67

Példa

• Java kliens kódja (BarCode, SOAPClientTest) – SOAP (automatikus kódgenerálás, JAXB) FileOutputStream fw = null;

net.webservicex.BarCode service = new

net.webservicex.BarCode();

net.webservicex.BarCodeSoap port =

service.getBarCodeSoap();

fw = new FileOutputStream(filename);

fw.write(port.code39(jTextField1.getText(),

Integer.parseInt(jTextField2.getText()),

getLatszik(), jTextField4.getText()));

fw.close();

68

Példa

• Java kliens kódja (BarCode, SOAPClientTest) – Szöveg feldolgozása HTTPCaller hc =new HTTPCaller();

hc.setURL("http://www.webservicex.com/barcode.asmx");

String req="<soapenv:Envelope xmlns:q0=\"http://www.webserviceX.NET\"

xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"

xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-

instance\"><soapenv:Header></soapenv:Header><soapenv:Body> <q0:Code39>

<q0:Code>".concat(jTextField1.getText()).concat("</q0:Code><q0:BarSize>").concat(jTextField2.ge

tText()).concat("</q0:BarSize><q0:ShowCodeString>").concat((String)

jComboBox1.getSelectedItem()).concat("</q0:ShowCodeString>

<q0:Title>").concat(jTextField4.getText()).concat("</q0:Title></q0:Code39></soapenv:Body></soap

env:Envelope>");

hc.setData(req);

fw = new FileOutputStream(filename);

Map RqHeader = new TreeMap();

RqHeader.put("Host", "www.webservicex.com");

RqHeader.put("Content-Length", String.valueOf(req.length()));

RqHeader.put("SOAPAction", "http://www.webserviceX.NET/Code39");

RqHeader.put("Content-Type", "text/xml;charset=UTF-8");

String res=hc.getStringResult(RqHeader);

fw.write(Base64.decode(res.substring(res.indexOf("<Code39Result>")+14,

res.indexOf("</Code39Result>"))));

fw.close();

69

SZOLGÁLTATÁS ORIENTÁLT ARCHITEKTÚRÁK (SOA)

70

71

Bevezetés

• A növekvő adatkereslettel és az infrastruktúra komplexitásával olyan új architektúrára van szükség, ami lehetővé teszi a vállalkozások számára a rugalmasságot és a kiterjeszthetőséget.

• Alapvetően kódmentes, önálló logikai adatintegrációs forma.

• IT (és üzleti) stratégiai eszköz.

• A „Hogyan?” helyett a „Mit?”-re koncentrálva az integrációs megoldások gyors fejlesztése valósítható meg.

72

SOA - tulajdonságok

• Jól definiált illesztő felületet ad, fekete doboz - elrejti implementációjának részleteit –

• Nyílt szabványú mechanizmusokon át hívható

• Építőelemei: (lazán csatolt) szolgáltatások

• A szolgáltatások önállóan is működőképesek, platform- és eszközfüggetlenek (tetszőleges technológiával készülhetnek), szabványos, jól definiált interfésszel rendelkeznek, és szabványos adatcsere- és kommunikációs protokollokkal érhetők el az elosztott hálózatokban.

73

Út a SOA-ig

• Monolitikus rendszerek

• Eljárások, függvények, távoli eljárás-hívás (RPC)

• OOP, objektum hívások

• Webes protokollok: HTTP, FTP, POP3, SMTP

• Web szolgáltatások

• SOA

74

Út a SOA-ig: Monolitikus vállalati alkalmazások (silo rendszerek)

• Az egyes alkalmazások közötti kapcsolat nincs vagy igen korlátozott.

• Minden funkcionalitás az felhasználói interfész segítségével van kialakítva.

• Új funkcionalitás beépítése esetén programozó szükséges.

75

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Szállító rögzít. Szállító rögzít.

Számla rögzít. Számla rögzít.

Számla mód.

Számla mód.

Számla törlés

Számla törlés

Felhasználói interfész

(UI)

Programlogika

Út a SOA-ig: Munkafolyamatok (fejben)

76

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Szállító rögzít. Szállító rögzít.

Számla rögzít. Számla rögzít.

Számla mód.

Számla mód.

Számla törlés

Számla törlés

Felhasználói

interfész (UI)

Program-

logika

Előzetes elle

rzés Elő

zetes ellen

őrzés

Jóváh

agyás Jó

váhagyás

Út a SOA-ig: Task management

77

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Szállító rögzít. Szállító rögzít.

Számla rögzít. Számla rögzít.

Számla mód.

Számla mód.

Számla törlés

Számla törlés

Felhasználói

interfész (UI)

Program-

logika

Előzetes elle

rzés Elő

zetes ellen

őrzés

Jóváh

agyás Jó

váhagyás

Előzetes ellenőrzés

Jóváhagyás Számla

rögzítése

Út a SOA-ig: Munkafolyamat management

78

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy) - C++, Java, stb.

Szállító rögzít. Szállító rögzít.

Számla rögzít. Számla rögzít.

Számla mód.

Számla mód.

Számla törlés

Számla törlés

Felhasználói

interfész (UI)

Program-

logika

Előzetes elle

rzés Elő

zetes ellen

őrzés

Jóváh

agyás Jó

váhagyás

Előzetes ellenőrzés

Jóváhagyás Számla

rögzítése

Út a SOA-ig: Szolgáltatás integráció

79

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy)

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy)

Szállító rögzít. Szállító rögzít.

Számla rögzít. Számla rögzít.

Számla mód.

Számla mód.

Számla törlés

Számla törlés

Szolgáltatás

interfész

Alkalmazási

logika

Előzetes elle

rzés Elő

zetes ellen

őrzés

Jóváh

agyás Jó

váhagyás

Adatbevitel Jóváhagyás Számla

rögzítése Számla

rögzítése Ellenőrzés Ellenőrzés

Váll. Szabályok

ell.

Váll. Szabályok

ell.

Út a SOA-ig: Összetett szolgáltatások

80

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy)

Vállalati információs rendszer Pl.: Könyvelés és számvitel

(pénzügy)

Szállító rögzít. Szállító rögzít.

Számla rögzít. Számla rögzít.

Számla mód.

Számla mód.

Számla törlés

Számla törlés

Szolgáltatás

interfész

Alkalmazási

logika

Ellenő

rzések

Ellenő

rzések

Új szab

ályok

Új szab

ályok

Adatbevitel Jóváhagyás Számla

rögzítése Számla

rögzítése Ellenőrzés Ellenőrzés

ESB – szolgáltatás sín ESB – szolgáltatás sín Összetett

szolgáltatások

SOA - ESB

• Rugalmas kapcsolatot,

• Egységes keretet,

• Szabványos kommunikációt biztosít

81

Szoftver rendszerek

Szoftver rendszerek

Monolitikus Elosztott

Hagyományos Web-alapú szoftverek

Web alkalmazások Szolgáltatás-orientált

alkalmazások

Szolgáltatás

• Moduláris • Önleíró • Szabványos szerkezetű • Adott funkciót, feladatot biztosít, például:

– SAP modul funkciója: pl: készlet lekérdezés – Java osztály – Tárolt eljárás (adatbázisban) – Üzenetküldés – Robot interfésze – Szenzor mérési eredménye

83

SOA példa

• A megvalósításának egy példája:

Web Services Szolgáltatások – melyek összekapcsolódás mentesek - ahelyett, hogy a forráskódúkba ágyazva hívnák meg egymást, egy előre meghatározott protokollt használnak az egymással való kommunikáció leírásához:

• A WDSL (Web Description Services Language) a szolgáltatásokat

• a SOAP (Simple Object Access Protocol) pedig kommunikációs protokollokat írja le.

84

Szolgáltatások típusai

• Üzleti szolgáltatások: teljes vagy rész üzleti funkciókat valósítanak meg. – ügyfélkezelés

– számlakezelés

• Technikai szolgáltatások: Az üzleti szolgáltatások megvalósításához az egységesítés és újrafelhasználás érdekében nélkülözhetetlenek olyan alacsonyabb szintű építőelemek, melyek az üzleti felhasználók számára nem láthatók. – naplózás,

– archiválás,

– dokumentumtárolás,

– megjelenítési szolgáltatások

85

SOA Igérete

• A SOA nagy ígérete: az alkalmazások fejlesztési költsége az időben előre haladva a végtelenben a nullához közelit, mivel egyre több szolgáltatás áll rendelkezésre az újabb feladat megvalósításához.

• Ezáltal a fejlesztések egyre inkább csak szolgáltatások egymás után kötéséből állnak. Erre a célra használt eszközök a Business Process Management, BPEL, WS-CDL, WS-Coordination.

86

Programozók vs. szoftverfejlesztők

• A programozók az alkalmazások fejlesztéséhez olyan hagyományos nyelveket használnak, mint Java, C++, C, C#.

• Szoftverfejlesztők, szoftvermérnökök és a különböző üzleti folyamat szakértői egy megfelelő hangszerelést használva kapcsolják össze az egyedi SOA objektumokat.

87

SOA létrejöttének okai

• rugalmatlan üzleti megoldások

• integrációs nehézségek a szabványok hiánya miatt

• architekturális problémák

• ad hoc fejlődés

• pont-pont kapcsolatok

• heterogén szigetmegoldások

• infrastrukturális hiányok

• lecserélési korlátok

• növekvő modularitás

88

Enterprise Application Integration (EAI), mint a SOA elődje

• A vállalati szintű alkalmazásintegráció (EAI) a különféle vállalati szoftverrendszerek (például ERP, SCM, CRM szoftverek) belső integrációját jelenti.

• Ahhoz, hogy a különböző szoftvereket folyamat-orientált módon integráljunk, az egyszerű, alkalmazások közötti pont-pont adatcsere nem elegendő.

• A megfelelő megoldás a több alkalmazást is érintő komplex folyamatok leképezése.

90

SOA

• A szolgáltatásorientált architektúra lazán kapcsolódó, és együttműködő szoftverszolgáltatások segítségével támogatja az üzleti és egyéb folyamatokat.

91

SOA Alapelvei

• Újrafelhasználhatóság

• Részletesség

• Modularitás

• Komponálhatóság (composability)

• Komponensalapúság

• Együttműködési képesség

• Szabványok közti együttműködés (fő és vállalat specifikusan)

• Szolgáltatások – azonosítása és kategorizálása

– elérhetősége és átadása

– megfigyelése és követése.

92

SOA infrastruktúra részei

• Szolgáltatások

• Szolgáltatásbusz (ESB)

• Szolgáltatástár (Registry-Repository)

• Front-end rendszerek (felhasználók)

• IT Service Management

• Üzleti monitorozás

93

Szabványos megvalósítás

94

BPEL - Business Process Execution Language

95

SOA keretrendszer

• A SOA keretrendszerek olyan újrafelhasználható szolgáltatásokat tartalmaznak, (vállalati osztályok feladatai, műveltei), és kellően megtervezettek ahhoz, hogy méretük változtatható legyen a betöltésük során, illetve megfeleljenek a különböző típusú tartós alkalmazások követelményeinek.

• Keretrendszer használatával jó minőségű szolgáltatás fejleszthető, amit tervezési minták és hasznos gyakorlatok segítenek.

96

Keretrendszer - fejlesztőknek

• Egy egységes alapot használnak az alkalmazások, webszolgáltatások és portálok készítésére.

• Fejlesztik a termelékenységet azáltal, hogy fuzionálnak a tervezési mintákkal és a helyes tapasztalatokkal.

• Kevesebb kódot írnak azáltal, hogy kihasználják a keretrendszer nyújtotta lehetőségeit.

• A J2EE/.NET szabványok és specifikációjuk ismerete nem szükséges.

• Nem szükséges szakértőnek lenniük az objektumorientált tervezésben és tervezési mintákban ahhoz, hogy ezt használják.

97

Keretrendszer - vállalatoknak

• Katalizátor a szolgáltatásorientált architektúra eléréséhez és alacsony költséghez

• Ismételhetőséget és egy minimális szintű architekturális és tervezési merevséget

• Fejlett üzleti gyorsaságot moduláris megoldás eredményeként, amik könnyen változtathatóak, gyakran konfigurációs módosítások által.

• Nagyobb következetességet, előre láthatóságot, és jobb teszt megoldást.

• Fejlett fejlesztői mobilitást projektek között

98

Szolgáltatások életciklusa

• Elemzés és elvárások – Az üzlet kezdetben inicializálja és prioritásuk szerint sorrendbe teszi az

üzleti igényeket.

• Tervezés és fejlesztés – A tervezési fázisban az üzleti elemzők szorosan együttműködnek a

modellezőkkel a megfelelő eredmény érdekében.

• IT üzemeltetés – Felelős a tesztelését, véghezvitelért, a megfelelő környezetért, a

hálózati méretezésért, és az adatközpontért. Feladata a bevezetés, monitorozás és a következő szint biztosítása. Követelményei a függőségek nyomon követése, és kezelése, alkalmazások támogatásának biztosítása, bevezetése és az üzleti szolgáltatások menedzselése a termelésben.

99

Üzleti folyamatok felügyelete – Business Process Management (BPM)

• A folyamatok pontos megértésének segítségével csökkenti a kockázatokat, még a megvalósítást megelőzően. Redundanciák és szűk keresztmetszetek azonosítására és kiküszöbölésére szolgál.

• Elősegíti folyamatok automatizálásának megvalósítását a kézi tevékenységek kiiktatásával és új üzleti szabályokat és folyamatokat hajt azonnali végre. Megjeleníti a folyamatok valós viselkedését a legfontosabb működési jellemzők mérésével.

• Hosszú futási idejű, szinkronizált és aszinkron üzleti folyamatok menedzselésére használják.

100

SOA – előnyei

• Újrafelhasználhatóság

• fejlesztési, adminisztratív és üzemeltetési költség csökkenése

• egységes fejlesztési és üzemeltetési módszertan

• üzlet és IT hatékony együttműködés

• rugalmasak, átláthatóak, mérhetőek és monitorozhatóak vállalati/üzleti folyamatok

• Szabványok alkalmazása jellemzi

101

SOA - hátrányai

• Kiegészítő környezet és tervezés szükségeltetik

• Különböző platformok és termékek közötti együttműködés létrehozása lehetetlen megfelelő szakember hiányában

• Bevezetésének lépéseit nem szabad elkapkodnunk

• Ne csak a rövidtávú, hanem a hosszú távú szempontokat is vegyük figyelembe a döntéseinkben és építsük fel a szükséges tudást

• Legyen elkötelezett a cégmenedzsment a SOA irányába, illetve az IT és az üzlet legyenek egyenrangú felek, ismerjék meg egymást, alakítsanak ki közös nyelvet

102

Recommended