(webszolgáltatások): egy osztott alkalmazásfejlesztési plattform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Web Service 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 -based applications to be loosely coupled, component-oriented, cross-technology implementations. fulfill a specific task or a set of tasks. They can be used alone or with other to carry out a complex aggregation or a business transaction. 2
A Web Service definíciója (folyt.) 3 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.
A Web Service definíciója (folyt.) 4 Microsoft A Web Service is a unit of application logic providing data and services to other applications. Applications access 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.
A Web Service definíciója (folyt.) 5 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.
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. 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 7
A Web Service definíciója (folyt.) 8 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.
A Web Service definíciója (folyt.) 9 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.
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 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. 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. 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. 13
A Services Oriented Architecture (SOA) 1. 14 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
A Services Oriented Architecture (SOA) 2. 15 A SOA szereplői és műveletei Source: WSCA [4]
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 16 Színkódok: Üzleti szempontból Architekturális (technikai) szempontból Leírás
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 17 Színkódok: Üzleti szempontból Architekturális (technikai) szempontból Leírás
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 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 Az információk birtokában az igénylő a szolgáltatóval közvetlenül veszi fel a kapcsolatot. 19
A SOA műveletei - Közzététel 20 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).
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. 21
A SOA műveletei - összekapcsolás 22 Ö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).
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 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 24
Webszolgáltatás-együttműködési együttműködési vermek 25 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
Összekapcsolás: vezeték verem 26 A vezeték verem (wire stack) SOAP fejlécek Boríték kiegészítés SOAP XML és SOAP HTTP(S), SMTP, FTP, stb. XML üzenetküldés Adatkódolás Hálózati protokoll Biztonság Kezelhetőség A szolgáltatás minősége
Ö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 27
Közzététel : leírás verem 28 A leírás verem (description stack) szerkezete WSFL/XLAND Szolgáltatások összehangolása WSEL Végpont-leírás WSDL Szolgáltatás-felület WSDL Szolgáltatásmegvalósítás XML séma XML
Közzététel : leírás verem (folyt.) 29 Szolgáltatás leírás (Service Description) WSDL ( 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.)
Közzététel : leírás verem (folyt.) 30 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: Flow Language (többek által támogatott szabvány).
Keresés: feltáró verem 31 A feltáró verem (discovery stack) szerkezete: UDDI Jegyzék ADS/DISCO Vizsgálat
Keresés: feltáró verem (folyt.) 32 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
Keresés: feltáró verem (folyt.) 33 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
Az együttműködési vermek és a webszolgáltatások 34 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.
Hivatkozások 35 1. Grady Booch: The Limits of Technology, the RationalEdge Jan. 2003 (http://www.therationaledge.com) 2. Steve Graham et. all: Building 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
Hivatkozások 36 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: 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.
37