sâmbătă, iunie 30, 2007

Cateva lucruri care m-ar interesa sa le fac dupa vacanta.

De curand am urmarit o prezentare interesanta referitoare la principiile arhitecturale folosite in Spring 2.0. Prezentarea lui Juergen Hoeller (Interface 21) mi-a dat un sentiment foarte placut la fel ca o mai veche prezentare a lui Joshua Bloch - How to design a good API . Ambele se refera la chestiuni foarte importante si fundamentale dar in general nespuse legate de arhitectura aplicatiilor (in principiu realizate in Java). In aceasta prezentare sunt cateva referinte la diverse unelete ce pot fi folosite in designul arhitectural al aplicatiilor. Dupa concediu sunt hotarat sa experimentez cateva.

Cel mai interesant mi se pare Sonarj al celor de la HELLO2MORROW. Documentatia aferenta este extrem de interesanta si enumera principii clare de arhitectura (in Java) - dependente slabe intre pachete, idea de vertical slices versus layers, etc. Din nefericire nu este free. O unealta free ar fi JDepend care permite in princupal detectarea dependentelor intre pachete. O alta unealta intereanta pare a fi Structure 101 - HEADWAY SOFTWARE - masaroara depedentele intre modulele aplicatiilor ( jar-uri). Interesante par a fi si Panopticode si MaintainJ. Toate aceste unelete au in general plugin-uri pentru Eclipse si Maven.

Alte unelte interesante ar fi: Glassbox o unealta de profiling in runtime bazata se pare pe MBeans (JMX). Difera astfel de alte unelte de profiling (JProfiler sau YourKit), prin faptul ca in cazul Glassbox se face mai mult o monitorizare a aplicatiei din punc de vedere al perfomantelor in timp ce ea este in pruductie, prin mesaje clare care anunta probleme de performanta.

sâmbătă, iunie 16, 2007

Content repository

Gestiunea continutului este o tema deschisa in Java. Fie ca este vorba de document management, Web content management , records management, in toate cazurile e vorba de gestiune de continut. Modul in care trebuie sa arate un astfel de API care sa permita abstractizarea lucrului la nivel de continut (repository-ul este o abstractizare peste file system si/sau baza de date) este standardizat mai nou in Java prin specificatia JSR 283 (mai e si vechea 170) - Java Content Repository. Implementarea de referinta pentru content repository este Jackrabbit.

Un interviu interesant despre content management in Java cules de pe DAILYMOTION.COM:


Prin CMS - Content Management System, intelegem un sistem care ne ajuta sa gestionam, culegem, manipulam continut (aceste implementari sunt construite peste API-urile descrise anterior si unele dintre ele sunt conforme cu specificatiile de la JCP). In cazul limbajului Java avem cateva implementari open source notorii (exista multe altele dar nu atat de importante)

  • Alfresco - document management, platforma matura, implementare cu librarii noi
  • Magnolia - Web content management, conforma cu Content Repository JSR
  • Daisy - Web content management, interesant
  • Nuxeo ECM - in plin proces de evolutie, rescriere din Pyton, inca instabil
Eu sunt impresionat de Alfresco - l-am testat si exista o carticica foarte buna care il descrie. Pentru document management Alfresco este un exemplu. Pentru gestiunea de continut Web, am testat Magnolia care mi-a lasat de asemenea o impresie placuta.