Your SlideShare is downloading. ×
0
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Gestione documentale e JCR API
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Gestione documentale e JCR API

1,397

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,397
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Gestione documentale in Java: JCR API di Mario Cartia mario.cartia@codebase.it
  • 2. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa JSR-170 Content Repository API for Java Technology E' una specifica JCP strutturata in più livelli (come vedremo dopo) che definisce una serie di interfacce per l'accesso, la modifica e l'interrogazione di “Repository” contenenti dati strutturati
  • 3. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Level 1 Definisce l'accesso ai contenuti del repository in sola lettura e l'interrogazione mediante query XPath La JSR-170 Level 1 è destinata principalmente alla scrittura di semplici applicazioni CMS
  • 4. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Level 2 Definisce l'accesso ai dati in modalità scrittura/modifica e funzionalità per l'integrità referenziale dei dati e la protezione degli stessi mediante regole ACL
  • 5. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Advanced Level Definisce metodi per il versionamento dei contenuti, la gestione delle transazioni, observation, funzionalità per interrogare il repository utilizzando SQL ed il locking dei dati
  • 6. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa L'utilizzo della JCR API consente di scrivere applicazioni Enterprise Record and Document Management System (ERDMS) in maniera totalmente vendor independent Esistono sul mercato implementazioni 100% open source di Content Repository Management sia connectors per le piattaforme commerciali più diffuse (SAP, Oracle, FileNet, Hummingbird ed altri)
  • 7. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa È la reference implementation open source della specifica JSR-170 Alle funzionalità JCR di livello 1,2 ed avanzate aggiunge l'integrazione con il motore di indicizzazione Lucene ed i “text extractors” per i formati file più comunemente utilizzati (Pdf, MS Office, OpenOffice ed altri)
  • 8. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa javax.jcr.Node Interfaccia che rappresenta un nodo gerarchico del repository (workspace per l'esattezza) void addMixin(java.lang.String mixinName) permette di aggiungere “funzionalità” al nodo (es: versionable, referenceable, etc) Node addNode(java.lang.String relPath) permette di aggiungere un nodo figlio nella posizione specificata
  • 9. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa NodeIterator getNodes() consente di ottenere un iterator per ciclare tra i nodi figli PropertyIterator getProperties() permette di ottenere un iterator per ciclare tra le property del nodo i metodi setProperty() e getProperty() permettono di settare o leggere le property del nodo
  • 10. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Un nodo JCR può essere strutturato (propery e child nodes definiti preventivamente) o non strutturato Un nodo può essere referenziato da altri nodi (concetto simile alle chiavi esterne in un database) purchè lo si definisca referenziabile (mixin type referenciable)
  • 11. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Un nodo può essere versionabile (mixin type versionable) checkin(), checkout(), getVersionHistory()
  • 12. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Per leggere e scrivere sul repository è necessario effettuare il login ed aprire una javax.jcr.Session l'interfaccia Session contiene anche i metodi per l'import e l'export del repository da/in formato XML importXML(), exportDocumentView(), exportSystemView()
  • 13. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa L'interfaccia javax.jcr.query.QueryManager consente di interrogare il repository Query createQuery(java.lang.String statement, java.lang.String language) è possibile utilizzare XPath o SQL (se supportato)
  • 14. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Apache Jackrabbit integra l'engine Lucene e grazie a delle classi “text extractor” riesce ad indicizzare documenti nei formati più comunemente utilizzati: Pdf, MS Office, OpenOffice, RTF, HTML, XML ed altri
  • 15. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa E' possibile effettuare ricerche full-text utilizzando XPath o SQL esempio //*[jcr:contains(.,'testo da cercare')] (XPath)
  • 16. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Mediante i metodi forniti dall'interfaccia javax.jcr.observation.ObservationManager è possibile “agganciare” dei metodi a determinati eventi (es: modifica di un nodo) Ciò rende molto semplice, ad esempio, effettuare il logging delle operazioni effettuate sul repository
  • 17. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa La persistenza dei dati è a carico del repository (è un dettaglio che lo sviluppatore non deve conoscere) Filesystem, XML, DBMS, ...
  • 18. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa OpenKM è un DMS (OSS) di fascia enterprise basato sulla JCR API Tecnologie utilizzate: Jackrabbit, JBoss, EJB, GWT, Web services
  • 19. Meeting JUG Sicilia / ASI 21 Maggio 2008 - Ragusa Grazie per l'attenzione! Mario Cartia mario.cartia@codebase.it

×