Web Services (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Web Services
A Web Service definíciója Számos definíció létezik. IBM [4] A Web service is an interface that describes a collection of operations that are network accessible through standardized XML messaging. A Web service is described using a standard, formal XML notion, called its service description. The interface hides the implementation details of the service, allowing it to be used independently of the hardware or software platform on which it is implemented and also independently of the programming language in which it is written. This allows and encourages Web Services-based applications to be loosely coupled, component-oriented, cross-technology implementations. Web Services fulfill a specific task or a set of tasks. They can be used alone or with other Web Services to carry out a complex aggregation or a business transaction. Web Services
2
A Web Service definíciója (folyt.) Az IBM definíciója A webszolgáltatás egy olyan interface, amely hálózaton keresztül, szabványos XML üzenetekkel elérhető műveletek egy csoportját írja le.Egy webszolgáltatást szabványos, formális XML jelölésekkel írhatunk le, amelyet szolgáltatás leírásnak nevezünk. Az interface elrejti a szolgáltatás implementációs részleteit, ami lehetővé teszi, hogy az implementáláshoz használt hardware software plattformtól és programozási nyelvtől függetlenül használhassuk azokat. Ez lehetővé teszi, sőt ösztönzi, hogy a webszolgáltatás alapú alkalmazásokat lazán csatolt, komponens szemléletű, vegyes technológiákat használó elemekből építsük fel. Egy webszolgáltatás egy adott (rész)feladat megoldását szolgáltatja, és használható önmagában, vagy más webszolgáltatásokkal együtt egy összetettebb üzleti feladat megoldására. Web Services
3
A Web Service definíciója (folyt.) Microsoft A Web Service is a unit of application logic providing data and services to other applications. Applications access Web Services via ubiquitous Web protocols and data formats such as HTTP, XML, and SOAP, with no need to worry about how each Web service is implemented. Web services combine the best aspects of component-based development and the Web, and are a cornerstone of the Microsoft .NET programming model. Web Services
4
A Web Service definíciója (folyt.) Microsoft A webszolgáltatás egy alkalmazáslogikai egység, amely adatokat és szolgáltatásokat biztosít más alkalmazások számára. Az alkalmazások mindenütt elérhető Web protokollok és adatformátumok segítségével (HTTP, XML és SOAP) érik el, anélkül, hogy bármit is tudnának az egyes szolgáltatások megvalósítási módjáról. A webszolgáltatások egyesítik a komponens alapú fejlesztés és a Web előnyeit, és a .NET programozási modell sarokkövét képezik. Web Services
5
A Web Service definíciója (folyt.) Sun Web services are often components that can be spontaneously discovered, combined, and recombined to provide a solution to the end user's problem/request. The Java language and the XML are the prominent technology for Web services. A webszolgáltatások legtöbbször software komponensek, amelyeket az alkalmazások spontán módon képesek felkutatni, egyesíteni és átszervezni egy végfelhasználói probléma megoldásának érdekében. A webszolgáltatások elsősorban az XML-re és a Java technológiákra támaszkodnak. Web Services
6
A Web Service definíciója (folyt.) Stave Graham könyvének [2] definíciója: A webszolgáltatás egy platform és implementáció független software komponens, amely leírható egy szolgáltatás leíró nyelv segítségével közzétehető szolgáltatásjegyzékben (registry of services) felkutatható szabványos módszerekkel (futásidőben és tervezési időben egyaránt) meghívható egy jól definiált API-n keresztül, általában hálózaton keresztül összekapcsolható más szolgáltatásokkal Web Services
7
A Web Service definíciója (folyt.) Fontos megjegyzések A webszolgáltatások nem feltétlenül az interneten keresztül érhetők el, bár általában (de nem szükségszerűen) hálózaton keresztül (azaz az elnevezés nem túl szerencsés). A szolgáltatást igénybe vevő program számára a webszolgáltatás implementációjára és üzemeltetésére szolgáló platform teljesen lényegtelen. Web Services
8
A Web Service definíciója (folyt.) Ugyanígy, egy webszolgáltatásnak semmit sem kell tudnia az őt használó ügyfélről. A webszolgáltatás egy jól meghatározott felületen és megoldásokon keresztül vehető igénybe. Az, hogy az egyes elemeknek ennyire keveset kell tudniuk egymásról, lehetővé teszi a lazán csatolt komponensekből felépülő alkalmazások készítését.
Web Services
9
A webszolgáltatások üzleti nézőpontból 1. Reális lehetőséget nyújt meglevő, és/vagy újonnan fejlesztett alkalmazások szolgáltatásainak integrációjára egy szervezeten belül. Lehetőséget teremt alkalmazások szolgáltatásainak integrációjára az üzleti partnerek között Az alkalmazások integrációja időt és költséget takarít meg az üzleti folyamatok végrehajtása során
Web Services
10
A webszolgáltatások üzleti nézőpontból 2. A webszolgáltatások lehetővé teszik rugalmas, skálázható módosítható
alkalmazások felépítését és implementálását. A webszolgáltatás egy üzleti folyamatot képezhet le, amely hálózaton keresztül elérhető a szervezeten belül, vagy az üzleti partnerek számára. Web Services
11
A webszolgáltatások techikai szempontból Egyszerűen csak összetartozó műveletek halmaza, amelyek hálózaton keresztül elérhetők tartozik hozzájuk egy leírás.
Az osztott alkalmazások alapvető két feladata mindig is a távoli rendszerek felkutatása és távoli rendszerek elérése.
A webszolgáltatások erre a két alapfeladatra új megközelítésű megoldást adnak. Web Services
12
Techikai szempontok (folyt.) Az új megközelítés elemei: Nyílt technológiák alkalmazása (XML, Internet protokollok). Nyílt szabványok alkalmazása (például a W3C által menedzselt SOAP és WSDL). A képesség alapú keresés (capabilities based lookup) előnyben részesítése a név és objektumazonosító alapján történő keresés helyett.
Web Services
13
A Services Oriented Architecture (SOA) 1. Egy alkalmazás feljesztése során a helyes architektúra kialakítása fontos tényezője a sikeres fejlesztésnek. A bevált architekturális megoldásokat (design pattern) érdemes gyűjteni és újrahasznosítani. A webszolgáltatások fejlődése során kialakult a Services Oriented Architecture (szolgáltatás központú architektúra). Három szereplőt és három műveletet különböztet meg Web Services
14
A Services Oriented Architecture (SOA) 2. A SOA szereplői és műveletei
Web Services
Source: WSCA [4]
15
A SOA szereplői - Szolgáltató Szolgáltató (Service provider) A szolgáltatás tulajdonosa Az a platform, amely a szolgáltatáshoz való hozzáférést lehetővé teszi Feladatai: A szolgáltatás leírás elkészítése és közzététele Az igénylőktől érkező kérelmek kiszolgálása Kliens - szerver analógia: szerver Színkódok: Üzleti szempontból Architekturális (technikai) szempontból Leírás
Web Services
16
A SOA szereplői - Szolgáltatás igénylő Szolgáltatás igénylő (Service requestor) Az az üzleti logikai komponens, amely bizonyos funkciót igényel Az az alkalmazás, amely keres, meghív vagy inicializál egy kapcsolatot a szolgáltatáshoz. Lehet felhasználó vezérelt böngésző, vagy bármely egyéb program (webszolgáltatás) Kliens - szerver analógia: kliens Színkódok: Üzleti szempontból Architekturális (technikai) szempontból Leírás Web Services
17
A SOA szereplői - Szolgáltatásjegyzék Szolgáltatásjegyzék (Service registry) Szolgáltatás leírások kereshető jegyzéke A szolgáltató itt teheti közzé az általa biztosított szolgáltatásokat és a saját adatait Az igénylők kereshetnek a számukra szükséges szolgáltatások után, és megszerezhetik az eléréshez szükséges információkat. A keresés lehetséges tervezési időben: statikus kötés (binding) futásidőben: dinamikus kötés Web Services
18
Szolgáltatásjegyzék (folyt.) Az igénylők más forrásokból is kereshetnek szolgáltatások után, például lokális file FTP site Web site ADS: Advertisement and Discovery of Services DISCO: Discovery of Web Services
Az információk birtokában az igénylő a szolgáltatóval közvetlenül veszi fel a kapcsolatot. Web Services
19
A SOA műveletei - Közzététel Közzététel (Publish) A szolgáltatás közzététele A szolgáltató és a szolgáltatásjegyzék közötti megegyezés, ezzel láthatóvá válnak a a szolgáltatás részletei az igénylők számára A közzététel módja a szolgáltatásjegyzék megvalósításától függ. Egy szabványos lehetőség a UDDI (Universal Description, Discovery and Integration). Web Services
20
A SOA műveletei - Keresés Keresés (Find) Megegyezés az igénylő és a szolgáltatásjegyzék között Keresési feltételek, például szolgáltatás típusa szolgáltatás minőségi jellemzői.
Az igénylő megkapja a keresési feltételeknek megfelelő bejegyzett szolgáltatások adatait. A keresés kifinomultságát a szolgáltatásjegyzék megvalósítása határozza meg. Web Services
21
A SOA műveletei - összekapcsolás Összekapcsolás (binding) Ügyfél - kiszolgáló kapcsolat létrehozása az igénylő és a szolgáltató között. Lehet statikus (fejlesztési időben meghatározott) dinamikus (futásidőben, akár köztes kiszolgáló beiktatásával is).
Web Services
22
Webszolgáltatás és szolgáltatás Webszolgáltatás (Web Service) Csak egy interface Szolgáltatás (Service) A webszolgáltatás implementációja Egy software modul Szolgáltatást nyújt, ha egy igénylő meghívja Lehet igénylő, amikor egy másik webszolgáltatást használ
Web Services
23
Webszolgáltatás és szolgáltatás (folyt.) Szolgáltatás leírás (Service description) Az interface-re és az implementációra vonatkozó részleteket tartalmazza: adat típusok, műveletek összekapcsolási (binding) információk hálózati hely(ek)
Opcionálisan kategorizálási és egyéb metaadatok, amelyek az igénylő feltárási funkciójához szükségesek Közzétehető egy szolgáltatásjegyzékben, vagy akár közvetlenül az igénylő számára Web Services
24
Webszolgáltatás-együttműködési vermek Vermeknek a használatát elsőként a W3C és Microsoft javasolta 2001 márciusában Ez a javaslat három veremre osztja a webszolgáltatásokat: vezeték verem leírás verem feltáró verem
Web Services
25
Összekapcsolás: vezeték verem A vezeték verem (wire stack) SOAP fejlécek
Adatkódolás
HTTP(S), SMTP, FTP, stb.
Hálózati protokoll
Web Services
A szolgáltatás minősége
XML és SOAP
Kezelhetőség
XML üzenetküldés
Biztonság
SOAP
Boríték kiegészítés
26
Összekapcsolás: vezeték verem (folyt.) Hálózat (Network) Számtalan szabványos protokoll HTTP: de facto szabvány az Internet-alapú webszolgáltatások részére XML alapú üzenet szolgáltató rétegek Leggyakrabban használt a SOAP Szabványos: dokumentum központú és RPC alapú Egyszerű (a HTTP POST metódust használja) A SOAP támogatja a publish, find és bind műveleteket Web Services
27
Közzététel : leírás verem A leírás verem (description stack) szerkezete WSFL/XLAND
WSEL
WSDL
WSDL
XML séma
Szolgáltatások összehangolása Végpont-leírás
Szolgáltatás-felület
Szolgáltatásmegvalósítás
XML
Web Services
28
Közzététel : leírás verem (folyt.) Szolgáltatás leírás (Service Description) WSDL (Web Services Description Language) XML sémákon alapuló leíró nyelv, a W3C konzorciumhoz benyújtva. Feladata a szolgáltatás felületének leírása
Kiegészítő szolgáltatáscsomag: WSEL (Web Services Endpoint Language) - kidolgozás alatt Feladata a szolgáltatás egyéb jellemzőinek leírása (biztonsági rendszer, használat költségei stb.) Web Services
29
Közzététel : leírás verem (folyt.) Munkafolyamat leírás (Service Flow) Célja annak meghatározása, hogy egy adott üzleti folyamatot hogyan tudnak kiszolgálni webszolgáltatások összekapcsolásával WSFL: Web Services Flow Language (többek által támogatott szabvány).
Web Services
30
Keresés: feltáró verem A feltáró verem (discovery stack) szerkezete:
UDDI
ADS/DISCO
Jegyzék
Vizsgálat
Web Services
31
Keresés: feltáró verem (folyt.) Szolgáltatás közzététel (Service publication) Szolgáltatás leírások készítése és közzététele A közzétételre sok különböző mechanizmus. Egy sokat tudó szabvány ennek támogatására a UDDI
Web Services
32
Keresés: feltáró verem (folyt.) Szolgáltatás feltárás (Service Discovery) A szükséges szolgáltatás megtalálásához A dinamikusságtól és a leírások tárolási módjától függően számos megoldás Web Services
33
Az együttműködési vermek és a webszolgáltatások
Nem minden alkalmazás igényli a verem valamennyi szolgáltatását. Nem minden webszolgáltatás implementációja olyan, hogy a verem minden szolgáltatását igénybe tudja venni. Bizonyos rétegek még a fejlesztés fázisában vannak. Minden fejlesztésnél el kell dönteni a felhasználni kívánt lehetőségek körét. Web Services
34
Hivatkozások 1. Grady Booch: The Limits of Technology, the RationalEdge Jan. 2003 (http://www.therationaledge.com) 2. Steve Graham et. all: Building Web Services with Java: Making sense of XML, SOAP, WSDL and UDDI Pearson Education (Sams), 2002 Magyar fordítása: Java alapú webszolgáltatások Kiskapu - SAMS, 2002 Web Services
35
Hivatkozások 3. Building the On Demand Business: Three Imperatives for Software Development. A Whitepaper from the Rational software division of IBM (March 2002) 4. Heater Kreger: Web Services Conceptual Architecture (WSCA 1.0) IBM Software Group, May 2001 www-3.ibm.com/software/solutions/webservices/pdf/WSCA.pdf Link ellenőrizve 2004. 03. 05. Web Services
36
37
Web Services