ipopo service-oriented components in python - thomas calmant

14
iPOPO : SOCM in Python Thomas Calmant Software Engineer, isandlaTech

Upload: mfrancis

Post on 20-Jun-2015

1.856 views

Category:

Technology


3 download

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

Page 1: iPOPO Service-Oriented components in Python - Thomas Calmant

iPOPO : SOCM in Python

Thomas CalmantSoftware Engineer, isandlaTech

Page 2: iPOPO Service-Oriented components in Python - Thomas Calmant

Once upon a time...

A bit of history

Page 3: iPOPO Service-Oriented components in Python - Thomas Calmant

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

Page 4: iPOPO Service-Oriented components in Python - Thomas Calmant

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 !

Page 5: iPOPO Service-Oriented components in Python - Thomas Calmant

Requirements

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

– Minimal Linux, NetBSD, Windows, ...

● Easy to understand for iPOJO addicts

Page 6: iPOPO Service-Oriented components in Python - Thomas Calmant

Pelix

● Implement OSGi Core specifications● Reuse concepts :

– Bundle / BundleContext

– Service Reference / Registration…

Page 7: iPOPO Service-Oriented components in Python - Thomas Calmant

iPOPO

● Mimic iPOJO components behavior● Reuse concepts :

– Annotated Factory class

– Manipulated Factory class

– Injection of dependencies (IoC)

– Component instance managed by Handlers

Page 8: iPOPO Service-Oriented components in Python - Thomas Calmant

Challenges

● No class loader– Modules executed during import

● Manual thread safety● No interface

– Duck typing

● Various interpreters– … and various versions

Page 9: iPOPO Service-Oriented components in Python - Thomas Calmant

The story continues

iPOPO in the real world:

Page 10: iPOPO Service-Oriented components in Python - Thomas Calmant

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

Page 11: iPOPO Service-Oriented components in Python - Thomas Calmant

Now what ?

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

Page 12: iPOPO Service-Oriented components in Python - Thomas Calmant

Now what ?

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

● Support more and more compendium services– Configuration Admin

– Log Service

– …

Page 13: iPOPO Service-Oriented components in Python - Thomas Calmant

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

Page 14: iPOPO Service-Oriented components in Python - Thomas Calmant

�L:nksiPOPOGitHubjsonrpclib-pelix

ipopo.coderxpress.net

github.com/tcalmant/ipopo

github.com/tcalmant/jsonrpclib

Spread the word !