Download - OSGifying the repository

Transcript
Page 1: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Jukka Zitting | Senior DeveloperOSGifying the repository

Page 2: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Agenda

CRX platform architecture

Granite platform architecture

The repository bundle

JMX support

Ideas for the future

2

Page 3: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Servlet container

Launchpad webapp CRX Explorer webapp

CRX Platform Architecture

3

API JNDI

Explorer

Repository

Sling

OSGi

Page 4: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Granite Platform Architecture

4

OSGi container

API

Explorer

Repository

Sling

HTTP

Page 5: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Deploy anywhere

5

Quickstart jar Quickstart webapp

OSGi frameworkOSGi framework

HTTP server

HTTP bridge

JVM Servlet container

Page 6: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

What about client applications in separate webapps?

6

OSGi container

HTTP

bundle.war

War bundle support

Page 7: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The repository bundle

Bundle that implementation of the JCR API

Plus the Jackrabbit and CRX API extensions

Deploy to an OSGi container and you have a working repository

The running repository exposed as an OSGi service

Just another packaging format from the repository perspective

Jackrabbit comes as a standalone jar, a webapp, a JCR archive, and now an OSGi bundle

In CRX we’re dropping the Explorer webapp and only shipping the repository bundle as a part of the Granite platform

Backwards compatibility with existing repositories

OSGi configuration just points to the repository directory and an existing repository.xml configuration file

Custom repository extensions may need to be slightly adjusted

7

Page 8: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

JMX Support

JMX: Java Management Extensions

A bit of history

Repository diagnostics and maintenance tools as a more or less ad-hoc collection JSP pages in the CRX Explorer webapp

No documented API nor even a consistent look and feel

Should we simply port the JSPs to web console plugins?

Better idea: implement equivalent functionality as JMX Mbeans

Java API for accessing diagnostics and maintenance features

Tooling support for pretty much any network management/monitoring client

Also implemented a generic JMX web console plugin to expose these (and other!) features over the web

You can even use curl as a JMX client

8

Page 9: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

JMX repository diagnostics

JMX is ideal for exposing various repository performance metrics

Coming up:

Number of open sessions

Read/Write/Query operations per second, average time per operations

Number of bundles read/written per second, average time per operation

Cache utilization metrics

Analysis of worst performing queries

9

Page 10: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Ideas for the future

Extension points in the repository

Query & indexing

Authentication & access control

Triggers & stored procedures

Breaking up the repository to smaller modules

Easier upgrades/customizations

More room for innovation

Hot upgrade

10

Page 11: OSGifying the repository

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.