论软件的组件式开发
2000年10月我开始担任四川某网络公司移动短消息增值应用系统(简称SMASP)开发部的负责人,主要工作是对SMASP进行规划并实施开发,为总经理提供SMASP开发的参考方案。SMASP的通信服务提供商为中国联通公司,服务内容提供商为如:出租车调度系统的出租车管理公司;电码防伪系统的商用电码公司;水电气三表抄表系统的水电气公司;移动证券系统的证券公司等,还有许多已知的和未知的对移动短消息增值应用有潜在需求的应用领域会不段地加入到SMASP中来。SMASP首期工程应用到联通四川公司,二期工程将推广到山东、河南、广东、福建、湖北等省市,并逐步推广应用到全国联通。由于项目处于起步阶段,还没有定型的系统模型及成功的应用模式,因此,选择一个好的系统体系结构和开发模式就成为当务之急。
对领域的选择。通常一个领域的专用资产要应用到不相关的领域是比较困难的,组件式开发的首要工作是领域工程,在这个领域内提取可被复用的系统对象,创建可复用资产,开发复用组件。而SMASP正好是这样一个面对具体应用领域的,系统需要不断升级,有着长期的持续开发需求。因此,在SMASP建设的初级阶段,为SMASP创建复用资产是可行的,有回报的。
对组件(COM)式体系结构的选择。SMASP已经有一部分应用是建立在Windows/NT服务器上了,但考虑到本系统将推广到全国各地联通公司,将来的远程系统维护和远程操作控制以及系统整体性能的需要,我建议公司将系统后台应用部分移植到以SUN系统为主的UNIX系统上来,这一建议得到了公司的支持。我们的服务内容提供商是各式各样的,处在不同的行业,有不同的应用系统在运行,对UNIX、WINDOWS、WINDOWS/NT、LINUX、NETWARE等都有应用,是一个多平台系统。为对这样一个多平台、多应用、长期持续开发的系统选择一个良好的体系结构和开发方式,将决定在将来的开发实践中SMASP的质量、连续可用性、可升级维护性、可扩展性、开发工作量和投资等各项指标。经过反复考虑,我们将整个系统划分为各个独立的组成对象,各对象独立工作又相互协调来完成系统的功能,这样各个独立的对象就形成了系统的组件。在这些组件中,有些是SMASP内通用的,其功能定义在系统内长期稳定;也有面对不同ASP(服务内容提供商)的各式各样的组件。这些组件的开发工作均相对独立,互不干扰,因此可以实现系统的无代演进。
创建复用资产和复用组件。通常可以被复用的资产是在领域内通用性比较好的对象。通过深入的分析,我们决定建立短消息增值应用系统平台MIS Platform。MIS Platform本身是由多个组件构成的多层次的、组件化的体系结构,在他上面运行的ASP的各种应用也可看作MIS Platform的各个组件。MIS Platform的体系结构,各组件的详细定义,接口定义,专化规范,大量代码以及各部分的文档都是潜在的可复用资产。复用资产和复用组件之间有一定区别,复用资产的范围相对广泛,而复用组件则更为具体,通常指可以直接嵌入到目标系统内或独立运行以完成某一特定功能的程序模块或对象。并不是所有可复用资产都可以制作成复用组件的,在划定了复用资产后还要进一步提炼,如我们在MIS Platform中创建的基本表管理组件、索引管理组件、TCP/IP通信组件、接口组件、加密组件等,都具有很好的通用性。
通用接口的定义。在组件式开发中,由于系统是依靠预制的或独立运行的组件协同工作来达到系统功能目标,各组件之间对信息的交换就成为必然,而要使各组件之间顺利交换信息,就需要定义一个各组件都能解析的通信接口。在我们的系统中SORBA(短消息对象请求代理结构)承担了这个角色,他的定义能为MIS Platform中所有组件识别和解析,成为组件协同工作的纽带。SORBA的定义要考虑到独立于平台、独立于操作系统、独立于编译系统、独立于开发工具,因为在这个应用范围广大的多平台、长期持续开发的应用系统中,我们无法保证大家都使用相同的开发工具,即使开发工具相同,也不可能保证通信的数据结构绝对不发生改变,因此SORBA的定义的独立性和灵活性就相当重要。
在各种平台下实现组件。由于我们的系统是多平台的,所以复用组件也需要在多平台下实现。而目前大家讨论得多的如COM、CORBA、ActiveX等是以WINDOWS为平台的,WINDOWS能够提供给组件的实现方式为DLL或OLE技术。而我认为,这个理解是狭隘的,组件可以以多种方式在多种平台下实现。在WINDOWS系统上除了DLL和OLE外,还可以使用静态连接、消息队列等方式来实现;在UNIX上可以采用静态连接、消息队列、共享内存等技术来实现。可以看出,在UNIX和WINDOWS(2000以上版本)上均提供了消息队列。MIS Platform中独立运行的组件是通过消息队列联系起来的,在UNIX和WINDOWS下均采用这个机制,如加密组件和通信组件之间、短消息处理中心和通信组件之间、通信组件和ASP应用组件之间均通过消息队列通信。而嵌入式组件如基本表、索引、SORBA接口协议等组件在UNIX下的实现采用的是静态连接技术,在WINDOWS下采用静态连接和DLL两种技术。不管是嵌入组件还是独立运行的组件,在实现的时候都应当考虑多平台的需求,组件要独立于开发工具、具有高度的可塑性、接口清晰可靠。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>