Alfresco ECM in het kort
Alfresco is een Open Source Enterprise Content Management Systeem (ECM) wat verkocht wordt als product dat Document Management, Collaboration, Imaging, Workflow, Records Management en Web Content Management integreert in één oplossing.
Tevens is Alfresco volledig open source (volgens de GNU Public Licence) en gebaseerd op recente open source Java technologieën, zoals het Spring Framework, Hibernate, Lucene en OpenOffice (t.b.v. document transformatie handelingen) en TinyMCE.
Op de website van Alfresco zijn 2 varianten van het product beschikbaar:
- De Alfresco Community Edition – 100% Open Source, en gratis te downloaden en te gebruiken
- De Alfresco Enterprise Edition – tevens Open Source met support en extra features die niet beschikbaar zijn in de Community Edition, zoals extensies voor clustering en schaalbaarheid, additionele System Monitoring tools, garantie certificaten m.b.t. verschillende combinaties van besturingssystemen, java versie, databases, enz. (http://www.alfresco.com/services/support/stacks/)
Na een standaard installatie van Alfresco zijn alle functionaliteiten en mogelijkheden van de Content Repository te benaderen via de Web Client van Alfresco.
Content, Spaces & Rules
In Alfresco bestaat een “content object” uit 2 zaken: een binair bestand opgeslagen in de repository en content metadata bestaande uit properties die opgeslagen worden in de database. Een content object in Alfresco is bijvoorbeeld een management rapport in PDF formaat, waarvan zaken zoals de auteur van het document, de betreffende afdeling en versie van het document als metadata worden opgeslagen in de database.
Nieuwe content wordt aangemaakt in een “space”, vergelijkbaar met een folder op filesysteem niveau. Het is mogelijk om tijdens het aanmaken van een nieuwe space een “space template” te gebruiken waarmee je in één handeling een structuur van spaces op kan zetten die vooraf gedefinieerd is.
Een “smart space” is een space waarin “content rules” zijn aangemaakt. Een content rule bestaat uit een conditie (wanneer wordt de rule uitgevoerd) en een actie (wat wordt er uitgevoerd). Een voorbeeld van een content rule is dat als er een content object in de betreffende space wordt geplaatst, specifieke gebruikers hiervan op de hoogte worden gesteld via een email notificatie. In de Web Client zijn een aantal out-of-the-box content rules beschikbaar, maar het is ook mogelijk om eigen acties en condities te bouwen voor content rules in zowel JavaScript als Java.
Content rules kunnen ook worden gebruikt om een workflow op te zetten door “actions” toe te voegen aan content objecten binnen een space, bijvoorbeeld het kunnen goedkeuren of afkeuren van content waarna het automatisch verplaatst wordt naar een andere space.
Content Transformation
Een andere krachtige feature van Alfresco is de mogelijkheid tot content transformatie. Transformaties zijn te definiëren d.m.v. content rules en standaard zijn er diverse transformaties beschikbaar van onder andere documenten (b.v. Word naar PDF of PDF naar Plain Text) en afbeeldingen (b.v. JPEG naar PNG). Alfresco uitbreiden met eigen content transformaties geschreven in Java behoord tot de mogelijkheden.
Gebruikers en groepen beheer
Beheren van gebruikers en groepen via de Web Client is redelijk uitgebreid. Het is o.a. mogelijk om gebruikers een default space toe te kennen (User Home), toegang te geven tot spaces van andere gebruikers, toe te kennen aan email groepen, lees/schrijf rechten te geven tot spaces, enz.
CIFS en FTP
Alfresco kan zich via CIFS (Common Internet File System) voordoen als een gemeenschappelijke drive, zodat gebruikers op de oude manier kunnen blijven werken. Documenten kunnen zo op een eenvoudige manier worden opgenomen in een workflow. Tevens zijn de spaces te benaderen via FTP met bestaande Alfresco gebruikers.
Uitbreidbaarheid
Een voorbeeld van uitbreidbaarheid binnen Alfresco is het toevoegen van organisatie specifieke content types, properties en aspects. Omdat het content model is opgezet met behulp van xml bestanden is het relatief eenvoudig om dit te realiseren met een custom content model. Dit model kan in de extensie folder van Alfresco geplaatst worden op de applicatie server en vervolgens geregistreerd worden in de custom-model-context.xml file:
Voor ontwikkelaars heeft Alfresco een SDK beschikbaar gesteld, zodat een ontwikkelaar snel aan de slag kan met:
- ontwikkelen van extensies voor de Alfresco Repository en Web Client
- het embedden van Alfresco in applicaties met behulp van de Alfresco Foundation Services API of de JCR API
- ontwikkelen van applicaties tegen een los staande Alfresco Repository met behulp van de Web Services API
Een Alfresco installatie is noodzakelijk om gebruik te kunnen maken van de SDK om bijvoorbeeld de Web Client te kunnen uitbreiden, custom modules naar de Alfresco Repository te kunnen deployen en custom applicaties te kunnen testen tegen een Alfresco Repository.
De Foundation Services API is een set van services die toegang geeft tot alle mogelijkheden van de Alfresco Repository. Het is een in-process API wat betekent dat de client in hetzelfde proces moet draaien als de Repository. Een voorbeeld daarvan is de Web Client, die gebruik maakt van de Foundation Services API en samen met de Repository in 1 war file is gebundeld voor deployment op de applicatie server.
Zowel de Web Services API en de JCR API maken gebruik van de Foundation Services API om de Repository te kunnen benaderen.
Meer weten? http://www.alfresco.com/

Nog wel even goed om op te merken is dat de repository niet alleen “content objecten” kan opslaan. Ook nodes met alleen properties, de metadata van hierboven, zijn mogelijk. Binaries zijn optioneel. ZIe het artikel “Understanding the differences between Alfresco’s repository implementations” op
http://ecmarchitect.com/archives/2009/08/31/1038
Nico September 28, 2009 23:01