声明:摘自 基于O3W平台的证券交易系统设计与实现_易轶 2007年硕士学位论文 仅供学习,若有侵权,请联系做者删除!html
第二章 Object 3Tier Infoworks 平台的研究前端
2.1 分布式多层架构技术介绍程序员
传统的分布式应用系统模式是“主机/终端”或“客户机/服务器,客户机/服务器系统(Client/Server System)的结构是
指把一个大型的计算机应用系统变为多个能互为独立的子系统,而服务器即是整个应用系统资源的存储与管理中心,
多台客户机则各自处理相应的功能,共同实现完整的应用。算法
可是,随着对各类旧有应用的不断扩充和新应用的不断增长,各企业IT部门面临的问题也愈来愈多,诸如不一样硬件平台、
诸如不一样硬件平台、不一样网络环境、不一样数据库之间的互操做、多种应用模式的并存、系统运行效率太低、传输不可靠、数据库
数据加密、开发周期过长等问题,单纯依赖传统的的结构的系统已经不能知足要求。因而为解决传统模式与应用需求日益
突出的矛盾,为解决传统模式与应用需求日益突出的矛盾,以交易中间件为基础框架的三层客户机服务器模式应运而生。编程
三层结构以中间层管理大量的客户端,并为其联接、集成多种异构的服务器平台,经过有效的组织和管理,
在极为宽广的范围内将客户机与服务器进行高效组合。同时中间件开创的以负载平衡、动态伸缩等功能为表明的管理模式,
己被普遍证明为创建关键业务应用系统的最佳环境,使在传统模式下不可能实现的应用成为可能,并为应用提供了充分的扩展余地。后端
目前最流行的分布式架构技术主要是 Microsoft 的COM/DCOM/COM+ 和 700多个厂商共同提倡的 COBRA 以及
Sun 公司提倡的 EJB ,三者虽然实现的方案和平台各自不一样,可是它们的核心架构都是同样的,都是由客户端程序、中间层
服务程序、数据库服务三层共同构成。在中间层,分布式业务组件负责企业应用的商业逻辑部署。浏览器
一、ActiveX方案
ActiveX是微软综合Winn32,OLE和COM/DCOM等技术所创建的一整套Internet应用开发,平台其核心是微软的组件模型
COM/DCOM。ActiveX的运行机制是,浏览器下载ActiveX控件,脚本或者文档并在本地运行,他们能够做为DCOM客户,
利用DCOM的对象远程过程调用机制访问应用服务器中的对象,也能够经过服务器上ISAPI等接口,访问后端数据库。安全
ActiveX是从对象联接与嵌入技术OLE演化而来,在此以前所开发的大量的OLE对象能够被ActiveX所重用,从而节省了
软件开发的投资。ActiveX是一种与语言无关的开发平台,ActiveX控件或者脚本能够用Visual C++、Visual Basic、Java、
JavaScript 等多种语言实现,于是方便了程序员的开发。然而目前DCOM只支持Windows平台,所以用ActiveX的分布式计算
组件模型只能运行在Windows平台上没法知足异构环境下应用的要求。服务器
二、Java RMI方案
远程方法调用RMI是Sun公司用Java语言创建的分布对象计算环境。其客户端程序是一个Java Applet或者JavaBeans对象,
它经过RMI内部通讯机制调用应用服务器上Java的对象的有关方法,继而以JDBC等方式访问资源数据库。
由于Java RMI是在纯Java环境下实现的,Java语言自己的可移植性使得RMI有很强的跨平台性。此外,在处理纯Java对象
之间的通讯的时候,RMI具备较高的效率。可是RMI只能访问Java对象这妨碍了它与其余语言编写的应用之间的交互,影响了
其应用范围的扩展。从内部实现机制上来看,RMI能够当作一种广义的ORB。
三、COBRA方案
在该方案中,COBRA客户方程序从HTTP服务器下载执行,与应用服务器上COBRA的应用对象经过IIOP协议进行通讯,
调用其指定的操做。COBRA应用对象首先对客户的请求进行认证和解释,根据客户的请求的内容,或者直接访问
资源层的数据库,或者与网络上其它COBRA对象相互交互,共同完成客户的请求。COBRA方案的优点在于它是一个
完整的、开放的、稳定的分布式对象计算体系,而且具备“即插即用“的软总线机制,并且其具备跨平台、跨语言的特性。
四、EJB方案
EJB定义了一种服务器端组件模型,它容许商务对象的开发,并能够从一种品牌的CTM组件事务监控器
转移到另外一种品牌的CTM。组件(bean)表明一个简单的编程模型,它容许开发者集中于商务目的。EJB的服务器遵循
EJB规范的CTM,则负责将组件生成分布式对象与管理各类服务,如事务性、持久性、并发性和安全性等。
除了基于商务逻辑定义bean外,开发者还要定义bean的运行属性、方法与选择可视化组件的显示属性相似。
组件的如事务性、持久性、并发性和安全性行为能经过一系列属性中选择定义。最终结果是, EJB使在健壮的事务环境中
开发分布式组件系统更加容易。对于那些关键性的任务,尤为高速执行的分布式系统中使用COBRA DCOM
和 JAVA RMI感到复杂的开发者和IT厂商而言,
EJB提供了一个更简单、更高效的开发平台。
EJB已经成为了一种事实上的工业标准,不少供应商早在规范最后完成前就宣布了他们对EJB的支持。
EJB提供了一种标准分布式组件模型,能够大大简化开发过程,并容许在一个供应商的EJB服务器上开发和配置
bean的能轻易被配置到其余供应商EJB服务器。
在目前的企业计算环境中,EJB 和 COM,COBRA并列为三大组件标准。
EJB是用于开发和部署多层结构的、分布式的、面向对象的应用系统的跨平台的构件体系结构。
采用EJB可使开发商业应用系统变得容易,应用系统能够在一个支持EJB的环境中开发,开发完以后部署
在其余的环境中。从而随着需求的改变,应用系统能够不加修改地迁移到其余功能更强、更复杂的服务器上。
中间件技术介绍
一、中间件的定义
因为划分的标准不一样,目前对于什么是中间件并无准确而统一的定义。在众多关于中间件的定义中,
比较广泛被接受的是IDC表述的:
IDC对中间件的定义代表
在综合现有研究成果的基础上,咱们能够给出以下的关于中间件的完整性定义,即
中间件是基础软件的一大类,属于可复用软件的范畴,总的做用是:
由此定义不难看出,中间件具备以下基本特征:
二、中间件的基本做用
对于应用软件开发,中间件远比操做系统和网络服务更为重要。中间件的做用是为处于本身上层的应用软件提供运行与开发
的环境,帮助用户灵活、高效地开发和集成复杂的应用软件,一般用于系统内部数据库与应用之间的消息传递处格式转换等问题。
中间件带给应用系统的,不仅是开发的简便、开发周期的缩短,也减小了系统的维护、运行和管理的工做量,还减小了
计算机整体费用的投入。其次,中间件做为新层次的基础软件,其重要做用是将不一样时期、不一样操做系统上开发应用软件
集成起来像一个完美无缺的总体协调工做。这是操做系统、数据库管理系统自己作不了的,从而节约了大量的人力,财力投入。
另外,在愈来愈热的电子商务领域,中间件依然大有做为。中间件能够用来普遍地集成电子商务中的各类应用,支持大量客户的
并发访问,使应用开发商快速开发出灵活多变的电子商务应用,并尽快把信息系统和商务活动放到中。
中间件的做用具体体如今它所提供的服务上,主要包括
1)通信服务
目前的操做系统都支持网络编程接口,可是这些接口一般都是底层的而且很是复杂而不利于使用。
中间件则对分布式应用的开发者屏蔽了复杂的底层网络编程细节。
因为中间件须要屏蔽分布环境中操做系统和网络协议的异构性,所以它必须可以提供分布环境下的通信服务。
基于目的和实现机制的不一样,应用间的分布式通信包括如下三类
在这些基本的通信平台之上,能够构筑各类框架,为应用程序提供不一样领域内的服务,如事务处理监控器、
分布数据访问、对象事务管理器OTM等。
2)并发性服务
基于中间件的应用必须具备高度可扩展性,一般以每秒所处理的请求或消息的数量(QPS)来衡量。
这种要求在系统中保证最大化的并发性,这样就能够同时执行尽量多的任务。中间件系统使用
不少技术和模式来加强并发性,例如在服务器进程中采用多线程技术,多线程技术容许中间件子系统
最大化网络链接的处理以及达到这些链接的请求和消息的处理等。
3)通用中间件支持
除了提升通讯和并发服务支持外,分布式应用中使用中间件服务来解决那些独立于任何特定应用领域的问题。
最经常使用的中间件服务有目录服务、事务服务、安全服务、管理服务、事件服务、连续性服务、负载平衡服务、配置服务。
三、中间件的分类
中间件的种类有不少,通信和事务处理中间件是中间件层次划分中最为基本的中间件,
它们向下须要网络协议的支持,向上为最高层应用提供基础平台。所以在上述层次划分的基础上,
能够根据功能将中间件进一步细化为如下种类:
2.3 Object 3Tier Infoworks平台的技术介绍
在证券行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操做系统、数据库并列为三大基础软件。
Object 3Tier Infoworks(o3w)平台是日本野村综合研究所开发的,己成为行业标准的分布式多层架构中间件,在日本的
证券行业中普遍使用。经过对分布式应用的开发者隐藏底层信息,屏蔽网络和分布式应用的复杂性,并为网络和分布式应用
提供相应的服务,使得开发者能够集中致力于应用逻辑。
Object 3Tier Infoworks平台是在证券企业、Internet这样的分布式运算环境中开发和管理三层结构的
客户服务器型关键任务应用系统的强有力工具。它具有分布式事务处理和应用通讯功能,并提供各类完善的服务来创建、
运行和管理关键任务应用系统。开发人员可以用它创建跨多个硬件平台、数据库和操做系统的可互操做的应用系统。
Object 3Tier Infoworks平台是企业、Internet分布式应用中的基础主干平台。
Object 3Tier Infoworks平台提供了一个开放的环境,支持各类各样的客户、数据库、网络、遗留系统和通信方式。
它使分布式关键任务应用系统具备大型主机的性能,从而使这些应用系统可以应付数以千计的用户,大交易吞吐量,多
并行数据库存取和大量数据,同时保持较短的反应时间,较高数据完整性和安全性,而且确保整年天,每周天,天天小时
的系统可用性。同时,Object 3Tier Infoworks平台还能让开发人员和系统管理人员享用分布式运算环境提供的好处,
如技术成本的低增加率,灵活性提升,快速应用开发和安装以及业务信息存取得以改善。
关键业务应用一般是面向事务的,要求具备准确的数据完整性、较好的性能和管理需求。这些需求要求对应用的开发、
调度和操做给出一个结构化的方案。由像Object 3Tier Infoworks平台这样的中间件支持的组件软件模型为分布式环境
处理关键性业务应用提供了一个结构化的解决方案,。
Object 3Tier Infoworks平台和基于组件的应用设计从异构的计算资源中建立了一个虚拟主机在分布式应用系统级提供
可管理的相互关联的资源。
O3W平台具备如下中间件功能
一、通讯处理中间件
因为中间件须要屏蔽分布环境中异构的操做系统和网络协议,所以它必须可以提供分布环境的通信服务。
通讯处理中间件能在不一样平台之间进行通讯,实现分布式应用中实时、可靠、高效的跨平台数据传输。
O3W平台采用消息中间件来构建,经过消息中间件来把应用扩展到不一样的操做系统和网络环境。消息中间件很是适合
时间驱动的应用,事件发生后,消息中间件通知服务方应该进行何种操做。因为采用消息中间进行编程,消息中间件
能够很是方便地扩展到不一样操做系统和硬件平台上。消息中间件的核心安装在须要进行消息传递的系统上,创建消息传递
的逻辑通道,由中间件实现消息发送。消息中间件是一种点到点的机制,既支持同步方式也支持异步方式,于是很是适
合面向对象的编程方式。
二、数据存取中间件
数据存取中间件适用于应用程序与数据源之间的互操做模型。在分布式系统中,重要数据集中存放在
数据服务器中,客户端使用面向数据库的API,提请直接访问和更新基于服务器的数据源,包括关系型、非关系型和
对象型数据源,也包括通过加密或压缩存放的各类格式的多媒体类型。平台为分布式网络环境下的虚拟缓冲存取、
格式转换以及解压缩等带来方便,采用了数据库厂商直接提供的数据存取中间件,如JDBC等。
数据存取中间件大多基于语句,采用同步通讯方式。数据存取中间件使得开发分布式应用简单,可是若在
广域网上使用会带来严重的效率问题,这是由于广域网上语句的交互使得通信流量过大,同时对数据压缩、加密带来不便。
所以针对不一样的应用需求,如对海量数据、异格式数据、压缩数据以及加密数据等,须要分别有相应的中间件。
三、分布对象中间件
面向对象技术是软件界孜孜以求的目标,传统的面向对象技术经过封装、继承以及多态提供了良好的代码重用功能。
可是这些对象仅存在程序中,没法向外界代表它们的存在,所以没法被外部所访问。O3W平台采用了适用于浏览器的
J2EE面向对象中间件,提供了标准的构件框架,使得不一样厂商的软件经过不一样的地址空间、网络和操做系统相互交互
访问,此构件的具体实现、位置以及所依附的操做系统对客户而言都是透明的。
2.4 Object 3Tier Infoworks平台的优势
一、缩短应用的开发周期
Object 3Tier Infoworks平台的三层结构组件软件模型将用户界面的表示部分和业务逻辑部分按客户组件
服务器组件分开,使开发人员可以按组件的思想专一入于业务逻辑的开发,用户界面部分可用流行的前端开发工具
来快速完成。而客户和服务器之间、服务器和服务器之间的通信,异构平台之间的数据变换,以及服务器和数据库之间
的集成和事务控制都由平台来完成。当数据库或服务器端的业务逻辑改变时,客户端则不必定要改变反之当客
户改变或增长新的客户界面时,服务器端则不必定要改变,大大增长了应用系统的各部分的可复用性。
平台提供的简洁使用户程序可以物理地点透明地在客户和服务器之间、服务器和服务器之间进行各类方式的通信,
极大地减轻开发人员的负担。
二、减小系统运行成本
没有使用中间件的应用系统,其初期的资金及运行费用的投入要比同规模的使用中间件的应用系统多一倍。
三、减小项目开发风险
研究代表,没有使用标准商业中间件的关键应用系统开发项目的失败率高于90%。利用Object 3Tier Infoworks平台有助于
减轻应用软件开发者的负担,使他们利用现有的硬件设备、操做系统、网络、数据库管理系统以及对象模型建立分布式应用软件
时更加驾轻就熟。
四、减小应用开发费用
对于应用软件开发,Object 3Tier Infoworks平台提供的程序接口定义了一个相对稳定的高层应用环境,无论底层的计算机
硬件和系统软件怎样更新换代,只要将平台升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而
保护了企业在应用软件开发和维护中的重大投资。
五、很是高的性能
一方面,平台可以使多个客户链接到一个服务器进程,由这个服务器进程存取数据库,为客户的请求服务。这样,
数据库为处理链接所需的资源大大减小。另外一方面,客户和服务器之间,服务器和服务器之间的通信中,网络上流动的
只有相对较少的客户或服务器的请求和服务器处理的结果,而再也不是两层结构中客户和之间的大量请求和应答。
六、系统的安全性
平台经过结构化用户界面支持应用服务的验证、受权和存取控制,容许用户加入本身的验证服务模块。平台还提供信息加密
服务,容许对网络上传输的信息进行算法加密。
七、技术革新性
企业对自我建造的基础中间件软件平台的频繁革新是极不容易实现的不实际的。而采用Object 3Tier Infoworks平台,
则对技术的发展与变化能够放心,由于开发Object 3Tier Infoworks平台的野村综合研究所会义不容辞地把握技术方向和进行技术革新。
第四章证券交易系统的具体实现
本证券交易系统总的处理流程是:
本系统使用 O3W_Studio 附带的XML_Creator文件来实现EXECL加载宏功能,这样就能利用该功能生成的XML文档来进行系统功能控制。
只要定义好
点击EXECL软件的XML_Creator宏功能,就会自动生成相对应的Data Store Bean文件、Web页面跳转控制文件、模块功能调用文件、
数据变换文件及接口参数定义文件等的XML文档。
4.一、系统视图层的实现
本证券交易管理系统中的视图部分主要是由一系列页面组成,主要功能是进行请求和将模块处理的数据表现给客户端。
JSP页面使用了大量的JavaScript做为共同函数,以此进行软件代码复用,简化开发过程。做为一种嵌入HTML文档的、
基于对象的脚本设计语言,其中很大一部分的语法同JAVA语言很类似,并且的设计可使它很容易地同语言一同工做,它能够充
分支持JAVA的applet小应用程序,JAVA的applet的小应用程序也能够很方便地访问已有的代码。因此,
能够把JavaScript当作是JAVA语言的某种简化版本。
在JavaScript这样的用户端脚本语言出现以前,传统的数据提交和验证工做均由用户端浏览器经过网络传输到服务器上进行。
若是数据量很大,这对于网络和服务器的资源来讲实在是一种无形的浪费。而使用JavaScript就能够在客户端进行数据验证。
JavaScript能够方便地操纵各类浏览器的对象,可使用JavaScript来控制浏览器的外观,状态甚至运行方式,能够根据用户的
须要“定制”浏览器,从而使网页更加友好。可使多种任务仅在用户端就能够完成而不须要网络和服务器的参与,
从而支持分布式的运算和处理。
在视图层主要使用了如下技术
一、TagLib
在JSP前端页面中使用各类标签完成页面数据逻辑的组织与显示。如(html,bean,logic)
二、国际化的消息处理功能
在JSP页面中不出现特定语言的字符串描述,将这些统一的字符串信息统一的提取到文件中,经过标签提取。
便于整个系统的语言变动与组织。
三、界面组合功能
统一组织页面的结构,便于系统改版、维护。
4.1.1视图层的数据交换
在本系统中的全部的数据交换过程都是经过类型缓冲区来完成的。所谓类型缓冲区,即一块特定格式的内存块,
用来实现客户端和服务端之间的数据交换。Object 3Tier Infoworks平台提供了名为Data Store Bean缓冲区来供开发者使用。
这种统必定义的类型缓冲区可使它们在跨越不一样网络、不一样协议、不一样构架以及不一样操做系统之间获得统一的处理,
这就使得开发者在分布式计算环境中有效地避开了异构网络和异构计算机系统带来的差别,把精力集中在商业逻辑的开
发上。
对缓冲区的操做有增长、删除、修改等。客户端调用某项服务以前,如须要使用DSB,则要事先对DSB实例进行内存分配
和实例初始化工做,再向此缓冲区中写入须要传递的数据一样端首先要从中取得传入的参数,并检查参数的有效性,
再进行下一步操做。在返回数据时,一样要对进行一些写入操做。
4.2.1 COBOL语言的使用
在本系统中,是采用COBOL语言来实现业务逻辑功能。COBOL的全称是 Common Business Oriented Language,
意即通用商业语言。在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决经企管理问题,于1959
年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年美国数据系统语言协会公布。
经不断修改、丰富完善和标准化,己发展为多种版本。
COBOL语言使用了300多个英语保留字,大量采用普通英语词汇和句型,COBOL程序通俗易懂,素有“英语语言”之称。
语言语法规则严格。用语言编写的任一源程序,都要依次按标识部、环境部、数据部和过程部四部分书写,
整个源程序象一棵由根到干,由干到枝,由枝到叶的树,习惯上称之为树型结构。
目前COBOL语言主要应用于情报检索、商业数据处理等管理领域。
Java擅长使用者接口的设计,COBOL而则是在商业逻辑上(business logic)十分强大。COBOL被用来
开发存货、银行、支付、流通和股票交易系统,可说大部份重要应用都是用开发的,并且这些都是企业里最最重要的系统。
COBOL一直是符合业界标准,像是近年分别取得ANSI以及ISO的标准认证,随着环境的变迁,
也不断增长许多新的功能,其中最大的特点在于咱们转变为对象导向一的程序语言,这使得一直持续和的合做。
如今就是以协助企业开发组件化的应用为目的。
4.2.2事务的使用
本系统业务逻辑的实现中采用了事务。咱们要求在(分布式)资源上的一组操做被看成一个工做单元(unit)
在一个工做单元中,操做的全部部分一块儿成功或失败并恢复。在全部状况下,都要求应用维护一个工做单元的成功或失败。
在失败的状况下,全部资源要把数据状态返回到之前的状态,(好比说,工做单元开始前的状态)。
事务的概念即为了在一个工做单元中维护数据的完整性。
一个事务是有下列属性的一个工做单元:
一、原子性(ATOMCITY):一个事务要被彻底的无二义性的作完或撤消。在任何操做出现一个错误的状况下,
构成事务的全部操做的效果必须被撤消,数据应被回滚到之前的状态。
二、一致性(CONSISTENCY):均一个事务应该保护全部定义在数据上的不变的属性例如完整性约束。
在完成了一个成功的事务时,数据应处于一致的状态。换句话说,一个事务应该把系统从一个一致状态转换到另外一个一致状态。
举个例子,在关系数据库的状况下,一个一致的事务将保护定义在数据上的全部完整性约束。
三、隔离性(ISOLATION):在同一个环境中可能有多个事务并发执行,而每一个事务都应表现为独立执行。
串行的执行一系列事务的效果应该同于并发的执行它们。这要求两件事:在一个事务执行过程当中,数据的中间的可能
不一致状态不该该被暴露给全部的其余事务;两个并发的事务应该不能操做同一项数据。数据库管理系统一般使用锁来实现这个特征。
四、持久性(DURABILITY):一个被完成的事务的效果应该是持久的。