Elosztott rendszerek SOA Enterprise Service Bus fejlesztések Spring Integration alapon
Absztrakt
A szakdolgozatom témáját munkámban használt technológiák és azok által nyújtott lehetőségek, problémák ihlették. Fontosnak éreztem, hogy szemléltessem azt, hogy régi technológiák és új technológiák között, hogyan lehet megoldani a kommunikációs problémákat. A szakdolgozat céljául tűztem ki azt, hogy rávilágítsak olyan megoldásokra, amelyek az adott helyzetben nagy problémát tudnak okozni és mégis könnyen megoldható egy köztes réteggel a kliensek és a business oldal között továbbá, hogy milyen módszerekkel oldható meg az, hogy a bonyolultabb folyamatokat úgy tudjuk elrejteni a felhasználók elől, hogy a felhasználói élmény a legkisebb mértékben sem csökkenjen, így elégedettek ügyfelek maradjon a táborunkban. Azonban a téma elég sokrétű és rengeteg lehetőséget foglal magába, azonban céljaim között szerepelt az is, hogy érthető és áttekinthető legyen úgy, hogy szakdolgozati követelményeknek minden szinten megfelelő dolgozatot lehessen összeállítani a leírások alapján. A témámat, úgy választam, hogy napjainkban is használt, új technológiákat is mutasson be, mindamellett, hogy régi ám még most is használt bevált technológiákat sem hagyjam ki. Azonban nem csak a fentiek alapján választattam a témát, hanem a dolgozatban használt programozási nyelvek egyaránt hasznosak lehetnek nagyvállalati környezetben és kisvállalati környezetben is. A szakdolgozatomba a következő esetett fogom tárgyalni. Van egy backend szolgáltatásunk, ami kiszolgál egy külső klienst. Ez a kliens egy webservice-n keresztül éri el az álltalunk nyújtott szolgáltatásokat. Ez a webservice egy SOAP alapú webservice, azaz egy előre meghatározott XML írja le a működését. Ezt a webservice-t egy másik kliens fele is elérhetővé kell tenni, azonban a második kliensünk már egyéb információra is szüksége van a szolgáltatásunkban. Ugyanaz az a backend fogja kiszolgálni mindkettő klienst, de mégis különböző választ kapnak ugyanarra a hívásra. Közben tovább változik az igény és az első kliensünk is további adatokat vár magában a szolgáltatás válaszában. Ennek eleget téve változik újra a webservice leírása úgy, hogy közben ez a második klienst nem érinti. Azonban jön egy harmadik kliens, akire ugyanezt a szolgáltatást szeretné használni, de ők már egy újabb technológiát használnak és ők már REST-es szolgáltatást akarnak és nem XML nyelven akarnak kommunikálni velünk, hanem JSON-t használva. A köztes rétegünk lehetővé teszi azt, hogy mindhárom klienst kiszolgáljuk úgy, hogy bármilyen változás is történik vagy új igény érkezik valamelyik klienstől az nem lesz hatással a többi kliensünkre és így megtarthassuk az integritásunkat, annak ellenére, hogy a három kliensünk különböző képen kommunikál és különbőz adatot nyer ki a szolgáltatásunkból. Szolgáltatásunkhoz ORACLE adatbázist használunk, itt tároljuk a szükséges információkat, adatokat. A projekt megvalósítása közben a konzulenssel ticketing rendszert használtunk, így könnyedebbé tudtuk tenni a munkát, illetve láthatóvá vált a projekt előrehaladása. Létrehozhattunk jegyeket, amelyek tartalmazták az adott hétre lebontott feladatokat és azok leírását. Azon érdekből, hogy a projekt fejlesztése során minden nyomon követhető lehessen, vagy egy esetleges rossz fejlesztés miatt egy már meglévő stabil verzióra léphessek vissza, verzió kezelést használtam. A projektet és a hozzá tartozó dokumentációkat így Github-on tároltuk egy számára létrehozott privát tárolóban.