TSM - High-End Content Management, varianta Adobe

Alexandru Gheboianu - Software Engineer @ Pitech+Plus

Numărul companiilor care utilizează strategii și metode pentru stocarea, managementul și distribuția de conținut și documente asociate proceselor organizației este în creștere. Aceste metode sunt grupate sub denumirea de Enterprise Content Management (ECM). Sub umbrela ECM se găsesc soluții de management a documentelor, managementul conținutului web, căutare, colaborare și managementul activelor digitale. Soluțiile de tip ECM își propun să ușureze managementul informațiilor organizației prin simplificarea stocării, securității, permisiunilor, retenției și a fluxurilor informaționale.

În urma achiziției de către Adobe a companiei elvețiene Day Software, linia de produse Day Communiqué s-a transformat în Adobe CQ, iar de curând în Adobe Experience Manager (AEM). În anul 2014 cei de la Adobe au devenit lideri de piață în Cadranul Magic Gartner pentru soluții de Web Content Management.

AEM este o platformă destinată celor mai complexe și pretențioase organizații, care permite managementul informațiilor cu un grad ridicat de granularitate. Situațiile în care se pretează utilizarea acestui produs sunt portalurile multi-site și multi-limbă, unde este necesară administrarea independentă a conținutului de către mai mulți content-editor-i în baza unor procese definite de către organizație.

Acest lucru este posibil datorită unei soluții tehnice ingenioase și a unei înțelegeri temeinice a domeniului ECM de către creatorii produsului. Din punctul de vedere al tehnologiilor, AEM este un mix de framework-uri open source Java și librării proprietare Adobe.

Pentru a gestiona un sistem cu o complexitate ridicată precum AEM, s-a decis folosirea unui container OSGI, Apache Felix, pentru managementul pachetelor și librăriilor. OSGI este un subiect în sine pentru mai multe articole, însă în cazul de față avantajul major pe care îl aduce este posibilitatea de a porni și opri diverse componente ale sistemului, fără a afecta funcționarea generală a aplicației și deployment cu 0 downtime.

Partea cu adevărat inovatoare este introducerea Apache Jackrabbit Oak ca soluție pentru nivelul de stocare a datelor. Jackrabbit Oak este un content repository arborescent care implementează standardele JCR (Java Content Repository) și WebDAV, care permite tratarea uniformă a resurselor, indiferent de tipologia lor. Astfel pentru un utilizator Oak, devine transparent dacă resursele pe care le accesează sunt pagini web, documente, imagini sau alte active digitale.

Framework-ul web este tot open source, Apache Sling, care permite managementul JCR într-o manieră REST. Puterea Sling stă în faptul că abstractizează accesul la JCR și oferă modalități diverse de rendering a resurselor, printr-un mecanism de selectori. Astfel un nod din JCR poate fi prezentat ca JSON, HTML, XML etc. .

Cu aceste framework-uri la baza AEM, sistemul oferă o suită bogată de componente UI pe care editorii le pot folosi direct în pagini printr-un mecanism drag&drop. Astfel responsabilitatea creării de pagini a fost transferată de la programator către content editor. Programatorului îi revine responsabilitatea de a configura template-urile pe baza cărora se vor construi paginile și de acrea la nevoie componente personalizate pentru nevoile clientului. Construcția de componente vizuale custom este relativ facilă, fiind bazată pe tehnologii cunoscute precum JSP si ExtJS, la care se adaugă și o librărie Adobe, numită Granite.

La nivel de infrasctructură, AEM a fost conceput să ruleze într-un mediu distribuit și oferă capabilități diverse de configurare a instanțelor de server, de la o singură instanță la cluster sau load balancing pe mai multe instante.

Serverul AEM poate să funcționeze în două moduri: author și publish. În modul author, instanța este utilizată pentru configurarea platformei și crearea de conținut, iar în modul publish instanta servește contentul către clienți. Numărul de instanțe de author și publish nu trebuie să fie corelate, iar AEM oferă un mecanism de replicare a datelor din author pe publish. Astfel încărcarea pe servere este distribuită, iar o activitate ridicată a editorilor va fi resimțită doar pe instantele author, fără a afecta performanța pentru clienti, întrucât aceștia se conectează la publish. Adobe mai oferă și un modul separat, numit Dispatcher, care are funcțiile de cache și load balancing. Responsabilitatea gestionării cache-ului este luată de pe umerii programatorilor, deoarece Dispatcher-ul invalidează cache-ul automat în momentul în care o pagină a fost modificată.

În concluzie, soluția celor de la Adobe este destinată organizațiilor multinaționale care au acumulat cantități considerabile de content pe care doresc să îl utilizeze în moduri diverse. Este de apreciat trecerea responsabilităților din zona de development spre content editor-i. Aceștia pot să lucreze independent de o echipă de dezvoltare pentru a crea un site, în condițiile în care au la dispoziție o suită de componente care le satisfac nevoile.

Dezavantajele AEM sunt prețul prohibitiv (450.000$ cost mediu pentru licențe) și un cost total de implementare ajungând în medie la 2M $. De asemenea, curba de învățare a acestei tehnologii este abruptă, necesitând o echipă experimentată în tehnologii Java EE și concepte de ECM.