iPOPO Service-Oriented components in Python - Thomas Calmant
-
Upload
mfrancis -
Category
Technology
-
view
1.851 -
download
3
description
Transcript of iPOPO Service-Oriented components in Python - Thomas Calmant
![Page 1: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/reader034/viewer/2022052600/55856f70d8b42a512c8b496f/html5/thumbnails/10.jpg)
�
�$ �������:���*���� ����#�&��� ����
![Page 11: iPOPO Service-Oriented components in Python - Thomas Calmant](https://reader034.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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.fdocuments.us/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 !