更新时间:2023-01-29 11:27
业务基础平台是指解决 “应用软件的业务描述和操作系统平台、软件基础架构平台之间的交互与管理问题”的在业务逻辑应用和基础平台之间架构的一个中间层。
业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台、软件基础架构平台之间的交互与管理问题”。解决了“应用软件系统与硬件之间的交互与管理问题”,软件基础架构平台解决了“应用软件系统与操作系统平台之间的交互与管理问题”,而业务基础平台则是解决了“应用软件的业务描述与操作系统平台、软件基础架构平台之间的交互与管理问题”。
组件化业务基础平台和传统的业务基础平台主要的差异在于组件化业务基础平台具有更多的灵活性、可扩展性,能够更加方便的进行组件升级和组件维护。特别是对于大型的行业软件来说,易于升级、易于维护,能够灵活的扩展成为评测一个业务基础平台的一个重要标准,随着业务的不断发展,很多一体化行业软件代码数量已经超过1G,如何对如此庞大规模的代码进行维护、升级成为软件开发者和运维管理者日益关注的一个课题,代码关系复杂、系统启动慢成为一个大型系统所面临的一个主要矛盾。组件化业务基础平台主要用于解决简化开发,快速系统维护的问题。
业务基础平台的组件化,并不是所有的内容全部组件化,有些内容是无法分离出去的,因此首先要把业务基础平台的内核分离出来,建立一个业务基础平台的微内核,微内核是跟每一个业务组件紧密相关的。然后把业务基础平台中可以分离出来的内容单独作为一个组件,即公共组件,从而实现业务组件和公共组件的分离。
业务组件和公共组件使用一个数据库,通过公共组件及相关的标准实现整合,如果还有已有的系统,则通过企业集成平台进行整合。
在实际开发应用中,性能是很重要的一个非功能性需求,特别是针对大型的应用系统,性能是决定项目成败的一个关键因素,业务基础平台的架构决对性能问题有着重大的影响。如何在实现松耦合的基础上,进一步提升性能问题(包括保证数据库事务处理),是大型应用软件的业务基础平台必须要解决的一个问题,不能仅仅是为了组件化而组件化,如果不能解决性能问题,组件化就不能在大型的应用系统中得到广泛应用,因此需要根据在实际开发过程中碰到的不同的场景,采用不同的调用方式,除了组件化中提到的服务,还有要有其他的方式作为补充,即能实现松耦合,又可以保证性能,实现不同层次的不同调用。
实现组件化,首先要定义清晰、简单的业务组件界面,特别是业务组件和公共组件之间的界面,然后建立一个兼顾松耦合、性能的调用方式及不同的调用方式的标准。
基于SOAP的服务接口:通过SOAP的Web服务调用,适用于不同的业务组件之间,特别是不同厂商开发的业务组件、不同平台的业务组件以及新建的业务组件和遗留系统之间的调用。SOAP的服务接口有相关的标准支持,可以支持更多的平台和厂商。基于REST的服务接口:同平台、同厂商开发的业务组件之间的调用,特别是同一个组件中界面和业务逻辑之间的调用,从而实现界面和业务逻辑分离。REST服务是轻量级的服务调用,主要用于提高性能,简化开发。
业务组件之间于SOAP的Web服务调用或者REST Web服务调用,因为基于SOAP的Web服务拥有众多的标准,可以方便的实现跨平台调用,适用于不同厂商之间的业务组件调用,同一个厂商之间的不同组件调用可以直接通过能够提供很好性能的REST Web服务调用。
基于API的调用 ,业务组件内部不同模块之间的;业务组件和基础平台的内核之间;不同的业务组件之间需要紧密结合事务处理的调用,通过API调用实现,保证系统的事务处理和系统性能。
不同的业务组件之间需要事物处理的调用,通过内嵌一个内核业务处理模块的方式进行,如库存处理相关业务,在订单模块和采购模块都需要调用,通过服务方式很难处理事物,可以将一个简化的库存模块(如Jar包,建议采用OSGi架构,WAS8已经提供了很好的支持)直接内嵌到订单模块和采购模块,“库存模块内嵌到订单和采购业务组件”;工作流引擎也可以采用这样的方式,详见《基于SOA 的工作流(WF)整合》的说明。
基于数据接口调用:同平台、同厂商开发的业务组件,可以直接通过数据视图调用,简化接口关系,特别开发比较紧密的小组开发的组件之间调用、大数据量的数据调用。不同的业务组件之间,纯粹的数据调用,可以直接通过数据接口方式进行调用
现在有许多业务基础平台已经实现了大量的基础组件,如东宏的Jxstar,在这类平台搭建系统可以保证系统的快速交付与系统稳定性。