Arhitectura Alfresco
INTRODUCERE
Lucrarea de față își propune să prezinte principalele aspecte teoretice și practice în legătură cu un sistem de gestionare de documente, pagini web, înregistrări și fotografii numit Alfresco.Acesta este un program din categoria programelor Freeware.
O să se puncteze în cadrul lucrării noțiunile importante ale platformei moderne Alfresco, platformă care este bazată pe tehnologiile open source și care oferă puterea aplicațiilor de tipul Enterprise Content Management(ECM) cu opțiuni de livrare în medii hibride, mobile, online sau cloud.
Principalele teme propuse sunt prezentate în conținutul lucrării și se referă la:
arhitectură și tehnologie, interfețele utilizatorului foarte bine structurate, despre utilizatorii și grupurile care administrează această aplicație cât și permisiunile acestora asupra utilizării sistemului,fluxuri de lucru, configurarea repository-ului cât și administrarea lui, vizualizarea content modelului și crearea de la 0% a respectivului.Pe baza acestor concepte se vor dezvolta numeroase ramuri care succed în cadrul Alfresco, sistem configurat pentru orice mediu de afaceri și personalizat pentru nevoile specifice fiecărui business.
Prima parte și a II-a o să fie axate pe noțiuniile teoretice cu privire la sistemul scris în limbajul de programare Java.Alfresco are, de asemenea, funcția Ajutor, aflată pe bara de instrumente și care ne oferă numeroase informații prețioase care ne ușurează munca.
În ceea ce privește partea a III-a o să fie prezentat scheletul aplicației propriu-zise împreună cu toate informațiile necesare înțelegerii acesteia.Aplicația este optimizată în scopul utilizării mult mai ușoare de către utilizatorii dornici să descopere tehnologi noi, moderne și eficiente.Pentru o mai bună înțelegere s-a realizat și un pachet de limbă Română(Romanian language pack) prin care interfața devine mult mai intuitivă și ințeleasă de oricine din România.Prima pagină sau dashboard-ul a fost editat și configurat după propria gândire încercând să se intuiască necesitățiile tuturor celor care accesează platforma.Diagrama fluxului de lucru este configurată în Java Enterprise Edition cu ajutorul unui plugin care permite conturarea și definirea sub formă de fișier XML.În final fișierul XML care conține diagrama va fi integrat în platformă.
Obiectivele lucrării au fost bine definite încă de la început urmărindu-se niște pași concretizați prin succes.În primul rând pentru a atinge target-ul propus trebuie să se organizeze bine informațiile de la bun început.A fost creat un powerpoint succint având toate informațiile necesare realizării unui flux de lucru stabil și funcțional și a unei interfețe cât mai simplistă și ușor de utilizat.Importanța acestei lucrări este semnificativă pentru domeniul IT în condițiile în care Alfresco este un sistem nou și modern încă neexploatat complet și care totuși începe să prindă contur în rândul firmelor române, multe dintre ele începând să studieze cât mai mult despre platforma bazată pe open source și open standards care reduce semnificativ costurile asociate sistemelor tradiționale ECM.
În concluzie Alfresco iți oferă o singură locație pentru a-ți administra orice tip de document în format electronic, fluxurile de lucru care administrează procese de business complexe și respectarea prevederilor legale prin intermediul conținutului gestionat.
Opțiunea de a alege tema respectivă este justificată datorită faptului că Alfresco foloșește drept limbaj de programare Java Enterprise Edition, limbajul despre care doresc să descopăr cât mai multe fiind atras de el încă de la început și pe langă asta consider că dobândești numeroase alte abilități cum ar fi:folosirea Maven-ului, structura XML, utilizarea Spring-ului cu diferite șabloane și numeroase alte facilități care fac Alfresco un sistem complex.
CAPITOLUL 1: NOȚIUNI INTRODUCTIVE
Alfresco este conceput pentru utilizatorii care au nevoie de o multitudine de caracteristici esențiale pentru dezvoltare și este utilizat în special ca un CMS pentru a gestiona conținut web.Este de asemenea o aplicație foarte bună pentru generare și administrare de conținut.
La baza acestui sistem este un spațiu de stocare susținut de către un server prin care sunt reținute metadate, asocieri cât și conținut cu text.Fiind o aplicație care suportă numeroase limbi și protocoale, platforma dă posibilitatea programatorului să își creeze propriul pachet cu limba pe care dorește să o folosească.
Odată cu folosirea platformei se pot obține soluții standard ca de exemplu: managementul documentelor dar și de gestionare a conținutul web.Având ca limbaj de programare Java, Alfresco poate să ruleze pe oricare sistem de operare pe care poate să ruleze și Java Enterprise Edition.
Alfresco foloșeste platforma Spring care permite editarea, modificarea funcționalității ca de exemplu: versionarea, securitatea și reguliile.Prin folosirea acestei platforme foarte cunoscute în zilele noastre, Alfresco își propune să folosească script-uri pentru a adăuga funcționalități și pentru a dezvolta interfețe de programare.Această parte din arhitectură este cunoscută sub formă de script-uri web și se poate folosi atât pentru date cât și pentru prezentarea serviciilor.
Tehnologia open source Alfresco permite organizațiilor globale să comunice și să colaboreze mult mai eficient pe cloud, mobil, hibrid și mediul on-premise și de asemenea inovează în ceea ce privește intersecția conținutului, colaborării și procesului business.Gestionarea la nivelul aplicației are o cifră de peste șapte miliarde de documente pentru mai mult de 1,800 utilizatori în 195 de țări și care suportă 11 milioane de utilizatori zilnic care lucrează în cadrul aplicației.Un alt beneficiu important ar fi îmbunătațirea proceselor de afacere cât și experiența inteligentă de management al conținutului.
Ceea ce are în componență este conținutul repository, un out-of-the box,cu o interfață bazată pe web pentru administrarea și folosirea standardelor conținutului portalului, interfață CIFS care transmite fișiere de sistem compatibile cu Microsoft Windows și UNIX, indexare Lucene și Solr și nu în ultimul rând flux de lucru Activiti.
Istoria Alfresco
John Newton, co-fondator al Documentum și John Powell un fost COO al Business Objects au fondat Alfresco Software la începutul anului 2005 având investitori de renume cum ar fi firmele de investiție SAP Ventures,Accel Partners sau Mayfield Fund.
Persoanele care au luat parte la acest proiect în calitate de personal tehnic inițial au fost persoane care au fost ingineri principali pe la Documentum și Oracle.
În primul rând Alfresco la începutul său s-a bazat numai pe managementul documentelor iar ulterior văzând și având resursele necesare compania s-a dezvoltat anunțându-și intenția de a-și extinde zona de administrare a conținutului web reușind asta prin convingerea personalului tehnic și de conducere de la Interwoven de a lucra împreună.Acest personal a inclus VP de la administrarea conținutului web, doi ingineri principali și un membru care se ocupă de interfața-utilizator al companiei inițiale.O altă persoană importantă și cu experiență care s-a alăturat a fost principalul inginer de vânzări de la Vignette.
Alfresco a fost descris de către Open Source CMS Market Share Report în Octombrie 2009 ca fiind un sistem de administrare a conținutului web open source bazat pe Java iar in 2010 Alfresco deja beneficia de open source BPM numită Activiti.
Fiind într-o continuă dezvoltare, Alfresco în luna Iulie a anului 2011 împreună cu Ephesoft a dezvăluit tehnologia parteneră care oferă utilizatorilor capturi de document și servicii interoperabile de administrare a conținutului folosit pentru capturare inteligentă PDF,căutare și dezvoltare flux de lucru.Deja în anul 2012 în luna Ianuarie Alfresco 4.0 a fost relansat cu o multitudine de îmbunătățiri asupra interfeței utilizator.
O numire importantă a fost însă tocmai în anul 2013, luna Ianuarie, când Doug Denneline, fostul Preșendinte al SuccessFactors, EVP de vânzări la Salesforce și CEO la WebEx a fost apreciat pentru munca sa și a fost numit ca CEO la Alfresco.
1.2 Cum se instalează Alfresco?
Instalarea programului nu este foarte complicată în condițiile în care se descarcă de pe site-ul oficial versiunea Alfresco Community, o variantă free în format .rar sau .zip, de obicei, care se poate decomprima și apoi se va căuta instaler-ul cu extensia .exe care este unic în acest dosar cu extensia respectivă.
Alfresco Community Edition este un software gratis licențiat open source și open standards.Se poate spune că această variantă are numeroase limitări în termeni de valabilitate deoarece caracteristica de grupare (clustering feature) a fost elimintă din repository-ul versiunii Community și este valabilă doar pentru ediția Enterprise.În ceea ce privește Alfresco Enterprise Edition este licențiat comercial iar design-ul său este orientat către utilizatorii care au nevoie de un grad ridicat de modularitate și performanță.Cloud Edition este versiunea SaaS (software ca serviciu) a lui Alfresco.
Următorul pas presupune instalarea propriu-zisă în care se urmează câțiva pași simpli și trebuie să se accepte termenii și condițiile de utilizare ale programului.Se poate spune că această instalare este standard ca la oricare alt program de genul și sunt urmați cam aceeași pași până când va apărea mesajul de finalizare al instalării.
Pentru o instalare manuală este necesar PostgreSQL 9.2.4 sau MySQL 5.5 pentru baze de date, JDK 1.7.0 u25 și Tomcat 7.0.52 cu fișierul catalina.properties configurat astfel:
În primul rând trebuie localizat <TOMCAT_HOME> și acolo trebuie creat un dosar în <TOMCAT_HOME>/shared/classes/ în care vor fi copiate următoarele fișiere de extensie pentru a arăta astfel:
../shared/classes/alfresco/extension/<files> (se găsesc în alfresco.war în /WEB-INF/classes/alfresco/extension)
../shared/classes/alfresco/messages/<files> (se găsesc în pachetul alfresco în extension/messages)
../shared/classes/alfresco/web-extension<files> (se găsesc în pachetul alfresco în extension/web-extension)
Apoi în fișierul localizat în <TOMCAT_HOME>/conf/catalina.properties se va schimba valoarea shared.loader= cu shared.loader=${catalina.base}/shared/classes/
,${catalina.base}/shared/lib/*.jar iar în dosarul lib se vor copia driverele JDBC.
Pentru a îmbunătăți securitatea Tomcat-ului trebuie ca elementul contextului, HttpOnly să numai aibă valoarea curentă și să fie configurat astfel încât să fie activă încărcarea flash.Deci, în fișierul localizat în Alfresco/tomcat/conf/context.xml rândul contextului trebuie să apară astfel: <Context useHttpOnly=”false”>
Locația unde se instalează directorul Alfresco o să fie denumită ca <installLocation> iar directorul propriu-zis o să fie denumit ca și ClasspathRoot, un director al cărui conținut este automat adăugat în momentul rulării aplicației server.Datorită acestor aspecte locația propriu-zisă poate să varieze în funcție de aplicația server dar ceea generală pentru Windows ar fi:
(Tomcat) C:\Alfresco\tomcat\shared\classes
În ceea ce privește locația respectivă pentru Linux este normal să difere și se exemplifică astfel:
(Tomcat) tomcat\shared\classes\
Fișierul alfresco-global.properties este locul unde se stochează toate setările de configurare pentru aplicația dumneavoastră.Fișierul subliniat este scris în limbajul de programare Java și ar trebui să fie plasat în <classpathRoot>.În momentul instalării platformei acest fișier alfresco-global.properties este creat și conține setările specificate de utilizator aflat în momentul oportun de asistență de configurare.
De asemenea, directorul <extension> conține fișierele unde sunt stocate configurările Spring și care pot extinde și suprascrie configurările de sistem.Acest director se găsește în
<classpathRoot>\alfresco\extension.Spre deosebire de <extension> directorul <web-extension> conține și el fișierele unde sunt stocate configurările Spring dar extinde și suprascrie configurările Share de sistem și se gășeste la locația <classpathRoot>\alfresco\web-extension.
Directorul <solrRootDir> conține directoarele de bază Solr și fișiere de configurare.Acesta poate fi găsit la <ALFRESCO_HOME> \ solr4.În plus directorul <configRoot> deține configurarea aplicației implicite.Spre exemplu pentru Tomcat acesta se poate găsi la <TOMCAT_HOME>\webapps\aflresco\WEB-INF.Diferit față de <configRoot> este <configRootShare> care deține configurarea aplicației implicite dar pentru Share.Iar spre exemplu pentru Tomcat acesta se găsește la <TOMCAT_HOME>\webapps\share\WEB-INF.
1.3 Cerințe minime de funcționare ale programului Alfresco
Cerințele minime de funcționare ale programului Alfresco se rezumă la sistemul de operare pe care este posibilă rularea platformei, minimul de resurse pe care trebuie să le dețină utilizatorul pentru a lucra în condiții normale.
Astfel, se poate spune că Alfresco funcționează cu sistemele de operare Windows-Windows 2000-Windows XP-Windows Vista-Windows 7 și Windows 8 din gama Windows și pe langă acestea cu Mac și Linux.Alfresco însă funcționează foarte bine cu Windows 7 și Windows Vista prin rularea la parametri reali.
Pentru a putea folosi Alfresco trebuie ca resursele minime să se încadreze în următoarele bareme:Procesor 1GHz, Memoria să fie de 128Mb RAM, Spațiu liber pe disc 500MB și Internet în bandă largă.
În cazul în care se dorește o funcționare a platformei cât mai bună, cerințele următoare sunt necesare:Procesor 2,6GHz, Memorie 4Gb RAM, Spațiu liber pe disc 10GB și Internet în bandă largă.
CAPITOLUL 2: ARHITECTURA ALFRESCO
În cadrul acestei secțiuni rolul principal este înțelegerea componentelor sistemului Alfresco ECM și interacțiunea între ele.Se vor descrie toate modulele variate care aparțin arhitecturii Alfresco și se vor puncta rolurile care le au acestea.Această analiză completă va începe de la startarea sistemul Alfresco pâna la bootstrap-urile sistemului.
Odată cu familiarizarea cu arhitectura Alfresco utilizatorul poate să intuiască deciziile care pot fi luate în cadrul platformei.De asemena, principalele puncte care trebuie amintite în cadrul secțiunii vor fi: arhitectura Alfresco, modulele și componentele, startup-ul sistemului și configurările necesare.
2.1 Arhitectura
Odată cu înțelegerea conceptului de administrare a conținutului Enterprise care acaparează o porțiune mare din aplicație, arhitectura Alfresco este condusă din necesitatea de a suporta toate aceste necesități ale tuturor aplicațiilor care rezultă din soluțiile pentru care procesele de administrare și de conținut nu sunt forțate în siloz (silos).Alfresco recunoaște că toate aceste discipline au caracteristici unice și suprapuse, dar design-ul pentru fiecare nu este creat separat ci este creat în contextul întregului sistem.
În cadrul complexității administrării de conținut Enterprise există o barieră pentru a intra.Numeroase implementări ECM nu ajung la potențialul lor maxim până când complexitatea nu este aplicată la dezvoltatori, departamentele de tehnologie a informaților sau utilizatorilor.Alfresco are ca scop să fie o platformă simplă pentru dezvoltare, costumizare, lansare sau folosire.Cea mai simplă și probabil cea mai cunoscută soluție ECM este unitatea de document comună.Arhitectura Alfresco este structurată cu scopul de a fi atât de simplă cât o unitate comună.
De asemenea, arhitectura Alfresco poate fi reflectată în trei layere, layer-ul pentru stocare, unde datele actuale și conținutul este stocat și administrat de layer-ul Repository.Deoarece cele două layere sunt separate, acestea pot să ruleze pe sisteme separate pentru performanță și pentru flexibilitate.Layer-ul repository transmite o multitudine de protocoale și API-uri prin care aplicațiile client pot să se conecteze.Când se instalează Alfresco câteva aplicații client sunt transmise ca inițiale, de asemenea câteva dintre organizații le vor prelucra după bunul plac sau integrează aplicații existente cu Alfresco pentru a transmite documente și conținuturi ale servicilor.
Layer-ul client poate fi, de asemenea, dezvoltat într-un mediu fizic diferit de cel al layer-ului repository.Acesta permite sistemului Alfresco să fie configurat în anumiți termeni de mărime, putere de procesare sau număr de utilizatori.
2.2 Principalele caracteristici Alfresco
Principalele caracteristici Alfresco sunt:
– Administrarea de pagini web;
– Administrarea de documente;
– Administrarea de fotografii;
– Publicare integrată;
– Acces la repository prin CIFS/SMB, FTP, WebDAV, NFS și CMIS;
– Căutare Lucene;
– Procese business automate cu ajutorul motorului Activiti pentru flux de lucru;
– Interfață simplă și intuitivă;
– Pachete portabile ale aplicației;
– Browser bazat pe GUI;
– Suport în diferite limbi;
– Suport pentru diferite platforme:Windows, Linux și Solaris
– Actualizare manuală;
– Integrare online cu Google Docs;
– Suport instalare / dezinstalare;
– Suport pentru diferite baze de date:MySQL, PostgreSQL, Oracle, Microsoft SQL Server;
– Suport Clustering.
2.3 Administrarea conținutului Enterprise
Termenul de administrare a conținutului Enterprise este folosit pentru a descrie fuziunea dintre Administrarea documentului, Administrarea conținutului Web, Administrarea înregistrărilor electronice, Administrarea imaginilor și orice alte cerințe ale documentului nestructurat.În esență se pot controla toate documentele și conținuturile active ale sistemului și se câștigă o nouă funcționalitate importantă de colaborare și căutare enterprise.
Organizațiile avansează din ce în ce mai mult de la prima simplă generare de administrare a documentului de sistem până la integrarea completă ECM încercând să depășească barierele și așteptările conform utilizatorilor de acest tip aparținând acestei intensități de sistem.
Administrarea documentului
La modul general, sistemele de administrare a documentului se întind pe o gamă largă ajungând la sistemul Enterprise de administrare a conținutului.Sunt numeroase probleme comune întâmpinate odată cu administrarea documentelor chiar dacă sistemul este informal, ad-hoc, bazat pe metodă pentru o persoană sau este formal, structurat sau destinat folosirii de către persoane de la mai multe birouri.
Un sistem de administrare a unui document este folosit pentru a urmări și stoca documente în format electronic și imagini ale foii documentului.Termenul acaparează câteva concepte ale sistemelor de administrare a conținutului și adesea este văzut ca un componentă a sistemelor Enterprise de administrare a conținutului și legate de administrarea imaginilor, sistemului de flux de lucru și sistemele de administrare a înregistrărilor.
În cazurile în care o linie a aplicației business are un grad mare de conținut nestructurat are sens să construim un sistem direct în partea de sus a sistemului de administrare a documentului(ca o parte a ECM-ului).
Administrarea de imagini
Administrarea de imagini este o categorie de tehnologie a informației pentru sistemele capabile să copieze documente de obicei folosite în business.Sistemele de administrare de imagini pot lua multe forme incluzând microfilmul, imprimante necesare, mașinile de copiere fidelă, copiatoare, imprimante cu multifunționale, scannere document, COM(creat pentru microfilm de către calculator) și arhive de scriere.
În ultimii 15 ani imaginea documentului a fost folosită pentru a descrie software-le
bazate pe sistemele calculatoarelor care capturează, stochează și reprintează imaginile.Administrarea de imagini este o parte a unui set de tehnologi în cadrul categoriei de administrare a conținutului Enterprise.
Administrarea de imagini nu este limitată la procesarea cuvintelor native și a fișierelor cu foi de calcul,unde imaginile scanate de asemenea au o viață electronică controlată și citită de utilizatori cum ar face cu o foaie a unui document.În prezent administrarea de imagini este total integrată în ECM.
Administrarea înregistrărilor
Administrarea înregistrărilor este o practică de identificare, clasificare, arhivare, conservare și eliminare a înregistrărilor.Organizația internațională de standarde definește standardul 2001 ca fiind un câmp de administrare responsabil pentru eficiență și controlare sistematică a creației, recepției, întreținere, folosire și dispunere a înregistrărilor, incluzând procesele pentru capturare și întreținere a evidenței și informații despre activități business și tranzacții în formatul înregistrărilor.
Înregistrările sunt informații create, recepționate, întreținute ca dovezi de către organizații sau persoane, pentru îndeplinirea obligaților legale sau în tranzacții de business.În timp ce definiția înregistrărilor este adesea identificată cu definiția unui document, o înregistrare poate fi fie un obiect tangibil sau o informație digitală care are o valoare către o organizație.De exemplu: certificate de naștere, raze X medicale, documente office, baze de date, date aplicație și e-mail-ul sunt toate exemplele de înregistrări.
Un alt aspect crucial al înregistrărilor și administrarea înregistrărilor este veridicitatea pentru folosirea ca dovadă.Într-adevăr, administrarea înregistrărilor poate fi văzută ca fiind în primul rând cauzată datorită identificării și administrării dovezii activităților organizației business.
În zilele noastre organizațiile operează într-un complex legal și mediu de reglementare este o societate letigioasă prosperă unde acțiunile trebuie să fie urmărite.Este o cerere mare de creștere pentru guvernanța corporativă îmbunătățită în cadrul guvernanței locale cu transparență îmbunătățită, asta devenindu-se chiar mai dificilă atâta timp cât sistemele care sunt folosite pot să instituționalizeze memoria corporativă și aceste afaceri care au efecte asupra cifrei de afaceri a staff-ului și schimbările organizaționale regulate.
Administrarea conținutului Web
Sistemul de administrare a conținutului Web este un sistem de administrare a conținutului specializat pentru crearea și administrarea conținutului HTML cu scopul de a controla conținutul pentru un site web, de obicei implementat ca o aplicație web.Acest sistem este folosit pentru a administra și controla o numeroasă dinamică colecție de materiale web(documente HTML, imaginile asociate, documente pentru descărcare și emitere și template-urile asociate cu înterpretarea site-ului web pentru utilizatori).Facilitățile conținutului creat în cadrul sistemului sunt: controlul conținutului, editarea și numeroase funcții pentru întreținere web.
De obicei software-ul autorizează crearea unor tool-uri pentru a permite utilizatorilor cu puține cunoștințe de limbaje de programare sau limbaje markup să creeze și să administreze conținutul relativ ușor de utilizat.
Multe sisteme folosesc o bază de date pentru a stoca conținutul, metadate, și/sau artefacte care sunt necesare sistemlui.Conținutul este frecvent, dar nu universal, stocat ca XML, pentru a facilita flexibilitatea opțiunilor de prezentare.
Un layer al unei prezentări afișează conținutul pentru vizitatorii site-ului web regulat bazat pe un set de template-uri.Template-urile sunt adesea fișiere XSLT sau bazate pe un limbaj template ca Freemarker-ul.Nu sunt preferate Microsoft FrontPage sau Adobe Dreamweaver pentru crearea unui site, un sistem de administrare a conținutului web permite utilizatorilor care nu sunt tehnici să producă schimbări la existentul site web fără nicio pregătire.Cererile tipice pentru un developer experimentat este de a seta și a adăuga funcționalități dar este un tool de întreținere principal pentru site-uri web pentru administratori care nu sunt tehnici.
Suplinirea unității comune. Portaluri Enterprise și intranet
Suplinirea unității comune este o modalitate mai extinsă de administrare a documentelor în Enterprise-ul cu conținut repository care deține puncte de acces ușoare pentru a ajunge la conținut.Unitățiile comune sunt simple de folosit deoarece utilizatorii nu au nevoie să fie instruiți și de asemenea toate aplicațiile lucrează cu ele.Pentru că Alfresco folosește protocoale folosite de unitățile comune, sistemul de fișiere comune pe Internet(în engleză CIFS) are repository-ul este ilustrat ca o unitate comună.Cu ajutorul regulilor, acțiunilor și extensilor se pot crea aplicații de administrare a documentului complexe care sunt transparente în ceea ce privește utilizatorii în momentul în care se preia controlul conținutului și se activează pentru a putea fi căutat.
În ceea ce privește portalurile Enterprise și intranet, acestea comunică cu angajații pentru cunoașterea noutăților și evoluților în cadrul unei înterprinderi.O parte din portaluri sunt destinate în cadrul unei înterprinderi pentru a se axa asupra datelor și rapoartelor de analiză, în celălalt caz sunt axate pe conținut și documente.Ierarhiile unui dosar sunt o modalitate ușoară de a organiza informațiile pentru un portal, clasificări și metadatele care sunt adesea considerate foarte necesare pentru informațiile destinate în cadrul portalului pentru utilizatori finali.Există elemente de administrare a documentului și procese business care te conduc la portal;cu toate acestea, prezentarea listelor de conținut și navigare necesită portleturi de programare folosind script-uri web sau java.Portlet-urile oferite de platforma Alfresco completează această dezvoltare cu: navigare standardizată, căutare și prezentare de conținut.
Administrarea cunoașterii. Publicarea de informații
Administrarea cunoașterii presupune dobândirea cunoștințelor de la angajați sau clienți și transpuse într-o formă care poate fi folosită și de ceilalți.Conținutul respectiv tinde să fie cel mai bun și cel mai utilizabil mod de stocare al cunoștințelor în tipul share-ului cu alții.
Publicarea de informații cuprinde publicarea în timp real a conținutului din surse diferite pe site cât și implementarea conținutului în cadrul web-ului pentru acces la Internet.Acestea pot fi componente digitale cum ar fi articolele scrise intern sau sindicalizate din alte surse sau fotografii.Companiile media folosesc Alfresco pentru a combina acest conținut și publică rezultatul pe site-urile lor.Acestă încărcătura de informații necesită un control al conținutului puternic și o performanță foarte bună pentru a rezulta un conținut agreabil.
Managementul de caz
Managementul de caz se ocupă de informațiile legate de un caz, cum ar fi o cerere de despăgubire, o anchetă sau de proces al personalului.Capacitatea de administrare a documentului Alfresco, structura dosarului, schemele de clasificare și fluxul de lucru este potrivit pentru gestionarea cazurilor și distribuirea muncii în rezolvarea cazurilor.Alfresco are inclus motorul fluxului de lucru Activiti prin care se pot crea fluxuri de lucru sofisticate și administrate în coadă.Platforma are un model de sarcină orientat spre conținut care agreează toate resursele necesare pentru a efectua sarcini specifice în cadrul procesului de manipulare a cazului.
Aplicațiile client Alfresco
Aplicațiile client Alfresco oferă un mijloc de accesare de depozitare a conținutului Alfresco.Ele oferă o interfață care permite utilizatorului să creeze, încarce și să gestioneze conținut.Alfresco oferă Share, care este o aplicație client web-based.
Principala aplicație client web Alfresco este Share-ul.Interfața cu utilizatorul este construită în întregime cu ajutorul tehnologiei de scripting web, care este utilizată pentru a extinde domeniul de aplicare.Share-ul este necesar deoarece oferă capacitatea de administrare a conținutului cu interfețele utilizator simple, deține instrumente de căutare în cadrul repository-ului ca de exemplu conținutul de miniaturi și metadate asociate folosind predări de conținut flash și o gamă de instrumente de colaborare ca de exemplu: wiki, discuții și blog-uri.Share-ul Alfresco este organizat sub forma unui set de site-uri care pot fi folosite ca loc de întâlnire pentru colaborare.Este o aplicație web-based care poate fi rulată pe un alt server, diferit de cel pe care rulează repository, oferind astfel oportunități de creștere a performanțelor.
2.5 Tehnologia
Deși ECM este o gamă largă de tehnologii, ea este rareori soluția completă însă face parte dintr-o soluție tipică de business mare.ECM-ul Alfresco, prin urmare, nu dictează mediul în care aceasta să funcționeze.Se poate alege sistemul de operare, baza de date, serverul aplicației, navigatorul și sistemul de autentificare utilizat în momentul rulării platformei.Următoarele tehnologii susținute în următoarele rânduri sunt menite pentru a servi ca un ghid și nu sunt definitive
Sisteme de operare pentru servere:
Red Hat Enterprise Linux;
Sun Solaris;
Ubuntu LTS Server Edition;
Windows Server;
Suse.
Baze de date:
MySQL;
Microsoft SQL Server;
Oracle;
Postgres SQL;
IBM DB2.
Server aplicație:
Tomcat;
JBoss;
Oracle WebLogic Server;
WebSphere.
Navigator web:
Mozilla Firefox;
Microsoft Internet Explorer;
Safari.
Sistem de autentificare:
Active directory LDAP;
NTLM;
OpenLDAP;
Sun One Directory Server;
Kerberos.
Alfresco testează combinații specifice ale respectivelor tehnologii ca certificate și suporturi.Aceste informații serversc doar ca ghid dar sunt două exemple de stive acceptate.
Windows 2008 Server 64-bit
Microsoft SQL Server 2008;
Tomcat 6.0.18 ca serviciu windows;
JDK 6 u20 x64;
Microsoft Internet Explorer 8;
Windows 7 client;
JAAS + Kerberos authentication.
Ubuntu LTS Server Edition
MySQL din repository-ul Ubuntu;
Tomcat 6 din repository-ul Ubuntu;
JDK 6;
Alfresco authentication;
Mac OS X(ca și client);
Safari 4.0.4.
Funcționalitatea lui Alfresco ECM este implementată în Java, aceasta fiind o execuție de încredere pentru multe întreprinderi care doresc să desfășoare rularea aplicațiilor în cadrul centrelor lor de date.Fiecare percepere Alfresco este implementată ca un black-box de serviciu Java fiind testat independent și reglat corespunzător.Diferența dintre o aplicație web structurată într-un server de aplicație în funcție de alegere și Alfresco nu este iar pentru ca să se înțeleagă asta este indicat folosirea Tomcat-ului ca implementare.
Adesea, layer-ul repository este supranumit și server de conținut.Acesta stochează conținutul tuturor tipurilor și transmite un set de conținuturi reutilizabile aparținând servicilor de administrare a conținutului ca și conținut de stocare, interogare, versionare și transformare care pot fi folosite de una sau mai multe aplicații.Serviciile de control activează fluxul de control, administrarea de înregistrări și seturile de schimbare.Servicile de colaborare redau o funcționalitate cum ar fi: wiki-uri, blog-uri și forum-urile de discuții.
Obiectele conținut pe care Alfresco le administrează sunt cuprinse din două părți: metadata pentru obiect și conținutul pentru obiect.Metadata descrie obiectul și conținutul este reprezentarea pe care utilizatorul o vede în editarea sau vizualizarea aplicației.Alfresco stochează metadata obiectului în baza de date și conținutul obiectului este stocat în fișierul de sistem.Pentru ca să suporte interogarea serviciului, Alfresco de asemenea indexează conținutul sub formă de text complet indexat sistemului.
Sunt multe moduri de împărțire și rulare Alfresco, cu toate acestea, multe implementări urmează modelul general.În cele din urmă, Alfresco este folosit pentru a implementa o soluție ECM ca de exemplu: administrare de document, administrare de conținut web, administrare de înregistrări și asa mai departe.Aceste soluții pot de asemenea, să fie elemente unei colaborări sau căutări.Soluțiile sunt tipic împărțite între clienți și server, unde clienții oferă utilizatorilor o interfață a soluției și serverul transmite servicii de administrare a conținutului și stocare.Este obișnuit pentru o soluție să ofere mai mulți clienți în vederea serverului comun, unde fiecare client este adaptat pentru mediul în care urmează să fie utilizat.
2.5.1 Clienți
Alfresco oferă doi clienți bazați pe web: Explorer-ul Alfresco și Share-ul Alfresco.Explorer-ul este clientul original Alfresco implementat folosind JSF (interfață JavaServer) și este costumizabil, dar este doar rulabil ca parte a server-ului de conținut Alfresco.Share-ul este preferat la momentul actual datorită numeroaselor facilităților oferite.
Share-ul uimește prin oferta bogată care este pusă la dispoziție, se focusează pe colaborarea aspectelor de administrare cât și pe raționalizarea experienței utilizatorului prin introducerea noutăților ca de exemplu: preview-uri web, tăguirea și rețele de socializare. Este implementat în Surf Spring și este costumizabil fără a avea cunoștințe de JSF.Share-ul Alfresco poate, de asemenea, să se desfășoare pe nivelul său separat din server-ul conținut Alfresco și, în cele din urmă, administrează și scalează separat.Desigur, Alfresco nu este disponibil doar clienților săi web.Pentru a conduce adoptarea utilizatorilor, clienții există pentru portaluri, Microsoft Office și desktop-ul.
Adesea sunt trecute cu vederea unitățile comune care sunt valabile în sistemul de operare.Acesta este cel mai probabil unul dintre cele mai comune soluții ECM home-grown unde utilizatorii folosesc documente share printr-o unitate de rețea.Folosind această tehnologie, Alfresco poate să actioneze la fel ca o unitate de rețea, aceasta este singurul server-side Java implementat cu ajutorul protocolului CIFS. Prin utilizarea CIFS, utilizatorii interacționează cu Alfresco doar dacă ei execută orice altă unitate de rețea normală, exceptând conținutul care este stocat acum și administrat în serverul de conținut Alfresco.
2.5.2 Server aplicație de conținut
Server-ul de conținut Alfresco este principalul responsabil pentru definiția conținutului, stocarea, regăsirea conținutului, versionarea și permisiunile.Server-ul de conținut oferă un grad mare de fiabilitate, scalabilitate și implementare eficientă.Server-ul de conținut Alfresco oferă următoarele categorii de servicii: servicii de conținut. ca de exemplu transformarea, tag-uirea și extragerea metadatelor, servicii de control, ca de exemplu fluxul de lucru, administrarea de înregistrări și implementare de servicii de colaborare, ca de exemplu blog-uri, activități și wiki.
2.5.3 Stocare fizică
Stocarea fizică, în mod implicit, este o combinație de baze de date relaționare pentru metadate și fișiere de sistem pentru conținut, pentru ca să ofere suport rapid textului căutat în documente și alte tipuri de interogări Lucene care este incorporat ca un motor de căutare avansat.Folosind o bază de date imediat o să se capete niște beneficii care au fost dezvoltate pe percursul anilor, cum ar fi suport de tranzacție, scalare și capabilități de administrare.Alfresco folosește un layer independent având o bază de date pentru a interacționa cu aceasta conferind un control asupra cache-ului adițional, suport SQL cu dialect și permite ca platforma să fie certificată împotriva implementărilor bazei de date proeminente.Conținutul este stocat în fișierul de sistem pentru a permite conținutului să fie de mărime mare, accesul să fie întâmplător,streaming și opțiuni pentru device-uri de memorie diferită.
Actualizarea conținutului este de obicei tradusă prin adăugarea de operații în fișierul de sistem.Acest lucru este permis pentru tranzacțiile consistente între baza de date și fișierul sistemului.
2.5.4 Administrarea conținutului web
Alfresco oferă o administrare de conținut web capabilă care conține o parte de bază a sistemului ECM.Când folosim administrarea de conținut web Alfresco, sunt câteva completări la arhitectură, asta din cauză că Alfresco separă creația conținutului sau creația de publicarea conținutului sau predarea.Creația conținutului și publicarea conținutului are o mulțime de profile de folosință și numeroase necesități diferite referitoare la arhitectură.
Cu Alfresco, creația conținutului este efectuată în unele standarde ale sistemului Alfresco,când se publică indiferent dacă conținutul din sistemul sursă este publicat pentru un anumit sistem țintă.Sistemul la care se dorește să se ajungă poate apoi să fie optimizat pentru modul static sau dinamic de predare, cum se petrece în numeroase cazuri.
Într-un model de predare statică, paginiile sunt prestate ca o parte a conținutului aparținând producției procesului.HTML rezultat și elementele importante: imaginiile, CSS, Javascript-ul și asa mai departe sunt apoi publicate în cadrul fișierul de sistem integrat în dosarul root a serverului web.Acest fapt conferă nivele ridicate de scalabilitate pentru arhitectura de producție simplificată.Nu este, de asemenea, nimic mai rapid decât un server web acordat care distribuie un fișier static.Un mare dezavantaj, în acest caz, este faptul că acest model deține o capacitate mică de personalizare,se poate spune că este limitată și, de asemenea, există un set de numere de transmitere de tehnologii pentru conțintul aplicației respective care este publicată într-un receiver de fișier server Alfresco.Respectivul receiver denumit in limba engleză ca și FSR este constituit dintr-un server mic care primește actualizări de la repository-ul sursă al Alfresco și publică apoi într-un fișier de sistem inactiv care este adaptat de un web sau o aplicație server.
Un model dinamic publică conținutul în execuția repository de conținut, câteodată numită receptorul sistemului Alfresco prescurtat în engleză ASR.Deoarece execuția conținutului repository este un server de conținut Alfresco complet, toate conținuturile publicate sunt valabile în cazul interogărilor dinamice de esență oricare tehnologie web, ca de exemplu: PHP, Python, J2EE, Ajax, Flash și așa mai departe.Se bazează pe o flexibilitate fundamentală ceea ce expune conținutul pe pagină.De asemenea, oferă un mare nivel de personalizare dar pentru acest caz se cer mai multe resurse care trebuie primite de servere pentru nivele similare sau trafic.
În zilele actuale multe website-uri adoptă o abordare hibridă cu elemente statice sau elemente dinamice.Cum se va realiza partiționarea depinde foarte mult de ce cerințe se cer și ce personalizări.
Odată ce se începe rularea unui sistem de administrare a conținutului web trebuie îndeplinite niște cerințe administative speciale.
2.5.5 Decizii privind arhitectura
În momentul când se instalează Alfresco se întâmpină câteva decizii legate de arhitectură pentru soluționare care trebuie realizate, acestea făcând referire în special la plasarea diferitelor componente ale sistemului.Locația componentelor poate avea un efect drastic privind performanțele sistemului,astfel se remarcă faptul că această alegere este foarte importantă să fie corectă.Sunt decizii care trebuie luate exact și nu este indicat să se greșească, iar pe lângă asta mai există și câteva reguli generale care asigură soliditatea și performanța arhitecturală.Cea mai bună alegere pentru rularea componentelor Alfresco este aceea de fi rulate într-un singur sistem iar ca producția să fie la cote maxime trebuie ca baza de date și serverul conținut să fie lansate de pe altă mașină.Aceste sfaturi benefice oferă o flexibilitate foarte bună în momentul configurării sistemului hardware manual.
Trebuie să se știe faptul că respectiva configurație trebuie să indeplinească cel puțin un minim de configurație pentru producție.De asemenea,configurația depinde foarte mult de scopul pentru care se folosește Alfresco.Un exemplu concret ar fi în cazul în care Alfresco ar fi folosit pentru administrarea imaginilor iar în cazul în care se dorește scanarea trebuie neapărat să se aibă în vedere alte servere pentru a hosta softwarele de scanare.În urma celor indicate, se poate concluziona că pentru o funcționare mai bună este indicată folosirea a mai multor servere dacă este permisă separarea.Sunt numeroase considerații hardware și software care trebuie luate în considerare în momentul creării infrastructurii producției Alfresco.În privința hardware-ului trebuie folosite mașinile de clasă ale serverului cu metrici de disk-uri Raid SCSI.Performanța în cadrul citirii și scrierii conținutului depinde integral de viteza internetului și de infrastructura disk-ului.
În unele cazuri trebuie încercată îndepărtarea și montarea fișierelor de sistem cât și a index-urilor textuale în cadrul unei mașini cu server de conținut peste LAN sau WAN dar acest lucru poate întâmpina probleme deoarece fișierul de sistem trebuie mereu atașat conținutului serverului pentru o viteză mare de conexiune ca ceea SCSI sau fibră.
Ideal ar fi utilizarea unui sistem de operare pe 64biți din pricina Mașinii Virtuale Java care este restricționată pâna la 2GB pe un sistem de operare pe 32 de biți.
2.5.6 În cadrul conținutului serverului
După cum se știe, conținutul server-ului este proiectat ca un număr diferit de subsisteme inter-relaționare.Un subsistem Alfresco reprezintă un modul configurabil pentru o sub-parte a funcționalității Alfresco.Aprofundând, putem considera un subsistem ca fiind o împachetare a unei zone funcționale opționale,cum ar fi legăturile IMAP sau îl putem definii ca unul folosind implementări alternative numeroase, cum ar fi antentificarea.Reprezentând o unitate, subsistemul are propriul lui ciclul de viață.Subsistemul trebuie să se închidă sau să se restarteze în timp ce serverul Alfresco rulează.Acest lucru este benefic pentru a dezactiva aspectele serverului sau pentru reconfigurarea părților din respectivul subsistem pentru a ilustra cum sincronizarea LDAP este mapată.
Fiecare subsistem suportă interfață de administrare proprie care este accesibilă prin intermediul fișierelor de proprietăți sau direct prin consola de administrare folosind Extensile de administrare Java, numit în engleză JMX.
Subsistemele sunt implementate astfel încât ar trebuii să fie numeroase instanțe de același tip unde acest lucru are sens.De exemplu trebuie să existe mai multe modalități de autentificare decât una.
2.5.7 API-uri
Pentru a extinde sau pentru a accesa serviciile out-of-the-box ale lui Alfresco, serverul aplicației de conținut al platformei expune două feluri de API-uri, fiecare fiind destinat pentru un anumit tip de client.Cele două categorii de API-uri sunt embedded și remote.
API-ul Embedded este folosit pentru dezvoltarea extensiilor aparținând serverului aplicație de conținut Alfresco.Extensiile se lansează în cadrul serverului și depind adesea de serviciile existente oferite de server.Prin urmare, dezvoltatorii de extensii folosesc API-ul Embedded pentru a avea accesul la aceste servicii.
API-ul Embedded se regășește în numeroase forme, unde fiecare formă este structurată pentru o necesitate particulară sau pentru o anumită extensie.Astfel avem de-a face cu:
API-ul Java Alfresco public constituit dintr-un set de interfețe publice Java expus de serviciile conturate în serverul aplicație de conținut Alfresco
API-ul JavaScript care este o vizualizare orientată-obiect a API-ului Fundație Java specifică adaptată pentru folosirea în JavaScript.Acestă formă poate fi structură sau împărțită în API-ul JavaScript pentru nivelul Share și API-ul JavaScript pentru nivelul repository.
API-ul FreeMarker este, de asemenea, o vizualizare orientată-obiect a API-ului Fundație Java specifică adaptată pentru folosirea în cadrul șabloanelor FreeMarker.
Definiția conținutului și definiția fluxului de lucru Prima definiție reprezintă un API pentru crearea sau editarea conținutului modelurilor iar cealălaltă este un API pentru definirea proceselor business.
Scripturile web sunt extensii populare pentru serverul de aplicație al conținutului Alfresco.Acestea permit utilizatorului să definească propriul API remote pentru clienți pentru interacționarea cu serverul de aplicație al conținutului Alfresco.Implementarea scriptului web poate să foloseacă oricare API embedded din cele enumerate anterior, și anume: API-ul Java public, JavaScript sau FreeMarker pentru propria implementare.
Dezvoltarea propriului API Remote este foarte folositoare pentru următoarele scenarii: expunerea unor noi servicii de extensie lansate în cadrul serverului de aplicație pentru conținutul Alfresco de către clienții remote, furnizarea unor dozări sau tranzacții delimitate de serviciile existente sau crearea unei fațade pentru integrarea unui tool third-party,ca de exemplu formele motorului.
Infrastructura serverului înseamnă că poate fi implementat într-un număr de medii,nu doar ca o aplicație web.În esență, serverul de aplicație de conținut Alfresco este tratat ca o bibliotecă, unde oricare dintre serviciile sale, inclusiv de depozitare a conținutului, pot fi alese independent sau amestecate pentru a oferi o soluție personalizată.Serverul poate scala în jos cât și în sus.
API-urile Remote sunt utilizate în principal pentru construirea soluțiilor ECM și se împart în trei mari categorii: API-ul Alfresco One, API-ul Repository REST și API CMIS.
Primul dintre cele enumerate a fost introdus odată cu Alfresco 4.x și a fost prezentat în cadrul unei versiunii cloud a lui Alfresco.Este recomandat pentru dezvoltarea aplicațiilor client remote în cadrul cloud-ului, on-primise dezvoltării hibrid.SDK-urile Alfresco ca de pildă: SDK Mobil pentru Android sau IOS folosesc serviciile API-ului Alfresco One.
API-ul Repository REST configurează o interfeță RESTful a repository-ului pentru aplicațiile client.Este simplu pentru clienții HTTP sau AJAX-orientat pe web pentru a comunica cu platforma.Acest API este implementat cu ajutorul scripturilor web.
CMIS este utilizat pentru transmiterea standardizată de servicii pentru funcționarea conținutul repository.
2.5.8 Protocoale
Toate protocoalele leagă dosarele expuse cât și documentele deținute de conținutul repository-ului Alfresco.Acest lucru presupune existența un tool client care accesează repository-ul folosind un protocol care poate naviga printre dosare, proprietați și conținut.Numeroase protocoale de asemenea permit actualizarea, mai permit instrumentului client să modifice structura dosarului,să creeze sau să actualizeze documentele și să scrie conținut.Unele protocoale permit interacționarea cu anumite capabilități ca de exemplu: istoricul versiunilor, căutarea și sarcinile.Pe plan intern, legăturile stabilite de protocol interacționează cu serviciile conținutului repository-ului care încapsulează comportamentul de lucru cu dosare și fișiere.Acest lucru asigură o imagine unitară și actualizarea pentru toate instrumentele client care interacționează cu serverul de aplicații de conținut Alfresco.
Subsistemul Alfresco pentru fișierele serverelor permite configurarea și administrarea ciclului de viață pentru fiecare din protocoalele prin fișiere de proprietate sau JMX.Astfel protocoalele suportate respectând condițiile necesare sunt:CIFS, WebDAV, FTP, IMAP și Microsoft SharePoint.
CIFS este protocolul care admite proiecția Alfresco ca pe un fișier unitate partajat nativ.Oricare client care citește și scrie în fișierul unității poate, de asemenea, să citească și să scrie în Alfresco.
WebDAV transmite un set de extensii către HTTP pentru administrarea fișierelor colaborative pe serverele web.Oferă un suport important pentru autorizare, scenarii ca și metadate,versionare și blocare.Instrumentele de producție a conținutului ca și Microsoft Office suite suportă WebDAV.
FTP este un protocol de rețea standard pentru manipularea și shimbul de fișiere într-o rețea.
IMAP este folosit pentru a se permite accesul la email într-un server de mail remote.Alfresco se poate spune că este un server mail care permite clienților Microsoft Outlook, AppleMail sau Thunderbird să se conecteze sau să interacționeze cu dosare sau fișiere incluse în repository-ul de conținut Alfresco.
Protocoalele Microsoft SharePoint permit platformei să acționeze ca un server SharePoint,prin integrarea ireproșabilă cu Microsoft Office suite.Un utilizator care este familiarizat cu panoul de activitate Microsoft poate vizualiza și acționa asupra documentelor deținute în cadrul depozitării conținutului Alfresco.
CAPITOLUL 3: CONTENT MODEL ȘI PACHET ROMÂNĂ
În cadrul capitolului 3 o să se aprofundeze noțiuniile necesare, indispensabile care au stat la baza realizării aplicației și care au ajutat la elaborarea unui proiect amplu, bine structurat și elabora..
Pentru a întelege noțiunea de content models mai bine, se va puncta noțiunea de interfață SHARE în cadrul căreia se costumizează content models și pe lângă asta se vor puncta principalele elemente definitorii ale interfeței.
O altă realizare importantă care ajută foarte mult la dezvoltarea platformei în cadrul teritoriului românesc este crearea pachetului de traducere în limba română care presupune atragerea atenției pentru diferite organizații cărora le este mai ușor de intuit folosința aplicației în cadrul demersurilor proiectuale care le au la bază și care pot pe parcurs să își dea seama de necesitatea aplicației și să dorească și să propună firmelor de IT și nu numai, un tool necesar.
Pe lângă cele două teme abordate, reprezentând temelia și punctele de plecare în cadrul unei realizări ample, se vor mai descoperii pe parcurs numeroase modificări suportate de platformă care vor fi de asemenea foarte importante.
3.1 Interfața Share
Share-ul este o interfață utilizator de colaborare care conferă organizației accesul la repository-ul Alfresco.Cu toate că sunt mai multe posibilități de accesare a repository-ului, Share-ul Alfresco este cea mai bună alegere deoarece este cea mai flexibilă și funcțională interfață pentru care Alfresco oferă sau este locul unde se pot executa funcții administrative.
Multe organizații folosesc interfața Share, o interfață intuitivă care ajută foarte mult la dezvoltarea aptitudinilor și întelegerea conceptului Alfresco.Odată ce se vor înțelege toate elementele interfeței, Alfresco va fi ușor de costumizat.
În momenul colaborării folosind Share-ul în cadrul repository-ului Alfresco procesul de colaborare se rezolvă conturând un site.Site-urile pot fi publice sau private și o să aibă la bază un număr de componente destinate colaborării, ca de exemplu: wiki-urile, blog-urile, discuțiile pe forum, calendarele, link-urile și librăria de documente.Oricare documente create în cadrul site-ului o să apară în repository și în cadrul site-ului toate blog-urile, paginile wiki și alte elemente.
Cel care are dreptul deplin de control asupra tuturor funcționalităților este ownerul sau administratorul.Site-urile pot avea oricât de mulți membri, acestia fiind niște utilizatori ai repository-ului Alfresco iar un utilizator poate fi membru al oricărui site.În momentul în care site-ul este privat, utilizatorii trebuie să fie invitați să devină membri ai site-ului și să vizualizeze conținutul.
Doar dacă se lansează modulul de administrare a înregistrărilor în cadrul organizației se poate vedea implementat un site special Share în cadrul căruia se găsesc funționalități speciale găsite doar în cadrul acestuia.
Un utilizator poate să caute în cadrul unui site ceea ce dorește sau chiar aplicând căutarea pentru toate site-urile pentru care acesta reprezintă un membru.Căutarea globală nu împiedică permisiunile, deci rezultatele care se vor găsi sunt doar cele publice care sunt la îndemâna tuturor utilizatorilor.
Repository-ul Alfresco suportă noțiunea de librărie globală de document, documente care există în respectiva librărie și sunt accesibile pentru oricare.
3.2 Framework-ul Spring
Framework-ul Spring este un framework de aplicație care are la bază Java/JEE și care are ca obiectiv să realizeze J2EE mai ușor de folosit și să promoveze bune practici de programare.Acest lucru se realizează prin folosirea modelului de programare bazat pe POJO care rămâne fidel ideilor fundamentale ale expertului unu-pe-unu J2EE de design și dezvoltare.Spring-ul este portabil între serverele de aplicație.
3.2.1 Înterprinderea Bean
Un spring denumit BeanFactory este o întreprindere generică care angrenează obiecte care pot fi regăsite după nume și care pot administra relații între obiecte.Bean-urile sunt definite în cadrul unei definiții bean XML care este încărcată când o întreprindere Bean este creată.O clasă simplă JavaBean arată astfel:
package exemplu_beansimplu;
public class Bean
{
}
Pentru definirea unui beans Spring se va folosi aceeași clasă și va arăta de forma:
<beans>
<bean id=”bin_nr_1”
class=”exemplu_beansimplu” />
<bean id=”bin_nr_1_multiplu”
class=”exemplu_beansimplu”
singleton=”false” />
</beans>
3.2.2 Inversarea controlului
Prin intermediul conceptului de întreprindere bean, Spring-ul este un recipient de inversare a controlului care este indentificat îndeaproape cu o înfățisare a inversării controlului cunoscută sub numele de Injecție de dependență.Conceptul din spatele acestui control este adesea exprimat pe calea unui principiu al Hollywood-ului și anume „Nu mă suna, Te sun eu”.Inversarea controlului presupune mutarea responsabilității pentru lucrurile care se petrec în cadrul framework-ului și în afara codului aplicației.În timp ce codul apelează librăria cu clasa tradițională, framework-ul apelează codul trimis.
Injecția cu dependență este o formă a framework-ului care îndepărtează explicit dependențele din recipient API-urilor.Metodele Java obișnuite sunt folosite pentru injecția cu dependențe ca de exemplu obiectele de colaborare sau valorile de configurație într-o aplicație cu instanțe obiect.Cele doua injecții de dependentă prezente sunt: injecția setter și injecția contructor.
Pentru prima categorie, JavaBean suportă proprietăți.Valoarea lor este setată de întreprinderea Spring Bean în momentul în care bean-ul este instanțiat. Un exemplu de clasă JavaBean va arăta de forma:
package exemplu2_setter;
public class Bean
{
public void setString(String valoare)
{
string_val = valoare;
}
public String getString()
{
return string_val;
}
public void setInt(int valoare)
{
integer_val = valoare;
}
public int getInt()
{
return integer_val ;
}
public void setList(List sir)
{
sir2 = sir;
}
public List getList()
{
return sir2;
}
private String string_val;
private int integer_val;
private List sir2;
}
Definirea beans Spring presupune folosirea metodelor „setter” și arată astfel:
<beans>
<bean id=”bean” class=”exemplu2_setter”>
<property name=”string”>
<value>un string</value>
</property>
<property name=”int”>
<value>1000</value>
</property>
<property name=”list”>
<list>
<value>numarul1</value>
<value>numarul2</value>
<value>numarul3</value>
</list>
</property>
</bean>
</beans>
Injecția constructor are clasa JaveBean de forma:
package exemplu3_constructor;
public class Bean
{
public Bean(String valoare)
{
valoare_string=valoare;
}
public String getString()
{
return valoare_string;
}
public void setInt(int valoare)
{
valoare_int=valoare;
}
public int getInt()
{
return valoare_int;
}
private String valoare_string;
private int valoare_int;
}
Definirea Spring beans pentru categoria constructor:
<beans>
<bean id=”bean” class=”exemplu3_constructor.Bean”>
<constructor-arg index=”0”>
<value>sir</value>
</constructor-arg>
<property name=”int”>
<value>1000</value>
</property>
</bean>
</beans>
3.2.3 Conținutul aplicației
Pentru a începe folosirea Spring-ului trebuie instanțiat Spring-ul BeanFactory sau ApplicationContext.Conținutul aplicației este derivat din BeanFactory și prevede toate
funcționalitățile BeanFactory și totodată mai include: Sursa mesajelor, accesul la resurse, implementarea interfeței listener-ului de aplicație cât și încărcarea conținuturilor multiple.
Conținutul aplicației web este asemănător conținutului aplicației simple, singurele modificări apărute sunt anumite actualizări necesare pentru aplicațiile web.Acest conținut este legat de conținutul servlet-ului și este creat de un listener de încărcare a conținutului.
Acest listener de încărcare a conținutului numit și ContextLoaderListener se găsește în WEB-INF/web.xml și este declarat sub forma următoare:
<listener>
<listener-class>
org,springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
3.3 Utilizatori și grupuri
În această secțiune o să se aibe în vedere crearea și administrarea utilizatorilor și grupurilor în cadrul Alfresco și de asemenea se vor puncta legături importante ca de exemplu între utilizatori și roluri și modul de autentificare în final punând în prin plan legătura de bază și anume legătura utilizatori-grupuri.
Platforma acceptă o accesarea intensă a utilizatorilor care pot fi într-un număr foarte mare.Acești utilizatori pot fi grupati în grupuri cărora li se pot asigna fluxuri de memorie pentru executarea unor task-uri.
În cadrul acestui subiect care are la bază utilizatorii și grupurile se vor puncta noțiunile de bază ca și roluri sau autentificare care duc la o bună funcționalitate.
3.3.1 Utilizatori
Pentru ca o persoană să acceseze Alfresco, aceasta trebuie să figureze în baza de date a platformei Alfresco ca membru activ, acestă situație descriind autoritatea utilizatorului în cadrul Alfresco.Fiecare persoană trebuie să își creeze propriul cont de logare pentru a avea acces, în caz contrat nu se poate accesa platforma.Referitor la utilizatorul admin care administrează conținutul aplicației, acesta este creat în momentul instalării aplicației care deține privilegii de sistem și de asemenea contul poate fi folosit pentru task-uri administrative.Având drepturi de administator, ai deplină libertate de a costumiza sau de a adăuga un număr dorit de utilizatori care se pot sincroniza și extern cu ajutorul bazei de date, folosind fișierul XML care va fi integrat în cadrul bazei de date.
O remarcă importantă este atunci când se dorește o sincronizare externă și nu o creare directă creionând un utilizator și o parola specifică.Acestă sincronizare externă presupune utilizarea unui sistem specializat extern pentru transferarea datelor dintr-un fișier XML și anume LDAP sau Active Directory.Sunt necesare cele două sisteme datorită faptului că în momentul în care se vor transfera utilizatorii pe cale externă, parolele respectivilor vor putea fi administrate doar în cadrul sursei externe nu și intern, unde Alfresco nu ar putea avea acces.
3.3.2 Grupuri
Alfresco permite în mod corespunzător folosirea utilizatorilor pentru crearea grupurilor al cărui nume fiind unul sugestiv care ar face referire la colecția de utilizatori.Utilizatorii pot să aparțină mai multor grupuri, nu numai unuia iar pentru început grupul creat de obicei conține pe Michelle.De asemenea, în cazul în care structura grupurilor este sub forma de grup în grup, din start va aparea grupul Executive conținundu-l pe Sebastian și grupul Human Resources.Rolul principal al acestor grupuri de utilizatori este acela de a organiza utilizatorii cât mai bine.Grupurile permit transmiterea abilităților membriilor, rapid și ușor, în spatiul specificat respectivului grup.Odată ce un grup este creat, administrarea numarului de membrii este generat în urma invitărilor și stergerilor utilizatorilor.
Inițial fiecare membru în parte are la început abilități de vizitator și este inclus într-un grup creat la început de platformă numit Everyone.Un beneficiu este grupul inițial ALFRESCO_ADMINISTRATORS care a fost creat cu scopul de a ușura munca de administrare a adminului pentru a alege administratori.În momentul în care se creează un proiect web și un utilizator primește cerere de a se alătura, acest utilizator este automat pus într-un grup creat automat în consola de administrare pentru proiect.
Membrii proiectului web trebuie, de asemenea, administrați în cadrul proiectului web și nu în cadrul consolei de administrare.
3.3.3 Autentificarea
Alfresco suportă o gamă largă de mecanisme de autentificare odată cu instalarea out of the box se va folosi mecanismul de autentificare Alfresco.Se pune în prim plan opțiunea de configurare a sistemului astfel încât responsabilitatea de autentificare se va delega într-un server central extern de registru pentru a șterge necesitatea de înregistrare manuală a utilizatorilor în consola de administrare.
Autentificarea Alfresco este prevăzută cu un set de module software configurabile numite subsisteme.Un subsistem de autentificare este o stivă coordonată de componente compatibile responsabile cu furnizarea funcționalității de autentificare a lui Alfresco, platformă care oferă mai multe alternative de implementare a subsistemului de autentificare, fiecare proiectat pentru a lucra cu unele dintre diferitele tipuri de servere de autentificare back-end.
De-a lungul timpului, Alfresco avansând la versiuni mai noi ale platformei a inovat diverse module printre care și subsistemului Alfresco de autentificare care a devenit un modul mai stabil și bine structurat având în prim plan: evitarea nevoii de configurare a șablonului, s-au diminuat problemele de compatibilitate, parametrii comuni sunt specificați într-un singur loc și astfel se evită modificarea lor în mai multe părți, deci se poate spune că se ușurează acest lucru, nu mai este nevoie de editare a fișierului web.xml care deține filtre generice și se poate trece de la un tip de autentificare la altul prin activarea simplă a subsistemului dorit.
Un număr important de tipuri de subsisteme alternative de autentificare există pentru numeroasele protocoale comune de autentificare.Acestea includ: LDAP, Active Directory, Windows Domain server, Kerberos realm, autentificarea externă proprie.
Subsistemul LDAP suportă două funcții principale: autentificare utilizator și registru export utilizator care pot fi folosite separat sau combinate.În momentul folosirii autentificării LDAP fără exportul de regiștri, obiectele persoane inițiale ale lui Alfresco sunt create automat pentru utilizatorii care se loghează.
Active Directory este adesea utilizat pentru eliminarea conturilor de bază și a non-utilizatorilor.Este nevoie de utilizarea permisiunilor speciale în cadrul Active Directory pentru acontul care se folosește LDAP.
Kerberos este util față de LDAP și Active Directory datorită faptului că acest subsistem folosește o criptare puternică prin folosirea protocolului SSL cunoscut ca un protocol necesar pentru securizare.
Dintre acestea, majoritatea dintre ele suportă doar un singur sign-on care activează automat această înregistrare folosind acreditarea sistemului de operare pentru eliminarea necesităților pentru o pagină de logare.De asemenea, câteva dintre ele sunt folosite pentru a permite autentificarea CIFS.
Subsistemele de autentificare sunt situate în : tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems și sunt alcătuite din principalele componente:
o componentă de autentificare care preia specificul sistemului de autentificare back-end
obiect de accesare a datelor de autentificare (DAO în engleză) care decide care funcții de administrare sunt permise și ce abilități sunt pentru crearea unui utilizator.
un serviciu de autentificare care întregește componenta de autentificare și DAO cu funcții de nivel superior.
un serviciu de export pentru regiștrii utilizatorului care expune informații despre utilizatori și grupuri
filtre de autentificare bazate pe funcții de conectare pentru : Web Client, DAV Web, Scripturi Web și protocolul SharePoint.
autentificatori server de fișiere care furnizează funcții de autentificare pentru: Protocolul CIFS sau Protocolul FTP.
Pentru configurarea subsistemului de autentificare în folderul shared se vor edita două fișiere : ldap-autentification.properties și ldap-autentification-context.xml localizate în $TOMCAT_HOME/shared/classes/alfresco/subsystems/Authentification/ldap/mydap și se va modifica calea importului adăugând calea corespunzătoare editărilor anterioare.În final se va adăuga myldap:myldap în authentication.chain și se va restarta Alfresco.
3.3.4 Roluri
În momentul în care se utilizează Share pentru conlucrarea permisiunilor grupurilor Alfresco în roluri, se permite de asemenea setului de permisiuni să fie atribuit ușor unui utilizator.Un utilizator poate să aibe multiple roluri deoarece un rol este atribuit unui utilizator când este invitat să adereze la site în Share.Modulul de administrare a înregistrărilor implementează propriul rol special în cadrul site-ului care este difinit de administrator și schimbă accesul funcțional pentru utilizatori.Rolurile Alfresco sunt clasate sub forma unei ierarhii, cel mai mic level este consumatorul(consumer), apoi contribuitorul(contributor) care are permisiunile sale personale incluzând cele ale consumatorului.
Un consumator poate să vadă toate documentele și conținuturile dintr-un site ca de exemplu bloguri, pagini wiki și de asemenea poate să asigneze fluxuri de lucru pe fișiere.Un contribuitor poate să creeze în plus fișiere ca de exemplu documente și pagini wiki dar nu poate să schimbe conținutul fișierelor care au fost create de alte persoane.
Un colaborator are dreptul de a edita conținutul existent chiar dacă nu a fost creat de el însăși.Un alt adaos de care beneficiază un colaborator constă în faptul că are posibilitatea de a administra aspecte și de a schimba tipul.Pe departe, cel mai privilegiat rol este acela de manager care poate să invite alte persoane să facă parte din grupul de utilizatori ai site-ului și poate să decidă ce roluri le încredințează acestora.Se mai poate schimba și conținutul obiectului chiar dacă nu a fost creat de el și cel mai important fapt este că se pot schimba detalile site-ului care includ costumizarea dashbord-ului.
Deținătorul(owner în engleză) este tratat ca un manager care poate schimba conținutul fișierelor create.Un utilizator în momentul în care dorește crearea unui site acesta devine automat managerul site-ului.
3.4 Securitatea și permisiunile
Alfresco furnizează un model de securitate sofisticat și flexibil care trebuie privit dintr-o perspectivă la nivel înalt.Modelul de securitate este simplificat prin folosirea rolurilor și permisiunilor grupurilor.Conținutul stocat în cloud care este accesat offline este protejat de utilizatorii care doresc să acceseze conținutul care nu le aparține.
Toate fișierele încărcate și descărcate din cloud sunt criptate SSLfolosind criptarea AES 256.Conexiunea SSL este foarte protejată având în prim plan tehnologia HTSTS care asigură tranziția numai pe calea HTTPS nu HTTP și tehnologia PFS care întărește și mai mult SSL.
Având în lumină noțiunea de permisiune, se poate spune că acest termen le conferă utilizatorilor posibilitatea de a ascunde foldere sau fișiere de anumiți utilizatori, sau chiar posibilitatea doar de citire a unor documente.Fiecare fișier sau dosar poate avea permisiunea sa individuală care este setată după dorința deținătorului și ale celor care pot.Pentru a ușura munca se pot grupa utilizatorii în grupuri și se poate stabili permisiunea la nivel de grup.
3.4.1 Liste de control al accesului
O listă de control al accesuluieste o listă ordonată de intrări de control al accesului (ACE în engleză) care asociază o singură autoritate a unui singur grup de permisiuni sau simpla permisiune și constată dacă permisiunea trebuie să fie permisă sau refuzată.Toate nodurile au asociat o LCA(ACL în engleză) care este definită într-o configurare XML care să suporte permisiunile globale.Un LCA, de asemenea, specifică dacă ACE-urile sunt moștenite de la un părinte LCA care este asociat cu părintele primar al nodului.În momentul creării unui nod, acesta moștenește automat toate ACE-urile definite în părinte în cadrul căruia este creat.Dacă un nod este legat de un părinte secundar nu o să aibe niciun efect modificările suferite la nivelul părintelui secundar ci cele petrecute la părintele principal.
În mod implicit,LCA moștenește întotdeuna de la părintele primar iar proiectarea și punerea în aplicare care stau la bază nu prevăd acest lucru.LCA nu urmează relația părinte copil în cadrul procesului de moștenire dar există totuși posibilitatea prin Java API dar nu prin administrarea de pagini Share sau Explorer.
Tipurile de ACL sunt numeroase și se împart în: definire, partajare, fixare și global.O listă de control al accesului are la bază LCA-uri de definire care includ toate ACE-urile moștenite de la nodul primar părinte dacă moștenirea este activă.Acest tip de LCA este asociat tipului de partajare care include toate ACE-urile moștenite de cele de definire.LCA-urile fixe nu sunt asociate unui nod anume dar se pot găsi după nume.Un caz aparte pentru LCA-urile fixe sunt LCA-urile globale care sunt o formă specială a celor fixe dar au un nume cunoscut.
Toate obiectele din repository-ul Alfresco au un LCA chiar dacă nu se vede.Abilitatea de a administra permisiunile este valabilă pentru administrator,proprietar și cei cu drept de coordonare.
3.5 Configurația Repository
În cadrul acestui mare punct care implică cunoașterea unui termen important și anume repository o să se puncteze noțiuniile care conturează repository-ul:
configurația repository-ului
extensiile
modele de conținut ( content models)
fluxuri de lucru
erorile de logare
3.5.1 Configurația
Toate elementele care se pot configura în Alfresco se configurează prin intermediul fișierelor properties ale fiecărui element.Alfresco adesea depozitează informațiile de configurarea în fișiere de configurare Spring sau fișiere de configurare XML aparținând platformei Alfresco.Acest spațiu destinat acestor două fișiere este cu precădere valabil pentru dezvoltatori nu pentru administratori.
În unele cazuri există posibilitatea ca aceste fișiere să fie configurate prin simpla modificare în interiorul fișierelui asta depinzând de detaliile de conectare asupra bazei de date, de locația fișierelor sau de autentificarea care este pusă în aplicare și cum interacționează Alfresco cu email-ul.
Content model-ul care este o formă mai avansată de modificare a fișierelor este redactată în XML.Trebuie știut de la început faptul că etapa de instalare este un moment crucial în stabilirea setărilor platformei, astfel spus odată ce se vor alege unele setări în timpul instalării acestea vor rămane.Content model-ul este un caz special de configurare destinat dezvoltatorilor care știu exact ce este de realizat pentru a obține un modul compatibil și funcțional.
Odată cu startarea serverului o să se încarce pentru prima dată fișierul de aplicație Spring care va încărca toate celelalte fișiere de configurare ale sistemului.Acest fișier care are un rol esențial pentru funcționalitatea platformei se poate găsi la calea: {configRoot}/alfresco/aplication-context.xml.În același director este și core-services-context.xml care ajută la încărcarea celorlalte fișiere de proprietăți.
Sistemul de configurare Alfresco a fost creat pentru a fi extensibil și modificabil.Astfel, din această afirmație se poate prevesti faptul că platforma are două tipuri de fișiere de configurare Spring, unul de configurare și altul de extensie.Fișierul de configurare se găsește în cadrul tomcat-ului în webapps/alfresco în WEB-INF iar celălalt de extensie în shared în classes.
Recomandabil pentru platformă este ca în momentul în care un utilizator dorește să modifice unele setări, acestea să nu se suprascrie peste cele inițiale deoarece pot apărea erori.
Configurarea Spring presupune setarea directă în JVM a proprietăților sistemului ca de exemplu:set JAVA_OPTS=-Ddir.root=e:/alfresco/data
3.5.2 Extensii
Se pot folosi numeroase metode de extindere a lui Alfresco cu noua funcționalitate schimbându-se comportamentul de funționare existent prin fișierele de proprietăți.Recomandat ar fi ca mecanismul de extensie prevăzut care se găsește în Alfresco în web-extension, respectiv în extension să fie folosit deoarece este în afara standardelor de aplicație web fiind necesară doar actualizarea și este recomandat datorită faptului că se poate instala un nou alfresco.war iar aceleași extensii pot încă funcționa fără schimbările și acțiunile viitoare supuse de administrator.
Extensiile dinamice pot fi lansate imediat în timp ce Alfresco rulează, eliminând nevoia de repornire a serverului care necesită timp îndelungat.Acest lucru face ca dezvoltarea și desfășurarea să fie mult mai ușoare și rapide, menținând în același timp beneficiile utilizării Java, în ciuda facilităților de scripting Alfresco care sunt niște mijloace tradiționale.Aceste extensii sunt stocate ca documente în repository-ul Alfresco și pot fi gestionate prin intermediul Share-ului, Web Client-ului sau oricare din sistemele de fișiere acceptate ca de exemplu FTP. Pur și simplu se vor încărca în secțiunea Alfresco Extensions în Data Dicționary și funcționalitate se va remarca imediat.
Modulul de pachete Alfresco (AMP în engleză) este recomandat ca fiind soluția de împachetare a extensiilor și modificăriilor care conține fișiere zip care urmează o schemă specifică și care pot fi fuzionate cu alfresco.war și/sau share.war folosind un tool.
Un fișier AMP este o colecție de cod, XML, imagini și CSS care extinde funcționalitatea colectivă sau oferă posibilitatea de a arăta datele furnizate de repository.Fișierul este în sine un fișier ZIP deținând o structură internă a unui dosar predeterminat și este un fișier de configurare cu cerere minimă de resurse.Acest AMP este aplicat fișierelor WAR care sunt apoi reluate în serverul de aplicație.
Sunt și dezavantaje în ceea ce privește folosirea AMP deoarece toate fișierele care vor fi încărcate pe server vor rămane stabile fără a exista posibilitatea de revenire și reîncărcare a celor vechi.
Din privința asta, extensiile apar ca o parte a aplicației web Alfresco care se localizează în dosarul tomcat în webapps/(alfresco sau share).Repository păstrează regiștrii modulelor de instalare și versiunea lor de asemenea, activează modulele pentru a fi actualizate independent de fișierul WAR.
Multe medii de dezvoltare folosesc un proces de construire pentru a putea executa un script de mutare a fișierelor care nu sunt dezpachetate din sursa provenită în fișierul war al aplicației web.În acest caz se folosesc ant, bash, limbaje de scripting care pot fi oportunități pentru a realiza dezpachetarea.Însă cel mai folosit la momentul actual este Maven care prinde proporții datorită caracteristicilor care-l recomandă având în principal simplitate și optimizare.
JAR-urile au de asemenea un rol important deoarece permit multiplelor costumizări să fie izolate una de alta iar ordinea de selecție să fie prezisă.Fișierele statice ca de exemplu fișierele Javascript sau CSS sunt și acestea împachetate în JAR-uri.
Este recomandat ca respectivele JAR-uri să fie incluse în AMP-uri și să fie lansate în execuție cu ajutorul fișierului share.war.
3.5.3 Modele de conținut
Modelele de conținut sunt blocuri de construcție fundamentale ale repository-ului de conținut Alfresco care vor fi tratate la un nivel înalt în cadrul repository și apoi se vor explica amănunțit într-un subcapitol special dedicat numai acestora.
Acest model este definit ca un document XML care conține un set de definiții aliniate și coerente care sunt lansate ca o unitate.Numeroase modele trebuie lansate în repository-ul de conținut și definițiile într-un model de conținut pot depinde de definițiile ale altui model, permis pentru partajarea de definiții.
Se desting două abordări pentru lansarea modelului în interiorul repository-ului și anume : bootstrap și dinamice.Abordarea bootstrap invocă modificarea fișierelor XML de configurare din cadrul repository-ului Alfresco pentru ca să se înregistreze în modelul de conținut astfel încât în momentul startării repository-ului de conținut, modelul se citește, se validează și se înregistrează.Aceste tipuri de fișiere cu extensia .xml sunt plasate într-un classpath.
Abordarea bootstrap, pe langă cele spuse anterior, aceasta mai are capacitatea de schimbare a definiților modelului prin fișier XML al modelului și care sunt înregistrate după restartarea repository-ului.Testarea durează foarte mult în cadrul abordării bootstrap și de accea și poate spune că este favorabilă doar pentru mediile de producție odată ce modelul este lansat de o echipă de dezvoltare.
Pentru dezvoltatori cealălaltă abordarea, cea dinamică este o alternativă bună care nu necesită restartarea repository-ului în momentul actualizării sau înregistrării.Pentru abordarea dinamică nu se mai modifică fișierele XML și se vor pune în classpath, în cazul acesta se vor plasa în folderul acasă al companiei în data dictionary.
În momentul în care se dorește modificarea sau actualizarea unui fișier XML reprezentând modelul, în mod implicit, nu va fi acttivă modificarea deoarece trebuie ca aceste modificări necesită să fie urmate de un deploy.
Este benefică abordarea dinamică datorită faptului că serverul nu se resetează dar și această abordare are dezavantajele ei care includ restricții de modificare asupra documentului ca de exemplu: un document poate fi șters doar dacă nu este folosită data lui în altă parte.
3.5.4 Fluxuri de lucru
Fluxurile de lucru în Alfresco sunt definite ca procese de definire.Ca și la modelele de conținut de asemenea și fluxurile de lucru sunt lansate folosind modelul bootstrap sau modelul dinamic.Pentru lansarea dinamică se folosește fie Eclipse IDE sau consola de flux de lucru.Restricțiile pentru abordarea dinamică sunt mai puține pentru fluxuri de lucru față de restricțiile modelului de lucru și deci sunt benefice și pentru mediile de producție.
Procesele de definire pot de asemenea să fie lansate prin fișierele de configurare pentru păstrarea consistenței.
Începând de la versiunea 3.4.e a lui Alfresco Community se poate lansa procesul de definiții Activiti pentru a specifica fluxurile de lucru.Motorul Activiti BPMN 2.0 BPM este integrat în Alfreco spre deosebire de vechiul motor jBPM.Ambele motoare de flux de lucru sunt încapsulate în serviciul flux de lucru care oferă o interfață standard de la motorul flux de lucru de bază.
Toate definițiile de proces sunt scrise în BPMN 2.0 și sunt lansate și administrate exact cum se practicau la jBPM.Alfresco de asemenea oferă posibilitatea utilizatorilor de a folosi template-uri de procese predefinite.
Activiti este un flux de lucru ”light-weight” și o platformă BPM care administrează procesele business cu precădere este necesar oamenilor de afaceri, dezvoltatorilor și administatorilor de sistem.Se confirmă faptul că Activiti are unul din cel mai rapid motor și de încredere numit BPMN 2 pentru Java.Activi este open-source și este distribuit sub control unei licențieri Apache.
Este ușor de utilizat și este bazat pe standarde deschise având scopul de integrare rapidă cu aplicațiile Spring cum este Alfresco.
BPMN 2.0 care semnifică notația de modelare a procesului de business este un standard deschis dezvoltat de grupul de administrare a obiectului care transmite o notație care este ușor de înțeles de utilizatorii pasionați de afaceri: analiști de afaceri care se ocupă de procese, dezvoltatori care implementează tehnologia pentru a duce la bun sfârșit procesele și oameni de afaceri care administrează și monitorizează procesele.
De asemenea, BPMN creează o punte standardizată pentru diferența dintre design-ul procesului business și procesul.Prima versiune a BPMN-ului specifică definirea numai grafică a notației dar ușor a devenit repede populară în cadrul analiștilor de afaceri.Conceptele ca și : sarcină umană, script executabil sau decizie automată sunt vizualizate pe o cale standardizată.Cea de-a doua versinea extinde standardul pentru a include semantica de execuție și un format de schimb comun.
BPMN 2.0 are la bază modelele de definire a procesului care se pot schimba între editoare grafice și se pot executa pe orice motor compatibil BPMN 2.0.
Definiția procesului Activiti descrie evenimente, activități și portaluri ale unui flux de lucru.O sarcină poate fi adresată unui utilizator sau o sarcină de script referitoare la sistem care are o descriere care are la bază un nume, titlu și niște proprietăți cu asocieri
Un proces de definire BPMN 2.0 este manual creat într-un editor XML și nu numai, se poate crea folosind un modelator de procese de afaceri folosit în Java și anume Activiti Eclipse Designer.Se pot utiliza definițiile de proces furnizate în Alfresco pentru fluxurile de lucru preconfigurate.
3.5.5 Eroare de logare
Alfresco folosește tipul de logare log4j care este un tool open source care permite dezvoltatorului sau administratorului să controleze declarații de logare care trebuie să iese cu granularitate arbitrară.Este maxim configurabilă și rulabilă folosind fișiere de proprietăți externe și este de asemenea foarte important cum sistemul respectiv funcționează, indiferent dacă este vorba de administrator sau dezvoltator deoarece la un moment dat totuși trebuie testată aplicația dacă are erori de logare.
Fișierul care controlează logarea log4j este denumit ca și log4j.properties și se poate găsi în dosarul tomcat în webapps la alfresco/WEB-INF în dosarul classes.În fișierul respectiv, logarea este setată sa producă un fișier numit alfresco.log în dosarul instalării și totodată este specificată de fiecare dată noua creare a fișierului alfresco.log cât și încetarea modificărilor la nivelul fișierului.
Apache log4j este o utilitate de logare bazată pe Java dezvoltată de Foundația Apache Software datorită faptului că log4j este un framework de logare Java foarte important și prielnic unei dezvoltări ample.Versiunea la care au ajuns cei de la Apache este versiunea 2.0care oferă îmbunătațiri semnificative față de predecesorul Log4j 1.x în ceea ce privește Logback-ul.
3.6 Model de conținut (content models)
Introducere
Alfresco este o soluție de extindere care permite utilizatorilor să creeze și să administreze conținutul cuprins de o varietate de interfețe.Pentru definirea conținutului aparținând repository-ului, Alfresco oferă un meta-model bogat care conferă dezvoltatorilor și experților abilitatea de a descrie și de a defini tot conținutul stocat și administrat de Alfresco.
Conținutul în Alfresco este definit în termini de conținut și proprietăți.Diferența între conținut și proprietăți constă în faptul că acest conținutul este un conținut binar creat și adăugat în Alfresco spre deosebire de proprietăți care descrie conținutul în termeni de metadate.Pentru un document încărcat, fizic vorbind este un conținut iar descrierea, titlul și autorul de exemplu sunt proprietăți.
Pentru modelarea unui conținut se folosesc documente XML care au la bază tipuri și aspecte și care folosesc constrângeri și asocieri.Proprietățile descriu tipurile și aspectele și sunt foarte necesare pentru a cunoaște valorile acestora.Tipul oferă structura sau scheletul pentru crearea unui conținut iar aspectele sunt o colecție de proprietăți, constrângeri, asocieri sau aspecte obligatorii care se pot folosi după crearea tipul în cadrul unor reguli stabilite sau selectate manual.
Constrângerile pot fi definite în beneficiu întrebuințării necesare în cazul în care se dorește cunoașterea valorilor de intrare cat mai clare.Tipurile de constrângeri sunt în număr de patru: REGEX, LIST, MINMAX, LENGTH unde fiecare având rolul său important.Constrângerile se pot administra și modifica folosind limbajul de programare Java.
Asocierile având un nume sugestiv definesc relațiile, asocieriile unui conținut cu alte conținute.Sunt două tipuri de asocieri:una care se referă simplu la o asociere și alta care se referă la o asociere de tip copil.
Defapt, o asociere realizează o relație strânsă între două conținuturi care în cazul în care sunt asociate simplu un conținut poate prelua imaginile de exemplu ale altui conținut iar în cazul în care se stabilește o relație tată-fiu și conținutul tatălui este șters atunci și conținutul fiului este șters.
3.6.1 Modele de domeniu Alfresco
Alfresco pune la dispoziție numeroase modele de domenii care definesc construcții de administrare, fișiere, dosare, persoane și forumuri precum și tipuri de date sau difiniții de permisiuni.Tipurile de modele de domeniu sunt: modelul de domeniu conținut, modelul de domeniu dicționar, modelul de domeniu de sistem și modelul de domniu de aplicație.
Aceste modele vor fi incluse într-un fișier care va fi creat special pentru a acapara toate fișierele care descriu modelul în XML.Modelul de domeniu conținut este descris printr-un fișier contentModel.xml care va conține tipul de conținut inițial denumit ca și cm:content dar și tipul cum ar fi cm:folder care conferă funcționalitatea aspectelor și constrângerilor sau tipuri care permit moștenirea modelului sau crearea unuia nou.
Rolul modelului de domeniu dicționar Alfresco este de a defini în cadrul lui toate tipurile și aspectele pentru a funcționa la parametri normali, altfel acestea vor fi create inutil fără a putea fi folosite.
3.6.2 Crearea unui model nou
Pentru crearea unui nou model primul pas ar fi crearea unui fișier XML care va conține în interiorul său pe primele rânduri numele fișierului, descrierea și importurile.Odată rezolvate aceste prime cerințe mai departe se vor aprofunda următoarele secțiuni care vor include tipurile, aspectele și constrângerile.
Ca oricare fișier XML care trebuie să îndeplinească o anumită structură, acesta trebuie să ofere o structură schemă .xsd care definește toate elementele și atributele conturate pentru realizarea modelului propus.
Modelul va conține de obicei un nume asociat modelului împreună cu atribut xmlns care va face referire la un URI a modelului dicționar Alfresco.
În cazul modelului creat și costumizat la standardele cerute în scopul realizării unei aplicații stabile pentru lucrarea de licență o să se expună exemplele din cadrul acestui model.
Astfel pentru numele modelului și pentru xmlns care implică definirea unui model a fost redactat următorul rând:
<model name=”sc:somecomodel” xmlns=”http://www.alfresco.org
/model/dictionary/1.0”>
În continuare se va exemplifica descrierea modelului care nu este obligatorie dar care poate avea în compoziție în cazul în care apare: o descriere, un autor, data creării și versiunea elementelor.Aceste informațiicare nu afectează în niciun fel Alfresco în cadrul modelului creat sunt sub forma următoare:
<description>Model Alfresco</description>
<author>Marin Dumitrescu</author>
<version>1.0</version>
Importarea altor modele în cadrul propriului model creat presupune folosirea acestora cu ajutorul unor spații de nume (namespace) recunoscute printr-un prefix.
Exemplul din cadrul propriului model arată astfel:
<imports>
<import uri=”http://www.alfresco.org/model
/dictionary/1.0” prefix=”d” />
< import uri=”http://www.alfresco.org/model
/content/1.0” prefix=”cm” >
<import uri="http://www.alfresco.org/model
/system/1.0" prefix="sys"/>
</imports>
Toate modele au în mod obligatoriu definit un namespace care trebuie să nu mai fie folosit de alt model și care indică faptul că fiecare model este unic prin crearea lui față de celelalte modele.
Namespace-ul creat pentru modelul elaborat este:
<namespaces>
<namespace uri=”http://www.someco.com/model
/content/1.0” prefix=”sc” />
</namespaces>
Proprietăți
Fiecare proprietate trebuie să fie unică în felul ei printr-un nume și un marcaj special opțional cu un titlu și descriere.În momentul în care se specifică o proprietate trebuie neapărat definit tipul datei pentru care repository suportă o gama largă ca de exemplu:d:text, d:int, d:long, d:float, d:double, d:date, d:datetime, d:boolean, d:content, d:mltext și d:any.
În cadrul modelului propriu creat se exemplifică o proprietate cu numele versiune care are ca prefix dm ca fiind un tip de dată importat în cadrul modelului.
Exemplu este sub forma următoare:
<property name=”sc:version”>
<type>d:text</type>
<mandatory>true</mandatory>
<multiple>true<multiple>
</property>
Pe langă tipul datei acest exemplu de proprietate mai conține și mandatory alături de multiple.În momentul în care apare multiple în cadrul definirii unei proprietăți acesta îndică faptul că proprietatea suportă mai multe valori nu doar una.Prin elementul mandatory tranzacția va trece la etapa următoare doar în cazul în care se va scrie ceva în câmp,astfel spus se poate spune că este un câmp obligatoriu de completat.
Asocieri
Asocierile permit crearea unei relații între două tipuri diferite, un tip considerat drept sursă și un tip actual considerat target pentru faptul că moștenește tipul sursă.O asociere trebuie să aibe declarat tipul prin intermediul elementului class ca în exemplul următor:
<types>
<type name=”sc:doc”>
<title>Someco Document</title>
<parent>cm:content</parent>
<associations>
<association name=”sc:Avize”>
<title>Avize</title>
<source>
<mandatory>false</mandatory>
<many>true</many>
</source>
<target>
<class>sc:doc</class>
<mandatory>false</mandatory>
<many>true<many>
</target>
</association>
<associations>
</type>
</types>
Aspecte
Aspectele sunt benefice datorită faptului că pot partaja proprietăți și asocieri în cadrul multor tipuri ale modelului.Acest lucru înseamnă că funcția modelului domeniului ECM poate fi încapsulată și aplicată de-a lungul părții rigide a modelului reprezentat de tipuri.Deci, se poate trage concluzia că repository-ul trebuie să dețină un singur tip ales și mai multe aspecte atașate.Aceste aspecte sunt fie moștenite din tip fie atașate din runtime.Respectivele aspecte sunt interpretate de repository ca fiind o schimbare a comportamentului.
În cadrul modelului propriu un aspect a fost implementat sub forma următoare:
<aspect name="sc:Comisii">
<title>Aspect Comisii</title>
<properties>
<property name="sc:initiator">
<type>d:text</type>
<mandatory>true</mandatory>
<multiple>true</multiple>
</property>
<property name="sc:email">
<type>d:text</type>
<mandatory>true</mandatory>
<multiple>true</multiple>
</property>
<property name="sc:comisiaprincipala">
<type>d:text</type>
<mandatory>true</mandatory>
<default>Comisia 1</default>
<constraints>
<constraint ref="sc:listaComisii" />
</constraints>
</property>
<property name="sc:comisia1">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia2">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia3">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia4">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia5">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia6">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia7">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia8">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia9">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:comisia10">
<type>d:boolean</type>
<default>false</default>
</property>
<property name="sc:aprobare">
<type>d:text</type>
<mandatory>true</mandatory>
<default>Nu</default>
<constraints>
<constraint ref="sc:listaAprobare" />
</constraints>
</property>
</properties>
</aspect>
Constrângeri
Constrângerile pot fi aplicate proprietăților pentru a restricționa valorile lor.Pot fi definite standalone care permit reutilizarea constrângerilor în multe proprietăți sau inline unde constrângerea este definită specific unei singure proprietăți.
O constrângere standalone trebuie să aibe un nume și un tip REGEX, LENGTH, MINMAX sau LIST unic.Tipul LIST utilizat transmite o listă de valori enumerate în cadrul modelului de date.Aceste valori nu pot fi schimbate în cadrul runtime și se regăsesc în interfață ca o listă drop-down.Constrângerea arată astfel:
<constraint name="sc:listaComisii" type="LIST">
<parameter name="allowedValues">
<list>
<value>Comisia 1</value>
<value>Comisia 2</value>
<value>Comisia 3</value>
<value>Comisia 4</value>
<value>Comisia 5</value>
<value>Comisia 6</value>
<value>Comisia 7</value>
<value>Comisia 8</value>
<value>Comisia 9</value>
<value>Comisia 10</value>
</list>
</parameter>
</constraint>
Pentru a aplica content modelul repository-ului avem nevoie de următoarele tool-uri: Java 1.7.0_51, Apache Maven 3.0.5, Alfresco Maven SDK cu AMP Archetype 1.1.1 și Eclipse Java EE IDE pentru Developeri Web(Kepler).În cadrul content modelului creat s-a dezvoltat un conținut specific share-ului care va fi înglobat într-un AMP.Un rol important pentru Maven îl va avea fișierul pom.xml.
Pentru a configura un content model se va crea în primul rând un proiect AMP folosind Alfresco Maven SDK care va conține un fișier XML înregistrat de către Spring bean.
În cadrul perioadei de instalare se vor alege pe rând: opțiunea 1 pentru archetype-ul AMP, opțiunea 5 pentru a alege versiunea 1.1.1 a archetype-ului, la groupId un nume ca de exemplu”com.someco” iar în final pentru artifactId se va preciza un nume sugestiv ca de exemplu ”content-tutorial-repo”. În linia de comandă pentru a funcționa totul se va scrie
mvn:archetype:generate \ -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content
/groups/public/archetype-catalog.xml\-Dfilter=org.alfresco.maven.archetype:
apoi în cadrul fișierelui content-repo al proiectului creat urmărind calea src/main/amp/config/alfresco/module/content-repo se va crea un fișier XML cu nume sugestiv ca de exemplu ”scModel.xml” unde se vor pune toate datele necesare care au fost exemplicate anterior pe secțiuni.
Dezvoltarea bootstrap ajută la modificarea conținutului cu fișiere de configurare XML ale repository-ului pentru ca să fie înregistrat modelul de conținut la startarea repository-ului.Componenta repository-ului numită dicționar bootstrap este responsabilă pentru încărcarea modelelor de conținut și înregistrarea lor în repository.Pentru a realiza acest lucru este necesara crearea unui nou dicționar Bootstrap.Locația unde se va găsi este în directorul unde se găsește și modelul dar în folderul context.Pentru aplicația propriu-zisă propusă fișierul arată sub forma următoare:
<!—Registrarea unui nou model –>
<bean id=”${project.artifactId}_dictionaryBootstrap” parent=”dictionaryModelBootstrap” depends-on=”dictionaryBootstrap”>
<property name=”modele”>
<list>
<value>alfresco/module/${project.artifactId}/
model/scModel.xml</value>
</list>
</property>
</bean>
În final se va executa mvn install,creându-se un AMP care se va găsi în content-repo/target cu extensia amp.
În cadrul perioadei de instalare pentru content-share se vor alege pe rând: groupId un nume ca de exemplu”com.licenta”, pentru artifactId se va preciza un nume sugestiv ca de exemplu ”content-share” iar pentru alfresco_target_amp_client_war se va specifica share.După ce se vor realiza pași anteriori se vor șterge fișierele care numai sunt necesare și anume: org.alfresco.demoamp package, folderul context, org.alfresco.demoamp.test din src/test/java și dependența din pom.xml.
Apoi în cadrul fișierelui content-share al proiectului creat urmărind calea src/main/resources/META-INF se va crea un fișier XML cu numele share-config-custom.xml unde se vor adăuga aspectele și tipurile care se vor testa cu ajutorul Maven-ului:
mvn integration-test –Pamp-to-war și mvn integration-test –Pamp-to-war –Dmaven.tomcat.port=8082 sau fără utilizând comanda: java –jar alfresco-mmt.jar install ..\amps_share\content-share.amp ..\tomcat\webapps\share.war.
3.7 Pachet de traducere în limba română
Pentru a folosi platforma cu toate modificările suferite și necesare am conceput și un pachet de traducere în limba română pentru a fi mai bine înțeles de către cei care utilizează și pentru a atrage atenția mai multor persoane care doresc să dezvolte în Alfresco.
Se recomandă inițierea unui backup la tot ce se utilizează până la momentul în care se dorește aplicarea pachetului.Pentru realizarea pachetului s-au avut în vedere următoarele două fișiere importante: slingshot.properties și common.properties care sunt localizate în share/WEB-INF/classes/alfresco/messages.
Aceste două fișiere sunt cele care trebuie revizuite prima dată, cu ele practic începând demersul către obținerea unui nou pachet în limba dorită.Se vor crea alte fișiere denumite ca de exemplu:slingshot_ro.properties și common_ro.properties care vor arata sub forma următoare:
button.upload=Încărcare
button.login=Logare
button.delete=Șterge
button.download=Descărcați
Pe lângă cele două fișiere foarte importante mai sunt numeroase alte fișiere care trebuie să fie traduse în limba română.Aceste fișiere se găsesc în același dosar messages dar în site-webscripts/org/alfresco.Aici se vor modifica o serie de fișiere prin care platforma se va evidenția în limba dorită.
De exemplu în cadrul fișierului my-activities.get_ro.properties vor apărea umătoarele linii:
filter.mine=Activitățile mele
filter.others=Activitățile celorlalți
filter.all=Toate activitățile
filter.following=Urmăresc
Pentru a funcționa este nevoie de modificarea fișierelui web-client-config-custom.xml pentru a adăuga la secțiunea limbii limba dorită și anume pentru română va arăta astfel:
<config evaluator=”string-compare” condition=”Languages” replace=”true”>
<languages>
<language locale=”ro_RO”>Română</language>
<language locale=”en_EN”>English</language>
</languages>
</config>
După ce s-au clarificat toate cele enumerate mai sus mai este un singur lucru de făcut și anume găsirea fișierului de startup localizat în tomcat/scripts/ctl.shl unde se va reda următoarea linie:
export JAVA_OPTS=”${JAVA_OPTS} –Duser.country=RO –Duser.region=RO –Duser.language=ro”
După ce s-au aplicat toate cele enumerate, platforma ar trebuii să fie funcțională în limba dorită
CONCLUZII
În lucrarea de față s-au evidențiat funcționalitățile de bază ale platformei Alfresco care poate să suporte o serie de modificări menite să simplifice muncă celui ce o utilizează pentru diferite scopuri bine structurate.
S-a ales această platformă datorită numeroaselor beneficii de care dă dovadă fiind un sistem de gestionare bine structurat de documente, pagini web, înregistrări și fotografii.
Este o aplicație indicată în momentul în care se dorește administrarea de conținut și generarea lui deoarece oferă o serie de funcționalități care face munca dezvoltatorului să fie mult mai simplă și intuitivă.Această platformă scrisă în Java, JSP și JavaScript a apărut în Noiembrie 2005 având posibilitatea de rularea pe mai multe sisteme de operare cum ar fi Linux și Windows.Alfresco are integrat de asemenea Microsoft Office și OpenOffice, foarte necesare pentru administrarea de documente.
Prin folosirea sistemului Alfresco se reduc în principal numeroase costuri care privesc conținutul de administrare Enterprise pentru care licența, partea de hardware sau alți factori sunt foarte costisitori.
Alfresco permite dezvoltatorilor să creeze tool-uri sau add-on-uri care să fie incluse în platformă după nevoile tuturor care doresc anumite funcționalități care să se plieze.
Astfel sunt implementate o varietate de soluții și tool-uri care să fie bazate pe numeroase strategii de business pe care să le folosească numeroasele organizații sau nu pentru a-și desfășura activitatea.Pe langă asta, toate acestea lucruri sunt asigurate de o importantă protecție a platformei care garantează siguranța datelor.
Având un control total asupra conținutului în Alfresco a existat posibilitatea de creare unui model nou având metadatele necesare și dorite.Pentru crearea respectivului model s-a avut în vedere folosirea Java EE IDE pentru Developeri Web în varianta Kepler.Prin urmărirea pașilor necesari creării modelului nou s-a realizat un model funcțional care dovedește potențialul de modelare.Prin acest model s-au stabilizat numeroase noțiuni care descriu conținutul Alfresco materializate prin fișiere XML având la bază tipuri, aspecte, constrângeri și asocieri.
Aceste elemente definitorii prin care se creează modelul sunt bine definite și structurate pentru a servii necesităților.Este foarte important să se înțeleagă conceptele deoarece prin acestea se realizează asocieri sau legături cu componentele altui model pentru a moștenii tot ceea ce este nevoie.
Modelul explicat pas cu pas are o schiță stabilă la început care trebuie editată în funcție de necesitate la care se adaugă și alte aspecte specifice.
Fără a crea un astfel de model Alfresco ar fi mai mult un sistem de fișiere.Ceea ce transmite modelul platformei este foarte important deoarece prin folosirea lui sunt cunoscute tipurile datelor care sunt reținute în baza de date sau se stabilesc de exemplu diferențe între tipul String și tipul Dată.
Pentru o configurare mai amplă a tipurilor de conținuturi trebuie deci folosit un model nou unde se pot defini metadatele pentru fiecare și nu este indicat să se folosească un model costumizat.
Pe lângă dezvoltarea pe partea de content models s-a creat un pachet în limba română pentru platforma Alfresco care atrage și îmbunătățește comunicarea în cadrul platformei între utilizatori care preferă această limbă.Acest pachet a fost foarte necesar datorită faptului că lipsea cu desăvârșire o variantă publică în acestă limbă.
Rezultă faptul că s-a depus un efort destul de important pentru realizarea acestora și trebuie luată în considerare și necesitatea sau importanța care au la bază target-uri propuse ințial și materializare prin succes și funcționare.
BIBLIOGRAFIE
DAVID CARUANA,JOHN NEWTON,MIKE FARMAN, AND MICHAEL UZQUIANO, Professional Alfresco:Practical Solutions for Enterprise Content Management, 2010.
JEFF POTTS, Alfresco Developer Guide, 2008.
MUNWAR SHARRIFF, Alfresco Enterprise Content Management Implementation, 2007.
UGO CEI AND PIERGIORGIO LUCIDI, Alfresco 3 Web Services, 2010.
*** Alfresco Fundamentals – Student Guide, versiunea 1.1, data publicării:06.11.2010.
*** Alfresco Enterprise Edition – API Development Course.
*** Content Modeling and Alfresco Explorer Configuration – Student Guide, versiunea 1.3, data publicării:30.03.2010.
http://docs.alfresco.com/community/concepts/system-about-community.html
https://www.alfresco.com/products/community/download
http://en.wikipedia.org/wiki/Alfresco_(software)
http://descarcare.k77.eu/programe/download/alfresco.php
http://wiki.alfresco.com/wiki/Install_Tomcat6
http://docs.alfresco.com/community/reuse/conv-syspaths.html
http://en.wikipedia.org/wiki/Alfresco_(software)
http://docs.alfresco.com/community/concepts/apps-content-about.html
http://docs.alfresco.com/community/concepts/arch-api-embedded.html
http://docs.alfresco.com/community/concepts/arch-api-remote.html
http://docs.alfresco.com/community/concepts/protocols-about.html
http://docs.alfresco.com/4.1/concepts/cuh-usergroups-manage.html
https://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems
https://www.alfresco.com/security
http://docs.alfresco.com/4.1/concepts/secur-acl.html
https://wiki.alfresco.com/wiki/Repository_Configuration
https://addons.alfresco.com/addons/dynamic-extensions-alfresco
https://wiki.alfresco.com/wiki/Packaging_And_Deploying_Extensions#JAR
http://docs.alfresco.com/4.1/concepts/content-modeling-about.html?m=2
http://docs.alfresco.com/4.2/concepts/wf-whatis-workflow.html
https://wiki.alfresco.com/wiki/Workflow_with_Activiti
http://en.wikipedia.org/wiki/Log4j
http://logging.apache.org/log4j/2.x/manual/index.html
https://wiki.alfresco.com/wiki/Data_Dictionary_Guide
http://ecmarchitect.com/alfresco-developer-series-tutorials/content/tutorial/tutorial.html#creating-a-custom-content-model
BIBLIOGRAFIE
DAVID CARUANA,JOHN NEWTON,MIKE FARMAN, AND MICHAEL UZQUIANO, Professional Alfresco:Practical Solutions for Enterprise Content Management, 2010.
JEFF POTTS, Alfresco Developer Guide, 2008.
MUNWAR SHARRIFF, Alfresco Enterprise Content Management Implementation, 2007.
UGO CEI AND PIERGIORGIO LUCIDI, Alfresco 3 Web Services, 2010.
*** Alfresco Fundamentals – Student Guide, versiunea 1.1, data publicării:06.11.2010.
*** Alfresco Enterprise Edition – API Development Course.
*** Content Modeling and Alfresco Explorer Configuration – Student Guide, versiunea 1.3, data publicării:30.03.2010.
http://docs.alfresco.com/community/concepts/system-about-community.html
https://www.alfresco.com/products/community/download
http://en.wikipedia.org/wiki/Alfresco_(software)
http://descarcare.k77.eu/programe/download/alfresco.php
http://wiki.alfresco.com/wiki/Install_Tomcat6
http://docs.alfresco.com/community/reuse/conv-syspaths.html
http://en.wikipedia.org/wiki/Alfresco_(software)
http://docs.alfresco.com/community/concepts/apps-content-about.html
http://docs.alfresco.com/community/concepts/arch-api-embedded.html
http://docs.alfresco.com/community/concepts/arch-api-remote.html
http://docs.alfresco.com/community/concepts/protocols-about.html
http://docs.alfresco.com/4.1/concepts/cuh-usergroups-manage.html
https://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems
https://www.alfresco.com/security
http://docs.alfresco.com/4.1/concepts/secur-acl.html
https://wiki.alfresco.com/wiki/Repository_Configuration
https://addons.alfresco.com/addons/dynamic-extensions-alfresco
https://wiki.alfresco.com/wiki/Packaging_And_Deploying_Extensions#JAR
http://docs.alfresco.com/4.1/concepts/content-modeling-about.html?m=2
http://docs.alfresco.com/4.2/concepts/wf-whatis-workflow.html
https://wiki.alfresco.com/wiki/Workflow_with_Activiti
http://en.wikipedia.org/wiki/Log4j
http://logging.apache.org/log4j/2.x/manual/index.html
https://wiki.alfresco.com/wiki/Data_Dictionary_Guide
http://ecmarchitect.com/alfresco-developer-series-tutorials/content/tutorial/tutorial.html#creating-a-custom-content-model
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Arhitectura Alfresco (ID: 161929)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
