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.

iPOPO Service-Oriented components in Python - Thomas Calmant

2,614 views

Published on

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.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

iPOPO Service-Oriented components in Python - Thomas Calmant

  1. 1. iPOPO : SOCM in Python Thomas Calmant Software Engineer, isandlaTech
  2. 2. A bit of history Once upon a time...
  3. 3. 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
  4. 4. 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 !
  5. 5. Requirements ● Support Python 2.x and 3.x ● Low footprint ● Fully cross-platform – ● Minimal Linux, NetBSD, Windows, ... Easy to understand for iPOJO addicts
  6. 6. Pelix ● Implement OSGi Core specifications ● Reuse concepts : – Bundle / BundleContext – Service Reference / Registration …
  7. 7. iPOPO ● Mimic iPOJO components behavior ● Reuse concepts : – Annotated Factory class – Manipulated Factory class – Injection of dependencies (IoC) – Component instance managed by Handlers
  8. 8. Challenges ● No class loader – Modules executed during import ● Manual thread safety ● No interface – ● Duck typing Various interpreters – … and various versions
  9. 9. The story continues iPOPO in the real world:
  10. 10. Now what ? ● Mix Python and Java worlds – … by implementing Remote Services specification
  11. 11. Now what ? ● Mix Python and Java worlds – ● … by implementing Remote Services specification Support more and more compendium services – Configuration Admin – Log Service – …
  12. 12. Now what ? ● Mix Python and Java worlds – ● … by implementing Remote Services specification Support more and more compendium services – – Log Service – ● Configuration Admin … Handle bundle dependencies

×