NeusoftCo.,Ltd.2007邵树力政府事业部技术总监沈阳东软软件股份有限公司如何构建关键业务应用系统(东软经验分享)NeusoftCo.,Ltd.2007说明本稿旨在与用户及业界同仁分享东软在构建关键业务应用系统方面积累的一些实践经验,并非就具体的技术路线和产品选型等给出结论式建议。本稿的核心思想是:利用网格计算模式构建关键业务应用系统,但重点阐述的是我们在实际案例中遇到的具体问题及解决办法,而不是网格计算本身的定义或理论。NeusoftCo.,Ltd.2007内容公安行业案例分析社保行业案例分析概述小结NeusoftCo.,Ltd.2007概述NeusoftCo.,Ltd.2007主要词汇•关键业务应用–随着信息技术的不断发展和广泛应用,信息系统管理的数据量及处理的交易量越来越大,同时社会经济和公民生活对信息系统的依赖性也越来越大,这就要求信息系统必须提供高可用、高性能的服务。尤其是很多关键的大型业务系统更是要求必须处于7×24的不间断服务状态,我们通常将这类系统称之为关键业务应用系统。•网格计算–将多个服务器和存储器当作一台大型电脑协调使用,使它们在高速网络上动态地共享计算机资源。–网格计算:全世界计算机联合起来!NeusoftCo.,Ltd.2007采用网格计算模式构建关键业务应用系统StorageGridDatabaseGridApplicationGridGridControl•网格计算的优势:–高可用性–高性能–高协同性–可扩展性•补充优势:–弹性成本–保护投资NeusoftCo.,Ltd.2007主要案例•公安行业–部级人口信息管理应用系统/全国人口基本信息资源库一期应用系统开发项目(简称:公安部人口库项目)•社保行业–广州市社会保障信息系统社会保险业务信息系统(Pj4)软件开发(简称:广州社保项目)–无锡市劳动保障信息系统项目–重庆市医疗保险信息系统项目NeusoftCo.,Ltd.2007公安行业案例分析NeusoftCo.,Ltd.2007目录•系统简介•主要挑战及解决办法–如何保证数据加载效率–如何保证信息服务的高并发处理能力–如何保证统计分析系统的性能)NeusoftCo.,Ltd.2007客户端系统功能示意图数据校验数据缓冲区数据加载正式库指标库生成指标库部人口系统省、地市人口系统信息服务平台数据展现交换平台省库地市库基本信息重载信息维护信息元数据/规则服务对象公安其它信息系统金盾CA平台NeusoftCo.,Ltd.2007物理部署方案数据库服务器存储设备应用服务器其它服务群(37台)负载均衡器IBMP690/16CPU,32GRAMIBMP650/4CPU,8GRAM数据加载机(13台)客户端刀片服务器NeusoftCo.,Ltd.2007目录•系统简介•主要挑战及解决办法–如何保证数据加载效率–如何保证信息服务的高并发处理能力–如何保证统计分析系统的性能)NeusoftCo.,Ltd.2007•功能需求特点:–逻辑复杂度适中–从访问量上看系统以提供查询服务为主–统计、分析功能需求较多•非功能需求特点:–可用性要求高–数据加载效率要求高,200万人口数据/秒–并发用户量极大,达到=2000(最终目标)–数据量庞大,存储容量=24T(最终目标)–响应速度要求较快:OLTP要求=2秒OLAP要求=5小时系统整体需求分析NeusoftCo.,Ltd.2007目录•系统简介•主要挑战及解决办法–如何保证数据加载效率–如何保证信息服务的高并发处理能力–如何保证统计分析系统的性能)NeusoftCo.,Ltd.2007客户端系统功能示意图数据缓冲区数据加载正式库指标库生成指标库部人口系统省、地市人口系统信息服务平台数据展现交换平台元数据/规则服务对象公安其它信息系统金盾CA平台数据校验省库地市库基本信息重载信息维护信息NeusoftCo.,Ltd.2007数据加载示意简图XML临时库正式库FTP服务•主要挑战:–如何保证200万带照片数据/小时的加载效率(65%的人有照片,照片平均大小30K)?–数据入库过程中要做全面的XML格式检查,数据项检查,统计性指标检查(身份证重号率、相片参加率、主项差错率)NeusoftCo.,Ltd.2007解决办法•采用OracleRAC技术提高数据库处理能力•采用多进程并行加载机制提升数据加载效率•调度机与加载机之间采用异步通讯机制提高系统的可靠性•采用SAX技术解析大量XML文件•用存储过程减少远程通讯次数NeusoftCo.,Ltd.2007采用OracleRAC技术EMC24口光纤交换机IBMFASTT900(备份、FTP)EMCDMX2000磁盘阵列IBMP690IBMP690IBMP690•OracleRAC集中存储、多实例并行的特点使得系统的性能、可靠性、可扩展性大幅度提高NeusoftCo.,Ltd.2007采用多进程并行加载机制……7U监管客户端数据库服务器FTP服务器拿出50台刀片中的13台做数据加载,其中-1台做指挥调度机-12台做加载机IBMFASTT900EMCDMX2000文件汇总信息数据文件每台刀片机上运行13个加载机进程,共12×13=156个加载进程NeusoftCo.,Ltd.2007采用异步通讯机制FTP服务器数据库服务器指令监听数据加载加载机1指令监听数据加载加载机12指令发布加载调度调度机1从FTP服务器上获取某一地区上载数据包的列表2向加载机发布加载指令3领取加载指令4从FTP服务器上下载数据包5解析文件加载入库报告结果6所有的数据包都入库后,做质量指标统计、复制数据到生产库…………NeusoftCo.,Ltd.2007采用SAX及XML加速器•系统最初是采用DOM解析器进行XML解析的,因为一个数据包入库前是要做一些统计、分析及跨记录校验的,DOM可以在内存中生成一棵数据资源树方便逻辑计算。•但为了提高加载效率,后来改为SAX解析器,逻辑计算改为在在周转库中进行。这样做的好处是:–SAX事件驱动模式的解析可以大大提高XML解析效率–每台逻辑加载机消耗的资源大幅度降低,这是一台刀片服务器运行10多个逻辑加载机的前提•再后来曾经验证了IntelXML加速器的解析效率可以提高到传统XML解析器的10倍以上,但这项技术最后并未应用到这个项目中,主要是经过严密的测试发现:在数据加载这个环节中,XML解析已经不是性能最低的环节。NeusoftCo.,Ltd.2007用存储过程减少远程通讯次数XML序列号基本信息照片加载机数据库3保存基本信息4保存照片信息2赋给基本照片信息1获取内码主键XML序列号基本信息照片加载机数据库存储过程优化前优化后NeusoftCo.,Ltd.2007目录•系统简介•主要挑战及解决办法–如何保证数据加载效率–如何保证信息服务的并发处理能力–如何保证统计分析系统的性能)NeusoftCo.,Ltd.2007客户端系统功能示意图数据缓冲区数据加载正式库指标库生成指标库部人口系统省、地市人口系统信息服务平台数据展现交换平台元数据/规则服务对象公安其它信息系统金盾CA平台数据校验省库地市库基本信息重载信息维护信息NeusoftCo.,Ltd.2007面临的主要挑战•最终目标:–面向全国公安干警和相关系统开放–峰值150,000在线用户,2000并发请求–身份核查在2秒内完成•现状:–面向已发放CA证书的干警和相关系统开放–可以满足450并发请求–身份核查在2秒内完成应用服务器3台IBM P650(4WAYCPU/8GRAM)应用服务器7台IBM P650(8WAYCPU/16GRAM)NeusoftCo.,Ltd.2007解决办法•采用合理的分区方案提高查询效率•采用池技术减少对象生命周期过程消耗•采用局部刷新减少远程通讯数据流量•采用缓存技术提高实体对象的获取速度•采用MDB做日志持久化以保障核心业务逻辑有充足的资源NeusoftCo.,Ltd.2007采用合理的分区方案数据库表分区方式基本信息表•“年的尾数+出生日期”为分区ID建范围分区•对姓名索引建范围分区业务维护信息表•“报送单位+年份”为分区ID建范围分区业务维护测试基本信息表•“报送单位”为分区ID建列表分区NeusoftCo.,Ltd.2007采用池技术•采用IBMWebSphereApplicationServer的数据库连接池•对查询服务组件以无状态SessionBean的形式包装,靠应用服务器的EJB容器管理组件池及组件的生命周期NeusoftCo.,Ltd.2007采用局部刷新技术•在客户端反复出现的界面首次下载后在客户端做显隐控制,不再重复下载•客户端与服务端只交互业务数据,不再重复下载界面布局及显示风格•核心目标是:减少远程通讯数据流量客户端应用服务端NeusoftCo.,Ltd.2007采用缓存技术提高实体对象的获取速度•常用信息(如行政区划、权限、民族等)在初始化时置入Cache中缓存,以后用到这些信息时直接从Cache中提取•Cache中的对象在各集群节点的同步是缓存方案的关键数据库应用服务集群节点应用服务集群节点应用服务集群节点……•最简单的办法:–首次加载–定期同步NeusoftCo.,Ltd.2007应用服务采用MDB实现日志持久化业务表数据库3保存日志数据2保存业务数据1获取连接优化前优化后日志表……应用服务业务表数据库2.2保存日志数据1.2保存业务数据1.1获取连接日志表2.1获取连接……•加快业务处理速度•保证业务处理有足够的资源NeusoftCo.,Ltd.2007目录•系统简介•主要挑战及解决办法–如何保证数据加载效率–如何保证信息服务的并发处理能力–如何保证统计分析系统的性能)NeusoftCo.,Ltd.2007客户端系统功能示意图数据缓冲区数据加载正式库生成指标库部人口系统省、地市人口系统信息服务平台交换平台元数据/规则服务对象公安其它信息系统金盾CA平台指标库数据展现数据校验省库地市库基本信息重载信息维护信息NeusoftCo.,Ltd.2007主要挑战及应对办法•主要挑战:–数据量大,统计一次耗时较长–延时统计与实时统计并存•应对办法:–建立指标库,在数据加载时同时形成针对本批次数据统计指标,为最终的统计提供“半成品”–基于Cache的实时统计分析NeusoftCo.,Ltd.2007基于Cache的实时统计分析数据管道报告缓存规则管理元数据指标库消息队列事件引擎统计指标缓存应用程序实时统计•技术方案的关键:Cache数据的及时持久化NeusoftCo.,Ltd.2007找到专业产品和自主开发的平衡点•上述案例中用到的一些技术业内有一些专业产品,如OracleBAM、OracleCoherence。但受到各方面条件的限制在应用中不一定都应用这些产品,不过可以借鉴其中的思想精髓。CoherenceBAMNeusoftCo.,Ltd.2007社保行业案例分析NeusoftCo.,Ltd.2007目录•系统简介•主要挑战及解决办法–如何提高管理型业务的性能–如何保证医保证接口的并发处理能力–如何提高批处理业务的性能)•说明:在上一案例中讲到的解决办法在本案例中将不再重复。NeusoftCo.,Ltd.2007劳动及社会保障系统业务架构定点医疗机构社区参保人 参保单位财政、地税等相关单位上下级劳保机关医保接口社保业务劳动业务核心业务增值服务公众服务综合管理生产区交换区决策区数据交换网络扫描基金监管统计分析决策支持宽带专线宽带专线因特网局域网光纤业务经办人员公众服务中心决策分析中心监控维护中心容灾备份中心NeusoftCo.,Ltd.2007•功能需求特点:–业务逻辑复杂–OLTP和OLAP并存–涉众广泛•性能需求特点:–稳定性要求高–数据增量速度快–医保接口并发压力大系统整体需求分析NeusoftCo.,Ltd.2007目录•系统简介•主要挑战及解决办法–如何提高管理型业务的性能–如何保证医保证接口的并发处理能力–如何提高批处理业务的性能)NeusoftCo.,Ltd.2007合理规划业