-
文档类型
-
什么是开放工厂
- 什么是开放工厂
-
- 开放工厂是一个敏捷、开放、共享、协作、社会化的软件生产线平台。它向开发者提供了规范化的OSGi.NET插件框架和可复用的插件仓库,致力于解决应用系统的模块化敏捷开发、团队无缝协作和自动化部署问题。
- 开放工厂向软件开发商提供了共享的插件仓库。目前共享插件仓库拥有超过100个的可直接使用插件,涵盖了桌面界面框架、Web界面框架、数据库访问、数据挖掘、数据集成、大数据支撑、消息队列、数据加密、文件访问等各类插件。
- 开放工厂向软件开发商构建了一条自动化的敏捷软件生产线平台。这个生产线平台能够极大提高软件开发效率、团队协作效率,使软件的生产变得和生产线组装一样。
在这里,开发团队从插件仓库获取基础插件并进行组装,在此基础上根据实际需求开发业务逻辑插件,并将业务插件通过自动化部署工具发布/更新到插件仓库。
测试团队则从插件仓库获取需要测试的插件及其更新包组装成软件进行测试,一旦发现问题则反馈给开发团队。
部署团队从插件仓库获取需要部署的软件系统的插件进行安装,并利用开放工厂自动升级功能实现自动化的部署。
- 开放工厂为软件开发商提供了自动化部署机制,为软件提供商提供了持续部署和持续交付能力,实现了最高级别的“DevOps”。
在这里,当插件变更需要发布时,开发团队通过鼠标右键即可将插件及其后续升级包持续的发布到插件仓库;管理人员则可以对插件仓库进行管理。
一旦插件仓库产生变更后,实际部署环境则通过自动升级/降级机制保持与插件仓库版本一致,实现应用系统的自动化持续部署。
- 开放工厂所有插件基于OSGi.NET面向服务插件框架构建。该框架是国际上第一个完整迁移了OSGi R4规范的OSGi.NET框架,提供了动态模块化、面向服务和模块扩展三大功能,支持WinForm桌面应用、WPF桌面应用、ASP.NET Web应用、ASP.NET MVC应用、Silverlight RIA应用、手机应用等任意.NET应用环境。
- 开放工厂架构
-
- 开放工厂架构如下所示。开放工厂为用户提供了公共/私有插件仓库和插件SDK,允许用户使用“搭积木”的方式创建
模块化应用程序。开放工厂为用户提供的私有插件仓库允许用户以项目的形式来管理自己的应用系统的所有插件及其升级包。
此外,它还暴露了开放接口,允许用户通过开放接口来检测插件框架等内核文件的变更情况及相应的文件,允许用户访问插件仓库、获取
插件仓库插件的变更情况、获取某个插件的文件。
- 基于开放工厂的应用系统使用插件SDK来开发应用程序。利用SDK创建的程序可以通过开放接口来获取插件框架
等内核文件的最新版本并实现自动更新,此外,自带的系统插件——自动升级与降级插件、插件仓库访问与插件管理服务
利用开放接口使应用系统自动与插件仓库保持同步,并允许我们在任何时候通过插件中心和插件管理界面来安装、启动、
停止、卸载插件。
-
- 开放工厂由OSGi.NET插件框架和插件仓库组成
-
- (1)OSGi.NET插件框架:它是OSGi R4规范移植到.NET平台的实现,提供了动态模块化、面向服务架构和模块扩展三大功能。在这里,模块具备物理隔离性、热插拔、动态性和物理重用性。
- (2)插件仓库:它是一个在线的插件仓库,所有插件均符合OSGi.NET规范,可运行在OSGi.NET插件框架之上。您可以从插件仓库中任意挑选插件进行组装,也可以开发新的插件进行功能扩展。
-
- 开放工厂具有六方面的价值
-
-
- 规范的模块化框架和“积木式”软件生产线
-
- 通过iOpenWorks,软件开发工程师可以更加关注与业务结合,而无需考虑底层逻辑与实现,彻底解放了系统设计师,方便灵活的开发多领域定制化产品,开发软件产品(项目)就像“搭积木”,而且由于OSGi采用微内核机制,又可保证系统的稳定高效。
- 显著提升系统的设计能力
-
- iOpenWorks能够更加规范的让设计师去完成系统设计工作,更加容易先分模块设计业务架构,后进行模块详细设计。所有的设计师都基于一种设计规范,避免百花齐放,每个设计师都有自已一套设计方式,设计上无法通用的弊端。
- 实现了动态可管理的系统(即插即用)
-
- 基于iOpenWorks开发的系统功能模块(Plugin)可以动态加载或者卸载,而系统本身无需停止,还可以通过远程管理工具进行功能模块的远程安装、启动、停止和卸载模块,或者订阅模块仓库中模块变更并同步。
- 建立了规范的团队并行开发方式、培训体系
-
- 基于iOpenWorks,软件开发企业所有的项目都可以按照统一的基础架构、开发方式以及部署方式来完成,很容易形成团队的并行开发模式,自然而然的很容易形成在开发知识方面的培训体系。
- 系统维护成本大大降低
-
- 由于基于iOpenWorks开发的系统模块具有严格意义上的模块化,相对于传统开发方式,系统模块的组织、复用和扩展变得容易,也简化了模块的测试。当一个系统功能需要修改或者发现Bug时,开发人员只需要修改或者Debug他自己的功能模块,模块之间没有耦合,互不影响,这可以大大降低系统的维护成本。开发新功能也是一个“独立”的模块(Plugin),部署只需拷贝到指定目录,系统即可拥有新功能。
- 建立企业级可复用软件资产(构件)库变得容易
-
- 由于所有的系统设计、模块开发都遵循统一的技术规范,企业所开发项目的所有模块都可作为高可复用的软件资产积累下来,企业可建立企业级可复用软件资产库,做新项目的时候只需要下载相应的功能模块进行集成就能实现功能。
-
^ Back to Top