组件化系统如何实现?

组件化的业务系统架构观念听说已经提出来20多年了,但是至今没有见到让人信服的组件化业务系统(注:组件化≠模块化).关于业务组件是什么,长什么样子,如何实现,又有什么样的远景?
组件介绍这篇文章很详细的阐述了做者在业务组件的想法。架构

下面是文章的部份内容:app

组件化的业务系统架构观念听说已经提出来20多年了,但是至今没有见到让人信服的组件化业务系统(注:组件化≠模块化).关于业务组件是什么,长什么样子,如何实现,又有什么样的远景? 你们也都作了不少思考和讨论.
看了社区里的一些内容,再加上平时跟同事们的交流和讨论,对组件化业务系统的实现产生了一点想法。下面我说下个人想法,欢迎你们来拍砖讨论。
        我以为目前你们对业务组件有一个共识:就是各个业务组件相对独立,而且具备可组装性和可插拔性。
        每一个组件的运行仅依赖于平台或者容器,组件与组件之间不存才直接的耦合关系。同时,组件与组件之间又并不是绝对的独立。组件通过组装后能够与其余的组件进行业务上的交互。好比销售组件与财务组件,一笔销售业务的完成一定会产生一笔或几笔财务的业务,如×××的开出和一笔新的应收应付或者现金银行的记帐。又好比,采购与库存管理,当采购的需求被提出,那么是否是要先看看仓库是否是有存货呢?若是本仓库没有,是否容许从其余仓库调拨呢?等等等等……,诸如此类的业务场景没法穷尽,而不一样行业不一样规模的用户他们的业务过程又各自不一样。
        也就是说,组件之间的交互在业务上存在着不可规范和不可穷尽的特色.这是个比较头疼的问题,暂且记下,稍后再作讨论。
        另外,个人理解:组件化是介于模块化与应用系统集成之间的一个概念.关于组件化、模块化、应用的不一样,社区中的一篇文章写得很好。这篇文章的最后,提到了组件化不一样于模块化,引文:模块化开发不一样于组件开发,模块化开发只是在逻辑上作了切分,物理上(开发出的系统代码)一般并无真正意义上的隔离,一切都只是在文档中。文章中间也提到过组件化与应用集成的不一样,引文:EAR或者WAR部署的是一个企业应用,请注意EJB规范中明确说:The Enterprise JavaBeans architecture is a architecture for the development and deployment of component-based (distributed) business applications(EJB 2.x和3.x惟一的区别是2.x有distributed),它们有本身的应用域,彼此相互隔离(简单的看,它们有各自独立的会话管理)。.NET也是有本身的应用域概念。
        根据上面所描述,结合我把组件化放置到模块化和应用集成之间的定位。组件化应比模块化更独立,但比应用集成结合得更加紧密。借助上面提到的那篇文章分析的,引文:基于应用的部署致使了三个隔离问题:交互(界面)隔离程序访问隔离数据隔离.来看看组件化、模块化、应用集成的区别,以更清晰的看清楚组件化的位置。。。。。。ide

关于更多的 业务组件的内容.
相关文章
相关标签/搜索