论信息系统的架构设计
[摘要]
本文讨论医保通零距离实时赔付系统项目的架构设计。该系统主要实现了中国人寿保险公司通过与医院合作,让中国人寿客户在出险住院并完成治疗后,即可获得实时的健康险理赔服务,从而在提升保险公司服务的同时减轻病人经济负担、减少客户理赔困难。在医保通实时赔付系统设计架构中,整个系统中分为B/S结构的管理中心端与C/S结构的医疗机构前端两部份。在管理中心端采用J2EE架构,使用了与传统EJB为核心的重量级架构有所不同的轻重级架构方式,其中主要使用Spring框架作为系统的基础平台,充分体现了 Sping的高开发效率、易测试维护性及应用服务的可移植性等优点。同时,在架构设计中,充分考虑了系统的可扩展性、稳定性、安全性、可维护性、灵活性等因素。 在本项目的开发过程中,我担任了系统架构设计与项目管理的工作。该项目从目前推广与应用情况看,达到了项目的预期目标,得到了各级公司的一致好评。
[正文]
“理赔难”一直以来都是各大商业保险公司与参保客户所关注的重要问题,为解决该问题,中国人寿保险公司提出了商业保险的实时赔付系统一中国人寿医保通零距离实时赔付系统,该系统是国内首个用于商业健康险的实时理赔服务系统。系统主要通过中国人寿保险公司与医院合作,将常规保险理赔工作从事后理赔调整为事中理赔,也就是将以往的串行工作方式“客户出险一>住院一>出院一>理赔开始一〉理赔结束”,改为了并行方式, 即客户住院时也就开始了理赔工作,当客户出院时理赔工作同时结束,有效地缩短了理赔时间。医保通实时赔付系统的出现,提高了保险公司理赔服务时效、降低了保险公司调查难度,保证了理赔调查的准确性,加强了理赔风险管理,降低了赔付率;同时,为参保客户提供了方便的理赔服务方式,使客户在住院期间可少缴医疗保证金,减轻了客户住院的经济压力,让客户治疗出院时即可获得理赔,免去了客户理赔奔波等烦心事。 医保通系统第二版于2006年底开始全新开发,并对系统功能及系统架构进行了全面改进,在通过公司近几30位员工的共同努力下,该版本于2007年6月通过客户验收。我在本项目的开发过程中,担任了系统架构设计与项目管理工作。信息系统架构设计是软件需求分析与软件设计的桥梁,架构在软件开发中为不同人员提供了共同的交流语言,体现了系统早期的设计决策,为系统的开发提供了强有力的支持。好的架构将奠定优质的信息系统,同时好的架构需要源于对需求的充分了解。因此,在进行架构设计前,我们对软件需求进行了充分的了解与分析。 通过对需求的了解与分析,我们知道该项目主要干系人员是保险公司(包括管理人员与各岗位工作人员)、医院工作人员及客户,真正使用与操作的人员是保险公司与医院,他们分别有各自的职责,分别负责不同的工作内容。从系统功能上区分,保险公司主要负责各项管理工作及众多的统计分析;而医院则主要负责对客户住院信息与诊疗信息的采集及进行理赔金的垫付。系统的所有数据与信息都必须存储于保险公司。 在软件功能上,医院需要使用的功能相对简单,保险公司需要使用的功能则复杂很多。在软件的使用环境上,由于保险公司多年来一直较重视信息技术的发展,已建立有良好的网络及信息技术平台;而医院则不同,由于国内医院众多,其各自对信息技术的开发与利用各不相同,甚至某些小型的卫生院目前都没有安装使用计算机。保险公司领导与医院领导对软件的关注点也存在差异,保险公司领导主要关心软件能否实现预定的各项功能,能否达到预期的管理目标,而开发与运维费用则能少则少,成为了他们次要关注内容;对于医院领导来说,医保通系统的实施给其帯来的显式经济收益不多,反而会増加其成本的投入,因而他们会考虑更多的成本投入。最终,我们总结出以下几点: 1、 软件在保险公司与医院都需要有操作界面,医院在本地准备与组织数据,需要进行数据通讯时再进行网络联接,不需要实时在线操作,以减少网络使用费用的支出; 2、 网络连接上需要提供多种连接方案,对于使用量小的医院,可选择拨号连接方式,対于使用量大的医院可使用ADSL或光纤进行V**接入; 3、 医院端需要提供多种与医院已有管理系统(HIS)的接口方式,便于医院重复利用已有信息数据,减少重复录入; 4、 医院端必须提供简单的信息录入方式,包括入院信息、诊疗信息及出院信息,使没有HIS系统的医院能进行信息的录入工作; 5、 保险公司端则需要在结合功能实现的基础上,更多的考虑系统的稳定性、安全性、可扩展性、灵活性、可维护性等方面; 6、 医保通系统将与保险公司核心系统及众多的HIS系统进行信息接口,所使用的信息编码应符合国际、国家及行业编码规范; 7、 最大限度地降低系统开发及运维成本。 基于这些特点,我们将整个系统分为B/S结构的管理中心端与C/S结构的医疗机构前端两个部份。在管理中心端采用J2EE架构,其中主要使用Spring框架作为系统的基础平台。C/S结构的医院端软件在整个系统的架构中被视为一个表现层,通过专用的通讯模块与管理端实现数据接口,而对于医院来说,他又是一套独立的应用软件。如下图所示:
从图中可以看出,本系统是一个典型的多层轻重级J2EE架构,主要分为表现层(管理端表现层与医院端表现层)、企业应用集成层、业务逻辑层、数据访问层。 在表现层,医院端通过TCP/IP方式和中心端进行数据交互,可看作系统在医院端的表现层,通讯模块是医院端与管理端数据交互的主要途径;而管理端表现层则以JSP及报表等多种方式将数据展示出来,供用户使用,管理端用户操作主要集中在这一层。Webwork2作为轻量级的MVC框架,能够较为容易的与Spring进行集成;同时,优雅的设计提供了良好的扩展接口,可以有多种的数据表现形式。 企业应用集成层(EAI),所涉及的数据较多,提供从多方进行数据采集,如保险公司已有的三套核心系统及社保系统等。此层的作用即是为与其它企业应用提供数据交互的接口。 业务逻辑层,是系统的核心,它负责处理系统中的各类业务逻辑。它是以Spring作为基础平台,借助它的强大功能,以轻量级的POJO作为基础,即可完成复杂的业务逻辑处理。 数据访问层,因Spring提供了良好的数据访问支持,如JDBC及事务支持等,使得数据访问较为容易。 该架构中各层相互间以松耦合的方式进行联系并负责各自的工作。各层在应用部署时可合并部署也可分开部署,在工作负荷较小时,所有层可合并部署在同一服务器中,如果某层工作负荷増大,则可将其独立出来部署于其他服务器中,或以服务群集的方式进行部署,以提高系统的整体运行效率。 总的来说,该架构充分体现Sping的高开发效率、易测试维护性及应用服务的可移植性等优点,同时也能体现出该系统的可扩展性与灵活性。从目前推广与应用情况看,达到了项目的预期目标,得到了各级公司的一致好评。但该架构仍存在其缺点,目前,保险公司已有三套信息相对独立的核心系统,虽然医保通系统通过EAI层很好地解决了与之分别相对的信息接口,但仍存在很多“信息孤岛”,该架构不利于解决信息系统的整合。 在架构设计之初,医院端与管理端通讯并未使用专用通讯模块,是将两个软件看作是相对独立的软件,其通讯则是根据不同交易使用不同的处理过程,这样将导致开发与运维工作量的増加,甚至影响到系统的稳定性与安全性,同时也意味着相应成本的増加。在进行架构设计论证时,有员工对此提出了新的看法。其方法是将通讯处理过程进行统一,形成独立的数据通讯层,并负责网络通讯的安全管理,所有通讯工作都需要经过该层,但他不对通讯的具体内容进行处理,也就是说不管通讯内容或格式有什么变化,其通讯翅都不需要进行修改。从而降低了开发工作量,减少了对通讯的运维,也提升了系统安全性、稳定性与可维护性。通过这事,我们再次体会了在软件开发中需要大家的共同努力,集中大家的智慧,团结才能发出更大的力童。