103
Webtechnológiák információs redszerekben Technológiai bevezető – 1.

Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

  • Upload
    ledung

  • View
    218

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Webtechnológiák információs redszerekben

Technológiai bevezető – 1.

Page 2: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Követelmények

• 2 beadandó feladat

– Primitív SOA

– SOA / BPM feladat valamely rendszerben

• Oracle SOA / BPM Suite

• IBM WebShpere / IBM Business Process Manager

• Microsoft BizTalk

• JBoss jBPM

• SAP NetWeaver Process Integration

• GlassFish ESB

Page 3: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Szükséges alapok

• HTTP

• Adatbázis-kezelés, SQL

• Java nyelv (Java EE) / ASP.NET & C#

• Modellezési ismeretek

• XML

Page 4: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Szoftver rendszerek

Szoftver rendszerek

Monolitikus Elosztott

Hagyományos Web-alapú szoftverek

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

alkalmazások

Page 5: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Egygépes (standalone) alkalmazások

• A program teljes egészében a munkaállomáson fut.

• Az adatok ugyanitt tárolódnak.

• Egyszerre csak egy felhasználó használhatja.

• Semmilyen hálózati kapcsolat nincs, a különálló programok közti adatszinkronizáció meglehetősen nehézkes.

Kliens gép 1

Program

Adatok (fájlok)

Kliens gép 2

Program

Adatok (fájlok)

Kliens gép N

Program

Adatok (fájlok)

...

Page 6: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Egyszerű kliens-szerver alkalmazások 1.

• Egy vagy több szerver gép erőforrásait (jellemzően adatait) megosztja a kliensek között. Jobb esetben on-line.

• Az alkalmazás egy része (adatbázis-kezelő rsz.) a szerven fut.

• Az alkalmazás logikát implementáló rész a kliens gépeken fut. „vastag kliens rendszerek”

• Egy adatbázist többféle kliens program is használhat.

• Egyszerre több konkurrens felhasználó használhatja.

Szerver gép

Kliens gép 1

Program

Kliens gép 2

Program

Kliens gép N

Program

...

Intranet

RDBMS (Relational

DataBase Management

System)

Page 7: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Egyszerű kliens-szerver alkalmazások 2.

• Jellemzően intranet-es alkalmazásoknál használatos.

• Terheli a kliens gép erőforrásait.

• Gyakran mindenféle driver-ek telepítését igényli a kliens gépeken

• Verziófrissítés alkalmával az összes kliens-en frissíteni kell a programot.

• A RAD (Rapid Application Development) sok eszközzel támogatott, számos jó vizuális fejlesztőkörnyezet: gyorsan „összekattint-gathatunk” és leprogramozhatunk komoly alkalmazásokat.

Szerver gép

Kliens gép 1

Program

Kliens gép 2

Program

Kliens gép N

Program

...

Intranet

RDBMS (Relational

DataBase Management

System)

Page 8: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Többrétegű (multitier) hálózati alkalmazások

• Minimálisan három réteg létezik:

– Front End = kliens oldali felhasználói réteg (általában egy WEB böngészőben)

– Middleware = szerver oldali prezentációs és logikai réteg (általában egy WEB szerveren beágyazott script-ekben összeolvasztva a megjelenítés és az egyszerűbb logika)

– Back End = hátsó szerver oldali nagykapacitású tároló (adatbázis szerver) vagy számoló réteg

Page 9: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Háromrétegű architektúra

Back EndMiddlewareFront End

Web szerver

Kliens gép 1

WEB Böngésző

Kliens gép 2

WEB Böngésző

Kliens gép N

WEB Böngésző

...

Internet/

Intranet

Adatbázis szerver

RDBMS (Relational

DataBase Management

System)

Web Server

Application

Server (pl. PHP)

Adatbázis szerver

XML DBMS (XML

DataBase Management

System)

Egyéb szerver

Nagykapacitású,

bonyolul

számításokat végző

alkalmazás

Page 10: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Többrétegű architektúra

Middleware

Prezentációs

layer

Back EndFront End

Web szerver1

Kliens gép 1

WEB Böngésző

Kliens gép 2

WEB Böngésző

Kliens gép N

WEB Böngésző

...

Internet/

Intranet

Adatbázis szerver

RDBMS (Relational

DataBase Management

System)

Adatbázis szerver

XML DBMS (XML

DataBase Management

System)

Egyéb szerver

Nagykapacitású,

bonyolul

számításokat végző

alkalmazás

Web Server

Prezentációs

alkalmazás (pl.

JSP)

Web szerverK

Web Server

Prezentációs

alkalmazás (pl.

JSP)

...

Logikai layer

Applikációs

szerver1

Application

Server

...Applikációs

szerverM

Application

Server

Page 11: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Többrétegű architektúra jellemzői

• Load balancing, terhelésmegosztás.

• Tervezést támogató környezetek: Java J2EE, .Net.

• Architektúra felosztás-összevonás logikai szinten.

• A rendszer logikai architektúrája (tervezés, programozás) független a számítógépes megvalósítástól, hálózattól.

• A logikai réteg tovább osztható.

• Nagyon sok konkurens felhasználó kiszolgálására optimalizálva

Page 12: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Többrétegű architektúra jellemzői

• Kliens gép: böngésző, a logika – többnyire – a szerveren található – vékony kliens architektúra

• Minimális logika a klienseken: a beviteli adatok validálására, a lapok speciális megjelenítésére (pl. JavaScript).

• A szerveren elkülönül az adattárolás, a logika és a prezentáció eltérő szerepkörök

• Az egyes szintek önmagukban is tesztelhetőek.

• A rendszer egyes komponensei több célra vagy újra felhasználhatók.

Page 13: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Többrétegű architektúra jellemzői

• A vékony kliensek miatt nagyon gyenge kliens gépek is elegendők.

• A technológia platformfüggetlen.

• A kliensekre nem kell drivert telepíteni.

• A verziófrissítés csak a szervert érinti, a klienseket nem.

• Sajnos egyelőre elég kevés eszköz támogatja a RAD-ot (Rapid Application Development), a környezet kevés segítséget nyújt a programozónak a megoldási lehetőségek kiválasztásában – „Házi szabványok”, saját keretrendszerek készülnek.

• Nehezebb tesztelni

Page 14: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

Meg

jeln

ítés

C

SS

Vis

elke

dés

Ja

vaSc

rip

t

Load

Bal

ance

r

Page 15: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

Meg

jeln

ítés

C

SS

Vis

elke

dés

Ja

vaSc

rip

t

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

Page 16: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Információs rendszer 3 rétege Kliens

Alkalmazás szerver (Üzleti logika, Adathozzáférés)

Megjelenítési réteg (Presentation Layer)

Firewall

Proxy

Web Server

DBMS B2B

Backend (Vállalati

információs rendszer)

Alkalmazási logika réteg (Business Layer)

Erőforráskezelő réteg (Data Layer)

Page 17: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Információs rendszer 3 rétege Kliens

Alkalmazás szerver (Üzleti logika, Adathozzáférés)

Megjelenítési réteg (Presentation Layer)

Firewall

Proxy

Web Server

DBMS B2B

Backend (Vállalati

információs rendszer)

Alkalmazási logika réteg (Business Layer)

Erőforráskezelő réteg (Data Layer)

Page 18: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Vállalati alkalmazások

Page 19: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XML - eXtensible Markup Language

Page 20: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Kiterjeszthető jelölőnyelv

• Jelölő nyelv • Nincs saját nyelvtana, elemkészlete • Nyitott • Szöveg alapú • Címkékből (tag), attribútumokból és magából a

tartalomból áll • Hierarchikus szerkezetű • Ember számára is értelmezhető • Adat és a megjelenítés elválasztható egymástól • Általános célú: kommunikáció, adatleírás, stb.

Page 21: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

SGML nyelvcsalád

Page 22: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XML felhasználási területei

• Struktúrált dokumentumszerkesztés, leírás: docx • Vektorgrafika tárolása: VML, SVG • Alkalmazások közötti webes kommunikáció: WSDL • Pénzügyi információk cseréje: OFX • Digitális űrlapok kezelése: XFDL, Infopath • Emberi erőforrás menedzsment jelölőnyelv: HRMML • Jogi dokumentumok kezelése: OXCI • Matematikai képletek leírása, formázása: MathML • Konfigurációs adatok leírása: egyedi • News feeds leírás: RSS • 3D grafikai leírás: X3D • Stílus leírásra megjelenítéshez: XSLT • Adatbázis, lekérdezés: XQuery • HTML leírás: XHTML

Page 23: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Jól formázott XML példa <?xml version="1.0" encoding="ISO-8859-2"?> <!-- Megjegyzés --> <?xml-stylesheet type="text/xsl" href="1.xsl"?> <segedanyagok xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="book.xsd" > <irodalom> <cim>XML lépésrol lépésre</cim> <szerzo>Michael J. Joung</szerzo> <kiadas>2002</kiadas> </irodalom> <irodalom> <cim>Az XML kézikönyv</cim> <szerzo>Neil Bradley</szerzo> <kiadas>2005</kiadas> </irodalom> </segedanyagok <?SajatAlkalmazas Param1="ertek" Param2="ertek"?>

Fejrész

Dokumentum elem, gyökérelem

Feldolgozó utasítás

Page 24: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XML specifikációk közötti kapcsolatok

XML dokumentumok DTD

XSD

XQuery XPath

XSLT

sup

ersedes

uses

uses

Page 25: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

DTD – dokumentum típus def.

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE cikk SYSTEM "cikk2.dtd">

<cikk>

<datum>2003/05/01</datum>

<szerzo>LAci</szerzo>

<tartalom>tananyag</tartalom>

</cikk>

A külső DTD fájl: <!ELEMENT cikk (datum, szerzo, tartalom)>

<!ELEMENT datum (#PCDATA)>

<!ELEMENT szerzo (#PCDATA)>

<!ELEMENT tartalom (#PCDATA)>

Page 26: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XSD példa <?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="konyv">

<xs:complexType>

<xs:sequence>

<xs:element name="szerzo" type="xs:string"/>

<xs:element name="cim" type="xs:string"/>

<xs:element name="ar" type="xs:integer"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Az XML dokumentumban így kell megadni: <?xml version="1.0" encoding="UTF-8"?>

<konyv xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="konyv.xsd">

<szerzo>XY</szerzo>

<cim>XML tananyag</cim>

<ar>1000</ar>

</konyv>

Page 27: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

W3C Document Object Model

• Platform- és nyelv független interfészleírás

• A tartalom, a struktúra és a design hozzáféréséhez, módosításához. Objektumok és tulajdonságaik és hozzáférési metódusok szabálya

• Részei:

– Core DOM: bármilyen strukturált dokumentumra vonatkozó szabvány

– HTML DOM: HTML dokumentumokra

– XML DOM: XML dokumentumokra

Page 28: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XML DOM Node-ok

Node típus Példa

Dokumentum <!DOCTYPE food SYSTEM "food.dtd">

Feldolgozási instrukció

<?xml version="1.0"?>

Elem <drink

type="beer">Carlsberg</drink>

Attribútum type="beer"

Szöveg Carlsberg

Page 29: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Letar.xml kapcsolati struktúrája

Gyökér elem: <leltar>

Elem: <konyv>

Elem: <konyv>

Elem: <konyv>

Elem: <konyv>

Elem: <konyv>

parentNode

firstChild

lastChild

nextSibling

previousSibling

Page 30: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XML parse-olás a böngészőkben

• XML beolvasása a memóriába

• XML DOM objektum készítése

• Parszolást követően az XML JavaScript-ből feldolgozható

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

//IE

xmlDoc=document.implementation.createDocument("","",null);

//Firefox, Opera, stb.

xmlDoc.async="false";

xmlDoc.load("leltar.xml");

Page 31: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XML DOM properties & methods

• Properties – x.nodeName – x neve

– x.nodeValue – x node értéke

– x.parentNode – x node szülője

– x.childNodes – x node gyermeke

– x.attributes – x node attribútuma

• Metódusok – x.getElementsByTagName(nev) – visszaadja az összes

nev nevű elemet

– x.appendChild(node) – x elemhez beszúr egy gyermek elemet

– x.removeChild(node) – gyermek elem törlése

Page 32: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

XML feldolgozás

• documentElement: gyökér elem

• getElementsByTagName("cim"): az összes cim nevű elem kijelölése

• getElementsByTagName("cim")[0]: az első cim nevű elem

• childNodes[0]: a cim nevű elem első gyermek eleme

• nodeValue: a node (szöveges elem) értéke

• nodeName: node neve

• nodeType: node típusa

Page 33: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Delphi

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, ComObj;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

Page 34: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Delphi - 2

procedure TForm1.Button1Click(Sender: Tobject);

var

xml:Variant;

begin

xml:=CreateOleObject('Msxml2.DOMDocument.4.0');

xml.async := false;

xml.loadXML('<ALMA></ALMA>');

root:=xml.documentElement;

newnode:=xml.createElement('BARACK');

newNode.text:='sárga';

root.appendChild(newnode);

newnode:=xml.createElement('CITROM');

newNode.text:='savanyú';

root.appendChild(newnode);

ShowMessage(xml.documentElement.xml);

end;

end.

Page 35: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Visual Basic

Dim xmlDoc As New Msxml2.DOMDocument40

Dim comment As IXMLDOMComment

xmlDoc.async = False

xmlDoc.LoadXML ("<ALMA></ALMA>")

Set root = xmlDoc.documentElement

Set newNode = xmlDoc.createElement("BARACK")

newNode.text = “sárga”

root.appendChild newNode

Set newNode = xmlDoc.createElement("CITROM")

newNode.text = “savanyú”

root.appendChild newNode

MsgBox (xmlDoc.documentElement.xml)

Page 36: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

JavaScript

var xmlDoc = new

ActiveXObject("Msxml2.DOMDocument.4.0");

var root;

var newNode;

xmlDoc.async = false;

xmlDoc.loadXML("<ALMA></ALMA>");

root = xmlDoc.documentElement;

newNode = xmlDoc.createElement("BARACK");

newNode.text = “sárga”;

root.appendChild(newNode);

newNode = xmlDoc.createElement("CITROM");

newNode.text = “savanyú”;

root.appendChild(newNode);

alert(xmlDoc.documentElement.xml);

Page 37: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

WEB-SZOLGÁLTATÁSOK

Page 38: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

38

Page 39: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.”

39

Page 40: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Webszolgáltatások „fogalma”

• Bármilyen rendszer

• Bármilyen programnyelv

• HTTP

• 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)

40

Page 41: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Webszolgáltatások

• Előzmények:

– RPC (távoli eljáráshívás)

– CORBA

– ...

• Fajtái:

– SOAP

– RESTful

– ...

41

Page 42: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Webszolgáltatások használata

42

Service Registry /

Broker

Service Consumer / Requester

Service Provider

Register Find

Bind Execute

Page 43: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Webszolgáltatás protokol szintek

43

Service Transport

Service Messaging

Service Description

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 - Webszolgáltatások integrálása - WS-BPEL

Page 44: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

RESTful webszolgáltatások

• Representational State Transfer

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

44

Alkalmazás művelet HTTP protokoll

Create POST

Retrieve GET

Update PUT

Delete DELETE

Page 45: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

45

Page 46: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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)

46

Page 47: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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)

47

Page 48: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Példa:

48

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"

}

}

]

Page 49: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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>

49

Page 50: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

51

Page 51: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

52

Page 52: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

SOAP

53

Page 53: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

54

Page 54: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

55

Page 55: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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>

Page 56: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

SOAP

Body

Header

Page 57: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Példa:

58

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>

Page 58: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

Page 59: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

Page 60: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

REST példa 1.

GET /stock/IBM HTTP/1.1

Host: www.example.org

Accept: application/xml

Page 61: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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>

Page 62: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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>

63

Page 63: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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>

Page 64: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

• WSDL – Web Service Definition Language

• Verzió: 1.1

• <definitions>: A WSDL gyökér eleme • <portType> Művelet definíció. Mely műveleteket, függvényeket

használjuk. Melyik üzenetre milyen a válaszüzenet? • <message> Üzenet definíció. Milyen üzeneteket küldünk át?

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

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

• GET,POST,SOAP

• Vannak új irányok: JMS; Fájlírás, -figyelés

• <service> Végpont definíció. Hol található a szolgáltatás?

65

Page 65: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

WSDL szerkezete

<definitions>

<portType> </portType> <message> </message> <types> </types> <binding> </binding>

</definitions>

66

Page 66: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

WSDL példa: <types>

67

<types>

<schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema">

<element name="TradePriceRequest">

<complexType>

<all>

<element name="tickerSymbol" type="string"/>

</all>

</complexType>

</element>

<element name="TradePrice">

<complexType>

<all>

<element name="price" type="float"/>

</all>

</complexType>

</element>

</schema>

</types>

Page 67: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

WSDL példa: <portType> és <message>

<portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation>

</portType>

<message name="getTermRequest">

<part name="term" type="xs:string"/>

</message>

<message name="getTermResponse">

<part name="value" type="xs:string"/>

</message>

68

Page 68: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

WSDL példa: <binding> <binding type="glossaryTerms" name="b1">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />

<operation>

<soap:operation soapAction="http://example.com/getTerm"/>

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

</binding>

<portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation>

</portType>

<message name="getTermRequest">

<part name="term" type="xs:string"/>

</message>

<message name="getTermResponse">

<part name="value" type="xs:string"/>

</message>

69

Page 69: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

WSDL példa: <service>

<service name=“GlossaryTermsService">

<port name=“GlossaryTermsSoapHttpPort"

binding="tns:GlossaryTermsSoapBinding">

<soap:address

location="http://localhost:8080/webservice/Glo

ssaryTermsService"/>

</port>

</service>

70

Page 70: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Végrehajtás Web Services Platform

WSDL

types binding

ServiceDeployment

operation Java Method

Enterprise System

XML Schema Library

Book.xsd

Page 71: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

– …

72

Page 72: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

73

Page 73: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

Page 74: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

UDDI példa

75

Page 75: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

WS keresés a neten

• http://webservices.seekda.com/

76

Page 76: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Tesztelés – SoapUI

• Felület

• WSDL import

• Validálás (Rq/Rs)

• Példa

– BarCode39 project

77

Page 77: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Példa

• BarCode – vonalkód generálás

– SoapUI-ban már láttuk

– Böngésző

• http://seekda.com/providers/webservicex.com/BarCode

• GET, POST, SOAP

– Java alkalmazás – SOAPClientTest

78

Page 78: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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();

79

Page 79: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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();

80

Page 80: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Irodalom/Linkek

• Java alapú webszolgáltatások (2002. Kiskapu)

• http://www.w3.org/TR/soap/

• http://www.w3.org/TR/wsdl

• http://www.json.org/json-hu.html

• http://www.xfront.com/REST-Web-Services.html

• http://en.wikipedia.org/wiki/SOAP_(protocol)

• http://en.wikipedia.org/wiki/Web_Application_Description_Language

81

Page 81: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

82

Page 82: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

83

Page 83: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

84

Page 84: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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: 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.

85

Page 85: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

86

Page 86: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

87

Page 87: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

88

Page 88: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

89

Page 89: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

90

Page 90: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

SOA technológia fejlődésének mérföldkövei

92

Page 91: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

93

Page 92: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

94

Page 93: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

95

Page 94: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

96

Page 95: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Szabványos megvalósítás

97

Page 96: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

BPEL - Business Process Execution Language

98

Page 97: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

99

Page 98: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

100

Page 99: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

101

Page 100: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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.

102

Page 101: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

Ü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.

103

Page 102: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

104

Page 103: Webtechnológiák információs - ade.web.elte.huade.web.elte.hu/SOA/Web_InfRsz_SOA-2012-1.pdf · •Oracle SOA / BPM Suite •IBM WebShpere / IBM Business Process Manager •Microsoft

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

105