资源描述
硕士学位论文之特殊监管区域智能化系统数据层设计与实现 特殊监管区域智能化系统数据层设计与实现摘要 如今软件开发运用在各行各业中,一方面它对大量的业务数据进行了有效地管理;另外一方面它标准了业务操作流程,提高了工作效率,为行业带来了较高的经济效益。 在系统开发过程中,设计一个使用质量高的系统是一个不断尝试和完善的过程。在这过程里,系统要考虑使用何种框架模型、如何有效地设计数据表和如何进行不断地优化提高效率等各种问题。 本文介绍的特殊监管区域智能化系统是一套全新的业务申请和审批系统。它是对原系统的升级和改良,主要包括业务模块的重新划定和数据层的改良优化,保证系统在处理数据方面做到平安和高效,另外还能实现对其它已有系统的连接。 文章首先介绍了系统使用的框架结构。对各层的简单分析,让数据层的设计工作明确了具体的数据流向,最终确定使用C#和JavaScript语言完成对系统数据层的设计和开发。接着本文对业务模块的需求进行分析,进一步完成Web页面的设计工作,数据库的设计工作和后台业务逻辑层的编写。作为原系统的改良,本文重点介绍了数据层的优化和平安管理工作,从物理硬件和软件设计两个方面制定并实现了一套改良策略,解决了数据访问速率慢、存取异常等遗留问题,使系统的数据层在效率和平安性层面得到了很大的提升,从而也保证了整体系统的使用质量。关键词:架构,数据库设计,数据层优化Abstract Nowadays the software development is used in all walks of life, on the one hand it can manage a lot of business data effectively, but on the other hand it can regulate the process of business operation, promote the working efficiency, and improve the economic benefits for companies. Designing a system that has a high quality is a process of continual try and perfecting in system development. In this process, the system has to consider which framework model to choose, how to design the database tables effectively, and how to optimize the system constantly and so on. In this article, it introduces a new system, named Bond Operation Management System. Its function is businesss application and approval. This new system upgrades and improves the original system, it mainly includes redrawing the business module and improvement of data layer, so it can make the system safely and efficiently on data processing. In addition, the new system can make a link with other existing systems. First, the text introduces the system architecture. By analyzing every layer simply, the data layer can make sure the data flows, also the text can decide to use C# and JavaScript language to finish the design and development of system data layer. Then, the text analyses the requirement of every business module, so based on these results, it finishes the design of Web, the design of database and logic layer coding. The new system as a improved one. In this text, it mainly introduces the design of data layers optimization and security management. From two aspects of the physical hardware and software design, the text carries out a set of improvement strategies. These strategies can solve the problems, such as the slow access and exception. So it makes the system data layer more efficient and safe, and improves the systems quality. Key Words:architecture, database design, data layer optimization目录摘要iAbstractii图目录III表目录IV第1章 绪论11.1 课题背景11.2 课题的意义11.3 现状分析21.3.1 相关系统现状21.3.2 数据层平安现状21.3.3 数据层性能问题31.4 设计的目标和拟解决的问题31.5 主要工作和本文组织结构4第2章 相关研究工作52.1 海量数据处理解决方案52.2 数据的备份和恢复52.3 数据层效率优化策略62.3.1 内存分配调整62.3.2 SQL优化72.3.3 软件开发模式优化72.3.4 软件测试优化72.4 数据层平安控制策略82.4.1 身份验证82.4.2 授权机制82.4.3 数据加密82.4.4 操作审计82.4.5 视图机制82.5 本章小结9第3章 系统架构模型103.1 特殊监管区系统架构103.1.1 架构概述103.2 本章小结17第4章 数据交换设计184.1 系统总体介绍184.2 系统内部数据交换184.2.1 数据交换格式184.2.2 Ajax数据交换方法194.2.3 数据交换流程204.3 数据交换平台204.3.1 功能描述204.3.2 设计方案214.3.3 平台架构214.3.4 数据交换接口244.3.5 设备要求24第5章 数据库总体设计与实现255.1 总体概述255.2 数据库表设计265.2.1 系统业务环境分析265.2.2 表设计285.3 本章小结29第6章 数据层优化设计与实现306.1 缓存机制306.1.1 客户端缓存306.1.2 效劳器端缓存326.2 数据库优化336.2.1 读写别离模式33.2 SQL语句优化346.2.3 构建视图356.3 本章小结35第7章 数据层平安设计与实现367.1 访问控制367.1.1 身份认证367.1.2 授权管理377.2 数据控制377.3 异常处理387.4 本章小结39第8章 总结和展望408.1 本文总结408.2 未来展望40参考文献42作者简历44致谢45图目录图 3.1系统整体组件关系设计10图 3.2客户端首页界面11图 3.3表单编辑页面12图 3.4表单查询界面12图 3.5工程bll层图片13图 3.6工程model层图14图 3.7实体类生成工具15图 3.8数据库连接配置15图 3.9数据库表选择16图 3.10基类选择16图 4.1系统应用结构图18图 4.2前后台JSON串传递19图 4.3 Ajax数据交换20图 4.4数据交换平台21图 4.5平台物理布局22图 5.1数据库架构设计26图 5.2系统业务模块汇总27图 6.1客户端第一次请求过程31图 6.2客户端第二次请求过程32图 6.3 MemCache缓存设备33图 6.4读写别离模式34图 7.1身份认证结构图36图 7.2 CA账户激活流程37图 7.3普通控制38图 7.4 Ajax控制38图 7.5 Model层控制38表目录表 3.1实体类和业务类分类14表 5.1字典参数表28表 5.2系统工作流活动表28表 5.3具体业务表29表 7.1操作行为表39表 7.2数据变化表39绪论课题背景 如今在信息系统设计过程中,必然要面对大量的信息数据。这些海量数据给页面加载和数据库读取带来了不小的压力,处理不当就会减慢页面的加载速度,影响用户的操作体验,或者造成访问数据库异常、数据库数据存取混乱等情况。 本系统的设计是对原有系统的改良和升级,原有系统因为最初的设计不合理和编码不标准,存在许多弊端和缺乏。首先客户端页面数据加载的速度慢,给使用者带来不佳的使用体验,同时也降低了工作效率。其次,页面数据输入控制不够严密。本系统的应用环境为特殊监管区,在该区内分布着上百家各类型企业,它们生产和销售各种产品,所以企业使用者录入产品信息时存在着不确定性和多样性。如果在录入信息时控制不严密,结果导致底层数据库的存取出现异常。最后,没有制定出一套完整有效的方案去解决海量数据的处理和多用户并发访问系统的难题。特殊监管区内企业数量众多,工作顶峰期很有可能出现效劳器崩溃的情况。以上诸多问题,结果就导致原系统的业务无法完成整个流转过程,形成连环影响。 基于此,重新设计了一套业务信息系统,命名为特殊监管区域智能化系统。本课题也就是为了解决以上诸多问题,对系统的数据层进行了重新的设计和实现,保证数据的平安和流畅,最终也就提高了系统整体的使用质量。课题的意义 特殊监管区域智能化系统数据层最终的设计和实现,首先能有效地完成业务流程。在客户端它能顺利、平安地帮助用户完成信息的录入和提交,同时在效劳端完成数据的审批和存储工作,保证业务模块数据的正常流转。其次,特殊监管区域智能化系统是要实际投入使用的,要考虑到数据量、数据平安等方面的因素,所以面对多用户并发访问和处理海量数据时,能够有效地保证数据库的完整和稳定。接着,本系统能很好地连接其它已有的业务系统,实现各系统之间数据的调用和共享。最后特殊监管区域智能化系统也是一个可扩展的平台,方便后续的研究和开发工作。现状分析相关系统现状 在设计本系统前对目前已有的相关系统和资料文档进行了查阅和分析。.Net三层经典架构1被很多成功的软件产品所应用,包含各行各业,比方:电子商务网站、酒店管理系统3、稿件管理系统2和工业生产管理系统等。 对以上这些进行总结归纳。首先可以肯定三层架构已经应用得非常成熟,并且在市场上出现了很多优秀的系统,所以本系统设计采用三层架构4是一个不错的选择。仔细比拟已有的这几套系统,它们都是在三层架构的根底上进行扩展,按照自身的特点增加层数、设计组件,或者直接采用原本的框架结构。不管进行如何扩展,它们的本质还是三层架构,在这一点上这些系统没有太大的差异。 Web开发兴起后,系统的开发逐渐从以往的C/S模式向B/S模式转变,用户可以使用浏览器通过网络实现在线数据的填报5,简化了系统的开发和使用。另外,在各系统中采用的数据交换格式也有所不同。目前主要的有两种:XML和JSON。两者相比,JSON更具有灵活性和简单性,便于机器的解析和生成。比照相关系统后发现,在页面开发中使用JSON数据格式会占有比拟多的优势,但同时对开发人员的技术水平有一个较高的要求。另外局部系统页面对动态数据的实时处理设计得不够理想,会影响用户的使用体验。 另外对系统数据库的选择也分为两种,有些系统采用SQL SERVER,有些系统那么采用Oracle,这就完全根据自身的需要了。接下来就是涉及到具体数据库表的设计。上面几个系统都有特定的业务环境,有些系统对需求分析不是很合理,同时在设计数据表的过程中过度遵循范式,这样就造成数据表的设计过于复杂;另外,还有些系统数据表虽然设计的合理,但SQL语句没有进行优化,当系统正式运行面对大数据量时,读写数据的效率会受到严重影响。数据层平安现状 数据的平安性问题也是衡量一个系统好坏的重要指标,系统要保证数据库里的重要数据不被非法获取或篡改,尽量确保数据的完整性。目前威胁系统数据平安的主要问题包括如下几点:用户的操作权限过高。系统设计时,用户被授予了过高的数据库访问权限,对局部保密数据产生了平安隐患。平台漏洞。不管是应用系统还是数据库效劳器都安装在某个操作系统平台上,而系统平台自身就存在一些平安漏洞,这样就可能出现未授权访问数据。SQL注入。这往往出现在Web页面输入参数过程中,注入的语句传入到数据库中执行,造成数据库的数据非法外泄。身份验证薄弱。身份验证设计不合理或者过于简单,攻击者就容易获取合法用户的登入凭证,从而得到他人的用户数据。审计记录缺乏。合法用户在操作敏感数据时可能出现异常,如果缺少记录,那么对下一次的数据平安产生影响。 基于上面目前出现的这几个数据层平安性的问题,在本系统数据层设计过程中也会全部考虑到,并且制定出具体的解决方案,保证系统数据的平安。数据层性能问题 数据层的性能好坏决定了系统的整体使用效果,其中主要包括底层数据库的数据读取和前台数据的展示。目前相关系统都要面对海量数据,一旦数据层的优化方案制定缺乏,将会暴露出来诸多问题。 首先是对数据库表范式6,10的选择,有些系统设计数据库表时选择的范式过高或者偏低,没有在标准化和非标准化之间找到平衡点7,8,9,这就造成后期SQL语句执行效率降低。其次,系统处理复杂的业务逻辑时,不标准或者复杂的数据库执行语句造成数据读取速度的缓慢,特别是当多用户访问时,数据库表可能会被锁住。最后是数据库表的定期管理不当,造成主数据库容量过大,影响查询数据效率。 所以在系统数据层性能完善过程中要解决这些问题,另外根据本系统的特点制定出更全面地优化方案。设计的目标和拟解决的问题 通过设计实现这套特殊监管区域智能化系统,首先解决原有系统存在的诸多问题,到达改良的要求。其次,根据新的业务需求,增加新的功能,提高用户体验,成为此系统的增色点。最后,设计这套系统方便今后的研究和开发工作。 系统要完成这些设计目标,首先要解决碰到的如下几个问题:页面数据的平安录入如何控制。根据实际的业务环境,数据库表结构设计如何在标准化和非标准化之间到达平衡。海量数据读取和多用户并发访问如何解决。异常数据如何进行恢复和调整。主要工作和本文组织结构 根据上述的要求和问题,接下来本文将详细介绍特殊监管区域智能化系统的设计和实现。首先,在第二章中介绍了设计本系统过程中进行的相关研究工作。在第三章中将介绍系统采用的架构模型,说明数据的流向。其次,在第四章介绍数据交换,其中包括数据交换的格式、技术,还有交互平台。随后,第五章介绍数据库的标准设计,这是系统数据层设计中一个重要的环节。根据需求任务书,设计各个业务表,并建立之间的关系。第六章介绍数据层的优化设计,它能帮助整个系统在性能上得到很大的提高。第七章介绍数据层的平安问题,当数据出现异常时,它提供数据后续处理的保障。最后在第八章进行了总结和展望,对本系统的优缺点进行了归纳,明确了后期的改良工作。 相关研究工作海量数据处理解决方案 当今软件产品应用到各行各业中,系统产生的业务数据庞大而又复杂。同时每天新增的用户数量和业务的细化,给系统数据库带来了巨大的挑战。近期,各大电子商务网站频频出现秒杀、价格战等促销活动,访问数据量以秒为单位节节攀升,彻底暴露出了系统的性能问题,严重的就会出现系统瘫痪,12306订票网站就是一个很好的例子。 如何解决大数量的冲击早已成为人们关注的焦点,目前从物理硬件和软件技术这两方面都可以提出一些解决方案。在硬件方面,系统可以使用高性能的效劳器、数据库,并且不断地增加这些硬件的数量。但是硬件性能的提高和数量的增加并不能满足长远的需求,所以问题的解决还要依赖软件技术领域的探索。 下面提供几点技术解决方案:页面局部静态化处理。对于系统中使用频繁但又更新缓慢的内容可以使用静态化手段,防止了对数据库的访问。图片别离。图片相对于页面文字来说占用了大量的资源,所以设立单独的图片效劳器。数据库读写别离技术。使用主、从数据库提高IO访问速率。缓存技术。使用MemCache缓存访问频繁但更新小的数据,减少数据库的访问次数。负载均衡。它采用某种均衡策略,分配用户到多台效劳器上,用来解决多用户并发访问出现的问题。数据的备份和恢复 在实际软件产品使用过程中,用户的错误操作和系统软硬件的故障都会影响数据库数据的平安,因此要做好数据库的备份和恢复工作。 数据库的备份通常就是对数据进行不定期或者定期的复制和拷贝工作,作为原数据的副本。目前主要的备份方式有如下几种:网络备份20。数据通过网络传输,传送到另外一台效劳器上作为数据备份。它的优点在于能根据时间进行定时备份或者能根据数据量进行增量备份和差量备份。归档、分级存储藏份20。根据数据的类型和重要性,把数据进行分类打包处理,然后再备份保存。SAN备份20。本机磁盘和效劳器之间用光纤进行连接,数据就通过光纤进行传输备份。远程数据备份20。数据远程复制就是把本地数据传送到远程数据备份系统中,这种备份方式是为了解决本地数据库遭到大范围破坏的问题。 数据库的恢复就是在出现意外的情况下,保证数据库的数据不出现丧失的现象。数据的恢复方法首先可以建立事务日志,根据日志周期性地恢复数据库。其次,如果数据损毁严重,那么把最新备份的数据转移带其他磁盘上,再使用日志恢复原来的数据。数据层效率优化策略 数据库应用系统的性能问题在大多数情况下是由设计问题引起。在设计数据库结构时,面对复杂的系统业务环境,设计人员无法做到全面地考虑。这些隐藏的问题只有到系统测试运行一段时间后才会暴露出来,所以对这些问题我们要进行优化,提高系统的整体性能。内存分配调整 数据库效劳器内存参数调整主要是对数据库系统全局区的调整,系统全局区包括共享池、数据缓冲区、日志缓冲区。其中主要是对数据缓冲区和共享池的参数调整14。 数据缓冲区从磁盘中读取数据块,然后放入内存缓存中。所以,数据缓冲区的容量越大,存放的共享数据就越多。这样就大大减少了对磁盘数据的物理读写操作,也就意味着数据库的响应速度会加快。 另一个就是共享池的调整,它的作用就是存放使用过的SQL语句。共享池由库高速缓存和数据字典缓冲区两局部构成,另外再用一个最近最少使用的算法进行管理。调整共享池的参数主要是扩大保存SQL语句的容量,系统在处理SQL语句时要花费大量的时间,执行并保存这些SQL语句能为下次执行减少大量的时间,提高了响应速度。如果系统内存为1G,一般共享池的大小设置在150M-200M之间,但不能超过500M14。 结合这两种参数的调整,系统的性能会有明显的提高。但对这两种的调整要在合理的范围内,不然会给系统使用的内存带来压力,反而降低系统的效率。SQL优化 SQL语句的执行效率直接影响了数据库的执行效率,所以对它的优化也是一个重要的方面。以下介绍3种优化方法:在执行where语句时,我们将能过滤掉大量数据的条件写在where之后,以提高执行效率。在使用select语句时,尽量少使用星号,这样数据库会消耗时间去进行转换,降低了执行效率。所以应直接使用具体的列名。尽量使用where语句代替having语句,在使用时参加筛选条件。这样的执行效率远远高于执行完后用having语句对记录进行的筛选14。软件开发模式优化 首先防止访问回滚段14。当用户所访问的数据正在被另外的用户修改,数据库就需要访问回滚段来读取这一时刻的数据值,保证数据的唯一性,所以可以通过配置回滚段来减少查询时发生的错误。 其次对表使用分区和并行技术14。所谓的分区技术就是把表进行分割,用到的数据和闲置的数据放在不同的分区中,这样数据库进行查询时,就只会对有用的分区进行数据查询,其他分区的数据将不会被读取,加快了有效数据的读取速度。而并行技术能够让多个处理器处理同一条命令,加快查询速度。软件测试优化 在开发过程中,由于实际数据不够充分,导致性能压力测试做的不够全面,在软件产品交付后出现各种漏洞和异常。所以系统必须通过测试验证是否能在负载情况下满足业务的最初要求。首先,系统进行大数据量测试。开发过程中的小数据量不会影响数据库的性能。只有用大数据量使用一段时间后,数据库才会暴露出性能问题。其次,进行多用户并发访问测试。系统在实际使用中可能要面对超负荷的情况,所以在测试中需要进行并发访问,查看是否会引起死锁现象,导致数据库访问中断。数据层平安控制策略 数据库的平安性是整个系统平安的一个重要指标。它要保证数据库的数据不被非法获取,防止出现破坏性的数据库操作,保证数据的统一性和完整性。目前,对数据库产生威胁的因素有如下几点:物理硬件损坏、误操作、恶意窃取等,就此提出如下5种解决方法。身份验证 用户登入系统时,需要输入自己的用户名和密码来标识自己的身份,然后系统进入数据库进行核对,这就是一套根底的身份认证机制。只有当用户输入正确的用户名和口令,系统才允许合法的用户进入,进行下一步的业务操作。考虑到用户登入信息被窃取的情况,可以设计较为复杂的随机数认证。用户得到口令都是通过预先计算产生,再输入到系统中进行用户合法性的判断。授权机制 系统数据库进行访问权限控制,将用户的权限录入在数据表中,限制用户的操作权限。用户权限包括:数据对象权限和数据操作权限19。当合法用户登入系统之后对数据库进行读取操作,这时系统会根据用户在数据库中已有的权限进行操作限制,保护权限以外的数据。数据加密 数据加密是比拟常用的一种手段,进一步防止数据的泄露。通常就是把明文数据通过一定的计算转换为密文数据。操作审计 数据库系统的审计通常是指记录、检查和回忆对系统进行所有相关操作的行为19。系统对用户的情况进行记录和审查,当发现问题时,审计人员可以通过审计跟踪,查找原因,防止问题的再次发生。操作审计对数据库平安起到很好地弥补作用,提高数据库的稳定性。视图机制 在关系型数据库中,数据库还可以为不同的用户定义不同的视图19。在这些视图中对用户的操作数据和操作权限进行控制,在一定程度上保证了数据的平安性和逻辑独立性。本章小结 本章首先对处理大数据量提出了几个可行性方案,帮助系统提高访问效率。接着介绍了几种数据备份方法,在数据库出现数据异常时保证数据的完整性。然后对数据层的优化策略进行了总结,从硬件和软件4个方向提出优化方案,最后研究总结数据层的平安控制,归纳了5个策略来保证数据库系统的平安。以上这些研究工作为这次系统数据层的设计提供了重要的依据,保证了后期的开发和实现。系统架构模型特殊监管区系统架构 本系统是基于.NET的三层体系结构设计的,在本系统中简称为NBSD架构。在此根底上,搭建本系统的底层组件、实体类组件、业务层组件和Web层的控件及最终的效劳端和客户端。同时根据业务的需求,搭建查询用的报表和后台运算用的效劳引擎。 架构概述 如图3.1所示,NBSD架构是在.NET三层架构的根底上进行了扩展,但整体实质上还是原来的三层架构。与其他结构相比,在访问数据时多了一个业务逻辑层,也叫做组件层。 在工程开发的过程中,本系统把整个工程分为如下几个层次,其中包括:表示层、业务逻辑层、Model层和数据访问层4。表示层就包含最终的客户端和效劳器端,Model层进行数据传递。三层架构将业务规那么、数据访问、数据合法性校验等工作放入业务逻辑层进行处理。为了考虑数据的平安性,通常情况下,客户端先与业务逻辑层建立连接,再经由这层与数据层进行数据交换,保护数据平安。各层分析 表示层:主要以Web方式表示,用于显示数据和接收用户输入的数据。本系统采用网页的形式为用户提供一个交互式的操作界面,用户使用IE浏览器进行登入,在表单编辑页执行业务操作。 客户端进行初步设计:包括登入首页图3.2、用户编辑页面图3.3和用户数据查询页面图3.4。效劳器端采用客户端类似的界面设计。 在本系统的实际开发过程中,使用JavaScript脚本语言进行客户端Web开发,根据具体的业务需求进行布局,从而响应用户的各种操作。在此也表达了三层结构的优势,无论表示层如何定义和更改,逻辑层都能很好地提供效劳。 业务逻辑层:主要是针对业务数据的操作,是系统架构中表达核心价值的局部2。它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。主要集中在业务规那么的制定、业务流程的实现等与业务需求有关的系统设计,如图3.5。 数据访问层:主要负责数据库的访问,它响应逻辑层的请求,为业务逻辑层提供数据。简单来说,就是对数据库进行增、删、改、查等操作。 在本系统设计中,还添加了Model实体类层,如图3.6。它作为数据库表的实体映射,在各层之间起到了一个数据传输的桥梁作用。model层里面的一个类对应数据库里面的一张表,类里面的每一个属性对应表里面的一个字段,每个属性都有自己的 GET 和 SET 方法,工程中的数据存取都要依靠GET和SET方法来实现4。 本系统根据框架设计对数据库字段的约束条件,同时结合本系统的实际功能,可将数据实体和对应业务类分为6大类,暂命名如表3.1: 实体类 业务类 说明BaseObjectEntityBaseObject全字段实体类BizObjectEntityBizObject带ID的实体类UniqueidentifierEntityBizUniqueidentifier申报表体实体类StatusUniqueidentifierEntityBizStatusUniqueidentifier申报表头实体类IOUniqueidentifierEntityBizIOUniqueidentifier外网发起申报表体实体类IOStatusUniqueidentifierEntityBizIOStatusUniqueidentifier外网发起申报表头实体类 另外实体类生成工具,如图3.7: 执行CreateEntityObject.exe后,会出现如图3.8,填入要导出的数据库 然后点击“预览文件内容或“导出既可以查看或生成选中数据表的实体类代码。结构设计的利弊 我们用三层结构主要是使工程结构更清楚,分工更明确,有利于后期的维护和升级。主要的优点:易于工程的修改和维护。在工程的开发过程中或者开发后的升级过程中,只需要将表示层重新修改就可以了。易于扩展。NBSD架构就是在此三层结构上进行的扩建。易于代码的重用。易于分工协作开发。这能有效地加快系统开发的速度,缩短开发周期。 无论哪种开发模式或方法,都有其利弊。虽然这种结构模式应用比拟普遍,但不适用于对执行速度要求过于苛刻的系统。在做出比拟、权衡之后,选择这个结构模式进行系统开发。本章小结 本系统使用的NBSD架构在三层架构的根底上进行扩展,包括了表现层、业务逻辑层、Model层和数据访问层,使工程的结构更加清楚;同时结合实际具体业务和团队开发的要求,NBSD架构让本工程分工更加的明确,提高了开发效率,缩短了工程开发周期。总体来说,三层架构在很多方面要强于其它结构,它能解决多用户并发访问带来的拥堵问题,保证数据库数据的平安,这些诸多优势也是本系统选择的原因。数据交换设计系统总体介绍 特殊监管区域智能化系统可以分成内部隔离区(即效劳器端)、外部平安区(即客户端)以及外部系统接口区(数据交换平台的外部延伸)三局部组成,如图4.1。 效劳器端、客户端以及数据交换平台之间的数据和流程交互通过数据库实现,从而减少系统之间耦合度。系统内部数据交换数据交换格式 本系统Web开发使用JavaScript脚本语言,从而使用JSON这种轻量级的数据交换格式。它是基于JavaScript的一个子集,一方面它易于阅读和编写,跟XML相比具有更好的简单性和灵活性;另一方面,非常适合于效劳器和JavaScript的交互。 目前比拟流行的数据交换格式包括以下三种:XML、JSON、YAML。JSON是基于纯文本的数据格式,能跟JavaScript很好地结合。JSON的数据格式非常简单,可以简单地理解为它是JavaScript的数组和对象。 在实际编程过程中,JSON将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给效劳器端程序,同时效劳器端响应用户请求返回数据,可以将效劳器端的数据封装成为JSON传送到Web页面,如图4.2。 Ajax数据交换方法 在系统设计过程中,为了使客户端和效劳器端能进行更好的数据交换,我们使用了Ajax技术。通过Ajax,JavaScript的XmlHttpRequest对象直接与效劳器进行通信,在不重载页面的情况下,数据被动态地写入网页中,完成与Web效劳器的数据交换。 在系统设计中使用Ajax技术,它的优势是不言而喻的。Ajax在客户端和效劳器端之间还支持异步数据传输,这就使网页请求效劳器的信息大幅度减少。 Ajax的数据处理过程也不复杂。当发送HTTP请求,浏览器不会挂起等待效劳器响应,页面继续响应用户的交互,在效劳器响应完成后再处理这些请求。这时,我们需要向XMLHttpRequest注册一个回调函数,并异步地派发XMLHttpRequest请求,如图4.3。控制权就被返回到浏览器,当效劳器响应到达时,回调函数将会被调用。在Web效劳器上,到达的请求与任何其它HttpServletRequest一样。在解析请求参数后,servlet执行必需的应用逻辑,将响应序列化到XML中,并将它写回HttpServletResponse。 图 4.3 Ajax数据交换数据交换流程 实际系统运行过程中,客户端和效劳器端的数据交换是双向的,一方面效劳器响应客户端的数据请求,另一方面客户端把录入好的数据封装好发送给效劳器。在数据库,系统为每个操作业务设计了两张数据表:临时表和正式表。客户端通过JSON封装串和Ajax方法提交给BLL层,通过校验的数据就先保存在临时表;在效劳端等到数据审核通过后才存入数据库的正式表。数据交换平台功能描述 在本系统之外,还要与H2000的数据订阅,与预录入系统的报文传输,还有企业erp系统,物流系统中口岸施验封系统涉及的与港务的交互,所以建立数据交换平台图4.4,方便各个系统之间的数据交换。设计方案 利用BizTalk对数据的路由功能,同时结合各应用系统的独立数据存储方式,满足其他系统通过数据交换平台对数据的获取请求。 平台架构 特殊监管区域智能化系统数据交换平台由BizTalk核心区、数据传输区、交换平台管理区以及数据存储区四个局部组成。用于数据交换的传输协议包括HTTPS、MQ、FTP、FILE和SOAP等,用于数据交换的应用协议有MSSQL。 上图4.5中的核心框内的接收、处理、发送、BizTalk控制台和数据交换监控8台虚拟机搭建于2台物理机上,两台BizTalk数据库采用双机热备方式。BizTalk核心区 BizTalk核心区基于微软的BizTalk Server2021企业应用集成平台,分为前台数据处理层和后台数据存储层,两层结构可分别进行横向扩展和纵向扩展。前台处理层包含消息接收、业务流程处理、消息发送三类效劳器,根据报文数量和时效性要求可以部署多台效劳器同时并行处理多个消息,同时,业务流程支持负载均衡,接收和发送可建立备份传输通道,在主通道失效的情况下启动备份通道继续进行消息传输处理。后台数据存储层部署两套SQL Server 2021数据库管理系统,实现双节点A/A故障转移群集,用于保存BizTalk配置数据、交换消息持久化存储以及跟踪数据存储等。数据库物理数据保存在SAN区域网络存储上,在其中一台数据库效劳器出现异常停止工作时通过微软的MSCS效劳自动由另外一个节点的数据库效劳器接管存储上的物理数据继续为前台数据处理层提供效劳。数据传输区 数据传输区主要职责是作为数据交换代理,分别连接BizTalk核心区域和目标参与方,最终实现多个参与方之间的数据交换。根据BizTalk提供的适配器可以实现FTP、FILE、IBMMQ、MSMQ、SQL、WS以及WCF等方式的消息交换。目标参与方分为两类,第一类为建立在专用网络上的各个单位、部门中的系统,比方其他数据中心的信息化系统需要同特殊监管区域智能化系统进行数据交换。这种方式的数据交换数据量一般比拟大,时效性要求也高,同时必须保证数据传输的完整性,需要支持事物化传输,另外还要考虑各系统技术平台异构的情况因此主要采用消息队列方式进行数据传输。第二类目标参与方为企业用户,一般通过Internet网络进行连接,相比第一类目标参数方单个通道上的数据交换量比拟小,但是网络连接数较多,网络带宽较小,只适合小数据量的传输。根据企业用户的技术能力以及其信息化应用水平可选择FTP、Web Form申报或Web效劳集成调用方式进行数据交换。采用FTP方式进行数据交换BizTalk核心区域通过FTP适配器直接同FTP效劳器连接。采用Web Form申报或Web效劳方式进行数据交换消息数据先保存至代理数据库效劳器,代理数据库效劳器同BizTalk核心区域相连接,通过这种方式能够提供较好的平安性,也更容易扩展和管理。交换平台管理区 交换平台管理区实现对BizTalk Server平台以及基于其上的特殊监管区域智能化系统数据交换平台进行管理和监控。对BizTalk Server平台的管理主要通过BizTalk Server Console来实现,主要管理工作包括BizTalk应用程序部署、接收端口、发送端口/发送端口组、业务流程、应用程序执行方案、接收方/发送方管道等多个模块进行设置和管理,并可实时查询当前正在平台上运行的消息以及出现异常挂起的消息。同时,控制台提供消息人工干预恢复和保存功能。消息交换平台监控主要包括BizTalk监控和数据传输监控两局部。BizTalk监控通过对BizTalk进行二次开发,实现是对BizTalk内部运行的业务流程、发送端口、接收端口等模块状态进行实时监控,在出现状态异常时进行报警通知、同时监控BizTalk消息盒中的消息数量,在出现消息处理缓慢或出现阻塞时进行预警。数据传输监控实现对消息队列运行情况,MQ通道状态、队列中未处理消息深度进行监控预警。消息传输监控同时实现对FTP效劳器以及相关报文存放目录进行监控,在超出设置的时间阀值报文未被移走或单位时间报文积压过多时进行预警。另外数据传输监控对代理数据库效劳器和基于SQL适配器进行消息交换的报文数据库中的报文流转情况进行监控,出现异常情况进行预警。数据存储区 数据存储区域采用区域网络存储技术(SAN),两台数据库效劳器通过HBA卡访问网络存储,能较有效的降低IO瓶颈,同时实现数据平安和高可用性。报文备份效劳器同区域网络存储相连,通过BizTalk Server 文件适配器对一些用于数据交换的原始报文进行落地备份,并按日期进行归档。Vmware虚拟化平台虚拟效劳器文件保存在区域网络存储中,使系统部署、复制、迁移更加灵活。随着系统数据量的增加区域网络存储可以扩充磁盘柜增加磁盘,不必另外购置其他设备。数据交换接口 支持基于XML数据进行数据交换,数据标准参照具体数据交换标准文档。设备要求 特殊监管区域智能化系统数据交换平台设备包括微机效劳器、区域网络存储、光纤交换机、网络交换机和网络防火墙等设备。主要微机效劳器有四台,采用多颗多核CPU,能够较好的支持多线程处理和高负载运行。其中两台用于部署BizTalk Server 后台SQL数据库并实现双机故障转移群集,另外两台用于部署Vmware VS4-ENT-CVS4企业版虚拟化平台,两台效劳器实现虚拟化双节点故障转移群集。BizTalk前置接收、发送、业务流程处理以及数据传输、平台监控管理等功能模块运行于Vmware虚拟化平台之上,虚拟化运行操作系统为Windows Server 2003 sp2 企业版。 数据库总体设计与实现总体概述 数据库是信息系统的核心和根底,把信息系统中大量的数据按一定模型组织起来15,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息,这也是数据层设计的一个重要环节。 在数据库设计过程中,对数据库表的合理设计非常重要,它最终影响着数据库的读写效率。本系统采用的是关系型表结构数据库,在业务规模比拟小的时候,表结构的设计可以比拟简单,但随着业务规模的壮大,数据间的关系变得更加的复杂,数据库表的设计难度就加大。不合理的表结构一方面影响数据的访问速率,另一方面更新数据库时可能会出现数据的异常,所以我们要按照数据库的标准流程进行数据库表的设计工作,减少冗余数据,保证数据的完整性和平安性。 特殊监管区域智能化系统是个大业务量系统,需要处理大量的报关数据,而且这些数据之间又存在着紧密的业务逻辑关系,同时效劳器端和客户端之间又要进行实时的交互和反应,所以合理设计此系统的数据库尤为重要。 从图5.1得知,本系统数据库分为Biz业务数据库、历史数据库、异常数据库和查询数据库,两两之间存在着业务流转关系,保证整体数据库的存储、更新和异常处理。 特殊监管区域智能化系统原那么上还是以关系型数据库设计为原那么,提高数据的重用性和降低数据的冗余度,但是对局部表结构的设计采用以空间换效率的思路22,以提高数据的访问速度。如将流程表的纵表横向化设计等。主体思想即为一切为效率让路。数据库表设计系统业务环境分析 本系统的大概业务环境分为客户端和效劳器端,客户端和效劳器端又可分为三个模块:公共模块、保税区模块、加工区模块,三个模块下再分具体的业务菜单,逐步细化呈现树形分布。这些业务产生大量的数据,从而直接或间接地去访问数据库。另外还存在其他的外围系统和业务,也会和本系统的数据库进行交互,如:预录入申报系统、身份认证系统等。 其中橙色条目为一级工程;白色条目表示二级工程;灰色条目也为二级条目,表示下面还有下一级条目,如图5.2。 特殊监管区域智能化系统从系统功能结构上可以分为业务模块和公共模块。在业务模块中,又包含保税区业务和出口加工区业务,这些业务模块还包含一些列的子模块,这些模块的设计在本文中不做详细描述。 公共模块中的查询统计、系统维护、数据交换以及单证删改等会设计本系统中所有的模块,因此需要在详细设计时候独立优先设计。其中查询统计中保税区查询、加工区查询和公共模块查询拟采用标准SQL Server数据库查询或者全文索引实现,系统一体化搜索拟采用L类似的算法实现。表设计 基于以上对本系统全部业务的分析,明确了模块之间的数据逻辑关系,方便我们来确定系统数据库的表、视图结构设计12,13,21。本系统使用SQL2005建立业务图表、关系图,初步建立系统级数据表表5.2、业务数据表表5.3、参数表表5.1和各类视图。另外考虑到数据层平安和异常问题,还要建立权限管理表和异常记录处理表。在后期的实际使用中对影响效率的数据表进行适当的优化和调整,逐步完善系统数据库。字典类型说明企业等级(COMPLEX_LEVEL)业务大类BIZ_CLASS风险处置方式DIS_METHODACTIVITY_IDnvarchar36活动IDACTIVITY_DESC_CODEnvarchar20活动描述代码PROCESS_IDnvarchar36流程IDNAMEnvarchar30活动名称DESCRIPTIONnvarchar100描述STATEnvarchar30状态PRIORITYint活动的优先级START_TIMEdatetime活动开始时间END_TIMEdatetime活动结束时间DUE_TIMEdatetime活动截止时间CURRENT_ACTIONnvarchar2当前活动点FINISH_CONDITIONnvarchar100ACCEPTEDnvarchar1是否接受USER_IDnvarchar36登录用户USER_PATHnvarchar255FULL_PATH_NAMEDEL_FLAGnvarchar1删除标志ACTIVITY_SEQint活动顺序TASK_
展开阅读全文