OSGifying the repository

3,176 views
3,091 views

Published on

Presentation at the .adaptTo(Berlin) meetup

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,176
On SlideShare
0
From Embeds
0
Number of Embeds
1,011
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OSGifying the repository

  1. 1. Jukka Zitting | Senior Developer<br />OSGifying the repository<br />
  2. 2. Agenda<br />CRX platform architecture<br />Granite platform architecture<br />The repository bundle<br />JMX support<br />Ideas for the future<br />2<br />
  3. 3. Servlet container<br />Launchpad webapp<br />CRX Explorer webapp<br />CRX Platform Architecture<br />3<br />Sling<br />Explorer<br />Repository<br />OSGi<br />API<br />JNDI<br />
  4. 4. Granite Platform Architecture<br />4<br />OSGi container<br />Sling<br />Explorer<br />API<br />Repository<br />HTTP<br />
  5. 5. Deploy anywhere<br />5<br />Quickstart jar<br />Quickstart webapp<br />OSGi framework<br />OSGi framework<br />HTTP server<br />HTTP bridge<br />JVM<br />Servlet container<br />
  6. 6. What about client applications in separate webapps?<br />6<br />OSGi container<br />bundle.war<br />HTTP<br />War bundle support<br />
  7. 7. The repository bundle<br />Bundle that implementation of the JCR API<br />Plus the Jackrabbit and CRX API extensions<br />Deploy to an OSGi container and you have a working repository<br />The running repository exposed as an OSGi service<br />Just another packaging format from the repository perspective<br />Jackrabbit comes as a standalone jar, a webapp, a JCR archive, and now an OSGi bundle<br />In CRX we’re dropping the Explorer webapp and only shipping the repository bundle as a part of the Granite platform<br />Backwards compatibility with existing repositories<br />OSGi configuration just points to the repository directory and an existing repository.xml configuration file<br />Custom repository extensions may need to be slightly adjusted<br />7<br />
  8. 8. JMX Support<br />JMX: Java Management Extensions<br />A bit of history<br />Repository diagnostics and maintenance tools as a more or less ad-hoc collection JSP pages in the CRX Explorer webapp<br />No documented API nor even a consistent look and feel<br />Should we simply port the JSPs to web console plugins?<br />Better idea: implement equivalent functionality as JMX Mbeans<br />Java API for accessing diagnostics and maintenance features<br />Tooling support for pretty much any network management/monitoring client<br />Also implemented a generic JMX web console plugin to expose these (and other!) features over the web<br />You can even use curl as a JMX client<br />8<br />
  9. 9. JMX repository diagnostics<br />JMX is ideal for exposing various repository performance metrics<br />Coming up:<br />Number of open sessions<br />Read/Write/Query operations per second, average time per operations<br />Number of bundles read/written per second, average time per operation<br />Cache utilization metrics<br />Analysis of worst performing queries<br />9<br />
  10. 10. Ideas for the future<br />Extension points in the repository<br />Query & indexing<br />Authentication & access control<br />Triggers & stored procedures<br />Breaking up the repository to smaller modules<br />Easier upgrades/customizations<br />More room for innovation<br />Hot upgrade<br />10<br />

×