SkyeCORE - Rev Up Your OSGi Services!

950 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
950
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SkyeCORE - Rev Up Your OSGi Services!

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

×