您的位置:首页 > 编程语言 > Java开发

Packaging in Java: Access right Control and OSGi

2016-03-16 21:41 204 查看
访问权限: 

Java的权限控制,public就是所有人都能去读取改变你的东西;默认不加的话就只有同一个社区(包)内的人可以去读取,改变你的东西;protected则是自己的孩子可以去读取和修改的(如果自己的孩子不在自己的社区内,还是不能修改默认的东西);private就是自己的。(继承同样受这样的限制)

Here is another framework which dedicates to this also: OSGi. Why should we use OSGi?

OSGi 是为大型分布式系统以及嵌入式系统提供一种模块化架构(Module)减少了软件的复杂度。[1]

模块层定义了一个模块化Java模型,对Java部署模式的一些缺点进行了改进,并对bundle(bundle为OSGi中的组件模型,可以简单认为是增加了元数据的Jar包) 之间包的共享有严格的规定。模块层独立于生命周期层和服务层,使用时可以不需要生命周期层和服务层。生命周期层提供了对模块层的bundle 进行管理的API,而服务层提供了bundle之间的通信模型。

OSGi框架提供了一个通用安全可管理的Java框架,能够支持可扩展可下载的应用(即bundles)的部署。OSGi框架是OSGi技术最基础也是最核心的部分。OSGi框架分为以下几层,如下图所示[1]:



生命周期层为bundle 提供了生命周期管理API,为bundle提供了一个运行时模型,定义了一个bundle 如何启动、停止、安装和卸载。另外,生命周期层也提供全面的事件API,允许bundle去控制和操作服务平台。

服务层为bundle开发者提供了一个动态、简明且并且统一的编程模型,通过解耦服务标准(即Java接口)和它的实现,能够简化服务bundle的开发和部署。这个模型允许bundle 开发者只使用他们自己的接口规范来绑定服务。这样接口的实现可以根据实际情况延迟到运行时来选择。框架通过使用服务层,为系统提供了一种扩展机制,成为hooks。Hooks是一种框架用来扩展功能的服务。

OSGi中统一的编程模型可以帮助bundle开发者应对很多情况下的扩展的问题,这一点非常重要,因为框架需要运行在各种硬件设备上,设备的不同硬件特性可能影响服务实现的许多方面。统一的接口使得软件组件能够匹配和组合,同时保证稳定的运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OSGi 权限管理