SlideShare a Scribd company logo
Ching Yi, Chan (qrtt1) OSGi  入門與簡介
WHAT IS OSGi ? The  OSGi™  specifications define a standardized, component-oriented, computing environment for networked services that is the foundation of an enhanced service-oriented architecture. Adding an OSGi Service Platform to a networked device (embedded as well as servers), adds the capability to manage the lifecycle of the software components in the device from anywhere in the network. Software components can be installed, updated, or removed on the fly without ever having to disrupt the operation of the device.
WHAT IS OSGi ? The  OSGi™  specifications define a standardized, component-oriented, computing environment for networked services that is the foundation of an enhanced service-oriented architecture. Adding an OSGi Service Platform to a networked device (embedded as well as servers), adds the capability to manage the lifecycle of the software components in the device from anywhere in the network. Software components can be installed, updated, or removed on the fly without ever having to disrupt the operation of the device.  WHO    CARE ?
WHAT IS OSGi ?
今日焦點 ,[object Object],[object Object],[object Object],[object Object],略懂
OSGi is … ,[object Object]
Service Platform ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OSGi Services Example ,[object Object],[object Object],[object Object],[object Object],[object Object]
Where is Service ? ,[object Object],[object Object],[object Object],[object Object]
Quick Tutorial In Bundle ,[object Object],[object Object],[object Object],[object Object],[object Object]
Hello Bundle Activator & MANIFEST.MF ,[object Object],[object Object],[object Object],[object Object],Make jug.hello bundle with Activator print hello & bye. Run and use start/stop.
Bundle - visibility ,[object Object],[object Object],[object Object],[object Object],[object Object]
Bundle - visibility ,[object Object],[object Object],jug.hello.api
Bundle - visibility ,[object Object],[object Object],B A import  jug.hello.api .HelloWorld; class Foo{ public void hello(){ new HelloWorld().hello(); } } jug.hello.api
Bundle – package propety ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Export-Package: jug.hello.api;version=“1.0.0” Export-Package: jug.hello.api;version=“2.0.0” jug.hello.api.v1 jug.hello.api.v2 jug.hello Import-Package:  jug.hello.api Demo hello.api later 版本高者優先
Export-Package: jug.hello.api;version=“1.0.0” Export-Package: jug.hello.api;version=“2.0.0” jug.hello.api.v1 jug.hello.api.v2 jug.hello Import-Package: jug.hello.api;version=“[1.0.0,1.5.0]” Demo hello.api later 選則偏好的版本
Life Cycle Demo hello.api later INSTALLED RESOLVED UNINSTALLED ACTIVE STOPPING STARTING start stop
Life Cycle ,[object Object],[object Object],[object Object],Demo remote Demo jug.hello.api (change import version)
OSGi Service & URL Shorten Bundle
Service Bundle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Service Registry ,[object Object],ServiceRegistration  registration ; Properties prop = new Properties(); prop.setProperty("name", "0rz.tw"); registration =   context.registerService ( IShortenURL.class.getName() , new OrzURL(), prop);
Find All Service ,[object Object],ServiceReference[] refs =  context.getServiceReferences ( IShortenURL.class.getName() ,    null );
Service Filter (LDAP Filter) context. getAllServiceReferences ( IShortenURL.class.getName(),  String. format ( "(name=%s)" , name) ); “ (name=0rz.tw)” “ (name=tinyurl)” 過濾含有屬性 name ,且值為  0rz.tw  的  Service 過濾含有屬性 name ,且值為  tinyurl  的  Service
Service Filter (LDAP Filter) 選擇具有  cn  屬性且值為  Babs Jensen  者 "(cn=Babs Jensen)"  以  !  排除具有  cn  屬性且值為  Tim Howes  者 "(!(cn=Tim Howes))"  選擇具有  objectclass  屬性且值為  Persion  並且不含屬性  sn  值  Jensen  與屬性  cn  且值為  Babs J 開頭者 "(&   (" + Constants.OBJECTCLASS + "=Person)   (|(sn=Jensen)(cn=Babs J*)) )"  "(o=univ*of*mich*)"
Service Tracker ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
tracker =  new ServiceTracker(context, IShortenURL.class.getName(), null) { public Object  addingService (ServiceReference reference) { ui.resetAvailableServiceList(context); ui.updateStatus(String.format("Service [%s] is available.",  reference.getProperty("name"))); return super.addingService(reference); } public void  removedService (ServiceReference reference, Object service) { ui.resetAvailableServiceList(context); ui.updateStatus(String.format("Service [%s] is unavailable.",  reference.getProperty("name"))); super.removedService(reference, service); } }; tracker. open ();
Demo Service Gone
Demo Service Back
你需要  OSGi  嗎? ,[object Object],[object Object]
導入  OSGi  的問題 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manifest-Version: 1.0 Created-By: 1.5.0_12 (Sun Microsystems Inc.) Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt Import-Package: com.thoughtworks.xstream;version="[1.2.2, 2.0.0)";reso lution:=optional,com.thoughtworks.xstream.annotations;version="[1.2.2 , 2.0.0)";resolution:=optional,com.thoughtworks.xstream.converters;ve rsion="[1.2.2, 2.0.0)";resolution:=optional,com.thoughtworks.xstream. io;version="[1.2.2, 2.0.0)";resolution:=optional,com.thoughtworks.xst ream.io.json;version="[1.2.2, 2.0.0)";resolution:=optional,com.though tworks.xstream.io.xml;version="[1.2.2, 2.0.0)";resolution:=optional,j avax.jms;version="[1.1.0, 2.0.0)",javax.management,javax.management.j 2ee.statistics;version="[1.0.1, 2.0.0)",javax.management.openmbean,ja vax.management.remote,javax.naming,javax.naming.directory,javax.namin g.event,javax.naming.spi,javax.net,javax.net.ssl,javax.security.auth, javax.security.auth.callback,javax.security.auth.login,javax.security .auth.spi,javax.sql,javax.transaction;version="[1.0.1, 2.0.0)";resolu tion:=optional,javax.transaction.xa;version="[1.0.1, 2.0.0)";resoluti on:=optional,javax.xml.parsers,org.apache.activeio.journal;version="[ 3.1.0, 4.0.0)";resolution:=optional,org.apache.activeio.journal.activ e;version="[3.1.0, 4.0.0)";resolution:=optional,org.apache.activeio.p acket;version="[3.1.0, 4.0.0)";resolution:=optional,org.apache.camel; version="[1.3.0, 2.0.0)";resolution:=optional,org.apache.camel.compon
導入  OSGi  的問題 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
導入  OSGi  的問題 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
導入  OSGi  的問題 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
導入  OSGi  的問題 ,[object Object],[object Object],[object Object],System.exit(0);
[object Object],[object Object]

More Related Content

What's hot

Kissy editor开发与设计
Kissy editor开发与设计Kissy editor开发与设计
Kissy editor开发与设计
yiming he
 
JCConf2015: groovy to gradle
 JCConf2015: groovy to gradle JCConf2015: groovy to gradle
JCConf2015: groovy to gradle
Ching Yi Chan
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
Justin Lin
 
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导yiditushe
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
Justin Lin
 
PHPUnit 入門介紹
PHPUnit 入門介紹PHPUnit 入門介紹
PHPUnit 入門介紹
Jace Ju
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践yiditushe
 
X Fire开发指南
X Fire开发指南X Fire开发指南
X Fire开发指南yiditushe
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)FLASH开发者交流会
 
Net Parallel Programming .NET平行處理與執行序
Net Parallel Programming .NET平行處理與執行序Net Parallel Programming .NET平行處理與執行序
Net Parallel Programming .NET平行處理與執行序HO-HSUN LIN
 
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
 
程式人雜誌 2015年五月
程式人雜誌 2015年五月程式人雜誌 2015年五月
程式人雜誌 2015年五月
鍾誠 陳鍾誠
 
Package安裝與使用
Package安裝與使用Package安裝與使用
Package安裝與使用
Shengyou Fan
 

What's hot (13)

Kissy editor开发与设计
Kissy editor开发与设计Kissy editor开发与设计
Kissy editor开发与设计
 
JCConf2015: groovy to gradle
 JCConf2015: groovy to gradle JCConf2015: groovy to gradle
JCConf2015: groovy to gradle
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
 
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
 
PHPUnit 入門介紹
PHPUnit 入門介紹PHPUnit 入門介紹
PHPUnit 入門介紹
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 
X Fire开发指南
X Fire开发指南X Fire开发指南
X Fire开发指南
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)
 
Net Parallel Programming .NET平行處理與執行序
Net Parallel Programming .NET平行處理與執行序Net Parallel Programming .NET平行處理與執行序
Net Parallel Programming .NET平行處理與執行序
 
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
 
程式人雜誌 2015年五月
程式人雜誌 2015年五月程式人雜誌 2015年五月
程式人雜誌 2015年五月
 
Package安裝與使用
Package安裝與使用Package安裝與使用
Package安裝與使用
 

Similar to Osgi Intro

Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理frankwsj
 
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
Andrew Wu
 
2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aks2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aks
Roberson Liou
 
Kissy design
Kissy designKissy design
Kissy design
yiming he
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇
建興 王
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 
Kissy模块化实践
Kissy模块化实践Kissy模块化实践
Kissy模块化实践yiming he
 
Introduction to ngn sce
Introduction to ngn sceIntroduction to ngn sce
Introduction to ngn sce
gdems
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)FLASH开发者交流会
 
網站設計100步
網站設計100步網站設計100步
網站設計100步evercislide
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.toleone
 
Open Api&Sip
Open Api&SipOpen Api&Sip
Open Api&Sip
cenwenchu
 
Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0yiditushe
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTarget Source
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2
yiming he
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展
江華 奚
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程yiditushe
 

Similar to Osgi Intro (20)

Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
 
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
 
2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aks2023-netconf-deploy-azure-function-with-KEDA-on-aks
2023-netconf-deploy-azure-function-with-KEDA-on-aks
 
Kissy design
Kissy designKissy design
Kissy design
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
Kissy模块化实践
Kissy模块化实践Kissy模块化实践
Kissy模块化实践
 
Introduction to ngn sce
Introduction to ngn sceIntroduction to ngn sce
Introduction to ngn sce
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.t
 
Open Api&Sip
Open Api&SipOpen Api&Sip
Open Api&Sip
 
Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展
 
敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程
 

More from Ching Yi Chan

JCConf2016 Jenkins Pipeline
JCConf2016 Jenkins PipelineJCConf2016 Jenkins Pipeline
JCConf2016 Jenkins Pipeline
Ching Yi Chan
 
Linking error
Linking errorLinking error
Linking error
Ching Yi Chan
 
老舊web上雲端
老舊web上雲端老舊web上雲端
老舊web上雲端
Ching Yi Chan
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011Ching Yi Chan
 
using Queue Server for batch processing
using Queue Server for batch processingusing Queue Server for batch processing
using Queue Server for batch processingChing Yi Chan
 
idea: talk about the Active Cache
idea: talk about the Active Cacheidea: talk about the Active Cache
idea: talk about the Active CacheChing Yi Chan
 
Java web programming
Java web programmingJava web programming
Java web programmingChing Yi Chan
 
Android NDK (JUG@TW 2011, Oct.)
Android NDK (JUG@TW 2011, Oct.)Android NDK (JUG@TW 2011, Oct.)
Android NDK (JUG@TW 2011, Oct.)
Ching Yi Chan
 

More from Ching Yi Chan (10)

JCConf2016 Jenkins Pipeline
JCConf2016 Jenkins PipelineJCConf2016 Jenkins Pipeline
JCConf2016 Jenkins Pipeline
 
Linking error
Linking errorLinking error
Linking error
 
老舊web上雲端
老舊web上雲端老舊web上雲端
老舊web上雲端
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
 
using Queue Server for batch processing
using Queue Server for batch processingusing Queue Server for batch processing
using Queue Server for batch processing
 
idea: talk about the Active Cache
idea: talk about the Active Cacheidea: talk about the Active Cache
idea: talk about the Active Cache
 
Talk about fabric
Talk about fabricTalk about fabric
Talk about fabric
 
Java web programming
Java web programmingJava web programming
Java web programming
 
Android NDK (JUG@TW 2011, Oct.)
Android NDK (JUG@TW 2011, Oct.)Android NDK (JUG@TW 2011, Oct.)
Android NDK (JUG@TW 2011, Oct.)
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 

Recently uploaded

前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】
前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】
前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】
微信 tytyqqww业务接单
 
一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单
一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单
一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单
h0wovd5
 
一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理
一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理
一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理
ictglzse
 
VS2022入門................................
VS2022入門................................VS2022入門................................
VS2022入門................................
Rico Chen
 
🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...
🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...
🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...
微信 tytyqqww业务接单
 
一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单
h0wovd5
 
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
ssuserd66db11
 
Lesson 3 Self-Introduction New words 1 .pptx
Lesson 3 Self-Introduction New words 1 .pptxLesson 3 Self-Introduction New words 1 .pptx
Lesson 3 Self-Introduction New words 1 .pptx
priscilleng1
 
一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单
一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单
一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单
h0wovd5
 
一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单
一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单
一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单
h0wovd5
 
Unit 3 Self-Introduction New words 3.pptx
Unit 3 Self-Introduction New words 3.pptxUnit 3 Self-Introduction New words 3.pptx
Unit 3 Self-Introduction New words 3.pptx
priscilleng1
 
Saint Justin, martyr, doctor of the Church (Chinese).pptx
Saint Justin, martyr, doctor of the Church (Chinese).pptxSaint Justin, martyr, doctor of the Church (Chinese).pptx
Saint Justin, martyr, doctor of the Church (Chinese).pptx
Martin M Flynn
 
GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】
GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】
GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】
微信 tytyqqww业务接单
 
🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...
🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...
🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...
微信 tytyqqww业务接单
 
黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...
黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...
黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...
微信 tytyqqww业务接单
 
澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】
澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】
澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】
微信 tytyqqww业务接单
 

Recently uploaded (16)

前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】
前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】
前置学历问题应该怎么处理?GPA低申硕困难,可以修改成绩单吗?毕业难?学历认证来帮忙!留服中心授权机构🎓【微信:oojjiijj】
 
一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单
一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单
一比一原版(Adelaide毕业证)阿德莱德大学毕业证成绩单
 
一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理
一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理
一比一原版(Ryerson毕业证书)瑞尔森大学毕业证成绩单如何办理
 
VS2022入門................................
VS2022入門................................VS2022入門................................
VS2022入門................................
 
🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...
🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...
🔥黑客改成绩,你想知道的都在这里! 🌟[爆炸头] 大胆尝试新方法?试试这个吧~ 💡 提高效率,不再拖延。一键优化,成绩瞬间飙升! #学习动力源泉 #神奇改...
 
一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证书)昆士兰大学毕业证成绩单
 
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
 
Lesson 3 Self-Introduction New words 1 .pptx
Lesson 3 Self-Introduction New words 1 .pptxLesson 3 Self-Introduction New words 1 .pptx
Lesson 3 Self-Introduction New words 1 .pptx
 
一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单
一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单
一比一原版(Griffith毕业证书)格里菲斯大学毕业证成绩单
 
一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单
一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单
一比一原版(JCU毕业证书)詹姆斯库克大学毕业证成绩单
 
Unit 3 Self-Introduction New words 3.pptx
Unit 3 Self-Introduction New words 3.pptxUnit 3 Self-Introduction New words 3.pptx
Unit 3 Self-Introduction New words 3.pptx
 
Saint Justin, martyr, doctor of the Church (Chinese).pptx
Saint Justin, martyr, doctor of the Church (Chinese).pptxSaint Justin, martyr, doctor of the Church (Chinese).pptx
Saint Justin, martyr, doctor of the Church (Chinese).pptx
 
GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】
GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】
GPA低,申硕困难。想问一下是否能修改成绩单?希望得到您的帮助申请美国大学改成绩单可以吗?如何增加申请成功几率【微信:oojjiijj】
 
🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...
🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...
🎓挂科?不存在的! 想修改成绩却怕麻烦?别担心,我们有绝招! 💡🌟一分钟内搞定,轻松0元就能改好哦~ #快速修复#省心省力#技术爆棚#简单易操作【微信:o...
 
黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...
黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...
黑客常用的邮件入侵方式如何破解Instagram帐户和密码,留才认证和留服认证的区别中留服认证•海外学历认证•国外学历学位认证留才认证和留信认证(留信认证...
 
澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】
澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】
澳大利亚大学成绩单修改 GPA修改 G5研究生保录英国大学成绩修单改 GPA修改 G5研究生保录实时手机定位app有哪些?【微信:oojjiijj】
 

Osgi Intro

  • 1. Ching Yi, Chan (qrtt1) OSGi 入門與簡介
  • 2. WHAT IS OSGi ? The OSGi™ specifications define a standardized, component-oriented, computing environment for networked services that is the foundation of an enhanced service-oriented architecture. Adding an OSGi Service Platform to a networked device (embedded as well as servers), adds the capability to manage the lifecycle of the software components in the device from anywhere in the network. Software components can be installed, updated, or removed on the fly without ever having to disrupt the operation of the device.
  • 3. WHAT IS OSGi ? The OSGi™ specifications define a standardized, component-oriented, computing environment for networked services that is the foundation of an enhanced service-oriented architecture. Adding an OSGi Service Platform to a networked device (embedded as well as servers), adds the capability to manage the lifecycle of the software components in the device from anywhere in the network. Software components can be installed, updated, or removed on the fly without ever having to disrupt the operation of the device. WHO CARE ?
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. Export-Package: jug.hello.api;version=“1.0.0” Export-Package: jug.hello.api;version=“2.0.0” jug.hello.api.v1 jug.hello.api.v2 jug.hello Import-Package: jug.hello.api Demo hello.api later 版本高者優先
  • 17. Export-Package: jug.hello.api;version=“1.0.0” Export-Package: jug.hello.api;version=“2.0.0” jug.hello.api.v1 jug.hello.api.v2 jug.hello Import-Package: jug.hello.api;version=“[1.0.0,1.5.0]” Demo hello.api later 選則偏好的版本
  • 18. Life Cycle Demo hello.api later INSTALLED RESOLVED UNINSTALLED ACTIVE STOPPING STARTING start stop
  • 19.
  • 20. OSGi Service & URL Shorten Bundle
  • 21.
  • 22.
  • 23.
  • 24. Service Filter (LDAP Filter) context. getAllServiceReferences ( IShortenURL.class.getName(), String. format ( "(name=%s)" , name) ); “ (name=0rz.tw)” “ (name=tinyurl)” 過濾含有屬性 name ,且值為 0rz.tw 的 Service 過濾含有屬性 name ,且值為 tinyurl 的 Service
  • 25. Service Filter (LDAP Filter) 選擇具有 cn 屬性且值為 Babs Jensen 者 "(cn=Babs Jensen)" 以 ! 排除具有 cn 屬性且值為 Tim Howes 者 "(!(cn=Tim Howes))" 選擇具有 objectclass 屬性且值為 Persion 並且不含屬性 sn 值 Jensen 與屬性 cn 且值為 Babs J 開頭者 "(& (" + Constants.OBJECTCLASS + "=Person) (|(sn=Jensen)(cn=Babs J*)) )" "(o=univ*of*mich*)"
  • 26.
  • 27. tracker = new ServiceTracker(context, IShortenURL.class.getName(), null) { public Object addingService (ServiceReference reference) { ui.resetAvailableServiceList(context); ui.updateStatus(String.format("Service [%s] is available.", reference.getProperty("name"))); return super.addingService(reference); } public void removedService (ServiceReference reference, Object service) { ui.resetAvailableServiceList(context); ui.updateStatus(String.format("Service [%s] is unavailable.", reference.getProperty("name"))); super.removedService(reference, service); } }; tracker. open ();
  • 30.
  • 31.
  • 32. Manifest-Version: 1.0 Created-By: 1.5.0_12 (Sun Microsystems Inc.) Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt Import-Package: com.thoughtworks.xstream;version="[1.2.2, 2.0.0)";reso lution:=optional,com.thoughtworks.xstream.annotations;version="[1.2.2 , 2.0.0)";resolution:=optional,com.thoughtworks.xstream.converters;ve rsion="[1.2.2, 2.0.0)";resolution:=optional,com.thoughtworks.xstream. io;version="[1.2.2, 2.0.0)";resolution:=optional,com.thoughtworks.xst ream.io.json;version="[1.2.2, 2.0.0)";resolution:=optional,com.though tworks.xstream.io.xml;version="[1.2.2, 2.0.0)";resolution:=optional,j avax.jms;version="[1.1.0, 2.0.0)",javax.management,javax.management.j 2ee.statistics;version="[1.0.1, 2.0.0)",javax.management.openmbean,ja vax.management.remote,javax.naming,javax.naming.directory,javax.namin g.event,javax.naming.spi,javax.net,javax.net.ssl,javax.security.auth, javax.security.auth.callback,javax.security.auth.login,javax.security .auth.spi,javax.sql,javax.transaction;version="[1.0.1, 2.0.0)";resolu tion:=optional,javax.transaction.xa;version="[1.0.1, 2.0.0)";resoluti on:=optional,javax.xml.parsers,org.apache.activeio.journal;version="[ 3.1.0, 4.0.0)";resolution:=optional,org.apache.activeio.journal.activ e;version="[3.1.0, 4.0.0)";resolution:=optional,org.apache.activeio.p acket;version="[3.1.0, 4.0.0)";resolution:=optional,org.apache.camel; version="[1.3.0, 2.0.0)";resolution:=optional,org.apache.camel.compon
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.