ipopo service-oriented components in python - thomas calmant

Post on 20-Jun-2015

1.856 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule) Lightning Talk ABSTRACT This talk introduces two Python libraries: Pelix, a dynamic service platform, inspired from OSGi, and iPOPO, a service-oriented component model based on the concepts of iPOJO. It will also present some of the featured services, how to communicate between iPOPO and OSGi and finally the projects in which this framework is involved.

TRANSCRIPT

iPOPO : SOCM in Python

Thomas CalmantSoftware Engineer, isandlaTech

Once upon a time...

A bit of history

A bit of history

● OSGi + iPOJO● Need to call low-level methods● Need to run as-is on devices without Java● OSGi as Lingua Franca

A bit of history

● OSGi + iPOJO● Need to call low-level methods● Need to run as-is on devices without Java● OSGi as Lingua Franca

Pelix + iPOPO !

Requirements

● Support Python 2.x and 3.x● Low footprint● Fully cross-platform

– Minimal Linux, NetBSD, Windows, ...

● Easy to understand for iPOJO addicts

Pelix

● Implement OSGi Core specifications● Reuse concepts :

– Bundle / BundleContext

– Service Reference / Registration…

iPOPO

● Mimic iPOJO components behavior● Reuse concepts :

– Annotated Factory class

– Manipulated Factory class

– Injection of dependencies (IoC)

– Component instance managed by Handlers

Challenges

● No class loader– Modules executed during import

● Manual thread safety● No interface

– Duck typing

● Various interpreters– … and various versions

The story continues

iPOPO in the real world:

�$ �������:���*���� ����#�&��� ����

Now what ?

● Mix Python and Java worlds– … by implementing Remote Services specification

Now what ?

● Mix Python and Java worlds– … by implementing Remote Services specification

● Support more and more compendium services– Configuration Admin

– Log Service

– …

Now what ?

● Mix Python and Java worlds– … by implementing Remote Services specification

● Support more and more compendium services– Configuration Admin

– Log Service

– …

● Handle bundle dependencies

�L:nksiPOPOGitHubjsonrpclib-pelix

ipopo.coderxpress.net

github.com/tcalmant/ipopo

github.com/tcalmant/jsonrpclib

Spread the word !

top related