每个企业都在运行着各种各样的应用软件,处理着林林种种的数据。这些软件彼此独立,使用各自独立的数据库,形成一个个信息的孤岛。如何整合现有的系统,从而形成一个互联互通、信息共享的软件平台,是各企业梦寐以求的事情。如果你作为一个系统架构设计师,会如何考虑呢?以下就是本人的一些考虑。
企业软件系统平台,应确保软件系统具有良好的可靠性、扩展性、稳定性,还要关注效率和成本。
系统的可靠性目前大都使用支持双机热备的系统硬件,通过双机热备保证系统的高可用性;也有部分系统使用集群技术,使用一组计算机设备并发工作保证系统的高可用性。但从实际运行的经验看,计算机系统双机热备技术并不是非常的成熟,偶尔还会导致更大的麻烦,因此我个人还是顷向使用集群技术。
扩展性考虑主要是确保系统运行正常的情况下升级或更换系统软件模块、增加或删除功能模块,对新的业务需求提高更快的响应,避免对系统进行较大的改造。显然必须使用模块化或组件化的系统设计思想才能满足此目标。而SOA设计思路则是组件化设计思想的继承与发展。我个人的观点是全面使用SOA可能存在相当的难度,但至少我们可以实现粗粒度、面向业务或报文服务的SOA。
由于本人多年的C++编程背景,因此对C++设计的系统的稳定性和处理效率还是比较认同的。如果主要业务逻辑换用解释型的JAVA实现,没有经过压力测试,我是不敢轻率做出这个决定的,因此我个人还是坚持核心业务处理系统,应使用C++编写,确保系统具有较高的效率与稳定性。
每个系统都离不开人机界面。从C/S结构到目前流行的B/S结构,人机界面设计要求发生了很大的变化。C/S结构的用户体验、响应速度、开发速度是B/S结构无法比拟的,但在多用户环境下,其可维护性、并发能力难以满足大量用户并发的要求,这正好是B/S结构发挥威力的地方。而瘦客户端技术则是平衡C/S与B/S技术的优缺点的人机界面技术。结合目前各种流行的B/S技术,我认为大量用户少量界面的简单系统人机界面应使用WEB技术(建议JSF),而少量用户大量界面的复杂系统人机界面使用瘦客户端技术更合适。目前WebService技术更是为瘦客户端技术增添了双翼。因此人机界面,我会选择JSF+WEB和瘦客户端+WebService技术实现,建议Delphi+WebService。
综上,我们的软件平台应具有下列特征:
(1)使用集群技术的一组计算机作为业务处理后端服务器;
(2)核心业务逻辑使用交易中间件控制下的C++应用完成,核心业务逻辑没有任何人机界面;
(3)所有业务系统的人机界面部署在JAVA EE Application Server中,由一个或多个WEB应用组成;
(4)核心业务应用间、核心业务应用与Web应用间通过消息中间件交换数据(消息、报文);
(5)人机界面使用WEB技术或瘦客户端技术。
其典型的技术包括:
(1)服务器集群技术及负载均衡技术;
(2)数据库技术;
(3)C++编程技术;
(4)JAVA EE Application Server及其集群、负载均衡技术;
(5)JAVA、JSF、JSP、JAX-WS技术;
(6)Delphi编程技术。
最后绘制一张简单的示意图说明我心中的系统软件平台架构。
posted on 2007-12-01 14:40
飞鹰 阅读(1047)
评论(0) 编辑 收藏