Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CelixUniversal
OSGi?    Alexander
Broekhuis
   alexander.broekhuis@luminis.eu
Agenda• Celix• Services
in
C• Dynamic
Assembly• Remote
Services• Deployment• Celix
Status• Universal
OSGi• Demo
Celix• OSGi
specificaEon
implemented
in
C • Adapted
where
needed• Focussed
on
Embedded
Dynamic
Systems• Based
on
Apache
Fel...
Services
in
C• Follows
the
OSGi
SpecificaEon • A
Service
Registry
for
tracking
services • Bundle
AcEvators
for
registering
...
Services
in
C• Service • Struct
with
funcEon
pointers• AcEvator • start
/
stop                                            ...
Dynamic
Assembly• Dynamic
Loading • Library                                              Depends • Using
dlfcn.h  • dlopen...
Remote
Services• Remote
Service
Admin • Enterprise
SpecificaEon• Interoperability• Protocol • Tuscany? • ZeroMQ? • Google
P...
Remote
Services                                           «service»     Server                                 Server     ...
Remote
Services                                           «service»     Server                                 Server     ...
Deployment• Bundling • Zip
file
with
Shared
Object                                                     Depends  • (.so,
.dl...
Status
‐
Framework• Dynamic
Loading
of
Libraries• Service
Registry
for
Querying
and
Registering• Bundles
with
Manifest
for...
Status
‐
Extras• Shell
ImplementaEon
for
InspecEng
Bundles • ps/start/stop
command• Dependency
Manager
for
Dependencies • ...
Universal
OSGi• RFP‐89 • Proposed
to
the
mailing
list
in
2007 • Since
then
remained
silent • Ongoing
effort
to
pick
up
agai...
Universal
OSGi
‐
Celix• NaEve
port
in
C• Status • Based
on
the
R4
SpecificaEon  • Deployable
bundles  • Bundle
lifecycle  •...
Links• Original
Proposal: • hdp://wiki.apache.org/incubator/CelixProposal• Incubator
Mailing
List
Archive: • hdp://incubat...
Upcoming SlideShare
Loading in …5
×

Celix, Universal OSGi?

2,140 views

Published on

Apache Celix is an effort, under the Apache Incubator, to implement the OSGi specification in C. There are some distinct changes to be able to map the specification to C.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Celix, Universal OSGi?

  1. 1. CelixUniversal
OSGi? Alexander
Broekhuis
 alexander.broekhuis@luminis.eu
  2. 2. Agenda• Celix• Services
in
C• Dynamic
Assembly• Remote
Services• Deployment• Celix
Status• Universal
OSGi• Demo
  3. 3. Celix• OSGi
specificaEon
implemented
in
C • Adapted
where
needed• Focussed
on
Embedded
Dynamic
Systems• Based
on
Apache
Felix• Remote
Services • Distributed
Systems • Interoperability
with
Java
  4. 4. Services
in
C• Follows
the
OSGi
SpecificaEon • A
Service
Registry
for
tracking
services • Bundle
AcEvators
for
registering
services • Bundle
Lifecycle
for
tracking
Bundle
state• Structs
instead
of
Interfaces • Using
funcEon
pointers
to
forward
calls
  5. 5. Services
in
C• Service • Struct
with
funcEon
pointers• AcEvator • start
/
stop Activator <struct>• Celix create + start Service registerService + stop • bundleContext create pointer • registry Celix Component • etc.. getService depends
  6. 6. Dynamic
Assembly• Dynamic
Loading • Library Depends • Using
dlfcn.h • dlopen
/
dlclose
 <shared object> <shared object> Celix Initializes Provider Realizes • dlsym <struct> Uses Provider Service Initializes <shared object> Consumer Depends
  7. 7. Remote
Services• Remote
Service
Admin • Enterprise
SpecificaEon• Interoperability• Protocol • Tuscany? • ZeroMQ? • Google
Protobufs?
  8. 8. Remote
Services «service» Server Server Client imported = "true" «service» Server ServerStub ServerProxy Registry remote = "true" «track» Remote Proxy Publisher Publisher «service» «service» Discovery Discovery Service Service
  9. 9. Remote
Services «service» Server Server Client imported = "true" «service» Server ServerStub ServerProxy Registry remote = "true" «track» Remote Proxy Publisher Publisher «service» «service» Stubs Discovery Proxies Discovery Service Service
  10. 10. Deployment• Bundling • Zip
file
with
Shared
Object Depends • (.so,
.dll,
.dylib,
...) • Manifest <shared object> Celix Initializes <shared object> Provider Realizes • Import
/
Export <struct> Uses Provider• RunEme Service • Extracted
to
cache Initializes <shared object> Consumer Depends
  11. 11. Status
‐
Framework• Dynamic
Loading
of
Libraries• Service
Registry
for
Querying
and
Registering• Bundles
with
Manifest
for
Deployment• Service
Tracker
for
tracking
Services• Bundle
State
and
Life
Cycle• Bundle
Cache
for
Storing
State
  12. 12. Status
‐
Extras• Shell
ImplementaEon
for
InspecEng
Bundles • ps/start/stop
command• Dependency
Manager
for
Dependencies • Simple
ImplementaEon • StaEc
Linked• Open
Source
at
Apache • Currently
in
the
Incubator
  13. 13. Universal
OSGi• RFP‐89 • Proposed
to
the
mailing
list
in
2007 • Since
then
remained
silent • Ongoing
effort
to
pick
up
again• Supported
Languages • C++
/
.NET
language
(C#)
/
ECMAScript • What
about
C?• Interest
from
Community?
  14. 14. Universal
OSGi
‐
Celix• NaEve
port
in
C• Status • Based
on
the
R4
SpecificaEon • Deployable
bundles • Bundle
lifecycle • Service
registry • Framework
API • Remote
Services • Standards
for
IPC
and
communicaEons
  15. 15. Links• Original
Proposal: • hdp://wiki.apache.org/incubator/CelixProposal• Incubator
Mailing
List
Archive: • hdp://incubator.markmail.org/search/?q=Celix• IncubaEon
Status: • hdp://incubator.apache.org/projects/celix.html• Project
Page: • hdp://incubator.apache.org/celix/

×