XML订单处理系统的设计与实现_第1页
XML订单处理系统的设计与实现_第2页
XML订单处理系统的设计与实现_第3页
XML订单处理系统的设计与实现_第4页
XML订单处理系统的设计与实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*学位论文 XML订单处理系统的设计与实现N 科类 理工科 编号(学号) 20050001 本科生毕业论文(设计) XML订单处理系统的设计与实现The Design and Realization of Processing XML Order System 指导教师: * 副教授 *大学 学 院: *学院 专 业: * 年级: -*级 论文(设计)提交日期: 2*年*月 答辩日期: 200*年*月 答辩委员会主任: * *大学200*年*月 日目 录摘 要1Abstract21 前言32 订单处理系统的开发工具52.1 Visual Studio 2003介绍52.2 Microsoft Access介绍52.3 Microsoft .NET介绍52.4 XML介绍62.5 Web服务83 订单处理的需求分析113.1开发背景113.2订单处理系统的可行性分析113.3 订单处理系统的功能分析123.4 订单处理系统开发环境的需求134 订单处理系统设计144.1 订单系统的基本构思144.2 订单处理系统的总体设计154.2.1设计思想154.2.2订单处理系统层次图154.3 订单处理系统的详细设计164.3.1订单处理的功能模块设计164.3.2 订单处理模块流程图164.3.3订单处理模块的算法思想174.4 后台数据设计174.4.1数据库设计174.4.2数据表设计185 订单处理系统的具体实现205.1 Web服务的实现205.2 XML读取的实现216 订单处理系统的测试257 设计与实现中的问题讨论288 结论30参考文献31致 谢32摘 要 现代信息社会正日新月异地高速发展着,人们的生活方式也随着科技的发展逐步改变,同时也产生了许多新的需求,订单的自动化处理正是需求的其中之一。电子订单的产生不但为商品采购节省了大量人力和时间,也简化了手工操作的繁琐过程。此外,互联网的流行不但为本地用户提供了订单服务,也使得异地订单成为可能。本文主要介绍了订单处理系统的开发背景、设计思想和具体实现,提出了采用Web服务与XML语言相结合的技术来实现该系统的独到之处,基本实现了订单自动化处理的功能。此订单处理系统是运行在.NET框架的环境当中,使用了Web服务技术,并且采用XML语言注入该系统当中,不但提高了订单信息的安全度,还加快了订单的传输与处理速度。当客户向服务器发送了一张订单之后,服务器开始对使用了XML封装的信息进行数据提取,随后把有效信息存储到数据库中去,实现了订单处理的自动化。电子订单的自动处理简化了手工操作的繁琐过程,提高了工作效率。关键词:XML技术;订单处理;.Net框架;Web服务第 33 页 (共 34 页)AbstractWith the development of information society, there are many changes in the peoples life style, and increasing needs are required. The processing order system is one of these needs. This article mainly introduces the development background of order processing system,the design thought and the concrete realization. It proposes the XML order automatic processing system is implemented by the use of technologies combining the Web service with the XML language. In the environment of .NET frame, the XML and web service not only enhance the security degree of the order information, but also speed up the transmitting and processing of the order. After the customer send an order to the server, the server starts to extract the data from the XML seal information, then the valid information is stored into the database, so the order is processed automatically. The automatic order processing system simplifies the tedious process of manual operation and raises the work efficiency.Keywords: XML; order processing; .Net frame; Web service1 前言随着网络技术的发展,人类社会不断跨入新的时代。人们对物质的需求不单单局限在能满足自身要求,更希望的则是它们能达到自动化、一体化、全方位服务的效果。上个世纪末,面对科学技术的飞速跳跃,特别是计算机技术的突飞猛进,人们开始意识到繁冗复杂的手工操作已开始老化,我们需要为工作的操作性注入一些新生力量,因此大量的信息管理系统在本世纪初如雨后春笋般地涌现在人们面前。订单系统也就是其中之一。订单主要就是指客户为了指示物流服务商从事某种对业务支持的物流活动而发布的指令,其中可能包括进出库指令、分销指令、采购运输指令、生产线配送指令、流通加工指令等不同的形式。订单的产生和商品的产量是密不可分的。有了大数额的订单,才会有大批量的商品生产;正因为有了大批量的商品生产,才保证了大数额订单的可执行性。所以,订单在商品销售的过程中,占据了一个比较重要的地位。被我们所熟悉的商品订单,大多都是手工操作的结果。对于一个商品的销售,使用手工操作的订单主要弊端有:对于采购单位,需要填写各种申请表格,往返于各个部门之间,逐级盖章审批,效率低,成本高;对于财务部门,无法准确把握市场行情,在采购预算资金审批方面没有准确参照物;对于手工管理的企业来说,凭借决策人对市场的预测来进行订单生产,容易造成仓库的大量积压或供不应求。而产品积压严重使得库存太大,导致企业资金周转出现困难。面对人工操作的诸多缺点,现代人似乎更乐意采取网上采购,产生电子订单的方式,不仅仅是因为它的方便快捷,它还具备了以下优点:节省采购成本;提高资金使用效率;增加采购透明度;增强和供应商的合作;提高工作效率;沟通企业和市场,形成良性循环;加快社会信息化的进展。随着互联网的流行,Internet用户以指数级增长,在网上产生订单似乎已经成为现代商品销售的一个新趋势。对于网上电子订单的处理过程,可以采用多种技术实现。而今天我们所要设计的是基于XML技术的订单处理系统。XML语言产生于上个世纪末,活跃于本世纪初,在计算机领域里是一门较为新兴的学科,它的出现给Web服务的应用乃至整个计算机网络注入了新的活力。使用了XML语言技术的订单处理系统正是在这流行走俏的网络平台上日益发展起来的,目前仍处于发展中阶段。以前订单处理系统要在手工的方式下进行操作,数据量大,而且还容易出错。不能显示出订单的快捷和灵活性。客户在发送订单后往往不能及时的得到反馈信息,比如说客户在发送订单后,等待回复,而此时操作员在处理大量的数据没有能及时处理客户的订单,而在处理订单时才发现没有库存,这时在反馈给客户信息。客户在等待的过程中失去了重新选择的机会,给客户带来了损失。这不仅让客户失去信心,也同样给公司带来了负面的影响。XML订单处理系统正是在这样的情况下产生的。XML订单自动处理不仅仅拥有了处理的快捷性,而且还做到了安全性的保障。在网络发展迅速的今天,各个公司基本上都组建了小型的局域网络。发送订单不再是由认为的操作进行,也不再是将订单数存储到一定的时候在发送到处理部门进行处理。选择的公司竞争力日益加强,时间就是一个企业的生存条件。如果不能在很短的时间内做出反应,那么企业就很有可能被淘汰。所以XML订单处理系统不仅能让手工处理的工作人员从繁琐的工作中解脱出来,而且也可以让企业脱颖而出,迅速占领市场。当然XML处理系统也有其弊端,由于XML订单处理系统是建立在Web服务中处理订单的,如果网络中断就不能进行操作,还是要回到手工的操作模式下进行,所以XML订单处理系统必须是在网络畅通的情况下才能发挥其强大的功能。本设计的目的主要是基于XML Web Service 的通信协议,讨论XML订单处理自动化系统的模式针对客户订单处理进行初级研究。2 订单处理系统的开发工具2.1 Visual Studio 2003介绍Visual Studio 2003 是Microsoft公司出品的一款出色的编程工具。Visual Studio .NET 2003是一个全面集成的开发环境,用于编写、调试代码,把代码编译为程序集进行发布。实际上,Visual Studio .NET提供了一个非常复杂的多文档界面应用程序,在该应用程序中可以进行与开发代码相关的任何操作,它提供了:文本编辑器;代码的设计视图编辑器;支持窗口;在环境中编译;集成的调试程序和集成的MSDN帮助;访问其他程序。2.2 Microsoft Access介绍Microsoft Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是一种关系式数据库。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。其主要特点主要有:存储方式单一;面向对象;界面友好、易操作;集成环境、处理多种数据信息;支持ODBC(开发数据库互连,Open Data Base Connectivity)。2.3 Microsoft .NET介绍.NET Framework就是Microsoft的Web服务平台。不论操作系统或编程语言有何差别,Web服务能使应用程序在Internet上传输和共享数据,也可以调用其他应用程序的功能,而不考虑其他应用程序是如何生成的。并且在保证应用程序相互独立的同时,Web服务还使它们能够建立链接而形成一个合作组来完成某个特定的任务14。.NET Framework背后的基本理念就是:不再关注单个的网站和与因特网连接的单个设备,而是要让所有的计算机群、相关设备和服务商协同工作,提供更加广泛和丰富的解决方案。人们将能够控制何种信息、在何时、以何种方式传送给自己。计算机群、相关设备和服务商将能够相互协作,提供更加多样的服务,而不是像现在这样的一座座孤岛,由用户来提供仅有的整合。.NET Framework是一个新的计算平台,它可以简化和优化Windows中应用程序的开发和部署。如图3-1所示,它包括以下4个主要部分:图1 .Net的体系结构(1)应用程序开发技术:ASP.NET提供了许多新增功能和更简洁的编程模式。(2)类库:包括对数据访问、XML支持等的基本类库的扩展集。(3)基类库:包括线程、安全、IO等的基本类库。(4)CLR(Common Language Runtime):它用于执行和管理用任何一种针对.NET平台语言编写的所有代码。这4个部分的基础性依次增强,较高的层使用一个或多个较低的层。2.4 XML介绍XML,可扩展标识语言(eXtensible Markup Language),是由World Wide Web Consortium(W3C)在1998年2月正式推出的一个规范。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。与SGML一样,它也是元标记语言,定义了用于定义其他与特定领域有关的标记语言的句法语言14。3.4.1 XML语言的产生近年来,随着Web的应用越来越广泛和深入, HTML过于简单的语法严重地阻碍了用它来表现复杂的形式,使其渐渐不能满足不断增长的应用需求。标准通用标识语言SGML是一种元标识语言,能用来设计自己的标识语言,它功能强大,能很容易的描述数据,但是其过于复杂,不便使用。正是在这种形势下,Web标准化组织W3C建议使用一种精简的SGML版本一一XML应运而生了。与HTML一样,XML也脱身于SGML语言,它将S GML进行了简化,虽然与HTML同属于通用标记语言的一个子集,但XML有着巨大的伸缩性与灵活性,而这正是HTML语言所欠缺的。 与HTML语言相比,XML语言的性能有很大飞跃,它可以让信息提供者根据需要自行定义标识及属性名,可以包含描述法,使应用程序对文件结构的嵌套可以复杂到任意程度。XML和SGML同样是一种元语言,而HTML则不是。 然而XML不是为了要取代HTML。就应用层面来看,XML介于SGML与HTML之间,克服了SGML过于复杂和HTML缺乏灵活性的缺点。制定XML的目标是多元化的,它的一个设计原则就是简化SGML并与SGML兼容,XML是以SGML为目标经过简化而设计出来的,他希望软件厂商制作的XML解析器能够包含所有的范畴,而使得所有的XML解析器都能够正确无误地解析XML文件:制定XML的第二个目标是支持多重应用领域以及易于开发相关软件。XML是一种定义严谨的标记语言,文件可以被任何XML解析器处理而产生一致的输出结果,只要输出是合法的,就可以被不同的应用程序所使用。2.4.2 XML的优点 XML在数据描述及数据交换方面具有以下的优点:(1)良好的可扩展性XML允许各个不同行业根据自己的需要制定标记,具有良好的可扩展性。实际上,许多不同的行业、机构都利用XML定义了自己的置标语言。(2)内容与形式的分离XML定义标记不必仅限于对显示格式的描述,显示样式从数据文档中分离出来,放在样式表文件中。这样,如需改动信息的表示方式,只要改动样式表文件即可。而且在XML中,搜索引擎不必遍历整个XML文档,只需查找相关标记就能找到感兴趣的内容。(3)遵循严格的语法要求XML非常注重准确性,如果语法有丝毫差错,分析器都会停止对它的进一步处理,因此具有较好的可读性和可维护性。(4)便于不同系统之间信息的传输有了XML,各种不同系统之间可以采用XML作为交流媒介。XML不仅简单易读,而且可以标注各种文字、图像甚至二进制信息,这使得XML成为一种非常理想的网际语言。(5)数据的多样显示由于XML的内容与表现形式是分开的,这样对于相同的XML文件,可以根据自己的需要编写不同的样式表(如XSL样式表)来显示其中的数据。(6)数据的本地处理XML格式的数据发送给客户后,客户可以利用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模型DOM(Document Object Model)允许用脚本或其他编程语言处理数据。数据计算不需要回到服务器就能进行。这样可以利用一些简单的脚本语句,使用简单灵活开放的格式,创建功能强大的Web应用软件。2.5 Web服务2.5.1Web服务概述Web 服务是一个独立的, 基于标准的应用。它是基于互联网标准和 XML 技术建立的, 用以描述、发布到网络供其他应用程序调用。Web 服务是分布式系统的一个新的发展趋势。从外部的使用者的角度而言, Web 服务是一种部署在 Web上的对象/组件。它具备了以下特征:完好的封装性;松散耦合性;使用协约的规范性;高度可集成性。2.5.2Web服务的基本结构图2 Web的基本结构逻辑上Web服务的结构分为四层,这与传统的面向对象的N层的应用程序的层次模型很相象。离Web服务客户端最远的是数据层,存储服务所需的数据;在数据层之上的是数据访问层,数据访问层向业务逻辑层描述物理数据的逻辑视图,同时阻止业务逻辑层直接修改物理数据,保证数据的完整性;业务逻辑层通过服务的发布向用户提供直接操作的接口。服务监听层负责接收包含有服务请求的消息,分解消息,向业务逻辑层的合适的API分派请求。当服务做出响应时,也要负责把来自业务逻辑层的响应打包到消息中去。2.5.3 Web服务应用程序的层次结构图3 Web服务应用程序的层次结构Web服务应用或Web服务Client逻辑上可分为三个层次:用户界面层、业务表达层和Web服务代理层。Web服务代理层通过Web服务代理类生成的对象向Web服务发送请求与接收响应。应用所有对Web服务的访问都必须通过代理类的对象来完成。业务表达层不能直接向Web服务发送或接收请求,它只能将服务请求交给相应的代理对象,由代理对象将请求打包成消息发送,同时接收代理对象解包后的响应信息。用户界面层负责处理与用户之间的交互信息,调用业务表达层提供的服务。2.5.4 SOAP 是 Web 服务的关键技术SOAP 为在一个松散的、分布的环境中使用 XML 对等地交换结构化的和类型化的信息提供了一个简单的轻量级机制。SOAP本身并不定义任何应用语义, 如编程模型或特定语义实现, 它只是定义了一种简单的机制, 通过一个模块化的包装模型和对模块中特定格式编码的数据重编码机制来表示应用语义。SOAP 的这项能力使得它可被很多类型的系统用于从消息系统到 RPC (Remote Procedure Call) 的延伸。SOAP 规范主要由三部分组成:(1)SOAP 信封(envelop):它构造定义了一个整体的 SOAP 消息表示框架, 可用于表示消息中的内容是什么, 是谁发送的, 谁应当接受并处理它, 以及这些处理操作是可选的还是必须的等。(2)SOAP 编码规则(encoding rules):定义了一个数据的编码机制, 通过这样一个编码机制来定义应用程序中需要使用的数据类型, 并可用于交换由这些应用程序定义的数据类型所衍生的实例。(3)SOAP RPC 表示(RPC representation):定义了一个用于表示远端过程调用和响应的约定, 例如如何使用 HTTP 或 SMTP 协议与 SOAP 绑定, 如何传输过程调用, 在具体传输协议的哪个部分传输过程响应, 如我们可以在 HTTP 的响应的时候传递过程响应。虽然这三部分是作为 SOAP 的不同部分作为一个整体定义的, 但他们在功能上是正交的、彼此独立的。特别的, 信封和编码规则是被定义在不同的 XML 命名空间(namespace)中, 这样有利于通过模块化获得定义和实现的简明性。由于 SOAP 的主要设计目标是简明性和可扩展性。这就意味着有一些传统消息系统或分布式对象系统中的特性将不包含在 SOAP 的核心规范中。这些特性包括: 分布式垃圾收集(Distributed garbage collection) 、成批消息传输/处理 (Boxcarring or batching of messages) 、对象引用(Objects- by- reference) 、对象激活(Activation)。3 订单处理的需求分析3.1开发背景我们都知道,目前使用最多的仍然还是手工操作的订单,员工在填写各种采购表之后经公司审核盖章之后,再送交商品销售公司,发货公司按照采购公司所发出的订单派人员到仓库进行货物配给,写好货物发送单据后交给物流公司,由物流公司送达目的地。由于是人工操作,途中避免不了会出现单据丢失、商品名称或数量看不清楚、发货与收货不匹配等问题。这就需要一个简单、开放、灵活、可靠、安全的电子订单收发处理系统来解决这一系列问题。此外,商品的零售商与供应商之间存在着大量的数据交换信息,包括订单、订单确认、发货单、收货单、发票、产品属性、销售和库存状况等。这些信息的交换要求安全、简便易行和低成本。但目前零售业界的情况并不是这样,一个供应商通常需要面对多个零售商的不同数据交换格式,比如要同时面对来自零售商A的EDI数据交换格式、零售商B的FTB数据交换格式和零售商C的XML数据交换格式,同样,零售商也会面临不同供应商的不同数据格式。所以,目前零售业界的数据交换成本高且效率低,迫切需要一种统一的语言格式。对于本系统来说,所采用的统一语言格式就是XML语言格式。正因为网络技术发展的日新月异,使得传统的订单处理面对严峻考验,它不得不以改变自身的处理方式来应对社会的需求,于是电子订单的出现成为必然。利用Web技术,可以使得订单的发送和接收在互联网上急速穿梭而缩短了处理的距离及时间。无论是本地或异地订单,都可以同时在Internet上成为可能,这大大的拓展了订单系统的灵活性和开放性。使用XML语言更是增加了订单的可靠性和安全性。如此方便、操作简单的电子订单系统,使我们的工作变得简单、轻松,我们何乐而不为呢?3.2订单处理系统的可行性分析可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。(1)技术可行性该系统是利用VB.Net作为前台操作界面,以Access作为后台数据库联合开发的,并且利用了XML技术和Web技术相结合来对订单进行处理,这些都已经是被大多数人所知晓的系统开发技术,使用的稳定性趋于纯熟,为系统开发的技术可行提供了有力保障。(2)操作可行性该系统的界面直观,操作简单。由于采用的是XML技术来处理订单,人们根本不用手动去修改数据库,免去了一些不必要的麻烦,并且节省了时间,提高了效率。(3)经济可行性在互联网普及的今天,开发工具的下载随手可得,为系统开发省去大部分的开支。只要企业里有能够连到网络上的电脑就可以进行订单的处理。而较之传统的订单处理方式所产生的人力资金,邮费等,电子订单更具有快捷、方便等特点,并且占用资金量极小。在日益竞争的社会中,谁拥有了时间,谁就拥有了客户。一个高效、安全、自动化的订单处理方式,就可以使一个企业在市场浪潮中占得先机,使得烦琐的事情变得轻松起来。3.3 订单处理系统的功能分析订单处理就是指从客户下订单开始到客户收到货物为止的过程。该订单处理系统刨去了货物运送的环节,只涉及到把所接收到的订单进行数据的提取,并把有效数据存储到数据库中去这两大操作。当客户通过该系统在互联网的一头填写好了采购信息发送给厂商,该信息是通过XML语言进行封装过的,因此在网络传输中具有一定的安全性。当订单到达了厂商的服务器之后,该处理系统会自动在传输过来的XML订单文件中读取采购商品的信息,并把它存入到数据库中去,实现了订单的自动化操作,为采购节省了时间,并且提高了工作效率。订单处理主要提供Web服务,其要实现的目标如下:(1) 读取客户传输的XML订单文件。(2) 将XML订单文件读取到数据库中。图4 订单处理系统用例图3.4 订单处理系统开发环境的需求(1)硬件要求:服务器 PIII500 CPU 、256M内存或更高。Web服务器 IIS5.0以上,Windows 2000自带。数据库 Microsoft Access 2003。(2)软件环境:浏览器 IE5.5以上版本。(3)其他:操作系统 Windows 2000 Adv Server、Windows 2000 Server 以上。编程语言 ASP脚本语言。开发工具 Visual Studio 2003。4 订单处理系统设计4.1 订单系统的基本构思当客户端使用订单发送模块发出一张订单后,服务器通过订单接收模块接收订单信息,之后再由处理模块就发送来的信息进行有效数据提取,并保存到数据库中去。最后再由接收模块提供订单信息供客户和商家查看。具体的订单数据流程如下图所示:图5 订单系统数据流图订单系统包括订单发送模块、处理模块和接收模块三个部分。其功能图如下:图6 订单系统结构图 我们可以清楚地从上图看出,订单发送模块主要是负责订单信息的录入,并把发送成功的信息反馈给用户,使用户在发送订单后立即就知道自己刚才所发送的订单是否已成功到达厂商的服务器;订单处理模块实现的则是订单数据的读取以及存储两大部分,因为采用的是XML语言封装数据传输,服务器要把接收到的订单信息进行解析才能显示给用户和厂商查看;而在订单接收模块中,可以对已处理过的订单信息进行查看及删除操作。4.2 订单处理系统的总体设计订单处理系统是订单系统的其中一个模块,其重要功能就是负责订单信息的自动化处理及存储。采取XML语言作为数据的封装形式,其最大的优点就是在传输中具有较高的安全性和较快的传输速度。4.2.1设计思想通过Web服务,可以将原来大量复杂的工作完全自动划处理,提高了工作效率。如果对于上述信息均是采用人工处理,那将面对的是天文数字般的信息量,人们要从这大量的信息中进行处理以及处理的时间限制都是不可避免的很大的问题。所以在很多大中型的超市都有自己的信息处理器,对于这些订单都需要自动处理器。在这个前提下,将创建一个订单的自动处理器,能自动处理数据库的数据,对接收到的订单进行处理。开发一个简单的B/S系统,它将具有以下优点。(1)实用性:要为客户订单发送提供方便。(2)操作简单:在订单的处理中根本不需要人工操作。(3)代码可读性好:代码将尽可能简洁。4.2.2订单处理系统层次图数据存储数据读取订单处理系统图7 订单处理系统的层次图4.3 订单处理系统的详细设计4.3.1订单处理的功能模块设计订单处理主要是把客户的订单进行处理,并保存到数据库。(1)读取XML客户订单当客户发送订单后,订单将保存到服务器上的文件夹中,Web服务才能进行对文件的读取。(2)保存有效数据到数据库对读取的XML订单信息进行有效数据解析,并保存到数据库中。4.3.2 订单处理模块流程图订单处理模块主要是在服务器上对客户的订单进行自动化的处理。图8 订单处理模块流程图 当服务器在接收到一个XML订单文件时,首先要判断它是否为一个有效的XML文件,如果无效则返回服务器终止,如果它是一个有效的XML订单文件,则对它进行数据解析,并把有效的数据存储到服务器中去。4.3.3订单处理模块的算法思想图9 处理模块的N-S图 如上图所示,当接收到一张XML订单时,处理系统首先要判断这张订单的有效性,如果不是有效的XML文件则终止读取程序。如果为有效的XML订单文件,首先就是对客户姓名这一字段进行解析。之后再一步步对XML中的其他字段进行解析,直到最后传送过来的整个表单处理完全,就把全部有效数据存入到数据库中去。4.4 后台数据设计4.4.1数据库设计数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足用户的应用需求。数据库是数据信息管理的核心技术,是计算机科学的重要分支,也是发展最为迅速的分支,由此可看出数据库的设计至关重要。由于是XML订单的自动处理,其内容只涉及到了发送订单用户的简单信息,所以只考虑建立一个数据库作为基本数据库。并为其命名为:myDB.mdb。4.4.2数据表设计根据对订单处理系统的需求分析,设计了如下的表来达到简单订单处理的效果。该数据表的名称为:TOrder。字段名称数据类型中文说明备注ID自动编号订单编号主键CustomerName文本客户名称Address文本客户地址Tel文本客户电话PreferShopMethod文本送货方式ProductName文本货物名称ProductCount文本货物数量下面主要对订单信息的数据字典设计如下:名字:订单信息别名:描述:客户发送给经销商的商品采购信息定义:订单信息=客户名称+客户地址+客户电话+送货方式+货物名称+货物数量位置:存储到数据库名字:订单编号别名:订单ID号描述:唯一地标识数据库中一个特定的订单信息定义:订单编号=1数字10位置:订单信息名字:客户名称别名:描述:某采购商或采购单位的名字定义:客户名称=4字符50位置:订单信息名字:客户地址别名:描述:某采购商或单位的具体办公地址定义:客户地址=1字符50位置:订单信息名字:客户电话别名:描述:某采购商或单位的联系方式定义:客户电话=1数字20位置:订单信息名字:送货方式别名:描述:货物送达所采取的方式定义:送货方式=包裹|海运|客运位置:订单信息名字:货物名称别名:描述:采购货物的名字定义:货物名称=1字符20位置:订单信息名字:货物数量别名:描述:某种商品一次采购的数量定义:货物数量=1数字5位置:订单信息5 订单处理系统的具体实现5.1 Web服务的实现(1)创建Web服务图10 web服务创建(2)服务的实现Imports System.Web.ServicesImports System.IONamespace OrderWebService _Public Class Service1 Inherits System.Web.Services.WebServiceWeb 服务设计器生成的代码#Region Public Sub New() MyBase.New()该调用是Web 服务设计器所必需的 InitializeComponent() End Sub Private components As System.ComponentModel.IContainer Private Sub InitializeComponent() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub#End Region _5.2 XML读取的实现创建数据库后,在ODBC中添加系统数据源。该处理系统的实现实际上就是调用一个类,使其完成订单数据的读取和存储功能。(1)创建一个类,这个类主要具有两个事件,一个是ReadXML,另一个是GetOrder。 Public Function OrderProcess(ByVal filename As String) As String Dim order As New Order order.ReadXML(filename) Dim info As New FileInfo(filename) If info.Exists = True Then info.Delete() Return order.GetOrder() End Function End ClassEnd Namespace(2)事件一: ReadXML,即读取或解析XML信息。Public Function GetOrder() As String Dim adocmd As OleDbDataAdapter Dim ds As DataSet = New DataSet Dim mytable As Data.DataTable Dim myrow As Data.DataRow Dim SearchSQL As String Dim cmd As OleDbCommandBuilder Dim cmd1 As OleDbCommand 初始化连接数据库字符串 DBStr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:myDB.mdb;查询定单表信息 SearchSQL = select * from TOrder创建数据库适配器 adocmd = New OleDbDataAdapter(SearchSQL, DBStr)数据库适配器填充数据 adocmd.Fill(ds, TOrder)得到定单表数据 mytable = ds.Tables.Item(0)如果定单表为空则返回顶点处理失败信息 If ds Is Nothing Then Return (订单处理失败!) End If将定单信息添加到数据库 Dim newrow As DataRow newrow = mytable.NewRow newrow.Item(0) = CustomerName newrow.Item(1) = PreferShopMethod newrow.Item(2) = Address newrow.Item(3) = Tel newrow.Item(4) = ProductName newrow.Item(5) = ProductCount mytable.Rows.Add(newrow) cmd = New OleDbCommandBuilder(adocmd)更新数据库 adocmd.Update(ds, TOrder) Return 订单处理成功!对客户端发送的订单进行读取XML文件,使用到了System.Xml中的XmlTextReader类,对XML文件中的各个节点进行读取,并赋值给Order类中每个属性进行,充分体现了面向对象的思想。(3)事件二:GetOrder,即存储XML订单信息到数据库。Public Sub ReadXML(ByVal filename As String) Dim reader As New XmlTextReader(filename)循环读XML文件 Do While reader.Read Select Case reader.NodeType Case XmlNodeType.Element Select Case reader.Name当XML文件中出现用户名称这个字段时便写入 Case CustomerName reader.Read() CustomerName = reader.Value Case PreferShopMethod reader.Read() PreferShopMethod = reader.Value Case Address reader.Read() Address = reader.Value Case Tel reader.Read() Tel = reader.Value Case ProductName reader.Read() ProductName = reader.Value Case ProductCount reader.Read() ProductCount = reader.Value End Select End Select Loop关闭读取的数据流 reader.Close()End Sub6 订单处理系统的测试关于订单处理的测试,在设计时具体只考虑了XML文件测试的环节。当系统在存储了订单信息后便自动生成了一个XML文件,并保存在了D盘目录下的XMLFile文件夹下。测试的目的就是看生成的XML文件是否为有效的XML订单文件。下面以0246Order文件为例,其文件内容显示如下:云南发展公司包裹昆明市北京路75号5698714精装笔记本50 以上XML文件的意思为:昆明市北京路75号的云南发展公司,电话号码为5698714,以包裹的形式订购了精装笔记本50本。测试步骤如下:(1)在数据库中找到与XML订单内容相同的记录,并删除。图11 删除数据库中原订单内容(2)打开系统测试界面。图12 进入测试界面(3)输入测试的文件名称及正确路径。图13 输入测试XML文件路径(4)当系统提示为下图时,视为处理操作已经成功。图14 测试成功提示界面(5)测试之后再打开数据库查看记录,若刚才删除的记录又重新出现在数据表中,则说明测试成功。该XML文件视为有效。图15 测试之后数据库中记录(6)我们可以根据数据库中的自动编号这一栏,来查看通过用测试来录入的信息是否有效。根据图6-1和图6-5两者的比较,椭圆型框中的自动编号由19号变为了20号。这是因为数据库设计中把ID设置为自动编号,在删除了某条记录之后录入的信息是在此基础上序号加一的。这样就可以表明利用测试所录入的信息是成功的,此名为0246Order 的XML文件有效。7 设计与实现中的问题讨论在系统整体测试之后,该XML订单处理系统已基本达到了设计目的,实现了自动处理的功能。但该系统仍然存在以下几个主要问题:没有商品信息的显示,订单信息的录入仍然需要手工进行填写,没有达到方便快捷的目的;整个系统的结构不完整,不能确保厂商和客户信息的安全性;该系统没有针对性,没有具体的操作对象等。针对以上问题,我们将对该系统做出如下改进:(1)改进整体结构设计由于在设计初期只考虑实现订单的自动处理功能,该订单自动处理系统就只设计了发送、处理和接收三大模块,略去客户信息注册、登录等模块的实现。但在后期的系统实现中发现,每当客户发送一个订单时就要填写一次个人信息,这样的操作不但麻烦而且费时。虽然在填写时具有了信息保留的功能,一旦订单信息发送量较大较多的时候,也仍然为客户填写带来不便。所以在完善将来的系统中应添加上客户登录和注册模块。另外,订单的内容除了客户本身的信息之外,还有商品的信息,比如库存数量、价格、厂家等内容,这些内容应该是由接收订单的厂商或经销商来发布的,所以该系统还缺少一个商品信息发布的模块。在此模块中,客户通过系统来查看由程序员事先录入到数据库中的商品信息,就可通过现有的商品情况,来决定自己所需的货物数量。(2)改进数据表的设计一旦系统的总体结构发生改变之后,数据表也应做出相应的调整。把原有的数据表按照所属内容的不同,依次分为:客户信息表、货物信息表和订单信息表。其中,客户信息表中包括客户的编号(自动生成)、名称、地址、联系方式等内容;货物信息表则包括了货物的编号(自动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论