EclipseCon FR : Ignite talks, OSGi Resolver in action

20
OSGi TM Resolver in action Peergreen Deployment System [email protected]

Transcript of EclipseCon FR : Ignite talks, OSGi Resolver in action

Page 1: EclipseCon FR : Ignite talks, OSGi Resolver in action

OSGiTM Resolver in actionPeergreen Deployment System

[email protected] @sauthieg

Page 2: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

285 seconds left

What do we do in Peergreen?

I’ll talk about …

Page 3: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

270 seconds left

We need(for deployment at least …)

Efficiency(multi-core architectures)

Heterogeneity(different kind of artifacts) Ease of use

Page 4: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

255 seconds left

Specification:OSGi Resolver 1.0

• Part of OSGi Enterprise R5• Build relationships• Implemented in Apache Felix

Requirement“I want …”

Capability“I offer …”Resolver

Namespace + LDAP filter Namespace + attributes

Page 5: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

240 seconds left

Resolver production• Wire(s) (satisfied requirements)• Or Exception (unsatisfied requirements)

Requirement CapabilityWire

Need Interpretation(use resources, make decisions, …)

Page 6: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

225 seconds left

PeergreenDeployment System Goals

Efficient (multi-threading)

Resource Neutral

Plug-able architecture

Artifact Model

Page 7: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

210 seconds left

ArtifactsName + URI

(File, Directory, Maven, …)

Resolver Resource(provides capabilities)

Page 8: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

195 seconds left

FacetsSpecialized View

Artifact Decoration

(Webapp, Bundle, Configadmin, …)

Dictates Lifecycle(phase sequence)

Express Capability(when installed)

Page 9: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

180 seconds left

PhasesExecution Controller

Logical Steps

(read-xml, install, start, stop, …)

Resolver Client(find compatible processors)

Pipeline / Parallel(execution)

Page 10: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

165 seconds left

ProcessorsUnit of Work

Chained Together

(Transformer, Facet producer, …)

Resolver Resource(requirements, capabilities)

Page 11: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

150 seconds left

High level view

Discovery Phase• Download• Scan• Find

dependencies

Execution Phase• Facet’s lifecycle• Concurrency

Page 12: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

135 seconds left

@bundle

Execution phaseConcurrent Execution

(per facet lifecycle)

Multiple Artifacts(sharing same lifecycle)

Facet Decoration(on the fly)start

install

@webapp

start

configure

read-xml

Page 13: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

120 seconds left

Processor ResolutionPer Phase

Resolving bound processor’s requirementsagainst artifact’s capabilities

Satisfied processors are executed

Page 14: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

123

105 seconds left

InterpretationMissing Capabilities

(unsatisfied processors)

B

A

DC

E ?

Requires Sorting& Filtering

(linearize graph)

E C B

Page 15: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

90 seconds left

Extensibility

OSGi ServicesFacet addition

Facet Lifecycle(phases definition)

New Processors

Page 16: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

75 seconds leftEx

ampl

eRequirements

Capability

Facet

Page 17: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

60 seconds left

ModelQuery-able

Useful for Reporting

Introspection capabilities(facets, processors, execution times)

Store relations(transformations, creations, dependencies)

Page 18: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

45 seconds left

plan

plan

web ejbjar

mvn

bundle

Artifact Tree

Report

Meta-information(root, report, …)

Page 19: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

30 seconds left

BenefitsExtensibility

(new requirements and capabilities)

Dynamism(processors, facet and phases)

Ease of Use(extension development, deployment reporting)

Efficiency(maximize concurrency)

Page 20: EclipseCon FR : Ignite talks, OSGi Resolver in action

© 2013 Peergreen, Confidential & Proprietary

15 seconds left

ThanksFollow Us(@peergreeninfo)

Get your copy(M1 is there, M2 soon)

www.peergreen.com