Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduce OSGi BlueDavy 1.0 2007-10-28.

Similar presentations


Presentation on theme: "Introduce OSGi BlueDavy 1.0 2007-10-28."— Presentation transcript:

1 Introduce OSGi BlueDavy

2 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Agenda  Play OSGi  Who use OSGi  What is OSGi  OSGi R4 Implemention  How to develop OSGi app  OSGi Resources

3 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Play OSGi  Let’s see a short demo  First we see an bulletin application,but only have bulletin list function;  We want to add new bulletin,so we find newbulletin module from module respository,then install & start it,now we can add new bulletin;  We see the feature of OSGi application  modularity  dynamic,”Plug and Play”  extensionable  these features are supported by OSGi,the meaning is that you don’t need realize those features yourself,what you need do is just use it

4 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Agenda  Play OSGi  Who use OSGi  What is OSGi  OSGi R4 Implemention  How to develop OSGi app  OSGi Resources

5 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Who use OSGi  IBM  Websphere  RSA  BEA  microServices,All BEA product will be based on microServices  Eclipse  Apache  Struts 2  Spring  Spring-OSGi  Simens,Nokia,BMW,Cisco etc.  SAP,Oracle,IONA etc. are interested in OSGi,and be OSGi EEG member

6 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Agenda  Play OSGi  Who use OSGi  What is OSGi  OSGi R4 Implemention  How to develop OSGi app  OSGi Resources

7 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn What is OSGi  Dynamic Module System For Java  JSR232 JSR291  Universal Middleware  Best practice guide and support for building modularity/dynamic/extensionable system  Modularity with rule;  Dynamic support for module,OSGi service,configuration;  Extension support with OSGi service.

8 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn OSGi Basic Concepts  Modularity  Define module in OSGi;  Publish functions for other modules;  Use functions provided by other modules. Bundle JAVA Operating System Hardware OSGi Framework Service registry packages

9 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Define module in OSGi  In OSGi module compose of one or more bundles;  Bundle is a normal jar file,the difference is its Manifest.mf file,OSGi add some specical header info property to declarative bundle,such as:  bundle-version,export-package,import-package

10 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Publish functions for other bundles  add export-package header info to provide package for other bundles to use,such as cn.org.osgi.ppt.service;  add Fragment-Host header info to provide all resources for host bundle to use;  publish OSGi service for other bundles;  Use BundleContext.registerService to register normal java interface as OSGi service;  Write xml with rule to declarative normal java class as OSGi component,and provide service interface for other bundles,such as:

11 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Use functions provided by other modules  add import-package header info to import packages provided by other bundles,then you can use the java class in those packages;  add require-bundle header info to use all export packages and resources provider by bundle;  use OSGi service provided by other bundles;  Use BundleContext.getService to get OSGi service provided by other bundles;  Write xml with rule to declarative normal java class as OSGi component,and inject OSGi service provided by other bundles,such as:

12 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn OSGi Basic Concepts  Dynamic  Bundle lifecycle  OSGi component lifecycle  Handle the dynamic – when bundle lifecycle changed; – when OSGi component lifecycle changed; – when configuration changed; – when framework changed; – when custom event published;

13 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Bundle lifecycle  OSGi provide an API for manageing bundles lifecycle (Install/Resolve/Start/Stop/Refresh/Update/Unin stall),so OSGi framework RI will control bundle lifecycle self; INSTALLED RESOLVED UNINSTALLED ACTIVE STOPPING STARTING start stop

14 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn OSGi component lifecycle  Component that provide no service;  when all need OSGi services(exclued optional service) are usable,the component will be actived;  Component that provide services;  when all need OSGi services(exclued optional service) are usable;  other component call this OSGi service implemention.

15 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Handle the dynamic  when bundle lifecycle changed;  OSGi component lifecycle will change automatically;  OSGi will handle bundle lifecycle dynamic self;  when OSGi component lifecycle changed;  OSGi service tracker can be used to monitor OSGi service;  Declarative Services use bind-method,unbind-method to notify the dynamic of OSGi service.  when configuration changed;  Configuration Admin Service automatically notify the configuration change.  when framework changed;  FrameworkEventListener can be implemented to monitor framework.  when custom event published;  EventAdmin Service can to used to publish & handle custom event.

16 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn OSGi Basic Concepts  Extensionable  Service filter supported by OSGi can be used to extension function;  Multi service reference supported by OSGi can be used to extension function;  Extension point provided by Equinox can be used to extension function.

17 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Agenda  Play OSGi  Who use OSGi  What is OSGi  OSGi R4 Implemention  How to develop OSGi app  OSGi Resources

18 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn OSGi R4 Implemention  Equinox  Realized by Eclipse team;  As the OSGi R4 RI;   Used by Eclipse RCP & Eclipse other products.  Felix  Realized by Apache Team; 

19 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Agenda  Play OSGi  Who use OSGi  What is OSGi  OSGi R4 Implemention  How to develop OSGi app  OSGi Resources

20 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn How to develop OSGi app  Get started  Write your first bundle  Deploy & Manage first bundle  Publish and use OSGi Service  FAQ

21 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Get started  Download Eclipse from  Download Equinox bundles from  most bundles exist in eclipse

22 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Write your first bundle  New plugin-project,select this plug-in is targeted to run with an OSGi framework in project wizard page;

23 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Write your first bundle  Then enter the plug-in content page  Write associate info,then click finish to create the project.

24 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Write your first bundle  Write activator class  Say ‘hello’ when bundle started;  Say ‘byebye’ when bundle stopped;

25 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Deploy & Manage first bundle  Deploy in eclipse  Deploy outside alone  Manage bundle in console

26 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Deploy in eclipse  Open run dialog,new in Equinox OSGi Framework, select Workspace Plug-ins and org.eclipse.osgi in Target platform;

27 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Deploy in eclipse  Click Run button,then you can see this in console;

28 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Deploy outside alone  Create equinox framework app outside alone first;  create Equinox directory,then create configuration,plugins directory in Equinox directory;  put org.eclipse.osgi.jar & org.eclipse.osgi.services.jar to plugins directory;  create config.ini in configuration directory,content in config.ini like this: osgi.noShutdown=true osgi.bundles.defaultStartLevel=4 osgi.configuration.cascaded=false eclipse.ignoreApp=true  create run.bat in Equinox directory,content in run.bat(windows) like off java -jar plugins/org.eclipse.osgi_3.2.1.R32x_v jar - configuration configuration -console

29 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Deploy outside alone  Start equinox framework and install first bundle in OSGi console;  install first bundle use directory mode; – Input command like this in OSGi console: install file:/D:\work\workspace\OSGi-Bulletin\FirstBundle  install first bundle use jar file; – package first bundle into jar file; – Export the project as deployable plug-ins and fragments – Input command like this in OSGi conosle: install file:/D:\Opendoc\Equinox\plugins\FirstBundle_1.0.0.jar

30 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Manage bundle in console  use ss to find bundle id  use start,stop,update,uninstall to manage bundle with bundle id  start 2 (start bundle)  stop 2 (stop bundle)  update 2 (update bundle on the fly)  uninstall 2 (uninstall bundle)

31 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Publish OSGi Service  Use OSGi declarative services to publish and use OSGi Service,then when you run OSGi application,you need install Equinox DS plugin;  Create ServiceBundle to publish OSGi service;  Create cn.org.osgi.ppt.service.HelloService Interface;  Create cn.org.osgi.ppt.component.HelloComponent to implemention HelloService;  Publish HelloService as OSGi service using DS component xml;  Add component.xml to MANIFEST.MF Service-Component property  Export package cn.org.osgi.ppt.service

32 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Use OSGi Service  Add cn.org.osgi.ppt.service to import-package;  Use HelloService in firstbundle with two kind methods;  context.getService method – In Activator class: ServiceReference serviceRef=context.getServiceReference(HelloService.class.getName()); if(serviceRef!=null){ HelloService service=(HelloService) context.getService(serviceRef); service.say("Activator"); }  Declarative Services method –create cn.org.osgi.ppt.firstbundle.FirstComponent class with inject service method: public void setService(HelloService service){ this.service=service; } public void unsetService(HelloService service){ if(this.service!=service) return; this.service=null; System.out.println("HelloService 不可用 "); } –write ds component xml to inject OSGi service; –Add component.xml to MANIFEST.MF Service-Component property

33 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn Agenda  Play OSGi  Who use OSGi  What is OSGi  OSGi R4 Implemention  How to develop OSGi app  OSGi Resources

34 致力于 OSGi 的推广和发展 OSGi China User Group: 致力于 OSGi 的推广和发展http://www.osgi.org.cn OSGi Resources  OSGi R4 SpecificationsOSGi R4 Specifications  《 OSGi 实战》 Opendoc 《 OSGi 实战》 Opendoc  《 OSGi 进阶》 Opendoc 《 OSGi 进阶》 Opendoc    

35 Click to edit company slogan. OSGi China User Group


Download ppt "Introduce OSGi BlueDavy 1.0 2007-10-28."

Similar presentations


Ads by Google