埃德蒙顿华人社区-Edmonton China

 找回密码
 注册
查看: 1820|回复: 0

OSGI(简介)

[复制链接]
鲜花(0) 鸡蛋(0)
发表于 2008-8-21 22:15 | 显示全部楼层 |阅读模式
老杨团队,追求完美;客户至上,服务到位!
OSGi是Open Service Gateway Initiative的简称,该组织建立于1999年,是一个非赢利机构,旨在建立一个开放的服务规范,为通过网络向设备提供服务建立开放的标准。
' [, K  e- j: d1 q5 UOSGI 规范包括了构建开放的可交付网络服务的各方面,OSGI规范又包括了以下子规范。 7 ~' V; o3 _) S! A) p
Framework规范(OSGI核心,提供一个安全的可管理的Java Framework来部署可扩展的Java服务。)
  p; ^0 _% c) B# S. k7 L$ h# lPackage Admin Service规范(来管理不同的Bundle之间的引用关系。当Bundle更新或者反安装时判断是否有其他的服务正在使用当前的Bundle)  O5 f# n- N9 y& o0 W7 P
Start Level规范(定义了启动和停止一个OSGi Service Platform时,不同的Bundles的启动或者停止的先后顺序)4 U  `" l0 Q- t
Permission Admin Service规范(Bundle是否许可执行另外的Bundle的代码)
+ m4 j; W$ k) @URL Handlers Service规范(怎样注册URL Schema,如何将java.io.InputStream对象转换为特定的Java对象)8 k2 N0 Y& F1 H/ w
Log Service规范 (以下略。。。)# p1 B, u% n1 P" _! P1 @
Configuration Admin Service规范
7 o9 P$ x  x5 W& ~9 w. g) @Device Access Specification% Y6 e4 ~( f) l
User Admin Service Specification
& S3 L# E9 e$ O$ A; }7 V/ jIO Connector Service Specification9 E: Y5 ^4 M8 T3 O
Http Service Specification
6 A, z' C7 T1 t! MPreference Service Specification
8 ~1 M, O3 s( e. ]Wire Admin Service Specification
* z5 Z+ G9 S' x: ], |% iXML Parser Service Specification
5 f: y+ k! M! I' O4 @Metatype Specification
( D# o) S& z/ z& HService Tracker Specification2 E& t  ?# i0 Z0 P4 q8 s) l7 B, S
Measurment and State Specification
% V! A# |6 R2 z' W9 f8 {& CPosition Specification
1 W/ U4 \4 m' ?" r! k, a1 HExecution Environment Specfication
; U! X& E7 l! g! E5 X! f9 {2 ]OSGI Framework
' m4 X* l5 `$ c4 J% l, v. G; XFramework是OSGI Service Platform规范的核心组成部分。它提供了一个通用的、安全可管理的Java framework。通过这个Framework可以支持一种叫做bundles的Service application的部署和扩展。: ]  G; |. I( e5 k7 f: a8 n% o
OSGI兼容设备可以下载并且安装OSGI bundles,也可一当他们不再需要的时候删除。bundles安装后会注册一定数量的Services,并被由同一个Framework下的其他bundles使用。- [6 R, G( C% Z( J' y0 b
在一个动态扩展的的 OSGI环境中,Framework管理bundles的安装和更新。同时也管理bundles和Services之间的依赖关系。
2 u3 A6 x: w$ V4 cFramework提供给bundle开发者必须的资源来在Java平台上开发,为开发的bundles提供了代码动态加载的功能, 也使得开发者开发、部署一个大规模的Services变的很容易。
/ T3 v$ q$ q' ^% a1 O其 次,Framework为Java bundle开发者提供了简明一致的编程模型。简化了开发部署的复杂性。这个编程模型允许开发者将自己的接口规范绑定到OSGI环境中的Service。 The selection of a specific implementation, optimized for a specific need or from a specific vendor, can thus be deferred to run-time.5 V! L- e- ^, o* P
一个一致的编程模型帮助开发者可以应付一些可估计的危急错误。Framework将会运行在不同的硬件环境上,但一致的接口确保软件组建可以运行在一致的服务接口上。* Z: f" E' @# {& |3 F5 F$ `6 O
The Bundle Object
' A# ^* |6 z' ~0 }9 t7 u对于每一个安装在OSGI Service Platform的bundle都有一个与之关联的bundle object。一个bundle对象用来管理bundle的生命周期。这项工作通常由Management Agent来做。3 e. {0 {! B+ P8 X4 \% |7 e
Bundle State1 ]4 q, {; T, j& c4 b" n
bundle有以下状态;
9 U: z7 x, \, h" e6 NINSTALLED – The bundle has been successfully installed. Native code clauses must have been validated.
+ @' n, O  N' V" r7 b- Y  u/ d7 NRESOLVED – All Java classes that the bundle needs are available. This state indicates that the bundle is either ready to be started or has stopped.( g8 q$ z# O# s, |) ^! [2 G3 @
STARTING – The bundle is being started, and the BundleActivato r. start method has been called and has not yet returned.
, Z! F# `3 S2 Q9 A$ iSTOPPING – The bundle is being stopped, and the BundleActivato r. stop method has been called and has not yet returned.
- l9 c& e+ D8 j8 @% lACTIVE – The bundle has successfully started and is running.# ~& d, [0 K; \0 r7 c
UNINSTALLED – The bundle has been uninstalled. It cannot move into another state.; o# e* Q3 k+ X  ^
eclipse 3.0并没有用OSGI替换掉原来的PlugIn机制。它只是做了与标准兼容的工作:给用户提供了一系列的API来访问,在这个过程中,就必须要做一些改 变(比如plugin registry和loading机制)来同OSGI标准完全兼容。最初的Plugin核心只支持静态的扩展,就是说,如果要改变一个已经存在的Plug 就必须重启core,也就是要退出Eclipse并重启。" P/ E' s$ N4 l% x; w
有很多人问Eclipse为什么要兼容OSGI规范而不是其他的规范呢?
1 F3 i& ~8 n; @在 Eclipse被捐赠出来以前,Eclipse由OTI来开发,其目标是开发一个嵌入式Java软件的开发平台。互联网上现在仍然由很多的连接指向 Visual Age Micro Edition (VAME). 这也是SWT被构思的一个原因,他们想将SWT使用在嵌入式设备中的用户界面。这种渊源关系解释了当时为什么选择OSGI规范。# m6 e- s7 P2 g- r9 b
另外一个原因是除了OSGI没有其他的规范。OSGI规范在轻量级服务架构应用方面被广泛的支持。而且OSGI被好多电信业的知名公司和一些其他行业的知名公司所支持。他们需要使用OSGI来同Sun的J2ME来抗衡。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|小黑屋|手机版|Archiver|埃德蒙顿中文网

GMT-7, 2026-6-26 18:19 , Processed in 0.431133 second(s), 9 queries , Gzip On, APC On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表