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