Download - iPOPO Service-Oriented components in Python - Thomas Calmant

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 !