Wednesday, 25 May 2011

Ukládat, či neukládat (dokumenty do databáze)

Nedávno jsem byl svědkem dvou, poměrně vášnivých, diskuzí na téma zda ukládat dokumenty do databáze, či nikoliv. Osobně se nekloním ani na jednu stranu. Trefně to však vystihl kolega, který prohlásil, že každý preferuje to, co zná. Pojďme se však podívat na věc pokud možno objektivně.

Rychlost (zejména vkládání dokumentu)
Častým argumentem odpůrců vkládání je tvrzení, že vkládání dokumentu na databáze trvá výrazně déle než vkládání na filesystem. Toto (minimálně pro databáze Oracle) byla pravda někdy, dnes již dost dávno. Obecně trvá vkládání do databáze o něco déle, rozdíl je však v jednotkách procent. A pro některé speciální případy (vkládání mnoha krátkých souborů najednou) dokáže být databáze dokonce rychlejší. Stejně tak může být rychlejší, pokud je systém synchronizován (např. z důvodů disaster recovery - databáze synchronizuje celý commit, filesystem každou změnu).

Komprese, deduplikace, šifrování dokumentů
Argumentem zastánců databáze naopak bývá možnost využití databázových options, a to zejména na kompresi vkládaných dokumentů (zmenšení obsahu na disku), deduplikaci (vkládá-li se stejný soubor vícekrát, je uložen fyzicky jen jednou a z dalších míst existuje odkaz) a zašifrování (ani pro db administrátora nebude soubor čitelný, pokud si jej vyhledá prostředky databáze).
Předně, tyto options často bývají k dispozici i na úrovni filesystému (zpravidla taktéž za příplatek). Navíc, jejich přínos je velmi závislý na tom, co se bude do úložiště ukládat (dokumenty MS Office se budou komprimovat dobře, PDF, TIFF či JPEG formátům asi komprese moc neubere), či jak je projekt implementován (přílohy emailů po firmě by se neměly posílat jako soubory, ale jako odkazy do úložiště).

Synchronizace active a stand-by lokality
Podobně je na tom využití technologie DataGuard pro synchronizaci active a stand-by lokality u řešení v rámci disaster recovery. UCM bohužel "odkládá" některá provozní data na filesystem (z těch nejznámějších: stavy položek ve workflows), a tak je podporována jen instalace, kde je synchronizována databáze i filesystem.

Fulltext indexace
Databáze umí (kromě engines třetí strany) indexovat soubory pro fulltextové vyhledávání. Pro využití této vlastnosti však není nezbytně nutné, aby zdrojové soubory byly uloženy v databázi (v databázi je v každém případě výsledný index).

Jednotná správa
Pokud nebudete implementovat model OAIS, který vyžaduje, aby i v případě ukládání dat na "otevřenou platformu" byla data i metadata u sebe, dá se očekávat, že při ukládání na filesystem budou metadata v databázi, tj. při případné ztrátě či chybě, která oba celky od sebe rozpojí, budete mít problémy spojit, co k sobě patří (po pravdě řečeno, i s metadaty rozházenými na disku to nebude o moc snazší). Toto je tedy argument pro databázi. Na druhou stranu, k jeho uplatnění dojde jen v opravdu krizových situacích a v případě správné politiky zálohování lze dopady minimalizovat.

Hierarchical Storage Management
To jest, ukládání starších dat s možnou delší vybavovací dobou na levnější fyzická úložiště lze dosáhnout jak prostředky databáze, tak filesystému - při využití partitioningu bude databáze pracovat s několika málo většími soubory, zatímco na filesystému bude základní jednotkou nejspíš jednotlivý soubor, což opět může být mírný agrument pro databázi.

V souhrnu je tedy vidět, že obě metody jsou srovnatelné s mírnou převahou pro ukládání v databázi. Při výběru metody je tedy třeba zvážit i to, na co jsou zvyklí administrátoři zákazníka či zda zákazník neinvestovat do jedné či druhé metody a očekává zhodnocení svých investic v rámci projektu.

Wednesday, 18 May 2011

Přehled vlastností Oracle WebCenter Suite, část 5.

Při hledání informací do dnešního článku jsem našel přehled vlastností WebCentra vytvořený jedním z product managerů. Je k nahlédnutí zde (a pokračování na stránkách přes link v záhlaví hlavního dokumentu).

To, co nám ještě zbylo, jsou vlastnosti schované pod hlavičkou WebCenter Anywhere, což jsou služby, které slouží k propojení WebCentra s "jinými zdroji podobného charakteru" v organizaci.

Pagelet Producer (dřívě též Ensemble)
V předminulém článku jsme psali o portletech. Co když ale má zákazník řešení, které se do portálových technologií transformovat nedá (nebo jen za cenu úplného přepsání) - např. v ČR populární řešení psaná v PHP? Pro tyto zákazníky by mohl být řešením Pagelet Producer.
Ten totiž umí vytvořit pagelet, což je kus html kódu, který je pomocí jednoduchého javascriptu možné přidat do jakékoliv stránky. A protože je jedna ukázka mnohem lepší než tisíc slov, podívejte se na to lépe sami - v ukázce vytvoří jednoduchá ADF aplikace a pak se pomocí (v té době ještě) Ensemble přidá do iGoogle gadgets.

WSRP Producer for .NET
(dříve též .NET Accelerator)
Z podobného světa je WSRP Producer for .NET. Ten, jednoduše řečeno, umožňuje vyvíjet v .NETu (včetně vývojového IDE Visual Studio); výsledný kód je však možné provozovat v prostředí WebCenter.
Výhodou tohoto přístupu je, že organizace zvyklá vyvíjet v .NETu může využívat další vlastnosti a služby WebCenter Suite, aniž by musela měnit vývojovou platformu.
I pro tuto vlastnost máme k dispozici ukázku.

Business Mashup
I k tomuto tématu existuje ukázka. Business Mashups jsou technologií, která umožňuje využít data z aplikací a prezentovat je v uživatelsky přívětivé formě na portálu. Skládají se ze dvou technologií, tzv. Data Controls, které definují datový zdroj, a Mashups či Taskflows, které definují, jak se bude obsah zobrazovat. Samozřejmě, při zobrazení je možné využít více zdrojů a "promixovat" tak různá data do jednoho výstupu. Navíc toto je možné vše vytvářet za běhu (byť definici data controls stejně většinou provádí vývojář).

WebCenter Analytics
Na rozdíl od předchozích vlastností jsou Analytics určeny hlavně k tomu, aby umožňovaly sledovat nejrůznější statistiky (nejčastěji sledovanost či dobu odezvy), které mohou být nezbytnou částí k dosažení úspěšnosti řešení.

REST API
Poslední vlastností z balíku Anywhere je REST API. To zajišťuje přístup k funkcím velmi efektivním způsobem. Jeho ukázkou je pak aplikace pro iPhone dodávaná přímo Oraclem, ale i pro další zařízení (např. Blackberry) dodávané partnery.

Tímto jsme uzavřeli představování vlastností WebCenter. Suite samozřejmě obsahuje i některé další produkty (UCM, SES), které jsou nutnou součástí pro některé specifické úlohy, a jiné (Weblogic Portal, Aqualogic Interaction), které jsou ve suitě pro zákazníky, kteří již mají tento produkt zakoupený, chtějí jej ještě nějakou dobu provozovat, ale licenčně již chtějí přejít na WebCenter.

Wednesday, 11 May 2011

Přehled vlastností Oracle WebCenter Suite, část 4.

V dnešním článku se zaměříme na téma, které obvykle posluchače napadne, když slyší o "2.0" tématech - social computing (všimněte si, že až doposud jsme se tomuto tématu věnovali jen okrajově).

WebCenter obsahuje řadu služeb provozovaných v prostředí portálu (samy služby, jak jsme si uvedli minule, jsou často portlety). Pokud zákazníka zajímá výhradně rozšíření možností již existujícího portálu o tyto služby, je možné místo WebCenter Suite pořídit jen produkt zvaný WebCenter Services, který právě tyto služby obsahuje.

Přehled služeb:
  • Wiki & Blog: od PS3 se ukládají članky na Wiki a příspěvky do blogů jako dokumenty (html) v UCM. Byl změněn i front-end (WYSIWYG editor).
  • Diskuze: (též miniblogs) - krátké příspěvky, zpravidla k danému hlavnímu tématu
  • Oznámení (Announcements) - podobná diskuzím - krátké příspěvky; na rozdíl od diskuzních příspěvků však mohou obsahovat datum a čas (např. do kdy jsou aktuální či do kdy je potřeba přečíst)
  • Tagy (štítky) - krátké, zpravidla uživatelem či autorem definované, označení subjektu; obdoba klíčových slov, pomáhají při vyhledávání
  • Odkazy (Links) - propojení mezi dvěma libovolnými subjekty (diskuzní příspěvek - oznámení, uživatel - dokument apod.), které usnadňuje dohledání souvislostí
  • Hlasování - 'Líbí'/'Nelíbí'
  • Ankety - volba otázek, časování-cílení ankety, vyhodnocení výsledků
  • Sociální sítě (Activity Stream, Activity Graph) - sledování dění v sociální síti (co, kdo, kdy)
  • Osobní profil - stránka s nastavením osobních údajů; ty je pak možné využít jako vstup i do aplikací (např. preferovaný jazyk, 'Mám zájem o:', apod.)
  • RSS - publikace z často měněných zdroje na internetu (např. titulky novin)
Kromě těchto služeb obsahuje WebCenter i rozhraní na další často využívané služby:
  • Mail
  • Poznámky (notes)
  • Kalendář
  • Workflow worklist

Wednesday, 4 May 2011

Přehled vlastností Oracle WebCenter Suite, část 3.

Práce s portlety

Od patch setu 3 (PS 3) podporuje WebCenter plně standardy JSR 286 a WSRP 2.0 (normy JSR 168 a WSRP 1.0 byly podporovány již dříve). Portlety je možné vytvářet i konzumovat.
V případě konzumace portletů třetích stran - je možné využívat i vzdálené portlety, viz podpora WSRP - je vzájemné propojení (wiring) těchto portletů do prakticky automatické - portlety přebírají kontext, pouze při výměně událostí je třeba někdy specifikovat zdroj a cíl (což je možné při designu v prostředí JDeveloper, nebo za běhu pomocí Oracle Composer).
Kromě výše zmíněných podporuje WebCenter i standardy JSR 301, JSR 329 (JSF Portlet Bridge for Portlet 1.0 resp. 2.0 Apps).
K portletům na závěr ještě jednu poznámku: většina standardních Web 2.0 služeb (Oznámení, Tagging, Profily, Worklisty ad.) jsou fakticky implementovány jako portlety.

WebCenter Spaces
Spaces jsou hotová portálová aplikace, která je zaměřena na dva scénáře:
  • vývojový projekt
  • zájmové komunity
(třetím scénářem je pak 'generický scénář', který je možné 'naklikat' do žádané podoby - nevyžaduje však nutně žádný vývoj).
Jako takové nabízejí Spaces všechny výhody portálové aplikace, jak jsme si je uvedli v minulém článku. Oproti dřívějším verzím se od PS 3 jedná zejména o:
  • hierarchii stránek spaces vč. navigace
  • delegovanou administraci a
  • zabezpečení na úrovni položky (souboru)
V podstatě se jedná o zjemnění úrovně již dříve přístupných funkcí.

Wednesday, 27 April 2011

Přehled vlastností Oracle WebCenter Suite, část 2.

V dnešním článku se konečně dostaneme k detailům. Konkrétně výstavbě portálů či aplikací s prvky portálu.
  • Tvorba a úprava vzhledu stránek - stránku je možné vytvářet buď v IDE prostředí (JDeveloper aj.) nebo v runtime módu (této vlastnosti se říká Oracle Composer); přičemž v runtime módu je pak možné specifikovat role či skupiny uživatelů, kteří mohou obsah měnit předem definovaným způsobem. Při designu stránek je možné používat tyto komponenty:
    • šablony stránek, skins a navigace
    • tzv. resources - zdroji může být statický obsah (dokumenty, obrázky, videa - proto je součástí suity ECM úložiště), ale také výstupy či interface aplikací (portlety, vyvíjené aplikace, mashups apod.); portál sám obsahuje také řadu standardních resources, jako je náhled do mailové schránky, workflow task list apod.

  • Resource Manager - vzhledem k výše uvedenému je klíčovou komponentou pro dotváření konečného vzhledu zdrojů (a tedy i stránek a celého portálu) manažerská konzole, která umožňuje správci portálu rozhodnout které zdroje a kterým uživatelům dá k dispozici, stejně tak se ale využívá pro podporu iterativního vývoje zdrojů (tj. je možné "poslat zdroj zpět do vývoje").

  • Delegovaná administrace - umožňuje rozdělit administraci tak, aby za konkrétní části byly zodpovědní různí lidé - to odpovídá konceptu, že portál představuje tvář celé organizace, je dán jednotný branding, za svoji část jsou však zodpovědná jednotlivá oddělení

  • Zobrazení portletů - portál je schopen konzumovat portlety dle standardů JSR 168, JSR 286, WSRP 1.0, WSRP 2.0 a dokonce "portletizovat" zdroje, které neodpovídají žádné specifikaci WSRP (o tomto více v některém z přístích článků)

  • Analýzy (návštěvnosti apod.) - pro úspěšný provoz portálu je také nezbytné neustále sledovat, zda je portál navštěvován, popř. které stránky jsou oblíbené a o které naopak není zájem. Za tímto účelem je obsažen modul pro sledování událostí a tvorbu reportů (jedná se o původní modul AquaLogic Analytics, který byl převzat a patřičně upraven).

Wednesday, 20 April 2011

Přehled vlastností Oracle WebCenter Suite, část 1.

Představme si nejprve high-level přehled, co všechno obsahuje WebCenter Suite:

1. moduly rodiny WebCenter
  • WebCenter Portal & WebCenter Framework - tento modul umožňuje
    • vytvářet portály (web aplikace s portálovými vlastnostmi, jak bylo uvedeno minule)
    • vytvářet portlety (funkční celky, Java aplikace odpovídající specifikaci JSR 168, resp. JSR 286, které je možné provozovat v portálových prostředí - i třetí strany)
  • WebCenter Spaces - hotová portálová aplikace, která ihned po nainstalování umožňuje provozovat portál pro účely zájmových komunit či project development stránky
  • WebCenter Services - hotové služby, které umožňují
    • Social Computing (WIKI, blogy, diskuze atp.)
    • integraci s ostatními aplikacemi v rámci organizace

2. ostatní aktuální produkty
  • omezená licence na Oracle UCM - omezení je specifikováno ve smyslu:
    • "správa dokumentů, WCM, DAM a dalších UCM komponent pro dodávání obsahu v rámci portálu či portálových aplikací" (tj. v podstatě vše kromě URM; URM adaptér je však součástí licence) - zdroj ESup.pdf
    • "veškeré interakce musí být prostřednictvím rozhraní WebCenter Suite, custom aplikace, Desktop integration nebo UCM GUI, včetně administrátorských úloh" (tj. do UCM by se nemělo přistupovat napřímo přes jeho services či API rozhraní) - zdroj FAQs

  • omezená licence na Secure Enterprise Search - omezení specifikováno ve smyslu prohledávání a indexace veškerého obsahu dodávaného v rámci portálu či portálových aplikací

  • omezená licence na BPEL Process Manager - omezení ve smyslu podpory workflows-procesů v rámci WebCenter
3. ostatní produkty, které byly z licenčních důvodů přidány do suite

  • AquaLogic Interaction
  • AquaLogic Interaction Collaboration
  • AquaLogic .NET Application Accelerator (též WSRP Producer for .NET - bude zmíněno v rámci WebCenter Services)
  • AquaLogic Interaction SharePoint Console
  • WebLogic Portal

Upozornění: součástí licence není licence na aplikační server!

Z přehledu je jasné, že WebCenter je opravdu suita modulů a produktů. Navíc, zmíněné moduly jsou opravdu high-level (v dalších článcích se na ně podíváme detailně). Síla WebCentra spočívá zejména v kompletnosti nabídky - toto je věta, která si určitě zaslouží vysvětlení.
Na druhé straně, produkt není postaven tak, aby bylo nezbytné implementovat všechny jeho vlastnosti, aby fungoval. Byť takovou položku v ceníku nemáme, umím si dobře představit někoho, kdo bude mít zájem např. jen o vytváření portletů. I pro takové zájemce určitě dokážeme najít řešení.

Wednesday, 13 April 2011

WebCenter Suite - produkt Oracle pro portálová řešení

Po završení seriálu představujícím vlastnosti Oracle UCM, přejdeme volně na druhý klíčový produkt Oracle v oblasti E2.0 - WebCenter Suite. Přiznám se, že na rozdíl od UCM, kdy jsem v podstatě vycházel z materiálů již připravených v angličtině, protentokrát budu muset v mnohem větší míře zapojit vlastní invenci.

Jako úvod do problematiky bych však zopakoval, jak vůbec rozumět pojmu "portál", který se u nás využívá poměrně velmi volným způsobem.

Nejlepší definici na toto téma jsem našel na anglické wikipedii u pojmu Enterprise portal:
  • framework pro integraci informací, lidí a procesů napříč organizací (či dokonce i za jejími hranicemi),
  • poskytuje unifikovaný a zabezpečený přístup, často prostřednictvím tenkého klienta,
  • je určen pro agregaci a personalizaci informací
(agregací se zde míní zobrazování informací z různých zdrojů na jednom místě, často dokonce "promíchaných" mezi sebou - koncept mashup)

Pokud bychom se zaměřili na zvýrazněné body, hlavním úkolem portálu tedy je něco (informace) někomu (lidem) zobrazovat. A to ne jen tak samovolně, ale v rámci nějakého "procesu" - i když procesem někdy může být i ad hoc požadavek "potřebuji tuto informaci".
Pointou portálových řešení (oproti webovým aplikacím či websites) je to, že zdroje informací mohou být značné heterogenní (kromě dokumentů, obrázků a videí, které nalezneme na "běžných" websites, se může jednat o nejrůznější reporty, grafy, ale i např. výstupy z aplikací či dokonce o přístup k funkcionalitě těchto aplikací) a že portál sám o sobě (na rozdíl od webové aplikace) neobsahuje;resp. nemusí obsahovat, abychom byli přesní; ani business logiku, ani data potřebná pro zobrazení informace. Osobně pro toto používám termín integrace na prezentační úrovni.
Posledním bodem, u kterého se zastavíme, je důraz na uživatele. Portály velmi často zobrazují nejen personalizované (tj. upravené pro potřeby uživatele, a to uživatelem samým nebo někým jiným, kdo je k tomu oprávněn), ale i personální data - smlouvy, fotografie, platby, atp. Proto je velmi často nezbytnou součástí řešení i dostatečné zabezpečení, přičemž vzhledem k charakteru portálu se může jednat nejen o prevence prolomení zabezpečení, ale i ochrana proti útokům typu denial of service (DoS).