|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
OSGi是OpenServiceGatewayInitiative的简称,该构造创建于1999年,是一个非获利机构,旨在创建一个开放的服务标准,为经由过程收集向设备供应服务创建开放的尺度。
OSGI标准包含了构建开放的可托付收集服务的各方面,OSGI标准又包含了以下子标准。
Framework标准(OSGI中心,供应一个平安的可办理的JavaFramework来部署可扩大的Java服务。)
PackageAdminService标准(来办理分歧的Bundle之间的援用干系。当Bundle更新大概反安装时判别是不是有其他的服务正在利用以后的Bundle)
StartLevel标准(界说了启动和中断一个OSGiServicePlatform时,分歧的Bundles的启动大概中断的前后按次)
PermissionAdminService标准(Bundle是不是允许实行别的的Bundle的代码)
URLHandlersService标准(如何注册URLSchema,怎样将java.io.InputStream对象转换为特定的Java对象)
LogService标准(以下略。。。)
ConfigurationAdminService标准
DeviceAccessSpecification
UserAdminServiceSpecification
IOConnectorServiceSpecification
HttpServiceSpecification
PreferenceServiceSpecification
WireAdminServiceSpecification
XMLParserServiceSpecification
MetatypeSpecification
ServiceTrackerSpecification
MeasurmentandStateSpecification
PositionSpecification
ExecutionEnvironmentSpecfication
OSGIFramework
Framework是OSGIServicePlatform标准的中心构成部分。它供应了一个通用的、平安可办理的Javaframework。经由过程这个Framework能够撑持一种叫做bundles的Serviceapplication的部署和扩大。
OSGI兼容设备能够下载而且安装OSGIbundles,也可一当他们不再必要的时分删除。bundles安装后会注册必定数目的Services,并被由统一个Framework下的其他bundles利用。
在一个静态扩大的的OSGI情况中,Framework办理bundles的安装和更新。同时也办理bundles和Services之间的依附干系。
Framework供应给bundle开辟者必需的资本来在Java平台上开辟,为开辟的bundles供应了代码静态加载的功效,也使得开辟者开辟、部署一个年夜范围的Services变的很简单。
其次,Framework为Javabundle开辟者供应了简明分歧的编程模子。简化了开辟部署的庞大性。这个编程模子同意开辟者将本人的接口标准绑定到OSGI情况中的Service。Theselectionofaspecificimplementation,optimizedforaspecificneedorfromaspecificvendor,canthusbedeferredtorun-time.
一个分歧的编程模子匡助开辟者能够对付一些可估量的危机毛病。Framework将会运转在分歧的硬件情况上,但分歧的接口确保软件组建能够运转在分歧的服务接口上。
TheBundleObject
关于每个安装在OSGIServicePlatform的bundle都有一个与之联系关系的bundleobject。一个bundle对象用来办理bundle的性命周期。这项事情一般由ManagementAgent来做。
BundleState
bundle有以下形态;
INSTALLED–Thebundlehasbeensuccessfullyinstalled.Nativecodeclausesmusthavebeenvalidated.
RESOLVED–AllJavaclassesthatthebundleneedsareavailable.Thisstateindicatesthatthebundleiseitherreadytobestartedorhasstopped.
STARTING–Thebundleisbeingstarted,andtheBundleActivator.startmethodhasbeencalledandhasnotyetreturned.
STOPPING–Thebundleisbeingstopped,andtheBundleActivator.stopmethodhasbeencalledandhasnotyetreturned.
ACTIVE–Thebundlehassuccessfullystartedandisrunning.
UNINSTALLED–Thebundlehasbeenuninstalled.Itcannotmoveintoanotherstate.
eclipse3.0并没有效OSGI交换失落本来的PlugIn机制。它只是做了与尺度兼容的事情:给用户供应了一系列的API来会见,在这个过程当中,就必需要做一些改动(好比pluginregistry和loading机制)来同OSGI尺度完整兼容。最后的Plugin中心只撑持静态的扩大,就是说,假如要改动一个已存在的Plug就必需重启core,也就是要加入Eclipse偏重启。
有良多人问Eclipse为何要兼容OSGI标准而不是其他的标准呢?在Eclipse被捐赠出来之前,Eclipse由OTI来开辟,其方针是开辟一个嵌进式Java软件的开辟平台。互联网上如今仍旧由良多的毗连指向VisualAgeMicroEdition(VAME).这也是SWT被构想的一个缘故原由,他们想将SWT利用在嵌进式设备中的用户界面。这类渊源干系注释了事先为何选择OSGI标准。
别的一个缘故原由是除OSGI没有其他的标准。OSGI标准在轻量级服务架构使用方面被普遍的撑持。并且OSGI被很多多少电信业的出名公司和一些其他行业的出名公司所撑持。他们必要利用OSGI来同Sun的J2ME来对抗。
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,netBeans等等,但是我认为如果java想超越.net,那么他首先要解决的就是IDE工具的整合。 |
|