Elosztott szoftverrendszerek (SOA) programozása, modellezése (Java, .NET)
A téma ismertetése:
A Service Oriented Architecture (SOA) célja elosztott szoftverrendszerek összekapcsolása. A különböző rendszerek tipikusan különböző technológiákon alapulnak, ezért az együttműködéshez egy szabványos interfész mögé kell rejteni őket. Az architektúra szabványos interfészre épülő komponenseit szolgáltatásoknak nevezzük. A szolgáltatások implementálhatók .NET (pl. C#, VisualBasic, F#, stb.) és Java platformon is. Emellett létezik egy szabványos kompozíciós nyelv, amely segítségével az egyes a szolgáltatások egy komplex folyamattá kombinálhatók össze. Ezek a folyamatok a rendszer számára ugyancsak egy meghívható szolgáltatásként jelennek meg.
Ahogy a SOA rendszer fejlődik, folyamatosan újabb és újabb szolgáltatások jönnek létre. Egy ilyen komplex rendszerben számos megoldandó probléma felmerül:
- az alapértelmezett HTTP kommunikációs protokoll lecserélése megbízhatóbbra (pl. JMS, vagy más perzisztens üzenetküldő rendszer)
- az interfészleírás kibővítése elő- és utófeltételekkel (Design-by-Contract)
- a rendszer egyes szolgáltatásainak és folyamatainak magas szintű modellezése
- a rendszer tervezését megkönnyítő leíró nyelv kidolgozása, amely alkalmas a rendszer minél több aspektusának kezelésére (pl. szolgáltatások, folyamatok, biztonság, stb.)
- a leíró nyelv segítségével a rendszeren különböző formális helyességbizonyítások megvalósítása
- az egyes SOA eszközök különböző konfigurációs lehetőségeinek platformfüggetlen modellezése
- a kialakított modellek alapján automatikus kódgenerálás
- olyan szabványok implementálása .NET és Java platformon, amelyeket az eszközök gyártói nem szállítanak
- nyílt forráskódú megoldások kipróbálása és összehasonlítása
- nyílt forráskódú megoldások továbbfejlesztése
A feladat:
A téma keretében a hallgatók megismerkednek a SOA technológiával és a web-szolgáltatásokkal, valamint módszereket dolgoznak ki a fent említett problémák valamelyikére. A problémák megoldása során a következő technológiákra és módszerekre lehet számítani:
- web szolgáltatások (WSDL - Web Services Description Language)
- üzleti folyamatok modellezése (BPEL - Business Process Execution Language)
- Java (JSP, servlet-ek, JAX-WS, JDK 6, stb.)
- .NET (ASP.NET, Silverlight, WCF - Windows Communication Foundation, WF - Windows Workflow Foundation, Windows Cardspace)
- Linuxos .NET implementáció (MONO)
- fordítóelmélet (Microsoft: M nyelv, SQL Server Modeling Services, Intellipad, Quadrant)
- aspektus-orientált programozás
- metamodellezés (UML, MDA, DSL)
- kódgenerálás
- funkcionális programozás (F#)
Többek között a következő eszközökkel lehet dolgozni: Microsoft: WCF & WF, Sun: GlassFishESB, Oracle: Fusion Middleware, IBM: WebSphere, RedHat: JBoss, Apache: Axis2
Követelmények:
Angol nyelv ismerete, Java és/vagy .NET programozás, XML
Témavezetõ:
Dr. László Zoltán, Dr. Goldschmidt Balázs, Simon Balázs
Létszám:
10 fõ