Magyar English 日本語
Sun

SOA - Szolgáltatásorientált architektúra (Service Oriented Architecture)

Napjainkban egyre többször felmerül az igény, hogy olyan átlátható, könnyen karbantartható, menedzselhető alkalmazásokat hozzunk létre, melyek könnyen kommunikálnak más alkalmazásokkal, platform- és nyelvfüggőség nélkül. Ezért egyre divatosabb a különféle SOA-alapú megoldások, eszközök használata.

Ezek a SOA-megoldások egyszerre teszik biztonságosabbá, hatékonyabbá a fejlesztés menetét, és nyújtanak betekintést és beleszólást a rendszer folyamataiba üzleti világnézetű felhasználói számára is a gazdag grafikus felület segítségével.
 
 

A SOA dióhéjban:

Egy megoldás arra, miként tudunk kölcsönös működésre bírni különböző alkalmazásokat, szolgáltatásokat, ezáltal akár lehetővé tenni különböző rendszerek integrációját, együttműködését.

 

A két fél, azaz a szolgáltató és a szolgáltatást igénybe vevő a hálózat segítségével kerül kapcsolatba egymással. Jellemzően két teljesen idegen rendszer elemét képezik.

A kapcsolatépítés a következő folyamatokból tevődik össze:

  1. A szolgáltatás közzéteszi magát egy szolgáltatásokat leíró nyilvánosan elérhető adatbázisban.
  2. A szolgáltatást igénylő felkeresi az említett adatbázisból a meghívni kívánt szolgáltatást, és kap egy szolgáltatás-leírót, mely tartalmazza a szolgáltatás lényeges adatait (hogyan lehet meghívni, milyen típusú és mennyi paramétert vár, milyen típusú a visszatérési értéke, stb.).
  3. Az igénylő a leíró segítségével meghívja a szolgáltatást a szükséges adatok átküldésével.
  4. A szolgáltatás feldolgozza a kérést, és visszaküldi a feldolgozás eredményét az igénylőnek.

 


Ez egy általános leírása az architektúrának, a valóságban általában webszolgáltatásokról (WebService) beszélünk, ahol a szolgáltatások egy UDDI adatbázisba kerülnek regisztrálásra. A szolgáltatás-leíró ilyen esetben egy WSDL-fájl, az igénylő és a szolgáltatás pedig SOAP-borítékokkal folytatja egymás között a kommunikációt.

 soa-1

A SOA tágabb értelmezésben: 

Egy nagyobb rendszert kell elképzelnünk, mely lazán csatolt együttműködő szolgáltatásokból épül fel. Ezek a szolgáltatások közös formális nyelven kommunikálnak egymással, mely nyelvfüggetlen az adott szolgáltatás implementációs nyelvétől és környezetétől. A szolgáltatások interfész-definíciója elrejti az architektúra elől a nyelvfüggő implementációs részeket. A SOA szabványosított komponensekből felépülő rendszer, amelynek egyik legfontosabb eleme egy kommunikációs réteg, mely rétegen keresztül válnak elérhetővé a háttérrendszerekben azonosított szolgáltatások, melyeket a szolgáltatás-interfészen keresztül érünk el.

 

 

A SOA-szemléletmód előnyei:

  • komponensalapú építkezés, mely lehetővé teszi a komponensek újrafelhasználhatóságát
  • leváltja a monolitikus (silóorientált), nehezen átlátható és kezelhető rendszereket, így a kritikus helyek könnyebben beazonosíthatóak, karbantarthatóak
  • rugalmas és hatékony alkalmazáskörnyezet és architektúra
  • elosztottság támogatása: a felhasználói felület elválik az implementációs rétegtől
  • könnyen párhuzamosítható fejlesztési feladatok, mely szintén az elosztottságból fakad

 

A SOA-szemléletmód hátrányai:

  • A rugalmasság biztosítása nagyobb erőforrásigényekkel jár, de a jelenlegi technológiai lehetőségek megfelelnek ezen igényeknek.

 

BPM - Az üzleti folyamatok modellezése

Nagyobb üzleti folyamatoknál sok különböző szolgáltatást kell elérni, használni, különböző logikák alapján. Ezen folyamatokat jellemzően egy grafikus modellező eszköz segítségével könnyen áttekinthetően formálhatjuk meg. A háttérben egy XML-alapú magasszintű nyelv, a BPEL (Business Process Expression Language) segítségével történik a folyamat tényleges leírása.

 

 

SOA fejlesztőeszközök:

Manapság több szoftvergyártónak is van már megoldása arra, hogy ne kelljen soronként megírni a webszolgáltatásokat, a WSDL fájlokat, a BPEL folyamatokat, hanem azokat a rendszer segítségével grafikusan létrehozhassuk, a kulcsfontosságú adatok alapján legeneráltathassuk, így nagyon sok időt és terhet spórolhatunk meg. Ezek a rendszerek hatékony kódokat generálnak, kizárják a programozásból adódó hibák lehetőségét, könnyen átlátható és módosítható az elkészített alkalmazásrendszer, ezért érdemes használni őket.

 

 

Vissza