




已阅读5页,还剩63页未读, 继续免费阅读
北京邮电大学硕士论文西尔斯商品信息处理系统的设计与实现.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:西尔斯商品信息处理系统的设计与实现学号06R0438 姓名:姜毅, 专业za 软件工程导师:程保中学院z软件学院2008年9月工程硕士研究生学位论文题目:西尔斯商品信息处理系统的设计与实现学号=06R0438 姓名=羞羞专业z软件工程导师z程保中学院z软f生学院2008年9月独创性(或创新性)声明本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名th日期G止。0,1/. J). 关于论文使用授权的说明本人完全了解北京邮电大学有关保留和使用学位论文的规定,1lP:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅:学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。本学位论文不属于保密范围,适用本授权书。本人签名:j t _ 日期z二oa8, 1/. / 导师签名:会以主牛日期z立001骂产t2一西尔斯商品信息处理系统的设计与实现摘要随着互联网的普及,电子商务在得到快速发展的同时也改变了人们的生活方式,汇聚网络信息,提供优质服务已是大势所趋。本课题实现的是对大量的商品原始信息进行处理,利用处理所得的数据能够为所查询的商品名称提供最佳匹配信息,引导消费者购物。论文首先明确了系统范围,从系统的输入到输出将处理流程分解成若干步骤,接着对每个子功能进行了可行性分析,提出了各处理步骤的逻辑解决方案。在细化功能性需求和非功能性需求的基础之上,输出了系统架构图,并最终将系统设计为任务分配服务、信息分析服务和过程监控应用三大模块。其中分配服务和分析服务是系统的核心组成部分,保证服务能够正常高效地运转是准确生成平台数据的关键,论文中对这两个服务的设计思路及使用到的相关的技术进行了详细的论述。接着分别叙述了如何检查实现的正确性和安装部署系统。本系统利用XML描述任务内容,利用分配服务与分析服务的自动化处理,成功实现了服务间通信,同时也在主从数据库中实现了数据同步。在系统部署过程中,尝试以局域网中的PC作为分析服务的宿主。实验证明,这种部署方式不但大大加快了信息的处理过程,还充分利用了局域网中PC的处理器资源,降低了系统的整体运行成本。论文最后说明了系统中存在的不足和需要解决的问题。关键词:电子商务XML服务问通信数据同步DESIGN AND IMPLE伍NTATIONOFSEARS INFORMATION PROCESSING SYSTEM FOR MERCHANDISE ABSTRACT Along with Internets popularization, while eltronic comm町CCobtains fast development, it also chang臼ppleslife style. Gathering network in岛rmationand pro叽ding由ehigh-quality serviis ultimately. This topic will rea1ize the function 由atproc臼smassive commodi可primaryinformation, and then could use the processed data to provide optimum matching information to the commodity queried, and use the mode to guide the consum町shopping.le th岱ishas a clear de缸ition曲。时也esystem-wide, and叩litsproc臼singow to several steps岳臼ninput to output,由encarn铺也efeasibili可ana1ysisto 臼chsub-function and proposes logic solutions to each proc臼singst叩.Aft町analyzing function and non-也nctionrequirement, it forms architecture diagram where systn is consisted of thr四parts,出ey缸ebatch-s町vice,node-service and monitor applcation. The two servis are keys p缸tsin the whole syst臼ll.The由臼isus臼largequantity words to describe how to design and implement them. It a1so严。videsaway 曲oothow to check acc山玩买血现allthem and set configuration items. The systn us臼XMLto encapsulate tasks and starts batch-s町viceand Node Servito process work flow auto, at the same time, data is inserted into master and slave databases in order to make data synchronization in two kinds of databases. When system is d叩loyed,町toinstall node-s町viondi能rentPCs in loca1 ar创network. The running state proves it improves the proc臼S叩eedand uses PC CPU resource缸lly.The solution also decreases systems running st at由esame time. In the end, the th臼ispointed out issues and questions will be solved. KEY WORDS: Electronic commerce, XML, Correspondence between services, Data synchronization 目录第-章引言.1.1课题背景.11.2课题任务.11.3论文结构.2第二章开发平台及工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 MICROSOFf VISUAL STUDIO 2008.3 2.2.NETFRAMEWORK. 3.5.4 2.3 MYSQL.4 2.3.1 MySQL的应用与管理.52.3.2 MySQL存储引擎.52.4第三方动态链接库文件.山.62.4.1 MySql.Data.dll .6 2.4.2 OpenSmtp.dll.6 2.4.3 nw对t.岳缸nework.dll. . .6 2.5本章小结.川.川.6.第三章系统分析与设计. . . . . . . . . . . . . . . . . . . . 8 3川.1系统分析.二.83.1.1问题识别.83.1.2可行性分析.93.1.3需求分析.103.2系统设计.11 3.2.1系统主要模块划分.123.2.2系统用例图.133.2.3系统数据库.133.3任务分配模块的设计.163.3.1预处理的设计.163.3.2分配商品信息的设计.-.173.3.3定时处理的设计.193.3.4整理过程数据的设计.203.4信息分析模块的设计.203.4.1任务池的设计.213.4.2任务监听的设计.223.4.3处理接收信息的设计.233.5过程监控模块的设计.253.5.1处理模板文件的设计.263.5.2状态及数据监控的设计.273.6系统架构图.283.7本章小结.29第四章系统实现.304.1任务分配模块的实现.304.1.1预处理的实现h.304.1.2分配商品信息的实现.314.1.3定时处理的实现.334.1.4整理过程数据的实现.344.2信息分析模块的实现.354.2.1任务池的实现.354.2.2任务监听的实现.364.2.3处理接收信息的实现.374.3过程监控模块的实现.404.3.1处理模板文件的实现.414.3.2状态及数据监控的实现.414.4查询平台模拟.444.5本章小结.45第五章系统测试.46 5.1测试方案.465.1.1单元测试.465.1.2集成测试.475.1.3系统测试.485.2测试用例及结果分析.485.2.1自动处理模板文件.485.2.2任务分配.505.2.3算法分析.11 5.2.4过程监控.505.3本章小结.50第六章安装与部署.526.1制作安装包.526.2服务器/客户端环境配置.546.2.1数据库配置.546.2.2应用程序的配置.546.3本章小结.56第七章结束语. . . . . . . . . . . . 57 7.1论文工作总结.577.2问题与展望.58111 北京邮电大学软件工程硕士论文第一章引言1.1课题背景随着科技进步和社会发展,计算机软件已普遍应用于日常的生产生活。尤其是商业领域,软件系统随着不断升级的应用需求而日益庞大和复杂。同时也对软件的设计开发提出了更高的要求,以软件工程的知识体系为指导,设计出以最小的开发成本取得最佳的经济效益的软件系统成为行业应用领域所热衷的课题。西尔斯拥有庞大且细致的商品信息库和遍布全美的供应商网络,但由于数据结构过于复杂,长期以来并未能发挥出其商品信息的巨大潜力,只是单纯地通过提供一个网络购买平台和大量的商品信息,很容易让访问者迷失在纷繁的文字和图片的海洋中,而系统又缺乏对消费者的消费意向以及购物行为的智能引导,因此双方的有效互动便很难达到预期的效果。所以如何改造已有的信息结构,深层次挖掘其潜在价值便提上了议事日程.西尔斯高层深知电子商务的核心是网络和计算机技术,先进的技术及应用在开展电子商务中非常重要,因此希望以软件项目的形式解决这一难题,将信息技术整合到企业流程最有附加价值的地方,为现有及潜在客户提供全新的消费体验,同时形成公司业绩的新的增长点。此次选择的课题名为西尔斯商品信息处理系统,它是美国西尔斯百货公司电子商务平台建设工程中的一部分。通过处理从eBay和西尔斯现有商品库中读取的方式,向商品信息处理系统装载商品原始信息:至于处理所得的数据如何使用,是以在购物平台(位于商品信息处理系统的上游)进行商品名称的查询为驱动,将最佳匹配信息及链接呈现给来访者,以此引导消费。1.2课题任务论文从客户需求出发,细致地分析了实际的业务流程,发现为保证查询时能够获得足够有价值的信息,快速处理完商品原始信息是关键。同时需要验证的是将这些商品原始信息分配给周域网中的诸多PC来处理是否是一种可操作的实现方式。项目组成员依据以往的系统开发经验,为验证这种解决方案提出了一系列可行的建议。该方案在具体实施过程中将完成以下工作z1.开发出能够将商品原始信息分配到不同PC的Windows服务,并成功安装在服务器上:北京邮电大学软件工程硕土论文2.开发出能够对商品原始信息进行分析的Windows服务,并成功安装在PC上:3.开发-个桌面应用程序,用于监控处理过程中数据库状态、机器状态、商品信息状态以及统计处理数据:4.提供运行跟踪机制,将服务中关键步骤的执行情况输出到日志文件、运行过程中产生的异常和错误也反映在日志文件或者操作系统的事件查看器里。S.模拟在购物平台上进行商品查询的操作。系统预计将大幅度减轻西尔斯信息工作者的劳动强度,而且在信息处理的准确性上也会得到非常可靠的保障。管理者可以通过监控界面,在服务运行过程中手动配置服务所使用到的各项功能参数和性能参数,并且修正后的配置引起的变化能及时反映在后续的处理中。完成信息处理工作的各种算法的实现,横向彼此独立,纵向则以接力棒形式陆续对商品信息进行分析处理,为在购物平台上查询的商品名称提供最优的匹配信息列表。本系统的成功实现,将对具杳类似商品信息分析需求的卖场/零售业系统在业务实现和系统架构方面提供相当丰富的参考价值。本人在系统开发过程中担当了程序经理的角色,主要负责分配服务和分析服务的设计与实现、监控功能的实现以及部分过程文挡的编写,同时协助项目经理进行项目的日常管理工作。1.3论文结构论文共分7章,内容安排如下:第一章引言。介绍课题背景、任务以及预期目标。第二章开发平台及工具。介绍课题的开发工具和相关技术。第三章系统分析与设计。论述系统分析与设计的过程。第四章系统实现。论述系统各组成部分的实现过程。第五章系统测试。介绍测试方案、测试用例和测试结果分析。第六章安装与部署。介绍如何实施以及不同数据库的配置。第七章结束语。对论文工作进行总结,列出所取得成果,指出不足和改进方向。2 北京邮电大学软件工程硕士论文第二章开发平台及工具商品信息处理系统的核心是使分配信息服务、分析信息服务和处理过程监控成为一个通信畅通、运转高效的信息处理有机体。本系统基于Micros。由.NET2008IDE、C#语言开发,利用MySQL5.0版本数据库组建群集作为数据存储载体,并在解决方案中引入第三方动态链接库文件为系统功能开友提供支持。2. 1 Microsoft Visual Studio 2008 Visual Studio 2008是以最新版本Microso由.NET框架为开发系统的新一代开发工具,帮助开发团队在最新的平台上开发杰出的用户体验、进行灵活快速开发、实现生产效率新突破,并使开发团队更好地协作,以构建更为优秀的应用程序。WindowsServer 2则是新一代WmdowsS叮ver操作系统,集合并强化了微软历代服务器产品的优势,在帮助专业人员更好地控制基础设施的同时,提供前所未奇的可用性和管理功能,实现更安全、更可靠、更强大的服务器环境.这两款产品的发布必将在全球范围内给产业带来巨大的影响,引导业界的新一轮创新热潮。戴尔、惠普、IBM以及联想等业界合作伙伴均表达了对微软未来产品及与微软合作的坚定信心。作为新一代开发工具,Visual Studio 2008能帮助开发团队在最新的平台上开发杰出的用户体验,同时,通过进行灵活快速开发实现生产效率新突破,并使开发团队更好地进行协作:从建摸到编码和调试,Visual Studio 2008对编程语言、设计器、编辑器和数据访问功能进行了全面的提升,确保开发人员克服软件开发难题,快速创建互连应用程序;Visual Studio 28为开发人员提供了一些新的工具,在最新的平台上快速地构建杰出的、高度人性化用户体验的和互联的应用,这些最新平台包括Web、WindowsVista、Office2007、SQLS町V町2008、WindowsMobile和WindowsServer 2008; Microsoft Visual Studio Team System 2008提供完整的工具套件和统一的开发过程,适用于任何规模的开发团队,帮助所有团队成员提高自身技能,使得开发人员、设计人员、测试人员、架构师和项目经理更好地协同工作,缩短软件或解决方案的交付时间。微软公司大中华区开发与平台技术部总经理NigelBurton表示VisualStudio 2008的即将发布,对开发团队、企业以及整个业界来说都有着举足轻重的意义。它能降低软件开发的复杂性,提高团队开发效率,并能提供杰出的用户体验,特别是Web的应用,因而大大提高客户的满意度。此外,Visual Studio 28 更提供了一个广泛的可扩展的支持体系,为企业提供统一的方法来检索和更新几3 北京邮电大学软件工程硕士论文乎所有类型的数据,可以说,Visual Studio 2008已经不仅仅是一系列开发工具,更是具有极大商业价值和管理效用的综合性产品,它将成为未来开发团队赖以成功的重要开发环境。Visual Studio 2008特别含有Expression这个软件,可以帮助网页设计人员,简化页面的开发过程,另外,它还引入了LINQ(Language Integrated Que可),改进开发与调试。LINQ可以简单理解成为一种编程语言,可以简化设计者在设计过程中所要编写的代码数量,从而降低工作量和成本。Visual Studio 2008目前包括VisualStudio 2008 Professonal、VisualStudio Team System 2008、VisualS阳dioTeam Foundation Server2008三个主要版本及其它诸多细分版本,为用户提供了全方位的选择。2. 2 .NET Framework 3.5 Microsoft .NET Framework从1.0至3.5经历了数个版本的变迁,其中亦不乏重大的革新。.NETFramework 2.0引入了泛型概念,更加清晰地诠释了面向对象编程的概念.NETFramework 3.0则加入了4个功能组件和新颖的语言特性.NETFramework 3.5又在编程语言模型中内置LINQ数据查询模型,并且兼容.NETFramework 2.0和.NETFramework 3.0 ,同时还提供了若干针对.NETFramework 2.0和.NETFramework 3.0的修补程序。.NET Framework 3.5基于.NETFramework 3.0中增加的新功能,以增量方式构建。举例来说,这些新功能包括WindowsWorkflow Foundation (WF)、WindowsCommunication Foundation仰CF)、WmdowsPresentation Foundation (WPF)和Windows CardSpace.此外,.NET Framework 3.5还包含若干技术领域中的许多新功能。这些新功能己作为新的程序集添加,以避免重大更改。这些新功能包括:非与语言集成查询(LINQ)和数据感知紧密集成。利用这一新功能,将能够通过使用相同的语法编写用启用LINQ的语言编写的代码,以便筛选、枚举和创建多种类型的SQL数据、集合、XML和数据集的投影。*利用ASP.NETAJAX可以创建更有效、更具交互性并且高度个性化的Web体验,这些Web体验可以跨所有最流行的浏览器工作。申新的用于生成WCF服务的Web协议支持包括AJAX、JSON、REST、POX、RSS、ATOM和若干新的WS-*标准。丰针对WF,WCF和WPF的完整工具支持,其中包括新的启用工作流的服务技术。2.3MySQL 4 北京邮电大学软件工程硕士论文MySQL是一个关系型数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的各型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点而受到广泛青睐。MySQL使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性:支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统:为多种编程语言CC、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等)提供了API;支持多线程,充分利用CPU资源:优化的SQL查询算法,有效地提高查询速度:既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的ShiftJIS等都可以用作数据表名和数据列名:提供TCPIIP、ODBC和JDBC等多种数据库连接途径:提供用于管理、检查、优化数据库操作的管理工具并且可以处理拥有上千万条记录的大型数据库。MySQL公司目前在同时开发两个版本的软件,4.1版以及5.0版。MySQL4.1版本中增加了不少新的性能,包括对主键的更高速度的缓存,对子查询的更好的支持,以及基于地理信息的查询.而其同步开发的5.0版本则把目标对准了企业用户,对于4.1版本中的所有新特性,5.0版本悉数收入囊中,并且独具以下特点z对外键的良好支持z系统自动捕错机制以及对存储过程充分支持。2.3.1 MySQL的应用与管理MySQL的应用包括z单点(Single),适合小规模应用:复制(R叩lication),适合中小规模应用:集群(Clust时,适合大规模应用。与其他的大型数据库例如Oracle、DB2,SQL Serv叮等相比,MySQL自杳它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般应用来说,MySQL提供的功能己经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。同时,MySQL的管理方式也非常丰富。可以使用命令行工具管理MySQL数据库(命令mysql和mysqla,出血时,也可以从MySQL的网站下载图形管理工具MySQLA缸rinistrator和MySQLQuery Brows目进行日常管理与维护。2.3.2 MySQL存储引擎MyISAM: Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务。InnoDB:事务型数据库的首选引擎,支持ACID事务,支持行级锁定。BDB:源自B町keleyDB,事务型数据库的另一种选择,支持COMMIT和5 北京邮电大学软件工程硕士论文ROLLBACK等其他事务特性。Memory:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在My.吨1重新启动时丢失。Merge:将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用。Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的捕入速度,但其对查询的艾持相对较差eFederated:将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用。ClusterlNDB:高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。CSV:逻辑上由逗号分割数据的存储引擎。Blac趾Iole:黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继。另外,Mysql的存储引擎接口定义良好。开发者可以编写自己的存储引擎。2.4第三方动态链接库文件以下第三方引用在项目中分别用于数据访问层,业务逻辑层以及编码/单元测试。2. 4. 1 MySql.Data.dU MySql.Data.dll是.Net访问MySQL数据库的一个驱动,完全A.NET数据访问模式,由MySQL官方提供,有多个版本可选择最早使用的环境为.Net2.0+ MySQL5.x + MySQL.da:幅.dll1.0工随着系统升级和版本的更新,现在最新版本分别是1.0.10 , 5.0.8 , 5.1.份。其中ConnectionTimeout和CommandTimeout等属性均为开发者提供了可读可写操作,而最初版本只提供只读操作。2. 4. 2 OpenSmtp.dU 该文件来源于OpenSMTP.NET这个开源的组件,OpenS是一款用CSharp编写的开源SMTP组件。它并不依赖与.NETFramework里的Systern. Web.Mail类,而且还具有以HTTP方式发送邮件的Web服务功能。2.4.3 nunit.framework.dU 6 北京邮电大学软件工程硕士论文该文件来源于NUnit框架。NUnit是一款堪与JUnit齐名的开源的回归测试框架,供.net开发人员做单元测试之用,可以从网站上免费获得。在下载时,会看到NUnit2.2.0版有NUnit-2.2.0.rnsi、NUnit-2.2.0-rnono且p、NUnit-2.2.0咽口ip等三个文件的下载连接,分别是WIN(供.net平台使用)、MONO (供MONO平台使用)以及SRC(源码)0 NUnit-2.2.0-rnono.zip压缩包中己含有源码,下载NUnit-2.2.0-rnono.zip后,可将该文件解压备用。当编写用于测试的类后,可以继续编写与之对应的测试用例。在NUnit中,用来实现测试用例的方法有两种手段进行标识:一个是以tes仅虹的格式来命名,一个是使用Test属性进行标识。此外,还有Init和Dispose这两个方法,并分别使用TestFixtureSetUp和TestFixtureTearDown属性来进行标识,前者在每个测试方法开始之前执行,多用来做初始化:后者在每个测试方法完成之后执行,多用来清理资源。注意,这两个方法的名称并没有什么限制,但必须用TestFixtureSetUp和TestFixtureTearDown属性进行标识。2.5本章小结目前应用于企业级项目的主流开发平台有Micr回0茸的.NET和Sun的J2EE,两种平台都有各自与之搭配的最新开发语言和数据库产品。作为世界最优秀的软件公司,Microsoft近年来不断推出赋予新特性的开发平台和相关技术为用户带来了从视觉到细节的全新体验。从MSVS28支持和优化不同项目类型的解决方案、.NETFramework 3.5强大的支持类库、C#3.0从语言和编译器的角度提供了更易于理解和使用的编程特性和MySQL数据库开放源码以及使用成本优势等方面来看,都为系统的开发与应用提供充分的支持和保障。7 北京邮电大学软件工程硕士论文第三章系统分析与设计系统分析是根据用户的要求,运用科学的方法提出问题和解决问题的过程,是软件开发前期的重要工作。系统设计是在系统分析的工作成果上将进行概要设计以及详细设计的工作。在进行系统设计时,不仅要考虑软件的功能性需求,还要考虑非功能性需求,比如软件的安全性、可靠性、可扩展性、可维护性、是否易于使用等。3.1系统分析系统分析在充分认识原信息系统的基础上,完成新系统的逻辑模型设计,解决系统做什么的问题。这项工作在很大程度上决定了系统开发工作的成败。3.1.1问题识别问题识别的基本任务就是明确系统要做什么、解决的问题是什么。原有的西尔斯系统与客户的期望还有很大的差距,具体表现在:1.现有的商品信息的管理定位在日常维护方面,包括新增、修改、删除、导入导出等基本功能;2.需要处理的商品信息来源不一,却没有统一的格式定义,即使全部获得也无法直接使用:3.现有的商品信息需要经过二次加工才能达到可以处理的要求。带来的问题是,对于有变化的商品信息,需要同时在维护系统和二次加工前进行更新方可处理,效率低下:4.目前二次加工的过程不是自动处理的过程,需要消耗大量的人力资源去完善二次加工的模板。由于信息量巨大,所以只能是人工有选择性地处理部分商品信息,影响了信息处理后的相互间关联性,导致有价值的信息不足;5.每天涉及到大量的商品信息变更,缓慢的处理速度瓶颈越来越明显。以上这些现状是不能满足消费者在查询商品时能够获得最佳匹配信息要求的。因此,就需要商品信息处理系统能在商品信息准备和信息处理数据的使用之前能起到承上启下的作用,通过商品信息生成器(另行开发)对原始商品信息进行二次加工,形成具有统一信息格式的商品信息,快速地完成商品原始信息的处理过程,用完整详尽的数据支持前台消费者的查询操作,解决目前存在的诸多问题。同时,自动化的处理过程可以裁撤人工处理的环节,从而节省系统运行的整体成本。8 北京邮电大学软件工程硕士论文3.1.2可行性分析可行性分析是普遍采用的一种研究工程项目是否可行的科学。它通过各种有效的方法,对工程项目进行分析,从技术、经济效益、财务等方面加以评价,最终给决策者提供是否可以对该项目进行投资的依据。可行性分析要着眼于现有资源的有效利用,提出多种选择方案,并对各种方案作经济比较,站在中立客观的立场上得出结论。为了解决上述遗留问题,西尔斯已经完成了商品信息生成器的开发。目前客户方所能提供的资源有:*足够的高硬件配置的服务器用于支持商品信息处理系统:*西尔斯局域网中的所有PC;*内部己经用于维护西尔斯商品信息的MySQL数据库和维护系统,用于部分信息的参照比对:*商品信息生成器。根据上述的软硬件环境,结合需要解决的问题,共提出了三种可行的备选解决方案=1.使用DigipedeNetwork套装软件这是在市场上已经使用的一套覆盖服务器、数据库、客户端部署的解决方案,由美国DigipedeNetwork公司开发,共四部分组成zDigipedeAg四s一可以管理Nod臼以及运行其上的任务。TheDigi网eServer一控制系统的工作流程。Di国pedeC侃.trol一运行在服务器上的Web应用,提供对系统的可管理的UI。The Digipede Workbench一通过它用户可定制并运行任务。该软件的功能组合有理论上可以实现对系统的提出的功能,但同时也会增加一个Web应用和一个SQLS即町2005数据库,该数据库是Digipede的基础,表结构相当复杂,还有相当数量的有关实现逻辑的存储过程及视图,对Web和数据库的维护人员要求很高。2.基于DigipedeNetwork提供的接口文件开发这种方案的好处是无需整体购买DigipedeN etwork的套装软件,可以节省部分正版软件购买费用,开发人员通过对相关资料的研究可以进行二次开发。但由于部分DLL文件将对MSSQL Serv町操作的语句和相关函数的使用嵌入其中,所以仍需使用到SQLServ町25数据库。3.自主开发由开发人员自行分析系统的需求,并完成设计与实现。利用MySQL开源的优势,无需增加购买其它软件的费用,同时也与原有系统的数据库类型保持一致,9 北京邮电大学软件工程硕士论文避免数据迁移过程中因数据类型定义不一而导致数据无法使用。总体看来,第一种方案相对快捷,但在成本和扩展性上处于劣势:第二种方案在软件购买成本上优于第一种,但开发人员需要专门研究DigipedeN etwork的API,部分定制功能的实现有可能受到制约:第三种方法由于是自主开发,实现和扩展相对更为灵活方便,且无需增加额外的正版软件购买和维护费用,因此作为首选的解决方案。3.1.3需求分析需求分析过程是软件工程中的一个重要的部分,它是保证项目满足客户需求和软件产品设计与实现的前提,是使项目圆满完成的必要条件。分析的根本目的是在开发者和客户之间建立一种理解和沟通的机制,不受技术方案或细节的限制。在分析阶段,不应该过多考虑代码和程序的问题。因此,它是迈向真正理解需求的和所要设计的系统的第一步。根据客户的设想,一旦商品信息生成器开始工作,每时每刻都可能会有大量的商品原始信息装载到系统数据库,需要及时处理这些信息。商品信息生成器的完成,解决了不同来源的商品信息的二次加工和格式不统一的问题,因此当前焦点自然就集中在装载后的商品信息自动化处理上了,需要重新设计实现对商品信息的处理方法,改变由大量人工参与的执行方式。现在要做的是将这些信息看作是待处理的任务,由管理员负责分配给局域网中的不同PC去完成。在分配开始前,需要确定可以用于处理的机器,以及每台机器设置最大处理任务数和并发处理任务数,并且可以在分配开始后的任意时刻增加新机器和删除老机器。分配开始后,所有的PC既可以被动地接收商品信息也可以主动去取分配给它的信息来处理。在服务器和PC都开始工作后,需要有一个桌面应用程序的负责监控处理过程中信息任务分配的状况、PC处理的进度、数据库连接是否良好、分配和处理过程所产生的错误和异常等信息。另外,桌面程序也要支持分配商品信息给PC的功能的操作以及维护分配和处理过程中用到的各种性能参数和功能参数。处理后的数据应当较原来在实时性和完整性两方面有了很大的提高,对消费者在位于下一环节购物平台上查询商品时提供最优的匹配信息及链接,从而引导消费。基于西尔斯电子商务平台系统的整体构建需求,对现有环境进行综合分析后,设计出的数据流图如图3-1所示。10 北京邮电大学软件工程硕士论文|e问网胁|时|品t已装毒t商品信息国3-1数据流图巴虫i 从数据流圈中可以看出,西尔斯与消费者之间的交互是通过商品信息生成器、商品信息处理系统和购物平台三者的协作来完成的,商品信息处理系统在其中起到承上启下的作用西尔斯日常维护的商品信息和eBay上的商品信息都有各自的组织形式,商品信息生成器的作用就是加工来源不同的商品信息并形成统一格式的记录装载进商品信息处理系统.处理系统将处理后的数据存入处理信息库中,供购物平台使用。购物者登录平台后,以查询商品名称的方式调用已经处理的商品信息,并将最匹配的文字、图片、视频和链接等信息展现在图形用户界面上,引导消费者购物。3.2系统设计系统设计是在系统分析提出的逻辑模型的基础上,科学合理地进行物理模型的设计。与逻辑模型主要确定系统做什么不同,物理模型主要解决的是怎样做的问题。从系统分析到系统设计是一个由抽象到具体的过程,有时并没有明确的界限,甚至可能有反复。经过系统设计,设计人员应能为程序开发人员提供完整清楚的设计文档,并对设计规范中不清楚的地方做出解释。课题基于西尔斯电子商务平台建设这个大背景的设想,从图3-1所示数据流图中的商品信息处理环节入手进行分析、设计与实现。因此,本章设计部分的内容主要针对商品信息处理系统的设计工作中的总体设计、数据设计和处理过程设计加以论述。11 北京邮电大学软件工程硕士论文3.2.1系统主要模块划分从功能上划分,本系统可以分成三个模块,如图3-2所示。商晶信息处理系统过程监控模块信息分析模快分配任务模快状态数据监控处理商品楼板处理接收信息任务监听初始化任务地整理过程数据定时处理分配商品信息预处理图3-2系统模块划分1、任务分配模块。该模块主要包括za)预处理操作:记录分配开始时间、加载配置信息、更新商品处理状态、统计不同商品的数量。b)分配商品信息z确定各分配批次的处理机器,筛选出该批次将被处理的商品记录,并将这些记录与机器进行绑定,形成各批次不同机器的任务队列:c)定时处理操作:该功能包括定时进行邮件发送、部分历史数据删除和数据恢复上等操作:d)整理过程数据:当任务完成后,将有关任务编排的中间过程数据清除,将任务队列表中的任务数控制在一定范围内。2、信息分析模块。该模块主要包括:a)创建任务池:初始化本机任务池,用以管理本机处理的所有任务;b)新任务监听:机器在设定端口监昕是否有新任务到来,有则转入处理接收信息的流程:12 北京邮电大学软件工程硕士论文c)处理接收信息:机器最初是以被动接收的方式处理分配给本机的商品信息的。若机器处理迅速,在下一轮任务到来前已经完成所有任务,那么机器也可主动地取任务队列中已经分配给本机的信息进行分析,保证处理的连续性:3、过程监控模块。该模块主要包括:a)处理商品模板z由客户提供16份模板文件,利用信息分析模块的功能先行处理。处理所得的数据将在后续商品信息处理时被使用;b)状态及数据监控:该功能包括监控任务分配和处理过程中所使用到的数据库是否保证连接畅通、所有参与处理的机器是否能够正常工作、商品信息当前的处理阶段、产生的错误以及整体处理进度等数据。3.2.2系统用倒圈系统用例图基本能反映出系统所提供的功能,主要的参与角色有服务器管理员、终端PC。如图3-3所示.监控注穗世据图3-3系统用例围从上图中可以看出,管理员可以维护系统中的配置信息,并对分配任务进行管理,当任务分配开始时,就可以监控处理过程中的状态和数据。分配任务的功能主要是将未处理的商品信息与可利用的机器进行绑定,并触发不同的终端PC处理分配到本机的商品信息。3.2.3系统数据库对该系统数据库的要求有别于其它系统,客户要求的要求是z*将基础信息、商品信息、任务信息与处理后所得的信息分库存放:丰对于处理所得的信息,根据商品类型的不同也需要分库存放:申鉴于处理后的信息的重要性,在处理过程中需要将同样的过程数据再次分13 北京邮电大学软件工程硕士论文库存放。因此在数据库设计过程中,主要从结构和性能两方面着手。将系统所用到的数据库分为7组,共计12个,如图3-4所示,它们分别是:Comctl组(中心数据库,存放基础信息,1个); Batch组(司职任务分配,1个); Node组(商品信息数据库,2个); Arc组(算法数据库,2个): Concept组为Query查询提供数据,2个): Context组(为B-Query查询提供数据,2个)Widget组(为Java团队提供数据,2个)。回踵的forma忧X1_schema回国arc:-lE iI arc-2 囚fIbatl:h 臼噩mt1回.CCIIlQi!Pt-l l回回阶2囚acor也xt-l回con1Ext-2 回国my叫l回疆n:ide-l因S耐8-2自g田t回疆w盹181Elw眈18曰图3-4系统数据库(MySQL自带数据库除外)各组内的数据库结构保持一致,各组间又彼此保持独立,部分表结构及表间关系如图3-5所示.所以提出的数据库设计方案支持最多可以部署在12台不同的数据库服务器上。14 北京邮电大学软件工程硕士论文困3-5数据点设计片段考虑到实现及将来的应用中会使用到数据库的连接信息和数据库的部署数量,设计时约定这些数据库中只有基础数据库的连接信息对外公开,其余数据库连接信息均保存在基础数据库的集群表中,对基础数据库的使用账号只保留读数据权限,且不可访问集群表,保证各数据库连接信息的安全。当有大量数据写入数据库时,以万条记录为单位进行提交:一般情况下,进行数据读操作时,保证千万数据级单表查询3秒内结果响应、千万数据级表关联查询7秒内结果响应。在设计表时,每张数据表中都设有主键,并对频繁查询的表的字段有针对性地使用了普通索引和组合索引,结合索引的使用原则与优化方式,提高大数量情况下的查询速度:在有逻辑关系表与表之间,都设有约束关系:由于各个数据库的具体部署位置不确定,所以存储过程中涉及到跨数据库表的操作就无法按照部署在同一机器上的库名.表明的方式书写,因此宁可增加实现的复杂度也必须保证存储过程中的表的独立性,简言之就是数据表跟着数据库走,存储过程里出现的表必须在当前数据库中,不同库中的表必须摒弃。15 北京邮电大学软件工程硕士论文3.3任务分配模块的设计任务分配是系统的核心模块,主要包括分配开始前的数据准备、分配任务过程中的流程、任务在完成后对部分中间数据的整理和一些需要做定时处理的操作。该模块的输入是以artifact为前缀的数据表中商品状态值为未完成处理的商品记录以及机器表中机器状态值为可以工作的机器记录。目标是让每一条未处理的商品信息与一台可利用的机器在任务队列表中关联并保存,并以发送任务的形式触发机器处理接收信息。该模块在分配任务期间,还必须定时地进行其它的一些处理工作,每次处理的时间间隔都是可以维护的,比如将分配处理过程中产生的错误信息以邮件的方式发送给不同角色的人员、清理过期数据和执行数据恢复操作。设计后的该模块活动图如图3-6所示。分配任务困3-6任务分配活动图3.3.1预处理的设计16 e 北京邮电大学软件工程硕士论文预处理是指在正式开始分配任务前所做的一组操作,具体的执行过程大致可以设计为以下三个步骤:1)预处理的工作是记录下本轮分配的开始时间,在所有任务完成后再记录下结束时间,便于统计处理完本轮的任务数量所花费的时间。2)从配置表中加载分配过程中要用到的配置信息到内存中。存储这些相对固定的参数值的都是一次加载便可多次使用的全局性变量,目的是避免多次访问配置信息表.3)最后需要考虑到的是分配过程中商品记录的状态值问题.为保证信息能够快速处理,该模块的功能在启动后将是一个可以连续分配任务的过程,同时也是一个可以控制的过程。必须保证管理员可以根据需要在任意时间启动或者是终止分配动作,而对所有商品的后续处理不产生影响。比如,一些机器在信息处理过程中由于各种原因导致处理中断,因此商品状态将会始终保持10Process状态,而在新一轮分配开始后需要将这些信息分配给其它机器去处理,所以必须将状态置为待处理方能继续处理。该子模块用到的数据表如表3-所示z表3-1系统配置表(sysconfigparam )结构字段名类型说明Name varchar (64) 主键,配置项名称Yal l1e varchar(64) 配置项的值Description varchar(512) 配置想描遥信息.包括配l置值的类型和用途。3.3.2分配商晶倩息的设计该系统的主要功能是处理商品信息,商品信息虽因类型不同分散地存储在不同的商品表中,但这些表的表结构却基本保持了一致,为检索出需要处理的商品记录提供了方便,这是启动分配进程的前提。该子模块的功能描述虽然简单,但要能正确实现却需要考虑到方方面面的情况,因此将该过程设计为以下七个处理步骤:1)前期检查:主要是对处理信息库所在服务器的CPU使用率和其它数据库状态的检查。当CPU使用率达到一定数值(如70%),该子模块将进入暂时休眠状态,体眠时间可配置,直至使用率回落并稳定后方能继续发送任务而对其它数据库的检查则针对备份数据库,如果备份数据库正在执行数据同步操作,则需等待操作的完成,避免产生的新数据影响历史数据的还原:17 北京邮电大学软件工程硕士论文2)选择机器:理论上局域网中凡是具有商品信息分析功能的机器都是可以使用的,但实际中却很少如此操作。为此,可以设计出一份候选机器清单文件,以XML格式描述,每台PC可以出现多次,用来表示能够并发处理的任务数量,这样可以加快信息的处理速度,与快速处理商品信息的需求可谓不谋而合:3)刷新状态:刷新机器状态(长时间未响应任务处理)、刷新任务状态(删除有影响的任务记录)和刷新商品信息状态(由于机器无法使用而导致尚在处理中的信息的状态复位); 4)筛选信息:从不同的商品表中筛选出符合处理条件的商品倍息记录:5)存入数据表z信息与机器后关联存入任务队列表,存入的商品记录状态更新为Ready(表示该记录已经分配); 6)选择Ready信息z确定列表中属于不同PC的状态为Ready的记录:7)发送信息:将商品编号靠前的若干记录打包(根节点为(/Task的XML格式信息)发给绑定的机器去处理。该子模块用到的数据表如表3-2、表3-3、表3-4所示z表3- 2 Art ifact类商品信息表(缸世fact*叫结构字段名类型说明ArtifactID int(lO) unsigned 主键。通过申请获得Name varchar (128) 名称Location varch町(128)文件存放路径Type smallint(5) unsigned 类型IDSubTypeID smallint(5) unsigned 子类型IDState smallint(5) unsigned 状态Content varchar(7000) 内容IsBad sllla11 int(5) 是否存在脏词.默认O(否)Source V町char(45)信息来源UpdateTime tmesta皿p更新时间ProductID varchar(45) 商品IDParentID int (10) unsigned 父类信息IDReferenceID int (10) unsigned 引用IDPrice varchar (45) 价格ReProcess smallint (5) unsigned 是否重新处理。默认O(否表3- 3 ApiLog类商品信息表(apilog)结构撒一类型int (10) unsigned 得获请由甲过通明-键说一主18 北京邮电大学软件工程硕士论文Content varchar(70) 信息内容Status small int (5) unsigned 状态CreateTi me timestrunp 创建时间UserID int (10) uns igned 所属用户RequestCode varchar (50) 请求代码Artifact类商品表中部分字段属于扩展宇段,目前系统中并未全部使用。字符型默认为空,数值型默认为0。表3-4任务表(artifactjoblist)结构字段名类型说明SeqID int(10) unsigned 主键。自动递增ArtifactID int (10) unsigned 商品信息IDTypeID smallint(5) unsigned 类型IDAlgoritl1lllID 晦allint(5)unsigned 算法四Status varch6r(IO) 任务当前状态AssignedID varchar(36) 机器唯一标识二其中任务状态的取值范围为:己分配CAssigned),处理中CIn Process) , 己完成(Finished)和失败(Failed)。3.3.3定时处理的设计在进行任务分配的同时,还有一些操作也在以一定的时间间隔进行着,比如上文提到的发送邮件、清理数据以及数据恢复。将这些操作都设计为以独立线程的方式并发进行,这样可以保证彼此间不会相互干扰。发送邮件功能设计z定义了三种类型的邮件,分别用来描述机器停止工作、主数据库服务器CPU使用率过高和商品信息处理错误。将错误信息写入发送邮件的模板中后发送,同时记录下发送出的邮件信息,每次发送操作的时间间隔设为30秒。相关数据表如表3-5所示:表3-5邮件信息在(email )结构字段名类型说明MailID int( lO) 主键。自动增长Mai1TitIe varch叫256)邮件标题MailContent varchar(5) 邮件内容19 北京邮电大学软件工程硕士论文MailSender varch叫50)邮件发送者邮箱MailSendTime timest缸np发送时间MailReceiver varcl叫50)邮件接收人MailType smallint(5) 邮件类型其中邮件类型的取值范围为:商品信息处理失败(0),机器停止工作(1), 和主数据库服务器CPU使用率过高(2)。清理数据功能设计z每天在设定的时间进行一次清理操作,清理时间可配置.保持会随着处理商品数量的增加而自身数据量迅速增长的Concept表的记录数不大于设定值。数据恢复功能设计z当某些数据库的当前状态为可执行同步操作时,读出该库对应的日志文件夹里的SQL脚本文件内容,并按照文件生成时间的先后顺序依次去执行,对于不能成功执行的文件内容,则将该文件一起移至该文件夹中的临时文件夹中:若全部执行成功,则将该文件删除每次检查数据库状态的时间间隔设为20秒。3.3.4整理过程数据的设计该子模块所说的过程数据指的是任务编排数据。在任务分配模块的设计中,引入任务的概念,把商品信息的处理过程设计为任务的执行过程。就完成处理和更新商品状态这两个最终目标而言,与任务的概念并无过多的直接联系。因此当目标完成时,表3-4中预先编排的任务状态为完成(/Task为根元素的XML任务信息,经过模块中一系列算法的处理,并与已经存在的处理信息数据做最优化比较,提取出商品描述信息中的主题词汇,和这些词汇相关的词组语句内容都会被存入不同的数据表中,并能在前台Web上的查询中还原出完整商品20 北京邮电大学软件工程硕士论文信息。比如,一条关于西门子空调的商品信息在经过处理后,就会得到诸如siemens、airconditioner等主题词汇,如果处理信息库中还没有该品牌空调信息或者已有的信息不如这条信息详尽,那么消费者在Web上查询该品牌空调时,此信息将作为最优匹配信息呈现给消费者。为实现上述处理过程,该模块必须具备以下主要功能:监昕是否有新任务到来、完整接收商品信息、正确执行分析信息的过程、完善的异常处理机制和定时更新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 党务面试题目及答案
- 电工分数考试题及答案
- 才华礼物测试题及答案
- 产品公司面试题及答案
- 如何找到适合团队的管理工具计划
- 2025年会计实务高频考点试题及答案
- 财务管理考试心得体会总结试题及答案
- 财务管理中的成本效益衡量标准试题及答案
- 2025年工程法规考试应试策略试题及答案
- 财务管理实施中的常见误区试题及答案
- 北京2025年国家大剧院招聘24名专业技术人员笔试历年参考题库附带答案详解
- 2024建安杯信息通信建设行业安全竞赛题库及答案【三份】
- 2025年信息系统管理知识考试试题及答案
- 中介股东合同范例
- 2025年上海市松江区中考数学二模试卷(含解析)
- iso28000-2022供应链安全管理手册程序文件表单一整套
- (正式版)SHT 3551-2024 石油化工仪表工程施工及验收规范
- 周三多-管理学:原理与方法(第七版),第三章
- 外墙脚手架搭建规范
- 机械制造技术基础(第7章完成)课件
- 主动脉夹层护理查房-PPT课件
评论
0/150
提交评论