Webtechnológiák információs redszerekben

Slides:



Advertisements
Hasonló előadás
Windows Virtualizáció
Advertisements

Windows Communication Foundation (WCF)
RESTful Web Service tesztelése
© 2010 IBM Corporation IBM Enterprise Content Management Az intelligens karakterfelismerés üzleti lehetőségei A dokumentum feldolgozás 5 lépcsője Előadó:
Projekt vezetés és kontroll – Mi történik a gépházban?
Kliens-szerver architektúra
Hálózati és Internet ismeretek
Szoftverminőség, 2010 Farkas Péter. SG - Sajátos célok  SG 1. Termék / komponens megoldás kiválasztása  SP 1.1. Alternatívák és kiválasztási kritériumok.
MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben Bemutatás Németh Ádám,
1 Internet. 2 WWW  World Wide Web  Hivatkozásokkal összekötött hipermédia dokumentumok rendszere  Dokumentumok -> Weboldalak  A weboldalak hipertext.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
IBM Software Group © 2006 IBM Corporation Hatékonyság és üzleti intelligencia Egységesített felület meglévő alkalmazásainkhoz Szabó János Technikai szakértő.
1 Informatikai Szakképzési Portál Hálózati és Internet ismeretek Hálózati menedzsment.
Social Networking alkalmazás fejlesztése ASP.NET 3.5-tel Árvai Zoltán Consultant, Trainer Számalk Oktatóközpont.
Webszolgáltatások PHP-ben
HTML5 alapú fejlesztő és futtató környezet megvalósítása
RENDSZERINTEGRÁLÁS B_IN012_1
A Microsoft rendszermenedzsment víziója A Dynamic Systems Initiative A System Definition Model Az üzemeltetésre tervezett szoftverek A SDM jelentősége.
SQL Server 2005 Reporting Services a gyakorlatban
2 Forrás: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000.
Az Internet elemei és hozzáférési technológiái Az Internet architektúrája.
.NET web szolgáltatások
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
Előadó: Kárpáti Péter Üzleti folyamatvezérlés nagyvállalati környezetben (BizTalk Server 2004, Office InfoPath 2003 és Windows.
Dokumentumkezelés GTM szeminárium sorozat Kontor 2004 ügyviteli keretrendszer Előadók: Szalontai Zoltán (T-Systems) Albert István (MSDN Kompetencia Központ)
Instant alkalmazások SharePoint platformon. A fejlesztés és a testre szabás határai elmosódtak. A testre szabást végző legtöbbször nem programozó A.
Látványos vektrorgrafikus és deklaratív prezentációs réteg 3D támogatássalLátványos vektrorgrafikus és deklaratív prezentációs réteg 3D támogatással Egységesített.
Webszolgáltatások (WS), Szolgáltatás orientált architektúrák (SOA)
Bevezetés az ebXML-be Forrás: An Introduction to ebXML ebXML and Web Services Practical Considerations In Implementing Web Services Romin IraniRomin Irani.
SOAP alapismeretek A SOAP egy egyszerű XML alapú protokoll, ami lehetővé teszi, hogy az alkalmazások információt cseréljenek a HTTP-én keresztül. Forrás:
WEB MES (webes gyártásirányító rendszer)
ESzabványok Workshop 1. előadás: Bevezető, eAdatmodell október 13.
XML támogatás adatbázis-kezelő rendszerekben
OAIS. Megőrzés feladatai Viability –Meg kell őrizni a bitfüzér változatlanságát és olvashatóságát a tároló eszközön Rendbebility –Meg kell őrizni a bitfüzér.
Webes Információs Rendszerek fejlesztése
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Az AJAX technológia használata Ez az előadó neve beosztása vállalata.
Bátyai Krisztián NetAcademia Oktatóközpont oktató, fejlesztő MCT, MCPD
Rendelkezésre álló erőforrások pontos ismerete Kiosztott feladatok közel „valósidejű” követése Átláthatóság Tervezési folyamatok támogatása.
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
Fejlesztés PHP-NUKE portál rendszerre Horváth Zoltán Második Magyarországi PHP Konferencia március 27. Copyright PHP Konferencia,
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
HTML5 alapú fejlesztő és futtató környezet megvalósítása
Illés Zoltán ELTE Informatikai Kar
Java web programozás 11..
Rugalmas, moduláris felépítés Rugalmas telepítés Jól tervezhető szerepkörök Folyamatos rendelkezésre állás Egyszerű felügyelet Elérés bárhonnan Postafiók.
A Microsoft Üzleti Intelligencia megoldása és platformja
Webszolgáltatások Simon Balázs
Webes alkalmazásfejlesztés
Illés Zoltán ELTE Informatikai Kar
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
CALDERONI FORRÁSKEZELŐ RENDSZER A Calderoni Program során fejlesztésre kerülő rendszer vázlatos bemutatása.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
2. Operációs rendszerek.
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
Kiss Tibor System Administrator (MCP) ISA Server 2006.
Nagyvállalati dokumentumkezelés 2. Fejér Gábor PYLON KFT DMS megoldás nyílt forráskódú környezetben – az XDocs rendszer.
Az ORACLE JDE EnterpriseOne ERP rendszer bevezetésének tapasztalatai
Alkalmazott Informatikai Tanszék
Webszervizek (JAX-WS, és JAX-RS) bemutatása
Webtechnológiák információs redszerekben
Hibernate / EclipseLink / OpenJPA összehasonlítás
Internet és kommunikáció
DRUPAL Előadja: Nagy Nikoletta :05.
Tarcsi Ádám, egyetemi tanársegéd ELTE Informatikai Kar
Előadás másolata:

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 "Primitív SOA" - WS BPMN feladat Határidő: kurzusmail szerint BPMN feladat Összetett feladat – órai munka bemutatása, befejezése

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ó Nagykereskedői Információs Rendszer Készlet lekérdezés - RESTFul Nagykereskedői Információs Rendszer Kiskereskedői Információs Rendszer 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

Szolgáltatás-orientált alkalmazások Szoftver rendszerek Szoftver rendszerek Monolitikus Elosztott Hagyományos Web-alapú szoftverek Web alkalmazások Szolgáltatás-orientált alkalmazások Web-alkalmazás: kliens-szerver kommunikáció SOA: szerver-szerver kommunikáció

Web-es architektúra Front End Logikai Layer Prezentációs Layer Middleware Alkalmazás szerver Web szerver Prezentációs szerver Adatbázis szerver RDBMS Back End XML DBMS Nagy kapacitású, összetett számításokat végző szerver Kliens: Web böngésző Tartalom HTML / XML Megjelnítés CSS Viselkedés JavaScript Load Balancer Internet Kliens: Mobil böngésző / mobil kliens

Web-es architektúra  SOA SEMATIKUS ábra Front End SOA Layer Prezentációs Layer Middleware ESB + Orchestration+ Web szerver Prezentációs szerver Adatbázis szerver Back End / Persistence Layer Web szolgáltatás (alkalmazási logika) Egyéb erőforrások, legacy systems (ERP, CRM, stb). Kliens: Web böngésző WS Tartalom HTML / XML Megjelnítés CSS Viselkedés JavaScript Load Balancer Internet WS Kliens: Mobil böngésző / mobil kliens SOA: háttér rendszerekből--> Business Objects = resources, WS + Human task + Business Rule. Üzleti folyamatok által irányítva! WS SOA: háttér rendszerekből  Business Objects (resources), WS + Human task + Business Rule. Üzleti folyamatok által irányítva

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)

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)

Vállalati alkalmazások Szerver-szerver kommunikáció

Web-szolgáltatások

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.

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

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

Webszolgáltatások Előzmények: API – Application Programming Interface RPC (távoli eljáráshívás) XML-RPC CORBA API – Application Programming Interface Fajtái: SOAP RESTful ...

State Machine 50 25Ft 25 25Ft 10Ft 10Ft 10 35 5Ft 5Ft 5 30 Start 10Ft 10Ft 10 35 5Ft 5Ft 5 30 In a state machine, the machine can exist in only one of a number of states at a given time and can transfer among states through triggering events. With RESTful services the states are represented by resources (i.e. a web page) and the triggers are the hyper-links. The key concept is that each state is independent of the others. Thus the interaction with RESTful services is simplified because the focus is on the resources (states) themselves rather then interactions among them and each interaction is independent of any other Példa: Üdítő automata Tarcsi Ádám: SOA és Web 2.0

API, Mashup, Web Service

Mashup

API protokollok - példák Atom REST CSV RSS FTP SMPP GData SMTP GET SOAP JSON Text MQTT XML-RPC POST XMPP

RESTful webszolgáltatások Representational State Transfer CRUD műveletekből HTTP műveleteket készítünk: 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

HTTP Request/Response Request Line Request Headers Message Body User agent Client Request Server Response Status Information Response Header Message Body

HTTP GET /index.html HTTP/1.1 Host: www.example.com User agent Client Request Server Response 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>

Erőforrások (Resources) és Reprezentációjuk (Representation) agent (example.com) GET /Resource HTTP/1.1 Accept: application/XML http://example.com/Resource Resources 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. HTTP/1.1 200 OK XML Representation of Resource

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

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

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)

Példa: XML JSON <?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>

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

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

SOAP

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

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

Webszolgáltatások használata Service Registry / Broker Find Register Service Consumer / Requester Service Provider Bind Execute

Webszolgáltatás protokol szintek Service-based Processes Webszolgáltatások integrálása WS-BPEL Service Discovery Webszolgáltatások regisztrálása UDDI Interfész specifikáció WSDL Service Description Service Messaging XML alapú üzenetek XML-RPC, SOAP Service Transport Üzenet átviel HTTP, SMTP, FTP, BEEP

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: Host: server.com HTTP/1.1 200 OK 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> ContentBasedRouting… egy részét a fejlécbe Tarcsi Ádám: SOA és Web 2.0

SOAP Request Message SOAP Envelope Namespace <?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> Message SOAP Envelope 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> Message Result returned in Body SOAP Envelope

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>

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.

WSDL szerkezete WSDL specifikáció types messages operations port types <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> WSDL specifikáció types messages Szolgáltatás interfész leírása operations port types bidings Szolgáltatás implementáció leírás services and ports

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;

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 name="udvRequest"> <part name="arg0" type="xsd:string"/> <message name="udvResponse"> <part name="return" type="xsd:string"/>

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"/> </portType>

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> </output> </operation> <operation name="udv"> … </binding>

Az ehhez tartozó WSDL – 4. <service name="MyWebServiceService"> <port name="MyWebServicePort" binding="tns:MyWebServicePortBinding"> <soap:address location="http://localhost:8080"/> </port> </service> </definitions>

Végrehajtás WSDL ServiceDeployment Book.xsd types binding operation Enterprise System Web Services Platform WSDL ServiceDeployment XML Schema Library Book.xsd types binding operation Java Method

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 …

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

UDDI struktúra Business entity Business Service Binding Template 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

Tesztelés – SoapUI Felület WSDL import Validálás (Rq/Rs) http://sourceforge.net/projects/soapui/

WS teszt - weather

SoapUI

SoapUI teszt

Példák http://www.webservicex.net/ws/default.aspx http://www.service-repository.com/

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/

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(); Melyik szerviznek, melyik endportját használom, majd annak függvényét veszem ki… Tarcsi Ádám: SOA és Web 2.0

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.getText()).concat("</q0:BarSize><q0:ShowCodeString>").concat((String) jComboBox1.getSelectedItem()).concat("</q0:ShowCodeString> <q0:Title>").concat(jTextField4.getText()).concat("</q0:Title></q0:Code39></soapenv:Body></soapenv: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(); Szövegfeldolgozással Soap üzenet Header Kérés elküldése, Válasz feldolgozása Tarcsi Ádám: SOA és Web 2.0

SZolgáltatás orientált architektúrák (SOA)

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.

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.

Ú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

Ú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. Felhasználói interfész (UI) 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ámla rögzít. Számla mód. Számla törlés Programlogika

Út a SOA-ig: Munkafolyamatok (fejben) Felhasználói interfész (UI) Előzetes ellenőrzés Jóváhagyás 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ámla rögzít. Számla mód. Számla törlés Program-logika

Út a SOA-ig: Task management Előzetes ellenőrzés Jóváhagyás Számla rögzítése Felhasználói interfész (UI) Előzetes ellenőrzés Jóváhagyás 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ámla rögzít. Számla mód. Számla törlés Program-logika

Út a SOA-ig: Munkafolyamat management Előzetes ellenőrzés Jóváhagyás Számla rögzítése Felhasználói interfész (UI) Előzetes ellenőrzés Jóváhagyás 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ámla rögzít. Számla mód. Számla törlés Program-logika

Út a SOA-ig: Szolgáltatás integráció Adatbevitel Ellenőrzés Váll. Szabályok ell. Jóváhagyás Számla rögzítése Szolgáltatás interfész Előzetes ellenőrzés Jóváhagyás Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) Szállító rögzít. Számla rögzít. Számla mód. Számla törlés Alkalmazási logika

Út a SOA-ig: Összetett szolgáltatások Adatbevitel Ellenőrzés Jóváhagyás Számla rögzítése Összetett szolgáltatások ESB – szolgáltatás sín Szolgáltatás interfész Ellenőrzések Új szabályok Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) Szállító rögzít. Számla rögzít. Számla mód. Számla törlés Alkalmazási logika

SOA - ESB Rugalmas kapcsolatot, Egységes keretet, Szabványos kommunikációt biztosít

Szolgáltatás-orientált alkalmazások Szoftver rendszerek Szoftver rendszerek Monolitikus Elosztott Hagyományos Web-alapú szoftverek Web alkalmazások Szolgáltatás-orientált alkalmazások Web-alkalmazás: kliens-szerver kommunikáció. Célja a megjelenítés. A műveleteket kézzel indítja a felhasználó SOA: szerver-szerver kommunikáció

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

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.

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

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.

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.

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

SOA technológiák/résztvevők Integration Broker technológia és eszközök Message Queue, Message Bus Enterprise Application Integration (EAI) eszközök CORBA, COM, Screen scraping Electronic Data Interchange (EDI) Message Oriented Middleware (MoM)

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.

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.

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.

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

Szabványos megvalósítás

BPEL - Business Process Execution Language

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.

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.

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

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.

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

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

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