ebook img

Diplomová práce Vytváˇren´ı a ukládán´ı popisu webových sluzeb v úloziˇsti CRCE PDF

74 Pages·2015·1.41 MB·Czech
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Diplomová práce Vytváˇren´ı a ukládán´ı popisu webových sluzeb v úloziˇsti CRCE

Za´padoˇceska´ univerzita v Plzni Fakulta aplikovany´ch vˇed Katedra informatiky a vy´poˇcetn´ı techniky Diplomov´a pr´ace Vytv´aˇren´ı a ukl´ad´an´ı popisu webovy´ch sluˇzeb v u´loˇziˇsti CRCE Plzenˇ 2015 David Pejˇrimovsky´ Prohl´aˇsen´ı Prohlaˇsuji,ˇzejsemdiplomovoupr´acivypracovalsamostatnˇeavy´hradnˇespo- uˇzit´ım citovany´ch pramen˚u. V Plzni dne 24. ˇcervna 2015 Bc. David Pejˇrimovsky´ Abstract This diploma thesis deals with creation and storing of web services descrip- tions. The descriptions are created in unified representation and stored in form of meta-data into CRCE repository. This thesis consists of two parts. Theoretical part deals with analysis of service oriented architecture and web service general principles. Practical part contains breakdown of known web service technologies from which a set of representative web service technolo- gies is selected. An extension module is created for CRCE repository which allows creation and storing of web service descriptions from mentioned set of selected technologies. Keywords:serviceorientedarchitecture,webservices,webservicedescription, web service representation, CRCE Abstrakt Tato diplomov´a pr´ace se zaby´v´a vytva´ˇren´ım a ukl´ada´n´ım popisu webovy´ch sluˇzeb. Tento popis je vytva´ˇren v jednotn´e reprezentaci a je ukl´ad´an v po- dobˇe metadat do u´loˇziˇstˇe CRCE. Pra´ce je rozdˇelena na dvˇe ˇca´sti. Teoretick´a ˇc´ast obsahuje analy´zu servisnˇe orientovan´e architektury a obecny´ch princip˚u webovy´ch sluˇzeb. V praktick´e ˇca´sti je proveden rozbor zna´my´ch technologi´ı webovy´ch sluˇzeb a pro reprezentativn´ı mnoˇzinu tˇechto technologi´ı je vytvo- ˇren rozˇsiˇruj´ıc´ı modul do u´loˇziˇstˇe CRCE, ktery´ umoˇznˇuje popisy webovy´ch sluˇzeb, spadaj´ıc´ıch pod vybran´e technologie, vytva´ˇret a ukla´dat. Kl´ıˇcova´slova:servisnˇeorientovana´architektura,webov´esluˇzby,popiswebov´e sluˇzby, reprezentace webov´e sluˇzby, CRCE Obsah 1 U´vod 1 2 Servisnˇe orientovan´e architektury 3 2.1 Sluˇzba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Servisnˇe orientovan´a architektura . . . . . . . . . . . . . . . . 5 2.3 Komunikaˇcn´ı vzory . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.1 Vol´an´ı vzda´len´e procedury . . . . . . . . . . . . . . . . 8 2.3.2 Zas´ıl´an´ı zpr´av . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3 Zdrojovˇe orientovan´a komunikace . . . . . . . . . . . . 10 2.3.4 Streamov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 Webov´e sluˇzby . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5 Klasifikace webovy´ch sluˇzeb . . . . . . . . . . . . . . . . . . . 16 2.5.1 Sobˇestaˇcnost zdrojovˇe orientovan´e komunikace . . . . . 21 2.6 Souˇcasn´e trendy mezi webovy´mi sluˇzbami . . . . . . . . . . . 23 3 Technologie webovy´ch sluˇzeb 26 3.1 Krit´eria hodnocen´ı technologi´ı . . . . . . . . . . . . . . . . . . 26 3.2 Atom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3 XML-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.4 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.5 JSON-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.6 JSON-WSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.7 BPEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.8 CORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.9 Hessian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.10 RESTov´a webov´a sluˇzba . . . . . . . . . . . . . . . . . . . . . 40 3.11 Shrnut´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4 Reprezentace vybrany´ch technologi´ı v datov´em modelu 43 4.1 Informace poskytovan´e vybrany´mi popisny´mi protokoly . . . . 44 4.1.1 JSON-WSP description object . . . . . . . . . . . . . . 45 OBSAH OBSAH 4.1.2 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.1.3 WADL . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ´ 4.2 Uprava datov´eho modelu a novˇe zaveden´a metadata . . . . . . 51 4.2.1 Capability webservice.identity . . . . . . . . . . . . . . 52 4.2.2 Capability webservice.endpoint . . . . . . . . . . . . . 52 4.2.3 Property webservice.endpoint.parameter . . . . . . . . 53 4.2.4 Property webservice.endpoint.response . . . . . . . . . 53 5 U´loˇziˇstˇe CRCE 54 5.1 Pouˇzit´e technologie . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2 Pluginy a Indexery . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3 Pˇreklad a spuˇstˇen´ı . . . . . . . . . . . . . . . . . . . . . . . . 56 6 Implementace rozˇsiˇruj´ıc´ıho modulu CRCE 58 6.1 Integrace modulu v u´loˇziˇsti . . . . . . . . . . . . . . . . . . . . 58 6.2 Struktura modulu . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.2.1 Veˇrejna´ funkcionalita . . . . . . . . . . . . . . . . . . . 60 6.2.2 Priv´atn´ı funkcionalita . . . . . . . . . . . . . . . . . . 60 6.2.3 Obecn´e datov´e struktury . . . . . . . . . . . . . . . . . 62 6.2.4 Datov´e struktury specifick´e pro WSDL . . . . . . . . . 63 6.3 Funkcionalita modulu . . . . . . . . . . . . . . . . . . . . . . . 63 7 Ovˇeˇren´ı funkˇcnosti 64 7.1 JSON-WSP description object . . . . . . . . . . . . . . . . . . 64 7.1.1 AlbumService . . . . . . . . . . . . . . . . . . . . . . . 64 7.1.2 MUSE services V3 . . . . . . . . . . . . . . . . . . . . 65 7.2 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 7.2.1 AlbumService . . . . . . . . . . . . . . . . . . . . . . . 65 7.2.2 GeoIPService . . . . . . . . . . . . . . . . . . . . . . . 65 7.3 WADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7.3.1 Apache Camel Web Console and API . . . . . . . . . . 66 7.3.2 fueleconomy.gov . . . . . . . . . . . . . . . . . . . . . . 66 8 Z´avˇer 67 1 ´ Uvod ˇ Vra´mcivy´zkumuvzniklnaKatedˇreinformatikyavy´poˇcetn´ıtechnikyZCUv Plzni model pro reprezentaci modula´rn´ıch softwarovy´ch aplikac´ı, ktery´ mimo jin´e tvoˇr´ı datovy´ z´aklad u´loˇziˇstˇe CRCE (Component Repository supporting Compatibility Evaluation). C´ılem t´eto pr´ace je pˇr´ıpadn´a u´prava tohoto dato- v´eho modelu tak, aby byl schopny´ reprezentovat obecny´ popis webovy´ch slu- ˇzeb a na´sledn´a u´prava u´loˇziˇstˇe CRCE zp˚usobem, ktery´ umoˇzn´ı tyto obecn´e popisy webovy´ch sluˇzeb z´ıska´vat a ukla´dat. Po t´eto u´pravˇe bude moˇzn´e v u´loˇziˇsti ukla´dat mnoho popis˚u reprezentuj´ıc´ıch r˚uzn´e technologie webovy´ch sluˇzebavzniknetakmoˇznostupravitu´loˇziˇstˇetak,abysevnˇemdaligenerovat klienti schopn´ı komunikace s popsany´mi webovy´mi sluˇzbami. Prvotn´ım c´ılem t´eto pr´ace je tedy analy´za technologi´ı webovy´ch sluˇzeb, vˇcetnˇe souvisej´ıc´ıch standard˚u, definice obecny´ch z´akonitost´ı v t´eto oblasti, vy´bˇer vhodn´e reprezentativn´ı mnoˇziny vybrany´ch technologi´ı webovy´ch slu- ˇzebana´sledn´apˇr´ıpadna´u´pravazm´ınˇen´ehodatov´ehomodelutak,bylschopny´ tyto vybran´e technologie reprezentovat. Provy´bˇerkonkr´etn´ıvhodn´emnoˇzinytechnologi´ıwebovy´chsluˇzebjetˇreba tytovhodnˇe definovat,kategorizovata porovnat.Pˇri porovna´n´ıbude hlavn´ım krit´eriem pro vy´bˇer konkr´etn´ı technologie webov´e sluˇzby existence a kvalita tzv. popisn´eho sch´ematu (popisn´e sch´ema dan´e webov´e sluˇzby definuje kon- kr´etn´ı form´at komunikace podle protokolu t´eto webov´e sluˇzby a lze z nˇej tedy pro konkr´etn´ı webovou sluˇzbu vytvoˇrit jej´ı popis). Na´sledny´m c´ılem je implementace rozˇsiˇruj´ıc´ıho modulu v u´loˇziˇsti CRCE pro z´ısk´av´an´ı a ukla´d´ani popisu webovy´ch sluˇzeb z vybran´e mnoˇziny techno- logi´ı webovy´ch sluˇzeb, vˇcetnˇe moˇznosti ovla´dat tuto funkcionalitu pˇres exis- tuj´ıc´ı webov´e rozhran´ı u´loˇziˇstˇe. Po implementaci modulu bude ovˇeˇrena jeho funkˇcnost vytvoˇren´ım a uloˇzen´ım popisu nˇekolika netrivia´ln´ıch konkr´etn´ıch webovy´ch sluˇzeb pro kaˇzdou technologii webov´e sluˇzby z vybran´e mnoˇziny technologi´ı webovy´ch sluˇzeb. Teoretick´a ˇca´st pr´ace se zaby´v´a analy´zou servisnˇe orientovan´e architek- tury a webovy´ch sluˇzeb, ze kter´e jsou vyvozeny obecn´e z´akonitosti platn´e pro webov´e sluˇzby (kapitola 2). Na´slednˇe jsou s ohledem na tyto za´konitosti po- psa´ny technologie zna´my´ch webovy´ch sluˇzeb, ze ktery´ch je vybr´ana vhodn´a reprezentativn´ı mnoˇzina (kapitola 3). 1 ´ Uvod V praktick´e ˇca´sti pra´ce je jednotn´a reprezentace popis˚u webovy´ch sluˇzeb z mnoˇziny vybrany´ch technologi´ı webovy´ch sluˇzeb namapova´na na entity sta´vaj´ıc´ıho datov´eho modelu (kapitola 4) a je popsa´n souˇcasny´ stav projektu u´loˇziˇstˇeCRCE(kapitola5).Dou´loˇziˇstˇejenavrˇzenrozˇsiˇruj´ıc´ımodul(kapitola 6) a je otestova´na jeho funkˇcnost (kapitola 7). 2 2 Servisnˇe orientovan´e architektury V t´eto kapitole se postupny´m upˇresnˇov´an´ım a skla´d´an´ım obecny´ch pojm˚u dojde k definici term´ınu webov´a sluˇzba. Tak´e budou struˇcnˇe pops´any nˇekter´e trendy a vy´voj v oblasti webovy´ch sluˇzeb k dneˇsn´ımu datu. 2.1 Sluˇzba Abychom mohli uspokojivˇe popsat architekturu orientovanou na sluˇzby / servisnˇeorientovanouarchitekturu(SOA),mus´ımenejprvezadefinovatpojem sluˇzba tak, jak jej z architektonick´eho hlediska cha´pe informatika. Organizace pro vy´voj strukturovany´ch informaˇcn´ıch standard˚u OASIS (Organization for the Advancement of Structured Information Standards) v roce 2006 sluˇzbu v r´amci sv´eho dokumentu OASIS SOA Reference Model1 definovala jako: A mechanism to enable access to one or more capabilities, where the ac- cess is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description. tzn. mechanismus k zpˇr´ıstupnˇen´ı jedn´e nebo v´ıce funkcionalit, ke kter´ym je pˇr´ıstup zprostˇredkov´an podle pˇredepsan´eho rozhran´ı a je prov´adˇen konzis- tentnˇe s omezen´ımi a z´asadami specifikovan´ymi v popisu sluˇzby. Takto definovany´ pojem byl ˇca´st´ı odborn´e veˇrejnosti pˇrijat, ale jak se postupnˇe k SOA referenˇcn´ımu modelu od OASIS objevovaly konkurenˇcn´ı do- kumenty, objevily se i nov´e definice pojmu sluˇzba. Za nejvˇetˇs´ıho konkurenta lze v tomto smˇeru povaˇzovat pr˚umyslov´e konsorcium The Open Group, kter´e definuje pojem sluˇzba takto2: A service is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit; provide weather data, consolidate drilling reports, etc.) and: • Is self-contained, 1https://www.oasis-open.org/committees/tc home.php?wg abbrev=soa-rm 2http://www.opengroup.org/soa/source-book/togaf/soadef.htm 3 Servisnˇe orientovan´e architektury Sluˇzba • May be composed of other services, • Is a“black box”to consumers of the service. tzn. Sluˇzba je logick´a reprezentace opakuj´ıc´ı se podnikov´e aktivity, kter´a m´a specifikovan´y v´ysledek (napˇr. zjistit z´akazn´ık˚uv kredit, poskytnout data o poˇcas´ı, konsolidovat tˇeˇzebn´ı hl´aˇsen´ı) a: • je samostatn´a, • m˚uˇze se skl´adat z jin´ych sluˇzeb, • v˚uˇci konzument˚um sluˇzby se jev´ı jako“black box”. Podnikovou (business) aktivitou se zde mysl´ı jaka´koliv aktivita, ve kter´e jsou zainteresova´ni lid´e. Nikoliv pouze aktivity spjat´e s komerˇcn´ı prax´ı. At’ jiˇz je sluˇzba zadefinova´na jakkoliv, je tˇreba rozliˇsovat entitu, kter´a sluˇzbu vyuˇz´ıv´a (konzument sluˇzby / klient) a entitu, kter´a ji poskytuje (po- skytovatel sluˇzby / sluˇzba). I v pˇr´ıpadˇe, ˇze je z jednoho um´ıstˇen´ı poskytova´no v´ıcero funkˇcnˇe spjaty´ch sluˇzeb (napˇr´ıklad: souˇcet dvou ˇc´ısel, pr˚umˇer N ˇc´ı- sel, ˇreˇsen´ı kvadraticky´ch rovnic, apod.), je zvykem vˇsechny tyto d´ılˇc´ı sluˇzby souhrnnˇe sta´le oznaˇcovat jednotny´m ˇc´ıslem (napˇr´ıklad: poskytovatel sluˇzby matematicky´ch u´kon˚u, sluˇzba pro matematick´e vy´poˇcty). ˇ Cinnost nˇektery´ch sluˇzeb m˚uˇze by´t za´visl´a na jiny´ch sluˇzba´ch. Je tedy tˇreba rozliˇsovat mezi atomickou sluˇzbou, ktera´ ke sv´e ˇcinnosti ˇz´adnou jinou extern´ı sluˇzbu nepotˇrebuje, a sloˇzenou sluˇzbou, kter´a bˇehem sv´eˇcinnosti vol´a alesponˇ jednu jinou sluˇzbu. Hierarchicky´ popis vazeb mezi sloˇzeny´mi sluˇzbami sahaj´ıc´ı aˇz k jednotli- vy´m atomicky´m sluˇzba´m, ktery´ aktivnˇe kontroluje jejich interakci, se nazy´va´ orchestrace (nebo tak´e proces / podnikov´y proces). Pokud je vˇsak dvˇe a v´ıce sluˇzeb(sloˇzeny´chˇciatomicky´ch)implementov´anotak,abymezisebouintera- govaly bez centralizovan´e kontroly, mluv´ıme o choreografii. Da´ se tak´eˇr´ıci,ˇze choerografii mezi sluˇzbami lze realizovat vytvoˇren´ım orchestrace pro kaˇzd´eho u´ˇcastn´ıka dan´e choreografie (orchestrace dan´eho u´ˇcastn´ıka v dan´e choreofra- fii bude tedy zahrnovat i sluˇzby, se ktery´mi v ra´mci t´eto choreografie tento u´ˇcastn´ıkpˇr´ımokomunikuje).V´ıceset´ematuorchestraceachoreografievˇenuje ˇcl´anek [Dijkman – Dumas(2004)]. 4 Servisnˇe orientovan´e architektury Servisnˇe orientovan´a architektura 2.2 Servisnˇe orientovan´a architektura Pokud tedy chceme v informatice nˇeco oznaˇcit jako servisnˇe orientovan´e, hovoˇr´ıme o snaze vytva´ˇret software ve formˇe sluˇzeb. K dneˇsn´ımu datu nee- xistujeˇza´dny´ pr˚umyslovy´ standard, ktery´ by definoval servisnˇe orientovanou architekturu (SOA), ale existuje mnoho nez´avisly´ch definic, kter´e se tuto ar- chitekturu snaˇz´ı popsat. Ty hlavn´ı, vy´znamnˇejˇs´ı definice nyn´ı uvedeme. Organizace OASIS definuje servisnˇe orientovanou architekturu jako: A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations. tzn.Paradigmaproorganizaciavyuˇzit´ıdistribuovan´ychfunkcionalit,kter´e mohou b´yt pod spr´avou r˚uzn´ych vlastnick´ych dom´en. Poskytuje uniformn´ı prostˇredky k nab´ıdce, objeven´ı, interakci s a pouˇz´ıv´an´ı funkcionalit k dosaˇzen´ı efektu konzistentn´ıho s mˇeˇriteln´ymi poˇc´ateˇcn´ımi podm´ınkami a oˇcek´av´an´ım. Pr˚umyslov´e konsorcium The Open Group definuje servisnˇe orientovanou architekturu jako: Service-Oriented Architecture (SOA) is an architectural style that sup- ports service-orientation. Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services. A service: • Is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit, provide weather data, consolidate drilling reports) • Is self-contained • May be composed of other services • Is a“black box”to consumers of the service tzn.Servisnˇeorientovan´aarchitektura(SOA)jearchitektonick´ystyl,kter´y podporuje servisn´ı orientaci. Servisn´ı orientace je zp˚usob myˇslen´ı ve formˇe sluˇzeb a sluˇzebnˇe orientovan´em v´yvoji a v´ysledk˚u sluˇzeb. Sluˇzba: 5

Description:
1https://www.oasis-open.org/committees/tc home.php?wg abbrev=soa-rm. 2http://www.opengroup.org/soa/source-book/togaf/soadef.htm. 3 Vybrané popisné schéma nemusı nutne poskytovat informace o všech jed- notlivostech uvedených výše (naprıklad nemusı poskytovat informaci o své. 44
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.