přejít na obsah přejít na navigaci

Linux E X P R E S, Alfresco CMS

Alfresco CMS

alfresco_logo.gif

V tomto článku se budu věnovat instalaci, nastavení a vlastnostem Content Management Systemu Alfresco. Systém pro správu obsahu (content management system) je software zajišťující správu dokumentů, nejčastěji webového obsahu. V dnešní době se jako CMS zpravidla chápou webové aplikace, někdy s případným doplňkovým programovým vybavením u klienta. Pro  CMS se někdy používají i oborově podobné termíny redakční či publikační systém.


reklama

(V perexu použita část hesla CMS z Wikipedie.)

Instalace

Instaloval jsem Alfresco-Labs-3c-Full-Setup.exe na Windows XP SP2, vše bylo přímočaré a jednoduché. Zvolil jsem použití vlastní databáze Derby, takže nebylo třeba instalovat ani relační databázi. Z nějakého mně neznámého důvodu však byl balík špatně nakonfigurován co se týká cesty k OpenOffice.org, který je obsažen ve verzi 2.4 Portable.

Alfresco totiž používá jeden velmi zajímavý trik. Pro práci s dokumenty (Word, Excel, ODF) a exporty (PDF) má na pozadí spuštěn OpenOffice.org, ke kterému se připojuje přes sockety. Díky tomu funguje nad dokumenty ve Wordu například fulltextové vyhledávání i náhledy.

Alfresco je nakonfigurováno tak, že OpenOffice.org při startu serveru Tomcat, což je primární kontejner Alfresca, nespustí. Situace se dá řešit dvěma způsoby. Za prvé najít XML soubor s konfigurací cesty k soffice.exe a cestu opravit. Já jsem zvolil řešení druhé – vytvořil jsem si vlastní spouštěč, kterým OpenOffice.org spustím – start_oo_background.bat:

@c:\Alfresco\OpenOfficePortable\App\openoffice\program\soffice.exe "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard

Pozor – vše je na jednom řádku. Použil jsem „starší“ OpenOffice.org 2.4, který je přímo v instalačním balíku, ale mělo by to jít i s novější „trojkou“. Hezké je, že tohle funguje stejně i na Linuxu, snad jen formát příkazové řádky bude jiný:

/usr/bin/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard

Start Alfresca se provede přes ikonu nebo BAT soubor (alf_start.bat) a po několika minutách se můžete připojit do webové konzole – administrátora a pracovního prostředí uživatelů. Tomcat je „nalepen“ na portu 8080 a jsou nasazeny tyto aplikace:

  • http://localhost:8080/share – administrační část;

  • http://localhost:8080/alfresco – správa obsahu;

  • http://localhost:8080/studio – design layoutu pro WCM.

Dále je v základní instalaci ještě aplikace studio, která slouží k práci s weby (Web Content Management) – definici layoutů a webů. Této části se budu věnovat později.

Bezpečnost systému

Autoři vybavili Alfresco standardní funkcionalitou, co se týká zabezpečení. Lze vytvářet uživatele, role a skupiny. Alfresco lze integrovat s LDAP/MSAD/NTLM, přičemž v případě posledně jmenované možnosti Internet Explorer umí provádět automatické přihlášení (což se týká také sdílení složek).

Vývojáři nezapomenuli na nezbytný audit – tedy velmi podrobný log, co se s dokumenty přesně děje. Tento audit je nutné po instalaci zapnout, pokud jej uživatel chce používat – což doporučuji. Vždyť hlavním důvodem nasazení systému pro správu obsahu je obvykle konsolidace odpovědností a dohledatelnosti. Nasazením CMS systému ve firmě odpadnou problémy, kdy nadřízený bude tvrdit podřízenému, že dokument neschválil. Nebo ještě obvyklejší a obligátní zveřejnění verze dokumentu, která neměla být zveřejněna.

Abych byl přesný – CMS systém těmto chybám neumí předejít. Firmě ale dává nástroj, kterým je pověřená osoba schopna dohledat, jak tomu opravdu bylo (kdo inkriminovaný dokument přepsal nebo schválil).

Koncept

Systém pro správu dokumentů Alfresco má jednoduchý koncept – dokumenty, což jsou obyčejné soubory (Word, Excel, OpenOffice.org, média nebo dokonce HTML soubor či čistý text) se ukládají do složek nazvaných jako „spaces“. Budu-li hovořit o složce, budu mít v terminologii Alfresca na mysli „space“.

Důvodem pro takovéto pojmenování je fakt, že složky jsou o mnoho chytřejší než obyčejné adresáře na disku. Mají totiž vysokou míru zabezpečení (práva), mohou obsahovat pravidla (business rules), podporu pro workflow (schválit, zamítnout) a posílání událostí (emaily). Dokumenty ve složkách lze účinně vyhledávat, syndikovat (RSS) a Alfresco má podporu pro mapování složek přes protokol CIFS (sdílení Windows).

Nejprve se ale podíváme na možnosti integrace stávající infrastruktury (firemní sítě) s Alfrescem. Dokumenty lze nahrávat přes webové rozhraní (funkce upload každého webového prohlížeče) – to je nejzákladnější možnost, kterou mohou uživatelé využít, například když jsou na cestách a mají zabezpečený přístup k serveru. V případě textových a HTML dokumentů lze dokonce využít i vestavěný WYSIWYG editor.

Každý dokument může být vytvořen, aktualizován (update) a smazán. Pakliže je u dokumentu nastavena vlastnost Auto Versioning (v metadatech), každá aktualizace (uložení) dokumentu automaticky povýší číslo verze, přičemž Alfresco nabízí možnost otevírání starších verzí dokumentu.

Funkce Check-Out a Check-In zabezpečí zamčení respektive odemčení souboru v průběhu editace, čímž se zamezí tomu, aby dokument paralelně editoval jiný uživatel. Tak se zamezí chybám, které vznikají přepsáním stejného obsahu několika uživateli současně.

Druhou možností je použití protokolu WebDAV, který podporuje mnoho moderních programů (Adobe Photoshop, prohlížeče, Explorer). Také protokol FTP může být řešením v krizových situacích, kdy nelze použít jinou možnost. Tyto dvě možnosti však nenabízejí funkci Check-In/Check-Out.

Poslední a nejpoužívanější variantou zejména pro uživatele Windows bude jistě protokol CIFS nebo-li sdílení systému Windows. Díky konceptu Drag-And-Drop lze dokonce využít funkce Check-In/Check-Out. Jakoukoliv složku lze namapovat pomocí sdílení systému Windows (nebo přímo přes Okolní počítače). Práce s tímto protokolem je stejná jako v případě WebDAV/FTP. Lze dokumenty vytvářet, přepisovat (s možností aktualizace nové verze) a mazat.

Navíc je v každé sdílené složce speciální soubor _CheckInOut.exe a _ShowDetails.exe. Pakliže uživatel přetáhne (drag-and-drop) nějaký dokument z dané složky na první jmenovaný program, systém na dokumentu provede Check-Out a změní se i jeho ikona (ikona zámku). Jakmile uživatel dokončí práci na dokumentu, opět dokument přetáhne na stejný program a systém provede Check-In. Podobně se dají zobrazovat detaily (metadata) dokumentu a spolu s těmito dvěma malými programy je v každé složce také soubor _Alfresco.url, který otevře danou složku ve webovém ovládacím panelu pro další úkony.

Poznámka: Pokud jste nainstalovali open-source verzi Alfresco Lab 3c na systému Windows, tak doporučuji upgrade na vyšší (nightbuild) verzi, protože zmíněná verze obsahuje chybu – při otevření složky přes CIFS se Alfresco nesmírně zpomalí a proces značně vytěžuje procesor. Toto se netýká linuxové verze.

S protokolem CIFS lze pracovat přímo v Internet Exploreru a také v prohlížeči Firefox po instalaci rozšíření s názvem Alfresco (dostupné na stránkách projektu).

Pravidla a události

Jak jsem zmínil, u každé složky může uživatel nadefinovat speciální pravidla, pomocí kterých lze efektivně implementovat workflow. Tato pravidla jsou snadno rozšiřitelná, protože vývojáři Alfresca adaptovali aspektově-orientované programování, které umožňuje snadné rozšiřování. Kromě toho lze pravidla psát také v jazyku JavaScript.

Reagovat lze na událost vytvoření dokumentu (Inbound), smazání či přesun dokumentu do jiné složky (Outbound) a aktualizaci dokumentu (Update). Při vytváření pravidla lze u každého nadefinovat podmínky, při kterých bude pravidlo aplikováno. Každá složka může mít libovolný počet pravidel a je zde možnost dědit pravidla ze složek nadřízených. Každé pravidlo může mít libovolný počet akcí jako například:

  • zkopírování nebo přesun dokumentu do jiné složky;

  • nastavení nějaké vlastnosti v metadatech;

  • nastavení schváleno/neschváleno (jednoduché workflow);

  • automatické provedení check-in nebo check-out;

  • spuštění skriptu (JavaScript);

  • extrakce metadat z dokumentu;

  • vytvoření odkazu (link);

  • poslání e-mailu podle šablony;

  • nastavení typu dokumentu;

  • konverze dokumentu (například z DOC do PDF);

  • konverze a změna rozlišení obrázku (např. z GIF do JPEG).

Typickým příkladem může být vytvoření následujícího procesu schválení marketingového materiálu (nabídky). V tomto příkladu máme následující složky:

  • 10_Zadání

  • 20_Vypracování

  • 30_Připomínkování_IT

  • 40_Připomínkování_Mmt

  • 50_Schválení

  • 90_Hotovo

V tomto příkladu by mohla být následující pravidla:

10_Zadání

  • Nadřízený zde může uložit dokument obsahující zadání pro marketing.

  • Pokud je dokument ve správném formátu (např. ZADXXX_xxx.doc), je odeslán e-mail všem z oddělení marketingu s informací o novém zadání, dále je ze složky /Marketing/Šablony zkopírován do složky 20_Vypracování dokument pod názvem VYPXXX-xxx.doc a dále je původní dokument se zadáním zkonvertován do složky 90_Hotovo do formátu PDF.

20_Vypracování

  • Při každém uložení (nové verzi) je odeslán e-mail všem uživatelům marketingu.

  • Jakmile je vlastnost „Připomínkovat“ nastavena na „Ano“, dokument je zkopírován do složek 30_Připomínkování_IT a 40_Připomínkování_Mmt.

  • Jakmile je vlastnost „Schválit“ nastavena na „Ano“, dokument je zkopírován do složek 30_Připomínkování_IT a 40_Připomínkování_Mmt a je také nastavena vlastnost „PoslánoKeSchválení“ na dnešní datum.

30_Připomínkování_IT

  • Nově příchozí dokument je odeslán e-mailem na IT, v e-mailu je kontakt na marketing (telefon) a datum, do kterého se má oddělení vyjádřit, pokud má připomínky.

  • Po překročení tohoto termínu je dokument smazán.

40_Připomínkování_Mmt

  • Nově příchozí dokument je odeslán e-mailem na IT, v e-mailu je kontakt na marketing (telefon) a datum, do kterého se má oddělení vyjádřit, pokud má připomínky.

  • Po překročení tohoto termínu je dokument smazán.

50_Schválení

  • Je vytvořen nový workflow.

  • Nadřízený obdrží e-mail.

  • Nadřízený musí dokument schválit nebo odmítnout.

  • Odmítnutí = zkopírování dokumentu s názvem …_pokus2 do 20_Vypracování.

  • Schválení = přesun do složky 90_Hotovo a konverze do formátu PDF.

90_Hotovo

  • Zainteresovaní jsou informováni o novém marketingovém materiálu.

Možnost rozšiřování

Mezi základní vlastnosti systému pro správu obsahu patří možnost vytváření vlastních formátů typu obsahu (content type). Ačkoliv Alfresco obsahuje přednastavené typy obsahu, jako je dokument Word nebo PDF, firmy obvykle potřebují pracovat s typy obsahu, jako je PR článek nebo Výroční zpráva.

Navíc CMS systémy při nasazení ve firmách obvykle obsahují možnost rozšiřování definic metadat. Například pakliže bude chtít uživatel do CMS ukládat objednávky, bylo by vhodné přiřadit ke každé objednávce několik dalších informací (metadat), jako je například číslo objednávky a kód zákazníka.

Alfresco nabízí možnost rozšíření metadat (tzv. aspekty) pomocí XML konfiguračních souborů, kde má možnost administrátor (resp. implementátor – konzultant) nadefinovat vlastní třídy dokumentů. Ty lze pak pomocí pravidel (nebo ručním spuštěním akce) přiřazovat dokumentům. Definice pomocí XML je přímočará, Alfresco obsahuje spoustu již připravených tříd a také XSD schéma pro validaci XML.

Podobně funguje rozšiřování o vlastní typy obsahu, přičemž v tomto případě je třeba ještě pomocí další XML konfigurace zpřístupnit nový typ ve webové konzoli. Obojí rozšíření jde ruku v ruce, protože obvykle potřebujeme nadefinovat nový typ obsahu a v něm přidat nějaká nová metadata.

Kromě těchto základních vlastností CMS systému nabízí Alfresco možnost asociací, a to asociací 1:1 nebo podřízený-nadřízený. Například objednávka může vždy obsahovat nějaké dvě přílohy, marketingový materiál několik fotek a podobně. Ve výše uvedených XML konfiguracích lze asociace snadno nadefinovat a poté je přes web používat.

Základní instalace Alfresca obsahuje velmi jednoduchou implementaci workflow – tedy schvalování dokumentů, plus plnou implementaci (Advanced Workflow). První jmenovaná je v podstatě nezávislé nastavení na dokumentu, které umožní schválení nebo odmítnutí. Na obě varianty se dají nadefinovat přesuny nebo zkopírování dokumentu do jiné složky. Víc toho toto workflow neumí, ale často jej lze využít k vytvoření zřetězení – každopádně každý krok tohoto řetězu je nezávislý.

S jednoduchým workwlow lze velmi často řešit problém „tří složek“: Draft - Pending Approval - Published. Workflow je nastavený na všech kromě první, při schválení se dokument posouvá dále, při neschválení spadne zpět do složky Draft.

Ve druhém případě se už jedné o plně úkolově orientované nastavení, kdy dokument může být ve více stavech než jsou zmíněné dva. Možnosti této komponenty jsou v podstatě neomezené, protože workflow se definuje pomocí JBoss jBPM technologie. S Advanced Workflow se také pracuje jinak – dokumenty už se nekopírují ze složky do složky, ale musí se vytvořit instance případu (workflow) a vyplnit vstupní parametry. V podstatě jako byste spouštěli program, kterému předáte dokument.

Ve standardní instalaci jsou připravené dvě pokročilá workflow. První simuluje chování toho jednoduchého (Review & Approve) a druhé je obyčejné vytvoření úkolu pro kolegu (Adhoc Task). Advanced Workflow se musí iniciovat z webového rozhraní z kontextové nabídky dokumentu a je potřeba před startem vyplnit povinné parametry, jako je termín, zainteresované osoby a další dokumenty.

Úkoly se poté objevují v My Tasks To Do nebo na dashboardu v My Tasks. Jakmile uživatel úkol z workflow zvolí, může dokument otevřít – ten se mu nakopíruje do jeho domovské složky (My Alfresco), případně do jiné a provede se check-out. Po editaci uživatel aktualizuje dokument a/nebo může dokument postoupit dál v celém procesu. K tomu se zobrazí v detailu úkolu tlačítka – například Approve a Reject, ale záleží na daném procesu (jak ho konzultant vytvořil). Přechodů může být víc.

Co v Alfrescu trošku postrádám, je zobrazení historie metadat ve workflow, protože uživatel může metadata měnit stejně jako připojené dokumenty. Naopak musím vyzdvihnout velmi propracované uživatelské prostředí workflow, které přesně zapadá do celého konceptu Alfresca. A v neposlední řadě – zvolená technologie jBPM nabízí možnost grafického designování procesů v Eclipse (součást produktu JBoss jBPM), což může zkrátit čas konzultanta při nasazení workflow.

Podpora formátů

Alfresco obsahuje vestavěnou podporu pro mnoho formátů i obrázků. Jelikož technicky Alfresco řeší otevírání formátů Word či ODF tak, že si na pozadí spouští OpenOffice.org, tak podpora kancelářských formátů je stejně široká jako v balíku OpenOffice.org.

Alfresco tedy umí velmi dobře číst MS Word, MS Excel i MS Powerpoint a samozřejmě také nativní formát ODF. Kromě toho rozpozná obrázky i videa, přičemž u prvního jmenovaného formátu je možnost i jednoduchých úprav. Rozumí také souborům HTML, text a Adobe Flash.

Webové rozhraní nabízí velmi pěkně vytvořené náhledy na dokumenty (Word, PDF, Powerpoint, ODF) pomocí vestavěné prohlížečky Flash s podporou stránkování. Funguje to tak, že Alfresco nejprve na pozadí převede daný dokument do formátu PDF a poté spustí program pdf2swf. Výstupy jsou až nečekaně kvalitní a dokumenty lze často číst i bez otevírání textového procesoru.

Podpora vyhledávání je díky technologii Apache Lucene, která je v Alfrescu použita, vynikající a v ničem si nezadá s těmi nejlepšími fulltextovými vyhledávači na trhu. Vyhledávání je pochopitelně rychlé a flexibilní – lze hledat ve všech známých typech dokumentů (Word, Excel, PPT, PDF – ta nezamčená), samozřejmě také v metadatech a v názvech souborů. Alfresco rozeznává automaticky kódování souborů (pokud není uvedeno nebo je uvedeno chybně), jazyk a u některých umí i skloňování. Samozřejmostí je rozpoznávání URL adres, e-mailů, dat i čísel – a to prosím včetně národnostních odlišností (tyto věci se dají přesně nakonfigurovat).

Vyhledávací formulář se dá libovolně konfigurovat díky výše zmíněném systému XML definicí. Například si můžete doplnit do formuláře vyhledávání podle vlastních kategorií. Vyhledávací podmínky je možné ukládat a konzultant může určité podmínky také předdefinovat pro všechny uživatele. To je důležité hlavně v implementacích, kde je kladen důraz na workflow.

Alfresco nabízí vlastnosti, které byste možná ani nečekali, a to je podpora skenování s možností rozpoznání znaků (OCR) a formulářů (čtení dat z předem vytištěných formulářů vyplněných ručně). Pro tyto účely umí Alfresco spolupracovat se systémy Koafax, ECM, Intelliant nebo eCopy.

Web Content Management

Alfresco obsahuje dodatečný modul nazvaný WCM, který řeší napojení CMS systému na web ve smyslu publikování dokumentů na firemních stránkách a vytváření dalšího layoutu a obsahu. Pokud jste instalovali pomocí instalátoru (Lab3c), modul je v systému již předinstalován.

Integrace Alfresca s WCM funguje dvěma způsoby – staticky a dynamicky. V prvním případě se veškerý obsah konvertuje do statických stránek pomocí technologií XML, XSLT a FreeMarkeru. Stránky mohou být poté nahrány na jakýkoli web server (např. Apache). Výhodou statického způsobu je nezávislost a vysoký výkon.

U dynamického způsobu je třeba spustit webový kontejner Tomcat, ve kterém běží publikační systém Alfresco Surf, který nabízí možnosti skriptování ve vlastním jazyku Web Script a dále ve FreeMarkeru. Komunita vytvořila spoustu komponent, které lze na Alfresco Surf Platform nainstalovat, vedle vlastního obsahu. Výhodou dynamického přístupu je například možnost vyhledávání a další interakce.

Proces publikování probíhá pomocí technologií Web Forms, která je postavená na XML, XForms, XML Schema, XSL-FO a XSLT. Typy obsahu jsou tedy nejprve naspecifikovány jako Web Forms, poté jsou tyto formuláře vyplněny uživateli (obvykle na základě dokumentů z CMS) a tato XML data jsou prohnána XSLT šablonami a poté prezentována (staticky nebo dynamicky). Web Forms jsou obsahem samy o sobě (jsou uloženy v CMS). Silnou zbraní Web Forms je možnost přesného nadefinování struktury publikovaných dokumentů. Ačkoli lze nadefinovat formulář typu Název - Perex - Tělo článku, granularitu lze zjemnit.

Závěr a odkazy

Nedotkli jsme se dalších vlastností systému Alfresco, jako jsou podpora spolupráce pomocí diskuzních fór a RSS, customizace uživatelského rozhraní (dashlety na dashboardu, další ikony, změna celého vzhledu pomocí FreeMarkeru), podpory Java Content Repository API, vlastního formátu pro IMPORT/EXPORT dokumentů včetně metadat (toto často nemají ani komerční řešení), clusteringu, fail-overu a zálohování.

Jelikož znám produkt Oracle Universal Content Management, mohu s klidným srdcem říci, že Alfresco nabízí sice podmnožinu vlastností tohoto produktu, ale ve vyšší kvalitě. Některé vlastnosti (jako je například workflow) jsou na tom výrazně lépe. Na druhou stranu komerční řešení může nabídnout více funkčnosti, co se týká konverzí (více formátů – placená podpora i ze strany Microsoftu), asset managementu a records managementu.

Nahoru

Odkazy

(Jako ve škole)
 

Top články z OpenOffice.cz

Příspěvky

Lukáš Zapletal Alfresco CMS
zapletal 27. 05. 2009, 10:56:15
Odpovědět  Odkaz 
Alfresco je k dispozici pochopitelně i pro Linux. Uvedené příkazy jsou platné, jen stačí zaměnit syntaxi za BASH.
Vlastimil Ott Rozšíření Sun Connector for Alfresco
Vlastimil Ott 27. 05. 2009, 18:48:10
Odpovědět  Odkaz 
Zrovna dnes vydal Sun rozšíření pro OpenOffice.org, díky němuž se uživatel snadno dostane ke svým dokumentům uloženým v Alfrescu:

http://extensions.services.openoffice.org/project/alfrescoconnector

Zajímavá náhoda... nebo dobré načasování (naše)? :-D
Alfresco CMS
Samgarr 29. 06. 2009, 09:43:10
Odpovědět  Odkaz 
Super clanek, zrovna se mi hodi...bude pokracovat v psani o Alfrescu?
Lukáš Zapletal Re:Alfresco CMS
zapletal 24. 01. 2011, 19:03:51
Odpovědět  Odkaz 
Zatím neplánuji další články.
Re: Alfresco CMS
shmoula 11. 10. 2011, 17:23:52
Odpovědět  Odkaz 
JEstli mas stale zajem, obcas neco o Alfrescu napisu (v pseudoanglictine): http://www.shmoula.cz/tag/alfresco/

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Lukáš Zapletal

Lukáš Zapletal

Senior Software Engineer @ Red Hat


  • Distribuce: Fedora
  • Hodnocení autora: ***

| blog