SlideShare a Scribd company logo
1 of 137
Download to read offline
Building dynamic distributed data
stores with OSGi
http://www.paremus.com
info@paremus.com

Tim Ward
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Who is Tim Ward?
@TimothyWard

• Senior Consulting Engineer and Architect at Paremus
• 5 years at IBM developing WebSphere Application Server
• Container Implementation experience with Java EE and OSGi, including Blueprint, JPA, EJB
and JTA

• OSGi Specification lead for JPA and Bytecode Weaving
• PMC member of the Apache Aries project
• Previous speaker at EclipseCon, Devoxx, Jazoon, JAX London, OSGi
Community Event...

• Author of Manning’s Enterprise OSGi in Action
• http://www.manning.com/cummins
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
What we’re going to cover

• OSGi Remote Services
• Deploying external processes using Packager
• Building Dynamically wired distributed systems
• Demo

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (1)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (1)

• OSGi Bundles communicate using the Service Registry

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (1)

• OSGi Bundles communicate using the Service Registry
• This allows for dynamic, loosely coupled interaction
Provider A

Consumer

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (1)

• OSGi Bundles communicate using the Service Registry
• This allows for dynamic, loosely coupled interaction
Provider A

Consumer

Provider B

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (1)

• OSGi Bundles communicate using the Service Registry
• This allows for dynamic, loosely coupled interaction
Provider A

Consumer

Provider B

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (2)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (2)

• Because OSGi services are loosely coupled they can come from anywhere!

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (2)

• Because OSGi services are loosely coupled they can come from anywhere!
• Any service can be transparently remoted *

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (2)

• Because OSGi services are loosely coupled they can come from anywhere!
• Any service can be transparently remoted *
• Service properties are made available remotely too

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (2)

• Because OSGi services are loosely coupled they can come from anywhere!
• Any service can be transparently remoted *
• Service properties are made available remotely too
Network
Provider A

Wormhole

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (2)

• Because OSGi services are loosely coupled they can come from anywhere!
• Any service can be transparently remoted *
• Service properties are made available remotely too
Network
Provider A

Consumer

Wormhole

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (2)

• Because OSGi services are loosely coupled they can come from anywhere!
• Any service can be transparently remoted *
• Service properties are made available remotely too
Network
Provider A

Consumer

Wormhole
* Make sure your service is actually suitable for remoting!
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (3)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (3)

• Exposing a remote service is not transparent

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (3)

• Exposing a remote service is not transparent

Network

objectclass =
{List, Collection}
Provider A

Consumer

Wormhole

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (3)

• Exposing a remote service is not transparent
• Services opt-in using the service.exported.interfaces property

Network

objectclass =
{List, Collection}
Provider A

Consumer

Wormhole

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (3)

• Exposing a remote service is not transparent
• Services opt-in using the service.exported.interfaces property

objectclass =
{Collection}

Network

objectclass =
{List, Collection}
Provider A

Consumer

Wormhole

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

service.exported.interfaces =
{Collection}

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services (3)

• Exposing a remote service is not transparent
• Services opt-in using the service.exported.interfaces property
• Imported services are marked with a service.imported = true
objectclass =
{Collection}

Network

objectclass =
{List, Collection}
Provider A

Consumer
service.imported =
true

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Wormhole

service.exported.interfaces =
{Collection}

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

• The OSGi Alliance has two specifications. Remote Services and Remote
Service Admin (RSA)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

• The OSGi Alliance has two specifications. Remote Services and Remote
Service Admin (RSA)

• What I have described is Remote Services

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

• The OSGi Alliance has two specifications. Remote Services and Remote
Service Admin (RSA)

• What I have described is Remote Services
• The underlying implementation is completely unspecified

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

• The OSGi Alliance has two specifications. Remote Services and Remote
Service Admin (RSA)

• What I have described is Remote Services
• The underlying implementation is completely unspecified
• RSA builds on Remote Services, and is more prescriptive

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

• The OSGi Alliance has two specifications. Remote Services and Remote
Service Admin (RSA)

• What I have described is Remote Services
• The underlying implementation is completely unspecified
• RSA builds on Remote Services, and is more prescriptive
• Pluggable distribution mechanisms (WS, RMI, JMS...)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

• The OSGi Alliance has two specifications. Remote Services and Remote
Service Admin (RSA)

• What I have described is Remote Services
• The underlying implementation is completely unspecified
• RSA builds on Remote Services, and is more prescriptive
• Pluggable distribution mechanisms (WS, RMI, JMS...)
• Pluggable discovery mechanisms (SLP, mDNS, Zookeeper...)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
OSGi Remote Services and Remote Service Admin

• The OSGi Alliance has two specifications. Remote Services and Remote
Service Admin (RSA)

• What I have described is Remote Services
• The underlying implementation is completely unspecified
• RSA builds on Remote Services, and is more prescriptive
• Pluggable distribution mechanisms (WS, RMI, JMS...)
• Pluggable discovery mechanisms (SLP, mDNS, Zookeeper...)
• Notifications for “Topology Manager” bundles to decide which services to
export/import

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packaging Applications with Packager

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned
• Leverage the existing bundle/service lifecycle and API

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned
• Leverage the existing bundle/service lifecycle and API
• Allow processes to be installed and uninstalled in a running system

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned
• Leverage the existing bundle/service lifecycle and API
• Allow processes to be installed and uninstalled in a running system
• Allow processes to be dynamically started and stopped

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned
• Leverage the existing bundle/service lifecycle and API
• Allow processes to be installed and uninstalled in a running system
• Allow processes to be dynamically started and stopped
• Allow integration with other OSGi specification

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned
• Leverage the existing bundle/service lifecycle and API
• Allow processes to be installed and uninstalled in a running system
• Allow processes to be dynamically started and stopped
• Allow integration with other OSGi specification
• Dynamic Configuration using Config Admin,

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned
• Leverage the existing bundle/service lifecycle and API
• Allow processes to be installed and uninstalled in a running system
• Allow processes to be dynamically started and stopped
• Allow integration with other OSGi specification
• Dynamic Configuration using Config Admin,
• Use and provide Local and Remote Services

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Aims and advantages

• Package programs as self-describing OSGi Bundles
• Allows Dynamic Resolution and Assembly of runtimes
• Can be semantically versioned
• Leverage the existing bundle/service lifecycle and API
• Allow processes to be installed and uninstalled in a running system
• Allow processes to be dynamically started and stopped
• Allow integration with other OSGi specification
• Dynamic Configuration using Config Admin,
• Use and provide Local and Remote Services
• Allow existing code to be packaged without change
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

• Wrap Native Artifacts in OSGi Bundles

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

• Wrap Native Artifacts in OSGi Bundles
• Link the Artifact Lifecycle to OSGi.

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

• Wrap Native Artifacts in OSGi Bundles
• Link the Artifact Lifecycle to OSGi.
• Bundle Install/Resolve/Start

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

=> Artifact “install”

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

• Wrap Native Artifacts in OSGi Bundles
• Link the Artifact Lifecycle to OSGi.
• Bundle Install/Resolve/Start => Artifact “install”
• Service registration/unregistration => Artifact “run/stop”

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

• Wrap Native Artifacts in OSGi Bundles
• Link the Artifact Lifecycle to OSGi.
• Bundle Install/Resolve/Start => Artifact “install”
• Service registration/unregistration => Artifact “run/stop”
• Bundle Uninstall => Artifact “uninstall”

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

• Wrap Native Artifacts in OSGi Bundles
• Link the Artifact Lifecycle to OSGi.
• Bundle Install/Resolve/Start => Artifact “install”
• Service registration/unregistration => Artifact “run/stop”
• Bundle Uninstall => Artifact “uninstall”

• Link to Standard OSGi Services: Configuration Admin, Metatype, Log
Service...

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Approach

• Wrap Native Artifacts in OSGi Bundles
• Link the Artifact Lifecycle to OSGi.
• Bundle Install/Resolve/Start => Artifact “install”
• Service registration/unregistration => Artifact “run/stop”
• Bundle Uninstall => Artifact “uninstall”

• Link to Standard OSGi Services: Configuration Admin, Metatype, Log
Service...

<system name="BackEnd:MongoDB" boundary="fibre">
<!-- MongoDB package -->
<system.part category="msf" name="com.paremus.packager.demos.mongo.guard">
<property name="port" value="27017" />
</system.part>
</system>
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Separation of Concerns

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Separation of Concerns

• What are we running, and how do we configure/run it?

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Separation of Concerns

• What are we running, and how do we configure/run it?
• Package Type Service

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Separation of Concerns

• What are we running, and how do we configure/run it?
• Package Type Service
• When should we start it, and what configuration properties should we use?

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Separation of Concerns

• What are we running, and how do we configure/run it?
• Package Type Service
• When should we start it, and what configuration properties should we use?
• Process Guard Service

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Separation of Concerns

• What are we running, and how do we configure/run it?
• Package Type Service
• When should we start it, and what configuration properties should we use?
• Process Guard Service
• Actually invoke the start/stop scripts, and monitor the state of the external
process

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Separation of Concerns

• What are we running, and how do we configure/run it?
• Package Type Service
• When should we start it, and what configuration properties should we use?
• Process Guard Service
• Actually invoke the start/stop scripts, and monitor the state of the external
process

• Packager Manager/Watchdog Process
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Package Types

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Package Type

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Package Type

• Usually contains the native parts

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Package Type

• Usually contains the native parts
• Installs the Native Program

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Package Type

• Usually contains the native parts
• Installs the Native Program
• Configures the program based on the supplied config

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Package Type

• Usually contains the native parts
• Installs the Native Program
• Configures the program based on the supplied config
• Returns scripts to the Packager for: start, stop, ping...

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Package Type

• Usually contains the native parts
• Installs the Native Program
• Configures the program based on the supplied config
• Returns scripts to the Packager for: start, stop, ping...
• Is (usually) platform specific

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Package Type

• Usually contains the native parts
• Installs the Native Program
• Configures the program based on the supplied config
• Returns scripts to the Packager for: start, stop, ping...
• Is (usually) platform specific
Provide-Capability: packager.type;
packager.type=mongodb;
version:Version=2.2.0
Require-Capability: osgi.native;
filter:=”(&
(osgi.native.osname=Linux)
(osgi.native.processor=x86-64)
)”
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time
• Not suitable for running in a bundle’s Activator!

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time
• Not suitable for running in a bundle’s Activator!
• Installation should be asynchronous with respect to bundle start

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time
• Not suitable for running in a bundle’s Activator!
• Installation should be asynchronous with respect to bundle start
• Run on a separate thread?

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time
• Not suitable for running in a bundle’s Activator!
• Installation should be asynchronous with respect to bundle start
• Run on a separate thread?
• Install on demand?

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time
• Not suitable for running in a bundle’s Activator!
• Installation should be asynchronous with respect to bundle start
• Run on a separate thread?
• Install on demand?
• Notify possible clients when a type is “ready” using the whiteboard pattern

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time
• Not suitable for running in a bundle’s Activator!
• Installation should be asynchronous with respect to bundle start
• Run on a separate thread?
• Install on demand?
• Notify possible clients when a type is “ready” using the whiteboard pattern
• Service properties advertise what the external process is
Package Type

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Package Type works

• Installing an external process can take a long time
• Not suitable for running in a bundle’s Activator!
• Installation should be asynchronous with respect to bundle start
• Run on a separate thread?
• Install on demand?
• Notify possible clients when a type is “ready” using the whiteboard pattern
• Service properties advertise what the external process is
• Service unregisters to “uninstall”
Package Type

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Process Guards

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Process Guard Service

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Process Guard Service

• Gathers Process Config Properties

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Process Guard Service

• Gathers Process Config Properties
• Existence signals When to Start/Stop

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Process Guard Service

• Gathers Process Config Properties
• Existence signals When to Start/Stop
• Receives State Change Events (started, crashed...)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Process Guard Service

• Gathers Process Config Properties
• Existence signals When to Start/Stop
• Receives State Change Events (started, crashed...)
• Advertises the Running Package (Optional)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Process Guard Service

• Gathers Process Config Properties
• Existence signals When to Start/Stop
• Receives State Change Events (started, crashed...)
• Advertises the Running Package (Optional)
• Usually platform independent

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent
• When a process should be started the process guard registers a service

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent
• When a process should be started the process guard registers a service
• Another example of using the whiteboard pattern

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent
• When a process should be started the process guard registers a service
• Another example of using the whiteboard pattern
• It uses the same service properties as the package type

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent
• When a process should be started the process guard registers a service
• Another example of using the whiteboard pattern
• It uses the same service properties as the package type
• Often implemented as a ManagedService or ManagedServiceFactory

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent
• When a process should be started the process guard registers a service
• Another example of using the whiteboard pattern
• It uses the same service properties as the package type
• Often implemented as a ManagedService or ManagedServiceFactory
• Automatically Inject/Delete the configuration for the process
Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent
• When a process should be started the process guard registers a service
• Another example of using the whiteboard pattern
• It uses the same service properties as the package type
• Often implemented as a ManagedService or ManagedServiceFactory
• Automatically Inject/Delete the configuration for the process
Config Admin

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Process Guard

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
How the Process Guard works

• Most external processes require some level of configuration to run
• This configuration is often platform independent
• When a process should be started the process guard registers a service
• Another example of using the whiteboard pattern
• It uses the same service properties as the package type
• Often implemented as a ManagedService or ManagedServiceFactory
• Automatically Inject/Delete the configuration for the process
Config Admin

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Process Guard

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

• Listens for matching Package Type and Process Guard Services

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

• Listens for matching Package Type and Process Guard Services
• One Package Type may match many Process Guards

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

• Listens for matching Package Type and Process Guard Services
• One Package Type may match many Process Guards
• For every pair the packager manager starts an instance of the process

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

• Listens for matching Package Type and Process Guard Services
• One Package Type may match many Process Guards
• For every pair the packager manager starts an instance of the process
• Configured by the Package Type with properties from the Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

• Listens for matching Package Type and Process Guard Services
• One Package Type may match many Process Guards
• For every pair the packager manager starts an instance of the process
• Configured by the Package Type with properties from the Process Guard
• A ‘Watchdog’ monitors the process (using scripts from the package type)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

• Listens for matching Package Type and Process Guard Services
• One Package Type may match many Process Guards
• For every pair the packager manager starts an instance of the process
• Configured by the Package Type with properties from the Process Guard
• A ‘Watchdog’ monitors the process (using scripts from the package type)
• Sends notifications to the Process Guard about the state of the process

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
The Packager Manager

• Listens for matching Package Type and Process Guard Services
• One Package Type may match many Process Guards
• For every pair the packager manager starts an instance of the process
• Configured by the Package Type with properties from the Process Guard
• A ‘Watchdog’ monitors the process (using scripts from the package type)
• Sends notifications to the Process Guard about the state of the process
• If either service is unregistered then the process is shut down
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Interactions
Package Type

Packager Manager

Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Interactions
Package Type

Register services
Packager Manager

Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Interactions
Package Type

Get Configuration
Packager Manager

Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Interactions
Package Type

Packager Manager

Create Scripts and start!

Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Interactions
Package Type

Packager Manager

Monitor and notify

Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Packager Interactions
Package Type

Packager Manager

Shutdown on unregistration

Process Guard

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Building dynamically wired systems with
Remote Services and Packager

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Publishing an Endpoint

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Publishing an Endpoint

• How do you tell the rest of the framework that your external process
has started, or where it is?

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Publishing an Endpoint

• How do you tell the rest of the framework that your external process
has started, or where it is?

• The whiteboard pattern to the rescue again!

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Publishing an Endpoint

• How do you tell the rest of the framework that your external process
has started, or where it is?

• The whiteboard pattern to the rescue again!
• The Process Guard can register an “Endpoint” with a marker interface
and a service property with a URI to the process

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Publishing an Endpoint

• How do you tell the rest of the framework that your external process
has started, or where it is?

• The whiteboard pattern to the rescue again!
• The Process Guard can register an “Endpoint” with a marker interface
and a service property with a URI to the process

• It can also make this remotely available...

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Publishing an Endpoint

• How do you tell the rest of the framework that your external process
has started, or where it is?

• The whiteboard pattern to the rescue again!
• The Process Guard can register an “Endpoint” with a marker interface
and a service property with a URI to the process

• It can also make this remotely available...
• Suddenly the process is discoverable in every framework
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

• Process Guard services can be very simple

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

• Process Guard services can be very simple
• Static properties

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

• Process Guard services can be very simple
• Static properties
• Injection from Config Admin

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

• Process Guard services can be very simple
• Static properties
• Injection from Config Admin
• They can also wait and listen for Endpoints (local and remote!)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

• Process Guard services can be very simple
• Static properties
• Injection from Config Admin
• They can also wait and listen for Endpoints (local and remote!)
• Trigger a ManagedServiceFactory with part of the configuration

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

• Process Guard services can be very simple
• Static properties
• Injection from Config Admin
• They can also wait and listen for Endpoints (local and remote!)
• Trigger a ManagedServiceFactory with part of the configuration
• Listen for the Endpoint, complete the configuration

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations

• Process Guard services can be very simple
• Static properties
• Injection from Config Admin
• They can also wait and listen for Endpoints (local and remote!)
• Trigger a ManagedServiceFactory with part of the configuration
• Listen for the Endpoint, complete the configuration
• Register the Process Guard!
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations (2)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations (2)

• Replicating this out over multiple nodes lets you dynamically assemble
large systems with little to no manual configuration input

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations (2)

• Replicating this out over multiple nodes lets you dynamically assemble
large systems with little to no manual configuration input

• Java EE servers

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations (2)

• Replicating this out over multiple nodes lets you dynamically assemble
large systems with little to no manual configuration input

• Java EE servers
• Messaging infrastructure

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations (2)

• Replicating this out over multiple nodes lets you dynamically assemble
large systems with little to no manual configuration input

• Java EE servers
• Messaging infrastructure
• NoSQL stores

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations (2)

• Replicating this out over multiple nodes lets you dynamically assemble
large systems with little to no manual configuration input

• Java EE servers
• Messaging infrastructure
• NoSQL stores
• Because OSGi services are dynamic we can track the service to see if
the endpoint moves!

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Dynamically building configurations (2)

• Replicating this out over multiple nodes lets you dynamically assemble
large systems with little to no manual configuration input

• Java EE servers
• Messaging infrastructure
• NoSQL stores
• Because OSGi services are dynamic we can track the service to see if
the endpoint moves!

• Automatic reconfiguration can rewire the system if a node fails!
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Putting Packager to the test with Redis

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
What is Redis?

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
What is Redis?

• Redis is an open source key-value store (http://redis.io)

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
What is Redis?

• Redis is an open source key-value store (http://redis.io)
• Redis supports queries based on key or value data

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
What is Redis?

• Redis is an open source key-value store (http://redis.io)
• Redis supports queries based on key or value data
• Values can be rich objects like hashes, lists sets or sorted sets

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
What is Redis?

• Redis is an open source key-value store (http://redis.io)
• Redis supports queries based on key or value data
• Values can be rich objects like hashes, lists sets or sorted sets
• Redis supports replication to read-only “slave” nodes

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
What is Redis?

• Redis is an open source key-value store (http://redis.io)
• Redis supports queries based on key or value data
• Values can be rich objects like hashes, lists sets or sorted sets
• Redis supports replication to read-only “slave” nodes
• Wouldn’t it be nice to automatically configure the slaves?

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Demo

Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

Oct 2013
Thanks!

• For more about OSGi...
• Specifications at http://www.osgi.org
• Enterprise OSGi in Action
• http://www.manning.com/cummins
• For more about Packager...
• http://www.bundlerepo.org:8090/display/SF110/Packager

Questions?
Dynamic Distributed Data Stores in OSGi

Wednesday, 30 October 13

Copyright © 2005 - 2013 Paremus Ltd.
May not be reproduced by any means without express permission. All rights reserved.

http://www.paremus.com
info@paremus.com
Oct 2013

More Related Content

Similar to Building dynamic distributed data stores with OSGi - Tim Ward

Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...
Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...
Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...mfrancis
 
Science Gateways: one portal, many e-Infrastructures and related services
Science Gateways: one portal, many e-Infrastructures and related servicesScience Gateways: one portal, many e-Infrastructures and related services
Science Gateways: one portal, many e-Infrastructures and related servicesriround
 
Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...
Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...
Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...Debojyoti Dutta
 
CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...
CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...
CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...Cohesive Networks
 
Designing the Mobile Experience
Designing the Mobile Experience Designing the Mobile Experience
Designing the Mobile Experience Abstraction
 
Designing the Mobile Experience
Designing the Mobile ExperienceDesigning the Mobile Experience
Designing the Mobile ExperienceKaKi Law
 
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...Amazon Web Services
 
SharePoint Highlights: Architectural Changes, door Donald Hessing
SharePoint Highlights: Architectural Changes, door Donald HessingSharePoint Highlights: Architectural Changes, door Donald Hessing
SharePoint Highlights: Architectural Changes, door Donald HessingSparked
 
Intelligent APIs for Big Data & IoT Create customized data views for mobile,...
Intelligent APIs for Big Data & IoT  Create customized data views for mobile,...Intelligent APIs for Big Data & IoT  Create customized data views for mobile,...
Intelligent APIs for Big Data & IoT Create customized data views for mobile,...CA API Management
 
Matt training-html-halfday
Matt training-html-halfdayMatt training-html-halfday
Matt training-html-halfdayMatthew Dobson
 
Scraping Classifieds Ads Sites
Scraping Classifieds Ads SitesScraping Classifieds Ads Sites
Scraping Classifieds Ads SitesPromptCloud
 
Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01
Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01
Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01kiwan naser
 
OSGi World Congress 2002 Summary - J Barr
OSGi World Congress 2002 Summary - J BarrOSGi World Congress 2002 Summary - J Barr
OSGi World Congress 2002 Summary - J Barrmfrancis
 
"Unlocked: The Hybrid Cloud" Business Track
"Unlocked: The Hybrid Cloud" Business Track"Unlocked: The Hybrid Cloud" Business Track
"Unlocked: The Hybrid Cloud" Business TrackHart Hoover
 
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek BaumModularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baummfrancis
 
OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015mfrancis
 
How to be a Chef (Developer Edition)
How to be a Chef (Developer Edition)How to be a Chef (Developer Edition)
How to be a Chef (Developer Edition)Rodrigo Ayala
 

Similar to Building dynamic distributed data stores with OSGi - Tim Ward (20)

Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...
Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...
Just-in-time Java EE - provisioning runtimes for enterprise applications - Ja...
 
Science Gateways: one portal, many e-Infrastructures and related services
Science Gateways: one portal, many e-Infrastructures and related servicesScience Gateways: one portal, many e-Infrastructures and related services
Science Gateways: one portal, many e-Infrastructures and related services
 
Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...
Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...
Predictive Analytics & Visualization - Towards Data Driven Insights for Opens...
 
CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...
CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...
CIW Lab with CoheisveFT: Get started in public cloud - Part 1 Cloud & Virtual...
 
Designing the Mobile Experience
Designing the Mobile Experience Designing the Mobile Experience
Designing the Mobile Experience
 
Designing the Mobile Experience
Designing the Mobile ExperienceDesigning the Mobile Experience
Designing the Mobile Experience
 
HTML5 Slides
HTML5 SlidesHTML5 Slides
HTML5 Slides
 
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
Telco: Voice-Command Personal Agent Service with AWS Cloud (MBL202) | AWS re:...
 
SharePoint Highlights: Architectural Changes, door Donald Hessing
SharePoint Highlights: Architectural Changes, door Donald HessingSharePoint Highlights: Architectural Changes, door Donald Hessing
SharePoint Highlights: Architectural Changes, door Donald Hessing
 
Native Slide
Native SlideNative Slide
Native Slide
 
Intelligent APIs for Big Data & IoT Create customized data views for mobile,...
Intelligent APIs for Big Data & IoT  Create customized data views for mobile,...Intelligent APIs for Big Data & IoT  Create customized data views for mobile,...
Intelligent APIs for Big Data & IoT Create customized data views for mobile,...
 
Matt training-html-halfday
Matt training-html-halfdayMatt training-html-halfday
Matt training-html-halfday
 
Scraping Classifieds Ads Sites
Scraping Classifieds Ads SitesScraping Classifieds Ads Sites
Scraping Classifieds Ads Sites
 
Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01
Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01
Swagsoft howmobileappsarcanhelpyourbusiness-131111122016-phpapp01
 
OSGi World Congress 2002 Summary - J Barr
OSGi World Congress 2002 Summary - J BarrOSGi World Congress 2002 Summary - J Barr
OSGi World Congress 2002 Summary - J Barr
 
"Unlocked: The Hybrid Cloud" Business Track
"Unlocked: The Hybrid Cloud" Business Track"Unlocked: The Hybrid Cloud" Business Track
"Unlocked: The Hybrid Cloud" Business Track
 
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek BaumModularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
 
OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015
 
How to be a Chef (Developer Edition)
How to be a Chef (Developer Edition)How to be a Chef (Developer Edition)
How to be a Chef (Developer Edition)
 
Uberconf 10
Uberconf 10Uberconf 10
Uberconf 10
 

More from mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

More from mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Building dynamic distributed data stores with OSGi - Tim Ward

  • 1. Building dynamic distributed data stores with OSGi http://www.paremus.com info@paremus.com Tim Ward Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 2. Who is Tim Ward? @TimothyWard • Senior Consulting Engineer and Architect at Paremus • 5 years at IBM developing WebSphere Application Server • Container Implementation experience with Java EE and OSGi, including Blueprint, JPA, EJB and JTA • OSGi Specification lead for JPA and Bytecode Weaving • PMC member of the Apache Aries project • Previous speaker at EclipseCon, Devoxx, Jazoon, JAX London, OSGi Community Event... • Author of Manning’s Enterprise OSGi in Action • http://www.manning.com/cummins Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 3. What we’re going to cover • OSGi Remote Services • Deploying external processes using Packager • Building Dynamically wired distributed systems • Demo Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 4. OSGi Remote Services Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 5. OSGi Remote Services (1) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 6. OSGi Remote Services (1) • OSGi Bundles communicate using the Service Registry Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 7. OSGi Remote Services (1) • OSGi Bundles communicate using the Service Registry • This allows for dynamic, loosely coupled interaction Provider A Consumer Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 8. OSGi Remote Services (1) • OSGi Bundles communicate using the Service Registry • This allows for dynamic, loosely coupled interaction Provider A Consumer Provider B Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 9. OSGi Remote Services (1) • OSGi Bundles communicate using the Service Registry • This allows for dynamic, loosely coupled interaction Provider A Consumer Provider B Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 10. OSGi Remote Services (2) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 11. OSGi Remote Services (2) • Because OSGi services are loosely coupled they can come from anywhere! Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 12. OSGi Remote Services (2) • Because OSGi services are loosely coupled they can come from anywhere! • Any service can be transparently remoted * Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 13. OSGi Remote Services (2) • Because OSGi services are loosely coupled they can come from anywhere! • Any service can be transparently remoted * • Service properties are made available remotely too Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 14. OSGi Remote Services (2) • Because OSGi services are loosely coupled they can come from anywhere! • Any service can be transparently remoted * • Service properties are made available remotely too Network Provider A Wormhole Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 15. OSGi Remote Services (2) • Because OSGi services are loosely coupled they can come from anywhere! • Any service can be transparently remoted * • Service properties are made available remotely too Network Provider A Consumer Wormhole Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 16. OSGi Remote Services (2) • Because OSGi services are loosely coupled they can come from anywhere! • Any service can be transparently remoted * • Service properties are made available remotely too Network Provider A Consumer Wormhole * Make sure your service is actually suitable for remoting! Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 17. OSGi Remote Services (3) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 18. OSGi Remote Services (3) • Exposing a remote service is not transparent Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 19. OSGi Remote Services (3) • Exposing a remote service is not transparent Network objectclass = {List, Collection} Provider A Consumer Wormhole Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 20. OSGi Remote Services (3) • Exposing a remote service is not transparent • Services opt-in using the service.exported.interfaces property Network objectclass = {List, Collection} Provider A Consumer Wormhole Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 21. OSGi Remote Services (3) • Exposing a remote service is not transparent • Services opt-in using the service.exported.interfaces property objectclass = {Collection} Network objectclass = {List, Collection} Provider A Consumer Wormhole Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 service.exported.interfaces = {Collection} Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 22. OSGi Remote Services (3) • Exposing a remote service is not transparent • Services opt-in using the service.exported.interfaces property • Imported services are marked with a service.imported = true objectclass = {Collection} Network objectclass = {List, Collection} Provider A Consumer service.imported = true Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Wormhole service.exported.interfaces = {Collection} Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 23. OSGi Remote Services and Remote Service Admin Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 24. OSGi Remote Services and Remote Service Admin • The OSGi Alliance has two specifications. Remote Services and Remote Service Admin (RSA) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 25. OSGi Remote Services and Remote Service Admin • The OSGi Alliance has two specifications. Remote Services and Remote Service Admin (RSA) • What I have described is Remote Services Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 26. OSGi Remote Services and Remote Service Admin • The OSGi Alliance has two specifications. Remote Services and Remote Service Admin (RSA) • What I have described is Remote Services • The underlying implementation is completely unspecified Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 27. OSGi Remote Services and Remote Service Admin • The OSGi Alliance has two specifications. Remote Services and Remote Service Admin (RSA) • What I have described is Remote Services • The underlying implementation is completely unspecified • RSA builds on Remote Services, and is more prescriptive Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 28. OSGi Remote Services and Remote Service Admin • The OSGi Alliance has two specifications. Remote Services and Remote Service Admin (RSA) • What I have described is Remote Services • The underlying implementation is completely unspecified • RSA builds on Remote Services, and is more prescriptive • Pluggable distribution mechanisms (WS, RMI, JMS...) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 29. OSGi Remote Services and Remote Service Admin • The OSGi Alliance has two specifications. Remote Services and Remote Service Admin (RSA) • What I have described is Remote Services • The underlying implementation is completely unspecified • RSA builds on Remote Services, and is more prescriptive • Pluggable distribution mechanisms (WS, RMI, JMS...) • Pluggable discovery mechanisms (SLP, mDNS, Zookeeper...) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 30. OSGi Remote Services and Remote Service Admin • The OSGi Alliance has two specifications. Remote Services and Remote Service Admin (RSA) • What I have described is Remote Services • The underlying implementation is completely unspecified • RSA builds on Remote Services, and is more prescriptive • Pluggable distribution mechanisms (WS, RMI, JMS...) • Pluggable discovery mechanisms (SLP, mDNS, Zookeeper...) • Notifications for “Topology Manager” bundles to decide which services to export/import Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 31. Packaging Applications with Packager Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 32. Packager Aims and advantages Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 33. Packager Aims and advantages • Package programs as self-describing OSGi Bundles Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 34. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 35. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 36. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned • Leverage the existing bundle/service lifecycle and API Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 37. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned • Leverage the existing bundle/service lifecycle and API • Allow processes to be installed and uninstalled in a running system Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 38. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned • Leverage the existing bundle/service lifecycle and API • Allow processes to be installed and uninstalled in a running system • Allow processes to be dynamically started and stopped Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 39. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned • Leverage the existing bundle/service lifecycle and API • Allow processes to be installed and uninstalled in a running system • Allow processes to be dynamically started and stopped • Allow integration with other OSGi specification Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 40. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned • Leverage the existing bundle/service lifecycle and API • Allow processes to be installed and uninstalled in a running system • Allow processes to be dynamically started and stopped • Allow integration with other OSGi specification • Dynamic Configuration using Config Admin, Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 41. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned • Leverage the existing bundle/service lifecycle and API • Allow processes to be installed and uninstalled in a running system • Allow processes to be dynamically started and stopped • Allow integration with other OSGi specification • Dynamic Configuration using Config Admin, • Use and provide Local and Remote Services Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 42. Packager Aims and advantages • Package programs as self-describing OSGi Bundles • Allows Dynamic Resolution and Assembly of runtimes • Can be semantically versioned • Leverage the existing bundle/service lifecycle and API • Allow processes to be installed and uninstalled in a running system • Allow processes to be dynamically started and stopped • Allow integration with other OSGi specification • Dynamic Configuration using Config Admin, • Use and provide Local and Remote Services • Allow existing code to be packaged without change Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 43. Approach Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 44. Approach • Wrap Native Artifacts in OSGi Bundles Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 45. Approach • Wrap Native Artifacts in OSGi Bundles • Link the Artifact Lifecycle to OSGi. Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 46. Approach • Wrap Native Artifacts in OSGi Bundles • Link the Artifact Lifecycle to OSGi. • Bundle Install/Resolve/Start Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 => Artifact “install” Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 47. Approach • Wrap Native Artifacts in OSGi Bundles • Link the Artifact Lifecycle to OSGi. • Bundle Install/Resolve/Start => Artifact “install” • Service registration/unregistration => Artifact “run/stop” Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 48. Approach • Wrap Native Artifacts in OSGi Bundles • Link the Artifact Lifecycle to OSGi. • Bundle Install/Resolve/Start => Artifact “install” • Service registration/unregistration => Artifact “run/stop” • Bundle Uninstall => Artifact “uninstall” Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 49. Approach • Wrap Native Artifacts in OSGi Bundles • Link the Artifact Lifecycle to OSGi. • Bundle Install/Resolve/Start => Artifact “install” • Service registration/unregistration => Artifact “run/stop” • Bundle Uninstall => Artifact “uninstall” • Link to Standard OSGi Services: Configuration Admin, Metatype, Log Service... Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 50. Approach • Wrap Native Artifacts in OSGi Bundles • Link the Artifact Lifecycle to OSGi. • Bundle Install/Resolve/Start => Artifact “install” • Service registration/unregistration => Artifact “run/stop” • Bundle Uninstall => Artifact “uninstall” • Link to Standard OSGi Services: Configuration Admin, Metatype, Log Service... <system name="BackEnd:MongoDB" boundary="fibre"> <!-- MongoDB package --> <system.part category="msf" name="com.paremus.packager.demos.mongo.guard"> <property name="port" value="27017" /> </system.part> </system> Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 51. Separation of Concerns Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 52. Separation of Concerns • What are we running, and how do we configure/run it? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 53. Separation of Concerns • What are we running, and how do we configure/run it? • Package Type Service Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 54. Separation of Concerns • What are we running, and how do we configure/run it? • Package Type Service • When should we start it, and what configuration properties should we use? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 55. Separation of Concerns • What are we running, and how do we configure/run it? • Package Type Service • When should we start it, and what configuration properties should we use? • Process Guard Service Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 56. Separation of Concerns • What are we running, and how do we configure/run it? • Package Type Service • When should we start it, and what configuration properties should we use? • Process Guard Service • Actually invoke the start/stop scripts, and monitor the state of the external process Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 57. Separation of Concerns • What are we running, and how do we configure/run it? • Package Type Service • When should we start it, and what configuration properties should we use? • Process Guard Service • Actually invoke the start/stop scripts, and monitor the state of the external process • Packager Manager/Watchdog Process Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 58. Packager Package Types Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 59. Package Type Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 60. Package Type • Usually contains the native parts Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 61. Package Type • Usually contains the native parts • Installs the Native Program Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 62. Package Type • Usually contains the native parts • Installs the Native Program • Configures the program based on the supplied config Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 63. Package Type • Usually contains the native parts • Installs the Native Program • Configures the program based on the supplied config • Returns scripts to the Packager for: start, stop, ping... Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 64. Package Type • Usually contains the native parts • Installs the Native Program • Configures the program based on the supplied config • Returns scripts to the Packager for: start, stop, ping... • Is (usually) platform specific Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 65. Package Type • Usually contains the native parts • Installs the Native Program • Configures the program based on the supplied config • Returns scripts to the Packager for: start, stop, ping... • Is (usually) platform specific Provide-Capability: packager.type; packager.type=mongodb; version:Version=2.2.0 Require-Capability: osgi.native; filter:=”(& (osgi.native.osname=Linux) (osgi.native.processor=x86-64) )” Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 66. How the Package Type works Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 67. How the Package Type works • Installing an external process can take a long time Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 68. How the Package Type works • Installing an external process can take a long time • Not suitable for running in a bundle’s Activator! Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 69. How the Package Type works • Installing an external process can take a long time • Not suitable for running in a bundle’s Activator! • Installation should be asynchronous with respect to bundle start Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 70. How the Package Type works • Installing an external process can take a long time • Not suitable for running in a bundle’s Activator! • Installation should be asynchronous with respect to bundle start • Run on a separate thread? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 71. How the Package Type works • Installing an external process can take a long time • Not suitable for running in a bundle’s Activator! • Installation should be asynchronous with respect to bundle start • Run on a separate thread? • Install on demand? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 72. How the Package Type works • Installing an external process can take a long time • Not suitable for running in a bundle’s Activator! • Installation should be asynchronous with respect to bundle start • Run on a separate thread? • Install on demand? • Notify possible clients when a type is “ready” using the whiteboard pattern Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 73. How the Package Type works • Installing an external process can take a long time • Not suitable for running in a bundle’s Activator! • Installation should be asynchronous with respect to bundle start • Run on a separate thread? • Install on demand? • Notify possible clients when a type is “ready” using the whiteboard pattern • Service properties advertise what the external process is Package Type Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 74. How the Package Type works • Installing an external process can take a long time • Not suitable for running in a bundle’s Activator! • Installation should be asynchronous with respect to bundle start • Run on a separate thread? • Install on demand? • Notify possible clients when a type is “ready” using the whiteboard pattern • Service properties advertise what the external process is • Service unregisters to “uninstall” Package Type Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 75. Packager Process Guards Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 76. Process Guard Service Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 77. Process Guard Service • Gathers Process Config Properties Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 78. Process Guard Service • Gathers Process Config Properties • Existence signals When to Start/Stop Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 79. Process Guard Service • Gathers Process Config Properties • Existence signals When to Start/Stop • Receives State Change Events (started, crashed...) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 80. Process Guard Service • Gathers Process Config Properties • Existence signals When to Start/Stop • Receives State Change Events (started, crashed...) • Advertises the Running Package (Optional) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 81. Process Guard Service • Gathers Process Config Properties • Existence signals When to Start/Stop • Receives State Change Events (started, crashed...) • Advertises the Running Package (Optional) • Usually platform independent Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 82. How the Process Guard works Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 83. How the Process Guard works • Most external processes require some level of configuration to run Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 84. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 85. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent • When a process should be started the process guard registers a service Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 86. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent • When a process should be started the process guard registers a service • Another example of using the whiteboard pattern Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 87. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent • When a process should be started the process guard registers a service • Another example of using the whiteboard pattern • It uses the same service properties as the package type Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 88. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent • When a process should be started the process guard registers a service • Another example of using the whiteboard pattern • It uses the same service properties as the package type • Often implemented as a ManagedService or ManagedServiceFactory Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 89. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent • When a process should be started the process guard registers a service • Another example of using the whiteboard pattern • It uses the same service properties as the package type • Often implemented as a ManagedService or ManagedServiceFactory • Automatically Inject/Delete the configuration for the process Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 90. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent • When a process should be started the process guard registers a service • Another example of using the whiteboard pattern • It uses the same service properties as the package type • Often implemented as a ManagedService or ManagedServiceFactory • Automatically Inject/Delete the configuration for the process Config Admin Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Process Guard Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 91. How the Process Guard works • Most external processes require some level of configuration to run • This configuration is often platform independent • When a process should be started the process guard registers a service • Another example of using the whiteboard pattern • It uses the same service properties as the package type • Often implemented as a ManagedService or ManagedServiceFactory • Automatically Inject/Delete the configuration for the process Config Admin Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Process Guard Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 92. The Packager Manager Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 93. The Packager Manager Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 94. The Packager Manager • Listens for matching Package Type and Process Guard Services Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 95. The Packager Manager • Listens for matching Package Type and Process Guard Services • One Package Type may match many Process Guards Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 96. The Packager Manager • Listens for matching Package Type and Process Guard Services • One Package Type may match many Process Guards • For every pair the packager manager starts an instance of the process Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 97. The Packager Manager • Listens for matching Package Type and Process Guard Services • One Package Type may match many Process Guards • For every pair the packager manager starts an instance of the process • Configured by the Package Type with properties from the Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 98. The Packager Manager • Listens for matching Package Type and Process Guard Services • One Package Type may match many Process Guards • For every pair the packager manager starts an instance of the process • Configured by the Package Type with properties from the Process Guard • A ‘Watchdog’ monitors the process (using scripts from the package type) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 99. The Packager Manager • Listens for matching Package Type and Process Guard Services • One Package Type may match many Process Guards • For every pair the packager manager starts an instance of the process • Configured by the Package Type with properties from the Process Guard • A ‘Watchdog’ monitors the process (using scripts from the package type) • Sends notifications to the Process Guard about the state of the process Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 100. The Packager Manager • Listens for matching Package Type and Process Guard Services • One Package Type may match many Process Guards • For every pair the packager manager starts an instance of the process • Configured by the Package Type with properties from the Process Guard • A ‘Watchdog’ monitors the process (using scripts from the package type) • Sends notifications to the Process Guard about the state of the process • If either service is unregistered then the process is shut down Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 101. Packager Interactions Package Type Packager Manager Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 102. Packager Interactions Package Type Register services Packager Manager Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 103. Packager Interactions Package Type Get Configuration Packager Manager Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 104. Packager Interactions Package Type Packager Manager Create Scripts and start! Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 105. Packager Interactions Package Type Packager Manager Monitor and notify Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 106. Packager Interactions Package Type Packager Manager Shutdown on unregistration Process Guard Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 107. Building dynamically wired systems with Remote Services and Packager Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 108. Publishing an Endpoint Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 109. Publishing an Endpoint • How do you tell the rest of the framework that your external process has started, or where it is? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 110. Publishing an Endpoint • How do you tell the rest of the framework that your external process has started, or where it is? • The whiteboard pattern to the rescue again! Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 111. Publishing an Endpoint • How do you tell the rest of the framework that your external process has started, or where it is? • The whiteboard pattern to the rescue again! • The Process Guard can register an “Endpoint” with a marker interface and a service property with a URI to the process Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 112. Publishing an Endpoint • How do you tell the rest of the framework that your external process has started, or where it is? • The whiteboard pattern to the rescue again! • The Process Guard can register an “Endpoint” with a marker interface and a service property with a URI to the process • It can also make this remotely available... Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 113. Publishing an Endpoint • How do you tell the rest of the framework that your external process has started, or where it is? • The whiteboard pattern to the rescue again! • The Process Guard can register an “Endpoint” with a marker interface and a service property with a URI to the process • It can also make this remotely available... • Suddenly the process is discoverable in every framework Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 114. Dynamically building configurations Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 115. Dynamically building configurations • Process Guard services can be very simple Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 116. Dynamically building configurations • Process Guard services can be very simple • Static properties Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 117. Dynamically building configurations • Process Guard services can be very simple • Static properties • Injection from Config Admin Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 118. Dynamically building configurations • Process Guard services can be very simple • Static properties • Injection from Config Admin • They can also wait and listen for Endpoints (local and remote!) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 119. Dynamically building configurations • Process Guard services can be very simple • Static properties • Injection from Config Admin • They can also wait and listen for Endpoints (local and remote!) • Trigger a ManagedServiceFactory with part of the configuration Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 120. Dynamically building configurations • Process Guard services can be very simple • Static properties • Injection from Config Admin • They can also wait and listen for Endpoints (local and remote!) • Trigger a ManagedServiceFactory with part of the configuration • Listen for the Endpoint, complete the configuration Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 121. Dynamically building configurations • Process Guard services can be very simple • Static properties • Injection from Config Admin • They can also wait and listen for Endpoints (local and remote!) • Trigger a ManagedServiceFactory with part of the configuration • Listen for the Endpoint, complete the configuration • Register the Process Guard! Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 122. Dynamically building configurations (2) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 123. Dynamically building configurations (2) • Replicating this out over multiple nodes lets you dynamically assemble large systems with little to no manual configuration input Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 124. Dynamically building configurations (2) • Replicating this out over multiple nodes lets you dynamically assemble large systems with little to no manual configuration input • Java EE servers Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 125. Dynamically building configurations (2) • Replicating this out over multiple nodes lets you dynamically assemble large systems with little to no manual configuration input • Java EE servers • Messaging infrastructure Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 126. Dynamically building configurations (2) • Replicating this out over multiple nodes lets you dynamically assemble large systems with little to no manual configuration input • Java EE servers • Messaging infrastructure • NoSQL stores Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 127. Dynamically building configurations (2) • Replicating this out over multiple nodes lets you dynamically assemble large systems with little to no manual configuration input • Java EE servers • Messaging infrastructure • NoSQL stores • Because OSGi services are dynamic we can track the service to see if the endpoint moves! Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 128. Dynamically building configurations (2) • Replicating this out over multiple nodes lets you dynamically assemble large systems with little to no manual configuration input • Java EE servers • Messaging infrastructure • NoSQL stores • Because OSGi services are dynamic we can track the service to see if the endpoint moves! • Automatic reconfiguration can rewire the system if a node fails! Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 129. Putting Packager to the test with Redis Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 130. What is Redis? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 131. What is Redis? • Redis is an open source key-value store (http://redis.io) Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 132. What is Redis? • Redis is an open source key-value store (http://redis.io) • Redis supports queries based on key or value data Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 133. What is Redis? • Redis is an open source key-value store (http://redis.io) • Redis supports queries based on key or value data • Values can be rich objects like hashes, lists sets or sorted sets Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 134. What is Redis? • Redis is an open source key-value store (http://redis.io) • Redis supports queries based on key or value data • Values can be rich objects like hashes, lists sets or sorted sets • Redis supports replication to read-only “slave” nodes Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 135. What is Redis? • Redis is an open source key-value store (http://redis.io) • Redis supports queries based on key or value data • Values can be rich objects like hashes, lists sets or sorted sets • Redis supports replication to read-only “slave” nodes • Wouldn’t it be nice to automatically configure the slaves? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 136. Demo Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. Oct 2013
  • 137. Thanks! • For more about OSGi... • Specifications at http://www.osgi.org • Enterprise OSGi in Action • http://www.manning.com/cummins • For more about Packager... • http://www.bundlerepo.org:8090/display/SF110/Packager Questions? Dynamic Distributed Data Stores in OSGi Wednesday, 30 October 13 Copyright © 2005 - 2013 Paremus Ltd. May not be reproduced by any means without express permission. All rights reserved. http://www.paremus.com info@paremus.com Oct 2013