|
SynchroMC助力协同中间件随着硬件技术和网络技术的快速发展,多变的商业环境无疑使得软件功能日益复杂、规模庞大、需求变更频繁。实时响应新需求、动态部署新模块、快速装配各种组件服务已成为全球大小软件企业共同面对的问题。软件界提出了一系列的理论、方法、语言和工具来解决软件开发过程中的若干问题。但是软件系统固有的复杂性、易变性和不可见性,使得软件开发周期长、代价高、质量低的问题依然存在。 中间件产品集成之困 随着硬件技术和网络技术的快速发展,多变的商业环境无疑使得软件功能日益复杂、规模庞大、需求变更频繁。实时响应新需求、动态部署新模块、快速装配各种组件服务已成为全球大小软件企业共同面对的问题。软件界提出了一系列的理论、方法、语言和工具来解决软件开发过程中的若干问题。但是软件系统固有的复杂性、易变性和不可见性,使得软件开发周期长、代价高、质量低的问题依然存在。 OSGI R4.2规范介绍 OSGi Service Platform是一个开放并且提供统一接口标准的体系框架,基于这个体系框架,服务提供商,程序开发人员,软件提供商,服务网管运营商,设备提供商能够协调地联合起来开发,部署以及管理向用户提供的各种服务。OSGi的提出和诞生之初,其目的主要是能够灵活方便并远程管理互联的网络嵌入设备。随着硬件设备的能力不断提高,java技术的日益普及,尤其J2ME的壮大,现实应用的需求也不断扩大和推进,一个统一的标准变得非常的必要。OSGi Alliance就在这样的背景下成立了,并针对这个Service Platform发布了4版规范,当前最新版本为4.2。 OSGi R4.2规范的核心组件是OSGi框架,这个框架为应用程序(被叫做组件(bundle))提供了一个标准的环境,整个框架可以划分一些层次: 运行环境:执行环境是Java环境的规范。OSGi平台已经标准化了一个执行环境,它是基于基础轮廓和在一个执行环境上确定了最小需求的一个小一些的变种,该执行环境对OSGi组件是有用的。 模块:模块层定义类的装载策略。OSGi框架是一个强大的具有严格定义的类装载模型。它基于Java之上,但是增加了模块化。为模块提供各自的classloader,同时为模块的关联提供控制。 OSGI框架中的模块表现为Bundle,一个Bundle由java类和其他资源组成,一起提供功能给终端用户。Bundle就是一个包含了OSGI特殊描述符号的jar文件。OSGI框架中的Services和Packages两种方式进行通讯。 Bundle之间通讯方式 生命周期管理:生命周期层为bundles的动态安装、启动、停止、更新和卸载提供了支持。基于模块类加载机制的基础上,增加了对Bundle的管理的API。 Bundle生命周期视图: Bundle生命周期 INSTALLED:Bundle已经成功的安装。 RESOLVED: Bundle中所需要的类都已经可用了,RESOLVED状态表明Bundle已经准备好了用于启动或者说Bundle已被停止。 STARTING: Bundle正在启动中,BundleActivator的start方法已经被调用,不过还没有返回。 ACTIVE: Bundle已启动,并在运行中。 STOPPING: Bundle正在停止中,BundleActivator的stop方法已经被调用,不过还没返回。 UNINSTALLED:Bundle已经被卸载了。 服务注册:服务注册提供了一个面向Bundles的考虑到动态性的协作模型。OSGI提供了很多事件来通知服务的使用者关于服务的注册和卸载。 服务模型包括发布、查找和绑定模型。一个服务(Service)就是一个通过服务登记来注册到一个或者多个Java接口下的Java对象。Bundle可以注册服务,查找服务,接收注册服务的状态改变信息。 顺时而生 SynchroMC的出现让一切问题变的简单起来。SynchroMC是构建在OSGi核心框架之上的用于承载中间件系统和业务系统的运行平台,基于OSGI规范实现模块化管理插件的版本、发布、生命周期、部署、绑定等。可以将中间件插件和业务系统插件插接到平台上运行,从而可以作为企业系统基础环境,将各种插件灵活组装成新的产品的平台。它是一个基础的插件平台,可以通过多种方式插接基础中间件。由以下几部分构成: 微内核框架 微内核(micro kernel)这个概念最早是由Richard Rashid提出的,虽然这个最初是为了构建基于消息传送机制的微内核操作系统,并不是为了软件构架服务的。但是,随着“构件化”“分层”软件体制的发展,微内核技术和构建思想逐渐被引入到软件设计构架中,用于“尽可能的解耦组件之间的关系”。SynchroMC采用微内核的方式可以减少内部的复杂性,提高可扩展性。实现了更加健壮的结构,提供了更加稳定的运行期表现。 基础服务 SynchroMC提供了安全、事务、通信、日志等基础和高级服务,减少了解决这些共性问题时的难度和工作量。 分布式支持 实现OSGI的分布式特性,够调用运行于其他JVM之上的服务,并支持企业应用拓扑,从而提高可用率、可靠性及可伸缩性。 管理工具 SynchroMC提供了命令和Web管理控制台两种方式来管理运行在SynchroMC上的bundle的生命周期、服务、配置信息、版本的更新、日志、内存的使用情况等。 功能介绍 1.SynchroMC核心框架
类加载 每个Bundle都有自己的类加载器,并且根据配置的规则来对类的构建进行处理。类加载器形成了一个网络,如下图: 生命周期管理 管理着Bundles的动态安装、启动、停止、更新和卸载。 服务管理 SynchroMC的设计思想是面向服务的组件模型,Bundle之间的通讯均以服务的方式来进行通讯,因此SynchroMC提供了动态协作的服务发布、查找、绑定模型,通过此模型Bundle能够注册、查询使用服务,并可以到服务注册状态变化的通知。在SynchroMC服务平台下,bundle建立在一系列的相互协作的可用服务之上,这些服务共享一个服务注册中心。 SynchroMC提供了一种简单而强大的查询机制,通过使用这种机制,Bundle就可以请求它需要的服务。SynchroMC还提供了一种事件机制,Bundle就可以接收到服务注册、更改和取消注册的消息。 SynchroMC支持普通服务和声明式服务(Declarative Services)。声明式服务(Declarative Services) 采用服务组件的延迟加载以及组件生命周期管理的方式来控制对于内存的占用以及启动的快速,很好的解决了传统的服务模型在开发和部署比较复杂应用时内存占用大、启动慢等问题,并且对服务组件的描述采用XML来实现,十分便于用户理解和使用。 2.管理工具
命令窗口管理工具提供了通过输入命令的方式来进行对SynchroMC的管理。通过在命令窗口输入help命令可以了解SynchroMC支持的命令及用途。 通过这些管理工具可以有效的、方便的、直观的管理框架资源及Bundle的安装、启动、停止、卸载等。 3.基础服务 SynchroMC提供了多种基础服务:安全服务、日志服务、事务服务、配置管理服务、事件服务、HttpService服务。通过提供的基础服务可快速构建系统的相关功能,可节省时间和提高效率。 安全服务 SynchroMC安全服务基于Java EE5标准的动态可扩展安全体系结构;基于JAAS的安全策略。 日志服务 提供日志服务来记录系统框架和bundle的日志,帮助用户跟踪、分析、调试相关Bundle。 事务服务 SynchroMC事务完全支持JTA和JTS的事务API;支持本地事务和分布 式事务;SynchroMC事务服务利用XA标准和两阶段提交协议协调各个资源的同步,SynchroMC完善的事务处理能确保数据的正确更新或恢复到初始状态,这样即使在一个Bundle发生故障,仍可以保证数据的完整性。 配置管理服务
事件服务 SynchroMC事件服务基于发布-订阅模型。包含了框架事件、Bundle事件、Service事件、自定义事件。 HttpService服务 SynchroMC HttpService扩展了Http Service实现,支持servlet filter。
5.事件机制 事件驱动模式是将服务提供者和消费者之间交互进行解耦,使得集成环境中的各个IT系统可以异步、多对多、基于事件的进行通讯;事件驱动模式是对SOA模式的一种补充。 一个事件驱动系统典型地由事件消费者和事件产生者组成。事件消费者向事件管理器订阅事件,事件产生者向事件管理器发布事件。当事件管理器从事件产生者那接收到一个事件时,事件管理把这个事件转送给相应的事件消费者。如果这个事件消费者是不可用的,事件管理者将保留这个事件,一段间隔之后再次转送该事件消费者。这种事件传送方法在基于消息的系统里就是:储存(store)和转送(forward)。 SynchroMC遵循OSGI R4.2规范,并定义了插接规范来插接其它产品或模块。 1.遵循OSGI R4.2规范 SynchroMC遵循OSGI R4.2规范,并实施包括热部署、DOSGI、扩展事件机制等内容。通过构建基于标准的架构,既保证了在技术上的投资,又保持了最大的灵活性、选择性和互操作性。 2.DOSGI支持 OSGI分布式扩展标准对于通讯协议和分布式处理机制的宽泛性的规定给OSGI在更大范围的应用留下了充足的空间。SynchroMC遵循RFC 119,提出了一种OSGI分布式扩展机制,能够保持 OSGi 面向服务的编程模型和动态、模块化的特点,可以将 OSGi 应用透明地转变到分布式领域。实现OSGI的分布式特性,够调用运行于其他JVM之上的服务,并支持企业应用拓扑,从而提高可用率、可靠性及可伸缩性。 3.事件机制的扩展 事件驱动模式是将服务提供者和消费者之间交互进行解耦,使得集成环境中的各个IT系统可以异步、多对多、基于事件的进行通讯;SynchroMC扩展了OSGi的事件机制,采用EDA方式实现,OSGi定义的服务范围扩大,实现SynchroMC的SOA架构。 4.多种插接方式 SynchroMC提供了微插接和宏插接方式集成第三方产品。 Big Bundle 使用这种方式进行软件集成需要对软件主板所提供的接口(BundleActivator)进行实现,并且需要对软件内部的资源文件路径和退出方式(指使用System.exit)进行改造。但对于产品本身的目录结构不需要改变,甚至连所使用到第三方的jar包的位置也不需要改变。 桥接 Bundle 这种bundle的集成原理是在bundle启动的时候调用软件产品中的启动执行程序来进行软件的启动,而停止也是调用软件产品所提供的停止程序来进行。这种方式对软件产品的目录没有任何要求,可以说是在主板中启动了子进程来启动软件产品。而且软件产品在执行的过程中出现任何问题都不会影响到软件主板。 目录 Bundle 与Big Bundle基本相同只是这种方式不需要将编写的代码打包,而是直接以目录的方式将整个bundle代码放到deploy目录中。 5.统一的安全模型 保证插接进的中间件或者是Bundle的安全都是至关重要的。企业应用对安全功能的要求包括信息加密、访问控制、认证和授权。它们都极其重要,因为基本上所有的应用都必须满足所有方面的安全要求。SynchroMC采用统一的安全框架,由此降低了确保中间件或Bundle安全而带来的复杂性。支持JAAS安全认证。 6.可扩展的体系结构 SynchroMC设计上可以通过组件架构进行扩展,松耦合的组件可以构成一个应用。这些组件可以重复利用在运行于SynchroMC之中的任何组件上,降低了开发和集成成本。
责编:张欢 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
推荐博客 |
|