对于管理系统开发平台,大家应该都一些认识,我在这里也谈一谈自己对管理系统开发平台的理解。
首先,我讲一讲管理系统开发平台的必要性。
我们在做管理系统时,经常会出现下面的场景:
客户:到我们现场来开发吧,我们与其他单位不一样。
商务:那好吧。
客户:这个问题,我们现在改成这样。。。。。。
开发人员:那好吧,不过时间上需要三天。
客户:不行,时间太长,现在系统已经拖了好久了。
开发人员:。。。。。。
在这种状况下,我们开发人员很无奈。
由于管理的多样性,每个行业的需求是不一样的,而同一行业中的不同单位对系统的要求也会不一样。不仅如此,在同一单位里,不同的时期其管理的要求也会发生变化。所以,需求的变动是必然的。
对于代码生产型系统,需求的变动带来以下三方面的问题:
1、 系统实施出现困难;
2、 系统维护成本大大提高;
3、 由于不同单位的管理不同,造成软件成为项目型,系统转成软件产品比较困难。就算是软件产品,其版本控制难度非常大。
从以上种种情况来看,管理系统的产品化在生产型层次上很难实现。我们需要管理系统开发平台这样一种快速开发与实施的系统来拥抱需求变化。
那么,管理系统开发平台是不是可行呢?管理系统开发平台是可行的,因为管理系统开发平台有其实现的基础。从业务与技术两方面看,管理系统开发平台的实现是可能的。
首先,业务方面对系统的要求实际可以归纳为数据的流转与处理;
一般来讲,管理系统管理着各种各样的单据,比如报销单、订单、处方等等。从面向对象的观点来看,这些单据的抽象都是类,它们有自己的属性,即数据。管理系统管理着这些数据,并且让这些数据得到处理与流转。比如,订单审核后,订单的状态(数据)发生了变化,订单因此可能转变成出货单。
对上述的过程进行一下抽象,那就是一种数据进行加工后,变成另一种数据或数据的值发生了改变。也就是说,管理系统要做的就是数据的增加、删除、修改与查询。因此,我们可以用同样的方法对待管理系统处理的内容,这为管理系统开发平台的实现提供了业务基础。
其次,从技术方面来看,XML、反射技术、动态语言等等使管理系统开发平台的实现成为可能。
相对于生产型系统,管理系统开发平台会大量地使用配置,XML技术将成为管理系统开发平台的首选。XML技术为系统提供了自描述数据,并易于掌握与使用。
反射技术、动态语言给系统带来可配置性与可定制性。反射技术还会使系统的可见性得到提高。
我们再来看一下管理系统开发平台的主要功能:
由于管理系统的数据处理的一致性,以及不同行业,不同客户的数据的不一致性,管理系统开发平台的建设分为四个层次:
1、 基础设施
2、 公共模块
3、 领域相关
4、 领域内针对客户的定制
从这个角度来看,管理系统开发平台应该是微内核的,是可以在微内核基础上针对领域、领域客户不断扩展的系统。
管理系统开发平台在四个层次上的主要功能如下:
1、 基础设施:
基础设施主要解决数据的增加、删除、修改、查询、持久化,以及消息的流转。
2、 公共模块:
公共模块是指管理系统中与领域无关的相关内容。管理系统开发平台不仅要提供可定制能力,还要可扩展;不仅提供通过配置去实现,还要可以通过代码去实现相关功能。
3、 领域相关:
领域相关是指在某一领域内的业务的抽象。管理系统开发平台要提供可定制、可扩展功能,以及可重用的功能。
4、 领域内针对客户的定制:
领域内针对客户的定制是指管理系统开发平台提供可定制性,使不同客户有其业务特点。
在管理系统开发平台设计中,适用的主要架构风格有分层架构风格与RESTful架构风格等等。
1. 分层架构风格
目前的管理系统越来越多地使用分层架构风格。分层系统通过对相邻的外部层之外的所有层隐藏内部层,减少了跨越多层的耦合,从而改善了可进化性和可重用性。功能的适当分离会简化服务器组件,从而提高可伸缩性。这种简化所采用的形式通常是将所有的用户接口(即用户界面)功能移到客户端组件中。只要接口不发生改变,这种分离允许两种类型的组件独立地进化。
2. RESTful
RESTful风格有以下的含义:
客户端-服务器:通过拉的交互模式,客户访问服务器资源;无状态:每个从客户端到服务器的请求必须包含足够的信息,使得服务器理解该请求,而不需要在服务器上存储上下文信息;缓存:为了提高性能,合适的资源被缓存在服务器中;统一的接口:所有资源通过通用的接口访问(HTTP的GET,、POST、PUT、DELETE方式);命名资源:系统由通过URL命名的资源组成;互连的资源表示:资源的表示通过URL互相联系起来,从而客户端可以从一个状态转换到另一个;层次化的组件:使用一些中间层服务器,比如代理服务器,缓存服务器,网关等,可以插入到客户端和资源中间来完成监控和安全等功能。
现在我们知道管理系统开发平台是必要的,而且可以实现,但什么是好的管理系统开发平台呢?我们需要对管理系统开发平台进行评价,其评价标准可以从使用者和维护者两个角度来看:
1. 对于使用者,有以下五个方面需要考虑。
a) 可配置性
服务的可配置性、服务组合的可配置性。
b) 可进化性