ipopo service-oriented components in python - thomas calmant
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 !