- 摘要:
本文以我主持开发的某公司企业信息管理系统为例,探讨了基于构件的软件开发问题。该系统是一个综合信息系统,涵盖了原料采购、生产管理、物流管控等七大功能。在开发过程中,我担任系统架构师,负责需求分析、系统建模和方案设计。本文首先分析了CORBA、EJB、COM/DCOM三种构件技术的特点,随后详细论述了构件技术在软件开发中的应用过程。我们在开发阶段采用了统一查询构件封装,组装阶段则使用了三种构件组装方式。最终,系统成功上线并稳定运行,获得用户好评。
- 正文:
2022年9月,我公司开始开发某大型粮食加工企业的企业信息管理系统。该系统旨在提高内部管理和外部服务,以提升品牌形象和保护消费者利益。系统分为两部分:经营管理Web平台和手机App应用,采用了服务层次架构,共分为三层。用户界面层使用Extjs、Sencha Touch和PhoneGap框架,业务服务层使用.Net平台,数据层使用IBM DB2 V9.5。项目从2022年9月启动,至2023年9月上线,历时一年。在开发过程中,我负责需求获取与分析、系统建模和总体方案设计。我们应用了构件技术,效果良好。
构件技术在面向对象技术的基础上发展起来,解决了软件复杂度、成本、质量、效率等问题,受到广泛推崇。主流的构件技术包括CORBA、EJB和COM。CORBA特点是大而全,互操作性和开放性强,但复杂且更新缓慢。EJB基于Java语言,跨平台性好,提供了远程访问、安全、持久化和生命周期等服务。COM技术是微软的产品,功能强大但跨平台性差。我们在开发过程中有效利用了这些构件技术,解决了各种问题,取得了良好的效果。
在实践过程中,我们进行了模块划分、构件标识、构件获取、构件组装与测试、构件管理等工作。下面重点介绍构件获取、构件开发和构件组装三个方面的问题。
一、构件获取
系统需求分为三类:修改现有系统、使用现有构件和集成第三方服务。对于修改现有系统的需求,我们通过COM技术对生产控制系统的状态进行封装并开放接口。对于使用现有构件的需求,我们利用公司已有的构件库,包括文件序列化、数据库连接等模块。对于集成第三方服务的需求,我们选择了百度的产品来实现消息推送和GPS定位功能。此外,我们根据需求重新开发了一些功能构件。
二、构件开发
构件的设计应保持高内聚、低耦合。以数据查询构件为例,虽然查询需求多样,但我们将其统一封装到一个构件中。开发人员只需构造SQL语句并配合参数即可获取结果,这样最大化了构件的可重用性。我们还使用了经典的设计模式,例如在数据库连接构件中使用了抽象工厂模式,以根据配置文件动态建立对不同数据库的连接。
三、构件组装
不同构件类型采用不同的组装方式。我们使用了DCOM构件组装、构件库中构件组装和SOA服务调用组装三种方式。DCOM构件组装用于生产控制系统,需在控制系统上部署DCOM服务并在Web平台配置权限。构件库中构件组装较为简单,直接引用构件库中的文件或源码。SOA服务调用组装用于集成第三方服务,使用基于HTTP的Web Service访问,并需采取数据加密措施提高安全性。
基于构件的软件开发技术使得系统开发顺利进行,项目按期上线并获得用户肯定。这一成功经验让我认识到优秀的软件设计思想和技术在软件开发中的重要性,并增强了我对构件技术的信心。软件开发的演进趋势显示,从汇编语言到面向对象开发,再到基于构件和面向服务的软件开发,软件元素在功能强大和接口简单化方面不断进步。未来,统一标准下的无缝组装将可能带来新技术的出现,数字化生活和智能地球等概念有望实现。