Your SlideShare is downloading. ×
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
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

Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat

930
views

Published on

Konferencija Javantura Zagreb 2014 by HUJAK …

Konferencija Javantura Zagreb 2014 by HUJAK

Alfresco – Neo4j integracija – nova vrsta CMS aplikacija by Damir Murat

Graph baze imaju mnoge primjene, a jedna od njih je obogaćivanje i novi način pretraživanja i korištenja postojećih podataka. Ako prateći tu ideju povežemo CMS sustav Alfresco (www.alfresco.com) i graph bazu podataka Neo4j (www.neo4j.org), otvara se mogućnost kreiranja nove vrste CMS aplikacija. Dodamo li u mješavinu još i tehnologije kao što su Ext JS, D3.js i Grails, rezultat može biti vrlo atraktivan za krajnjeg korisnika.

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
930
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
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. Alfresco – Neo4j integracija Nova vrsta CMS aplikacija Damir Murat IT Arhitekt, CROZ
  • 2. Alfresco • Java baziran Enterprise Content Management (ECM) sustav • Document Management (DMS) je samo jedna od funkcionalnosti ECM-a • DMS uključuje funkcionalnosti kao što su kontrola pristupa sadržaju, verzioniranje sadržaja, check in/out, document workflow, full-text pretraživanje, Office i Google Docs integracija, online previews itd. • Alfrescov interni metamodel definira dodatne informacije o pohranjenom sadržaju. Metamodel se može po potrebi proširivati. • Prilikom izvođenja metapodaci su pohranjeni unutar građevnih blokova kao što su node, node properties i asocijacije. • Interna organizacija Alfresco metamodela zapravo predstavlja graf strukturu, no ona se ipak pohranjuje u relacijsku bazu • Proširivanje metamodela radi se na statičkom ("type level") nivou. Definiranje metamodela nije moguće na nivou pojedinačnih instanci nodeova ili asocijacija. Drugim riječima, definicija metamodela određena je shemom, slično poput strukture tablica u relacijskim bazama. • Proširivanje i redefinicija modela zahtijeva restart poslužitelja.
  • 3. Graph baze i property graph model - 1 • Graph baze podataka pohranjuju informacije u propertyje koji su smješteni unutar nodeova i relacija (property graph model). • Neo4j proširuje model dodavanjem neograničenog broja node labela Company name: Some Co founded: 1900 wo industry: IT r Fo er rks velop 10 0 wo e rol rk hir e: m sFo r a ed : 1 nage 7. 5 r .20 08 sin hired: 25.10.2005 worksFor name: Marija Person Employee role: administration d 1.2 . le: ro d: 1 ire h name: Iva Person Employee fri en d ce : 20 00 w W ks or ith name: Luka Person Employee knows friend since: 2002 share: [books, movies] name: Ana Person name: Josip Person
  • 4. Graph baze i property graph model - 2 • Relacije povezuju nodeove i daju im dodatno značenje i organizaciju • Nema unaprijed definirane sheme, pa se podaci na pojedinim nodeovima i relacijama istog logičkog tipa mogu razlikovati • I relacije i nodeovi imaju svoje tipove. Pojedinačna relacija uvijek mora imati samo jedan tip, dok ih node može imati neograničen broj (labele) • Prirodno (whiteboard friendly) modeliranje podataka. Značajno reduciranje ili potpuno uklanjanje tradicionalne strukturne neusklađenosti (impedance mismatch) između aplikativnog i podatkovnog modela • Visoke performanse upita preko relacija • Tipične primjene: društvene mreže, sustavi preporuka (recommendation engines), geolokacija, master data management, IT infrastructure management, security (ACL), CMS sustavi • Generalna primjena: međusobno gusto povezani polustrukturirani podaci
  • 5. Neo4j • • • • • • • • • • • • Java bazirana graph baza koja koristi prošireni property graph model ACID transakcije performanse: custom native graph storage engine skalabilnost: milijarde nodeova/relacija/propertyja visoka dostupnost kada se distribuira preko više računala lako korištenje: izvrsni i čitljivi deklarativni graph query jezik - Cypher (za CROZ, vjerojatno najvažniji pojedinačni kriterij odabira Neo4j graph baze) Embeddable REST sučelje Java API traversal framework 10 godina u produkciji Stalni razvoj i unapređivanje Komercijalna i besplatna podrška
  • 6. Alfresco/Neo4j - zašto, kako, ciljevi? • U CROZ-u je Alfresco strateška platforma za razvoj CMS aplikacija • Alfrescov interni model (metamodel) konceptualno je sličan graph bazi • Uspješna integracija omogućila bi izvođenje graph operacija povrh Alfresco metamodela što otvara nove mogućnosti i uklanja određena ograničenja • Osnovna ideja nije zamijeniti Alfrescov mehanizam pohrane metapodataka, već dodati novi (graph) koji se sa originalom drži u sinkronizaciji • Krajnji cilj jest mogućnost razvoja nove generacije Alfresco CMS aplikacija koje imaju veće i fleksibilnije mogućnosti, bolje performanse te su jednostavnije i brže za razvoj • Neke nove funkcionalnosti uključuju: • obogaćivanje Alfresco metapodataka novim ad-hoc informacijama • dodavanje propertyja na relacije • korištenje graph operacija i Cypher jezika za istraživanje Alfresco metapodataka • vizualizacija podataka koja otkriva nove odnose i informacije
  • 7. POC – poslovna domena • Polazna točka je jedan od postojećih CROZ projekata baziranih na Ext JS, Grails i Alfresco tehnologijama • Osiguravateljska kuća, sa podružnicama, koja želi koristiti Alfresco za upravljanje dokumentacijom o štetama i policama • Dokumentacija uključuje slike, dokumente u Office ili PDF formatu, skenirane dokumente i sl. • Dokumentacija se klasificira prema prilagođenoj poslovnoj shemi • Vizualizacija grafa bila je jedan od glavnih ciljeva POC-a, pri čemu ta vizualizacija ne bi smjela biti previše vezana uz odabranu poslovnu domenu, već bi se trebala moći primijeniti i na bilo koji drugi slučaj ili poslovnu domenu
  • 8. POC arhitektura
  • 9. Arhitektura – Ext JS / Grails • • • Standardna polazna CROZ arhitektura ("platforma") za nove projekte Objedinjuje Ext JS i Grails u skladnu okolinu s osnovnim ciljem ubrzavanja i pojednostavljenja razvoja atraktivnih Rich Client Enterprise aplikacija Neke funkcionalnosti: • Generator inicijalnih aplikacija • Integrirani JavaScript DI kontejner, napredne validacije i forme, nove i unaprijeđene Ext JS komponente, klijentske notifikacije, pojednostavljeno upravljanje pogreškama … • Generički modul za održavanje šifarnika i njihove povijesti • Modul za skeniranje, višestruki upload • Automatska XSS i CSRF zaštita, "Security aware" GUI • …
  • 10. Arhitektura – Ext JS / Grails / Alfresco • Proširenje standardne CROZ platforme kada su potrebne ECM funkcije • Grails Alfresco proxy prosljeđuje klijentske zahtjeve namijenjene Alfrescu. Između ostalog, proxy osigurava sigurnost (Spring Security) i validaciju (Grails commands) zahtjeva. • Koristi se role-based security uporabom Spring Security mehanizama. Pri tome Alfresco odrađuje autentikaciju korisnika čime se osigurava i ispravna autorizacija prilikom pristupa sadržaju. • Na Grails strani, role-based security određuje prava za izvođenje pojedinih klijentskih zahtjeva. • Alfresco MVC modul omogućava razvoj Alfresco funkcionalnosti primjenom Spring MVC koncepata poput kontrolera, servisa itd. umjesto uporabe kompliciranijeg i nespretnijeg Alfresco Web Scripts API-a
  • 11. POC arhitektura – Neo4j • Real-time sync module odgovoran je za inicijalni import podataka u Neo4j te za održavanje Alfresca i Neo4j baze u real-time sinkronizaciji • Real-time sinkronizacija koristi Alfresco behaviours mehanizam koji osluškuje promjene u Alfresco metapodacima te ih dojavljuje Neo4j bazi koristeći Spring Integration biblioteku i Neo4j REST API za postavljanje Cypher upita ili zahtjeva prema posebno razvijenim Neo4j ekstenzijama • D3 graph komponenta je generička komponenta za vizualizaciju grafa, tj. rezultata izvođenja Neo4j Cypher upita. Temelji se na D3.js JavaScript biblioteci
  • 12. Alfresco/Neo4j integracijski modul • Inicijalna import procedura izvodi se ako Neo4j ne sadrži Alfresco podatke (prilikom pokretanja Alfresca ili slanje HTTP zahtjeva na Neo4j). Za svaku Alfresco transakciju kreira se Spring Integration poruka koju procesira Neo4j Connector što rezultira slanjem REST zahtjeva u Neo4j • Za održavanje sinkronizacije Alfresco i Neo4j baze, koristi se Alfresco behaviours mehanizam. Behaviours je grupa listenera koji se "okidaju" kod svake interne promjene podataka u Alfrescu. U tom trenutku ponovno se kreira Spring Integration poruka koja rezultira REST zahtjevom prema Neo4j bazi i konačnim ažuriranjem podataka u grafu
  • 13. D3 graph component • Bazirana na D3.js JavaScript biblioteci • Funkcionalnosti: • Pan & zoom, node selection, hiding, filtering, properties, styling • Node expand/collapse, partial node group expand • Relationships type rendering • Layouts: force, hierarchy, radial • Graph analysis: degree in/out, closeness, betweenness • Predefined queries • …
  • 14. Demo
  • 15. POC - TODO • Poboljšanje detekcije potrebe za procedurom inicijalnog importa podataka • Poboljšanje performansi inicijalnog importa i implementacija alternativnih mehanizama • Sinkronizacija nakon što jedna od komponenti prestane s radom: • Event bus + persistent queue or (No)SQL database • Event sourcing + CQRS • Dodatne vizualizacijske funkcionalnosti usmjerene prema većoj iskoristivosti od strane krajnjeg korisnika • …
  • 16. Potencijalne primjene • Alternativni Alfresco Node browser • "Poboljšanje" Alfresco meta podataka • Vizualna analiza Alfresco meta podataka i interaktivno otkrivanje "skrivenih" informacija • Interaktivni i personalizirani dashboard graf/tablični paneli • Alternativne non-graph vizualizacije (za inspiraciju pogledajte http://d3js.org/) • Napredni ACL • Povezivanje Alfresco podataka sa drugim neovisnim izvorima podataka • …
  • 17. Pitanja i odgovori Dodatne informacije i detalji: www.croz.net/eng/alfresco-and-neo4j