Beszámoló a budapesti OMG napokról
Június 12-én ért el az OMG napok nevű rendezvénysorozat Budapestre, ahol többek között betekintést nyerhettünk az OMG új MDA koncepciójába, és világcégek szakemberei beszéltek a vállalati rendszerek integrációjának aktuális kérdéseiről.
A mai szoftverfejlesztők munkája sokszor lehetetlennek bizonyul modellek és komponens alapú tervezés használata nélkül, melyek lehetőséget nyújtanak arra, hogy a rendszereket kisebb alkotóelemekre (komponensekre) lehessen bontani, és így kisebb hibalehetőséggel járjon mind a tervezés, mind a későbbi programozás. A végső cél az, hogy ezek a komponensek a lehető legkevésbé függjenek egymástól, zárt, egységes módon foglalkozzanak egy adott feladat megoldásával. A modellezés másik fontos célja, hogy egy rendszernek csak azokat a részeit vizsgálja, amiket a feladat megoldása szempontjából feltétlenül szükséges, így a modell a valóságnak egy egyszerűsített, adott problémát megcélzó leképezése.
A nagyobb projektek tervezése, vagy rendszerek integrálása során mindenképpen szükség van egynél több szoftvertervezőre, és ilyenkor válik igazán fontossá, hogy az elkészült modelleket -- amik legtöbbször a szoftverdokumentáció részeként jelennek meg -- minden résztvevő megértse, ehhez pedig egységes, mindenki által megértett és elismert módszerekre és szabványokra van szükség.
Az 1989-ben alakult OMG (Object Management Group) egy nemzetközi, non-profit szervezet, amelyhez bárki csatlakozhat, legyen az akár cég, akár magánszemély. Feladata az elosztott és objektumorientált vállalati alkalmazásokkal foglalkozó előírások előállítása és karbantartása. A tagok benyújthatják a meglévő specifikációk iránti módosítási igényeiket, és lehetőségük van új specifikációk létrehozására is. A szervezet döntéseit demokratikus úton, szavazással hozza meg, ahol minden tag kifejezheti véleményét, vagy akár saját változtatási javaslatait is előadhatja az aktuális kérdésről. Minden csatlakozott cég egy szavazattal rendelkezik.
Az OMG szoros kapcsolatban áll az ISO-val (International Standard Organisation), így a számítástechnikában és a modellezésben általánosan elfogadott és használt OMG-specifikációk szükség esetén ISO-szabvánnyá is válhatnak. Ez az OMG IDL (Interface Definition Language) esetében már meg is történt. Jó eséllyel várható, hogy a most elfogadott, a véglegesítés szakaszában álló UML 2.0 ISO-szabványként is elfogadásra kerül. Az OMG tagjai között megtalálható többek között az IBM, a HP, a Borland, az Oracle, a Cisco, a Sony, a Sun, a Sybase, a Nokia, a NASA, a Motorola és az IBM által nemrég megvásárolt Rational Software.
[oldal:OMG-specifikációk]
Az OMG specifikációi erősen egymásra és egyúttal egy jól meghatározott objektumkoncepcióra épülnek, amit OMA-nak (Object Management Architecture) hívnak. Alulról felfelé építkezve állítják össze a modellezési és az adattárolási irányelveket egy négyrétegű architektúrában.Az első rétegben meghatározzák a módszereket és a jelölési módot, amivel leírhatóak a modellező nyelvek és az adattípusok. A második rétegben erre felépítve létrehozzák magukat a modellező nyelveket és az adattípusokat. A harmadik rétegben a modellező nyelv segítségével létrehozott modellek és az igények szerint definiált, az alaptípusokra épülő új típusok találhatóak, míg a negyedik rétegben a modellek segítségével létrehozott rendszer, illetve az adattípusok által meghatározott módon tárolt adatok.
Ezt a négyrétegű megközelítést metamodell koncepciónak is nevezik, ahol az első réteg a meta-metamodell, a második a metamodell, a harmadik a modell és a negyedik az objektum, rendszer, illetve adat, attól függően, hogy mit ábrázol a harmadik rétegben létrehozott modell. A metamodell nehéz érthetősége miatt sokan panaszkodnak, így ez is az OMG megoldandó problémái közé tartozik; évek óta dolgoznak azon, hogy a négy rétegnek könnyebben érthető nevet és minél egyszerűbb magyarázatot adjanak. Ennek a koncepciónak a legnagyobb előnye, hogy az összes specifikáció egy egységes alapra épül, így könnyen bővíthető, és ha az alapkoncepciót értjük, akkor nagy valószínűséggel egyik specifikáció megértésével sem lehet komolyabb problémánk.
A teljes OMG-dokumentáció az objektum-orientált gondolkodásra épít, így alapvetően szükséges megértéséhez és használatához az objektum-orientáció alapfogalmainak ismerete.
Az OMG legjelentősebb specifikációi:
MOF (Meta Object Facility): Ez a specifikáció tartalmazza az OMA és az OMG metamodell koncepciójának leírását és az első réteget, a meta-metamodellt, amelyet szintén a MOF segítségével ír le.
UML (Unified Modeling Language): Az UML egy vizuális nyelv, amely szoftverekkel kapcsolatos rendszerek leírására, ábrázolására, készítésére és dokumentálására szolgál. Ez tekinthető a metamodell koncepció második rétegének, ennek a segítségével lehet szoftverrendszereket modellezni és később a modellek alapján lekódolni, megérteni azt.
CWM (Common Warehouse Model): Metaadatok és modellek tárolására, programok közötti szállítására alkalmas. A CWM-kompatibilis programokkal lehetőség van egy másik, szintén CWM-kompatibilis programmal készült modell szerkesztésére, megjelenítésére.
XMI (XML Metadata Interchange): A CWM kiegészítése, lehetővé teszi az adatok XML alapú tárolását, szállítását. Ugyan a modellek és az adatok szállítására alkalmas az XMI, a diagramok szállítására jelenleg még nincs lehetőség, azokat szállítás után újra kell rajzolni, szerkeszteni. Ezen a hiányosságon még dolgoznak az OMG-nél.
CORBA (Common Object Request Broker Architecture): Az OMG saját middleware megoldása heterogén környezetek és alkalmazások közötti adatforgalmazásra és kommunikációra. Már évek óta minden Java függvénykönyvtár része, mivel a Java biztonsági rendszere, tranzakció-kezelése és a különböző rendszerek közötti objektumok kommunikációja is a CORBA-ra épül.
Ezeket a specifikációkat, módszereket és technológiákat* hosszú évek óta használják a szoftvermérnökök világszerte. Használatuk során azonban mindig felmerülnek újabb és újabb kérdések, problémák, melyeket rendszerint a specifikációk módosítása követ. Az OMG napok során az OMG itt felsorolt technológiáira épülő új architektúrája, az MDA volt a központi téma, mely sok felmerült problémára megoldást kínál.
*Az itt felsorolt és az összes hozzájuk kapcsolódó specifikáció ingyenesen letölthető az OMG oldaláról.
[oldal:Az MDA]
Az MDA (Model Driven Architecture) az OMG jelenleg is fejlesztés alatt álló architektúrája a szoftverfejlesztéssel foglalkozók számára.A jelenlegi legfontosabb problémák:
- A szoftvertervezés jelenlegi folyamata nagyban összefügg a kifejlesztendő rendszer tervezett platformjával, a fejlesztéshez használt programozási nyelvvel és a rendelkezésre álló függvénytárakkal.
- A modern tervezési módszerek ellenére a létrehozott programkód legnagyobb része kézzel íródik, és a hibák legnagyobb százaléka ekkor keletkezik.
- Semmi sem garantálja, hogy a szoftverrendszer tervezési modelljei megfelelnek a szoftverrendszer iránti igényeknek és a specifikációknak, mindez csak a program elkészítése után a tesztelési és validációs szakaszban derül ki.
- A szoftverrendszer legnagyobb értéke a forráskód és a köré épülő dokumentáció, ami a legtöbb esetben nem magyarázza meg megfelelően a tervezés és a kódolás közötti kapcsolatokat.
Az MDA alapvetően ezekre a problémákra nyújt megoldást egy új szoftverfejlesztési megközelítés formájában. Az MDA lelke a modellátalakítás, ami automatizált folyamatként jelenik meg a tervezés-fejlesztés során. Első lépésként el kell készíteni a rendszer platformfüggetlen modelljét (PIM - Platform Independent Model), majd ezt a modellező eszközök segítségével át lehet alakítani platformfüggő modellé (PSM - Platform Specific Model). A cél az, hogy amennyiben lehetséges, a rendszer teljes funkcionalitása a PIM-ben legyen megtervezve, mivel a nagyobb rendszerek alapvető működése és felépítése nem változik olyan sebességgel, mint az alattuk található hardver, vagy akár a kommunikációhoz használt middleware réteg.
A PIM-PSM átalakításhoz szükség van egy modulra, amely a modellező eszközbe épülve képes a megadott célplatformra történő konverzióra, ezt várhatóan a modellezőeszköz-készítők fogják mellékelni termékeikhez az OMG konverziós specifikációira épülve. Végül a PSM-et automatikusan forráskóddá lehet alakítani, amit PSM-forráskód átalakításához szükséges modulok végeznek el.
Ez a megoldás az üzleti logika legnagyobb részét a modellbe építi, így nem szükséges a forráskódot kézzel írni, mivel a PIM-PSM-forráskód konverzió a megfelelő modulok megléte esetén teljesen automatikusan létrehozza a forráskódot a modellek alapján. Míg a korábbi koncepció jól képzett programozókat igényelt, most a hangsúly sokkal inkább a tervezés szakaszára esik. Az elkészült PIM-eket már tervezés közben lehet tesztelni, így hamar kiderül, ha a modell nem felel meg valamely kritériumnak. Ugyancsak előny, hogy nem szükséges az összes használandó platform tökéletes ismerete, mivel a rétegek közötti kommunikáció az automatikus kódgeneráció során elkészül.
Mindehhez szükség van az UML kibővítésére is, mivel az eredeti 1.x verziókban túl sok a félreérthető elem, nem teljesen MOF-kompatibilis, és abból még csak részben, vagy egyáltalán nem lehet automatikusan kódot, vagy akárcsak PSM-et létrehozni. A PIM teszteléséhez vagy "futtatásához" elengedhetetlen az akciónyelv beépítése az UML-be, ami ugyan már az 1.4-es verzióban részben megtörtént, azonban még konkrét nyelvi szintakszis nélkül. Az UML 2.0-ba a legnagyobb valószínűséggel a Kennedy Carter-féle ASL (Action Specification Language) kerül be, aminek hatékonysága több, nagyobb léptékű szoftverrendszer fejlesztése során vált elismertté.
Az MDA koncepció részét képezik még a domainek, melyeket az OMG először a CORBA specifikációkban hozott létre. A domainek célja, hogy különféle üzleti alkalmazásokhoz szükséges interface-eket, objektumokat, modelleket és adattípusokat szabványos formában érhesse el bárki, így lehetővé váljon a szolgáltatások és az adatok egymás közötti könnyű megosztása. Az OMG domainspecifikációban már megtalálhatóak akár a légirányítással, a pénzzel, genetikával és CAD-del foglalkozó domainek is.
[oldal:Az előadások]
Az előadássorozat Kelen Andrásnak, a Triad Computer Services elnök-vezérigazgatójának köszöntőjével kezdődött, majd Andrew Watson, az OMG alelnöke ismertette az MDA koncepció lényegét.Andrew Biss, a Delta Software Technologytól az MDA azon céljára hívta fel a figyelmet, hogy a már meglévő programokat és komponenseket a jövőben kifejlesztendő programokkal kell integrálni, így a korábbi architektúrákkal történő kapcsolattartás különös hangsúlyt kap az elkövetkező években. Kiemelte, hogy a platformfüggetlen modellek nem csak az új alkalmazások fejlesztéséhez szükségesek, hanem megfelelő eszközök segítségével korábbi programjaink kódjából is felépíthetjük azok PSM-jeit, majd abból azok PIM-jeit. Ismertette az OMG által létrehozott EDOC (Enterprise Distributed Object Computing) és ECA/CCA (Enterprise/Component Collaboration Architecture) technológiákat, amelyek a különböző programok közötti kapcsolattartásért felelősek. Ezek egy közös kapcsolattartó rétegen (Application Adapter, Technology Adapter, Adaptive Proxy) keresztül, az elterjedtebb middleware technológiák segítségével kapcsolódnak össze, pl: WebServices (WSDL), ebXML (BPSS), J2EE (Java RMI), CORBA, MOM (MQ-Series). Bemutatta még a SCORE Integration Suite nevű programcsomagot, amely komplett megoldást nyújt az általa felvázolt problémákra.
Andy Gurd, a TeleLogic munkatársa a szoftvertervezés alapkérdéseiről és az UML szükségességéről beszélt, majd kitért az UML 2.0 kifejlesztésének néhány okára. Hangsúlyozta, hogy a szoftverrendszerek komplexitásának növekedése magával vonja azt is, hogy a korábbi projektek problémái felerősödve jelentkeznek majd a jövőben, hacsak nem alkalmazunk új módszereket. A problémák közül a legfontosabbként a költségvetés és a tervezett fejlesztési idő túllépését, az egyre jobb minőség és megbízhatóság iránti igényt emelte ki. Megoldásként ő is az MDA koncepciót, illetve a TeleLogic alkalmazásait ajánlotta a szoftver-életciklus hosszának csökkentésére, és hatékonyságának növelésére.
Allan Kennedy, a Kennedy Carter vezérigazgatója a Lockheed-Martinnal közös projektről beszélt, amelyben a Kennedy Carter által kifejlesztett xUML (eXecutable UML) és az iUML, illetve az ezekben felhasznált ASL (Action Specification Language) segítségével fejlesztették ki és fejlesztik ma is az F-16-os repülőgépek fedélzeti számítógépes rendszerét az MDA koncepció alapján. Ilyen környezetben különlegesen fontos mind a megbízhatóság, mind a PIM használata, mivel folyamatosan fejlesztik a repülő számítógépes rendszerét, ám a funkciók többé-kevésbé változatlanok maradnak. A hardver megváltozásakor elegendő megírni vagy beszerezni a legújabb kódgenerátort, és elhanyagolható az átállásra fordított munka mennyisége. Az xUML előnye még, hogy elsőként támogatja a futtatható UML koncepciót, és képes a PIM-et tesztelni anélkül, hogy a programozóknak el kellene készíteniük a futtatható alkalmazást. Ennek következtében a szoftver életciklusának hossza drasztikusan lecsökken, mivel a tervezés és az ellenőrzés egymás utáni elvégzésével kialakítható a hibátlan, követelményeknek megfelelő modell. Nem csak az bizonyosodik be, hogy a program egy platformon hibátlanul működik, hanem az is, hogy a modell logikailag hibátlan, és így hibátlan kódgenerátor használatával a kód is valószínűsíthetően hibátlan lesz az összes platformon.
Gianpaolo Carraro (Senior Application Architect, Microsoft) a különböző, főként .Net és J2EE alapú szolgáltatások integrálásáról, a közöttük lévő hatalmas hasonlóságról, illetve a vállalati alkalmazások fejlesztéséről tartott előadást. A WebService-eket és az XML/XSD/SOAP alapú kommunikációt emelte ki követendő példaként.
Bertalan Gábor, a Triad munkatársa az MDA hasznáról beszélt. A manapság népszerű WebService-ekkel kapcsolatos szabványokat és technológiákat, majd a Select termékeket mutatta be.
Gyalogh Kálmán, a Borland Magyarország képviseletében bemutatta a svéd parlamenttel közös projektjüket, amelyben Borland termékekkel és az MDA koncepció felhasználásával épült meg a parlament információs rendszere. A kiállításon megtekinthető volt még többek között a .Net frameworkre és a C# programozási nyelvre épülő Borland C# Builder képességeit bemutató dokumentáció. A C# Builder próbaverziója a napokban várható.
A fennmaradó időben Máté Gábor, a Sysdata munkatársa ismertette a Naming Service alkalmazások telekommunikációs környezetben történő felhasználását (CORBA, VisiBroker). Sugár Péter bemutatta az IBM vállalati integrációs megoldásait, melyek mind a folyamatok, mind az alkalmazások integrálására alkalmasak az IBM CrossWorlds és az IBM WebSphere Business Integration technológiák felhasználásával. Végezetül Barry Maybank, a Select Business Solutions konzultánsa részletezte a modellezés-alapú fejlesztés legelismertebb módszereit.
Összességében elmondható, hogy a rendezvény mind az OMG-féle MDA, mind a legjelentősebb, piacon megtalálható integrációs megoldásokat teljes körűen bemutatta a megjelent IT szakemberek számára. Az UML 2.0 és az MDA végleges specifikációi 2003 folyamán várhatóak.