Ú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.