Veebiteenuste arendamise metoodikad – mobiilirakenduste arendus, veebiteenused, SOA arhitektuur – tehnoloogia
Mine sisu juurde

Veebiteenuste arendamise metoodikad – mobiilirakenduste arendus, veebiteenused, SOA arhitektuur

Reklaamid

Coulouris määratles hajutatud süsteemid kui "süsteemid, milles arvutivõrgus olevad riist- ja/või tarkvarakomponendid suhtlevad ja koordineerivad oma tegevusi sõnumeid vahetades".

See kontseptsioon on viimastel aastatel muutunud populaarseks mitmete tegurite tõttu. Esimene tegur, mis soodustas hajutatud süsteemide arengut, oli kiirete kohtvõrkude tekkimine. Teine oluline tegur oli personaalarvutite jõudluse tehnoloogiline areng ja hajutatud rakendusi toetava tarkvara arendamine. Hajutatud süsteemid on seotud veebi ja Interneti kontseptsiooniga. Veebi arenguga ning uute valdkondade, koostoimete, vajaduste ja rakenduste ilmumisega ilmub Web 2.0 kontseptsioon. Selle termini võttis kasutusele Tim O'Reilly 2004. aastal, et viidata teisele põlvkonnale veebi ajaloos, mis põhineb kasutajate kogukondadel ja eriteenustel, nagu sotsiaalvõrgustikud, ajaveebid, wikid või folksonoomia, mis soodustavad koostööd ja kiiret teabevahetus kasutajate vahel.

Esimesed arhitektuurid, mida võib pidada teenusekeskseks (SOA), põhinesid CORBA-l (Common Object Request Broker Architecture), mis toimis abstraktsioonikihina arhitektuuri erinevate elementide ühendamiseks ja teenuste ehitamiseks. Teised varasemad tehnoloogiad olid DCOM (Distributed Component Object Model) või RPC (Remote Procedure Protocol). Veebis hajutatud süsteemide tõhusa kavandamise ja juurutamise vajadusega kerkivad esile mitmed väljakutsed, millest osa keskendub arendusele endale (jõudlus, kasutajakogemus jne) ja teised täiendavad, mis põhinevad teenuste korduvkasutataval ja ühilduvusel. Nendest vajadustest tulenevad veebiteenused, mis pakuvad standardiseeritud mehhanisme erinevate kasutajate ühendamiseks teabeserveritega.

TEENINDUSLIKUD ARHITEKTUURID

SOA (Service Oriented Architecture) järgi on tarkvaraarhitektuurid, mis määratlevad teenuste kasutamise ärinõuete toetamiseks, mille eesmärk on saavutada tarkvaraagentide vahel võimalikult väike seos. Teenus on tööühik, mida teenuseosutaja teeb teenuse tarbija soovitud lõpptulemuse saavutamiseks. Nii teenusepakkuja kui ka teenuse tarbija rollid on tarkvaraagendid, mitte tarkvara omanikud. Üldises mõttes on teenusekeskne arhitektuur tarkvaralahendus, mille eesmärk on võimaldada ettevõttel korraldada ja kasutada erinevaid protsesse. SOA puhul pole tarkvararakendused enam suured funktsioonide ja protsesside plokid. Selle asemel koosnevad need rakendused kokkupandud moodulteenustest. Pidage meeles, et teenus on lihtne tarkvarafunktsioon (nagu CD tühistamine). Seda saab nõudmisel käivitada iga süsteem, olenemata operatsioonisüsteemist, platvormist, programmeerimiskeelest või geograafilisest asukohast.

SOA puhul pole revolutsiooniline mitte kontseptsioon ise, mis on olnud juba pikka aega, vaid asjaolu, et seda saab rakendada WWW (World Wide Web) kaudu. Samamoodi, nagu veebilehed laaditakse mis tahes platvormil, töötavad veebiteenused sarnaselt olenemata platvormist, mille abil need on loodud
universaalsed standardid.

FotograafSOA idee tuleneb otseselt objektorienteeritud programmeerimisest, mis viitab seosele andmete ja nende töötlemise vahel. Seega määratlevad nad ametlikult teenused liideste kaudu, mis on aluseks olevast platvormist ja programmeerimiskeelest sõltumatud. Need liidesed peidavad nende rakendamise iseärasusi, mis muudab need sõltumatuks arendaja ja programmeerimiskeel. Nende arhitektuuride kaudu on võimalik kavandada ja juurutada väga skaleeritavaid süsteeme, mis peegeldavad äriloogikat ja hõlbustavad samal ajal erinevate patenteeritud või kolmandate osapoolte süsteemide vahelist suhtlust. Põhjus, miks me tahame, et keegi teine ​​meie eest tööd teeks, on see, et nad on eksperdid. Teenuse kasutamine on tavaliselt odavam ja tõhusam kui ise tegemine. Nii et enamik meist mõistab, et me ei saa olla kõiges asjatundjad. Sama reeglit saab rakendada ka tarkvarasüsteemide ehitamisel.

Liidesed on väga olulised, kui need pole täpselt määratletud või ei tööta, siis süsteem ei tööta. Rohkemate liideste integreerimine on kallis ja suurendab ka hajutatud rakenduste vigade võimalust. Kaugliidesed on enamiku hajutatud rakenduste kõige aeglasem osa. Kõige selle juures on iga rakenduse jaoks uute liideste loomise asemel mõistlikum taaskasutada kõigi rakenduste jaoks üldisi liideseid.

Seega, kuna meil on saadaval vaid mõned üldised liidesed, peame sõnumitesse lisama rakendusespetsiifilise semantika. Saame oma liideste kaudu saata mis tahes sõnumeid, kuid tuleb järgida mõningaid reegleid, et öelda, et arhitektuur on teenusele orienteeritud.

– Esiteks peavad sõnumid olema kirjeldavad, mitte õpetlikud, sest teenusepakkuja vastutab probleemi lahendamise eest. Näiteks oleks see sarnane olukorraga, kui lähed restorani ja räägid kelnerile, mida soovid juua ja oma eelistusi, kuid me ei peaks kokale seletama, kuidas oma roogasid samm-sammult valmistada.

‐ Teiseks ei saa teenusepakkujad teie päringust aru, kui nende sõnumid ei ole kirjutatud kõigile asjaosalistele arusaadavas vormingus, struktuuris ja sõnavaras. Seega on sõnumite sõnavara ja struktuuri piiramine a
tõhusaks suhtlemiseks vajalik. Mida kitsam on sõnum, seda lihtsam on mõista.

- Kolmandaks on pikendamise võimalus ülioluline. Maailm on pidevalt muutuv paik, nagu ka keskkond, milles tarkvara elab. Need muudatused nõuavad vastavaid muudatusi süsteemitarkvaras, tarbijates teenusepakkujate ja nende vahetatavate sõnumite kohta. Kui sõnumeid ei saa laiendada, lukustatakse tarbijad ja pakkujad teenuse konkreetsele versioonile. Piirang ja laiendatavus on omavahel tihedalt seotud, vajate mõlemat ja ühe suurendamine tähendab teise vähendamist. Ideaalne on saavutada õige tasakaal.

– Neljandaks peab SOA-l olema mehhanism, mis võimaldab tarbijal leida teenusepakkuja tarbija otsitava teenuse kontekstis. Mehhanism peaks olema paindlik ja mitte tsentraliseeritud register.

- Viiendaks, kodakondsuseta teenus: iga sõnum, mille tarbija saadab teenusepakkujale, peab sisaldama kogu teavet, mis on teenusepakkujale selle töötlemiseks vajalik. See piirang muudab teenusepakkuja skaleeritavamaks, kuna pakkuja ei pea päringute vahel olekuteavet talletama. Seda võib nimetada masstootmisteenuseks, kuna iga taotlust saab käsitleda üldiselt. See piirang annab ka parema nähtavuse, kuna mis tahes seiretarkvara saab päringut iseseisvalt kontrollida ja selle eesmärgi välja võtta. See võimaldab ka hõlpsat taastumist osalistest riketest, kuna puuduvad vahepealsed olekud, mis muudab teenuse usaldusväärsemaks.

- Kuuendaks idempotentsed päringud (ei tee muudatusi): tarkvaraagendi saadud duplikaattaotlustel on sama mõju kui ühel päringul. See nõue võimaldab teenuseosutajatel ja tarbijatel suurendada seadmete üldist töökindlust teenust, korrates tõrgete korral lihtsalt päringut.

Seega võime öelda, et SOA ei ole tööriist, vaid standardite kogum uute, dünaamilisemate ja vähem sõltuvate rakenduste loomiseks. SOA hõlbustab süstemaatiliselt juurdepääsu äriloogikale ja teabele mitme teenuse kaudu ning võib ka mitut kaugteenust korraldada, et koostada üks. enamik definitsioonid tuvastavad veebiteenuste kasutamise, mida näeme järgmises peatükis, teenusekeskse arhitektuuri rakendamisel. Seda saab aga rakendada mis tahes muu teenusepõhise tehnoloogia abil.