第2章系统相关技术
2.1 B/S结构B/S结构
(Browser/Server结构)结构就是浏览器-服务器架构。使用B/S架构的结果为用户使用的操作界面是用浏览器作为客户端来操作的,一些简单的逻辑在浏览器端(Browser)完成,核心的事务在服务器端(Server)实现,形成三层3-tier结构。这样可以让客户端的电脑压力大大减小,减轻了系统升级和维护的支出成本。
BS的主要特点是分布强、维护方便、开发简单/共享性强、总体成本低。其结构如下图2.2所示:
由于系统需求量大,且更新频率较高,本文CRM系统采用B/S结构业务扩展更加方便,易于维护,只需新增页面即可扩展功能,它还保证了系统具有广泛的适应性,不受时间、地点、字符等的限制。它可以随时随地的访问内网数据、图像和其他资源。前端显示层主要采用JSP页面动态生成;对象层采用JAVA语言实现业务逻辑处理,针对前端请求进行报文解析,事物层主要针对数据库进行分析,然后使用公共类进行数据传输,统一了三层逻辑。
2.2 Java语言
Java语言是目前流行的一种开发语言当中使用较广的语言,Java源代码被编译成中间文件结构中立的格式,可以直接在机器上执行这种中间代码,无论平台、环境和设备等都可以进行。但有一个重要的前提:运行Java程序的服务器需要配置相关的环境变量,配置Java运行环境。
Java运行系统被称为Java虚拟机(JVM),和不同操作系统需要安装对应的JVM版本。Java中提供了许许多多功能丰富的类,能用于多线程编程。多线程允许在程序中使用多任务执行多条指令,每个指令流称为线程,线程彼此独立,数据是非共享的。多线程的程序可同时执行多个任务,多线程程序具有更好的交互性、实时性。Java语言的语法和C++有些相似,但Java更加严谨、简洁,主要的思想为面向对象。除此之外Java还提供内存自动管理机制:内存分配、内存释放。Java提供了丰富的类库,有利于软件开发的高效和标准化。
2.3 Struts技术
目前,SSH的主流web框架技术就是Struts2框架,Struts2对原来的框架进行了多次改进之后产生的新框架,它是Struts的升级版。并且Struts2升级后与Strut1在框架体系和技术方面都差别很大,作为全新的Strust2技术,它集合了传统Struts技术,并且以两种传统的技术为出发点进行合并起来的新型框架体系。
而Struts2的主要技术就是拦截器,用户的请求就是它利用这种核心技术来处理的。这种设计允许让业务逻辑控制器远离Servlet API.因此Struts2的更新可被理解成Web系统的新产品。Struts2处理过程及架构体系图如图2.4所示。
图 2.2 Struts2 处理过程及架构体系图一个请求在Struts2框架中的流程大致可以分为以下几点:
①客户端请求Servlet容器(中间件)的请求②这个请求通过一系列的过滤器(Filter)③接着Filter Dispatcher被调用,由Action Mapper来决定这个请是否需要调用哪个Action.控制器的核心是Filter Dispatcher,就是mvc中控制层的核心。
④如果Action Mapper决定需要调用某个Action,Filter Dispatcher会把请求的处理交给Action Proxy.
⑤Action Proxy从strusts.xml配置读取,并通过Configuration Manager找到框架的配置文件并发现需要调用的Action类。
⑥Action Proxy创建一个Action Invocation的实例。
⑦Action Invocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
2.4 Spring Web MVC技术
Spring Web MVC是一种基于Java编程语言编写的轻量级Web框架实现基于类型使用驱动的Web·MVC设计模式MVC架构思想,将WEB层进行解耦,请求驱动是基于使用请求-响应模型,目的是为了简化开发,因此本系统采用该框架作为整体架构。如图2.5所示。
具体执行步骤如下:
①用户发送请求到前端控制器,前端控制器根据请求信息决定该选择哪一个页面控制器进行处理后,把请求发送给它②页面控制器接收到请求后,进行功能处理,首先把收集和绑定请求参数发送到一个对象,同时进行比对,然后把这个对象委托给业务对象进行逻辑处理;处理完毕后返回一个Model And View;③前端控制器把控制权收回,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;④前端控制器再次将控制权收回,将给用户响应。
整个流程当中,每个对象之间功能角色划分的非常清晰,且扩展点相当的灵活,它可以很容易得到扩展。它和Spring框架无缝集成,并且不适用于其他WEB框架。而且拥有非常强大的JSP标签库,使得JSP的编写更加容易。
2.5数据库的选择及应用
目前,大多数商业银行所使用的服务器均有IBM作为硬件提供商,因此江西农信社选用的数据库为DB2数据库。它的主要操作环境为AIX(最常用)、Linux、Unix、OS/400等。
DB2主要应用于大型应用系统,具有良好的可伸缩性、可扩展性,可支持从大型机到单用户的各种应用环境,它提供了一个高层次的可重用性、数据完整性、安全性和可恢复性,以及小规模到大规模应用程序的执行能力,具有独立于平台的基本功能和SQL命令。
DB2采用了数据分级技术,可以使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问到大型机数据,并使数据库本地化及远程连接更加透明化。众所周知,DB2以拥有一个非常完备的查询优化器而着称,其外部连接改善了查询性能,并支持多任务并行查询。
DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。
2.6本章小结
本章主要介绍了农信社客户关系管理的现状,以及系统需要使用相关技术,主要包括B/S架构、java语言、Struts技术、Spring Web MVC技术,以及DB2数据库的使用。