基于B/S 架构的股票交易系统设计与实现

g5nf

贡献于2013-08-18

字数:0 关键词: 软件架构

电 子 科 技 大 学 UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA 工程硕士学位论文 ENGINEERING MASTER DISSERTATION 论文题目 基于 B/S 架构的股票交易系统设计与实现 工 程 领 域 软 件 工 程 指 导 教 师 李建平 教 授 作 者 姓 名 李英德 学 号 200892324082 分类号 密级 UDC 注 1 学 位 论 文 基于 B/S 架构的股票交易系统设计与实现 (题名和副题名) 李英德 (作者姓名) 指导教师姓名 李建平 教 授 电子科技大学 成 都 杨志明 高 工 潍坊市天硕科技发展中心 潍 坊 (职务、职称、学位、单位名称及地址) 申请专业学位级别 硕士 专业学位类别 工 程 硕 士 工程领域名称 软 件 工 程 提交论文日期 2010.9 论文答辩日期 2010.12 学位授予单位和日期 电 子 科 技 大 学 答辩委员会主席 评阅人 年 月 日 注 1:注明《国际十进分类法 UDC》的类号 I 独 创 性 声 明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名: 日期: 2010 年 月 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 (保密的学位论文在解密后应遵守此规定) 签名: 导师签名: 日期: 2010 年 月 日 摘要 I 摘要 随着改革开放以来中国经济的迅猛发展,股票交易逐渐成为很多普通民众基 本的投资和理财方式之一。特别是近几年随着中国经济的高速增长和奥运会、世 博会的举行,股票交易几乎达到了火爆的程度。股票交易系统作为如今股票交易 最基本的方式,有着非常广阔的应用市场。股票交易系统的基本功能是信息的实 时揭示(包括行情信息和资讯信息),随着证券分析技术和软件技术的发展,现在 的股票软件进化出很多功能:技术分析、基本面分析、资讯汇集、智能选股、自 动选股、联动委托交易等等。 目前国内的股票交易系统种类繁多,但大多采用 C/S 架构,由于股票交易是 一种通过网络实时更新的信息传输方式,如果使用目前网络软件开发中广泛流行 的 B/S 架构,可以开发出一套具有维护和升级方式简单、易于扩张、成本低、安 全性高和个性化服务等特点的交易系统。因为这些原因,这个系统必将更具有市 场竞争力和广阔的应用前景。 本文通过对国内外股票交易系统的分析研究,结合实际项目经验,开发了一 套基于 B/S 架构的股票交易系统。该系统采用了 Java-B/S 架构、瀑布模型、统一 软件开发过程等如今特别流行的软件开发技术;同时加入了许多先进的人机交互 技术,以实现更加个性化的服务;最后,为了保证股票交易的安全性,我们还加 入了 RSA、Secure Sockets Layer 和 Secure Shell Protocol 等安全技术,保证 了股票交易的安全性。目前,这套系统已经完全可以用于商业应用。 【关键词】 股票交易系统;B/S 架构;统一软件开发过程;RSA;SSL; ABSTRCT II ABSTRCT With the Chinese economy since reform and opening up the rapid development of stock a lot of ordinary people become the basic one of the ways of investment and financial management. Especially in recent years as China's rapid economic growth and the Olympic Games, World Expo will be held, the stock exchange almost reached the hot level. Today, stock trading system as the most basic way, has a very broad applications. Stock trading system's basic function is to reveal the real-time information (including the Quotes of information and information), with the stock analysis techniques and software technology development, software evolution of the stock is now a lot of features: technical analysis, fundamental analysis, information collection, smart stock picking, automatic stock picking, linkage, and so commissioned the transaction. Currently a wide range of domestic stock trading system, but most use of C / S structure, because trading is a real-time updates through the network information transmission method, if you use the current network software is widely popular B / S architecture, can develop with the maintenance and upgrade of a simple, easy expansion, low cost, high security and personalized services, the characteristics of trading systems. This system will be more competitive. In this paper, a systematic analysis of domestic and international stock research, combined with actual project experience to develop a set based on the B / S structure of the trading system. The system is a Java-B / S architecture, waterfall model, software development process, and so on are now especially popular in software development techniques; also added a lot of advanced human-computer interaction techniques in order to achieve a more personalized service; Finally, in order to ensure equity transaction security, we also joined the RSA, Secure Sockets Layer and Secure Shell Protocol and other security technologies to ensure the safety of stock. 【Key words】: stock trading system;B/S;RUP;RSA;SSL; 目录 III 目 录 第一章 绪论 ......................................................................................................... 1 1.1 研究背景 .................................................................................................... 1 1.2 研究意义 .................................................................................................... 2 1.3 国内外研究及现状 .................................................................................... 3 1.4 主要工作 .................................................................................................... 5 1.5 章节安排 .................................................................................................... 6 1.6 本章小结 .................................................................................................... 6 第二章 系统相关技术介绍 ................................................................................. 7 2.1 Java-B/S 架构常用开发框架 ..................................................................... 7 2.1.1 Java-B/S 架构的基本组成部件 .............................................................. 7 2.1.2 一些基本概念介绍 ................................................................................. 9 2.1.3 Java-B/S 结构应用系统开发流程 .......................................................... 9 2.2 先进的人机交互技术 ............................................................................... 11 2.2.1 人机交互技术简介 ................................................................................ 11 2.2.3 支持可用性的设计原则 ....................................................................... 12 2.3 瀑布模型和统一软件开发过程 .............................................................. 14 2.3.1 为什么使用瀑布模型 ........................................................................... 14 2.3.2 统一软件开发过程 ............................................................................... 14 2.4 安全技术 .................................................................................................. 15 2.5 本章小结 .................................................................................................. 17 第三章 股票交易系统需求分析 ....................................................................... 18 3.1 完成本项目所使用的实验设备: .......................................................... 18 目录 IV 3.2 股票行情显示及查询部分需求 .............................................................. 19 3.3 股票交易部分需求 .................................................................................. 20 3.4 本章小结 .................................................................................................. 24 第四章 股票交易系统总体设计和实现 ........................................................... 25 4.1 股票交易系统显示及查询部分 .............................................................. 25 4.1.1 数据库设计 ........................................................................................... 25 4.1.2 总的类关系图 ....................................................................................... 30 4.1.3 详细设计 ............................................................................................... 32 4.2 股票交易部分 .......................................................................................... 35 4.2.1 股票交易系统股票交易部分数据库设计 ........................................... 35 4.2.2 总的类关系图 ....................................................................................... 41 4.2.3 各部分具体设计 ................................................................................... 41 4.3 安全部分设计概要 .................................................................................. 55 4.3.1 用户权限控制 ....................................................................................... 55 4.3.2 鉴别、保密: ....................................................................................... 55 4.4.3 访问控制授权 ....................................................................................... 56 4.4.4 股票交易中的网上支付结算安全: ................................................... 57 4.4.5 利用 SSH 保障网络信息交互的安全性: .......................................... 58 4.4.6 设计框架: .............................................................................................. 60 4.5 本章小结 .................................................................................................. 60 第五章 股票交易系统测试与验证 ................................................................. 61 5.1 测试环境 .................................................................................................. 61 5.2 股票功能模块测试(部分测试) .......................................................... 61 5.2.1 股票查询功能检查内容: ................................................................... 61 5.2.2 资金信息查询功能模块测试 ............................................................... 64 目录 V 5.3 本章小结 .................................................................................................. 66 第六章 结论与展望结论 ................................................................................. 67 6.1 总结 .......................................................................................................... 67 6.1.1 本文特色与创新点 ............................................................................... 67 6.1.2 论文不足 ............................................................................................... 67 6.2 展望 .......................................................................................................... 68 致 谢 ............................................................................................................... 69 参考文献 ............................................................................................................. 70 第一章 绪论 1 第一章 绪论 1.1 研究背景 股票是股份证书的简称,是股份公司为筹集资金而发行给股东作为持股凭证 并借以取得股息和红利的一种有价证券。股票是股份公司资本的构成部分,可以 转让、买卖或作价抵押,是资金市场的主要长期信用工具。 股票至今已有将近似 400 年的历史,中国的第一支股票是在 1984 年诞生的。 伴随着中国经济不断腾飞,15 年来,中国股票市场也在坎坷中取得了飞速发展。 特别是从 2006 年下半年至 2007 年 10 月份的股市大涨,上证指数冲破 6000 点大 关,引发全民炒股的激情;到国际金融局势急转直下,美国次贷危机 ,世界第三 大投行雷曼兄弟倒闭,中国股市特有的大小非现象使得上证指数一路下滑,至 2008 年 10 月 24 日收盘上证指数收于 1839.62 点,跌幅近 70%。股票交易,可谓深深地 走入了每个中国人的心,买卖股票也成为了人们生活中不可缺少的投资行为之一。 伴随着网络的飞速发展,人们慢慢摆脱了以往整日蹲在证券交易所进行现场 交易的方法,而是使用股票交易软件,坐在家中,即可运筹帷幄,掌控股票市场。 随着股票交易的日渐火爆,市场上对于股票交易软件的需求必然也越来越大。 本课题的研究目标就是设计开发一个符合大众需求的网上股票交易系统,并尽可 能将其推广到市场中使用。 股票软件更准确的称谓应该是证券分析软件,它的基本功能是信息的实时揭 示(包括行情信息和资讯信息),所以早期的股票软件有时候会被叫做行情软件。 随着证券分析技术和软件技术的发展,现在的股票软件进化出很多功能:技术分 析、基本面分析、资讯汇集、智能选股、自动选股、联动委托交易等等,因此也 分化出种种不同流派特点的股票软件产品,比较著名的有大智慧、同花顺、钱龙、 宏汇、通达信、核新等等。股票软件的实质是通过对市场信息数据的统计,按照 一定的分析模型来给出数(报表)、形(指标图形)、文(资讯链接),用户则依照 一定的分析理论,来对这些结论进行解释。 可以说,现在的股票交易已经离不开股票交易软件,对于大量的股民,股票 交易软件不仅是一种交易工具,更成了选择股票、合理投资的一个重要法宝。一 个方便、快捷、优秀的股票交易软件,能够帮助用户在腥风血雨的股市中成为最 电子科技大学硕士学位论文 2 后的赢家。因此,股票交易软件有着大量的市场需求和光明的应用前景,这也是 我决定开发一套股票交易软件的原因之一。 1.2 研究意义 B/S(Browser/Server)结构即浏览器和服务器结构。它是随着 Internet 技 术的兴起,是对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作 界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是 主要事务逻辑在服务器端(Server)实现,形成所谓三层 3-tier 结构。这样就大 大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户 的总体成本(TCO)。 使用 B/S 结构的股票交易系统,主要具有以下意义和应用价值: (1)维护和升级方式简单。针对基于 C/S 架构的股票交易软件系统改进和升 级的复杂性,基于 B/S 架构的软件只需要对服务器端进行必要的更新和管理。所 有的客户端只是浏览器,根本不需要做任何的维护。这样做,大大减少了用户使 用软件的繁琐。这样,对于软件升级和维护会越来越容易,而使用起来会越来越 简单,这对用户人力、物力、时间、费用的节省是显而易见的。这也符合了目前 “瘦”客户机,“胖”服务器的软件维护和升级革命的方式。 (2)成本降低,安全性高。使用 B/S 架构的应用管理软件,只需安装在服务 器上即可,而用户无论使用什么操作系统,都可以通过浏览器访问服务器,进行 股票交易操作。这样,我们无需再针对不同的操作系统设计开发不同的软件版本。 用户也可以再随时随地访问自己的股票交易软件,而不需要每换一台电脑都重新 安装一遍软件。同时,由于所有的功能实现都是在服务器端完成,这也大大增加 了软件的安全性和鲁棒性。 (3)由于所有的计算都是在服务器端完成,因此用户再也不需要进行以往每 天都要做的数据同步工作。只要简单打开浏览器,你就可以立即获得海量的股票 交易数据,再也不用耗费大量时间和空间进行下载,也不必担心自己的数据不如 别人全面等问题了。而对于管理员,只要维护好服务器端数据库即可,无需在对 客户端进行操作,大大减少了工作量。 (4)更好的实现个性化服务。针对目前用户个性化需求越来越高的特点,基 于 B/S 架构的股票交易软件可以在服务器端开发大量功能,而用户只需针对自己 第一章 绪论 3 的需求,选择定制需要的功能即可。这样,即避免了用户需要对所有功能全盘接 受的弊端,节省了时间和空间,也使得软件开发者能够提供全面完善的服务。同 时,基于 B/S 架构的股票交易软件还可以通过收集用户的个人信息,主动为客户 打造更加个性化的服务,这样可以保证软件有更加强大的市场竞争力。 (5)因为所有的计算都是在服务器端完成的,我们就可以利用服务器端的高 性能进行更复杂的运算,节省运算时间。同时由于计算结果可以让所有用户共同 使用,这也避免了以往每个客户端都要进行的独立计算,大大节约了时间。 1.3 国内外研究及现状 目前中国市场上的股票交易软件种类繁多,有名的诸如大智慧、同花顺、钱 龙、宏汇、通达信、核新等等,它们都在提供了股票交易所必须的功能的基础上, 附带提供了很多高级的的分析功能和选股功能。 经过笔者对目前国内主流股票交易软件的使用和分析,它们大多具有以下功 能和特点: 1 支持各类股票信息的查询 主要是以表格的形式显示股票产品的各种实时信息。可以让用户对所关注股 票的各种变化一目了然。可以同时显示多个股票,并对这些股票的某项数据进行 排序,让用户方便、快速地捕捉到强势、异动的股票。 2 基本的股票交易功能 实现对股票、基金的实时委托买卖。这也是股票交易软件最基本的功能。一 般用户都可以设定一个理想的价格,通过委托下单,让交易软件在用户设定的股 票价格时买入或卖出股票。 3 咨询和新闻信息查询 作为股民,需要迅速全面地了解每时每刻各方面种类繁多的信息。因此,现 在大多数的股票交易软件,都可以完全实时地向用户提供交易所新闻、券商公告、 券商(网站)资讯以及各种资讯。 4 提供技术分析支持 技术分析是通过证券市场里商品的价格、成交量随着时间的变化,来分析商 品未来的变化趋势的方法。随着证券市场的不断成熟,非正常的暴涨暴跌机会越 来越少,市场可预测的因素越来越多,带有普遍性、规律性的投资理念和市场动 电子科技大学硕士学位论文 4 作手法将越来越盛行。因此,目前主流的股票交易软件都提供了对股票市场的技 术分析,为用户的投资决策做出可靠的、周密的分析和预测。 5 股民沟通平台 提供一个股民交流沟通的平台,帮助股民分享成功或失败的经验,以及提供 一些帮助股民成长的有益信息等等。 6 操作简单快捷 由于大多数股民缺少专业的技术知识,因此现在大多数的股票交易软件都提 供一键式的操作模式。即用户只需要点击几个按钮,即可实现上边所提到的所有 功能。 7 信息快速准确 股票市场变化莫测,稍有疏忽就有可能导致股民的大量经济损失。因此,保 证信息的准确性是所有股票交易软件所必须具有的特点。同时,股票市场变动频 繁,信息的快速获取也是现有软件具有的特点。 以上这些功能特点能够帮助用户更容易地选择想要投资的股票,让股民在股 票交易中游刃有余。但是,目前的股票交易软件也存在了一些不足。 因为目前股票交易软件提供了复杂的分析功能,大多都采用了传统的 C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。通过它可以充分利 用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低 了系统的通讯开销。由于现在的软件应用系统正在向分布式的 Web 应用发展,Web 和 Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组 件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应 用系统中的逻辑可以扩展出新的应用系统。 传统的 C/S 体系结构虽然采用的是开放模式,但这只是系统开发一级的开放 性,在特定的应用中无论是 Client 端还是 Server 端都还需要特定的软件支持。 由于没能提供用户真正期望的开放环境,C/S 结构的软件需要针对不同的操作系统 系统开发不同版本的软件,加之产品的更新换代十分快,用户需要经常下载补丁 包打包,而且使用不用的电脑时,都要重新下载软件配置环境,使用复杂,造成 了软件的使用代价高,效率低。 由于 C/S 架构的特点,用户在安装软件的时候需要接受软件商提供的所有功 能,而不管用户是否真正需要。这也造成了用户资源的浪费。而用户想要新的功 能时,可能又需要重新下载新的客户端或更换别的软件。这种模式越来越不能适 第一章 绪论 5 合现代软件市场人性化服务和定制服务的理念,同时,对于软件开发商的软件升 级和创收也带来很大的影响。 同时因为股票市场每天都要产生大量的信息和数据,每个用户每天打开软件 的第一件事情就是下载前一天的股票数据,少则十几分钟,多则 1 个小时,造成 了时间资源的大量浪费以及信息的冗余。这种分布于两地的数据同步完全交由数 据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现, 有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时 的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务 器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持, 维护成本很高,维护任务量大。 1.4 主要工作 本文分析了股票交易系统的背景和发展现状,简要阐述了系统实现需要解决 的主要问题;概要描述了系统的整体情况;对系统的需求分析和设计的方法进行了 细致阐述,对系统实现过程中的关键问题——数据库设计、交易模块、管理模块给 出了具体的实现技术和实现方法。 本文围绕系统中的 5 个关键问题展开论述,给出了以下解决办法: 第一,由于我们要开发的是一套股票交易系统,因此我们必须满足股票交易 系统所必须具有的功能。我们将该系统主要分为三大结构,分别为查询部分、股 票交易部分和用户部分。查询部分实现了用户对于各种股票交易信息的查询需求, 交易部分则主要完成用户的交易需求,而用户部分则实现了新闻、评论、模块定 制等用户个性化服务。 第二,Java-B/S 架构常用的开发模式。由于本文要开发一套基于 B/S 架构的股 票交易系统,因此,我们选择了目前最流行的 JAVA EE 架构,它是为了适应互联 网时代企业计算的需求,解决二层化结构的缺陷,Sun 公司(现已被 oracle 公司收 购) 设计了针对企业计算的 Java 平台:Java 2 Platform, Enterprise Edition, 即 Java EE。 Java EE 定义了一套工业标准来简化多层企业级应用的开发, 同时 定义了一套标准化的可重用组件来定制企业级应用,并为这些组件提供了完整的 服务: 如事务操作、安全、多线程等,使得企业应用将重点放在和应用相关的业 务逻辑操作上。 电子科技大学硕士学位论文 6 第三,先进人机交互技术的应用。因为我们设计的股票交易系统将来可能要投 入商用,因此为了保证能够吸引用户的使用,我们参考了目前最流行的人机交互 界面技术,实现了为用户打造一套个性化服务系统的理念,在我们的软件系统中 加入了模块定制、论坛交流等机制。 第四,瀑布模型和统一软件开发。在整个系统的开发过程中,我们严格遵循了 软件工程中的瀑布模型和统一软件开发工程,使整个开发过程标准化、过程化、 统一化,也使的我们的软件更加安全、鲁棒、高效。 第五, 股票交易软件的特点决定了股票交易系统必须满足高安全性、高可靠 性、高效率等要求,在软件设计的过程中我们严格参考了沪深交易手册以及关于股 票交易的规则知识,保证交易的正常执行。同时,为了保证数据的安全、保密传 输,我们还使用 RSA 加密技术、Secure Sockets Layer 技术和 Secure Shell Protocol 技术等。 1.5 章节安排 本文按照软件工程的思想,将项目分为四章进行,首先介绍了股票软件系统 需要用到的技术,包括 B/S 架构、人机交互技术、开发模型、安全技术和股票交 易准则等;然后我们通过调查总结,对股票交易系统的需求进行了详细的分析和 总结;接着从需求入手,对系统分结构的进行了设计,介绍系统的总体架构、设 计方案、实现原理、实现方法、数据库设计、类图、时序图等等;最后我们又使 用模块和集合测试法对系统进行了详细的测试,保证了股票交易系统安全稳定的 运行。 1.6 本章小结 本章主要介绍了课题的研究背景、研究意义、国内外研究现状,然后对系统 的主要工作进行了划分,最后阐述了本文的章节结构。 第二章 系统相关技术介绍 7 第二章 系统相关技术介绍 2.1 Java-B/S 架构常用开发框架 2.1.1 Java-B/S 架构的基本组成部件 2.1.1.1 Struts: Struts 是一个基于 SunJAVA EE 平台的 MVC 框架,主要是采用 Servlet 和 JSP 技术来实现的。它为 Java Web 应用提供了模型——视图——控制器 (Model-View-Controller,简称 MVC)框架,尤其适用于开发大型可扩展的 Web 应 用。Struts 为 Web 应用提供了一个通用的框架,使得开发人员可以把精力集中在 如何解决业务时间问题上。 相应 Struts 框架结构如图 2-1: 图 2-1 strusts 框架结构 Struts 优点有: 1. 实现 MVC 模式,结构清晰,使开发者只关注业务逻辑的实现. 2. 有丰富的 tag 可以用 ,Struts 的标记库(Taglib),如能灵活动用,则能大 电子科技大学硕士学位论文 8 大提高开发效率。另外,就目前国内的 JSP 开发者而言,除了使用 JSP 自带的常 用标记外,很少开发自己的标记,或许 Struts 是一个很好的起点。 3. 页面导航.页面导航将是今后的一个发展方向,事实上,这样做,使系统 的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这 对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种 优势体现得更加明显。 4. 提供 Exception 处理机制 . 5. 数据库链接池管理 2.1.1.2 Spring: Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应 用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能 由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单 性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。 所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测 试的代码。它们也为 Spring 中的各种模块提供了基础支持。 2.1.1.3 Hibernate: Hibernate 是一个面向 Java 环境的对象/关系数据库的映射工具,用来把 对象模型表示的对象映射到基于 SQL 的关系模型结构中去。Hibernate 不仅 仅管理 Java 类到数据库表的映射,还提供数据查询和获取数据的方法,可以 大幅度减少开发时人工使用 SQL 和 JDBC 处理数据的时间。Hibernate 的目标 是对于开发者通常的数据持久化相关的编程任务。 Hibernate 做什么: 就是将对象模型(实体类)的东西存入关系模型中, 实体中类对应关系型库中的一个表, 实体类中的一个属性会对应关系型数据库表中的一个列 实体类的一个实例会对应关系型数据库表中的一条记录。 将对象数据保存到数据库、将数据库数据读入到对象中。 Hibernate 使用范围: 1、 针对某一个对象,简单的将它加载、编辑、修改,且修改只是对单 个对象(而不是批量的进行修改),这种情况比较适用; 第二章 系统相关技术介绍 9 2、 对象之间有着很清晰的关系(例:多个用户属于一个组(多对一)、一 个组有多个用户(一对多)); 3、 聚集性操作:批量性添加、修改时,不适合使用 Hibernate(O/映射 框架都不适合使用); 4、 要求使用数据库中特定的功能时不适合使用,因为 Hibernate 不使用 SQL 语句; 2.1.2 一些基本概念介绍 1 表现层:通常指展示给用户的界面,在 JAVA 语言开发的 Web 应用系统 中,多指 Jsp 页面。 2 控制层:主要是指以 Struts 为主的、处理数据流转和页面跳转的程序 代码层。起到控制整个业务流程的作用,实现表现层与业务层的协同工作。 3 业务层:业务层一般包含主要的业务逻辑,尤其是与用例相对应的那 些业务逻辑。此外,这一层也适合包含事务管理和安全控制方面的逻辑。 4 数据访问层:实际上就是数据接口层,在应用中建议通过接口来体现。 该层的存在使得数据访问可以与底层持久化层的具体实现想分离。一般在数 据访问层接口中主要就是实现数据对象的查询、存储、删除等操作。 5 PO 对象:持久业务对象是问题域中业务对象的持久化表示,比如一个 用户对象,一个银行账户等。我们一般通过某种 O/R 映射技术来实现对这些 业务对象的持久化。持久业务对象是可以包含业务逻辑的,与业务层所包含 的业务逻辑不同的地方是持久业务对象所包含的是与具体业务对象直接相关 且更为通用的业务逻辑。 2.1.3 Java-B/S 结构应用系统开发流程 2.1.3.1 准备阶段: 熟悉数据库结构,了解将要操作的数据库表、数据库表字段和字段类型。 类以及类中的方法和参数。 梳理业务流程。 掌握方法调用结构。 电子科技大学硕士学位论文 10 2.1.3.2 操作阶段。 编写简单的 PO 对象,主要完成数据库表的字段与 PO 对象的映射。 编写 Hibernate 配置文件。 编写数据访问层,按照已做好的设计,将设计中的数据访问层方法依次 实现。 编写业务层,按照已做好的设计,将设计中的业务层方法依次实现,建 立起整个应用程序的核心功能。 编写 Spring 配置文件,根据 Ioc 的原则,我们需要将业务层的方法进行 一定的配置,配置的结果将在控制层进行调用。 编写 Junit 测试,对之前所搭建的程序进行测试,这个测试主要针对业 务层进行,以检验我们的配置文件以及业务层方法对数据库访问层的方法调 用是否正确。 编写控制层,使用 Strust 框架提供的方法搭建控制层。 编写 strust-config 配置文件,进行控制层方法跳转页面的配置,指明 每一个方法执行结束后所要跳转的 Jsp 页面。 编写表示层,将控制层与表示层相结合,主要在表示层车里由控制层传 来的参数,并对这些参数进行响应。 集成测试,对搭建好的系统进行相应的黑盒白盒测试。 内部测试,对完整的系统在真实的网络环境下进行相应的测试。 2.1.3.3 四层客户/服务器模式的优缺点 四层客户/服务器模式 (以下简称四层模式 )在两层模式的基础上,增加 了新的一级(包括两层)。这种模式在逻辑上将应用功能分为四层:表示层、 业务对象层、服务对象层、存储层。 表示层是为客户提供应用服务的图形界面,有助于用户理解和高效的定 位应用服务。业务对象层、服务对象层位于显示层和数据层之间,专门为实 现企业的业务逻辑提供了一个明确的层次,在这两个层次封装了与系统关联 的应用模型,并把用户表示层和数据库代码分开 。这两个层次提供客户应用 程序和数据服务之间的联系,主要功能是执行应用策略和封装应用模式,并 将封装的模式呈现给客户应用程序。数据层是四层模式中最底层,他用来定 义、维护、访问和更新数据并管理和满足应用服务对数据的请求。 第二章 系统相关技术介绍 11 四层模式的主要优点为 : 良好的灵活性和可扩展性、可共享性、较好的安全性和增强了企业对象 的重复可用性。 四层模式真正的将客户端瘦身,从而具备了很高的稳定性、延展性和执 行校率。四层体系结构具体如图 2-2 所示。 四层体系结构 图 2-2 四层模式 2.2 先进的人机交互技术 2.2.1 人机交互技术简介 人机交互的研究内容十分广泛,涵盖了建模、设计、评估等理论和方法 以及在 Web、移动计算、虚拟和增强现实等方面的交互设计技术,主要包括: 人机交互界面表示模型与设计方法(Model and Methodology) 一个交互界面的好坏,直接影响到软件开发的成败。友好人机交互界面 的开发离不开好的交互模型与设计方法。因此,研究人机交互界面的表示模 型与设计方法,是人机交互的重要研究内容之一。 可用性分析与评估(Usability and Evaluation) -可用性是人机交互系统的重要内容,它关系到人机交互能否达到用户期 待的目标,以及实现这一目标的效率与便捷性。人机交互系统的可用性分析 与评估的研究主要涉及到支持可用性的设计原则和可用性的评估方法等。 Web 设计(Web-Interaction) -重点研究 Web 界面的信息交互模型和结构,Web 界面设计的基本思想和 电子科技大学硕士学位论文 12 原则,Web 界面设计的工具和技术,以及 Web 界面设计的可用性分析与评估 方法等内容。 人机交互技术着重研究可用性问题。可用性是指特定的用户在特定的环 境下使用产品并达到特定目标的效力、效率和满意的程度。定义基于以下四 点: 可用性是以用户为中心; 人们使用产品的目的是创造价值; 所谓用户就是那些为了完成任务而忙碌工作的人; 产品是否易用由用户判定。 可用性不仅只与界面有关,它还包括有效性、效率、吸引力、容错能力、 易于学习。 2.2.3 支持可用性的设计原则 支持可用性的设计原则主要包括三点:1、可学习性;2、灵活性;3、鲁 棒性。下面将分别介绍他们: 可学习性:可学习性是交互系统能否让新手学会如何使用系统,以及如 何达到最佳实用效果。支持可学习性的设计原则有: 可预见性 用户利用对以往交互过程的了解就足以确定当前交互的结果。 可预见性有别于计算机系统的确定性行为。可预见性则是一个以用户为中心 的概念,它取决于用户的观察,不能完全由计算机的状态决定交互的行为, 还要由用户根据自己的判断来决定。 同步性 同步性是指用户依据界面当前状态评估过去操作造成影响的能 力,也就是说用户能不能同步地知道交互操作的结果。 熟悉性 系统的新用户在现实生活或使用其它系统时,会有一些交互过程 的宝贵经验;可能这些经验与新系统的应用领域不同,但对新用户来说,如 果新系统跟过去使用过的类似系统有一定相关性,那使用起来就比较方便。 通用性 交互系统的通用性就是在交互中尽可能的提供一些通用的或能 够从现有功能类推出来的功能。 一致性 一致性是说在相似的环境下或执行相似的任务时,一般会执行相 似的行为。一致性与前面提到的其它交互原则有关,如熟悉性可以看作与过 去现实世界经验的一致性,通用性可以看作与同一平台、同一系统中软件交 第二章 系统相关技术介绍 13 互体验的一致性。 多样性: 用户与系统交流信息方式的多样性,主要表现在: 可定制性 可定制性是指用户或系统修改界面的能力。包括用户主导:可 定制-customized;系统主导:可适应-adaptive。而定制能力又指界面元素 位置、颜色的定制;交互结构、流程的定制。 对话主动性 将人机交互双方看作是一对对话者时,重点是谁是对话的发 起人。系统主导:系统可以发起所有对话,这种情况下,用户只是简单的响 应信息请求。例如,一个模式对话框就禁止用户与系统的其它窗口交互。用 户主导:用户可以自由的启动对系统的操作。从用户角度看,系统主导的交 互阻碍了灵活性,而用户主导的交互增强了灵活性。 多线程 多线程的人机交互系统同时支持多个交互任务,可以把线程看作 是一个特定用户任务的相关对话部分;并发的多线程允许各自独立交互任务 中的多个交互同步进行;交替地执行多对话线程,允许各自独立的交互任务 暂时的重叠;但在任何给定时间,对话实际上还是局限于单个任务。 鲁棒性: 可观察性 可观察性允许用户通过观察交互界面的表现来了解系统的内 部状态。也就是说允许用户将当前观察到的现象与要完成的任务进行比较, 如果用户认为系统没有达到预定的目标,可能会去修正后面的交互动作。可 观察性涉及到五个方面的原则:可浏览性,缺省值提供,可达性,持久性和 操作可见性。 可恢复性 可恢复性是指用户意识到发生了错误并进行更正的能力。可恢 复性不仅利于鲁棒性,还可大大提高用户的冒险意识,提高系统的可学习性 。 响应性 响应时间一般定义为系统对状态改变做出反应的延迟时间。一般 而言,延迟较短或立即响应最好。即使需要较长的时间才有最终结果,也应 该有所响应。 任务规范性规范的含义:任务的规范规范的意义:可重复性强,出错概 率低。 电子科技大学硕士学位论文 14 2.3 瀑布模型和统一软件开发过程 2.3.1 为什么使用瀑布模型 瀑布模型是软件开发过程中常用的开发模型之一,其具体过程如图 2-3 所 示。本文使用瀑布开发模型主要原因如下。 1、瀑布模型有以下优点: 1)为项目提供了按阶段划分的检查点。 2)当前一阶段完成后,您只需要去关注后续阶段。 3)可在迭代模型中应用瀑布模型。 增量迭代应用于瀑布模型。迭代 1 解决最大的问题。每次迭代产生 一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测 试。 图 2-3 瀑布模型 2.3.2 统一软件开发过程 统一软件开发过程(Rational Unified Process,RUP)是一个面向对象且 基于网络的程序开发方法论。根据 Rational(Rational Rose 和统一建模语言 的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序 开发提供指导方针,模版以及事例支持。 RUP 和类似的产品--例如面向对象 第二章 系统相关技术介绍 15 的软件过程(OOSP),以及 OPEN Process 都是理解性的软件工程工具--把开 发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例 如文档,模型,手册以及代码等等)整合在一个统一的框架内。 统一软件开发过程生命周期是一个二维的软件开发模型。横轴通过时间 组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它 的 术 语 主 要 包 括 周 期 (Cycle)、 阶 段 (Phase)、迭代(Iteration)和 里 程 碑 (Milestone);纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结 构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者 (Worker)和工作流(Workflow)。 2.4 安全技术 因为该软件传输的都是用户的重要信息,因此必须配有相应的安全机制。 特别是用户登录,密码的管理,用户重要信息的网络传输,防钓鱼,防木马 等方面都要使用相应的安全措施来进行防范。 下面列举一些本软件要实现的安全技术: 2.4.1 RSA 加密技术 本软件所使用的所有密码,包括登陆密码、交易密码、交易帐号等信息, 都使用 RSA 加密技术。 RSA 加密算法是一个能同时用于加密和数字签名的算法,易于理解和操 作,经历了各种攻击的考验,是目前最优秀的公钥方案之一。RSA 的安全性 依赖于大数的因子分解,公钥和私钥都是两个大素数(选取两个 512bit 的随 机素数 p,q)的函数。 具体通过使用 OpenSSL 来实现。 2.4.2 Secure Sockets Layer 该软件所有网络信息数据的传输将使用到 SSL 技术。 SSL (Secure Socket Layer),为 Netscape 所研发,用以保障在 Internet 上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上 之传输过程中不会被截取及窃听。我们将使用 SSL 的 3.0 版本。该版本目前 已被广泛地用于 Web 浏览器与服务器之间的身份认证和加密数据传输。 SSL 协议提供的服务主要有: 电子科技大学硕士学位论文 16 1)认证用户和服务器,确保数据发送到正确的客户端和服务器; 2)加密数据以防止数据中途被窃取; 3)维护数据的完整性,确保数据在传输过程中不被改变。 SSL 协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便 开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主 密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需 的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器 的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并返回给客户一个 用主密钥认证的信息,以此让客户认证服务器。 2.4.3 Secure Shell Protocol 当涉及到用户交易这些安全敏感环节时,我们设计的股票交易软件系统 会从相关银行及其证券机构获得安全帮助,通过与他们签署相关协议和证书, 来获得交易安全的保证。同时我们软件系统本身对交易数据传输使用 SSH 协 议,SSH 协议又称安全外壳协议,是一种在不安全网络上提供安全远程登录 及其它安全网络服务的协议。 SSH 协议包括三部分: 1 传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外 它有时还提供压缩功能。 SSH-TRANS 通常运行在 TCP/IP 连接上,也可能用 于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及 完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。 3 用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功 能。它运行在传输层协议 SSH-TRANS 上面。当 SSH-USERAUTH 开始后,它从 低层协议那里接收会话标识符。会话标识符唯一标识此会话并且适用于标记 以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性 保护。 2 连接协议 [SSH-CONNECT] 将多个加密隧道分成逻辑通道。它运行在用 户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连 接和转发 X11 连接。 通过使用 SSH,可以把所有传输的数据进行加密,这样"中间人"这种攻 击方式就不可能实现了,而且也能够防止 DNS 欺骗和 IP 欺骗。使用 SSH,还 第二章 系统相关技术介绍 17 有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。 2.5 本章小结 本章主要介绍了股票交易系统的设计和开发过程中使用到的关键技术, 包括 B/S 架构的开发框架和开发模式、先进的人机交互技术、软件工程相关 知识、安全技术以及股票交易的关键原则等等,详尽的阐述了这些技术的概 念、使用方法以及优缺点等等。 电子科技大学硕士学位论文 18 第三章 股票交易系统需求分析 3.1 完成本项目所使用的实验设备: 3.1.1 硬件设备需求 1 个人计算机一台: Pentium 4 CPU 3.20GHz MS Windows XP SP3 操作系统 1 GB Memory 250G 硬盘 1M 带宽网络连接 2 服务器一台 CPU Xeon 5310 MS Windows Service 2003 操作系统 4 GB Memory 320G 硬盘 双千兆网卡 3.1.2 软件设备需求 MyEclipes 6.0 开发平台 MySQL Server 5.0 数据库 Apache Tomcat 5.5 服务器软件 Spring+Hibernate+Struts+JSP 开发框架 Dreamweaver 8 网页开发软件 Photoshop CS3 OpenSSL 0.9 TortoiseSVN-v1.6 IBM Rational Software Architect V6.0 根据对于市场上现有的股票交易软件的研究分析以及对于用户的需求调 查, 笔者基本将想要实现的股票交易软件分为股票行情显示及查询部分、股 第三章 股票交易系统需求分析 19 票交易部分、新闻及用户管理部分三大部分,下边将针对这三个部分实现方 案进行详细的描述。 3.2 股票行情显示及查询部分需求 该部分主要实现对股票产品的各种实时信息的查询,可以让用户对所关 注股票的各种变化一目了然,让用户方便、快速地捕捉到强势、异动的股票。 3.2.1 行情中心: 该小部分需要完成的主要功能模块有: 显示大盘的信息。 显示当前所有股票即时信息,每隔 5 秒自动刷新一次。 显示信息包括股票代码、名称、涨跌幅、最新价、涨跌额、买入价、卖 出价、成交量、成交额、今开盘价、昨收盘价、最高价、最低价。并且当股 票涨跌幅为正,股票显示红色,当股票涨跌幅为负时,股票显示绿色。增跌 幅为零时,股票信息显示为黑色。 行情中心页面上附有查询功能,查询某种股票的详细信息,查询码可以 为股票代码和名称; 显示涨跌幅比较大的股票,如前十名分别显示,成交量前十,成交额前 十 按某一特定顺序显示的功能,行情中心股票信息可按涨跌幅、最新价、 涨跌额、买入价、卖出价、成交量、成交额、今开盘、昨收盘、最高价、最 低价信息由高到低排序显示 按行业\地域显示股票,要求按每只股票所属的行业显示。 新股上市:新股票提示(也可作为新闻管理里面的一项)。(注:股票详 细信息属于查询,新闻那边加一个通告) 显示当前数据的行情时间 3.2.2 股票详细信息查询: 该小部分需要完成的主要功能模块有: 对于股票的详细信息,每隔 5 秒自动刷新一次。 显示信息分为图和文字两种: 电子科技大学硕士学位论文 20 图:分别可显示该股票的分时图,K 线图(包括日 K,周 K,月 k) 文字信息:五档盘口信息:股票的昨收盘、今开盘、涨跌额、最低价、最 高价、涨跌幅、竞买价、竞卖价、委比、换手率、量比、振幅、成交量(手)、 成交额(万元)、总市值(亿元)、流通市值(亿元)等信息。 财务报表:包括每股收益、每股净资产、每股现金含量、净资产收益率、 每股未分配利润、报告期、总股本、流通股等信息),当点开某一项目时,可 分阶段显示每个具体项目内的历史信息。 单只股票的查询功能,可查询股票的历史信息(如按日、周、月、季度 查询的开盘价 最高价 收盘价 最低价 交易量(单位一般为手) 交易金额(单 位一般为万元)等) 公司资料(公司简介,股本结构,主要股东,流通股股东,公司高管, 公司章程,相关资料) 股票所属的行业,并且可连接至相应的行业板块股; 每只股票增加地域 属性。 该部分结构图如图 3-1 所示. 3.3 股票交易部分需求 3.3.1 帐户信息: 该部分的主要功能模块有: 1,资金信息显示: 显示当前登陆股东用户的资金总额、可取余额、冻结金额、股票市值、 可用余额、总资产信息。 第三章 股票交易系统需求分析 21 图 3-1 股票详细信息查询结构图 资金都以人民币为基本单位。 资金总额:用户现在账户中资金的总量。 可取余额:用户可以取出的金额的总量。 冻结金额:用户用于申购等原因被暂时冻结的金额。 股票市值:用户所持有的股票换算成人民币后的总额。 可用余额:用户现在可以使用的用来购买股票或其他作用的金额。 总资产信息:用户帐户中资产的总量,包括股票和现金的总额。 电子科技大学硕士学位论文 22 2,持仓信息显示: 包括交易市场、股东帐户、证券代码、股票名称、股票余额、可用余额、 成本价、市价、市值、盈亏、盈亏比例。 交易市场:市场的总类,本交易系统暂时只支持 A 股深市和沪市的交易。 证券代码:用户所持有的股票的代码。 股票名称:用户所持有的股票的名称。 股票余额:用户所持有的股票的数量。 可用余额:用户现在可以卖出的股票的数量。 成本价:用户买入股票时每股的价格,在这里我们需要加入用户在卖出 时需要交纳的各种费用,注意这里缴纳的费用是根据卖出时的价格而定的。 本部分功能计算公式如下: 手续费=市价*(印花税 0.001+交易佣金 0.003(起点 5 元))*股票余额 +5.0(过户费,深市不加,)+1(通信费,深市不加)----------------(2-1) 成本价=(买入单价*股票余额+手续费)/股票余额-------------(2-2) 市价=用户所持有的股票现在的市场单价----------------------(2-3) 市值=市值单价*股票余额-----------------------------------(2-4) 盈亏=市值-成本价*股票余额(红色为盈,绿色为亏)--------(2-5) 盈亏比例=盈亏/(成本价*股票余额)--------------------------(2-6) 3.3.2 股票交易 该部分主要功能模块有: 1 买入股票: 通过输入证券代码,自动查询证券名称、当前价格、买卖五档盘口价格 信息。买入价格默认为当前股票价格,可买股经过计算提示给用户,输入要 买入的股票数量时,自动计算需要的资金总额。买入股票后提示委托成功, 并显示委托单号。 可买股数=可用余额/市价-----------------------------(2-7) 所需资金总额=市价*买入股票数量---------------------(2-8) 2 卖出股票: 通过输入证券代码,自动查询证券名称、当前价格、买卖五档盘口价格 信息。卖出价格默认为当前股票价格,提示给用户可用股票余额,市值和卖 出后的收益。用户输入股票数量后,显示卖出后获得的资金。卖出股票后提 第三章 股票交易系统需求分析 23 示委托成功,并显示委托单号。 市值(卖出后可获得的金额)=市值单价*卖出股票数量---(2-9) 卖出后获得的资金=成本价*股票余额------------------(2-10) 盈亏=市值-成本价*股票余额。(红色为盈,绿色为亏)--(2-11) 3 后台撮合交易: 根据股票交易原则,委托成功后,后台进行判断,对符合交易条件的委 托进行撮合交易。 4 撤单 对于状态为“委托”的当日委托单,可以进行撤单操作。 撤单分两种情况,委托单并无发生交易,即所有委托数额都未成交,此 时将整个委托单撤单;另一种情况当委托有部分成交时,委托撤单后,已成 交部分不撤单,仅将未成交部分撤单,并给予类似“××笔已撤,××笔已 成交”的信息。委托撤单提供委托时间、合同编号、股东帐户、交易市场、 证券代码、证券名称、操作、订单类型、委托价格的列表功能。 5 成交查询 按成交起始时间进行查询,如不指定时间,则默认为当日成交信息查询。 成交信息将显示成交时间、股东帐户、交易市场、证券代码、证券名称、 操作、成交数量、计算后的成交均价、成交金额、发生金额(成交金额与印 花税、手续费等的和),合同编号(即委托单号)等信息。 6 资金明细查询 查询成交记录中关于资金明细的部分。如不指明查询时间,则默认为当 日资金明细查询。资金明细需列出日期、流水号(即委托单号)、操作、发生 金额、本次金额、摘要,其中摘要按照此格式显示:委托方向 股票代码 股 票名称 成交均价*成交额。 7 交割单查询 提供用户每笔交易的详细数据。如不指明查询时间,默认为当日交割单 查询。交割单信息需列出日期、股东帐户、股票代码、合同编号(即委托单 编号)、操作、成交数量、可用余额、成交均价、成交金额、手续费、印花税、 过户费、其他杂费、发生金额等。 该部分用例图如图 3-2 所示. 电子科技大学硕士学位论文 24 图 2-2 股票交易用例图 3.4 本章小结 本章主要介绍了股票交易系统的需求。笔者通过仔细调研和分析,将需 求分为股票行情显示及查询、股票交易、新闻及用户管理三个部分进行了介 绍,在每部分描述完毕后,笔者还给出了相应的用例图和活动图。 第四章 股票交易系统总体设计和实现 25 第四章 股票交易系统总体设计和实现 4.1 股票交易系统显示及查询部分 4.1.1 数据库设计 股票交易系统共需 4 张表:股票信息表 stock,股票财务报告信息表 stock_finance_report,当日数据表 data_of_the_day,某一时刻股票数据 表 stock_time_data。 基本过程是:最初由管理员或从 web service 中读取数据填充股票信息 表,即更新 stock 表。并定期(如按月,年,季度)更新股票财务报告信息 表。在股市开盘期间,从 web service 读取即时数据信息更新当日数据表, 并将数据追加到某一时刻股票数据表中。 各表的详细设计如下: 表 4-1 股票信息表 stock 数据名称 数据代号 数据类型 Id stockid INTEGER 股票代码 stock_num VARCHAR(20) 股票名称 stock_name VARCHAR(20) 简略名称 stoc_for_short VARCHAR(20) 公司名称 company_name VARCHAR(20) 法人代表 comp_commissary VARCHAR(20) 电话 phone VARCHAR(20) 传真 fax VARCHAR(20) 成立日期 date_founded DATE 电子科技大学硕士学位论文 26 注册资本 capital_registered DOUBLE 主页 homepage VARCHAR(20) 电子信箱 email VARCHAR(20) 交易市场 market VARCHAR(20) 股票信息表是该公司申请股票上市时,在交易市场注册时填入的信息, 以便用户随时查看,其中 id 为该表主键,其余字段的含义则一目了然,该表 的股票代码,股票名称字段在行情显示,股票买卖时经常要显示,且在计算 股票行情的指标时要用到注册资本,所以该表是使用频度极大的一张表。 注册资本:注册资本是出资人实缴的出资额的总和,反映的是公司法人 财产权,所有的股东投入的资本一律不得抽回,由公司行使财产权注册资本 非经法定程序,不得随意增减。 4.1.1.1 股票财务报告信息表 stock_finance_report 财务分析报告是对企业经营状况、资金运作的综合概括和高度反映。财 务报表是财务分析的基础,也是财务分析的主要对象 上市公司财务报表是上市公司必须向社会公开披露的上市报告书、年度 报告和中期报告的的最重要的组成部分,一般包括资产负债表、利润表、现 金流量表等内容。与其它企业的财务报表相比,上市公司的财务报表质量有 以下特征: 1 可理解性。上市公司会计报表中的数据、文字都能清晰地反映公司的 经营活动和财务状况。上市公司会计报告体系的可理解性是最强的,因为股 票上市,财务公开信息只有可读性强,才能被社会公众承认。 2 相对可靠性。会计信息是供决策者决策使用的,只有能帮助决策者作 出科学决策的会计信息才是有价值的。上市公司会计报表所呈报的信息具有 预测价值`反馈价值和及时性,同决策是相关的,会计报表所报的信息具有真 实性、可核对性和中立性,因而是可靠的。 3 重要性。上市公司所面临的重大事件`临时收购无疑重要,要编报;盈 利预测、股本结构变化,也应反映,它们不一定都能在会计报表上体现,但 第四章 股票交易系统总体设计和实现 27 确属重要的,会以一定方式列示。 分析上市公司的财务报表就是指分析主体根据上市公司定期编制的会计 报表等资料,应用专门的分析方法对公司的财务状况和经营成果进行剖析, 其目的在于确定并提供会计报表数字中包含的各种趋势和关系,为各有关方 面特别是投资者提供企业盈利能力、财务状况、偿债能力等财务信息,使报 表使用者 据以判断并作出相关决策,为财务决策、财务计划和财务控制提供依据。 在股票市场中,股票发行企业的经营状况是决定其股价的长期的、重要 的因素。而上市公司的经营状况,则通过财务报表反映出来,因此,分析和 研究财务统计报表,也就是通常所说的基本分析的部分,是很重要的。了解 发行公司的财务状况和经营成效及其股票价格涨落的影响,也是投资者进行 决策的重要依据。同时,对上市公司财务报表进行分析也是公司经营者和公 司债权人以及政府部门所做的一项必不可少的工作。 表 4-2 股票财务报告信息表 stock_finance_report 数据名称 数据代号 数据类型 id Financeid INTEGER 总股本 capital_stock INTEGER 流通 A 股 current_stock INTEGER 每股未分配利润 each_profit_undistrib uted DOUBLE 报告日期 report_date DATE 每股现金含量 each_cash_content DOUBLE 净资产收益率 net_asset_yield VARCHAR(50) 每股收益 each_income DOUBLE 每股净资产 net_asset DOUBLE 股票代码 stockid INTEGER 电子科技大学硕士学位论文 28 总股本:包括新股发行前的股份和新发行的股份的数量的总和。 流通股本: 流通股是在证券市场交易流通的股票数量。 每股收益:每股收益=净利润/年末普通股股份总数。每股收益是衡量上 市公司盈利能力较重要的财务指标。它反映普通鼓的获利水平。在分析时可 进行公司间的比较,了解公司相对获利能力,可以进行不同时期比较,了解 该公司盈利能力的变化趋势 每股未分配利润: 每股未分配利润=企业当期未分配利润总额/总股本. 净资产收益率: 净资产收益率是公司税后利润除以净资产得到的百分比 率,用以衡量公司运用自有资本的效率。 每股收益:EPS,又称每股税后利润、每股盈余,指税后利润与股本总数 的比率。它是测定股票投资价值的重要指标之一,是分析每股价值的一个基 础性指标,是综合反映公司获利能力的重要指标,它是公司某一时期净收益 与股份数的比率。该比率反映了每股创造的税后利润, 比率越高, 表明所创 造的利润越多。 若公司只有普通股时,净收益是税后净利,股份数是指流通 在外的普通股股数。如果公司还有优先股,应从税后净利中扣除分派给优先 股东的利息。 主键:id 外键:stock 表的 stockid。 表 4-3 当日数据表 data_of_the_day 数据名称 数据代号 数据类型 id id INTEGER 开盘 starprice DOUBLE 收盘 endprice DOUBLE 最高 hightest DOUBLE 最低 lowest DOUBLE 总量 day_amount INTEGER 第四章 股票交易系统总体设计和实现 29 总额 day_value DOUBLE 涨幅 rise_scope VARCHAR(50) 委比 commi_proportion VARCHAR(50) 量比 quant_proportion VARCHAR(50) 股票号 stockid INTEGER 当日数据表记录了股票的历史数据,用于生成历史 k 线图,查询时使用。 如果是当天的数据,则是动态的,随股价的变化随时改变更新。 开盘:股票当天集合竞价后的价格即开盘价。如果没经过集合竞价则用 昨收盘价代替。 集合竞价:所谓集合竞价就是在当天还没有成交价的时候,你可根据前 一天的收盘价和对当日股市的预测来输入股票价格,而在这段时间里输入计 算机主机的所有价格都是平等的,不需要按照时间优先和价格优先的原则交 易,而是按最大成交量的原则来定出股票的价位,这个价位就被称为集合竞 价的价位,而这个过程被称为集合竞价。 总量:记录一天的总成交量,如果是当日数据,表示到目前为止的总成 交量。 主键:id, 外键:stock 表的 stockid。 4.1.1.2 某一时刻股票数据表 stock_time_data 某一时刻股票数据表主要作用是生成 stockdetail.jsp 里的分时图的。 表 4-4 某一时刻股票数据表 stock_time_data 数据名称 数据代号 数据类型 id id INTEGER 当前行情时间 time_occured DATETIME 股票代码 stockid INTEGER 电子科技大学硕士学位论文 30 成交量 amount_dealed INTEGER 成交金额 avg_price_dealed DOUBLE 当前价 price_now DOUBLE 股票代码 stockid INTEGER 当前行情时间:我们的分时图每隔五分钟做一次,这里的时间是每次作 图的时间。 成交量:是上次做图到现在做图间的成交量。 成交金额:是上次做图到现在做图间的成交金额。 当前价:不是实时价格,是该 5 分钟内价格的加权平均值。其原理同 stock_open_info 表里的成交均价相同。 4.1.2 总的类关系图 4.1.2.1 类图 本模块的类图设计如图 4-5 所示。 图 4-5 类图 第四章 股票交易系统总体设计和实现 31 4.1.2.2 时序图 本模块的时序图设计如图 4-6 所示。 图 4-6 时序图 4.1.2.3 数据流图 本模块的数据流图设计如图 4-7 所示。 图 4-7 数据流图 电子科技大学硕士学位论文 32 4.1.3 详细设计 读入数据接口设计 股票行情的读入,从 web service 中读取股票最新信息,转化为字符串, 传到 JSP 页面,经过 javascript 处理,将数据每 5 秒自动刷新一次。 本股票模拟交易系统,为增强数据的丰富性和直观性,用 SOAP 从 web service 读取实时股票真实数据。(提供服务的 web 地 址 为 http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx) 读入数据接口类的设计结构如图 4-8 所示。 图 4-8 读入数据的类 主要设计了 get 方法,调用的方法有 getStockInfoByCode:web service 提供的方法 getCurrentStockData :通过股票代码得到最新的股票即时信息; getCurrentDataOfTheDay:通过股票代码得到股票当日信息,如开盘收盘、 最高最低价、成交量等信息; getLastDataOfTheDay:通过股票代码得到前一交易日的股票信息,主要 取其收盘价 读入用户请求接口类的设计结构如图 4-9 所示。 图 4-9 读入用户请求的类 第四章 股票交易系统总体设计和实现 33 主要是从用户的点击或查询动作中获得 String 型的股票代码或股票查 询信息,方便传入数据库。 beans 包 beans 包中是数据库表中映射成的 javabean.每个 bean 中属性为表的字 段.对于每个属性都有 setter 和 getter 方法.这里为了方便只列出类,没有具 体画出每个 bean 中的属性和方法如图 4-10 所示。 图 4-10 beans 包设计 数据库更新的类结构设计如图 4-11 所示。 图 4-11 数据库更新 电子科技大学硕士学位论文 34 其中管理及修改三个表:当日数据表 data_of_the_day,某一时刻股票 数据表 stock_time_data ,股票信息表。(股票财务报告信息表 stock_finance_report 是按季度或按年更新的,不需像以上三个表一样即时 更新)该部分设计如图 4-12 所示。 图 4-12 当日数据表 Search 方法:利用从 util 类中传来的股票代码来查询数据库,返回包 含某股票即时信息或历史数据的一个 list. Save 方法:每 5 秒更新一次股票信息时刷新该表,该方法的设计如图 4-13 所示。 图 4-13 股票信息表 Search 方法:利用从 util 类中传来的股票代码来查询数据库,返回包 含某股票基本信息的一个 list. (由于股票的基本信息并不是时式的且是股票信息系统的基础,所以更 改由管理员更改,不可随时更新)该方法的设计如图 4-14 所示。 图 4-14 某一时刻股票数据表 Search 方法:利用从 util 类中传来的股票代码来查询数据库,返回包 含某股票当日信息的一个 list. Update 方法:每 5 秒更新的股票即时数据追加到该表中,用于以后画分 时图。 股票行情前台显示类的设计如图 4-15 所示。 第四章 股票交易系统总体设计和实现 35 图 4-15 股票行情显示的类 股票行情是将股票即时行情显示给用户,并且给出股票的多个指数以方 便用户分析判断。主要用于与用户交互和前台显示 getInfoByCode(String nameCode)方法:利用 util 包中得到的股票代码, 查询相应的数据库, 将取得的所有股票信息包括其自身信息、价格信息、开 盘收盘信息等,全部放入一个 xml 中,传到 JSP 进行页面显示。 getInfoByCode(list): 直 接 从 web service 中 读 取 股 票 代 码 , 通 过 toDisplayString 方法,将取得的所有股票信息包括其自身信息、价格信息、 开盘收盘信息等,全部放入一个 xml 中,传到 JSP 进行页面显示。 4.2 股票交易部分 4.2.1 股票交易系统股票交易部分数据库设计 股票交易部分共需要 5 张数据库表: 资金帐户表 personal_stock_account,股东账户表 stockholder,股东持 仓信息表 hold_stock_info, 委托记录表 commission, 成交记录表 deal. 在用户进行买卖交易时,需查询用户的资金帐户表中可用资金信息,并 生成相应委托记录表中的委托记录,同时更新股东持仓信息表。交易成功后, 更新资金帐户表、股东持仓信息表,同时生成成交记录表中的成交记录,并 更新资金帐户表,如表 4-16 所示。 各表的详细设计及关联关系具体如图 4-16 所示。 电子科技大学硕士学位论文 36 图 4-16 交易部分数据库设计 表 4-16 资金帐户表 personal_stock_account 数据名称 数据代号 数据类型 id bankrollID INTEGER 资金余额 bankroll DOUBLE 可用资金 bankroll_usable DOUBLE 冻结资金 bankroll_freezed DOUBLE 可取资金 bankroll_in_cash DOUBLE 总资产 total DOUBLE 股票总资产 total_stock DOUBLE 资金帐户表专门记录了客户的资金信息,客户在进行买卖时都要修改该 第四章 股票交易系统总体设计和实现 37 表,该表结构如表 4-17 所示。 资金余额=可用资金+冻结资金。 冻结资金:用户申购新股时提供的资金。冻结资金不保证一定成功交易, 过 2 天就知道是否成功交易了:如果解冻,说明没有交易成功;如果买进基 金或股票,此时账户上会有显示相应的基金或股票,资金会对应的减少。冻 结资金可以产生一笔数量惊人的申购资金冻结利息,提高上市公司效益,目 前的冻结期一般四到五天冻结资金=新股的定价 x 新股的发行股数 x 申购 新股的超额倍数 可取资金:当用户已卖掉部分股票时,卖股票所得资金在当日不可取, 因为交易市场是在当天交易日结束后才清算账务,所以只可用其去购买其他 股票。这部分钱,可用但不可取。剩下的钱可取。 可用资金=可取资金+当日卖股票所得金钱。 总资产=资金余额+持有股票的现值 股票总资产=持有股票的现值 主键:bankrollID 表 4-17 股东账户表 stockholder 数据名称 数据代号 数据类型 股东帐户号 stockholderid INTEGER 资金帐户号 bankrollID INTEGER 姓名 name VARCHAR(45) 身份证 personalID VARCHAR(45) 电话 phone VARCHAR(45) 邮件地址 email VARCHAR(45) 存储股东的个人信息,即客户在交易所注册时所确定的信息,同时也是 资金表与股东持仓信息表的联系表,该表结构如表 4-18 所示。 主键:stockholderID 电子科技大学硕士学位论文 38 外键:bankrollID 表 4-18 股东持仓信息表 hold_stock_info 数据名称 数据代号 数据类型 id holdstockID INTEGER 股东帐户 stockholderID INTEGER 股票代码 stockID INTEGER 可卖股票数量 amount_usable DOUBLE 成本价 costprice DOUBLE 委托记录 commissionID INTEGER 股东持仓信息表专门记录了客户的股票持仓信息,客户股票数量的变化 都会显示到该表上,股东在买卖时都会修改该表。 可卖股票数量:股东所持有的股票数,不包括挂单的股票数。 成本价:单个股票的最终成交价+税款。 委托记录:关联委托记录中关于股东已委托的卖或买的股票数,尚未最 终成交。 主键:holdstockID 外键:stockID, commissionID,stockholderID 4.2.1.1 委托记录表 commission 委托记录表记录了所有的委托记录。客户的委托撤销都会用到该表,当 日停盘时,对于没有成交或只成交部分的股票,自动作出相应的修改,该表 结构见表 4-19。 表 4-19 委托记录表 数据名称 数据代号 数据类型 id commissionID INTEGER 第四章 股票交易系统总体设计和实现 39 股票代码 stockID INTEGER 委托价 commission_price DOUBLE 委托方向 direction VARCHAR(45) 委托时间 time DATETIME 委托量 commission_amount INTEGER 股东帐号 stockholderID INTEGER 状态 state VARCHAR(45) 剩余量 remain INTEGER 委托方向:买或卖。 委托价:客户委托买卖股票的价格。 委托时间:客户下单的时间。 委托量:客户下单的数量。 状态:已撤销,已成交,已提交。 剩余量:因为一次委托可能不是一次交易完成,可能是多次,也有可能 最终有些交易未能做成,剩余量=委托量-已成交量。 主键:commissionID 外键: stockID————>股票信息表 stock stockholderID 股东持仓信息表 hold_stock_info 4.2.1.2 成交记录表 deal 成交记录表记录了所有客户的成交记录,每一笔交易都能在该表中查询 出来,一旦成交就会修改该表,该表结构见表 4-20。 表 4-20 成交记录表 数据名称 数据代号 数据类型 id dealID INTEGER 电子科技大学硕士学位论文 40 股票代码 stockID INTEGER 成交价 deal_price DOUBLE 成交方向 direction VARCHAR(45) 时间 time DATETIME 成交量 dealed_amount INTEGER 成交金额 dealed_value DOUBLE 买方合同编号 in_commissionid INTEGER 卖方合同编号 out_commissionid INTEGER 成交价:这里的成交价不含税款,是根据连续竞价规则产生的价格。也 是股票成交的实际价格。 成交方向:买或卖。 成交量:成交的股票的数量 成交金额:成交的股票的数量与成交价之积 连续竞价:是指对买卖申报逐笔连续撮合的竞价方式。集合竞价结束后, 证券交易所开始当天的正式交易,交易系统按照价格优先、时间优先的原则, 确定每笔证券交易的具体价格。 连续竞价时,成交价格的确定原则为: (1)最高买入申报与最低卖出申报价格相同,以该价格为成交价; (2)买入申报价格高于即时揭示的最低卖出申报价格时,以即时揭示的 最低卖出申报价格为成交价; (3)卖出申报价格低于即时揭示的最高买入申报价格时,以即时揭示的 最高买入申报价格为成交价。 凡不能成交者,将等待机会成交;部分成交者,剩余部分将处于等待成 交状态。投资者的委托如未能全部成交,证券公司在委托有效期内可继续执 行,直到有效期满。 主键:dealID 第四章 股票交易系统总体设计和实现 41 外键:stockID—>股票信息表 stock。合同编号没设外键,因为这里涉 及两个编号。 4.2.2 总的类关系图 图 4-21 action 类 图 4-22 HibernateSessionFactory 4.2.3 各部分具体设计 本设计又将股票买卖模块分为查询和交易部分。查询部分包括股东账户 电子科技大学硕士学位论文 42 信息显示,资金信息显示,持仓信息显示,成交交易查询;交易部分又包括 股票买入,股票卖出,后台撮合交易,撤单。该部分累的设计如图 4-21 和图 4-22. 4.2.3.1 用户查询 1.股东账户信息显示,如图 4-23: 用户通过点击查询按钮可以查询自己的以下信息: 股东账户号,资金账户号,真实姓名,身份证号,电话,地址,EMAIL 第四章 股票交易系统总体设计和实现 43 图 4-23 股东账户信息显示 方法都为对以上信息的得到(get)与设置(set) 图 4-24 类 StockholderDAO 持久化数据库操作的类的设计如图 4-24,通过调用以上类的方法实现对 数据库的查询等操作。这里我们主要用到 findById()进行查询。 电子科技大学硕士学位论文 44 图 4-25 储存帐户信息的表单 储 存 帐 户 信 息 的 表 单 validate()方法用来判断用户提交的内容是否 符 合 要 求 , reset()为重置,getStockholderid() 为 得 到 用 户 输 入 的 id, setStockholderid()为设置用户输入的 id,具体实现如图 4-26 所示。 图 4-26 StockholdviewAction Action 为执行方法,其中数据库查询方法的调用主要在 execute 中调用 findById()并将结果返回给 jsp 中 该部分的时序图如图 4-27: 图 4-27 时序图 第四章 股票交易系统总体设计和实现 45 2.资金信息显示: 通过点击查询可显示当前登陆股东用户的资金总额、可取余额、冻结金 额、股票市值、可用余额、总资产信息。该部分的具体设计如图 4-28。 图 4-28 储存帐户信息的表单 存 帐 户 信 息 的 表 单 validate() 方法用来判断用户提交的内容是否 符 合 要 求 , reset() 为 重 置 , getBankrollId() 为 得 到 用 户 输 入 的 id, setBankrollId ()为设置用户输入的 id。 Action 为执行方法,其中数据库查询方法的调用主要在 execute 中调用 findById()并将结果返回给 jsp 中 该部分的时序图如图 4-29.: 电子科技大学硕士学位论文 46 图 4-29 时序图 3.持仓信息显示,该部分的类图如图 4-30 到图 4-33,分别为持仓信息 显示类,持仓人信息类,持仓信息显示类和持仓人类。该部分的时序图如图 4-34 所示。 图 4-30 持仓信息显示类 图 4-31 持仓人信息 第四章 股票交易系统总体设计和实现 47 图 4-32 持仓信息显示类接口 图 4-33 持仓人类的方法接口 图 4-34 时序图 4 成交交易查询 按成交起始时间进行查询,如不指定时间,则默认为当日成交信息查询。 电子科技大学硕士学位论文 48 成交信息将显示成交时间、股东帐户、交易市场、证券代码、证券名称、 操作、成交数量、计算后的成交均价、成交金额、发生金额(成交金额与印 花税、手续费等的和),合同编号(即委托单号)等信息。 因设计方法基本与前面相同,此处不再赘述。 时序图如图 4-35 所示。 图 4-35 成交交易查询时序图 4.2.3.2 买入股票: 图 4-36 帐户信息的表单 第四章 股票交易系统总体设计和实现 49 图 4-36 储存帐户信息的表单 validate()方法用来判断用户提交的内容是否符合要求, reset()为重置,get 和 set 为得到和设置相应的属性值 图 4-37 Commission 类 用于映射数据库中 Commission 表,如图图 4-37 图 4-38 买入信息写入数据库 commission 表 图 4-38 所示方法负责将用户写入的买入信息写入数据库 commission 表,同 时将需要的钱数写入 personal_stock_account 表的冻结金额里,同时从可取金额 里减去需要的钱数。 该部分时序图如图 4-39 所示。 电子科技大学硕士学位论文 50 图 4-39 时序图 4.2.3.3 卖出股票: 通过输入证券代码,自动查询证券名称、当前价格、买卖五档盘口价格 信息。卖出价格默认为当前股票价格,提示给用户可用股票余额,市值和卖 出后的收益。用户输入股票数量后,显示卖出后获得的资金。卖出股票后提 示委托成功,并显示委托单号。 市值(卖出后可获得的金额):市值单价*卖出股票数量。 卖出后获得的资金:成本价*股票余额。 盈亏:市值-成本价*股票余额。(红色为盈,绿色为亏) 成本价的计算方法见前面的查询部分。 具体类的设计与买入类似,不再赘述。只将要实现的方法写在图 4-40: 图 4-40 负责将用户写入的卖出委托信息写入数据库 commission 表,同时将卖出 的股票数写入 hold_stock_info 表的挂单股票里,同时从可卖股票数量里减 去需要的股票数。 该部分时序图如图 4-41。 第四章 股票交易系统总体设计和实现 51 图 4-41 时序图 4.2.3.4 后台撮合交易: 根据股票交易原则,委托成功后,后台进行判断,对符合交易条件的委 托进行撮合交易。 这是本模块的关键部分。 首先定义撮合交易的原则: (1)最高买入申报与最低卖出申报价格相同,以该价格为成交价; (2)买入申报价格高于即时揭示的最低卖出申报价格时,以即时揭示的最低 卖出申报价格为成交价; (3)卖出申报价格低于即时揭示的最高买入申报价格时,以即时揭示的 最高买入申报价格为成交价。 凡不能成交者,将等待机会成交;部分成交者,剩余部分将处于等待成 交状态。投资者的委托如未能全部成交,证券公司在委托有效期内可继续执 行,直到有效期满。 成交后,需要计算用户各种费用剩余股票,资金总额,其他费用等,将 信息写入数据库中的股东持仓信息表 hold_stock_info, 委 托 记 录 表 commission, 成交记录表 deal. 资金帐户表 personal_stock_account 等。 对于撮合的时间,是随着数据库中股票信息的变更进行的,股票信息每 出现一次变动,便会自动进行一次撮合匹配,根据原则来看是否有符合撮合 的委托。如有,则进行撮合;若无,则继续等待下一次信息变更。 以上为买卖交易个基本流程图如图 4-42 和 4-43。 电子科技大学硕士学位论文 52 图 4-42 撮合交易流程-买入 图 4-43 撮合交易流程-卖出 该部分时序图如图 4-44 所示。 第四章 股票交易系统总体设计和实现 53 图 4-44 时序图 4.2.3.5 撤单 对于状态为“委托”的当日委托单,可以进行撤单操作。 撤单分两种情况,委托单并无发生交易,即所有委托数额都未成交,此 时将整个委托单撤单;另一种情况当委托有部分成交时,委托撤单后,已成 交部分不撤单,仅将未成交部分撤单,并给予类似“××笔已撤,××笔已 成交”的信息。委托撤单提供委托时间、合同编号、股东帐户、交易市场、 证券代码、证券名称、操作、订单类型、委托价格的列表功能。 其实该部分的实现只要将数据库中的 commission 表中的相关数据删除, 同时将买入或卖出时对数据库所作的更改进行回滚,也就是将 personalAccount 表或 holdStockInfo 表的信息进行改回。该部分时序图如 图 4-45. 电子科技大学硕士学位论文 54 图 4-45 时序图 图 4-46 关系图 第四章 股票交易系统总体设计和实现 55 4.3 安全部分设计概要 4.3.1 用户权限控制 前台各种用户的业务使用权限,如图 4-46: 过客:浏览公开信息;注册会员。 临时会员:浏览、查询公开信息、装备信息、单位私有交易信息;提交装 备信息;管理会员账号。 正式会员:浏览公开信息、装备信息、单位私有交易信息:提交装备信息; 签署合同;资金结算、管理会员账号。 后台各种用户的业务使用权限: 系统操作员:系统操作员主要分为三类,分别负责会员账号管理、装备审 批、合同审批等业务。 系统管理员:对整个交易系统的各种问题进行日常维护,保证系统的正常 安全运行;对交易系统的技术开发进行支持,解决客户提出的相关系统的问 题。 数据库管理员:负责系统数据库的设计、管理、优化、维护。 4.3.2 鉴别、保密: 身份鉴别是系统的第一道安全屏障,也是实施访问控制的基础,具有十 分重要的作用。因此,身份鉴别机制的强度如何,将直接关系到整个系统的 安全度。口令验证在需要超过一个人知道同一个特权口令时会带来管理上的 困难。我们对系统的身份鉴别和完整性鉴别、不可否认性鉴别采用了数字证 书和数字签名技术。 电子科技大学硕士学位论文 56 图 4-47 SSL/TLS 模块 首先,用户可以下载数字签名插件,然后安装在个人电脑上。用户在获 取公开密钥时,首先向 CA 认证中心请求数字确认,CA 认证中心确认用户身 份后,发出数字确认,同时 CA 认证中心向数据库发送确认信息。服务器和客 户之间通过的 SSL 协议连接,在用户登录时,要求其提供数字证书。这样, 我们不但完成了用户身份认证的功能,同时利用用户证书中的公有密钥对用 户的信息交流进行了安全保密。其次,用户使用私有密钥对所传信息签名, 保证信息的完整性、真实性,也使发送方无法否认信息的发送,之后发向接 收方;网站服务器接收到信息后,使用公开密钥确认数字签名,进入数据库检 查用户确认信息的状况和可信度:最后数据库向网站服务器返回用户确认状 态信息。 4.4.3 访问控制授权 访问控制是网络安全防范和保护的主要策略,它的主要任务是保证系统 的网络资源不被非法使用和访问。它是保证网络安全最重要的核心策略之一。 本系统采用的访问控制方式包括:访问控制、权限控制。 访问控制: 访问控制为系统访问提供了第一层访问控制。它控制哪些用户能够登录 到服务器并获取信息资源,控制准许用户登陆的时间和准许他们在哪里登陆。 用户的访问控制可分为三个步骤:用户名的识别与验证、用户证书的识别与验 第四章 股票交易系统总体设计和实现 57 证、用户账号的缺省限制检查。三道关卡中只要任何一关未过,该用户便不 能成功登陆。网络管理员可以控制和限制普通用户的账号使用、访问网络的 时间和方式。用户账号应只有系统管理员才能建立。系统应能控制用户登录 入网的 IP,记录用户登陆的时间,限制用户重复尝试登陆的次数。系统将对 所有用户的访问进行审计。 权限控制: 系统的使用权限控制是针对非法操作所提出的一种安全保护措施。用户 和用户组被赋予一定的权限。网络控制用户和用户组可以访问哪些资源。可 以指定用户对这些文件、目录、装备能够执行哪些操作。受托者指派和继承 权限屏蔽可作为两种实现方式。受托者指派控制用户和用户组如何使用网络 服务器的目录、文件和装备。继承权限屏蔽相当于一个过滤器,可以限制子 目录从父目录那里继承哪些权限。本系统采用了受托者指派方式。 4.4.4 股票交易中的网上支付结算安全: 股票交易资金的网上支付是在交易公司,系统用户和银行之间进行的资 金数据信息交换行为。在这种情况下,交易公司和用户基本上是处于一种被 动的适从地位,因为提供网上支付服务的是用户的开户银行,用户只要将自 己的系统接上银行的支付接口就可以了,大部分安全问题由银行来解决。我 们在开发工作展开以前,针对自己的开发平台,按照银行的安装说明的要求 和步骤,安装配置好了相应的模块。每个用户将使用银行支付系统统一分配 的商户号和安全支付用的 CA 证书。用户使用 RSA 私钥对自己的定单进行加密 和数字签名后,将定单信息提交给银行网上支付平台处理。用户通过调用网 站支付系统提供的订单查询接口函数可以得到自己所发出的订单在支付系统 的支付情况。用户也可以登录到支付系统提供的用户查询页面来查询所提交 的交易。 我们进行了如下开发工作: 1.按照支付接口相关文档,调整支付接口。 2.按照签名函数相关文档,生成交易系统对支付结果的签名。 3.按照查询 API 相关文档,制作交易系统自己的订单确认方法。用户可 以通过我们提供给会员的查询页面,由工作人员人工登录查询支付结果,查 询页面的 IP 地址和初始登录名和口令由银行技术人员提供。 电子科技大学硕士学位论文 58 我们严格按照协议的要求,根据银行的技术规范和要求开发相应的应用 程序。网站测试所用的配置文件和测试用的私钥,由银行在平台完成开发准 备工作后提供,正式的配置文件和私钥,在测试工作完成后,由银行提供。 4.4.5 利用 SSH 保障网络信息交互的安全性: 本交易系统还采用了当前流行的 SSH 技术来保障客户端与服务器之间 的信息传递安全,保证用户使用过程中所产生的数据信息不被截获或者盗取。 增加股票交易系统的使用安全。 1.端口转发简介: 要采用以 SSH 隧道保护终端绑定程序连接的方式,首先需要一条 SSH 隧 道。SSH 隧道可通过 SSH 的端口转发功能来提供。端口转发可用来创建一条 SSH 隧道,可用来保护其它的 TCP/IP 程序,即为另外一个应用程序的数据流 提供透明的加密措施。比如一台电脑 H 上运行了支持 IMAP 的。mail 阅读器, 要连接机器 S 上的 IMAP 服务器读取并发送邮件,通常这个连接是不安全的, 邮件的帐户密码在客户端和服务器之间都是明文传送的。运用 SSH 端口转发 技术,可以令连接经过 SSH,就可以安全地对连接上的数据进行加密。服务 器主机运行 SSH 服务器,这样就可以使用端口转发构建 SSH 隧道保护连接。 总之,可以把任意的 TCP/IP 连接重定向到 SSH 会话中,从而使用 SSH 端口转 发构建 SSH 隧道对其进行保护。 TCP/IP 端口转发有两种类型:本地的端口转发和远端端口转发。本地的 端口转发转发的话务来自于本地的 SSH 客户端,该客户端连接到特定主机的 远端端口,可能是 SSH 服务器主机或其他主机。远端端口转发的话务来自于 SSH 服务器的远端端口,该服务器连接到特定的 SSH 客户端本地端口。 2.TCP/IP 端口转发建立流程如图 4-48: 第四章 股票交易系统总体设计和实现 59 图 4-48 本地 TC 即 P 端口转发建立流程 本 地 的 端 口 转 发 是 在 SSH 客户端中配置的,该配置是在通过 ssH--MsG--cHAN.NEL--OPEN 自动建立转发隧道后,连接转发的端口。以下的 配置输入是通过 SSH 客户端初始化一个端口转发而获得的。 (1)在 SSH 客户端中侦听 IP 地址的接口:127.0.0.1 确保从本地主机唯一 连接,或者是自环连接也被用作转发。0.0.0.0 确保任意接口的连接能被用 作转发。特定的网卡 IP 地址确保该网卡接口用作唯一的连接来作为转发。 (2)在 SSH 客户端侦听端口可以是任意端口,该端口在同一系统中不被其 他的 应用进程所占用。 (3)目的主机 IP 地址是当连接需要被转发,SSH 服务器所连接到的地址。 配置目的主机地址为 127.0.0.1,来确保 SSH 服务器连接到的应用进程运行 于同一系统中。此外,还要配置应用服务器中的 IP 地址,对于 SSH 服务器来 说,这是可见的。 (4)目的端口 目的端口是在 SSH 客户端中配置的,以确定目标 TCP/IP 服务器的端口被 侦听到。 电子科技大学硕士学位论文 60 4.4.6 设计框架: 确定了利用 SSH 端口转发形成的 SSH 隧道对终端绑定程序的连接进行保 护的方案之后,接下来就要对这一方案的设计框架进行详细的研究和探讨。 终端绑定程序与终端的网络连接要用 SSH 端口转发形成的 SSH 隧道进行保护, 实现需要利用 SSH 客户端和 SSH 服务器建立端口转发,这样形成一条 SSH 隧 道就可以用来为终端绑定程序的连接进行保护。这时,终端通过终端服务器 就不能直接向终端绑定程序发送连接登录请求,而是必须向位于本地 SSH 客 户端的端口转发监听端口发送登录连接请求,此连接请求被端口转发通过 SSH 客户端与 SSH 服务器之间建立的 SSH 隧道发送到中心主机上的 SSH 服务器, 再通过 SSH 服务器转发到本地主机的基于 SSH 的终端绑定程序。 由上图可以看到,终端介入服务器后,SSH 客户端与主机上的 SSH 服务 器建立端口转发的 SSh 隧道,终端通过服务器中服务于终端的网络连接程序 向位于本地的 SSH 客户端发送连接请求,SSH 客户端将此连接请求通过 SSH 隧道转发到 SSH 服务器,SSH 服务器再将此连接转发到本地的基于 SSH 的转 发绑定程序,此时,终端与终端绑定程序之间就建立了收到 SSH 隧道保护的 网络连接。 总结: 本股票交易系统采用了 RSA,SSH,SSL 等成熟的安全技术,有力的保障 了用户使用过程中的安全性。 4.5 本章小结 本章主要介绍了股票交易系统的具体设计,是本文最为重点的部分。在 本章,我们分为 4 个部分介绍了股票交易系统的具体设计:1.股票系统显示 及查询部分;2.股票交易部分;3.管理部分;4.因为股票交易系统安全的重 要性,我们单独拿出了一部分来介绍本系统的安全部分设计。在每个设计部 分,我们都详细的提出了数据库设计方法、类图、流程图和时序图,同时配 有了详细的文字说明。整个系统的设计详细、完备。 第五章 股票交易系统测试与验证 61 第五章 股票交易系统测试与验证 5.1 测试环境 Windows XP Pro 中文操作系统(with sp3)、 IE7.0 浏览器(with sp3). 5.2 股票功能模块测试(部分测试) 5.2.1 股票查询功能检查内容: a.大盘指数 b.行情中心 c.个股查询 测试具体用例: a 进入股票交易系统后,单击大盘走势进入大盘图页面,页面如图 5-1 图 5-1 大盘图页面 单击大盘指数成功进入大盘指数页面,大盘指数页面功能成功. 电子科技大学硕士学位论文 62 b. 进入股票交易系统后,单击行情中心进入股票行情页面,页面如图 5-2 该页面显示了股票 sh600001 的具体信息.单击更新按钮,更新股票实时 数据,测试同行情中心更新一致. 选择页面下方的下拉列表框中要显示的该股票的图像类型,默认为日 k, 单击数据图按钮新窗口打开该股票的图像信息,页面如图 5-2: 图 5-2 股票行情页面 输入 sh600001 进入该股具体信息页面,页面如图 5-3 和图 5-4: 第五章 股票交易系统测试与验证 63 图 5-3 股票具体信息页面 图 5-4 股票的图像信息 电子科技大学硕士学位论文 64 该页面更能成功实现. 没有错误 5.2.2 资金信息查询功能模块测试 功能检查内容: 对用户输入的资金账号,检查是否能正确返回用户资金账号信息 测试具体用例如图 5-5: 图 5-5 用户资金账户查询 出错: 没有错误 5.2.3 股票买入委托功能模块测试 对用户输入的买入股票委托,检查是否能正确处理 测试具体用例: 第五章 股票交易系统测试与验证 65 1.用户输入所要委托的股票代号,检查能否正确返回股票相关信息如图 5-6. 图 5-6 买入股票 2.返回正确的股票信息后,用户进行委托操作,如图 5-7 图 5-7 二次提交 3.用户输入的委托数量不能超过用户资金帐户余额所能购买的数量,委 托成功后,返回提示委托成功页面,如图 5-8. 出错: 在用户输入的委托数量大于用户实际可委托的数量时报错 解决方案: 进行验证,提示用户输入的委托数量不得超过实际可委托数量 电子科技大学硕士学位论文 66 图 5-8 买入成功 4.进入委托查询页面查询委托信息,如图 5-9. 图 5-9 买入查询 5.3 本章小结 本章主要介绍了为了保证本系统的正常运行,我们所进行的测试。测试 阶段是统一软件开发过程中一个非常重要的阶段,通常在软件开发过程中不 可避免的存在很多错误,而测试阶段是软件顺利发行的最后保障。我们在测 试阶段使用了单元测试、集成测试等先进的测试手段,有效的改正了系统中 存在的问题。 第六章 结论与展望结论 67 第六章 结论与展望结论 6.1 总结 本文研究了目前主流的软件开发技术,设计并实现基于一套股票交易系 统。它基于 B/S 架构,具有维护和升级方式简单、易于扩张、成本低、安全 性高和个性化服务等特点的交易系统。 6.1.1 本文特色与创新点 (1) 将 B/S 架构应用于股票软件开发这一新的领域,打破了以往该类 软件都是基于 C/S 架构编写的格局。 (2) 在实现原有股票交易功能的基础上,加入了更多的扩展操作,使 炒股变得更为简单易用。 (3) 基于服务器的模式简化了软件的维护成本,提高了安全性和稳定 性。 (4) 通过先进的人机交互技术,提高了软件的可用性。特别是更多的 个性化模式,吸引更多的用户使用。 (5) RSA、Secure Sockets Layer 和 Secure Shell Protocol 等安全技 术,保证了股票交易的安全性 (6) 整个软件开发过程使用了瀑布模型和统一软件开发过程,使得系 统的开发更为高效和安全。 (7) 因为使用 B/S 架构,基于服务器模式,因此有浏览器即可实现系 统的使用,移植性比较好,方便用户随时随地实现股票交易。 (8) 良好的数据库设计,使得系统的运行更加高效和安全。 6.1.2 论文不足 由于自身知识和能力的限制,本文在分析和设计中仍然存在一些不足之 处,主要包括以下几点: (1)系统开发经验少,因此在需求分析阶段可能做的不是很全面,在设 电子科技大学硕士学位论文 68 计功能模块中有些功能会被忽略,在系统开发过程中可能会出现一些意想不 到的情况,只能在以后的过程中不断进行完善。 (2)由于股票交易知识的匮乏,没有实现很多高级的股票分析和选择技 术,特别因为缺少经济专家的支持,没有办法实现现在很多股票软件提供的 专家炒股、专家建议等功能。 (3)由于条件限制,没有办法获得该系统在大量用户登录使用时的稳定 性测试,这点以后还需要升级提高。 (4)没有达到对同类股票交易系统进行性能比较,在判定设计出的本系 统在性能上的优越性只能局限于使用的直观效果。 6.2 展望 随着该系统应用的推广,我们计划在该系统中增加如下几方面的扩展。 一 专家建议系统开发。 聘请专业炒股人士和经济专家提供经济支持,实现智能选股、风险预 测、股市分析等股票交易高级功能,进一步提高该系统的可用性。 二 PC 到手机的移植 IPhone 和 3G 的出现,使得移动互联网技术成为了当今的热门话题, 越来越多的 PC 应用被移植到了手机上,很多股票交易软件也推出了手机版。 因此,如何将我们的系统也推广到手机当中去,实现移动炒股,也是未来一 个重点的发展方向。 三 增加大流量访问的稳定性 进一步提供系统的稳定性,使得系统能够满足同一时间内大量的访问, 这一步还是非常困难的,但也是真正从实验室到商业应用必须跨越的一步。 四 商业推广 待系统更加成熟之后,增加商业推广模式,使我们的股票交易系统真正 走向市场,实现盈利。 参考文献 69 致 谢 论文的写作和系统的开发过程是枯燥漫长而又充满挑战,在众多的老师和朋 友的关心和帮助下,我圆满完成了这项工作。 在这里首先,我要感谢我的导师李建平教授,在论文写作期间,给予了我最 大的帮助,是他教会了我整个设计过程的方法,无论是在我的学业和论文的研究 工作中都倾注了辛勤的汗水和心血。导师严谨治学的态度、渊博的知识、无私的 奉献精神使我深受启迪,并让我从尊敬的导师身上,不仅学到了扎实、宽广的专 业知识,也学到了做人的道理。导师对学生的孜孜教诲,我将受益终身。在此我 要向我的导师致以崇高的敬意和最衷心的感谢,并真诚地祝愿他身体健康、工作 顺利,万福如意。 其次,我要感谢我的同事在我这次毕业设计中也给了我很大的帮助。软件开发 的同时,和同学们之间的相互探讨也使我的知识上了一个台阶。同学们在这三年 的学习生涯里无论是在生活上还是在学习上都给予了我极大的帮助。与他们在学 业工作上的讨论,也让我深受启发,解决了许多实际困难。还要感谢在我实习期 间项目组同事给我的帮助。感谢每一位帮助和支持过我的人。通过与指导老师、 同学的交流、通过图书馆查看相关资料,我基本熟悉了整个系统的业务流程,这 对后期的开发工作至关重要, 经过整个毕业设计期间的努力,我基本上完成了我的课题,在此感谢学院里 给我们提供了舒适的工作、学习环境。在这段时间里,我除了完成了毕业设计, 更重要的是学到了兢兢业业,奋发向上的精神,这种精神是我今后人生前进道路 上的一种力量。 再次感谢老师以及给过我帮助的同事和同学。 电子科技大学硕士学位论文 70 参考文献 [1] 《上海证券交易所交易规则》2009.7.1 [2] 《深圳证券交易所交易规则》2009.7.1 [3] Ted Husted.Strurts in Action 机械工业出版社,2005 [4] Clinton Begin,Brandon Goodin,Larry Meadors.Ibatis in Action.人民邮电出版社,2008 [5] 石鸿远 Java-B/S 结构应用系统的开发流程 科技情报开发与经济,2008 [6] 罗时飞 精通 Spring:深入 JavaEE 开发核心技术 电子工业出版社 2008.10 [7] 梁建全 周力 孟志勇 田利军 轻量级 JavaEE 框架整合方案 人民邮电出版社 2008.08 [8] 刘乃丽 精通 JavaEE 项目案例:基于 Eclipse Spring Struts Hibernate 人民邮电出版社 2008.01 [9] Leszek A. Maciaszek 实用软件工程 机械工业出版社 2007.01 [10] 萨默维尔 软件工程(英文版•第 8 版) 机械工业出版社 2006.09 [11] Hall Alvin D. Getting Started in Stocks 中国金融出版社 2003.1 [12] 黎航 股市操练大全(第 7 册) 上海三联书店 2009.4 [13] 张友生,陈松乔.C/S 与 B/S 混合软件体系结构模型 计算机工程与应用,2002 [14] 张仁津,林筑英,一个基于 Web 应用的软件体系结构的研究 贵州大学学报(自然科学版), 2004 [15] 张友生 软件体系结构 北京 清华大学出版社 2004 [16] 曾志廉 基于 B/S 与 C/S 结构的股票模拟交易实验软件的设计与实现 广州大学数序与信 息科学学院 2008 [17] 弗莱格 信息安全原理与应用 电子工业出版社 2007 [18] 王国辉 吕海涛 李钟尉 Java 数据库系统开发案例精选 2007 [19] 林建宏 赖慧敏 Dreamweaver8 和 JSP 动态网站开发 机械工业出版社 2007 [20] 李刚 轻量级 Java EE 企业应用实战:Struts 2+Spring+Hibernate 整合开发 电子工业出版社 2008 [21] 姜金胜 股市分析软件用法详解 上海人民出版社 2006 [22] Nakaike, T.; Kondoh, G.; Nakamura, H.; Kitayama, F.; Hirose, JSP splitting for improving execution performance .Applications and the Internet, 2004. Proceedings [23] Goncalves, Antonio (2009). Beginning Java EE 6 Platform with GlassFish 3: From Novice to 参考文献 71 Professional. Apress. ISBN 1-4302-1954-8. http://apress.com/book/view/9781430219545. [24] Perrone, Paul J.; Chaganti, Krishna (2003). J2EE Developer's Handbook. Indianapolis, Indiana: Sam's Publishing. ISBN 0-672-32348-6. [25] Bodoff, Stephanie (2004). The J2EE Tutorial. Boston: Addison-Wesley. ISBN 0-321-24575-X. [26] Kumaraswamipillai, Arulkumaran (2007). Java/J2EE Job Interview Companion. ISBN 1-41-166824-3. [27] Solveig Haugland, Mark Cade, Anthony Orapallo: J2EE 1.4: The Big Picture, Prentice Hall, ISBN 0-13-148010-3 [28] Alan Monnox: Rapid J2EE Development: An Adaptive Foundation for Enterprise Applications, Prentice Hall, ISBN 0-13-147220-8 [29]Renaud Pawlak, Lionel Seinturier, Jean-Philippe Retaillé: Foundations of AOP for J2EE Development, ISBN 1-59059-507-6 [30] Christopher Judd, Hakeem Shittu: Pro Eclipse JST: Plug-ins for J2EE Development, ISBN 1-59059-493-2 [31] Andrew Sears and Julie A. Jacko (Eds.). (2007). Handbook for Human Computer Interaction (2nd Edition). CRC Press. ISBN 0-8058-5870-9 [32] Jonathan Grudin: A moving target: The evolution of human–computer interaction. In Andrew Sears and Julie A. Jacko (Eds.). (2007). Handbook for Human Computer Interaction (2nd Edition). CRC Press. ISBN 0-8058-5870-9 [33] Definitions: IT Security Architecture. SecurityArchitecture.org, Jan, 2008 [34] New hacking technique exploits common programming error. SearchSecurity.com, July 2007 基于B/S架构的股票交易系统设计与实现 作者: 李英德 学位授予单位: 电子科技大学 本文链接:http://d.g.wanfangdata.com.cn/Thesis_D314649.aspx

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享文档获得金币 ] 5 人已下载

下载文档

相关文档