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