Koexistence CORBA a J2EE

Při zavádění aplikací pro elektronický obchod není vždy nezbytné rozhodovat se mezi technologiemi CORBA a Java 2 Ente...


Při zavádění aplikací pro elektronický obchod není vždy nezbytné rozhodovat se
mezi technologiemi CORBA a Java 2 Enterprise Edition (J2EE). Příklady scénářů,
které si nyní uvedeme, ukazují, že silné stránky obou systémových architektur
lze bez potíží vzájemně kombinovat.
Technologie CORBA se začala v běžném firemním provozu etablovat zhruba v
polovině 90. let minulého století a dnes tato systémová architektura tvoří
základ mnoha aplikací, s nimiž stojí a padá chod nejednoho podniku. Obvykle
jsou softwarové komponenty v aplikačních serverech implementovány v jazyce C++
a přístup klienta je realizován pomocí aplikací vytvořených v Javě nebo appletů
na bázi protokolu Internet-Inter-ORB-Protocol (IIOP).
Prudký rozvoj elektronického obchodování a napojení firem na internet
způsobily, že už zdaleka nezůstává jen u tradičního interního způsobu využívání
obchodních aplikací. Témata jako HTTP, webové servery, servlety a stránky Java
Server Pages (JSP) se rázem stala středem zájmu a zmíněné technologie patří k
těm, které tvoří základ značného počtu internetových aplikací. V této oblasti
pak zavedla významný průmyslový standard také společnost Sun se svojí
technologií J2EE.

Společné rysy
Existuje hned několik možností, jak při použití technologií CORBA a J2EE
dosáhnout integrace firemních aplikací (enterprise application integration,
EAI). Nejvýraznější společné rysy obou systémových architektur jsou k dispozici
v oblasti poskytování služeb v rámci infrastruktury. Za zmínku stojí především
základní technické funkce, jakými jsou například řízení transakcí (transaction
management), jmenné služby (naming), distribuční transparentnost a asynchronní
komunikace (messaging). Silnou stránkou technologie CORBA je zejména její
nezávislost na programovacích jazycích. Jednotlivé CORBA komponenty mohou být
napsány třeba v C++, a přitom mohou být využity například v prostředí Java
(Java applet nebo aplikace).
Technologie J2EE pak skýtá nepřehlédnutelné výhody zejména v následujících
oblastech: Standardizace internetových technologií (servlety a Java Server
Pages), nabídka velkého počtu normovaných služeb pro infrastrukturu,
flexibilita konfigurace jednotlivých komponent a dostupnost všeobecně
používaných vývojových prostředí. Přestože byla prozatím výše hodnocena
vyzrálost a kvalita implementací systémové architektury CORBA, je dobré mít
neustále na paměti, že ty nejdůležitější implementace technologie J2EE jsou
teprve postupně naplňovány. Kromě toho je třeba vzít v potaz také skutečnost,
že dosud neexistuje žádná komerční implementace specifikace CORBA komponent,
která by definovala standardizovaný model komponent pro aplikace v prostředí
CORBA.
V následujícím textu popsané scénáře se liší především ve dvou hlavních rysech:
Za prvé, jakým způsobem probíhá distribuce aplikačních komponent na obě
platformy CORBA a J2EE, a za druhé, jak vypadá komunikační protokol mezi
jednotlivými komponentami.

Dominantní role J2EE
První přístup se zaměřuje na aplikační model J2EE (podrobnosti viz též
http://java.sun.com/j2ee/blueprints). Aplikace s vlastním grafickým
uživatelským rozhraním (GUI) jsou psány buď pro nějaký webový prohlížeč, nebo
mají podobu Java appletu či samostatné aplikace a komunikují s komponentami EJB
buď prostřednictvím servletů/ /JSP, nebo pomocí technologie Remote Method
Invocation (RMI). Implementace řízení procesů je zajištěna většinou na bázi
modulů Model View Control ve spolupráci se servlety/JSP a odpovídajícími tzv.
session beans. Obchodní model, který slouží za základ aplikačního systému, je
reprezentován pomocí Enterprise JavaBeans (EJB): Prvky entity beans se starají
o implementaci obchodních typů, jakými jsou například organizace (např.
institut, pobočka či obchodní oddělení) nebo zdroje (např. smlouva, konto či
zákazník) a které jsou obsaženy v business object modelu. Služby s orientací na
poskytování zákaznických služeb jsou implementovány na bázi session beans. Ty v
sobě obvykle sdružují tzv. entity beans a nabízejí silnější služby.
Z pohledu J2EE hraje prostředí CORBA roli externí aplikace. Komponenty
prostředí CORBA často přebírají následující úkoly:
- Zapouzdření dalších systémů: Komponenty CORBA, které v sobě mají zapouzdřeny
služby aplikačních systémů vyvíjených pro prostředí sálových počítačů/mainframů
(kupříkladu transakce typu CICS nebo IMS), byly v minulých letech vyvíjeny
např. pro oblast finančnictví a pojišťovnictví. Tento vývoj neustane ani v
budoucnosti.
- Poskytování služeb: Využití existujících vyspělých možností a funkcí, které
disponují rozhraním pro architekturu CORBA.

Rozdělení úkolů
S následujícím scénářem se lze setkat všude tam, kde již byla zakoupena nebo
vlastními silami vyvinuta více či méně úplná webová aplikace, pro niž je třeba
zajistit přístup k celofiremním datům či službám. Jestliže jsou v rámci firmy
již k dispozici kvalitní komponenty CORBA, které nabízejí potřebnou
funkcionalitu, jistě není od věci je v rámci systému využít. Mezi stavebními
prvky systému vytvořenými v systémových architekturách J2EE a CORBA se nabízí
jasné hierarchické rozčlenění a rozdělení úkolů. Systém na platformě J2EE
přebírá roli (běžné) klientské aplikace architektury CORBA. Komunikace se z
technického pohledu uskutečňuje prostřednictvím protokolu IIOP na bázi
jednosměrného volání komponent CORBA z aplikace v J2EE. Vysoce výkonného a
dostupného propojení mezi oběma platformami lze dosáhnout s využitím
technologie IIOP Connection Pools.
Druhý scénář, ve kterém pracují komponenty CORBA v rámci prostředí J2EE, lze
popsat následovně: V aplikační architektuře CORBA jsou často používány
komponenty, které se skládají z tzv. Client a Server Personality (viz obrázek).
Role Client Personality spočívá v tom, že zapouzdří klientský stub komponenty
CORBA a poskytne lepší rozhraní. Obvykle jsou pro aplikace s grafickým
uživatelským rozhraním navrhovány takové Client Personality, které jednak
přinášejí optimalizovaný přenos dat (s využitím cache na straně klienta) a
jednak zapouzdřují stávající komunikační infrastrukturu se Server Personality.
Implementace Server Personality je realizována v rámci komponenty CORBA na
aplikačním serveru.

Vyspělý Call Back
V případě, kdy Server Personality posílá na stranu Client Personality zprávy v
asynchronním režimu (např. signalizace určitých stavů nebo ukončení běžících
výpočtů na straně serveru), je nezbytné,
aby v rámci samotné Client Personality byly implementovány objekty architektury
CORBA. Díky tomu lze využívat dosavadních, k dokonalosti dovedených call back
scénářů také v prostředí fungujícím na bázi Server a Client Personality.
Client Personalities mohou být společně s CORBA objekty napsanými v Javě
provozovány v prostředí J2EE. Základní myšlenka této implementace spočívá v
tom, že J2EE hraje roli run-time prostředí architektury CORBA. Díky tomu mohou
na jednom a témž J2EE aplikačním serveru spouštět jak moduly EJB, tak i CORBA
komponenty.
Půvab tohoto řešení je zřejmý: Jestliže již existuje nějaká infrastruktura na
platformě CORBA, která je poskládána z komponent založených na implementaci
Client a Server Personalities, mohou být důležité prvky systému a speciální
komponenty bez úprav opětovně využity. Zapouzdření Client Personality do
prostředí J2EE lze obvykle docílit s nepatrným technickým úsilím, a
přizpůsobení Server Personality není nutné.

Vývojářská volnost
Úplná integrace a interoperabilita obou platforem je význačná zejména tím, že
různé části obchodního modelu mohou být podle libosti implementovány v
platformách J2EE či CORBA.
Pokud jde o implementaci systémových architektur J2EE a CORBA, není tedy třeba
se rozhodovat stylem "buď-anebo". Přestože obě technologie jsou svojí podstatou
velmi podobné, každá z platforem má své silné stránky. Volba, jakým způsobem je
vzájemně kombinovat, je podmíněna konkrétní situací toho kterého oddělení IT.
Jediný vždy správný způsob využití neexistuje.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.