Süvaveebi kuvamine automaatsete OpenAjax Hub vidinate genereerimise abil

Date

2011

Journal Title

Journal ISSN

Volume Title

Publisher

Tartu Ülikool

Abstract

Antud magistritöö uurib, kuidas lihtsustada esitluskihil SOAP protokolli kasutavate veebiteenuste, mis on osa süvaveebist, kasutamist. Sellise teema valimist motiveerib asjaolu, et rakenduste kompositsiooniline raskuskese liigub üha enam esitluskihi suunas, kuid hetkel ei ole veebilehitsejale omaste tehnoloogiatega võimalik väliste domeenide teenuseid kasutada, nende väljundit kuvada ja teenuseid omavahel siduda. Et välja selgitada, kuidas antud probleemi lahendada, uuriti, mis on hetkel sellise lähenemise kasutusse võtmisel peamised pidurdavad tegurid. Selgus, et põhilisi raskusi tekitavad asjaolud, et veebilehitsejad ei võimalda teha päringuid rakenduse suhtes välistesse domeenidesse ja et JavaScriptis on SOAP päringute koostamise tugi võrdlemisi limiteeritud. Lisaks tõdeti, et teenustest saadava info visualiseerimine nõuab teenuse väljundi ja kuvamisloogika manuaalset kokku-traageldamist (hard-wiring ing k). Probleemi lahendamiseks otsustati kasutada nö veebividinapõhist lähenemist, kus iga teenuse operatsiooni jaoks genereeritakse nähtamatu JavaScripti vidin, millelt saadav info muudetakse nähtavaks mõne teise vidina poolt. Sellise lähenemise rakendamiseks loodi kaheosaline raamistik, mis koosneb kliendikihist ja serverikihist. Vidinate suhtlemise võimaldamiseks võeti kasutusele OpenAjax Hub raamistik, mis toimib vidinatevaheliste sõnumite vahendajana. Selleks, et vidinad ei oleks tihedalt kokku traageldatud, võeti appi Transformer Widget. Transformer Widget lisab OpenAjax Hub vidinatele võimaluse omavahel suhelda, kasutades semantilist integreerimist. Nähtamatute vidinate genereerimiseks loodi eraldi OpenAjax Hub vidin - Proxy Widget. See toimib teenuseid tarbivate vidinate ja tegeliku teenuse vahelise puhvrina ning lisaks hoolitseb selle eest, et vidin oleks korrektselt Transformer Widgetis registreeritud. Transformer Widgetis registreerimiseks pakub tuge ka serveripool. Serveris genereeritakse selle jaoks dokument, mis kirjeldab vidinate struktuuri ja semantikat ning lisaks ka skeem JSON vormingus andmete kirjeldamiseks. Serveripool kasutab selle jaoks teenuse semantiliselt annoteeritud WSDL keeles kirjeldust, kust saadakse kõik vajalik informatsioon. Proxy Widgeti puhverdamisloogika toimib nii, et esitluskihis võetakse sisendisse JSON vormingus andmed, mille abil luuakse JSON-RPC päring. See saadetakse edasi serveripoolele, mis omakorda transformeerib päringu SOAP päringuks ning saadab lõppteenusele. Lõppteenuselt saadud vastus teisendatakse tagasi JSON-RPC päringuks ning edastatakse Proxy Widgetile. Välja pakutud lahenduse toimimist testiti näidisrakendusega, kus esitluskihi tasemel võimaldati tarbida kolme Äriregistri teenust - firmade leidmine nime järgi, firma aastaaruannete leidmine ning aastaaruannete andmete leidmine. Näidisrakendus tõestas, et teenuste tarbimine ning andmete kuvamine osutus antud lahendusega oluliselt lihtsamaks. Lisaks oli see tõestuseks, et teenuste tarbimine oli võimalik vaid veebilehitsejale omaste tehnoloogiate kasutamisega.
The Deep Web, as the name implies, is typically hidden from a common web user, because the information it contains, is not findable through standard search engines. However, this hidden information is often useful to the web user. The question is, what are the possibilities to surface those resources? An example of Deep Web resource would be a SOAP web service of Estonian Business Registry. If a developer wants to use this service in a web application, to query data about annual reports, he should create a service client on the server-side and then manually wire together the user interface and the web service. This requires quite a lot of work and knowledge of server-side programming. Following a current trend where Web application development is geared towards the browser-side implementations, what should a developer do in order to create a client-side mashup using Deep Web resources and web widgets to visualize the annual report data? Unfortunately, his possibilities narrow down quite heavily. The creation of SOAP requests on the client-side is not well supported and he should still put up a server-side proxy to request data outside his own domain. And of course, the wiring with visual widgets still requires much work. This thesis aims to provide a solution that helps a developer to create such client-side mashups. It will provide an infrastructure, that takes care of the cross-domain request problems by creating a common server-side proxy, that anyone could use. It will allow a developer to initiate SOAP requests from within a web browser, by using just JSON request data. Additionally, the solution allows a developer to integrate SOAP web services with visual widgets, by using semantic integration instead of hard-wiring.

Description

Keywords

Citation