Szolgáltatásorientált architektúra

A Wikipédiából, a szabad enciklopédiából
(Szolgáltatásorientált architektúrák szócikkből átirányítva)

A szolgáltatásorientált architektúra (angolul Service-Oriented Architecture, röviden SOA) egy programozási módszer, aminek lényege, hogy az egyes szolgáltatások egy hálózatban helyezkednek el, és egy protokoll által meghatározott módon kommunikálnak. Alapvető elvei függetlenek gyártóktól, termékektől, terjesztőktől és technológiáktól.[1] A szolgáltatások különálló egységek, amik távolról is elérhetők, egymástól függetlenül elérhetők, használhatók, frissíthetők, újra kombinálhatók a folyamatok folytonos változásának, megújulásának megfelelően.

Egy szolgáltatásnak a következőket kell teljesítenie:[2]

  • Logikailag reprezentál egy üzleti aktivitást előre meghatározott kimenettel.
  • Önálló, független egység (self-contained).
  • Fekete doboz a kliensei számára.
  • Tartalmazhat több részszolgáltatást.[3]

Különböző szolgáltatások használhatók együtt, hogy egy nagy alkalmazás funkcionalitását nyújtsák.[4] Ez ugyanaz, mint az 1970-es években a modularitásra megadott definíció. Azonban a szolgáltatásorientált architektúra célja nem az alkalmazás tagolása, hanem az integráció, aminek elemei önálló, elosztott és külön telepíthető komponensek. Technológiák és szabványok segítik a komponensek kommunikációját és együttműködését.

A szolgáltatásorientált architektúra célja[szerkesztés]

A szolgáltatásorientált architektúra a lazán kapcsolódó, és együttműködő szoftver szolgáltatások segítségével támogatja az üzleti és más folyamatokat. Rendelkezik megfelelő mechanizmussal különböző működési modellek meghatározására, felépítésére. Biztosítja, hogy egy-egy szolgáltatás pontosan megfeleljen a működési modell által meghatározott céloknak.

A szolgáltatások protokollokkal kapcsolódnak, amelyek metaadatokkal leírják az adatok tárolásának, küldésének, konvertálásának módját. A metaadatok leírják az egyes szolgáltatások célját, működését és minőségi jellemzőit is. Az architektúra célja, hogy a felhasználók hosszabb kódszakaszokat kombinálhassanak, amelyekből ad hoc módon létrehozhatják alkalmazásaikat. Egy szolgáltatás egyszerű interfészt reprezentál, ami fekete dobozként absztrahálja az alatta levő bonyolultságot. A felhasználók a belső reprezentáció ismerete nélkül vehetik igénybe ezeket a szolgáltatásokat.[5]

Szempontok[szerkesztés]

A lazán kapcsolódó egységeket, amelyek különböző funkciókat valósítanak meg, szolgáltatásoknak nevezzük.[6] Ezek egy hálózatba vannak kapcsolva, és egy protokoll által meghatározott módon kommunikálnak.[7]

A minta manifesztuma 2009 októberében jelent meg. Ez hat szempontot jelölt meg, amiket a minta alkalmazásához figyelembe kell venni:[8]

  • Az üzleti érték fontosabb, mint a technikai stratégia.
  • A stratégiai célok fontosabbak, mint a projekt-specifikus előnyök.
  • A belső együttműködés fontosabb, mint a konfigurációs integráció.
  • A megosztott szolgáltatások fontosabbak, mint a specifikus célú megvalósítások.
  • A rugalmasság fontosabb, mint az optimalizáció.
  • Az evolúciós finomítás fontosabb, mint az első változat tökéletessége.

A szolgáltatásorientált architektúra az elosztott számítások[6][9] és a moduláris számításoktól a modern mashup, Saas, és felhőprogramozás közötti kontinuum részének tekinthető.[10]

A legfontosabb szabványok[szerkesztés]

A legfontosabb szabványok és kapcsolódásuk

A SOA-t egy szabványos felszínen, a webszolgáltatás platformon valósítják meg. Ezt a Web szolgáltatás szabványt egyformán támogatja a .NET és a Java. A SOA által használt szolgáltatásorientált környezet legfontosabb szabványai a következők:

  • SOAP, egy XML (WSDL) alapú kiterjesztett üzenet formátum (boríték).
  • WSDL, webszolgáltatás leíró nyelv, (Web Services Description Language)
  • UDDI, általános kereső és integrációs leírásokat tároló eszköz (Universal Description Discovery and Integration).

Szolgáltatástervezés[szerkesztés]

A szolgáltatás beazonosítása[szerkesztés]

A létező alkalmazási környezetekben használt alkalmazások funkciói nagyon gyakran felhasználhatók mint szolgáltatások. Ez a hozzáállás esetenként egyáltalán nem igényel programozást, más esetben a program nem túl jelentős módosításával megvalósítható. Ez természetesen jelentős költség- és nem mellékesen időmegtakarítással jár.

Azonban a fejlesztők általában nem vagy alig rendelkeznek ismeretekkel a meglévő alkalmazásokról ezért egy SOA projektben rendkívül fontos, hogy a fejlesztők és az „üzleti” elvárásokat megfogalmazó szponzorok a fejlesztések tervezési fázisába bevonják a meglévő alkalmazások üzemeltetőit és kulcsfelhasználóit is a munkába.

A legtöbb intézmény informatikai rendszere, létrejöttének megfelelően, több különálló sziget rendszerből áll. Ezek a rendszerek egységes rendszerbe történő integrálását biztosíthatja egy SOA projekt. Az informatikai piac minden jelentős szállítója biztosít olyan SOA megoldásokat, amelyek szolgáltatás brókerek, tárolt eljárások segítségével, lehetővé teszik meglévő alkalmazásoknak szolgáltatásként történő felhasználását

Szolgáltatás létrehozása[szerkesztés]

A szolgáltatás-specifikációk elkészítése az adott funkciók megvalósításához szükséges WSDL dokumentumok elkészítését jelenti. Ehhez először megfelelő modellező eszközt kell kiválasztani a szállítók által kínált eszközök közül. Majd, amennyiben szükséges, meg kell keresni a megfelelő eszközt a meglévő alkalmazások szolgáltatásorientált felhasználására. Amennyiben elkerülhetetlen új szolgáltatások alkalmazása, akkor a meglévő informatikai környezetbe legkönnyebben beilleszthető fejlesztő eszközt kell kiválasztani.

Minden jelentős szoftverszállító HP, IBM, Microsoft, Oracle, de kisebb csak erre a területre specializálódott cégek egyaránt biztosítanak eszközöket úgy a meglévő üzleti alkalmazások (Legacy systems) szolgáltatásorientált architektúrában történő felhasználására, mint azoknak szolgáltatássá alakítására. (HP SOA Gateway; IBM Rational Developer & IBM WebSphere; Microsoft Net Framework; Oracle SOA Suite components stb.)

Szolgáltatások összekapcsolhatósága[szerkesztés]

Vállalati szolgáltatás sín (ESB)[szerkesztés]

A vállalati szolgáltatás sín a SOA elvei szerint kialakított szolgáltatás kérők és szolgáltatás szolgáltatók közötti összekapcsolhatóságot biztosító infrastruktúra.

Harmadik fél szolgáltatásainak felhasználása[szerkesztés]

A szolgáltatásorientált architektúra nagyon fontos eleme, hogy lehetőséget biztosít mások (harmadik fél) által kidolgozott szolgáltatások felhasználására. Ez természetesen megköveteli megfelelő biztonsági eszközök alkalmazását. Ezeknek a biztonsági követelményeknek való megfelelést különböző gyártók által kialakított SOA szabványnak megfelelő eszközök biztosítják. Ezt a SOA Integration Appliance segítségével valósítják meg a szolgáltatásorientált architektúrákban.

A szolgáltatásorientált architektúrák számára a SOA szabványok létrehozásában részt vevő szervezetek kidolgoztak egy SOA biztonsági referencia modellt.

Megőrzéstervezés (Preservation Planning vagy SOA Governance)[szerkesztés]

A szolgáltatásorientált architektúra legfontosabb eleme a használt szolgáltatások rendszerezése, azok folyamatos minőségbiztosítása és az elérhetőségük biztosítása.

A szolgáltatásorientált architektúra különösen nagy figyelmet fordít a SOA rendszerek életciklusának kezelésére. Ezt külön tanulmányok taglalják, és a szolgáltatások nyilvántartását biztosító regiszterek és katalógusok kezelésére a legtöbb szoftvergyártó speciális eszközöket biztosít.

További információk[szerkesztés]

[1] SOA gyorstalpaló

[2] Szolgáltatásorientált technológiák és ezek hatása a jövő üzleti alkalmazásaira

  1. Chapter 1: Service Oriented Architecture (SOA)
  2. http://www.opengroup.org/standards/soa
  3. What Is SOA?
  4. Velte, Anthony T.. Cloud Computing: A Practical Approach. McGraw Hill (2010). ISBN 978-0-07-162694-1 
  5. Migrating to a service-oriented architecture, Part 1, 2008. december 9. [2008. december 9-i dátummal az eredetiből archiválva].
  6. ^ a b Michael Bell. Introduction to Service-Oriented Modeling, Service-Oriented Modeling: Service Analysis, Design, and Architecture. Wiley & Sons, 3. o (2008). ISBN 978-0-470-14111-3 
  7. Michael Bell. SOA Modeling Patterns for Service-Oriented Discovery and Analysis. Wiley & Sons, 390. o (2010). ISBN 978-0-470-48197-4 
  8. SOA Manifesto
  9. Thomas Erl (June 2005). About the Principles. Serviceorientation.org
  10. Application Platform Strategies Blog: SOA is Dead; Long Live Services. Apsblog.burtongroup.com, 2009. január 5. (Hozzáférés: 2012. augusztus 13.)