Úvod

Tímto článkem bych rád začal sérii článků na téma BEA produktů, jejich použití v praxi a zkušenosti z projektů s nimi. BEA produktů je mnoho. Prvním článkem tedy popíši produktové skupiny a produkty v nich. Dále budu psát jen o jednotlivých produktech a zkušenostech s nimi.

Články bych rád zaměřil co nejvíce technicky a přímo na problémy, na které jsou tyto produkty vytvořené. Budu se snažit psát z pohledu člověka, který tyto produkty denně používá a vytváři v nich nové aplikace.

Přehled produktů

V posledních letech firma BEA značně rozšířila řady svých produktů. Produkty se nyní dělí do dvou skupin, a to na aplikační a servisní.

BEA Produkty siroky

Aplikační skupina obsahuje produkty zameřené na vytváření aplikací více klasickou cestou, a to programovaním hlavně v Javě a C. Do této skupiny patří:

Weblogic platform

  • WebLogic Server – velice známý aplikační JEE server. Jeden ze základních produktů, na kterém běží všechny další Weblogic aplikace.
  • WebLogic JRockit – JVM původně specifická pro Intel platformu, teď už i pro jiné platformy.
  • WebLogic Realtime Server – JEE server s podporou specifické virtuální mašiny pro real-time aplikace; t.j. speciálniho garbage collectoru.
  • WebLogic Integration – nadstavba servru, která umožňuje vytvářet aplikace anotováním kódu, a tak zjednodušuje jejich psaní.
  • WebLogic Portal – prezentační vrstva pro aplikace integrující presentaci více aplikací do jednotného portálového vzhledu, implementace portlet frameworku
  • WebLogic SIP server – specifická verze aplikačního servru pro telekomunikace s podporou SIP protokolu pro multimedální komunikaci
  • WebLogic Network Gatekeeper – specifický produkt pro bezpečnost v telekomunikacích
  • WebLogic RFID server – server pro psaní aplikací pracujících v prostředí RFID, integrující RFID čtečky do informačních systémů firem
  • Weblogic Workshop – sada pluginů do Eclipse zjednodušujících vývoj Java aplikací ve WebLogic skupině a podporující vývoj s open-source framevorky jako Spring, Hibernate, Behive atd.

Tuxedo – výkonný transakční a objektový aplikační server; implementace ATMI a CORBA kontejneru

Servisní skupina je vytvořena k integraci už hotových aplikací a jejich kompozici do služeb podle standardu SOA. Servisní skupina se nezaměřuje jen na Java platformu, je více heterogenní než aplikační platforma. Do této skupiny patří produkty AquaLogic skupiny.

  • Aqualogic Data Services Platform – produkt publikující datové zdroje do WebService světa
  • AquaLogic Service Bus – WebService router, transformátor a integrační platforma
  • AquaLogic Service Registry – WebServisový UDDI register
  • AquaLogic Enterprise Repository – registr evidencí služeb, procesů, aplikací a strategií podniku
  • AquaLogic Users Interactions – presentační portálové řešení servisních aplikací
  • AquaLogic Business Process Management – Business process (BPM) prostředí pro implementaci procesů
  • AquaLogic Enterprise Security – nástroj pro správu bezpečnosti v servisním prostředí
  • Workspace360 – designérský a implementační nástroj AquaLogic skupiny.

WebLogic Server

Tento nejvíce známý produkt firmy BEA je kompletní implementace JEE specifikace.

Aktuální verze 9.2 implementuje JEE 1.4. Na internetu je už ale ke stažení verze 10, která podporuje JEE5. V prvním kvartálu 2007 se plánuje vydání podporované verze Weblogic 10.

Verze 10 bude podporovat hodně často popisovanou technologii EJB3. Entity beany budou implementované pomocí frameworku KODO, resp. OpenJPA. Na implementaci Session beanu se spolupracuje s firmou Interface21, na společném projektu Pitchfork, který rozšíří anotaci Spring Frameworku na anotaci kompatibilní s EJB3 standardem.

Mezi hlavní vlastnosti servru patří podpora různých programátorských modelů, jako například:

Web aplikace – podpora dynamických WEB stránek pomocí standardů Java Server Pages (JSP), servletů; ale taky statického obsahu, jako web stránky a obrázky.

Beehive – podporuje aplikace napsané v tomto původně BEA frameworku z WebLogic Integration produktu (nyní opensource publikovaný na Apache Foundation)

Spring Framework aplikace – podporuje aplikace napsané v tomto frameworku a integruje se s nimi na úrovni bezpečnosti, klustrovaní, transakcí či podpoře v produkci. Weblogic server podporuje na úrovni konzole náhled na Spring Beany.

Enterprise Java Beans (EJB) – poskytuje kompletní framework pro vývoj a provoz aplikace postavené na EJB. Současně podporuje více verzí EJB kontejneru.

Remote Method Invokation (RMI) – poskytuje plnou podporu pro tuto technologii, včetne klustrování a vlastního více efektivního protokolu (T3) pro přenos dat.

Podpora O/R mapping nástrojů – mezi které patří hlavně KODO, Open JPA, Hibernate nebo Toplink.

Aplikace běžící na WebLogic servru může samozřejmě použivat další zde nepopsané frameworky nebo techniky, jako je AspectJ atd.

Weblogic server implementuje všechny API popsaných standardem JEE, jako Java Message Service (JMS), Java Database Connectivity (JDBC), Resource Adapters / JEE Connectors atd. Nad rámec JEE je možné v aplikacích dále využít vlastnosti jako:

  • Podpora XML programování, XMLBeans a rozšířených XML API, jako například XML steaming API, nebo XML security;
  • WebLogic Tuxedo Connector (WTC) – podporuje připojení z a do Tuxedo aplikací přímo z Java kódu;
  • Klustrování – podporuje distribované aplikace bežící na více WebLogic servrech současně; a to jak na LAN i WAN síti.Rozděluje příchozí požadavky mezi více instancí aplikace, podle standardních algoritmů. Jestli jeden z instancí aplikace vypadne, směruje požadavky jen na běžící instance;
  • Work Managers – poskytuje prioritizaci procesů založenou na pravidlech nadefinovaných administrátorem, a to na úrovni aplikace nebo komponenty aplikace;
  • Scheduled processes – poskytují možnost spustit Java kód v jistou dobu, nebo spustí za jistou dobu. Podpora právě jednoho spuštění v rámci klustru je samozřejmostí;
  • Overloading protection – možnost nadefinovat akce v krytických stavech kdy je server přetížený, nebo se v aplikaci vyskytuje nějaká kritická chyba;
  • Network channels -poskytuje požnost nadefinovat kombinaci protokolu a portu pro prioritizaci důležitých požadavků;
  • Verzování aplikací – poskytuje možnost spustit dvě verze jedné aplikace ve stejnou dobu. Stará verze se používá pro již otevřená spojení a nová pro ty nově příchozí. Takto je možné nasazovat nové verze aplikace bez výpadku na straně klienta;
  • Store and forward services – umožňují administrátorským úkonem simulovat JMS server a příchozí zprávy přesměrovat do jiného JMS servru. Při výpadku cílového servru se zprávy uchovávají a čekají na další zpracování;
  • Java Naming and Directory (JNDI) – poskytuje klustrovou implementaci tohoto standardu;
  • Java transaction API (JTA) – podporuje transakce různých zdrojů, distribuovaná transakce a two-phase commit protokol;
  • Weblogic Scripting tool (WLST) – nástroj, ve kterém je možné spolu s WebLogic konzolí nahrát a spustit administrátorské aktivity, nebo je napsat pomocí Python skriptu;
  • JMX rozhraní – ve kterém je možné měnit vlastnosti servru, mnoho z nich za chodu;
  • SNMP rozhraní – kde server informuje o důležitých aktivitách pro monitorovací nástroj;
  • Weblogic Diagnostic Framework (WLDF) – je framework na podporu sledování aplikací v provozu. WLDF umožňuje sledovat jakoukoli informaci pomocí JMX rozhraní, ukládat historické hodnoty, případně instrumentovat kód pro lepší sledování;
  • Deployment API (JSR-88) – umožňuje Java kódu pracovat s deploymentem aplikací;
  • Logging API – poskytuje mezivrstvu pro oddělení logování v aplikaci a implementaci logování. Jestli aplikace použije toto API, tak je možné administrátorským zásahem přepínat mezi Java logging a Log4j implementaci a nahlížet na logy aplikace z WEB konzole;
  • Komplexní konzole pro administraci aplikace. Konzole je WEB aplikace přistupující k servru pomoci JMX rozhraní a umožňující atomicky měnit jeho parametry;
  • Domain configuration wizards ulehčují vytvoření nové domény a přenos mezi prostředími na různých servrech

WebLogic Realtime Server (WLRT)

Weblogic realtime server je založený na JRockit JVM, které je rozšířené o deterministic garbage collection a JRockit Runtime analyser.

Tímto speciálnim garbage collectorem se dá ovlivnit maximální čas přerušení aplikace na uklízení nepoužívaných objektů v heap paměti, použitím přepínače -Xgcprio:deterministic. Jestli budeme měřit výkon aplikace delší dobu, tak takto nastavené JVM nemá nutně větší výkon než aplikace s normálnim garbage collectorem. Umožňuje ale podstatně zkrátit přerušení chodu na velice krátkou dobu. Obyčejně se doba přerušení ve velkých aplikacích pohybuje v sekundách. Použitím WLRT se tato doba dá zkrátit na milisekundy.

WebLogic Integration (WLI)

Weblogic Integration je alikace, která rozšiřuje JEE programovací model anotacemi a poskytuje framework, který zpracovává anotace a generuje JEE aplikaci. Ta se dá spustit na standadním JEE servru.

Anotace se v této aplikaci používají už více než čtyři roky a lidé, kteří tento programovací model tehdy vytvořili, jsou nyní v pracovní skupině EJB3.

Weblogic Workshop, jako IDE pro vývoj aplikací umí takto anotovaný zdrojový kód vizualizovat. Vizualizace zobrazuje například tok uvnitř java kódu, a poskytuje možnost obousměrné synchronizace obrázek <> kód. Viz obrázek.

wliscreen

Runtime frameworkem, na kterém beží WebLogic integration, BEA dotovala Apache projekt a vytvořila tak open-source Beehive framework. Od této doby WLI beží na tomto frameworku.

WebLogic integration obsahuje v runtime frameworku Message broker, resp.komponent, který zjednodušuje práci s asynchronní komunikací. Vývojář může parametrickým nastavením měnit komunikaci kódu s venkovním světem, a to synchronně nebo asynchronně.

Pro opakující se procesy WLI obsahuje komponent Event generator, který podle svého nastavení vyvolává Java kód v pravidelných intervalech.

WLI je možné navrhovat business procesy, využívat worklisty (seznamy =úkolů pro koncového uživatele), nebo importovat a exportovat proces ve standardu BPEL.

Velice šikovným nástrojem je XQuery mapper, který umožňuje vizuálně propojit vstup a výstup XQuery transformace a vygeneruje kód, který se dá následně použít v aplikaci. Viz obrázek.

WLIXQuery

Pro runtime prostředí WLI poskytuje konzoli, kde je vidět stav všech procesů, jejich instancí, event generátorů a dalších užitečných informací.

wliconsole

Weblogic Portal (WLP)

Welogic portal poskytuje jednoduchý framework na personalizaci a zabezpečení webových stránek, a to z různých webových zdrojů do jednotného frontendu. Uživatel si může po přihlášení vybrat svůj pohled na aplikaci ze všech zdrojů, které mu poskytnete. Mezi zdroje je možné zahrnout servlety, WebServisy, WebService portlety (WSRP) nebo RSS feeds.

wlp

Navíc WebLogic Portal poskytuje business servisy, resp. aplikace, které vám umožní spravovat přístupové práva a uživatele, obsah stránek (content management), hledání, diskuzní skupiny a vybudovat federované portály (portál portálů).

Weblogic SIP server (WLSS)

WLSS je implementace JAIN AIP, nebo JSR116. Tato implementace poskytuje vývojáři implementovat servlet, na který je možno přistoupit pomocí SIP protokolu. SIP Servlet je velice podobný HTTP servletu a každý kdo umí napsat HTTP servlet může jednoduše psát aplikace pro HTTP i SIP.

wlss

Na rozdíl od HTTP servletu SIP servlet má více než jednu odpověď. SIP servlet také není například ve všech stavech komunikace server, někdy je ve stavu klienta a navíc může být někdy ve stavu „proxy“, kdy požadavky pouze přesměrovává. Pro spojení kde není ve stavu proxy udržuje s klientem aplikační session, co není v HTTP servletu stejně podporované.

WebLogic Network Gatekeeper (WLNG)

WLNG je aplikace na kontrolu a správu komunikace v telekomunikační síti postavené na Java/WebServices platformě. Aplikace obsahuje databázi pravidel a povoluje přístup jenom datovým tokům vyhovujícím těmto pravidlům. Toto je možné pro různorodé aplikace, jak klientské, tak servrové.

wlng

WLNG poskytujej implementaci API postavené na standardním X Parly WebService rozhraní rozšířeném o další možnosti. WLNG poskytuje interface pro zprávy (SMS i MMS), lokační aplikace, účtování, uživatelský profil aposkytuje status klienta nebo informační rozhraní pro komunikaci v době volání. Pro voláni poskytuje možnost přesměrování, spojování a konferencí.

WebLogic RFID Server

WebLogic RFID server se skládá ze dvou aplikací, a to Edge a Enterprise server. Edge Server je aplikace komunikující na nejnižší úrovni s RFID zařízeními. Filtruje velké množství dat, které jsou poskytovány RFID čtečkou. Jenom smysluplné informace postupují do Enterprise servru, kde se k nim přidáním dalších dat mění na informace do informačního systému.

WebLogic Workshop

Weblogic Workshop je aplikace běžící na Eclipse frameworku. BEA se stala asi před rokem vedením sdružení Eclipse (Board Member) a je ve vedení některých modulů, jako například Eclipse Web Tools platform, AspectJ/ApectWerkz nebo Multilanguage compiler. Samotný workshop je složený ze dvou částí.

Jedna část je bývalý NitroX, který BEA získala koupením firmy M7. Tato sada pluginů podporuje hlavně open source frameworky jako Spring, Hibernate, Struts nebo JSP a je podporována na všech standardních JEE servrech (ne jenom Weblogic).

Druhá část Workshopu vznikla evolucí Workshopu verze 9 a opensourcováním některých jeho částí, jako Apache Beehive, XMLBeans nebo OpenJPA. Tato sada pluginů podporuje hlavně vývoj aplikaci pro Weblogic platformu, jako je Integration, Portal, SIP a RFID server.

WebLogic Workshop poskytuje jednu velice unikátní vlastnost ve světě IDE. Jmenuje se AppXRay a je to detailní analyzátor kódu. Nabízí jak kontrolu kódu ještě před kompilací, tak pomoc při psaní. Algoritmus AppXRay podporuje řadu open source frameworků a jejich konfiguraci. Úroveň detailů je hodně velká. Nic podobného jsem v jiných IDE nenašel. Já osobně toto používam v projektech na kontrolu kódu. Najde to hodně chyb i bez spuštění aplikace. Doporučuji stáhnout si verzi na internetu a zkusit. Všechny BEA produkty se dají stáhnout s trial licenci na stránkách http://download.bea.com.

Konec části 1. Ve druhé části popíši AquaLogic platformu a její aplikace.