Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to OSGi +ActorFrame Surya Bahadur Kathayat

Similar presentations


Presentation on theme: "Introduction to OSGi +ActorFrame Surya Bahadur Kathayat"— Presentation transcript:

1 Introduction to OSGi +ActorFrame Surya Bahadur Kathayat surya@item.ntnu.no

2 Presentation includes What is the OSGi service platform? Why the OSGi service platform? ActorFrame and OSGi Some hands on exercise

3 What is the OSGi service platform? Java based service platform that can be remotely managed Applications and components (coming in the form of bundles for deployment) can be remotely installed, started, stopped, updated and uninstalled without requiring a reboot

4 OSGi Framework Bundles - Bundles are the OSGi components made by the developers. Services - The services layer connects bundles in a dynamic way by offering a publish-find-bind model for plain old Java objects. Life-Cycle - The API to install, start, stop, update, and uninstall bundles. Modules - The layer that defines how a bundle can import and export code. Security - The layer that handles the security aspects. Execution Environment - Defines what methods and classes are available in a specific platform. Ref:http://www.osgi.org/About/WhatIsOSGi

5 Why the OSGi service platform? Components are smaller  Easier to make Components are not coupled to other components  Gives reusability Excellent model for the myriad of customizations and variation that are required of today’s devices Collaborative model  Allows reuse of other components for most problems More on - http://www.osgi.org/About/WhyOSGihttp://www.osgi.org/About/WhyOSGi

6 ActorFrame and OSGi Core component is the ActorRouter bundle  contains forward table – info about in which bundle (visible) actor is running  carries messages between the actors running on different java containers  actors send actor messages to each other

7 Hands on.. OSGi Bundle  How to create simple service OSGi bundle?  How to create OSGi bundle with Ramses?  You will need Java, ActorFrame, Ramses, Eclipse, Knopflerfish OSGi

8 Creating and testing simple OSGi bundle Install Ramses plugin for eclipse 3.4 (classical version)  Update site: http://w3.item.ntnu.no/ramses/updates/ Import org.isisproject.actorframeosgi project in eclipse: New|Other|Examples|Import ActorFrrame OSGi Libraries from Tellu Create java project – lets name it ExampleBundle Add org.isisproject.actorframeosgi project in the Build path of ExampleBundle project (or alternatively add framework.jar in the build path) Create src/META-INF/MANIFEST.MF file in the ExampleBundle project Create Activator.java, and test java class say HelloWorld.java in the src/ folder Export the src as a java jar in eclipse chosing created manifest file Thats all.....test it dragging it to the knopflerfish OSGi console More on http://www.knopflerfish.org/tutorials/osgi_tutorial.pdfhttp://www.knopflerfish.org/tutorials/osgi_tutorial.pdf

9 Java Files package no.ntnu.item.examplebundle; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class Activator implements BundleActivator { public static BundleContext bc = null; private HelloWorld thread = null; public void start(BundleContext bc) throws Exception { System.out.println("SimpleBundle starting..."); Activator.bc = bc; this.thread = new HelloWorld(); this.thread.start(); } public void stop(BundleContext bc) throws Exception { System.out.println("SimpleBundle stopping..."); this.thread.stopThread(); this.thread.join(); Activator.bc = null; } } package no.ntnu.item.examplebundle; public class HelloWorld extends Thread { private boolean running = true; public HelloWorld() { } public void run() { while (running) { System.out.println("Hello World!"); try { Thread.sleep(5000); } catch (InterruptedException e) { System.out.println("HelloWorld ERROR: " + e); } public void stopThread() { this.running = false; } No services/application implemented yet Threading just for some debugging

10 Manifest File Manifest-Version: 1.0 Bundle-Description: Bundle-Name: Example Bundle-Classpath:. Bundle-Activator: no.ntnu.item.examplebundle.A ctivator Import-Package: org.osgi.framework Bundle-ManifestVersion: 2 Bundle-Vendor: NTNU Bundle-SymbolicName: MyExampleBundle Bundle-Version: 1.0.1

11 Lets see..

12 Creating a simple Service Create service interface and service implementation Register the service from the start method in Activator class Add service package to Export-Package property in the MANIFEST file, in order to make your service accessible to other services Export as a java jar bundle and deploy

13 Lets see..

14 Creating a simple Service client Get the service reference from the start method in Activator class Add service package to Import-Package property in the MANIFEST file, in order to declare that your service need to have access ot this package Export as a java jar bundle and deploy

15 Lets see..

16 OSGi Bundles with ActorFrame/Ramses Create Java Project and extend it to Ramses Project type Design your services/actors – UML model Generate code and create OSGi bundle – just with one click http://www.item.ntnu.no/academics/courses/ttm3/faq


Download ppt "Introduction to OSGi +ActorFrame Surya Bahadur Kathayat"

Similar presentations


Ads by Google