• 2.10 MB
  • 2022-05-14 15:45:07 发布

基于.NET多层架构的地区级客户管理系统设计与实现硕士学位论文

  • 63页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
专业硕士学位论文基于.NET多层架构的地区级客户管理系统设计与实现RegionalCustomerManagementInformationSystemofMultilayerArchitectureby.NETPlatformDesignandImplementation 毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。作者签名:日期:毕业论文(设计)授权使用说明本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名:指导教师签名:日期:日期:iii 注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它iii 北京交通大学专业硕士学位论文基于.NET多层架构的地区级客户管理系统设计与实现RegionalCustomerManagementInformationSystemofMultilayerArchitectureby.NETPlatformDesignandImplementationiii 北京交通大学专业硕士学位论文中文摘要中文摘要随着我国经济的飞速发展,国有企业逐渐做大做强,分公司和子部门的逻辑业务越来越多,总公司的一整套业务逻辑已经不能满足实际情况的需要。为解决这一类问题,作者以SQLserver2008为数据库,在.NET平台上设计出一套适用于地区级的客户管理系统并撰写本论文。本论文主要完成以下工作:(1)本选题来自于中国中冶集团北京分公司的实际工程需求。在对中国中冶集团北京分公司、南京分公司的调研基础上,针对对国有企业子公司设计地区级客户管理系统进行需求分析;(2)本文在分析与研究后,在众多技术方案中选取SQLserver2008为数据库,在.NET平台上开发系统。实现了对用户管理、权限管理、客户常用信息、合同管理、订单管理、销售情况及系统维护等功能,实现了地区级客户管理的系统化、规范化和自动化,提高企业的管理效率;(3)该系统本系统特色在于设计时采用多层架构,降低业务逻辑与代码实现之间的耦合性,提高了系统的可扩展性和可维护性,并考虑到访问的安全性,使本系统具有可扩展、易管理、易维护等特点。目前,该系统已经发布,并在中国中冶集团北京分公司应用试运行。关键词:地区级客户管理系统;.NET平台;多层架构;服务器缓存分类号:TP311.551 北京交通大学专业硕士学位论文ABSTRACTABSTRACTWiththerapiddevelopmentofChina"seconomy,thestate-ownedenterpriseswhichbecomebiggerandstrongerownmanybranchesandsub-sector.Somanybusinessesofthebranchesandsub-sectoraredifferentlogicfromtheCorporation.Thispapermainlycompletedthefollowingwork:(1)Thispaper’saimbaseonthepracticalengineeringrequirementsfromtheBeijingandtheNanjingbranchofInChinaMetallurgicalGroup.Onthebasisoftheresearch,tostate-ownedenterprisesubsidiarydesignRegionalclientmanagementsystemneedsanalysis;(2)Accordingly,theauthorattemptstodesignthesoftwareforregional-levelcustomermanagementsystem,whichisusedbySQLserver2008forthedatabaseandbasedon.NETplatform.Thesystemofthemultilayerarchitecturehasuserinformation,privilegesmanagement,customerinformation,contractmanagement,salesmanagementandmaintenancefunctionsandimprovesthemanagementefficiencyofenterprises;(3)Thesystemadoptedinthedesignofamulti-tierarchitectureisdescendingonbehalfofthecouplingbetweenthebusinesslogicandcodeimplementation.Thedesignimprovessystemscalabilityandmaintainability.Thesystemhashighefficiency,largestorageandeasytomanage,easymaintenancefeatures.Atpresent,thesystemhasbeenreleased,andrunninginBeijingbranchofChinaMetallurgicalGroup.KEYWORDS:thesoftwareforregional-levelcustomermanagementinformationsystem;NETplatform;multilayerarchitecture;servercacheCLASSNO:TP311.551 北京交通大学专业硕士学位论文目录目录中文摘要iiiABSTRACTiv目录v1引言12需求分析22.1市场需求22.1.1概述22.1.2目的22.1.3范围32.2功能需求32.2.1系统功能描述32.2.2管理员对功能的需求42.2.3合同部人员对功能的需求42.2.4销售部人员对功能的需求52.2.5客户部人员对功能的需求52.3技术需求52.3.1软硬件环境需求52.3.2性能需求62.3.4可维护性和可扩展性62.3.5实用性、操作性原则62.3.6安全需求62.3.7数据需求73系统分析83.1系统功能模块划分及分析83.1.1用户管理模块93.1.2用户权限管理模块93.1.3客户管理模块103.1.4合同管理模块113.1.5订单管理模块1251 北京交通大学专业硕士学位论文目录3.1.6销售统计模块143.1.7日志服务管理模块153.2技术方案153.2.1ASP.NET163.2.2WebService163.2.3SQLServer2008164系统设计174.1系统架构设计174.1.1数据访问层174.1.2商业逻辑抽象层184.1.3用户处理层184.1.4用户界面层194.1.5架构的实现214.2系统结构设计244.2.1输入输出设计244.2.2管理员端数据流图254.2.3客户部人员端数据流图264.2.4合同部人员端数据流图264.2.5销售部人员端数据流图275数据库设计285.1系统E-R图285.2表/字段设计305.3数据库逻辑结构设计336系统功能实现366.1代码的实现过程366.2界面设计376.3子系统管理427系统安全457.1系统环境安全457.1.1基于角色的访问控制457.1.2入侵检测技术457.1.3验证安全4551 北京交通大学专业硕士学位论文目录7.2WebService安全467.3恶意并发访问控制(DoS攻击)468数据访问的优化479结束语4910展望50参考文献51作者简历52独创性声明53学位论文数据集5451 北京交通大学专业硕士学位论文引言1引言随着信息技术的高速发展,使得识别每一个客户并提供个性化服务成为可能,美国著名的战略咨询公司GarmerGroup正式提出完全以客户为中心的应用系统——CMS(客户管理系统)[1]。在客户管理系统中,企业有了多种同客户沟通的方法,其不仅限于电话、电邮等。客户管理系统的产生不仅改进了信息的提交方式、加快了信息的提交速度,而且还简化了企业的客户服务过程,使企业向客户提交与处理客户服务的过程变得更加直接方便。基于网络的CMS系统可使企业逐步实现由传统的企业模式到以电子商务为核心的转变过程[2]。众多企业都意识到CMS为企业提供的新机会,而这样的机会对未来世界的影响是巨大。首先,在开发平台层面,各大开发平台都为此搭建适应于互联网应用的软件代码。比如,作为软件巨头微软.NET的核心内容之一就是要搭建第三代互联网平台,在这个网络平台中解决网站之间的协同合作,从而最大限度地获取信息[3]。在.NET平台上,不同网站之间通过相关的协定联系在一起,网站之间形成自动交流,协同工作,提供最全面的服务。其次,各大行业领域软件商纷纷响应所属行业的不同需求,以开发出新一代的基于网络的CMS系统作为电子商务未来的发展方向之一。尤其这几年,随着计算机技术、通信技术、网络技术、信息处理技术的高速发展,客户管理信息化建设也在不断发展,全国各大国有公司的各部门和各科研机构纷纷开展了对公司管理系统的研发工作,并在各个领域取得了长足进步。同时,随着企业规模的不断扩大,总公司与子公司业务逻辑的差异化越来越大,因此地区级的客户管理系统应运而生。但是,由于受到科研水平和地域需求差异的限制,各地开发的系统功能差异较大,水平参差不齐,系统相互之间的兼容性不强。具体来说,国内的地区级客户管理系统有的采用C/S结构,有的采用B/S结构[4]。这两种结构各有缺点。其中,采用C/S结构的系统对硬件和软件的兼容性都有一定的要求,而且导致不同部门之间的信息资源不能相互通信。目前采用B/S结构的系统缺点在于,虽然B/S结构可以基本满足业务要求,但随着管理业务内容的细化,简单的B/S结构不利于业务逻辑的抽象,业务逻辑与低层数据之间的交互界线不清,代码难于维护和更新。51 北京交通大学专业硕士学位论文需求分析2需求分析为了解决引言中提到的这些问题,结合C/S结构和B/S结构的优点,本论文设计一个地区级的客户管理系统,具有对客户常用信息、合同管理、销售情况进行登记、注册、管理、监督、审批、统计及维护的功能。公司各部门的人员在本系统中有着不同的权限与工作功能。系统开发的总体任务是实现地区级客户管理的系统化、规范化和自动化。本系统基于Web架构的设计,将架构分为:用户界面层、用户处理层、抽象逻辑层、数据访问层等层。降低用户界面层与逻辑层、逻辑层与数据访问层之间的耦合性,保证数据访问的及时性,并通过安全策略保证公司信息的安全性。采用面向对象的分析方法对本客户关系管理系统进行功能需求分析:可将需求分析划分为市场需求、功能需求、技术需求的3个部分。具体如下:2.1市场需求市场需求是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有充足把握住市场需求,才能保证设计的系统具有实用性。本节通过客户管理概述、选题目的、需求范围等三方面对市场需求进行描述。2.1.1概述客户是公司最宝贵的资源,为了更好的发掘老客户的价值,并开发更多新客户,中国中冶集团焦作分公司决定分批实施该客户关系管理系统。希望通过这个系统完成对客户基本信息、合同信息、订单信息、销售信息的充分共享和规范化管理;希望通过对销售机会、客户开发过程的追踪和记录,提高新客户的开发能力。并希望系统提供相关报表,以便公司高层随时了解公司客户情况。2.1.2目的51 北京交通大学专业硕士学位论文需求分析本选题来自于中国中冶集团北京分公司的实际工程需求,随着子公司业务规模的不断扩大,总集团的业务流程不在适应子公司的要求,而且子公司业务信息量的大量增加,趋使子公司内部必须建立以市场、客户为中心的管理体系,以便实现收集、整理、加工和利用客户信息的质量大大提高。本课题应中国中冶集团总公司所托,对中国中冶集团北京分公司、南京分公司调研,针对国有企业子公司设计地区级客户管理系统。本文档的编写为下阶段的设计、开发提供依据,为项目组成员对需求的详尽理解,以及在开发开发过程中的协同工作提供强有力的保证。同时本文档也作为项目评审验收的依据之一。2.1.3范围本系统包括:用户管理、客户管理、合同管理、订单管理和销售统计五个功能模块。系统功能为本说明书与附件系统试用版界面描述中功能的并集。在上述文件未明确描述的情况下,应能满足合同和相关投标书所描述的功能。2.2功能需求功能需求定义一个软件系统或组件的功能,也是一个系统需提供的功能及服务。功能可以用一组输入、行为及输出的组合来表示。下面通过对系统功能描述、各角色对系统的要求入手来描述系统。2.2.1系统功能描述地区级客户管理系统的功能描述。系统用户登录系统管理员客户部人员合同部人员销售部人员用户管理模块客户管理模块合同管理模块产品单管理模块销售统计模块图2.1系统流程图Chart2.1SystemFlowdraw51 北京交通大学专业硕士学位论文需求分析系统共分为4类用户,管理者系统中的5个模块信息。在客户管理系统中,根据用户的身份,分别管理者对各模块。其流程如图2.1所示。2.2.2管理员对功能的需求管理员权限最大,能够进行对客户管理系统所有信息的维护,包括以下几个部分内容的维护:客户管理、用户管理、订单管理、合同管理及统计。管理员的功能需求如下所示:(1)对于使用地区级客户管理系统的用户信息查阅与管理,用户信息是指内部用户与角色的管理。包括用户编号、姓名、用户类型、自设密码、电话、手机、电子邮件、家庭地址、工作单位等信息;(2)对新用户信息的添加;(3)对用户信息的查询、修改、删除;(4)对本系统中合同涉及的客户基本信息的查询,客户基本信息包括客户代码、客户名称、主要负责人、级别等描述;(5)对新客户信息的添加;(6)对客户信息的查询、修改、删除;(7)对本系统中产品单信息的查询,产品单信息包括产品代码、产品名称、产品属性以及其他产品描述信息;(8)对新订单信息的添加;(9)对订单信息的查询、添加、更新、删除;(10)对合同基本信息的查询,合同基本信息包括合同代码、客户代码、执行状态、负责人、发布人、签署日期、执行日期、完成日期、总金额、实际金额等信息;(11)合同基本信息的录入。并且能够根据本合同内容决定客户级别;(12)合同基本信息的查询、添加、修改、删除;(13)统计管理即销售查询与统计——主要提供了计划完成情况统计和按时间、销售人员、客户情况分析销售订单情况。如按日统计销售、按月统计销售、按年统计销售、按用户名统计、按产品名统计、按合同状态统计、按签署日期统计等,以及以金额的角度,按销售总金额、销售成交最高金额、销售数量等信息进行统计。2.2.3合同部人员对功能的需求负责合同的工作者只需专注于合同信息的维护,所以其对功能的需求包括:51 北京交通大学专业硕士学位论文需求分析(1)对合同信息的浏览、查询、更新;(2)添加新合同;(3)在自己的权限内对公司的销售情况进行统计;(4)对公司的客户对公司合同状况的部分查询。2.2.4销售部人员对功能的需求负责销售的工作人员注重所有产品的销售状况,管理者也可能通过销售状况的统计来制定出公司的新战略,所以销售部人员对系统功能需求包括以下几个方面;(1)对公司销售情况的统计;(2)对公司下属客户对公司产品销售情况的统计。2.2.5客户部人员对功能的需求客户部的工作人员工作重点在及时取得客户对公司产品的销售反馈,工作重点侧重于与客户、以及客户相关合同信息的分析总结,其功能需求分析应包括以下几个方面:(1)浏览、查询、修改客户信息;(2)添加新客户信息;(3)添加新合同并且根据合同内容决定客户级别;(4)对公司销售情况的统计;(5)对公司下属客户对公司产品销售状况的统计。2.3技术需求虽然功能需求是对软件系统的一项基本需求,但却并不是唯一的需求,通常对软件系统还需要下述几方面的综合要求:2.3.1软硬件环境需求系统应运行于Windows平台(Windows2000以上版本)。系统采用多层51 北京交通大学专业硕士学位论文需求分析架构,可通过浏览器访问,使用IE6.0或更高版本可顺利完成全部系统操作。系统运行于局域网环境中。系统数据库使用MSSQLServer2008(或更高版本)。2.3.2性能需求本系统在正常的网络环境下,应能够保证系统的及时响应:统计报表模块相应功能响应时间不超过30秒。其他模块相应功能响应时间不超过15秒。2.3.4可维护性和可扩展性本系统的应用平台设计中选择多层结构,采用基于.NET技术开发规范的系统应用平台,并采用多层结构,使系统具有良好的可维护性和可扩展性。2.3.5实用性、操作性原则实用性是每个信息系统在建设过程中所必须考虑的,从实际应用的角度来看,这个性能更加重要。为了提高系统的实用性,本系统考虑如下几个方面:(1)采取总体设计、分步实施的技术方案,充分考虑本系统业务逻辑的管理需求,使系统始终与业务实际需求紧密连在一起。在界面菜单及功能实现设计中,将界面的操作顺序按业务逻辑归类,以便操作的有效引导,保证软件的易用性;(2)设计上充分考虑当前各业务层次、各环节管理中数据处理的便利和可行,把满足用户业务管理作为第一要素进行考虑;(3)用户接口及界面设计充分考虑人体结构特征及视觉特征进行优化设计,界面尽可能美观大方,操作简便实用,并保证各GUI风格的统一和一致;(4)全部人机操作设计均充分考虑不同使用者的实际需要,在各功能名称的用词、信息提示文字等方面,使用企业行业术语规范化、习惯化用词,以保证软件使用者的习惯性,有利于操作者在较短的时间内掌握软件的使用。2.3.6安全需求51 北京交通大学专业硕士学位论文需求分析系统安全对系统的健壮性性有着重大影响。系统应该减少黑客入侵和计算机犯罪的可能,保证网络安全。系统必须采用多重安全手段,保障系统的运营。2.3.7数据需求数据是企业信息的核心,其应用水平的高低直接影响到企业管理水平。如果数据库系统设计不合理,不仅会增加客户端和服务器端程序的编程和维护的难度,而且还会影响系统实际运行的性能。系统必须提高数据处理的效率。51 北京交通大学专业硕士学位论文系统分析3系统分析系统分析的主要任务是将在系统详细调查中所得到的文档资料集中到一起,对组织内部整体管理状况和信息处理过程进行分析。它侧重于从业务全过程的角度进行分析。分析的主要内容是:系统功能模块划分及流程分析。要确保业务和数据的流程的通畅合理。本章按照系统功能模块的顺序依次介绍各个模块的业务功能及流程分析。3.1系统功能模块划分及分析该管理系统的主要功能包括以下几个方面:用户管理、权限管理、客户管理、合同管理、订单管理、销售统计管理、日志服务管理。其功能结构图设计,如图3.1所示。客户管理系统用户管理合同管理客户管理销售统计产品单管理添加用户修改用户删除用户查询用户添加客户修改客户删除客户查询客户添加合同删除合同修改合同查询合同添加产品单删除产品单管理产品单查询产品单添加统计删除统计修改统计查询统计图3.1系统整体结构图Chart3.1SystemConstruction在该管理系统中,在管理人员中,系统管理员拥有最高权限,可以对系统中的所有信息进行维护;合同部人员有权添加新合同,可以根据合同的重要性决定客户的级别,并且可以对公司的销售情况进行统计;而销售部人员可以对公司的销售情况感兴趣,所以销售部人员可以对公司销售情况进行统计;客户部人员只要与客户打交道,所以要对客户的信息进行维护,并添加新合同、决定客户的级别,并且还要了解产品的销售情况。以下是各模块之间的交互图。51 北京交通大学专业硕士学位论文系统分析3.1.1用户管理模块在用户管理模块中,主要是记录本系统中用户的登录名、密码以及详细的个人联系信息。在此模块中,用户注册的用户名必须唯一,不可以与其他已注册的用户名重复。用户管理模块流程,如图3.2所示。在该管理系统中,用户的信息由系统管理员来添加、编辑。如果是管理员,则可以实现用户信息的编辑。用户管理模块是否系统管理员添加用户信息 编辑用户信息 无操作权限YN图3.2用户管理模块流程Chart3.2UserManagementFlow3.1.2用户权限管理模块互联网应用的系统都有着访问量大、用户种类多样性的特点,这些特点直接导致系统开发时具有模块功能多,权限相互交涉复杂的特点,因此必须采用内部用户管理模块进行维护庞大的用户关系。系统采用Window用户权限的思想,将用户、用户组的权限通过各个栏目节点进行绑定,在各个栏目节点上实现继承与非继承的设置管理,从而使管理员可以进行灵活的配置。另外,系统必须设置管理员来负责对整个客户关系系统的用户设置,为每个用户角色指定不同的权限,以便于不同的权限来操作系统。51 北京交通大学专业硕士学位论文系统分析3.1.3客户管理模块在此模块中主要对客户的信息和级别进行维护管理,客户的信息是由系统管理员或客户部人员来进行维护的。客户和订单管理模块是合同管理和销售管理模块的基础,只有添加了客户和产品信息后才可以添加合同和销售的信息。客户管理模块流程,如图3.3所示。在该管理系统中,客户的信息由系统管理员和客户部人员来维护。客户管理模块是否系统管理员或客户部人员添加客户信息 编辑客户信息 无操作权限YN图3.3客户管理模块流程Chart3.3CustomManagementFlow通过用例图分析知,客户部管理员可以实现显示客户列表、添加客户资料、修改客户资料、删除客户资料、查看客户资料。客户管理模块的用例图如下。图3.4客户管理模块用例图Chart3.4UserManagementUseCase51 北京交通大学专业硕士学位论文系统分析3.1.4合同管理模块在此模块中,主要对合同的信息进行维护管理,记录合同的签署、执行和完成情况,根据合同中的金额还可以决定客户的级别。合同管理模块也是销售统计模块的基础。合同管理模块流程,如图3.5所示。在该管理系统中,合同的信息由系统管理员、合同部人员或销售部人员来维护。合同管理模块是否系统管理员或合同部人员或销售部人员添加合同信息 编辑合同信息 无操作权限YN图3.5合同管理模块流程Chart3.5ContractManagementFlow图3.6合同管理模块用例图Chart3.6ContractManagementUseCase51 北京交通大学专业硕士学位论文系统分析合同管理模块中,合同起草修改人员具有如下权限:(1)列表显示合同;(2)添加合同;(3)修改合同;(4)删除合同;(5)查看合同明细;(6)审核合同。合同管理模块的用例图如图3.6所示。3.1.5订单管理模块订单管理是一个常见的管理问题,包含在公司的客户订单处理流程中。由于客户下订单的方式多种多样、订单执行路径千变万化、产品和服务不断变化、发票开具难以协调,这些情况使得订单管理变得十分复杂。订单管理还可被用来发掘潜在的客户和现有客户的潜在商业机会。因此订单管理必须作为单独一个模块来开发,应与合同管理模块处于同一层次。管理产品单产品单管理产品单信息查询产品单信息添加产品单信息删除图3.7订单管理模块功能模块图Chart3.7OrderManagementFunctionModelsDraw51 北京交通大学专业硕士学位论文系统分析此模块主要是对公司的订单信息进行维护,此模块由系统管理员和销售部人员管理,主要添加订单的基本信息和辅助信息。产品单的生成,首先是签订订单,当订单履行后,即生成相应的最终产品单。所以,此模块实现的是销售订单的定制、修改与删除功能。以及订单确定为销售单、销售单查询与删除功能。包括了订单和销售单的订单号、定购日期、客户、联系人、公司行业、定购产品、产地、数量、销售员名等内容。订单管理模块的功能模块图如图3.7所示。(1)添加产品。该模块的功能是:用户对本部门的产品单进行登记。产品单内容包括:产品单ID、客户ID、销售日期、有效证件代码、销售员ID、产地、个人/机构、公司行业、产品代码、联系人、联系人职务、联系人电话、邮编、产品单说明、定购数量、是销售单还是预订单。系统将自动判断用户权限。(2)删除产品单。该模块的功能是:用户对本部门的产品单进行删除。系统将自动判断用户权限。(3)管理产品单。本系统考虑到系统的扩展性、数据库执行的效率,将产品单的辅助信息抽取出来,做为二级数据信息进行存储。该模块功能是:对产品单信息进行管理。该模块的信息主要是产品单的辅助信息,不是产品单必须的数据信息。该模块包括:产品单信息录入、产品单信息添加、产品单信息删除三个子模块组成。其中,产品单信息查询子模块功能是对产品单的信息进行列表展示;产品单信息添加子模块内容包括:产品ID、产品名、登记时间、产品描述、备注、所属部门和经办人;产品单信息删除子模块由管理员或有权限的角色进行信息删除。(4)查询产品单。对系统中的产品单按时间、按经办人、按产品名称、按部门进行分类查询。包括:产品ID、产品信息、产品备注、所属部门、登记时间、经办人等。产品单管理是否系统管理员或销售部人员添加产品单删除产品单产品单管理产品单查询无操作权限图3.8订单管理模块流程Chart3.8ProductManagementFlow产品单管理模块的流程,如图3.851 北京交通大学专业硕士学位论文系统分析所示。在该管理系统中,产品单的信息由系统管理员或销售部人员来维护。图3.9订单管理模块用例图Chart3.9ProductManagementUseCaseFlow订单管理的用例图如图3.9所示,包括以下2个角色的用例:(1)制单人:列表显示销售单、添加销售单、修改销售单、删除销售单、查看销售单;(2)审核人:列表显示销售单、删除销售单、审核销售单;(3)从用例图可以看出,制单人与审核人具有不同的权限。审核人的权限范围在于审核销售单的有效性。制单人的权限范围在于尽可能多的为企业创造订单。审核人与制单人的分隔,对企业运营是一种保障,这是从公司实际调研中,公司存在的一些问题中发现的,并向公司高管建议,在公司业务流程中,额外增加审核人,得到了公司高管的认可。3.1.6销售统计模块销售统计模块的主要功能就是统计功能,此模块的数据主要来源于合同中产品单的金额和数量。销售统计模块的流程,如图3.10所示。在该管理系统中,所有用户都可以应用产品单的统计信息。51 北京交通大学专业硕士学位论文系统分析销售统计模块查看合同编号查看产品编号查看订单数量查看已发货数查看货物单价图3.10销售统计模块流程Chart3.10SellandStatisticsFlow3.1.7日志服务管理模块日志是任何一个管理系统都必备的重要功能。日志可以用于既可追踪对象的修改状态和明确事务责任,又可以为系统其他功能提供维护保障。通过对系统各种逻辑的分析,根据业务需求,系统将日志分为以下几个方面:(1)系统日志:记录系统各种操作的信息数据。(比如:用户登陆系统的时间)(2)合同日志:记录系统合同数据发生改变的信息。(比如:合同内容发生变化)(3)信息日志:记录系统信息数据发生改变的信息。(比如:某管理员增加了一个新的公告……)(4)产品单日志:记录系统产品数据发生改变的信息。(比如:某个产品单已经进行了送货处理……)系统通过抽象出一个Log日志接口,系统按照不同种类的日志,又区分不同的操作。日志组件将通过业务抽象封装后,为其它业务逻辑模块提供统一接口,用来降低系统开发中模块日志功能的开发成本和维护成本。3.2技术方案51 北京交通大学专业硕士学位论文系统分析在开发之前,应当对开发工具与开发平台有所了解,逐个筛选,找出适合开发系统的平台和语言。以下分节介绍本系统中使用到的技术。3.2.1ASP.NETNET是Microsoft公司在快速发展的软件技术世界中维持领先的保证,ASP.NET则是开发.NET应用程序的语言之一。ASP.NET是对传统ASP技术的重大升级和更新,它是建立在.NET框架的公共语言运行库上的编程框架,可用于在服务器上生成功能强大的Web应用程序。ASP.NET提供了一种编程模型和结构。ASP技术的出现使服务器端程序开发变得简单易行,ASP.NET则进一步拉近了桌面应用开发和Web开发的距离。ASP.NET是一个编译的、基于.NET的环境,可用任何与.NET兼容的语言创作应用程序。[8]3.2.2WebServiceWebService主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。从更深的层次上来看,WebService是一种新的网络应用程序分支。是自描述、自包含、模块化的应用。WebService就是基于网络的分布式模块化组件,它遵循一系列技术规范,使得WebService能和兼容组件进行互操作。它可以通过一系列相关技术在网络中被描述、发布、查找和调用。WebService所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以WebService可以在任何支持这些标准的环境中使用。[13]3.2.3SQLServer2008SQLServer2008所示一个巨大而复杂的数据库管理系统。SQLServer2008是完全支持Web的数据库产品,提供了对可扩展标记语言(XML)的核心支持,以及在Internet上和防火墙外进行查询的能力[10]。并使得数据的管理与分析更加灵活,便于用户更加容易适应快速发展的新环境。SQLServer2008数据库提供了一套非常实用的管理工具,用于管理、设置、管理、检索SQLServer2008中的数据,并进行数据库备份维护和管理,保证了数据的安全性和一致性[9]。企业管理器作为SQLServer2008中最重要的管理工具,具有操作简单明了的特点,系统管理员和用户可以很方便的使用SQLserver2008在本地或远程管理系统服务。51 北京交通大学专业硕士学位论文系统设计4系统设计在软件项目开发的需求分析阶段,已经搞清楚了软件要做什么的问题,对于一个实际的开发项目,需要把这些需求通过需求说明书文档描述出来,此即是目标系统的逻辑模型。接下来的工作是要把软件做什么的逻辑模型转换为怎么做的物理模型,即着手去实现软件的需求,并将设计的结果反映在设计说明书文档中,此阶段即为设计阶段。该管理系统的系统设计中主要包括系统架构设计、系统结构设计、数据库设计、系统功能实现。由于系统设计内容较多、相对较复杂,因此以上内容独立出来,分节阐述。4.1系统架构设计在第一章提到目前国内的地区级客户管理系统有的采用C/S结构,有的采用B/S结构[4]。这两种结构各有缺点。其中,采用C/S结构的系统对硬件和软件的兼容性都有一定的要求,而且导致不同部门之间的信息资源不能相互通信。目前采用B/S结构的系统缺点在于,虽然B/S结构可以基本满足业务要求,但随着管理业务内容的细化,简单的B/S结构不利于业务逻辑的抽象,业务逻辑与低层数据之间的交互界线不清,代码难与维护和更新。因此,本文为了避免B/S结构和C/S结构的缺点,结合两者优点,设计出基于多层结构架构的设计。其架构分为:用户界面层、用户处理层、商业逻辑抽象层、数据访问层等四层。此四层的架构由具体层次到抽象层次。具体描述内容如下:4.1.1数据访问层对于平台中的所有应用,都存在着各种各样的业务信息、配置数据、系统实时状态等信息。数据访问层对这些数据信息提供快速查询的底层接口,并保证数据的可靠性、完整性。将该层抽象出来的好处在于:未来可以对该层进行扩展。比如:使用磁盘阵列技术,实现以下优点:(1)传输速率快;(2)储存容量可提升;(3)提升I/O每秒的数量;(4)增加数据安全性及稳定性;(5)大量数据快速及简易管理;51 北京交通大学专业硕士学位论文系统设计(1)增加可用运时间,减少维护;(2)通过磁盘阵列,可以将不同服务器上传的文件统一管理。图4.11在数据访问层服务器的扩展Chart4.11ExtendedDataAccessLayerServer如图4.11所示:各台服务器共享磁盘阵列,这样所有的数据都放到磁盘阵列之中。目前,此数据访问层的主要功能是:负责数据库的访问,即实现对数据表的查询、插入、更新、删除等操作。将系统与数据库直接独立开,这样系统可以实现不同数型的数据库的动态切换,而不用需要修改任何程序功能。有效保证了系统未来的可移植性。4.1.2商业逻辑抽象层商业逻辑抽象层作为数据访问层与用户处理层之间的桥梁。它是系统架构中体现核心价植的部分。该层的关注点集中体现在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,对用户处理层传递过来的信息进行转化。通过定义一个对接双方需要的接口进行交互,然后对接双方不需要直接访问同时也不需要知道对方的数据库,直接从API接口结构中获取相关的数据信息从而实现数据的共享对接。该层的具体业务规则请参见系统结构设计。4.1.3用户处理层用户处理层即应用层,提供各种业务实体的操作。这样做的好处是,当业务实体发生改变或者是有新的业务时,系统的基础架构都不需要做出任何调整,直接就可以使用原有的功能。比如说以后系统想要扩展业务,系统可以处理的就是一个业务实体,如果该业务的实现能满足于服务接口层的接口,则平台只需要对该层的逻辑进行开发实现,不用触动逻辑实现层。51 北京交通大学专业硕士学位论文系统设计在本系统中,一些有效性验证的工作也是放在这一层的,以更好的保证程序运行的健壮性。如不允许的文本框输入空字符串,数据格式是否正确以及数据类型验证;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。4.1.4用户界面层用户界面层就是最终对客户的接口,平台以网页展示的方式提供各种业务供客户使用。相当于View(视图),与用户处理层、服务接口层、商业抽象逻辑层、商业逻辑实现层、数据访问层组成Model/View/Controller(MVC)结构。将该层分离出来的好处是,将展示与背后支持展示的业务处理分离开来,可以实现多种展示方式,并不影响到业务处理。该管理系统的技术架构有以下特点:(1)层次清楚,多层的结构,每一层的作用都有明确的规定;各层次专注于自身功能的接口实现,整个层次保持相对的稳定。系统通过不改变接口,各个层次、各个组件进行优化的策略,能在不影响整个业务的前提下,不断的完善和改进。通过分解业务细节,将不同的功能代码分散开来,更利于系统的设计和开发,同时为可能的变更提供了更小的单元。更利于“从顶至下”的设计理念,更利于抽象封装。(2)提高服务器效率使用分层架构提高了缓存服务管理的效率。页面访问的时候,生成动态Web页会耗用各种各样的系统资源。当Web服务器收到页面请求时,它通常必须从存储子系统中实时的检索所请求的信息。对这些资源的访问通常需要通过相应层次的功能模块实现.比如用资源池(如数据库连接、套接字或文件描述符)等方式进行,具体技术取决于当时的系统要求。一般来说,Web服务器会被大量用户所访问,因此会收到大量的通常需要处理的并发请求,所以对这些共享资源的争夺可能会延迟页面请求。使系统速度更快的最简单的方法是购买新的硬件。此方法的优点是:不必更改程序。但是更多的问题是:硬件只能在未达到其物理限制之前才会对性能有所帮助。所以一般系统中,都会使用缓存管理技术来提高系统性能[8]。系统中存在两种缓存对象:1)页面缓存:对于前台的html页面按不同的块来区分,然后通过一个key对象,通过开源JCS技术存储于内存或磁盘空间。2)对象缓存:将系统中经常用到的对象保存于规定的内存空间,通过配置的更新规则,同步更新数据库内容。51 北京交通大学专业硕士学位论文系统设计图4.12请求中的页面对象不在缓存对象中Chart4.12Pagerequestobjectisnotinthecacheobject图4.13请求中的页面对象存在于缓存对象中Chart4.13Pagerequestobjectinthecacheobject从上边的调用图可以很清晰的看到,对于并发访问的页面请求,通过页面的缓存可以减少访问响应的时间,减少数据库的连接,从而提高系统的整体性能和访问速度。51 北京交通大学专业硕士学位论文系统设计(1)降低用户处理层、逻辑抽象层与数据访问层之间的耦合性,保证数据访问的及时性,并通过安全策略保证公司信息的安全性。4.1.5架构的实现整个系统的架构具体分为一下几个模块:实体类模块——一组实体类的集合,负责整个系统中数据的封装及传递。数据访问层类CDataUility——一数据访问层代码的集合,完成数据访问层的具体功能,实现数据访问层接口族。商业逻辑抽象层类CDataInterface——一组接口的集合,表示业务逻辑层的接口。用户处理层类Operation—一组类的集合,完成业务逻辑层的具体功能,实现业务逻辑层接口族。用户界面层CWebPage——程序及可视元素的集合,负责完成表示层的具体功能。IBLL模块——类CDataInterface与Operation类具体底层的实现。IDAL模块——表示具体的数据访问的实现方式。IdataC模块——最底层的代码实现。辅助类模块——完成全局辅助性功能。系统整体架构的实现参见下图:图4.15系统架构的实现Chart4.15theSystemArchitectureRealization51 北京交通大学专业硕士学位论文系统设计由于系统代码过大,本节仅对几个重要的具体类进行阐述。(1)AccessDALHelper类在实际系统开发中,很多数据访问操作流程很相似,因此可以将一些可复用的代码抽取出来,编写成助手类,以此减少代码量,提高代码复用性。该类放在IdataC下,叫AccessDALHelper,主要负责Access数据库的访问。如图4.16所示。它包括三个方法:GetConnectionString:从配置文件中读取配置项,组合成连接字符串。ExecuteSQLNonQuery:执行指定SQL语句,不返回任何值,一般用于Insert,Delete,Update命令。ExecuteSQLDataReader:执行SQL语句返回查询结果,一般用于Select命令。如图所示:图4.16AccessDALHelper类图与SQLServerDALHelper类图Chart4.16AccessDALHelperClassFlow&SQLServerDALHelperClassFlow(2)SQLServerDALHelper类该类放在IdataC下,叫SQLServerDALHelper,主要负责SQLServer51 北京交通大学专业硕士学位论文系统设计数据库的访问。如图4.16所示。它包括四个方法:ExecuteProcedureNonQurey:执行存储过程,不返回任何值。ExecuteProcedureReader:执行存储,并返回SqlDataReader。ExecuteSQLNonQuery:执行指定SQL语句,不返回任何值,一般用于Insert,Delete,Update命令。ExecuteSQLDataReader:执行SQL命令,并返回SqlDataReaderSQLServerDALHelper类与上面提到的AccessDALHelper类同属于IdataC类。未来可以扩展IdataC类,使其支持更多的数据库访问,提高系统的可扩展性。(1)AdminDAL类商业逻辑抽象层以管理员的数据访问操作类为例。该类包括三种类型的操作,一种是修改型,如Insert;一种是返回单个实体类型,如GetByID;还有一种是返回实体类集合型,如GetAll。如图4.17所示。图4.17IAdminBLL类图与AdminDAL类图Chart4.17IAdminBLLClassFlow&AdminDALClassFlow(2)IAdminBLL类51 北京交通大学专业硕士学位论文系统设计用户处理层以管理员的业务逻辑类IAdminBLL为例该类需要的数据访问操作:插入管理员、删除管理员、更新管理员信息、按ID取得管理员信息、按登录名与密码取得管理员、取得全部管理员,如图4.17所示。(1)实体类实体类的代码很简单,仅仅是负责实体的表示和数据的传递,不包含任何逻辑性内容。实体类的具体内容请参见第5章数据库设计。4.2系统结构设计从整个系统的角度进行考虑,系统的代码要统一,设计规范要标准,传递语言要尽可能一致,并且要做到较好的开放性和结构的可变性,采用模块化结构,提高各模块的独立性,尽可能减少模块间的数据偶合,使各子系统间的数据依赖减至最低限度。因此,本节分为:输入输出设计与数据流图两部分阐述。4.2.1输入输出设计系统设计的过程和系统设施的过程恰好是相反的,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出设计直接和用户需求向联系,设计的出发点应该是保证输出方便的为用户服务,正确的反映用户所需要的有用信息。(2)输出设计输出设计的主要目的是满足用户和管理者对数据和信息的要求.输出设计要考虑的主要内容有:1)输出信息名:该输出信息的名称2)输出功能:该输出信息能起什么作用3)输出周期:多长时间能输出一次4)输出用文字:英文,汉字,汉语拼音5)保密要求:有或者无6)输出项目名称:构成输出信息的每个数据项本系统中所选用的输出方式主要有三种:查询显示输出,浏览显示输出和报表打印输出.但是由于本人计算机编程能力所限,所以对于报表打印输出并不能实现.查询显示输出的信息主要是各种查询结果,这是一种实时性要求很高的输出,输出设备是显示器.(3)输入设计51 北京交通大学专业硕士学位论文系统设计在计算机信息系统中,输入数据的正确性决定着整个系统质量的好坏。若输入数据缺乏精确性和适时性,及时计算和处理十分正确,也不可能得到可靠的输出信息.最佳的信息系统适于最佳的输入系统.根据输出信息的要求,输入设计考虑的主要内容如下:1)输入信息名:该输入信息的名称2)输入功能:该输入信息起什么作用3)输入周期:多长时间输入一次4)输入项目名:构成输入信息的每个数据项的名称5)输入用文字:英文,汉字或汉语拼音本系统采用的输入方式主要是键盘输入,便于查询。因此,友好的输入界面变得非常重要,必须保证用户在输入时输入方便,安全和高效.数据输入完成后,并不能马上进入系统,还应对其进行校验,成为输入数据检验。输入数据检验是保证输入数据正确的重要措施。通过多种措施,对全部输入数据设想其可能出现的差错,对之进行校验,对校验中查到的有错数据,考虑修改及补救办法。4.2.2管理员端数据流图管理员端数据流图包括以下几部分:(1)登录(2)管理员管理(3)用户管理(4)客户管理(5)合同管理(6)产品单管理(7)销售统计51 北京交通大学专业硕士学位论文系统设计图4.14管理员端数据流图Chart4.14ManagementDataFlow4.2.3客户部人员端数据流图如图4.15所示,客户部人员端数据流图包括:(1)登录(2)客户部管理(3)客户管理(4)销售统计图4.15客户部人员端数据流图Chart4.15CustomDep.DataFlow4.2.4合同部人员端数据流图51 北京交通大学专业硕士学位论文系统设计如图4.16所示,合同部人员端数据流图包括以下几部分:(1)登录(2)合同部管理(3)销售统计图4.16合同部人员端数据流图Chart4.16OrderDep.DataFlow4.2.5销售部人员端数据流图如图4.17所示,销售部人员端数据流图包括:(1)登录(2)合同部管理(3)产品单管理(4)销售统计图4.17销售部人员端数据流图Chart4.17SellsDep.DataFlow51 北京交通大学专业硕士学位论文数据库设计5数据库设计根据该管理系统数据关系,采用构建E-R图,导出系统数据表的分析方法,对该管理系统作出数据库设计。5.1系统E-R图通过上述对系统做的需求分析、模块设计,就可以做出能够满足用户需求的各种实体,以及它们之间的关系,本系统根据上面的设计规划出的实体有:用户信息实体、订单信息实体、客户信息实体、合同信息实体、合同明细实体、客户销售情况实体。(1)该管理系统用户信息实体图,如图5.1所示。其中包括了和用户相关多种属性信息。图5.1用户信息实体图Chart5.1UserInformantStereogramDraw(2)该管理系统订单信息实体图,如图5.2所示。其中包括了订单相关的属性信息。图5.2订单信息实体图Chart5.2OrderInformantStereogramDraw(3)该管理系统客户信息实体图,如图5.3所示。该图包括了和客户信息51 北京交通大学专业硕士学位论文数据库设计有关的属性。包括:客户编号、名称、负责人、描述、级别等。图5.3客户信息实体图Chart5.3CustomStereogramDraw(1)该管理系统合同信息实体图,如图5.4所示。其中包括了与合同信息相关的属性。图5.4合同信息实体图Chart5.4ContractInformantStereogramDraw(2)该管理系统合同明细实体图,如图5.5所示。其中包括了和合同明细相关的属性。图5.5合同明细实体图Chart5.5ContractDetailStereogramDraw(3)客户管理系统客户销售情况实体图,如图5.6所示。其中包括了与客户销售情况有关的属性信息。51 北京交通大学专业硕士学位论文数据库设计图5.6客户销售情况实体图Chart5.6CustomSellsStereogramDraw(1)客户管理系统实体间关系E-R图,如图5.7所示。该图包括了实体间E-R的对应关系。图5.7地区级客户管理系统实体间E-R图Chart5.7EntityE-RDraw5.2表/字段设计系统数据库是地区级客户管理系统的重要部分,本系统使用SQLServer2008作为应用程序的数据库。数据库名称为client,在该系统中,共需要创建11个数据表,分别为用户信息表(users)、客户信息表(client)、订单信息表(product)、合同信息表(contract)、合同明细表(con_detail)、动作表、动作栏表、动作组表、组管理表、管理员组表、管理员表,用于存放地区级客户管理系统所需的数据。(1)用户信息表Users此表中存放这个部门普通用户的注册信息。51 北京交通大学专业硕士学位论文数据库设计表5.1用户信息表Table5.1Users字段名数据类型长度约束说明UseridVarchar20主键用户名NameVarchar20N/A用户姓名PasswordVarchar20N/A用户密码SexBool1N/A性别BranchInt4N/A用户部门User_styleChar4N/A用户类别TellVarchar20N/A电话EmailVarchar50N/A电子邮件DressVarchar50N/A联系地址(1)客户信息表Client此表中记录的详细信息是系统中重要的数据。表5.2客户信息表Table5.2Client字段名数据类型长度约束说明Client_idChar10主键客户编号Client_nameChar10N/A客户姓名Client_chargeChar10N/A客户负责人Client_introduceVarchar50N/A客户描述Client_levelInt4N/A客户级别Client_EmailVarchar20N/A客户EmailClient_TellVarvhar20N/A客户电话(2)订单信息表Product此表中存放公司订单的详细信息。表5.3订单信息表Table5.3Product字段名数据类型长度约束说明Product_idChar10主键唯一标识Product_nameVarchar50N/A订单名称Product_descnbeVarchar50N/A订单描述(3)合同表信息Contract此表中包含了公司的合同信息。51 北京交通大学专业硕士学位论文数据库设计表5.4合同信息表Table5.4Contract字段名数据类型长度约束说明Contrcar_idChar10主键唯一标识Client_idChar10外键客户编号Contract_stateInt4N/A合同执行状态Contract_startDatatime8N/A合同签署日期Contract_sendDatatime8N/A合同执行日期Contract_finishDatatime8N/A完成合同日期Contract_personChar10N/A合同责任人Contract_priceMoney8N/A总金额(1)合同明细表Con_detail此表中包含了每个合同中的订单信息。表5.5合同明细表Table5.5Con_detail字段名数据类型长度约束说明Contract_idChar10主键唯一标识Product_idChar10外键订单编号Product_numInt4N/A订单数量Product_sendInt4N/A记录已发货数Product_priceMoney8N/A货物单价(2)管理员表Master表存储的是所有管理员的数据,每添加一个管理员,系统就会在表中增加一条记录。表5.6管理员表Table5.6Master字段名数据类型长度约束说明IdChar10主键自增长idNameChar10外键管理员名称PasswordChar16N/A管理员密码BdateChar8N/A创建时间TruenameChar10N/A真实姓名SexBool1N/A性别BirthdayChar8N/A生日DeptChar10N/A所属部门PositionChar10N/A职务Position_descVarchar50N/A职务说明Office_phoneChar13N/A办公室电话MobileChar13N/A手机Home_phoneChar13N/A家庭电话51 北京交通大学专业硕士学位论文数据库设计EmailVarchar20N/A电子邮件MasteridChar10N/A创建者IDMasternameChar10N/A创建者名称CreatedateDate8N/A创建时间5.3数据库逻辑结构设计在客户管理系统中,涉及5个数据表的操作,各个表之间关联比较紧密,结构比较明晰,各表的的关系模型,即客户管理系统实体关系图,如图5.8所示。图5.8各表逻辑结构关系图Chart5.8AllTableLogicalOrganizationDraw登录基本信息:包括:管理员的登录号、登录密码等。具体内容请参见用户管理一节。销售员相关信息:包括销售员代码、销售员名称、所在地区、所销售产品的行业、销售业绩、计划销售金额等。产品单信息:包拓产品单号、客户代码、销售员代码、产品产地、公司行业、销售日期、联系人信息、产品代码、产品数量等。区域代码:包括区域代码和对应的地区名称。行业代码:包括区域代码和对应的行业名称。客户信息:包括客户代码、客户名称、电话、邮编、客户登记日期、客户地址、邮箱信息等。产品代码:包括产品的代码号(采用自动编号)对应的产品名称、单价。51 北京交通大学专业硕士学位论文数据库设计图5.9与业务逻辑相关表的关系图Chart5.9Businesslogictablediagram(1)不同职责的人员,对应于系统操作的权限是不同的。(2)可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为系统中某部门的员工全部分配某种功能权限的话,是件非常耗时且易出错的事情。所以,系统中就提出了对“组”进行操作的概念,将具有相同权限的人员归为同一组,然后对该组进行权限分配。(3)满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,一种是功能权限的管理,一种是对资源权限的管理。这两者的区别在于不同,资源权限不能够重用,而功能权限可以重用。51 北京交通大学专业硕士学位论文数据库设计图5.10权限表关系图Chart5.10Permissionstablediagram另外,系统还使用到了action表、actioncolumn表、actiongroup表、Groupmanager表、mastergroup表、actioncolumn表,其中,action表中记录着系统中所有的动作,以及动作相关描述;actioncolumn表中记录着动作的分栏信息,系统的左侧菜单栏提供了几块不同的功能,每一块就是一个分栏,每添加一个分栏,系统就会在该表中的增加一条记录来表示,因此在界面上的变化是左侧菜单栏中也会新增机一个栏;actiongroup表存储的是动作归属的组;groupmanager表存储的是管理组的相关信息,每添加一个管理组,系统就会增加一条记录;mastergroup表存储的是管理员所属的管理组,因为一名管理员可能属于多个组,所以该表中关于某一名管理员的记录可能对应多条记录。51 北京交通大学专业硕士学位论文系统功能实现6系统功能实现在系统总体结构设计,数据存储设计,输入、输出设计,处理过程设计完成后,系统进入开发阶段。开发阶段严格遵守系统设计中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。通过开发方案的选取,系统正式进入编码阶段。系统内容很多,无法详细说明,因此本章节选取具有代表性的功能实现介绍如下。6.1代码的实现过程因为系统代码过多,在此举创建登录界面与跳转功能的例子来说明在开发平台VS2008中,代码创建的过程。比如:创建admin_login.aspx,用类似创建用户控件的方法,当出现如图6.1所示界面后,单击Web窗体,输入名称admin_login.aspx,选中“选择母版页”,在弹出的对话框里选中MasterPage.master,单击确定。在ContentPlaceHolder内,插入一个20行3列的表格,在第二列中从上到下插入7个linkbutton控件,分别给txt属性赋值为用户管理、客户管理、合同管理、订单管理、销售管理、返回首页、退出系统;第三列的第四行到倒数第四行表格合并,在其中间使用ListView控件,从工具箱拖入ListView控件后,在选择数据源的下拉列表中,选择“新建数据源”,在弹出的对话框中,单击数据库,数据源的ID默认为SqlDataSource1,单击确定,在弹出的新对话框中,单击新建,填好相应内容后,单击下一步,出现如图6.2.2所示界面,选择user,并选中用户名、用户姓名、用户密码、用户部门、电话,并在“高级”里勾选“生成INSERT、UPDATE、和DELETE语句(G)”以及“使用开放式并发(O)”。Listview里面的表格是按照数据库中的表格布局的。可用类似上述方法配置其他各其他页面的ListView。51 北京交通大学专业硕士学位论文系统功能实现图6.1配置数据源Chart6.1ConChartDataSource当单击某客户管理子系统时,为了显示相应子系统表的信息,例如要显示用户管理子系统的User表则需要传递此表的userid列的值.下面既是Listview1的OnItemDateBound代码,其余ListView的代码类似:protectedvoidDataList1_ItemDataBound(objectsender,DataListItemEventArgse){(e.Item.FindControl("hpContent")asHyperLink).NavigateUrl="admin_user.aspx?id="+(e.Item.FindControl("hpContent")asHyperLink).NavigateUrl;[7]}6.2界面设计(1)系统登陆创建用户控件Header.ascx:打开VisualStdio2008,单击文件->新建->网站,弹出一个对话框,单击ASP.NET网站,输入位置为d:地区级客户管理系统,单击确定,右击“解决方案资源管理器”中的D:地区级客户管理系统,单击添加新项,选中Web用户控件,名称改为Header.ascx,再单击添加。在Header.ascx界面中单击设计,出现一空白页,单击布局->插入表,插入一个2行1列的表格,在第一列输入标题“基于.NET多层架构的地区级客户管理系统51 北京交通大学专业硕士学位论文系统功能实现”,并设置其字号,字体和位置。选中第2行,用同样的方法插入3行20列的表格,并依照各种用户的权限进行界面的连接控件的设置。创建用户控件Foot.ascx:按照上述方法,创建Foot.ascx控件,在出现的空白页里,插入两行一列的表格,在第一行输入“@基于.NET多层架构的客户管理系统版权所有:栾叶君”;在第二行输入“Email:以恶yiejun@163.com”;并设置其字体和位置。地区级客户管理系统的操作的页面用统一的母版MasterPage.master,包括页眉、页脚和正文部份,中间是ContentPlaceHolder控件,页眉、页脚都是用户自定义控件,分别是Header.ascx和Foot.ascx.创建母版页MasterPage.master,方法类似创建用户控件,当出现如图6.1所示的界面后,选中母版页,名字为默认的MasterPage.master,转换到MasterPage.master中的设计,在出现的空白页里,插入一3行1列的表格,将Header.ascx放在第一行,Foot.ascx放在第3行。MasterPage.master设计完成。NewsDefault.aspx是地区级客户管理系统的登录界面,使用确定Button先判断用户名和密码是否正确,再根据该用户所在部门跳转到相应权限的客户管理界面,其界面设计如下:双击解决方案资源管理器中的NewsDefault.aspx,点选设计,插入5行1列的表,在第二行表格输入“地区级客户管理系统”并设置字体大小、位置、颜色等。在第二、三行分别插入一个lable、txtbox控件,分别命名为user和password,并设置表第三行的txtbox的txtmode属性为password。在第五行插入两个button控件,分别命名为OK和cancle,双击OKbutton输入一些关于判断用户名和密码的正确与否的代码,cancle操作类似。如图6.2所示。图6.2系统登录界面Chart6.2SystemLogin51 北京交通大学专业硕士学位论文系统功能实现当不同用户输入正确的用户名称、用户密码,并选择权限后,单击“用户登陆”,不同用户可进入相应的功能界面。并可执行其相应的所有操作,当系统管理员登陆后,可实现的功能有:用户管理、客户管理、合同管理、订单管理、销售管理。比如:当点击客户管理、合同管理、订单管理、销售管理,则会进入相应的管理子系统页面;于此类似,单击返回首页时,页面会跳转至该用户的登录后的页面,若点击退出系统,则跳转至登录页面。(1)客户管理1)查询客户在查询客户这部分功能中,可以查询客户编号、客户姓名、客户负责人、客户描述、客户级别、客户邮件和客户电话这些基本信息。其客户界面clientlist.aspx的效果图如图6.3。图6.3查询客户Chart6.3CustomList2)修改客户在修改客户功能中,系统管理员和客户部工作人员均可以修改指定的客户的信息;被修改字段同上会被严格检查,不符合则修改失败。3)删除客户点击删除则提示是否确定删除,点是则删除,否则不执行任何动作。(2)合同管理1)添加合同在添加合同这部分功能中,可以添加合同编号、客户信息、合同执行状态、合同签署日期、合同执行日期、完成合同日期、合同负责人、总金额这些基本信息。添加合同界面addcontract.aspx的效果图如图6.451 北京交通大学专业硕士学位论文系统功能实现,且添加的内容会被各字段的定义严格检查,不符合标准,则为无效数据,添加不进系统。图6.4添加合同Chart6.4AddContract1)修改合同在修改合同功能中,系统管理员和合同部工作人员可以修改指定的合同的相关信息;被修改字段同上会被严格检查,不符合则修改失败。2)删除合同删除合同功能中,点击删除则提示是否确定删除,点是则删除,否则不执行任何动作。(1)订单管理图6.5添加订单Chart6.5AddOrder51 北京交通大学专业硕士学位论文系统功能实现1)添加订单在添加订单这部分功能中,可以添加产品编号、产品名称和产品描述。添加产品界面addproduct.aspx的效果图如图6.5,且添加的内容会被各字段的定义严格检查,不符合标准,则为无效数据,添加不进系统。2)修改订单在修改订单功能中,系统管理员和仓库部工作人员可以修改指定的订单的相关信息;被修改字段同上会被严格检查,不符合则修改失败。3)查询订单查询订单界面delproduct.aspx的效果图如图6.6,点击确定则按照匹配的关键字查询相应记录。若输入有误,则不执行任何动作。图6.6查询订单Chart6.6SelectOrder(1)销售统计1)添加统计信息在添加销售统计信息这部分功能中,可以添加合同编号、产品编号、订单数量、已发货数、货物单价这些基本信息。且添加的内容会被各字段的定义严格检查,不符合标准,则为无效数据,添加不进系统。2)修改统计信息在修改销售统计信息功能中,系统管理员和销售部部工作人员可以修改指定的销售信息;被修改字段同上会被严格检查,不符合则修改失败。3)删除统计信息删除销售统计信息功能中,51 北京交通大学专业硕士学位论文系统功能实现点击删除则提示是否确定删除,点是则删除,否则不执行任何动作。6.3子系统管理本节主要介绍系统的后台管理及相关模块的开发情况。(1)用户登录用户通过系统主页上用户登陆页面进入,系统从用户的输入ID和密码来判断用户是否有权限进入系统。为了有效防止这种问题对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,本系统使用验证码作为网站通行的方式。如图6.7所示:图6.7用户登录Chart6.7UserBackstageLogin(2)修改资料图6.8用户信息修改Chart6.8UserInformationUpdate51 北京交通大学专业硕士学位论文系统功能实现用户可以对自己的信息进行修改,比如:用户名,用户性别,所在单位,所属省市,通信地址,邮编,联系电话,电邮等,如图6.8所示。(1)修改密码图6.9用户密码修改Chart6.9UserPasswordUpdate(2)管理员登陆管理员通过系统主页上管理员登陆页面进入,系统从用户的输入ID和密码来判断用户是否有权限进入系统。图6.10管理员登陆Chart6.10AdministratorLogin(3)添加用户在添加用户这部分功能中,可以添加用户名、密码、姓名、部门和电话这5类信息,部门决定了该用户的使用权限。添加用户界面adduser.aspx的效果如图6.11所示,且添加的内容会被各字段的定义严格检查,不符合标准,则为无效数据,添加不进系统。51 北京交通大学专业硕士学位论文系统功能实现图6.11添加用户Chart6.11AddUser(1)修改用户修改用户界面changeuser.aspx,在修改用户功能中,系统管理员可以修改指定的用户的各项信息,包括修改用户名和密码;被修改字段同上会被严格检查,不符合则修改失败。(2)用户权限管理用户权限界面deluser.aspx的效果图如图6.12所示,点击删除则提示是否确定删除,点是则删除,否则不执行任何动作。点击修改,可以对用户权限进行修改。此界面只能由管理员进入,一般用户无权限访问此界面。图6.12用户权限管理Chart6.12UserPermissionManagement51 北京交通大学专业硕士学位论文系统安全7系统安全7.1系统环境安全在网络环境下,由于种种原因,网络被入侵和攻击是难免的,可谓是防不胜防,但是,通过加强管理和采用必要的技术手段可以减少入侵和攻击行为,避免可能因入侵和攻击而造成的各种损失。网络管理人员应认真分析各种可能的入侵和攻击形式,制定符合实际需要的网络安全策略,防止可能从网络和系统内部或外部发起的攻击行为,重点防止那些来自具有敌意的国家、企事业单位、个人和内部恶意人员的攻击。防止入侵和攻击的主要技术措施包括访问控制技术、防火墙技术、入侵检测技术、安全扫描、安全审计和安全管理。这些安全技术相互支持与协作,各自解决安全问题的某一方面。其中,访问控制技术和入侵检测是信息系统中不可或缺的安全措施。7.1.1基于角色的访问控制访问控制是网络安全保护和防范的核心策略之一,其目的是为了保证系统的内部和外部用户,对系统资源的访问、使用,以及对系统中敏感信息的访问、存取,都受安全策略的控制。7.1.2入侵检测技术入侵检测技术是网络安全技术和信息技术结合的产物。使用入侵检测技术可以适时监视网络系统的某些区域,当这些区域受到攻击时,能够及时检测和立即响应。7.1.3验证安全本系统采用密码登录,在一定程度上保证了无密码人士无法登陆系统,系统采用多用户不同权限的方式限制了各种权限用户对系统的访问,保证了各尽其职,一些重要数据对低权限用户是不可见的,避免了重要数据的丢失或被修改。在本系统数据库录入数据时,进行数据类型检查,避免脏数据的录入,保证了系统的数据安全及稳定性。51 北京交通大学专业硕士学位论文系统安全另外,除了密码登录的限制,平台对于一些重要功能,如文件上传、用户注册、管理员登录等加上验证码的功能,用户必须输入系统随机生成的验证码才能使用这些功能,通过这样双管齐下,就可以有效防止恶意的并发访问了。7.2WebService安全到目前为止安全性是开发和部署Webservice的最基本的内容之一。.NET环境下的WebService由IIS来提供,在该环境下,可以利用IIS的内置安全特性。[17](1)支持HTTP的SSL能够为HTTP中传输的数据提供保密性和完整性。(2)IIS提供多种身份验证机制:基本身份验证、摘要式身份验证、集成Windows身份验证(NTLM/Kerberos)或X.509证书。(3)可使用.NET提供的“代码访问安全”机制提供身份验证。7.3恶意并发访问控制(DoS攻击)在实际应用中,我们可能会遇到网站被恶意攻击的情况。该系统实现了一个过滤器,用于审核IP访问。具体的说,限制在指定时间内对某些资源的多次访问的请求。当某个客户端的请求符合过滤器的黑名单条件时,系统会在一段时间内直接提示客户访问操作过于频繁,而不作任何操作,保证了其他合法用户能正常的使用系统。比如:有个IP为192.168.1.12的客户在30秒内,连续访问了点击功能30次,过滤器将进行捕捉,并主动上报给系统安全模块,系统会按照相应安全机制自动禁止这个IP访问该功能5分钟,并会智能的记录到“黑名单重点过滤IP”中,当这个IP下次再次连接时,系统会根据这个IP点击操作的时间判断,该IP是否符合“恶意访问”,如果符合,则延长该IP的禁止访问时间。51 北京交通大学专业硕士学位论文数据访问的优化8数据访问的优化对数据的访问速度很大程度上影响应用基于Web架构的系统性能,尤其对动态页面来说,被请求的页面的内容需都要从数据库中提取,它的加载速度比那些只需要从数据库中大量读取数据运行并返回结果给服务器的功能页面要慢,因此,对于动态的页面来说,对SQL层数据处理的优化就是绕不开的难点。本系统仍照传统的优化原则,建立相关重点表的索引、在系统设计时,着重考虑数据库结构的结构优化以外,还对代码的SQL语句进行优化。除此之外,我还从以下的几个方面优化本系统。(1)使用连接池采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接[10]。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。(2)避免服务器和客户端的多次交互HTTP是一种请求响应类型的协议,当客户机向服务器发送请求时,服务器收到请求后响应。在Web浏览器包含了许多的HTTP请求,每一个请求都对应一个小型文件,HTTP对每一个HTTP请求都需要使用1个独立的TCP连接来处理。因此,客户端的每次请求将会引起客户端和服务器间的一次开销,如果访问量过大,将会大大降低系统的响应时间。为避免不必要的TCP连接建立,本系统只在需要向服务器查询或更新数据时才触发客户端与服务器之间的信息交互。可以在客户端执行的数据操作尽量在客户端处理。采用的技术是用javascript脚本。比如说对用户输入数据的合法性校验就是放在客户端执行的,当客户端进行检验后,才将数据提交给服务器。如果检验出错误,将直接在客户端显示,其中不涉及到服务器端。(3)开启系统的缓存服务缓存服务是一种提高服务器性能、降低服务器资源浪费的有效方法。对于安全性要求高的应用程序,采用在Web服务器上维护缓存数据的方式可以有效地提高页面性能。缓存对各个应用来说是私有的,是存储各种对象的存储器,缓存的生存周期取决于应用的生存周期,当应用重新启动时,缓存实际上已重建。合理有效地设计和使用缓存是优化应用系统性能的重要手段,在51 北京交通大学专业硕士学位论文数据访问的优化NET中,主要采用了页面输出缓存技术,即将整个页缓存起来,以后对该页的请求将由缓存输出,而不必执行创建该页的代码。页面输出缓存是中最常用的一种缓存技术。在访问量很大的站点中,对访问频率高的页即使一次仅缓存一分钟,可以避免Web服务器与数据库之间的网络往返,改善响应时间和等待时间。另外,还采用了片段缓存和用户控件输出缓存技术。因为如果本系统中,涉及到复杂的权限管理,缓存整个页面有时并不现实。比如说页面的某些部分是针对用户定制的。而页面的其他部分是整个应用程序共有的。因此这些部分最适合使用片段缓存和用户控件进行缓存。另外菜单和其他布局元素,尤其是那些从数据源动态生成的元素,按照NET官方的优化建议,也采用这种方法进行缓存。这种技术可以将缓存的控件配置为基于对其控件(或其他属性)的更改或由页面级输出缓存支持的任何其他变动进行改变。使用同一组控件的几百个页面还可以共享那些控件的缓存条目,而不是为每个页面保留单独的缓存版本。(1)使用XML技术在Web架构的系统中,客户端和服务器端交互有两种情形:第一个是客户端从服务器端读取数据;第二个是客户端将本身的数据传递给服务器端。在数据量不大的情况下,一般性查询在执行速度上,没什么问题。追踪业务逻辑发现,在一些功能中,比如在汇总统计查询中,用户查询虽然频繁但每次查询的变动并不大,因此本系统考虑使用XML获取数据来解决上述的问题。采用XML技术,可将查询的结果和一些配置信息生成相应的XML文件保存在应用服务器上,当客户端再次访问服务器时,服务器将先去检索对应的XML,如果XML符合客户要求,则使客户端直接和XML文件进行交互,以便节省访问数据库的资源;另外,本人设想,随着系统的不断完善,能否将XML传送到客户端,在客户端恢复为数据集,直接在客户端进行一些操作,而不必和服务器交互,这样不仅可以节省客户的时间,还可以减少服务器的负载状况。51 北京交通大学专业硕士学位论文结束语9结束语本文为了避免B/S结构和C/S结构的缺点,结合两者优点,在客户管理领域设计出基于多层架构的地区级系统。技术方案选取数据库SQLserver2008+C#.NET平台,按照客户需求将系统分为用户管理、权限管理、客户管理、合同管理、订单管理、销售统计管理、日志服务管理等模块。并且根据企业实际情况,对不同用户身份的权限进行限制。该系统的的优点:层次清楚,每一层的作用都有明确的规定;各层次专注于自身功能的接口实现,整个层次保持相对的稳定。系统通过不改变接口,各个层次、各个组件进行优化的策略,能在不影响整个业务的前提下,不断的完善和改进。通过分解业务细节,将不同的功能代码分散开来,更利于系统的设计和开发,同时为可能的变更提供了更小的单元,更有利于抽象封装。系统通过角色访问控制、入侵IP检测、验证安全、windows身份验证等安全策略保证公司信息的安全性。另外,针对企业数据量访问量大的特点,系统考虑到对数据的访问速度很大程度上影响应用基于web架构的系统性能,因此对性能进行优化。优化的手段包括:SQL语句优化、连接池技术、javascript脚本、开启系统的缓存服务等。51 北京交通大学专业硕士学位论文展望10展望本文是对地区级客户管理系统应用的探索性研究,论文完成应用的第一版发布,基本满足需求,但是为了加强系统的功能、性能以及用户体验,需要进一步的完善。有些功能选择用比较简单的方法设计的,还需要进一步对代码进行抽象分离。另外,随着系统的不断扩展,会有新的需求提出,同时会有更多数据源接入。需要分析新需求与新接入的数据源,及时对以前不合适的需求进行修改,更好地完善系统的功能。51 北京交通大学专业硕士学位论文参考文献参考文献[1]罗纳德.s.史威福特.客户关系管理——加速利润和优势提升[M].北京:中国经济出版社,2001.[3]杨东龙.客户关系管理解决方案--CRM的理念.方法与软件资源[M].北京:中国经济出版社.2002.[2]保罗.格林伯格.实时的客户关系管理[M].北京:机械工业出版社.2002.[4]田同生.CRM首创者谈CRM——GannerGroup如是说[EB/OL].http://www.CCW.com.cn/htm/newsl/zL/ttsh/O1—08—27.[5]KevinHoffman,Gabrie1.NETFramework高级编程[M].北京:清华大学出版社,2002.[6]天极网新技术研究室.ASP.NET完全入门[M].重庆:重庆出版社,2001.[7]BillyHollis,RockfordLahaska.C#.NET程序设计教程[M].北京:清华大学出版社,2001[8](美)PeterThorsteinson,G.GnanaArunGanesh.梁志敏蔡建译.《.NET安全性与密码术》.清华大学出版社.2004.85.[9](美)斯蒂芬森.(美)晋劳.(美)琼斯 著.井中月.郝记生 译.SQL入门经典(第5版)[M].人民邮电出版社,2011.[10](英)福塔著.刘晓霞.钟鸣译.MySQL必知必会[M].人民邮电出版社,2009[11](美)弗里奇,(美)达姆著,姚军译.SQLServer2008查询性能优化[M].人民邮电出版社.2010.[12]孙士保.张瑾.ASP.NET数据库网站设计教程(C#版)[M].电子工业出版社.2010[13](以色列)奥西洛夫著.张昌贵.张博超,李丁山译.NET单元测试艺术[M].清华大学出版社.2012.[14]房大伟,苏宇,贯伟红.ASP.NET网络开发实例自学手册[M].人民邮电出版社.2008[15]岳学军,李晓黎.Web应用程序开发教程——ASP.NET+SQLServer[M].人民邮电出版社.2009.[16]梁立新.项目实践精解:ASP.NET应用开发——基于ASP.NET、C#和ADO.NET的三层架构案例分析[M].电子工业出版社.2010.[17](英)多兰斯,臧国轻译.ASP.NET安全编程入门经典[M].清华大学出版社.2011.51 北京交通大学专业硕士学位论文作者简历作者简历作者姓名:栾叶君,黑龙江省佳木斯市,1984年生人,教育经历如下:1990年9月——1996年7月黑龙江省佳木斯市第十六小学1996年9月——1999年7月黑龙江省佳木斯市第五中学1999年9月——2002年7月黑龙江省佳木斯市第一中学2002年9月——2006年7月黑龙江大学法学院2010年9月至今北京交通大学工作经历如下:2007年7月——2008年12月中国西部人才开发基金会2009年2月——至今国家发展和改革委员会西部开发司54 北京交通大学专业硕士学位论文独创性声明独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。学位论文作者签名:签字日期:年月日54 北京交通大学专业硕士学位论文学位论文数据集学位论文数据集关键词*密级*中图分类号*UDC论文资助地区级客户管理系统;.NET平台;多层架构;服务器缓存;公开TP311.5004.41学位授予单位名称*学位授予单位代码*学位类别*学位级别*北京交通大学10004工程硕士论文题名*并列题名论文语种*基于.NET多层架构的地区级客户管理系统设计与实现中文作者姓名*栾叶君学号*10135147培养单位名称*培养单位代码*培养单位地址邮编北京交通大学10004北京市海淀区西直门外上园村3号100044工程领域*研究方向*学制*学位授予年*软件工程软件工程2年2013年论文提交日期*2012年12月导师姓名*李孟刚职称*教授评阅人答辩委员会主席*答辩委员会成员电子版论文提交格式文本(√)图像()视频()音频()多媒体()其他()推荐格式:application/msword;application/pdf电子版论文出版(发布)者电子版论文出版(发布)地权限声明论文总页数*54页共33项,其中带*为必填数据,为22项。54