Showing posts with label architektura. Show all posts
Showing posts with label architektura. Show all posts

Wednesday, 8 June 2011

DB Options - vylepšení celého řešení na úrovni databázové vrstvy, část 2.

Dnes dokončíme přehled options a další vlastnosti databáze, které mohou pomoci při práci s dokumenty.

SecureFiles jsou vlastností databáze 11g pro práci s nestrukturovaným obsahem ("dokumenty"). Při jejich užití je možné uložené dokumenty: deduplikovat (v případě vkládání stejného dokumentu se ukládá jen jednou), komprimovat a šifrovat (na rozdíl od Security Option se šifrují jen samotné dokumenty).

Oracle Text dokáže vytvářet fulltextové indexy. Pro jeho využití není nezbytné, aby se dokument ukládal do databáze (indexace probíhá proti souboru na disku). Při jeho využití není potřeba dokupovat index servery třetích stran (v dřívějších verzích Stellent spolupracoval s nástrojem Verity).

Oracle Data Guard je řešení pro synchronizaci mezi primární a záložní lokalitou. V případě ukládání dokumentů do databáze je možné dokumenty i metadata synchronizovat čistě touto technologií. Co zatím není možné, je využít option Active Data Guard, který dokáže záložní lokalitu využívat pro read-only dotazy. V současném nasazení je možné záložní lokalitu využít pro testovací či školicí prostředí (využívá "volný" výkon zbylý po synchronizaci).

Advanced Compression option umožňuje zmenšit obsah, který zabírají na disku - opět se vztahuje jak na dokumenty, tak na metadata. Její využití na dokumenty závisí do značné míry na ukládaném obsahu (MS Office dokumenty se komprimují dobře, PDF už mnoho neušetří), komprimace metadat může mít vliv při opravdu velkých projektech (desítky miliónů záznamů a více). Při těchto objemech už může být zajímavé i nasazení Hybrid Columnar Compression, která je k dispozici v Exadatě.

Co říci závěrem?
Databáze je jednou z vrstev ECM řešení a zejména u velkých řešení je dobré se zamyslet na celkovou architekturou a požadavky a nastavit využití databáze dle potřeb. Jedno ideální řešení určitě neexistuje, ale vždy je možné najít optimum pro konkrétní danou situaci.

Wednesday, 1 June 2011

DB Options - vylepšení celého řešení na úrovni databázové vrstvy, část 1.

V návaznosti na článek z minulého týdne, kdy jsme se dotkli tématu databázových options, pojďme si udělat kompletní přehled, které z nich a jiných vlastností databáze Oracle mohou a jakým způsobem přispět k celkovému řešení pro správu dokumentů.

Real Application Clusters (RAC): jedná se o option, který má na starosti škálování (při přidání dalšího databázového uzlu-serveru se výkony všech sčítají) a vysokou dostupnost (při výpadku jednoho uzlu-serveru běží řešení na zbývajících) na úrovni databáze. Její funkce je transparentní pro běh podporovaných aplikací.

Partitioning: partitioning dokáže rozdělit velké tabulky na několik částí (partitions). Tato vlastnost může mít pozitivní vliv na výkon (běží-li dotaz v rámci jediné nebo několika partitions, může běžet rychleji). Z pohledu řešení UCM je však mnohem důležitější, že při využití další vlastnosti databáze, Automatic Storage Management, mohou být jednotlivé partitions uloženy na různých fyzických médiích, což může vést k výrazným úsporám na úložném prostoru. Další využití partitioningu může být při backupu či obnově ze zálohy - při vhodném návrhu kritérií partitioningu je možné urychlit backup (mění se jen 'nejnovější' partitions), či spustit řešení nad ne zcela obnovenou databází (např. se obnoví jen data za poslední měsíc či rok, které jsou pro uživatele nejdůležitější a starší budou do systému dodávány teprve postupně). Zde už je třeba trochu znát, jaký je datový model. V zásadě ale platí, že dokumenty (tabulka FileStorage) či historické záznamy (SCTAccessLog či např. WorkflowHistory) je možné partitionovat hierarchicky, naopak metadata (např. Revisions) je sice možné partitionovat, při obnově však musí být tabulka obnovena celá.

U některých projektů (zejména v oblasti Records Managementu) se někdy zavádí koncept 'životně důležitých dokumentů', kdy jsou takto označené dokumenty obnoveny prioritně - kritérium pro partitioning je tedy řízeno metadaty.

V zásadě platí, že přesáhne-li velikost databáze 1 TB, nejspíš byste měli partitioning v architektuře využít.

Advanced Security (ASO), Database Vault, Label Security: jak napovídá název, tyto options jsou zaměřeny na zabezpečení - v tomto případě se jedná o zabezpečení před útoky "zevnitř" (ze strany administrátorů). ASO umožňuje zašifrování citlivých údajů - ať už ve metadatech, nebo především pak vložené dokumenty, a to buď přímo v databázi, nebo i v dalších užití - v backupech, při posílání po síti apod. Ostatní dvě technologie pak mohou zajistit, že ani administrátor databáze nebude mít možnost dané nastavení měnit - jeho oprávnění budou dána nastavením v systému pro správu identit.

Nasazení těchto komponent je na místě, pokud systém bude spravovat citlivá data. Víceúrovňová správa přístupu pak může být zajímavá i pro hostovaná řešení (správce prostředí se bude starat o chod prostředí, nebude mít však žádný přístup ke spravovaným datům).

(pokračování někdy příště)

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, 23 December 2009

... architektura v úložišti

Pokud bychom otočili zájem o architekturu naopak na vlastní úložiště nestrukturovaného obsahu (dále "ECM úložiště"), dostaneme se na relativně pevnější půdu Solution Architecture.

Základní přiblížení architektury se dá udělat dnes snad nejopakovanějším slidem v celém Oracle:

1. Pokud bychom začali úplně zespoda, nalezneme tam hardware, na kterém se ukládají nestrukturovaná data (v jazyce výrobců hardware znamená termín úložiště zpravidla právě a jenom toto). Podle objemu dat a dalších požadavků se může jednat o disk, pásku, diskové pole, či nejrůznější hybridní zařízení (např. na našem letošním hitu, Exadatě 2, která slouží jako úložiště - storage pro datové sklady a OLTP databáze se využívají z důvodu rychlosti kromě disků i flash paměti). Budiž však řečeno, že tato zařízení již dávno nejsou jen tupými boxy na odkládání informací (souborů) a že často obsahují velmi příjemné (bohužel však často též poměrně nákladné) doplňující funkce - např. pro podporu na tomto blogu diskutovaného konceptu garantovaného úložiště může úložiště - storage nabídnout redundantní uložení stejného souboru, které z pohledu vyšších vrstev (vč. uživatelů) transparentní, čímž výrazně sníží šanci ztráty obsahu z důvodu technického poškození úložného média.
Tato vrstva je pro jakýkoliv projekt úložiště nestrukturovaného obsahu nezbytná.
2. Na další vrstvě nalezneme to, čím je Oracle stále nejznámější - databázi. V našem ECM úložišti (Oracle UCM) může mít databáze dvojí roli - buď se využívá jen na ukládání metadat (tj. dat o souborech v úložišti - v tomto případě je možné využít i databáze od jiných dodavatelů, i jako důkaz toho, že řešení je skutečně otevřené), nebo slouží na ukládání metadat i vlastního obsahu.
Zejména v prostředí, kde již databázi Oracle znají, doporučujeme jako metodu první volby druhou možnost. Databáze totiž "v ceně" dodá do řešení spoustu funkcionalit (jen namátkou: fulltextové vyhledávání či stemming, a to v mnoha jazycích vč. češtiny, hierarchical storage management, unifikované zálohování a v neposlední řadě díky RAC i škálování výkonu). Za jistou nevýhodu by se mohlo považovat, že databáze zpravidla nedokáže plně využít, pravda často proprietární, "inteligence" hardwarových storage zařízení (někdy se funkcionalita zdvojuje, jako např. u HSM, jindy se ne plně využívá, jako např. u zmiňovaného redundantního ukládání). Přesto je možnost ukládat nestrukturované informace jistě velmi zajímavým doplňkem pro řadu řešení.
3. Na třetí úrovni, middleware, patří vlastní ECM úložiště, proto ji na okamžik vynechme.
4. Poslední vrstva nás pak přenese do širokého světa ostatních systémů a aplikací čerpající služby ECM úložiště. Tím bychom se vrátili k obsahu minulého týdne.

Pokud bychom se nyní zaměřili na detaily vlastního úložiště, můžeme pokračovat v naší logice definování jednotlivých vrstev a jejich role v rámci řešení.
a) na nejnižší vstvě najdeme využití služeb storage a databáze - pokud potřebuji najít či vložit dokument s identifikátorem XYZ, musím vědět, kde ho najdu a jak k němu přistupovat
b) na druhé nejnižší vrstvě najdeme pak poskytování základních dokumentačních služeb, jako je práce s metadaty, definování přístupů, podpora workflows atd., tedy úlohy, které se vyskytují prakticky v každém projektu
Kdysi, ještě za časů, kdy produkt vlastnila firma Stellent, se této vrstvě říkalo Content Server a její nasazení bylo nezbytnou podmínkou každého stellent projektu pro správu obsahu. Je třeba poznamenat, že ve své době se tímto Stellent lišil od řady svých konkurentů (jejichž portfolio často vznikalo akvizicemi velmi technologicky odlišných produktů, takže implementace ECM projektu pak představovala integrační projekt se všemi důsledky tohoto faktu - dnes už byla většina řešení redesignována a nová řešení již vznikají podle tohoto konceptu).
Tato vrstva může sloužit jako stand-alone řešení (např. pro oblast DMS) nebo poskytovat svoje služby dalším vrstvám nad ní.
c) řada těchto vyšších vrstev je standardně dodávána (kdysi ve stellentu byly licencovány odděleně) v rámci produktu Oracle UCM. Jedná se o komponenty pro disciplíny jako je Web Content Management, práci s multimediální obsahem, či podporu splnění nejrůznějších legislativních požadavků na uchovávání obsahu (spisová služba, records management). Zajímavostí z pohledu architektury je, že jsou postaveny tak, že čerpají služby základní komponenty a samy pak nabízejí další služby navenek. Stellent byl servisně orientován v době, kdy SOA ještě ani neexistovala.
Další příjemnou vlastností tohoto způsobu je, že jej je možné:
  • snadno rozšiřovat - na každou vrstvu je možné doplňovat další a další služby (ať už Oracle nebo komunity dodávají řadu již hotových komponent)
  • snadno měnit - pokud nějaká služba nedělá, co by bylo třeba, je možné ji upravit či úplně vyměnit

Celkový obrázek architektury úložiště ECM tak může vypadat např. takto:


Vzhledem k tomu, že toto je poslední článek před Vánocemi, přeji Vám šťastné a příjemné prožití svátků.

Wednesday, 16 December 2009

Úložiště v architektuře...

V tomto týdnu jsme byli spolu s dalšími kolegy z oddělení presales posláni na školení o významu architektury. Na zpáteční cestě jsem se proto rozhodl, že dnešní téma věnuji otázkám spojující architekturu (spíše ve významu Enterprise Architecture) a problematiku ECM.

Ponechme stranou otázku samotného termínu architektura (na toto téma např. článek) - připustme, že je možné dosáhnout jakéhosi ucházejícího přenesení logiky obchodních procesů do IT infrastruktury. Jaké místo v tomto modelu tedy bude zaujímat ECM úložiště? Předně, nejprve bude nezbytné udělat ještě o jeden krok zpět (ve smyslu modelu "vodopádu") a zapátrat, proč by organizace měla vůbec něco takového chtít (tj. pokusit se definovat požadavky).

ECM primárně řeší správu nestrukturovaného obsahu (textových dokumentů, emailů, multimédiálních souborů, skenů atd.) a jakkoli jsme si nijak nespecifikovali o jaké organizaci se bavíme (ať už velikostně či oborově), troufnu si tvrdit, že správu, tj. zavedení jakýchsi základních pravidel, jak s tímto obsahem pracovat, bude muset dříve nebo později zavést každý - když už kvůli ničemu jinému, tak proto, že tento obsah má tendence skutečně nekontrolovaně (exponenciálně?) růst a velmi často obsahuje v záplavě balastu informace, (dokumenty, soubory) které potřebujeme a nebo o které si naopak nemůžeme dovolit přijít.

Požadavkem, který už do jisté míry souvisí s architekturou, je, aby úložiště bylo pokud možno jen jedno - tento požadavek v podstatě diktuje selský rozum (pokud něco budu hledat, vím, kde to najdu - nebo naopak, že to najít nemohu). V ideálním stavu by tomu tak být mělo, ale v realitě je často úložišť hned několik (se všemi problémy, které jsou s tím pak spojeny - dlouhé vyhledávání, různé triky, pravidla a administrátoři pro různé aplikace atd.) - stačí se jen podívat, jak často jsou v ECM úložišti ukládány a spravovány emaily.

Vzhledem ke zbytku světa (rozuměj dalším systémům v rámci Enteprise architektury) je pak ECM úložiště ne nepodobné databázi (osobně proto někdy užívám termín: "databáze dokumentů") - musí umět přijmout, vyhledat, modifikovat a někdy i smazat spravovaný obsah. A pak samozřejmě provádět uvnitř sebe sama některé další operace, které výše uvedené podporují (příkladem může být např. konverze do formátů, které dokáží zobrazit obsah bez nutnosti instalovat na klientskou pracovní stanici speciální software). Kromě procesů, kdy se (na rozdíl od databáze) počítá, že koncoví uživatelé pracují přímo s úložištěm (přes nějaké grafické rozhraní) je to však v zásadě všechno...

Možná Vás napadne, že vše z výše uvedeného se dá splnit i pomocí poměrně výrazně jednodušších (a levnějších) prostředků (jako jsou souborový systém či zmiňovaná databáze). To je pravda. Zatímco se dá bez újmy na obecnosti tvrdit, že úložiště nestrukturovaného obsahu má místo v každé organizace, není možné říct, že by tím úložištěm nutně musel být produkt s nálepkou ECM. Z čehož vyplývá, že kritéria výběru vhodného typu úložiště jsou dána spíše potřebami jednotlivých systémů (procesů či dokonce uživatelů) čerpajících služby úložiště. Tedy spíše úrovní označovanou jako Solution Architecture. "Letecký snímek" organizace může spíše přispět tím, aby se na nějaké řešení při vyhodnocování potřeb nezapomnělo a nebo naopak při dopadové analýze zavádění nového systému.