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
![Page 1: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/1.jpg)
iPOPO : SOCM in Python
Thomas CalmantSoftware Engineer, isandlaTech
![Page 2: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/2.jpg)
Once upon a time...
A bit of history
![Page 3: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/3.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/6.jpg)
Pelix
● Implement OSGi Core specifications● Reuse concepts :
– Bundle / BundleContext
– Service Reference / Registration…
![Page 7: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/9.jpg)
The story continues
iPOPO in the real world:
![Page 10: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/10.jpg)
�
�$ �������:���*���� ����#�&��� ����
![Page 11: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/11.jpg)
Now what ?
● Mix Python and Java worlds– … by implementing Remote Services specification
![Page 12: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/14.jpg)
�
�L:nksiPOPOGitHubjsonrpclib-pelix
ipopo.coderxpress.net
github.com/tcalmant/ipopo
github.com/tcalmant/jsonrpclib
Spread the word !