SZOLGÁLTATÁS ORIENTÁLT ARCHITEKTÚRÁK (SOA) 1
Bevezetés • A növekvő adatkereslettel és az infrastruktúra komplexitásával olyan új architektúrára van szükség, ami lehetővé teszi a vállalkozások számára a rugalmasságot és a kiterjeszthetőséget. • Alapvetően kódmentes, önálló logikai adatintegrációs forma. • IT (és üzleti) stratégiai eszköz. • A „Hogyan?” helyett a „Mit?”-re koncentrálva az integrációs megoldások gyors fejlesztése valósítható meg.
2
SOA - tulajdonságok • Jól definiált illesztő felületet ad, fekete doboz - elrejti implementációjának részleteit – • Nyílt szabványú mechanizmusokon át hívható • Építőelemei: (lazán csatolt) szolgáltatások • A szolgáltatások önállóan is működőképesek, platform- és eszközfüggetlenek (tetszőleges technológiával készülhetnek), szabványos, jól definiált interfésszel rendelkeznek, és szabványos adatcsere- és kommunikációs protokollokkal érhetők el az elosztott hálózatokban.
3
Út a SOA-ig • Monolitikus rendszerek • Eljárások, függvények, távoli eljárás-hívás (RPC) • OOP, objektum hívások • Webes protokollok: HTTP, FTP, POP3, SMTP • Web szolgáltatások • SOA 4
Út a SOA-ig: Monolitikus vállalati alkalmazások (silo rendszerek) • Az egyes alkalmazások közötti kapcsolat nincs vagy igen korlátozott. • Minden funkcionalitás az felhasználói interfész segítségével van kialakítva. • Új funkcionalitás beépítése esetén programozó szükséges. Felhasználói interfész (UI)
Programlogika
Szállító rögzít.
Számla rögzít.
Számla mód.
Számla törlés
Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) - C++, Java, stb. 5
Út a SOA-ig: Munkafolyamatok (fejben)
Felhasználói interfész (UI)
Jóváhagyás
Előzetes ellenőrzés
Programlogika
Szállító rögzít.
Számla rögzít.
Számla mód.
Számla törlés
Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) - C++, Java, stb. 6
Út a SOA-ig: Task management Előzetes ellenőrzés
Számla rögzítése
Jóváhagyás
Felhasználói interfész (UI)
Jóváhagyás
Előzetes ellenőrzés
Programlogika
Szállító rögzít.
Számla rögzít.
Számla mód.
Számla törlés
Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) - C++, Java, stb. 7
Út a SOA-ig: Munkafolyamat management Előzetes ellenőrzés
Számla rögzítése
Jóváhagyás
Felhasználói interfész (UI)
Jóváhagyás
Előzetes ellenőrzés
Programlogika
Szállító rögzít.
Számla rögzít.
Számla mód.
Számla törlés
Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) - C++, Java, stb. 8
Út a SOA-ig: Szolgáltatás integráció
Adatbevitel
Ellenőrzés
Váll. Szabályok ell.
Jóváhagyás
Számla rögzítése
Szolgáltatás interfész
Jóváhagyás
Előzetes ellenőrzés
Alkalmazási logika
Szállító rögzít.
Számla rögzít.
Számla mód.
Számla törlés
Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) 9
Út a SOA-ig: Összetett szolgáltatások
Adatbevitel
Ellenőrzés
Összetett szolgáltatások
Jóváhagyás
Számla rögzítése
ESB – szolgáltatás sín
Szolgáltatás interfész
Új szabályok
Ellenőrzések
Alkalmazási logika
Szállító rögzít.
Számla rögzít.
Számla mód.
Számla törlés
Vállalati információs rendszer Pl.: Könyvelés és számvitel (pénzügy) 10
SOA - ESB • Rugalmas kapcsolatot, • Egységes keretet, • Szabványos kommunikációt biztosít
11
Szoftver rendszerek Szoftver rendszerek
Monolitikus
Elosztott
Hagyományos
Web-alapú szoftverek
Web alkalmazások
Szolgáltatás-orientált alkalmazások
Szolgáltatás • • • •
Moduláris Önleíró Szabványos szerkezetű Adott funkciót, feladatot biztosít, például: – – – – – –
SAP modul funkciója: pl: készlet lekérdezés Java osztály Tárolt eljárás (adatbázisban) Üzenetküldés Robot interfésze Szenzor mérési eredménye 13
14
SOA példa • A megvalósításának egy példája: Web Services Szolgáltatások – melyek összekapcsolódás mentesek - ahelyett, hogy a forráskódúkba ágyazva hívnák meg egymást, egy előre meghatározott protokollt használnak az egymással való kommunikáció leírásához: • A WDSL (Web Description Services Language) a szolgáltatásokat • a SOAP (Simple Object Access Protocol) pedig kommunikációs protokollokat írja le.
15
Szolgáltatások típusai • Üzleti szolgáltatások: teljes vagy rész üzleti funkciókat valósítanak meg. – ügyfélkezelés – számlakezelés
• Technikai szolgáltatások: Az üzleti szolgáltatások megvalósításához az egységesítés és újrafelhasználás érdekében nélkülözhetetlenek olyan alacsonyabb szintű építőelemek, melyek az üzleti felhasználók számára nem láthatók. – – – –
naplózás, archiválás, dokumentumtárolás, megjelenítési szolgáltatások 16
SOA Igérete • A SOA nagy ígérete: az alkalmazások fejlesztési költsége az időben előre haladva a végtelenben a nullához közelit, mivel egyre több szolgáltatás áll rendelkezésre az újabb feladat megvalósításához. • Ezáltal a fejlesztések egyre inkább csak szolgáltatások egymás után kötéséből állnak. Erre a célra használt eszközök a Business Process Management, BPEL, WS-CDL, WS-Coordination. 17
Programozók vs. szoftverfejlesztők • A programozók az alkalmazások fejlesztéséhez olyan hagyományos nyelveket használnak, mint Java, C++, C, C#. • Szoftverfejlesztők, szoftvermérnökök és a különböző üzleti folyamat szakértői egy megfelelő hangszerelést használva kapcsolják össze az egyedi SOA objektumokat.
18
SOA létrejöttének okai • • • • • • • • •
rugalmatlan üzleti megoldások integrációs nehézségek a szabványok hiánya miatt architekturális problémák ad hoc fejlődés pont-pont kapcsolatok heterogén szigetmegoldások infrastrukturális hiányok lecserélési korlátok növekvő modularitás
19
Enterprise Application Integration (EAI), mint a SOA elődje • A vállalati szintű alkalmazásintegráció (EAI) a különféle vállalati szoftverrendszerek (például ERP, SCM, CRM szoftverek) belső integrációját jelenti. • Ahhoz, hogy a különböző szoftvereket folyamat-orientált módon integráljunk, az egyszerű, alkalmazások közötti pontpont adatcsere nem elegendő. • A megfelelő megoldás a több alkalmazást is érintő komplex folyamatok leképezése.
22
SOA • A szolgáltatásorientált architektúra lazán kapcsolódó, és együttműködő szoftverszolgáltatások segítségével támogatja az üzleti és egyéb folyamatokat.
23
SOA Alapelvei • • • • • • • •
Újrafelhasználhatóság Részletesség Modularitás Komponálhatóság (composability) Komponensalapúság Együttműködési képesség Szabványok közti együttműködés (fő és vállalat specifikusan) Szolgáltatások – azonosítása és kategorizálása – elérhetősége és átadása – megfigyelése és követése.
24
SOA infrastruktúra részei • • • • • •
Szolgáltatások Szolgáltatásbusz (ESB) Szolgáltatástár (Registry-Repository) Front-end rendszerek (felhasználók) IT Service Management Üzleti monitorozás
25
Szabványos megvalósítás
26
BPEL - Business Process Execution Language
27
SOA keretrendszer • A SOA keretrendszerek olyan újrafelhasználható szolgáltatásokat tartalmaznak, (vállalati osztályok feladatai, műveltei), és kellően megtervezettek ahhoz, hogy méretük változtatható legyen a betöltésük során, illetve megfeleljenek a különböző típusú tartós alkalmazások követelményeinek. • Keretrendszer használatával jó minőségű szolgáltatás fejleszthető, amit tervezési minták és hasznos gyakorlatok segítenek. 28
Keretrendszer - fejlesztőknek • Egy egységes alapot használnak az alkalmazások, webszolgáltatások és portálok készítésére. • Fejlesztik a termelékenységet azáltal, hogy fuzionálnak a tervezési mintákkal és a helyes tapasztalatokkal. • Kevesebb kódot írnak azáltal, hogy kihasználják a keretrendszer nyújtotta lehetőségeit. • A J2EE/.NET szabványok és specifikációjuk ismerete nem szükséges. • Nem szükséges szakértőnek lenniük az objektumorientált tervezésben és tervezési mintákban ahhoz, hogy ezt használják. 29
Keretrendszer - vállalatoknak • Katalizátor a szolgáltatásorientált architektúra eléréséhez és alacsony költséghez • Ismételhetőséget és egy minimális szintű architekturális és tervezési merevséget • Fejlett üzleti gyorsaságot moduláris megoldás eredményeként, amik könnyen változtathatóak, gyakran konfigurációs módosítások által. • Nagyobb következetességet, előre láthatóságot, és jobb teszt megoldást. • Fejlett fejlesztői mobilitást projektek között
30
Szolgáltatások életciklusa • Elemzés és elvárások – Az üzlet kezdetben inicializálja és prioritásuk szerint sorrendbe teszi az üzleti igényeket.
• Tervezés és fejlesztés – A tervezési fázisban az üzleti elemzők szorosan együttműködnek a modellezőkkel a megfelelő eredmény érdekében.
• IT üzemeltetés – Felelős a tesztelését, véghezvitelért, a megfelelő környezetért, a hálózati méretezésért, és az adatközpontért. Feladata a bevezetés, monitorozás és a következő szint biztosítása. Követelményei a függőségek nyomon követése, és kezelése, alkalmazások támogatásának biztosítása, bevezetése és az üzleti szolgáltatások menedzselése a termelésben. 31
Üzleti folyamatok felügyelete – Business Process Management (BPM) • A folyamatok pontos megértésének segítségével csökkenti a kockázatokat, még a megvalósítást megelőzően. Redundanciák és szűk keresztmetszetek azonosítására és kiküszöbölésére szolgál. • Elősegíti folyamatok automatizálásának megvalósítását a kézi tevékenységek kiiktatásával és új üzleti szabályokat és folyamatokat hajt azonnali végre. Megjeleníti a folyamatok valós viselkedését a legfontosabb működési jellemzők mérésével. • Hosszú futási idejű, szinkronizált és aszinkron üzleti folyamatok menedzselésére használják. 32
SOA – előnyei • Újrafelhasználhatóság • fejlesztési, adminisztratív és üzemeltetési költség csökkenése • egységes fejlesztési és üzemeltetési módszertan • üzlet és IT hatékony együttműködés • rugalmasak, átláthatóak, mérhetőek és monitorozhatóak vállalati/üzleti folyamatok • Szabványok alkalmazása jellemzi 33
SOA - hátrányai • Kiegészítő környezet és tervezés szükségeltetik • Különböző platformok és termékek közötti együttműködés létrehozása lehetetlen megfelelő szakember hiányában • Bevezetésének lépéseit nem szabad elkapkodnunk • Ne csak a rövidtávú, hanem a hosszú távú szempontokat is vegyük figyelembe a döntéseinkben és építsük fel a szükséges tudást • Legyen elkötelezett a cégmenedzsment a SOA irányába, illetve az IT és az üzlet legyenek egyenrangú felek, ismerjék meg egymást, alakítsanak ki közös nyelvet
34
CLOUD COMPUTING
35
Szoftver vs. szolgáltatás fogalmak S+S (szoftver plusz szolgáltatások)
SaaS (szoftver mint szolgáltatás) az alkalmazás az ügyfélnél fut, és felhasználja további, a „felhőben” futó alkalmazások szolgáltatásait
az alkalmazás a „felhőben” fut, az ügyfél oldalán nincs szoftver (csak egy böngésző)
Cloud Computing, Cloud Platform a „felhőben” futó alkalmazások létrehozását, futtatását, felügyeletét biztosító/támogató platform
Alkalmazás modellek, fogalmak • Mashup • Software-as-a-Service (SaaS) • Platform-as-a-Service (PaaS): – Windows Azure, – Google AppEngine, – Saleforce.com
• Infrastructure-as-a-Service (IaaS): – Amazon Elastic Compute Cloud (EC2) – Google AppEngine
Fejlesztés vagy vásárlás
Fejlesztés
Vásárlás
Alkalmazások – hol és hogyan? Helyben futó dobozos alkalmazás
Hosztolt dobozos alkalmazás
„Szoftver mint szolgáltatás”
Vásárolt, saját adatközpontban futtatott dobozos alkalmazás
Vásárolt, hoszternél futtatott dobozos alkalmazás
Vásárolt, szállítónál futtatott hosztolt alkalmazás
Helyben futó saját fejlesztés
Hosztolt saját fejlesztés
„Cloud Platform”
Egyedileg fejlesztett, saját adatközpontban futtatott alkalmazás
Egyedileg fejlesztett, hoszternél futtatott alkalmazás
Helyben
Egyedileg fejlesztett, a felhőben futtatott alkalmazás
Helyben vagy a felhőben
A felhőben
Fejlesztés vagy vásárlás
Vásárlás
Példa (gyógyszeripar) Helyben futó dobozos alkalmazás
Hosztolt dobozos alkalmazás
„Szoftver mint szolgáltatás”
ERP Issue Tracking Email
HR System
Helyben futó saját fejlesztés
Hosztolt saját fejlesztés
„Cloud Platform”
Molecule Research
Fejlesztés
Clinical Trial
Helyben
Helyben vagy a felhőben
A felhőben