




免费预览已结束,剩余65页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于b/s架构保险系统的设计和实现摘 要三号黑体加粗面对日趋严峻的经营环境,各保险公司竞争致胜的关键是如何形成以客户服务为中心的营运主轴,并建立国际化、标准化与优质化的组织架构、作业流程,以及相应的信息系统,同时这也是各公司所需积极应对的挑战。保险核心系统是一个保险公司开业的先决条件,保险公司也已经广泛地认识到保险公司业务的高速增长和面临的巨大竞争压力需要得到一个高度灵活的、可靠的和可扩展的核心业务系统的支持,这个核心业务系统需能够为保险公司和所有的用户提供完整、全面的业务处理支持。国内的保险核心系统通常以保险公司现有业务作为模板进行开发,往往缺乏前瞻性,这样的系统缺乏可扩展性和可移植性。由于不同保险公司之间的业务和经营模式差异性较大,需要通用核心系统具有高度的模块化、参数化、以满足不同保险公司的需求,同时保证系统具有良好的可扩展性和可移植性。关键词:b/s,j2ee,保险核心系统,java企业架构,架构模型,通用架构abstractfacing the serious business environment, how to form to the customer service as a center spindle is the key to winning the competition, and the establishment of international standardization and quality of organizational structure, processes, the corresponding information systems, and required to actively respond to the challenges.insurance core system is an opened prerequisite for the insurance company has also been widely recognized that the rapid growth of the insurance companys business and facing enormous competitive pressures need to be a highly flexible, reliable and scalable core business system support core business systems need to be able to insurance companies and all users to provide a complete, comprehensive business support. domestic insurance core systems are usually developed as a template tot he existing business of the insurance company, and often a lack of forward-looking, such systems lack the scalability and portability. business and business model differences between the different insurance companies, the common core system with a high degree of modularity, parameterization, in order to meet the needs of different insurance companies, while ensuring that the system has good scalability and portability .key words:b/s, j2ee, insurance core system, frameworkmodel, universalframework目 录1 绪论11.1 背景及目的11.2 研究主要内容22 开发工具和开发技术选择32.1 b/s模式32.2 jsp技术42.3 json技术82.4 struts技术102.5 spring技术112.5 hiberanate技术122.6 本章小结133 系统的需求分析143.1 需求分析143.2 新旧系统功能对比153.3 本章小结164 系统的设计174.1 整体技术架构174.2 构造思路234.3 架构实现244.3.1 pcis v6应用服务器的配置244.3.2 配置文件254.3.3 dw展示304.3.5 pcis v6 业务层384.3.6 业务层事务处理394.3.7 pcis v6集成层394.4 数据库分析和设计434.5 数据库物理结构设计444.6 本章小结475 系统模块的实现485.1 用户登录模块的实现485.2 新增投保模块的实现505.2.1 前台界面字段设置515.2.2 后台界面字段设置545.3 暂存单查询模块的实现545.4 投保单查询模块的实现555.5 本章小结556 调试与测试576.1 程序调试原则和目的576.2 程序调试576.3 系统测试586.4 本章小结61总 结62参 考 文 献63致 谢64661 绪论随着保险行业业务快速发展以及市场竞争加强,特别是渠道业务发展,将各个保险公司it支撑系统推到竞争的第一线,直接进入“面对面”的竞争。梳理核心业务的出单流程,推出更高效便捷的“快速出单系统”成为迫在眉睫的事项。为v6保险快速出单系统需求调研提供指引,同时对系统设计提供参考性指导。由于不同保险公司之间的业务和经营模式差异性较大,需要通用核心系统具有高度的模块化、参数化以满足不同保险公司的需求,同时保证系统具有良好的可扩展性和可移植性。j2ee(java2platformenterpriseedition)是sun公司推出的一个多层次结构的分布式应用程序模型,该模型具有重用组件的能力、基于扩展标记语言(xml)i数据交换、统一的安全模式和灵活的事务控制,它为搭建具有可伸缩性、灵活性、易维护性的企业信息系统提供了良好的机制,与传统的互联网应用程序模型相比有着不可比拟的优势。开发者不仅可以更快地发表对问题域新的解决方案,而且其独立于平台、基于组件的j2ee解决方案不再受到提供商的产品和应用程序编程界面的限制。本文通过研究保险行业的核心系统的基础上根据保险行业的共同特点给出了保险核心系统的总体构架模型,该总体架构模型解决了保险公司根据现有的业务模板开发出的系统的不足。1.1 背景及目的当前渤海核心业务系统(由软通动力提供的pcisv5)系统运行稳定,从性能支撑上和功能扩展性均能满足。但是,其的技术架构不能适应车险快速出单的要求。需要进行根据业务发展的要求进行部分升级。现有核心系统升级在规划当中,由于核心系统的升级涉及业务面广,外围系统众多,数据迁移量大而繁杂。核心系统全面升级需要更长的时间以及更全面的准备。基于上述原因,渤海保险决定建设“快速出单系统”。这也决定了该系统的建设重要目标:高效、快速,并能与当前的核心系统兼容。1. 对出单点的网络情况要求不高。对网络的要求一方面是网速要求,一方面是vpn要求。快速出单系统应该允许公网访问,不能仅仅依靠vpn才能联通。快速出单系统的客户端(即:浏览器)与服务器之间传送信息最小化,交互次数最少化。2. 对录单人员的系统熟悉度不应有过高要求。系统假定面向三个层面的操作者:第一,了解车险业务,但不熟悉系统,系统应该从人的角度考虑,通过向导式的录入,引导客户录入信息;第二、初步了解系统,并且业务范围相对固定(例如:某品牌4s店),系统应该提供预定义模板的方式简化这部分人员的操作流程;第三、对系统非常熟悉的熟练操作人员,系统应该将信息分块,并考虑预提一部分信息做录入准备。3. 系统要避免出现系统长时间等待或者死机现象,需要具有良好的交互性,能对操作员的动作快速做出反映,对于操作错误要准确定位。1.2 研究主要内容原v6前台采用的dw(datawindow)+xslt形式做页面及数据展现,好处是制定页面时候模板化,开发人员耗费较少的时间定制页面,同时不需要关心页面的基础校验及事件管理。但是由此也带来一些问题,由于界面的模板化,导致需要在客户端浏览器解析模板文件生成html才能展现,耗费客户端浏览器资源,同时对客户端机器有一定的要求,另外模板化对于个性页面的处理带来了不方便,对于部分需要特殊展现及特殊视觉效果支持不到位。同时由于需要兼容原有v6的后台,所以快速出单推出了新的前台框架。新的框架使用的是纯jsp作为前台页面展现及数据获取,在页面初始化的时候平台将初始化一个wd(webdata)的json数据结构存储数据。由于使用的是jsp所以对页面布局也更为灵活,可以任意将数据布局。界面上的input标签的机构任然采用原产品定义的结构使用“别名.字段名”作为字段name,前台jsp维护了dwbase的dw数据结构。看到这里你可能会疑问,为什么前台还会有dw的形式存在。那是因为后台向前台返回数据的时候仍然要用到dw的结构,但是对里面的数据类型、codelist、校验类型、onchange事件等均布响应,新平台关联dw仅仅使用attribute标签的name属性,也就是说前台的一个input的那么必须对应后台一个dw的name,否则字段回填会有问题(不会影响字段值抽取,因为字段值抽取与dw无关)。2 开发工具和开发技术选择系统开发平台:my eclipse 6.5数据库管理系统软件:oracle 10.0运行平台:windows xp / window vista / window 7java 开发包:jdk5.0 以上web 服务器:tomcat 6.0本系统采用mvc架构模式开发,具体如下。显示层:使用jsp技术开发控制层:使用servlet技术开发模型层:使用java bean技术开发2.1 b/s模式b/s(browser/server)结构即浏览器和服务器结构。它是随着internet技术的兴起,对c/s结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过www浏览器来实现,极少部分事务逻辑在前端(browser)实现,但是主要事务逻辑在服务器端(server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(tco)。以目前的技术看,局域网建立b/s结构的网络应用,并通过internet/intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如lan, wan, internet/intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在java这样的跨平台语言出现之后,b/s架构管理软件更是方便、快捷、高效。由此而见,b/s架构软件的优势与劣势就十分明显了。1. 维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,b/s架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但b/s架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。2. 成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用b/s架构的应用管理软件,只需安装在linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的linux操作系统快速发展起来,linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。3. 应用服务器运行数据负荷较重。由于b/s架构管理软件只安装在服务器端(server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(server)端完全通过www浏览器实现,极少部分事务逻辑在前端(browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。2.2 jsp技术jsp(java server pages)是由sun microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。jsp技术有点类似asp技术,它是在传统的网页html文件(*.htm,*.html)中插入java程序段(scriptlet)和jsp标记(tag),从而形成jsp文件(*.jsp)。用jsp开发的web应用是跨平台的,既能在linux下运行,也能在其他操作系统上运行。jsp是动态生成html、xml或其他格式文档的web网页的技术标准。jsp技术是以java语言作为脚本语言的,jsp网页为整个服务器端的java库单元提供了一个接口来服务于http的应用程序。jsp使java代码和特定的预定义动作可以嵌入到静态页面中。jsp句法增加了被称为jsp动作的xml标签,它们用来调用内建功能。另外,可以创建jsp标签库,然后像使用标准html或xml标签一样使用它们。标签库提供了一种和平台无关的扩展服务器性能的方法。jsp被jsp编译器编译成java servlets。一个jsp编译器可以把jsp编译成java代码写的servlet然后再由java编译器来编译成机器码,也可以直接编译成二进制码。jsp是模型-视图-控制器(mvc)的设计模式,为了把表现层presentation从请求处理request processing和数据存储data storage中分离开来,升阳公司推荐在jsp文件中使用一种模型-视图-控制器model-view-controller模式。规范的servlet或者分离的jsp文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的jsp页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如struts和spring framework)。1. 一个jsp页面可以被分为以下几部份:(1) 静态数据,如html(2) jsp指令,如include指令(3) jsp脚本元素和变量(4) jsp动作(5) 用户自定义标签(6) 静态数据静态数据在输入文件中的内容和输出给http响应的内容完全一致。此时,该jsp输入文件会是一个没有内嵌java或动作的html页面。而且,客户端每次请求都会得到相同的响应内容。2. jsp指令jsp指令控制jsp编译器如何去生成servlet,以下是可用的指令:包含指令include 包含指令通知jsp编译器把另外一个文件完全包含入当前文件中。效果就好像被包含文件的内容直接被粘贴到当前文件中一样。这个功能和c预处理器所提供的很类似。被包含文件的扩展名一般都是jspf(即jsp fragment,jsp碎片):页面指令page 页面指令有以下几个选项:(1) import使一个java导入声明被插入到最终页面文件(2) contenttype规定了生成内容的类型。当生成非html内容或者当前字符集character set并非默认字符集时使用。(3) errorpage处理http请求时,如果出现异常则显示该错误提示信息页面(4) iserrorpage如果设置为true,则表示当前文件是一个错误提示页面(5) isthreadsafe表示最终生成的servlet是否安全线程(thread safe)(6) import=java.util.*表示导入java实例(7) contenttype=text/html表示页面类型(8) iserrorpage=false 表示无错页面(9) isthreadsafe=truejsp表示安全线程jsp注意:在同一个jsp文件中只有import导入页面指令可以被多次使用。标签库指令taglib 标签库指令描述了要使用的jsp标签库。该指令需要指定一个前缀prefix(和c+的命名空间很类似)和标签库的描述uri:3. jsp脚本元素和变量(1) 以下是永远可用的标准脚本变量:out:jspwriter用来写入响应流的数据page:servlet自身pagecontext:一个pagecontext实例包括和整个页面相联系的数据,一个给定的html页面可以在多个jsp之间传递。request:http request对象response:http response对象session:http session对象(2) 脚本元素有三个基本的脚本元素,作用是使java代码可以直接插入servlet。一种是声明标签,在java servlet的类体中放入一个变量的定义。静态的数据成员也可以如此定义。一种是脚本标签,在java servlet的类的_jspservice()方法中放入所包含的语句。一种是表达式标签,在java servlet的类中放入待赋值的表达式,表达式注意不能以分号结尾。4. jsp动作jsp动作是一系列可以调用内建于网络服务器中的功能的xml标签。jsp提供了以下动作:jsp:include和子过程类似,java servlet暂时接管对其它指定的jsp页的请求和响应。当处理完该jsp页后就马上把控制权交还当前jsp页。这样jsp代码就可以在多个jsp页中共享而不用复制。jsp:param可以在jsp:include, jsp:forward或jsp:params块之间使用。指定一个将加入请求的当前参数组中的参数。jsp:forward用于处理对另一个jsp或servlet的请求和响应。控制权永远不会交还给当前jsp页。jsp:pluginnetscape navigator的老版本和internet explorer使用不同的标签以嵌入一个applet。这个动作产生为嵌入一个applet所需要的指定浏览器标签。jsp:fallback如果浏览器不支持applets则会显示的内容。jsp:getproperty从指定的javabean中获取一个属性值。jsp:setproperty在指定的javabean中设置一个属性值。jsp:usebean创建或者复用一个javabean变量到jsp页。上述说明了一种在网页中嵌入applet的统一方法。在标签出现之前,并没有一种嵌入applets的通用方法。这个标签设计得并不好,但有希望在以后加入动态属性(height=$param.height, code=$chart等)和动态参数的新功能。目前jsp:plugin标签不允许动态调用applets。例如,你如果有一个图表applet需要数据点以参数形式被传入,除非数据点的数量是一个常量,否则你就不能使用resultset循环来创建jsp:param标签,你不得不手写每个jsp:param标签的代码。而每个上述jsp:param标签可以有一个动态命名和动态值。scope属性可以是request, page, session or application,它有以下用意:request 该属性在请求的生命周期内有效,一旦请求被所有的jsp页处理完后,那么该属性就不可引用。page:该属性只是当前页中有效。session:该属性在用户会话的生命周期内有效。application:该属性在各种情况下都有效,并且永远不会被变为不可引用,和全局变量global variable相同。可用一个创建一个类的实例,并且把该实例存储在属性中,该属性将在该请求的生命周期内有效。它可以在所有被包含或者从主页面(最先接收请求的页面)转向到的jsp页之间共享。5. jsp标签库除了jsp预定义动作之外,开发者还可以使用jsp标签扩展api添加他们自定义的动作。开发者写一种实现一个标签的界面和一个标签库的xml描述文件的java类,这就能指定标签和实现标签的java类。jsp编译器将会载入.tld这个xml文件,然后可以看到标签myaction由java类myactiontag实现。当该标签首次在文件中使用时,将会创建一个myactiontag的实例。然后(而且当每次该标签被使用时),当出现开始标签时,将会调用dostarttag()方法,根据开始标签的结果,来决定如何处理标签的主体。主体是指开始标签和结束标签之间的文本。这个dostarttag()方法将会返回如下之一:skip_body:标签之间不做处理。eval_body_include:对标签之内主体进行赋值。eval_body_tag:对标签之内主体进行赋值并把结果输出到流(保存在标签的主体内容属性中)。注意:如果标签扩展了bodytagsupport类,当主体被执行时会在调用doendtag()之前调用doafterbody()方法。该方法用于实现循环结构。当结束标签出现时,它会调用doendtag()方法,该方法会返回如下两做之一:eval_page:表示jsp文件的剩余部份将会被执行。skip_page:表示将不会再有更多执行操作。当前jsp页交出控制权。就象在转发动作中的作用一样。2.3 json技术json(javascript object notation) 是一种轻量级的数据交换格式。它基于javascript(standard ecma-262 3rd edition - december 1999)的一个子集。json采用完全独立于语言的文本格式,但是也使用了类似于c语言家族的习惯(包括c, c+, c#, java, javascript, perl, python等)。这些特性使json成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。json格式是1999年javascript programming language, standard ecma-262 3rd edition的子集合,所以可以在javascript以eval()函式(javascript通过eval()调用解释器)读入。不过这并不代表json无法使用于其他语言,事实上几乎所有与网页开发相关的语言都有json函式库。1. json用于描述数据结构,有以下形式存在。(1) 对象 (object):一个对象以“”开始,并以“”结束。一个对象包含一系列非排序的名称值对,每个名称值对之间使用“,”分割。(2) 名称值对(collection):名称和值之间使用“:”隔开,一般的形式是:name:value;一个名称是一个字符串; 一个值可以是一个字符串,一个数值,一个对象,一个布尔值,一个有序列表,或者一个null值。(3) 值的有序列表(array):一个或者多个值用“,”分割后,使用“”,“”括起来就形成了这样的列表,形如:collection, collection(4) 字符串:以括起来的一串字符。(5) 数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“e”表示为指数形式。(6) 布尔值:表示为 true 或者 false。2. 安全性问题(1) javascript的eval()由于json在语法上是javascript的子集合,所以一般都会使用eval()作为读取资料的方式,如果是针对可靠的数据来源,在不支持原生json解析的浏览器上面这是最快速的方法。然而由于eval方法同样可以执行任意的javascript代码,因此当数据来源不可靠时则可能产生安全性问题。其中一种防止不安全代码出现的解决办法是透过浏览器原生支持的json.parse(str)方法读取json资料,目前已经得到大部分主流浏览器的支持(ie8+,firefox 3.5+,chrome4+/safari4+,opera10+),在不支持原生json对象的浏览器上面可以使用parsejson方法进行读取,parsejson采用解析器验证读入的代码是否真的是json代码,这样就提供了较好的安全性。但是,由于这是用模拟的方式读取,速度上会比eval()慢。(2) 跨站存取问题另外一个安全上的问题则是跨站请求伪造(cross-site request forgery,简称csrf或xsrf)。这个问题在javascript中的状况是,由于javascript采用了称为“沙盒”的机制,这种机制限制javascript引擎仅能引入同一个站点的代码,因而某种程度上提高了安全性。(3) 与xml格式的比较json与xml最大的不同在于xml是一个完整的标记语言,而json不是。这使得xml在程式判读上需要比较多的功夫。主要的原因在于xml的设计理念与json不同。xml利用标记语言的特性提供了绝佳的延展性(如xpath),在数据存储,扩展及高级检索方面具备对json的优势,而json则由于比xml更加小巧,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。2.4 struts技术在struts中,已经由一个名为actionservlet的servlet充当控制器(controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(view)的请求,组装响应数据模型(model)。在mvc的模型(model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应struts里的actionform与action两个需要继承实现超类。在这里,struts可以与各种标准的数据访问技术结合在一起,包括enterprise java beans(ejb),jdbc与jndi。在struts的视图(view)端,除了使用标准的javaserver pages(jsp)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如velocity templates,xslt等。通过应用struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(action)与 映射关系的配置文件(struts-config.xml)中的。它也有优缺点。很多开发人员认为struts目前尚不成熟,应用的成本较高。 附带的一点点建议: struts的优点主要集中体现在两个方面:taglib和页面导航。taglib是struts的标记库,灵活动用,能大大提高开发效率。 struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用mvc设计模型来开发web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。struts跟tomcat、turbine等诸多apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。它的发展历程。在java ee的web应用发展的初期,除了使用servlet技术以外,普遍是在javaserver pages(jsp)的源代码中,采用html与java代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,craig mcclanahan采用了mvc的设计模式开发struts。后来该框架产品一度被认为是最广泛、最流行java的web应用框架。2006年,webwork与struts这两个优秀的java ee web框架(web framework的团体,决定合作共同开发一个新的,整合了webwork与struts优点,并且更加优雅、扩展性更强的框架,命名为“struts 2”,原struts的1.x版本产品称为“struts 1”。至此,struts项目并行提供与维护两个主要版本的框架产品struts 1与struts 2。2.5 spring技术spring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由rod johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 j2ee 应用程序开发提供集成的框架。spring使用基本的javabean来完成以前只可能由ejb完成的事情。然而,spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益。spring 也是一个开源的javajava ee全功能栈(full-stack)的应用程序框架,以apache许可证形式发布,也有.net平台上的移植版本。该框架基于 expert one-on-one java ee design and development(isbn 0-7645-4385-7)一书中的代码,最初由 rod johnson 和 juergen hoeller等开发。spring framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。1. spring 中包含的关键特性强大的基于 javabeans 的采用控制翻转(inversion of control,ioc)原则的配置管理,使得应用程序的组建更加快捷简易。一个可用于从 applet 到 java ee 等不同运行环境的核心 bean 工厂。数据库事务的一般化抽象层,允许宣告式(declarative)事务管理器,简化事务的划分使之与底层无关。内建的针对 jta 和 单个 jdbc 数据源的一般化策略,使 spring 的事务支持不要求 java ee 环境,这与一般的 jta 或者 ejb cmt 相反。jdbc 抽象层提供了有针对性的异常等级(不再从sql异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用jdbc时,你无需再写出另一个 终止 (finally) 模块。并且面向jdbc的异常与spring 通用数据访问对象(data access object)异常等级相一致。以资源容器,dao 实现和事务策略等形式与 hibernate,jdo 和 ibatis sql maps 集成。利用众多的翻转控制方便特性来全面支持,解决了许多典型的hibernate集成问题。所有这些全部遵从spring通用事务处理和通用数据访问对象异常等级规范。灵活的基于核心 spring 功能的 mvc 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(view)技术,例如 jsp,freemarker,velocity,tiles,itext 以及 poi。值得注意的是,spring 中间层可以轻易地结合于任何基于 mvc 框架的网页层,例如 struts,webwork,或 tapestry。2. 提供诸如事务管理等服务的面向方面编程框架。在设计应用程序model时,mvc 模式(例如struts)通常难于给出一个简洁明了的框架结构。spring却具有能够让这部分工作变得简单的能力。程序开发员们可以使用spring的 jdbc 抽象层重新设计那些复杂的框架结构。2.5 hiberanate技术hibernate是一种java语言下的对象关系映射解决方案。它是使用gnu宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。hibernate也是目前java开发中最为流行的数据库持久层框架,现已归jboss所有。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用hibernate。hibernate不仅负责从java类到数据库表的映射(还包括从java数据类型到sql数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理sql和jdbc上的开发时间。hibernate的核心接口一共有6个,分别为:session、sessionfactory、transaction、query、criteria和configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这6个核心接口分别加以介绍。1. session接口:session接口负责执行被持久化对象的crud操作(crud的任务是完成与数据库的交流,包含了很多常见的sql语句。)。但需要注意的是session对象是非线程安全的。同时,hibernate的session不同于jsp应用中的httpsession。这里当使用session这个术语时,其实指的是hibernate中的session,而以后会将httpsession对象称为用户session。2. sessionfactory接口:sessionfactory接口负责初始化hibernate。它充当数据存储源的代理,并负责创建session对象。这里用到了工厂模式。需要注意的是sessionfactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个sessionfactory就够,当需要操作多个数据库时,可以为每个数据库指定一个sessionfactory。3. configuration类:configuration类负责配置并启动hibernate,创建sessionfactory对象。在hibernate的启动的过程中,configuration类的实例首先定位映射文档位置、读取配置,然后创建sessionfactory对象。4. transaction接口:transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。5. query和criteria接口:query和criteria接口负责执行各种数据库查询。它可以使用hql语句或sql语句两种表达方式。2.6 本章小结本章主要介绍了系统开发用到的相关技术,包括开发工具my eclipse,web 服务器tomcat,oracle 数据库等;系统是基于b/s(浏览器和服务器结构),有别于c/s那些客户端程序,开发技术包括mcv的三大框架(struts、spring、hiberanate),jsp动态页面,json结构传输格式介绍等等。3 系统的需求分析3.1 需求分析以业务需求为根本,分析目标客户的诉求和业务特征,提出针对性解决方案:1. 增加交强-商业共同投保功能2. 增强续保功能。3. 根据保单录入的行为特征,由于车险的监管要求严格,导致界面录入项很多,经常对出单员造成困扰。我们将着力解决出单过程中的人机交互及录单效率。在系统规划上考虑系统建设的周期,满足系统上线时间需求。在满足上述要求的前提下,系统建设需要满足渤海公司的上线的时间要求:采用与现有核心系统pcisv5对接方式,重用现有核心系统后台服务功能。例如:保费计算;核保;批改;收付接口等等服务。与pcisv5统一维护业务主数据,减少数据同步的开发和维护工作;采用pcisv5已经稳定成熟的java-c服务调用框架,减少快速出单与pcisv5整合的开发任务。采用iss_pcis_fwk技术平台的web开发框架:iss_pcis_fwk_ec,保持与it总体规划的一致性。与当前的核心系统pcisv5的升级规划保持一致。不能使快速出单系统成为核心系统升级的障碍或负担,从而增加升级的工作量。采用配置化与构建接口策略对接到pcisv5;快速出单系统的辅助数据采用独立数据模型;在技术路线上,保持系统性、实用性、前瞻性技术以用为本,根据业务当前以及可以预见的将来的发展,构建快速出单系统的技术路线。确保技术的实用的,稳定成熟的,能在当前以及未来一段时间能够对系统提供支撑。1. 系统性:作为iss_pcis技术平台的一部分,具有规模性系统实际运营的基础;同时具有长期的研发规划;独立的研发团队维护,确保技术平台的的系统性。iss_pcis为软通动力技术平台,为包括财险核心在内的多个产品应用,成熟度比较高。2. 实用性:智能缓存技术能够解决程序、资源和数据缓存以及自动更新问题;在iss_pcis平台基础上构建便捷易用的ui构件,增强使用者操作体验,加快保单录入的过程;采用ajax+json作为浏览器与web服务端的通信方式,界面无刷新,增强用户体验。减少数据传输量。3. 前瞻性:引入iss_pcis_fwk_ec版web框架,降低网络流量以及客户端环境对系统的要求;数据包验证功能,解决网络传输数据包丢失导致的错误。4. 支持产品定义:快速出单系统继承pcisv5能够定义产品自定义的功能。同时不限制展现界面的展示方式。模型与其它工具制作的html界面绑定:快速出单系统能够将定义的产品模型能够与任何工具制作的html界面关联绑定,二者通过html中元素名称与产品模型的要素明细名称实现关联。图3.1 快速出单系统的业务架构图3.2 新旧系统功能对比表3.1新旧系统功能对照表大类子类功能实现快速出单pcisv5录入保单录入/保存保单录入/保存保费试算/计算试算单管理批单处理批文模板可批改项设置核保提核任务告知自核体系核保级别核保流程打印打印接口实现单证管理单证制作打印服务刷卡缴费与pos/银行缴费记录接口平台收付整车配件保/批单单查询综合查询数据导出任务管理任务自动告知功能3.3 本章小结本章主要介绍了系统实际的业务需求和新系统和旧系统的功能对比。系统设计是根据实际业务需求修改和添加的,所以正确的需求分析对于系统是起了非常重要的作用。根据保险公司的业务员对于旧系统的反馈,经过多方深思熟虑,相互的探讨,总结出新的需求方案,做出比较完善的需求分析。4 系统的设计4.1 整体技术架构保险核心系统从整体上看,主要包括如下两个方面的架构:保险核心系统应用架构和保险核心系统技术架构。保险核心系统的应用架构是根据保险公司的业务需求而产生的软件结构,而保险核心系统的技术架构是与业务无关的技术实现。基于j2ee整个系统的层次如图4.1所示。图4.1系统总体架构图保险核心系统应用架构由框架和集成在框架的保险应用服务组成。主要是提供保险业务运行的软件支持,在该应用架构下,为保险核心系统提供一个可扩充,高可靠性的业务平台。而保险核心系统软件技术架构是一个和具体的业务应用无关的技术平台。为保险核心系统的软件开发提供快速、稳定的技术支持。在保险核心系统的应用架构上,有两个重要概念。一是保险应用服务工具二是工具集成。它们定义如下:定义保险应用服务工具是指执行特定保险业务的软件模块。在保险的业务领域。存在着许多针对保险业务的服务工具。保险核心系统的任务之一就是针对现:肓的保险业务,开发出软件工具,服务于保险,且随着保险业务的发展,新的保险应用服务工具将产生并集成到现有的核心系统中。在后文中我们将保险业务服务工具简称为服务工具。在不引起误解的前提下也称为工具。定义工具集成是将保险应用的服务工具合并到保险核心系统中并成为该系统中相容部分的活动。工具集成运行与单个工具运行具有不同的特征。如集成的工具使用共享的数据库、共同的业务描述格式、一致的工具调用程序和综合的用户接口。一个真正开放与有效的核心系统应能允许不同种类的服务工具方便地集成在一起。并有效地运行在相同的核心系统中。建立保险核心系统总体模型的第一步是对服务工具和系统框架进行定位。系统框架为保险应用工具提供公共的操作环境,因此是进行工具集成的基础。在服务工具集成环境中,业务数据统一存储在业务数据库中。各类不同的业务数据存储在不同的地点f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- VB语言难点突破与试题及答案
- 网络管理员考试的资源整合试题及答案
- 网络管理员实施方案试题及答案总结
- 行政法在区域治理中的应用探讨试题及答案
- 2025年软件设计师考试开发工具选择指导试题及答案
- 2025年软考成功重点及试题及答案
- 掌握程序调试与优化技巧试题及答案
- 中标合作协议书几份
- 面试表现提升的自我训练计划
- 信息处理技术员考试开卷题目及答案
- 住院部临床科室医疗质量考核表
- 关爱生命-健康成长家安全教育家长会课件
- 公司经营管理手册目录
- 基础会计练习题及答案
- 限高杆施工图 2
- 5万吨钢筋加工配送中心项目
- 初中数学北师大九年级下册 直角三角形的边角关系谢荣华 教学设计《锐角三角函数》
- 老年患者营养支持途径及配方选择课件
- 二环庚二烯(2,5-降冰片二烯)的理化性质及危险特性表
- 【审计工作底稿模板】FK长期借款
- arcgis网络分析.
评论
0/150
提交评论