skyecore - rev up your osgi services!
TRANSCRIPT
![Page 1: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/1.jpg)
SkyeCORE
Rev Up Your OSGi Services!
![Page 2: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/2.jpg)
What is SkyeCORE?
• A distributed applications platform.
• Automates the discovery and publishing of services.
• Built on top of the Eclipse Platform.
• Fully supports and exposes OSGi (Equinox).
![Page 3: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/3.jpg)
Demo Presentation
• Hello World Service Example
• Demonstrates the dynamic discovery and invocation of a remote service.
• Entire example source code available: http://www.skyecore.net/downloads/Hello
World Example.zip.
![Page 4: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/4.jpg)
P2P Network Model
• Based on JXTA.
• SkyeCORE Instance ≈ Peer
• Peers identified via UUID.
• Publish/Discover Advertisements.
• Support for Peer Groups (Scoped and Secure Environments).
![Page 5: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/5.jpg)
Discovery
• LAN: Multicasting is used.
• WAN: Controlled propagated search via Rendezvous Peers.
LAN 1
Peer A
Netw
ork Boun
dary
LAN 2
Peer B
RDV 1 RDV
2
Peer C
Peer D
![Page 6: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/6.jpg)
Security
• Encrypted data transfer.
• Peer Credentials: Used in the authentication of peers and access control.
• Support for digests and signatures on messages to ensure integrity.
![Page 7: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/7.jpg)
• Works with firewalls and NAT devices.
• May require a Relay Peer to relay messages for peers behind Firewall/NAT.
Firewalls and NAT
Relay Z
Peer A Peer
B
Firewall
![Page 8: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/8.jpg)
Service Interfaces
• Developed as Java interfaces.
• Provide a contractual API for service implementations.
• Declared through Service Interfaces extension point.
![Page 9: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/9.jpg)
Services
• Developed as Java objects.
• Implement 1 or more service interfaces.
• Abide by a lifecycle (init, destroy).
• Declared through Services extension point.
![Page 10: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/10.jpg)
Service Sessions
• Used to identify a peer across service requests.
• Store/persist peer information using any type of Java object.
• Access session ID, creation and last accessed time.
![Page 11: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/11.jpg)
How’s It Work?
• Proxies (local and remote) generated from service interfaces.
• Service Registration (Local):– Generation of local proxy– Local proxy registered in OSGi
service registry.– Service Advertisement published.
![Page 12: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/12.jpg)
How’s It Work? (continued)
• Service Discovery (Remote):– Service Advertisement discovered.– Generation of remote proxy– Remote proxy registered in OSGi
service registry.
![Page 13: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/13.jpg)
How’s It Work? (continued)
• Remote Method Invocation:– Establish connection via bi-directional pipe.
– Create and send Service Request (service name, method, serialized args) over pipe.
– Process request (Service Engine); perform invocation through reflection.
– Create and send Service Response (return value/exception) over pipe.
![Page 14: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/14.jpg)
How’s It Work? (continued)
• What happens when a service becomes unavailable?
• Remote proxy is unregistered if:– Connection fails– Service Unavailable Exception– Service Advertisement indicates
unavailable status.
![Page 15: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/15.jpg)
How’s It Work? (continued)
![Page 16: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/16.jpg)
Tracking Services
• Accomplished via OSGi Service Tracker.
• Specify 1 or more service interfaces to track with optional filtering.
• Added, modified, and removed notifications.
![Page 17: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/17.jpg)
Events
• Supports notification of several events:– Discoveries– Published– Searches– Service Interface and Service
Registrations.
• Register listeners in OSGi Service Registry (“Whiteboard” Pattern)
![Page 18: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/18.jpg)
Creating an App
• Based on Eclipse plug-in model.
• Deploy as plug-ins or features.
• System bootstrap allows for complete application control and launching of a custom UI.
![Page 19: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/19.jpg)
Console
• Provides a text-based command UI.
• Core commands used to list services, interfaces, discoveries, etc.
• Extended with custom commands via Commands extension point.
![Page 20: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/20.jpg)
Road Map
• SkyeCORE 2.0 slated for October 2009 release.– Streaming capability.– Enhanced security.– Subscriber model (propagation of
custom events).– SIE (SkyeCORE Interface
Environment) graphical UI based on Eclipse workbench.
– User desired features!
![Page 21: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/21.jpg)
Distributed OSGi
• RFC 119
• Built around the OSGi service model.
• Distribution software and Discovery service components.
• Interoperability with other technologies.
• Enable a service to be remote via setting of property.
![Page 22: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/22.jpg)
Resources
• SkyeCORE - http://www.skyecore.net Developer’s Guide, API JavaDocs, Downloads, Hello World Example Source, SDK, Forum, Feedback
• JXTA - https://jxta.dev.java.net
• OSGi 4.2 Early Draft: http://www.osgi.org/download/osgi-4.2-early-draft.pdf
![Page 23: SkyeCORE - Rev Up Your OSGi Services!](https://reader036.vdocuments.us/reader036/viewer/2022081404/5585298ed8b42a30308b471c/html5/thumbnails/23.jpg)