版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于WCF外贸ERP业务系统设计与实现摘要当今,ERP(EnterpriseResourcePlanning,公司资源筹划)系统已使许多公司生产经营管理发生了全新变化。成功地实行了ERP公司也从中获得了明显效益。但是通过这样近年发展,ERP系统规模也越来越大,导致维护难度极大。此外,子系统与子系统之间、模块与模块之间互相操作也是困难重重。如何解决这些问题已迫在眉睫。幸好,随着SOA原则成熟以及支持SOA实现技术不断发展,SOA在各公司信息化建设及其各部门业务整合上也具备了某些应用。WCF作为.NET近几年推出分布式开发技术,融合了之前.NetRemoting、WebService等有关技术,无疑是.Net平台实现SOA框架制胜利器。本文一方面简介了分布式开发模型发展过程,对老式C/S与B/S特点及基于分布式组件技术多层B/S开发模型优缺陷进行分析。接下来简介了SOA,探讨了WebService技术特点。在此基本上对WCF概念、多层服务模型、通道模型、WCF宿主进行分析。还对外贸ERP业务系统进行了进一步需求分析,最后制定了系统总体架构。本系统划分为四个层次,分别是体现层、通讯层、业务层和数据层。体现层涉及顾客界面以及一定量数据解决;通讯层重要负责客户端和服务器端之间通讯;业务层重要负责对数据按照一定商业逻辑进行操作;数据层重要是屏蔽上层业务逻辑与底层数据访问,对数据进行一系列操作。本系统不但对以上四个层具备良好设计,更是成功实现了以上四层。核心词:ERP系统,WCF,分布式,SOAAbstractToday,productionandoperationandmanagementofmanycompanieshavebeenchangedbyERP(EnterpriseResourcePlanning)system.ThecompaniesthatsucceedwiththeirERP'simplementalwaysgainssignificantbenefits.Butaftersomanyyearsofdevelopment,thesizeoftheERPsystembecomemoreincreasing,leadtoincreasemaintenance.Inaddition,theinteroperationbetweenthesubsystemandthesubsystem,themoduleandthemodule,thatisdifficult.Howtosolvetheseproblemsisimminent.Fortunately,withmatureSOA'sstandardsandtechnologytosupportSOAthatisdeveloping,thereareanumberofapplicationsforSOAbusinessintegrationbetweentheenterpriseinformationconstructionanditsvariousdepartments.NearlyWCFasdistributeddevelopmenttechnologyin.NETtofuseNetRemotingandWebService,undoubtedlyWCFisoptimalweaponin.NETframeworkforSOA.Thisdissertationreviewsthehistoryofdistributedsoftwaredevelopmentmodel,analysesadvantagesanddisadvantagesoftraditionalC/SandB/Smodel,especiallythemulti-tierC/Smodelbasedondistributedcomponent.ThisdissertationintroducesWCFconcept,multi-tierservicemodel,channelmodel,WCFhost.ThereisalsoathoroughrequirementanalysisfortheforeigntradeERPbusinesssystem,finally,establishesoverallstructureofthesystem.Thesystemisdividedintofourlevels,namely,thepresentationlayer,communicationlayer,businesslayeranddatalayer.Presentationlayerincludingacertainamountofdataprocessing;communicationlayerisresponsibleforclientsideandserverside’scommunication;businesslayerismainlyresponsibleforthedataaccordingtocertainbusinesslogictooperate;datalayerisshieldtheupperbusinesslogicandtheunderlyingdataaccess,dealswithaseriesofoperationsonthedata.Thesystemnotonlygooddesignofthefourlayers,butalsosuccessfulrealizationoftheabovefourlayer.KeyWords:ERPsystem,WCF,Distributed,SOA目录TOC\o"1-4"\h\z\u摘要 iAbstract ii目录 I图目录 =4\*ROMANIV表目录 =5\*ROMANV第1章绪论 11.1研究背景 11.2研究内容 11.3研究意义 21.4国内外研究现状 21.4.1国外研究现状 21.4.2国内研究现状 31.5论文组织构造 41.6本章小结 4第2章分布式开发模型与WCF技术 52.1C/S开发模型简介 52.2B/S开发模式简介 62.3分布式组件技术 72.4基于分布式组件技术多层C/S开发模型 82.5SOA简介 82.5.1SOA体系构造 102.5.2WebService简介 112.6WCF技术 122.6.1WCF概念 12合约 12协定绑定 13安全性层次 142.6.2基于WCF多层服务模型 152.6.3WCF通道模型 162.6.4WCF宿主 182.7本章小结 19第3章系统需求分析 213.1项目背景 213.2系统总体需求 213.3客户端功能 223.4重要业务流程 243.4.1外销合同管理 243.4.2收购合同管理 253.4.3进仓管理 263.4.4出仓管理 273.4.5出口明细单管理 273.4.6报关单管理 273.4.7结汇单证管理 283.4.8核销单管理 283.4.9信用证管理 293.4.10结算单管理 293.5本章小结 30第4章基于WCF外贸ERP业务系统设计 314.1系统总体方案 314.1.1体系构造概述 314.2系统构架实现 324.2.1体现层设计 324.2.2通讯层设计 364.2.3业务逻辑层设计 384.2.4数据层设计 394.3WCF技术在构架实现中应用 404.3.1WCF实现双工模式 404.3.2WCF解决大型数据传播 434.4数据库设计 464.4.1商品表设计 464.4.2客户表设计 474.4.3外销合同表设计 484.5本章小结 50第5章系统实现和成果展示 515.1系统布置环境 515.2系统实现 515.2.1ClientSearch体现层实现 515.2.2ClientSearch通讯层实现 535.2.3ClientSearch业务逻辑实现 545.2.4ClientSearch数据层实现 555.3系统成果展示 595.4本章小结 63第6章总结与展望 646.1论文总结 646.2将来工作 64参照文献 66作者简历 68道谢 69图目录TOC\h\z\c"图"图2.1C/S开发模型 5图2.2B/S开发模型 7图2.3基于分布式组件技术多层C/S开发模式 8图2.4SOA体系构造 10图2.5基于WCF多层服务模型 15图2.6通道堆栈 16图2.7通道对象静态类图 18图3.1ERP业务系统组织构造 21图3.2外销合同管理流程 24图3.3外销合同管理流程 25图4.1四层架构 31图4.2窗体类图 33图4.3BaseForm类图 34图4.4EclipseForm类图 35图4.5SearchForm类图 35图4.6WizardForm类图 36图4.7ECI通讯图 37图4.8数据层解决逻辑 39图4.9CDSLock类图 40图5.1ClientSearch体现层 52图5.2数据层机构图 58图5.3系统主界面 60图5.4客户查询界面 60图5.5客户编辑界面 61图5.6外销合同编辑界面 61图5.7收购合同编辑界面 62图5.8托运明细单编辑界面 62表目录TOC\h\z\c"表"表2.1WCF四种合约类型 13表2.2WCF宿主种类以及特点 19表4.1商品表表构造 46表4.2客户表表构造 47表4.3外销合同主表表构造 48表4.4外销合同商品表表构造 49表4.5外销合同费用表表构造 50绪论研究背景当今,ERP(EnterpriseResourcePlanning,公司资源筹划)系统已使许多公司生产经营管理发生了全新变化。成功地实行了ERP公司也从中获得了明显效益。但是通过这样近年发展,ERP系统规模也越来越大,导致维护难度极大。此外,子系统与子系统之间、模块与模块之间互相操作也是困难重重。如何解决这些问题已迫在眉睫。幸好,随着SOA原则成熟以及支持SOA实现技术不断发展,SOA在各公司信息化建设及其各部门业务整合上也具备了某些应用。WCF作为.NET近几年推出分布式开发技术,融合了之前.NetRemoting、WebService等有关技术,无疑是.Net平台实现SOA框架制胜利器。基于此,本文重要研究如何使用WCF分布式技术来实现一种外贸ERP业务系统。研究内容研究内容涉及如下三个重要构成某些:1)详细分析老式C/S两层架系统,在实际运营中存在问题,例如:系统数据库操作可扩展性差,数据层负责直接与数据库交互,业务逻辑层和表达层混合在一起作为另一层。虽然原系统已经把对数据库操作某些办法封装到了数据层类里面,对于不同事体对象可以依照需要使用类里面办法。但是这样设计,可扩展性不够好,当业务需求变动,需要变化类里面办法时,各个客户端都必要再重新更新应用程序。代码可重用性差,C/S开发模型程序基于不同开发工具,数据库平台,由于兼容性因素,代码很难重用。如果此前已用C#开发了一种C/S两层架构报价单管理系统,当前单位想用Java再开发一种Web版报价单管理系统,来以便客户查询公司产品价格。此时此前写代码就很难重用,不得不用java再重新实现一遍,增长了成本。思考若运用WCF技术与否可以解决这些问题。2)分析WCF构成、技术特点、通信模式、布置方式、安全性。3)分析外贸业务流程,从而设计出一套外贸ERP业务系统,有效地帮组公司去加强过程控制,设立风险预警,细化业务核算。研究意义在一种系统中特别是较为大型系统中,如外贸ERP业务系统,可按照功能切分为:商品管理系统、客户管理系统、外销合同管理系统、收购合同管理系统、报关单管理系统、仓储管理系统等。在这样应用中系统切分了、功能独立了、耦合减少了、容易维护了,可是各个系统中通讯怎么完毕呢?如果发生一笔“以销定购”业务,采购员在使用ERP系统新建收购合同步候,势必想去读取外销合同中有用数据(如商品信息),那要怎么做呢?是要直接引用外销合同管理系统DLL还是把这些需要互相调用功能放在一种叫Common项目中供所有子系统调用呢,或者干脆直接在收购合同管理系统中访问数据库中外销合同数据,这些办法都是不太良好。分布式技术浮现将物理分散资源、解决逻辑整合成统一工作平台,并在整个系统上进行分派与优化,克服了老式集中式系统缺陷。之后SOA(面向服务架构)浮现,又将应用程序不同功能单元构建为服务,这些服务通过定义良好借口和契约联系起来。接口采用中立方式定义,它独立于实现服务硬件平台,操作系统和编程语言。使得构建在各种系统中服务以统一,通用方式进行交互。Microsoft公司顺应这一趋势,推出了基于SOA网络开发新技术WCF(WindowsCommunicationFoundation,windows通信基本)。WCF采用面向服务新型编程模型简化了分布式应用程序开发。它提供分层体系构造,支持各种风格分布式应用程序开发。WCF对“WS-*”原则内置支持,提供了安全、可靠、协商过互操作。对于开发人员开说,这减少了达到异构平台互操作所需基本构造代码量。对于公司来说,这意味着在组织内部和外部与客户、伙伴和供应商交互能力,而不论她们使用是什么平台。因而,选用WCF分布式技术来实现一种外贸ERP业务系统,不失为一种最佳解决方案。国内外研究现状国外研究现状在某些IT应用比较发达欧美国家中,公司已经开始着手整合其不同种类操作系统,应用软件,系统软件和应用基本构造(applicationinfrastructure)。某些现存应用程序被用来解决当前业务流程(businessprocesses),因而从头建立一种新基本环境是不也许。公司应当能对业务变化做出迅速反映,运用对既有应用程序和应用基本构造(applicationinfrastructure)投资来解决新业务需求,为客户,商业伙伴以及供应商提供新互动渠道,并呈现一种可以支持有机业务(organicbusiness)构架。SOA凭借其松耦合特性,使得公司可以按照模块化方式来添加新服务或更新既有服务,以解决新业务需要,提供选取从而可以通过不同渠道提供服务,并可以把公司既有或已有应用作为服务,从而保护了既有IT基本建设投资。WindowsCommunicationFoundation(WCF)是Microsoft为构建面向服务应用提供分布式通信编程框架,是.NETFramework3.5重要构成某些。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务解决公司级互联应用解决方案[1]。依照微软官方解释,WCF(之前版本名为“Indigo”)是使用托管代码建立和运营面向服务(ServiceOriented)应用程序统一框架。它使得开发者可以建立一种跨平台安全、可信赖、事务性解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发集大成者,它整合了.Net平台下所有和分布式系统关于技术,例如.NetRemoting、ASMX、WSE和MSMQ。以通信(Communication)范畴而论,它可以跨进程、跨机器、跨子网、公司网乃至于Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,WindowsForms,NTService,COM+作为宿主(Host)。WCF可以支持合同涉及TCP,HTTP,跨进程以及自定义,安全模式则涉及SAML,Kerberos,X509,顾客/密码,自定义等各种原则与模式。也就是说,在WCF框架下,开发基于SOA分布式系统变得容易了,微软将所有与此有关技术要素都包括在内,掌握了WCF,就相称于掌握了叩开SOA大门钥匙。国内研究现状在国内,WCF推出,促使许多程序员积极地刊登大量关于WCF技术以及WCF技术应用有关文章,文章中还解说某些小应用程序。蒋金南在博客园刊登系列博文《WCF技术剖析》。为了更好地学习WCF,国内已经出版了几本外文翻译后WCF技术图书,深受广大程序员欢迎。诸多公司应用程序开发都采用了WCF框架,以使开发引用程序模块化,便于适应灵活多变外界需求。总体而言,国内WCF研究工作与国外是同步,但在WCF应用上小队较少,相信随着SOA概念普及以及Visualstudio发布,会有更多开发研究人员加入下WCF开发阵营中。论文组织构造论文章节安排如下:第一章:绪论。简介了论文研究背景、研究内容、研究意义和国内外研究现状。第二章:分布式开发模型与WCF技术简介。论述了分布式开发模型发展过程,分析了这些开发模型特点,比较了这些模型在构建分布式应用程序中长处与局限性。简介了SOA与WebService技术,分析了它们特点。在此基本上简介了WCF技术,对WCF层次构造,技术构成进行了分析。第三章:系统需求分析。简介了作者参加开发外贸ERP业务系统项目背景、系统总体需求、客户端功能、重要业务流程。第四章:系统架构以及核心技术。本文作者一方面给出了体系机构概念,并联系实际给出了本系统体系架构,使读者在整体上理解本外贸ERP业务系统。然后针对系统实现双工模式和大数据传播两方面核心技术,给出了可行解决方案。最后简介了系统中商品表、客户表、外销合同主表、外销合同商品表、外销合同费用表表构造。第五章:系统实现和成果展示。本章开头一方面给出了本系统布置环境,接着按照第四章设计思路,分别实现了ClientSearch模块顾客层、通讯层、业务层和数据层,最后展示了本系统成果。第六章:总结与展望。对本文内容进行总结,对WCF发展趋势进行展望,分析了WCF发展方向。本章小结在本章中,一方面简介了本文研究背景、研究内容、研究意义和国内外研究现状,最后给出了本文组织构造。分布式开发模型与WCF技术C/S开发模型简介C/S(Client/Server)构造,即人们熟知客户机和服务器构造。它是软件系统体系构造,通过它可以充分运用两端硬件环境优势,将任务合理分派到Client端和Server端来实现,减少了系统通讯开销。当前大多数应用软件系统都是Client/Server形式两层构造,由于当前软件应用系统正在向分布式Web应用发展,Web和Client/Server应用都可以进行同样业务解决,应用不同模块共享逻辑组件;因而,内部和外部顾客都可以访问新和既有应用系统,通过既有应用系统中逻辑可以扩展出新应用系统。这也就是当前应用系统发展方向。老式C/S体系构造虽然采用是开放模式,但这只是系统开发一级开放性,在特定应用中无论是Client端还是Server端都还需要特定软件支持。由于没能提供顾客真正盼望开放环境,C/S构造软件需要针对不同操作系统系统开发不同版本软件,加之产品更新换代十分快,已经很难适应百台电脑以上局域网顾客同步使用。并且代价高,效率低。其构造如图2.1所示:业务逻辑层业务逻辑层数据库访问层ClientServer数据库图STYLEREF1\s2.SEQ图\*ARABIC\s11C/S开发模型在这种开发模型中,应用程序业务逻辑和数据解决逻辑分布在客户和服务器两端。客户端接受顾客输入祈求,通过解决后将数据发送给数据库服务器,并将返回成果显示给顾客。与集中式系统相比,C/S开发模型有如下长处:1)服务器负荷较轻。业务逻辑集成在客户端,服务器仅负责数据祈求,不需要与顾客直接交互,减轻了服务器负载。2)数据储存管理功能透明。数据库服务器负责数据储存管理,客户端在得到相应权限后,对数据库访问是透明,以便了程序开发和顾客使用。3)将业务逻辑与数据库相分离,层次构造清晰。数据与业务解决分离开发模型比集中式系统构造清晰,有助于分布式程序开发。C/S开发模型浮现,推动了分布式技术应用与发展,其自身也有如下局限性:1)数据安全性差。由于业务逻辑集成在客户端,服务端无从理解操作合法性,给系统留下潜在安全隐患。2)代码可重用性差。C/S开发模型程序基于不同开发工具、数据库平台,由于兼容性因素,代码很难重用。B/S开发模式简介B/S(Browser/Server)构造即浏览器和服务器构造。它是随着Internet技术兴起,对C/S构造一种变化或者改进构造。在这种构造下,顾客工作界面是通过WWW浏览器来实现,很少某些事务逻辑在前端(Browser)实现,但是重要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier构造。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级成本和工作量,减少了顾客总体成本(TCO)。以当前技术看,局域网建立B/S构造网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低。它是一次性到位开发,能实现不同人员,从不同地点,以不同接入方式(例如LAN,WAN,Internet/Intranet等)访问和操作共同数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样跨平台语言浮现之后,B/S架构管理软件更是以便、快捷、高效。其构造如图2.2所示:Web浏览器Web浏览器业务逻辑层数据库访问层Web服务器数据库服务器图STYLEREF1\s2.SEQ图\*ARABIC\s12B/S开发模型B/S开发模型有如下长处[2]:1)业务扩展简朴以便,通过增长网页即可增长服务器功能。2)开发简朴,共享性强。3)维护简朴,升级容易。C/S开发模型应用必要开发出专用客户端软件,无论是安装、配备还是升级都需要在所有客户机上实行,挥霍了人力和物力。B/S应用只需在客户端装有通用浏览器即可,维护工作都在服务器端进行。当系统升级时,只针对本地服务器完毕相应工作,升级容易。4)数据库安全性好。客户端不与数据库直接相连,而是通过web服务器进行解决,最大限度保证了数据库安全。但存在如下局限性:1)页面动态刷新,响应速度明显减少。2)网站服务器负荷较重。分布式组件技术B/S为分布式开发提供了良好开发模型。当应用发生变化时,如何充分运用己有成果,保证已开发代码能移植到新应用中,最大程序节约投资是程序开发过程需要解决问题。不同于在集中和封闭环境下发展起来老式软件,分布式应用,特别是在Web环境下分布式开发,既有软件理论、办法、技术。难以有效地适应或基本不能适应这种新软件形态,老式办法也难以适应网络组件协同性、自适应性,以及需求多目的性;在软件可靠性方面,难以适应web环境所规定整体化、可靠性与安全性。分布式组件技术正是在这种背景下产生,其基本思想是将大而复杂软件应用提成一系列可先行实现、易于开发、理解和调节软件单元,这些软件单元被称为组件(components)。以组件为基本软件开发方案,效率高,费用低,可靠性好。分布式组件均有也许在将来被复用。环绕分布式组件进行组织开发,使得开发人员能在原有工作基本上,不断完善新系统功能并减少开发时间。基于分布式组件技术多层C/S开发模型在软件模块化趋势下,结合C/S开发模型与分布式组件技术形成了新开发模型,基于分布式组件技术多层C/S开发模型如图2.3所示:Client表达层逻辑Client表达层逻辑分布式组件业务逻辑层数据库访问层Web服务器数据库服务器UI层图图STYLEREF1\s2.SEQ图\*ARABIC\s13基于分布式组件技术多层C/S开发模式此开发模模型较好地解决了C/S开发模式中数据安全性差和代码重用性差局限性,也不用忍受B/S响应慢缺陷[3]。SOA简介SOA,面向服务体系构造(service-orientedarchitecture)是一种组件模型,它将应用程序不同功能单元(称为服务)通过这些服务之间定义良好接口和契约联系起来。接口是采用中立方式进行定义,它应当独立于实现服务硬件平台、操作系统和编程语言。这使得构建在各种这样系统中服务可以以一种统一和通用方式进行交互。这种具备中立接口定义(没有强制绑定到特定实现上)特性称为服务之间松耦合。松耦合系统好处有两点,一点是它灵活性,另一点是,当构成整个应用程序每个服务内部构造和实现逐渐地发生变化时,它可以继续存在。而另一方面,紧耦合意味着应用程序不同组件之间接口与其功能和构造是紧密相连,因而当需要对某些或整个应用程序进行某种形式更改时,它们就显得非常脆弱。对松耦合系统需要来源于业务应用程序需要依照业务需要变得更加灵活,以适应不断变化环境,例如经常变化政策、业务级别、业务重点、合伙伙伴关系、行业地位以及其她与业务关于因素,这些因素甚至会影响业务性质。咱们称可以灵活地适应环境变化业务为按需(Ondemand)业务,在按需业务中,一旦需要,就可以对完毕或执行任务方式进行必要更改。虽然面向服务体系构造不是一种新鲜事物,但它却是更老式面向对象模型代替模型,面向对象模型是紧耦合,已经存在二十近年了。虽然基于SOA系统并不排除使用面向对象设计来构建单个服务,但是其整体设计却是面向服务。由于它考虑到了系统内对象,因此虽然SOA是基于对象,但是作为一种整体,它却不是面向对象。不同之处在于接口自身。SOA系统原型一种典型例子是通用对象祈求代理体系构造(CommonObjectRequestBrokerArchitecture,CORBA),它已经浮现很长时间了,其定义概念与SOA相似。然而,当前SOA已有所不同了,由于它依赖于某些更新进展,这些进展是以可扩展标记语言(eXtensibleMarkupLanguage,XML)为基本。通过使用基于XML语言(称为Web服务描述语言(WebServicesDefinitionLanguage,WSDL))来描述接口,服务已经转到更动态且更灵活接口系统中,非此前CORBA中接口描述语言(InterfaceDefinitionLanguage,IDL)可比了。Web服务并不是实现SOA惟一方式。前面刚讲CORBA是另一种方式,这样就有了面向消息中间件(Message-OrientedMiddleware)系统,例如IBMMQseries。但是为了建立体系构造模型,您所需要并不只是服务描述。您需要定义整个应用程序如何在服务之间执行其工作流。您特别需要找到业务操作和业务中所使用软件操作之间转换点。因而,SOA应当可以将业务商业流程与它们技术流程联系起来,并且映射这两者之间关系。例如,给供应商付款操作是商业流程,而更新您零件数据库,以涉及进新供应货品却是技术流程。因而,工作流还可以在SOA设计中扮演重要角色。此外,动态业务工作流不但可以涉及部门之间操作,甚至还可以涉及与不为您控制外部合伙伙伴进行操作。因而,为了提高效率,您需要定义应当如何得知服务之间关系方略,这种方略经常采用服务级协定和操作方略形式。最后,所有这些都必要处在一种信任和可靠环境之中,以同预期同样依照商定条款来执行流程。因而,安全、信任和可靠消息传递应当在任何SOA中都起着重要作用。SOA体系构造SOA将应用程序不同功能单元称为服务,并通过接口形式对外公开。服务采用原则合同,通过网络来访问。服务提供者开发出各种各样有用服务,通过严格测试后把服务发布到公共服务注册表上,服务消费者(祈求者)通过查找服务注册表获得所需要服务,然后就可以使用所需要服务了。SOA由服务注册者、服务消费者与服务提供者构成,体系构造模型如图2.4所示:图STYLEREF1\s图STYLEREF1\s2.SEQ图\*ARABIC\s14SOA体系构造服务注册者服务消费者服务提供者查找消费/绑定发布1)服务提供者。服务提供者是提供服务实体,接受服务消费者调用祈求并进行响应。2)服务注册者。服务注册者重要作用是用来搜索网络上可用服务以及有关详细信息。服务注册者使用合同相称于一种服务目,它是接受并存储服务契约实体,供服务消费者查询服务之用。服务提供者需要将服务信息发布到服务注册中心。3)服务消费者。服务消费者从服务注册者处查询需要服务,并通过传播机制来调用服务,服务消费者可以是应用程序或另一种服务。它提供服务WSDL文档并通过SOAP合同来与要访问服务通信。WebService简介SOA提出为程序开发提供了较好开发模式,WebService技术则是这种开发模式详细实现技术之一。WebService使用基于XML消息作为数据通信方式,从而消除了使用不同组件模型、操作系统与编程语言系统之间存在差别,使异类系统可以作为计算网络一某些协同运营。WebService可以以为是一种布置在web上对象,同步WebService基石是以XML为主、开放web规范技术。它重要目的是在既有各种异构平台基本上构成一种通用与平台、语言无关技术层,各种平台上应用依托该技术层来实行互相连接和集成。WebService使用SOAP(SimpleObjectAccessProtocol,简朴对象访问合同)合同进行通信。SOAP是在分布式环境中互换信息简朴合同,它是一种轻量、简朴、基于XML合同,它被设计成在Web上互换构造化和固化信息。SOAP可以和现存许多因特网合同和格式结合使用,涉及超文本传播合同(HTTP),简朴邮件传播合同,多用途网际邮件扩充合同(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量应用程序。通过SOAP合同,WebService可以简朴、有效为服务消费者提供服务。WebService使用WSDL(WebServiceDescriptionLanguage,web服务描述语言)定义如何运用XML语法描述WebService规范。它通过在服务提供者和服务祈求者之间互换消息来描述WebService,可被看作是WebService和外界沟通桥梁。WebService技术继承了SOA长处,为解决分布、异构公司应用提供了比较好解决方案。通过它,可以将既有应用程序功能和数据以XML形式公开。然后,便可以创立使用此XML集合复合应用程序以实现各个构成应用程序之间互操作性。WebService使得整个应用程序开发从以操作系统为中心应用程序组织模式扩展到以网络为中心组织模式[4]。WCF技术WindowsCommunicationFoundation(WCF)是由微软发展一组数据通信应用程序开发接口,它是.NET框架一某些,由.NETFramework3.0开始引入,与WindowsPresentationFoundation及WindowsWorkflowFoundation并行为新一代Windows操作系统以及WinFX三个重大应用程序开发类库[5]。在.NETFramework2.0以及前版本中,微软发展了WebService(SOAPwithHTTPcommunication),.NETRemoting(TCP/HTTP/Pipelinecommunication)以及基本Winsock等通信支持,由于各个通信办法设计办法不同,并且彼此之间也有互相重叠性(例如.NETRemoting可以开发SOAP,HTTP通信),对于开发人员来说,不同选取会有不同程序设计模型,并且必要要重新学习,让开发人员在顾客有许多不便。同步,服务导向架构(Service-OrientedArchitecture)也开始盛行于软件工业中,因而微软重新查看了这些通信办法,并设计了一种统一程序开发模型,对于数据通信提供了最基本最有弹性支持,这就是WindowsCommunicationFoundation。WCF概念WCF由于集合了几乎由.NETFramework所提供通信办法,因而学习曲线比较陡峭,开发人员必要要针对各个部份内涵做进一步理解,才可以操控WCF来开发应用程序[6]。通信双方沟通方式,由合约来订定。通信双方所遵循通信办法,由协定绑定来订定。通信期间安全性,由双方商定安全性层次来订定。合约WCF基本概念是以合约(Contract)来定义双方沟通协定,合约必要要以接口方式来呈现,而实际服务代码必要要由这些合约接口派生并实现。合约提成了四种,如表所示[6]:表STYLEREF1\s2.SEQ表\*ARABIC\s11WCF四种合约类型合约类型作用数据合约(DataContract)订定双方沟通时数据格式。服务合约(ServiceContract)订定服务定义。营运合约(OperationContract)订定服务提供办法。信息合约(MessageContract)订定在通信期间改写信息内容规范。一种WCF中合约,就犹如下列代码所示:usingSystem;usingSystem.ServiceModel;namespaceMicrosoft.ServiceModel.Samples{[ServiceContract(Namespace="")]publicinterfaceICalculator{[OperationContract]doubleAdd(doublen1,doublen2);[OperationContract]doubleSubtract(doublen1,doublen2);[OperationContract]doubleMultiply(doublen1,doublen2);[OperationContract]doubleDivide(doublen1,doublen2);}}协定绑定由于WCF支持了HTTP,TCP,NamedPipe,MSMQ,Peer-To-PeerTCP等协定,而HTTP又分为基本HTTP支持(BasicHttpBinding)以及WS-HTTP支持(WsHttpBinding),而TCP亦支持NetTcpBinding,NetPeerTcpBinding等通信方式,因而,双方必要要统一通信协定,并且也要在编码以及格式上要有所一致。一种设立通信协定绑定示例如下[7][8]:<?xmlversion="1.0"encoding="utf-8"?><configuration><system.serviceModel><services><servicename="CalculatorService"><endpointaddress=""binding="wsHttpBinding"bindingConfiguration="Binding1"contract="ICalculator"/></service></services><bindings><wsHttpBinding><bindingname="Binding1"></binding></wsHttpBinding></bindings></system.serviceModel></configuration>虽然WCF也可以使用SOAP做通信格式,但它和以往ASP.NETXMLWebServices不同,因而有部份技术文章中,会将ASP.NETXMLWebServices称为ASMXService。WCF服务可以挂载于ConsoleApplication,WindowsApplication,IIS(ASP.NET)Application,WindowsService以及WindowsActivationServices中,但大多都会挂在WindowsService。安全性层次WCF实现上已经支持了传播层次安全性(Transport-levelsecurity)以及信息层次安全性(Message-levelsecurity)两种[9]。传播层次安全性:在数据传播时期加密,例如SSL。信息层次安全性:在数据解决时就加密,例如使用数字签章,散列或是使用金钥加密法等。基于WCF多层服务模型WCF继承了SOA体系构造,基于WCF多层服务模型也可以分为:客户层、WCF服务层、业务逻辑层与数据库层,如图2.5所示[10]:客户层WCF服务层客户层WCF服务层业务逻辑层数据库访问层数据库服务器图图STYLEREF1\s2.SEQ图\*ARABIC\s15基于WCF多层服务模型在这种服务模型中,各层次功能如下:1)客户层客户层是顾客与系统交互桥梁。由于WCF充分支持WS-*原则,与WebService技术同样,WCF与异构平台具备良好互操作性。WCF客户端可以运营在异构平台下,通过引用WCF提供接口与WCF服务交互。客户端只关怀接口内容,不必理解详细服务实现形式,与面向对象编程技术相比,简化了客户端编程复杂程序。当业务逻辑发生变化而客户端服务不变时,客户层无需做出任何修改,因而以便了系统维护。2)WCF服务层WCF服务层位于业务逻辑层和客户层之间。从客户端观点看,WCF服务层是对业务逻辑层封装与抽象。WCF对Windows平台下己有分布式解决技术进行整合,如DCOM,.NETRemoting,WSE等,并为分布式开发提供了统一开发模式,减少了系统维护复杂度WCF服务层对客户层提供服务接口,WCF服务是由下一层即业务逻辑实现。3)业务逻辑层业务逻辑层实现了WCF服务详细内容。业务逻辑层可以是服务实现,也可以是对其他WCF服务调用封装。WCF可以将基于初期Windows分布式技术进行整合,在进行少量代码修改状况下迅速构建公司应用,节约了投资。4)数据库访问层数据库连接层为业务逻辑层提供访问服务,并提供数据库操作办法。本层将详细数据库与数据库操作实现方式分离,可以将既有系统顺利转移到不同数据库服务器上。结合ADO.NET提供支持,开发人员可以迅速构建在线/离线分布式应用。将多层C/S开发模型与WCF技术结合,为分布式提供了高效开发模式。这种模式结合了各种开发模式长处,为开发不同平台下分布式应用提供了有力支持。WCF通道模型通道堆栈是具备一种或各种消息解决通道分层通信堆栈。堆栈底部是传播通道,它负责使通道堆栈适应基本传播(例如,TCP、HTTP、SMTP和其她类型传播)。通道为消息发送和接受提供了一种低档编程模型。此编程模型依赖于各种接口和其她类型模型(统称为WCF通道模型)。如图2.6所示[11]:图STYLEREF1\s2.SEQ图\*ARABIC\s16通道堆栈底部通道称为传播通道。它是负责与其她方之间发送和接受消息通道。这涉及负责在与用于和其她方通信格式之间转换Message对象。传播通道上面可以有任意个合同通道,每个合同通道负责提供一种通信功能(如可靠传递保证)。合同通道对以Message对象形式流过其中消息执行操作。合同通道普通会转换消息(例如,通过添加标头或加密正文),或者发送和接受合同通道自己控制消息(例如回执确认)。每个通道均实现一种或各种接口,称为通道形状接口或通道形状。通道形状最底部是IChannel接口,该接口提供一种GetProperty<T>办法,用作访问由堆栈中通道公开任意功能分层机制。扩展IChannel五种通道形状是:1)IInputChannel单一消息传递2)IOutputChannel3)IRequestChannel祈求答复4)IReplyChannel5)IDuplexChannel双工通信此外,这些形状中每个形状均有一种扩展System.ServiceModel.Channels.ISessionChannel以支持会话等效项。这些等效项是:1)IInputSessionChannel2)IOutputSessionChannel3)IRequestSessionChannel4)IReplySessionChannel5)IDuplexSessionChannel通道堆栈普通是使用工厂模式创立,在这种模式中,绑定创立通道堆栈。在发送端,使用绑定生成ChannelFactory,而后者生成通道堆栈并返回对堆栈中顶部通道引用。之后,应用程序可以使用此通道发送消息。在接受端,使用绑定生成IChannelListener,用于侦听传入消息。IChannelListener通过创立通道堆栈并将应用程序引用传递给顶部通道,将消息提供应侦听应用程序。之后,应用程序使用此通道接受传入消息。通道对象模型是实现通道、通道侦听器和通道工厂所必须一组核心接口。还提供某些基类以辅助自定义实现。ICommunicationObject是定义所有通信对象实现基本状态机核心接口。CommunicationObject提供了此核心接口实现,可以从此实现派生其她通道类而不必重新实现接口。但这并不是必须:自定义通道可以直接实现ICommunicationObject而不继承自CommunicationObject。通道对象静态类图如图2.7所示:图STYLEREF1\s2.SEQ图\*ARABIC\s17通道对象静态类图WCF宿主几种常用WCF宿主种类以及特点如表2.2所示:表STYLEREF1\s2.SEQ表\*ARABIC\s12WCF宿主种类以及特点宿主形式特点WinForms应用程序WindowsForms宿主可以提供管理宿主状态UI,操作更加直观。控制台应用程序控制台作为宿主托管简朴,普通做简朴WCF编程时候使用。Windows服务Windows服务可以长期运营在后台,支持所有绑定合同,但是安装布置相对复杂。承载于Internet信息服务(IIS)中Web应用程序IIS布置简朴,可以向发布WebService同样布置,但是仅仅支持http合同,并且宿主进程在客户祈求时候启动,IIS托管带来弊端就是WCF有些特性入回调、单例服务、流解决、事务传播等特性无法支持。在选取应用程序类型时,必要考虑某些特定规定ServiceHost必要被实例化才干提供运营服务所需承载环境。控制台应用程序和WinForms应用程序普通运营在顾客桌面计算机上。在桌面上是可见,它们可以承载您服务,安全性较差,因而并不合用于公司宿主。由于咱们要让咱们公司服务可以支持更大更多服务,在使用控制台应用程序和WinForms应用程序作为host时候,显然不适合,在这种体系构造中,这些合用于公司宿主普通可以满足诸如高可用性规定。因而,咱们不能将控制台或WinForms应用程序作为合用于公司宿主。唯一可行就是在IIS上承载服务或将其Host到Windows服务。事实上在项目开发过程中咱们普通都用windowsapplication或consoleapplication作为host这样有助于调试和测试,而在项目布置时候,咱们普通会选取IIS或windowsservice作为host。IIS有诸多长处,她自身提供了诸多功能。本章小结本章回顾了分布式开发模式发展过程,简介C/S构造与B/S构造特点,分析了它们优势和局限性。分析了基于分布式组件技术C/S构造特点,在此基本上讨论了SOA和WebService技术,指出可重用、可靠性好、高效易维护是分布式开发目的。本章在分析了WebService技术局限性基本上,对WCF技术特点,体系构造进行了详细简介。通过对WCF服务模式与层次构造研究,分析了WCF运营机制与原理。最后对WCF通道模型,WCF宿主形式进行探讨,展示了WCF特点。系统需求分析项目背景上海茶叶国际贸易有限公司重要经营茶叶、可可豆、可可粉以及纺织品等其她商品代理业务。其中茶叶以自营为主,并带有加工工厂;可可豆、可可粉为期货业务;茶叶精为主内销;纺织品等其她商品以代理为主。公司贸易涉及辽阔,除进出口业务自营代理业务外,还承办补偿贸易、来料、来件、进料加工等业务。图STYLEREF1\s3.SEQ图\*ARABIC\s11ERP业务系统组织构造当前,公司面对着来自人民币不断升值、国家控制国际贸易顺差以及国内通货膨胀带来生产成本增长等多重压力。在这严峻形势下,公司经营由粗放转向精细型,对于常规产品方面,要做深做透,同步不断开发新产品,形成差别优势;在客户服务上,加快响应速度,减少交流中误差;在公司管理上,加强过程控制,设立风险预警,细化业务核算。系统总体需求系统应遵循如下原则[12]:1)科学实用原则。该原则是系统架构主线出发点,立足于科学技术,一切以满足公司真实业务需要为架构目。2)经济性原则。尽量运用既有资源,坚持在先进、高性能前提下合理投资,保证在成本最低状况下获得最大经济效益和社会效益。3)安全可靠性原则。最大也许地减少因系统架构故障而导致业务无法正常运营状况,同步,设计中还要规划安全体系建设,提高系统整体安全性。4)先进成熟性原则。在IT技术飞速发展今天,规划产品和技术应具备一定前瞻性,可以适应将来一段时间内,公司业务需求和技术发展趋势。同步,应当兼顾产品和技术成熟性,保证系统架构整体安全性。5)开放与可扩展性原则。系统架构应尽量地使用开放式技术,并充分考虑可扩展性,满足不断发展变化公司业务和技术需求。6)统一原则化原则。尽量采用业界公认行业或技术原则,减少实行和管理复杂度。客户端功能客户端需要实现如下九个方面功能[13]:1)资源管理公司中重要资源重要有:商品、采购商、供应商、委托代理方以及其她分供方等。整个系统将配合公司管理制度使这些资源得到统一管理,对于资源深层次分析将为产品经营和客户关系管理提供重要数据。2)出口业务公司在进一步规范业务操作、减少贸易风险同步,还应实现系统中数据充分共享,提高工作效率。在整个出口业务中,涉及贸易磋商、工厂询价、对外报价、客户订单、生产排产、采购合同、进出仓环节、发运告知等环节,此外涉及代理业务解决、付款申请等。3)储运管理在出口业务解决过程中,储运部在接受业务数据后,制作有关单证,安排配舱包管事宜,并负责将结汇单证交银行或给业务员寄单。同步储运部还需要审核收到出口信用证,并转交给有关业务员审核,此外还管理着公司核销单以及加工手册,并负责审核储运有关费用支付。在进口业务解决过程中,储运部负责进口报关工作,同步负责进口报关、运送等费用支付审核。4)进口业务实现进口业务数据充分共享,规范业务操作。在整个进口业务中,涉及进口报价、进口合同管理、进口付汇核销、进口报关和业务结算等。5)进来料加工管理整个加工贸易全过程,重点是对加工手册管理,集中管理加工手册申领,跟踪加工手册流向,控制加工手册中原料单耗,校验加工手册公司内部数据与海关数据,从而规范整个加工贸易业务操作。6)仓库管理整个仓库系统管理着公司出口、进口以及进来料加工业务所有库存商品(涉及厂存商品),负责库存商品入库、出库、库存盘点等业务。7)资金管理集中管理公司各种资金收付。其中涉及出口(预)货款支付、出口费用支付、出口收汇、进口费用支付、进口货款收款、进口开证费用、办公费用、资金利息以及资金筹划管理。8)查询记录为公司各个岗位提供了自己权限范畴内有关信息查询和记录数据,特别对总经理和部长提供满足管理需要决策数据。9)系统管理和系统数据重要设立公司部门、人员、岗位、权限、惯用数据以及数据备份。重要业务流程外销合同管理图STYLEREF1\s3.SEQ图\*ARABIC\s12外销合同管理流程流程描述[14]:1)外销合同数据是整个出口业务流程数据重要源点,录入数据必要对的无误。2)外销合同由业务员制作,同步制作相应合同评审表,合同制作完毕经业务员本人确认无误后提交领导审批,审批通过后合同为正本(ORIGINAL)合同,否则为样本(SAMPLE)合同。只有正本合同才是有效。只有正本合同才容许执行背面操作。3)批准后合同,若要修改,则保存原版本,生成新版本。4)外销合同规定货源员备货时,采购商品货源员由业务员来指定。由于不同商品也许是各种工厂生产,因此系统容许一种外销合同指定各种货源员。外销合同生成时,系统自动默认业务员为货源员。5)代理业务容许暂时先不制作外销合同,先制作出口明细单。如果要打印合同,则依照出口明细单信息生成一种外销合同。6)如果是进来料加工业务,在到海关办理加工手册同步,必要附带一份海关合同。依照正式合同条款信息,加工手册中成品备案商品信息,系统自动生成一份海关合同,其合同格式和公司正式合同格式一致。7)如果合同需要信用保险,则在合同条款中进行标注,同步提供信用保险使用状况查询。8)在制作外销合同同步,拟定预测出运日期,预测交货日期等信息,在合同进程中进行跟踪,对于没有准时完毕合同跟进业务进行预警。9)对于已审批,但未订立采购合同外销合同商品,要提示相应查询和提示功能。收购合同管理图STYLEREF1\s3.SEQ图\*ARABIC\s13外销合同管理流程流程描述[15]:1)货源员接到业务员备货指令后,与国内生产厂家磋商,就商品价格、品质规定、交货期以及结算方式达到一致,订立购货合同。2)收购合同分“以销定购”和“库存备货”两种。这两种状况都是在收到业务员指令后才执行。“以销定购”是指先有外销合同,再进行商品采购。“库存备货”是为了备商品安全库存,此时没有外销合同。在“库存备货”状况下,为了满足出库单制作(选取业务员库存商品时,只能选取业务员本人库存商品),必要规定一种收购合同相应是一种业务员。如果两个业务员商品同步需要一种货源员采购时,必要制作两个收购合同。3)以销定购收购合同商品信息来源于外销合同,商品采购价格可以从外销合同中读取,并可依照实际状况,调节详细数据,条款信息由业务员手工输入,数据输入完毕经业务员本人确认无误后提交部门经理审批,审批通过后合同为正本(ORIGINAL)合同,否则为样本(SAMPLE)合同。只有正本合同才是有效。只有正本合同才容许执行背面操作。4)货源员在和工厂谈价格时候,大某些是按含税价谈,但也有按不含税价谈。系统设计时都要考虑。5)一种收购合同只能相应一种外销合同,一种外销合同可以相应各种收购合同。6)代理出口业务在入库之前也必要做收购合同。收购合同制作办法类同于自营业务收购合同制作办法。7)出口/国料作价加工(内贸/原材料加工完毕后需要将加工成品转出口),在收购合同打印界面上要反映出出售给工厂辅料信息,辅料信息可以来自内贸/原材料收购合同(与收购合同相应关系为多对多),也可以直接来自业务员商品库。8)茶叶作为生产任务单时候,相应料件从材料库存里面读取。进仓管理流程描述:1)凡是需要工厂开增值税发票业务必要制作入库单。即自营业务、普通代理业务必要制作入库单,纯代理不做进仓单。2)在自营出口业务中,货源员确认工厂已经及时交货,货品准备进仓时,制作入库告知单。工厂按照入库告知单批示,将货品运至指定仓库。仓库在验收货品后,确认货品入库即入库告知单转变为入库单(电脑中确认过程由货源员或相称货源员角色完毕)。工厂要结算货款时,必要有入库单、收购合同、增值税发票等单据,提交财务,并由业务员提出付款申请,通过有关审批环节,审批通过后财务付款。3)入库单单价和商品必要为不含税单价和不含税金额。4)公司有实物仓库,也也许是存厂。5)来料加工料件不做进出仓单。6)入库单种类:入库单,入库红冲单,其她入库单等。出仓管理流程描述:1)在业务员在制作出口明细单后,制作商品出库告知单。出库告知单一种是交给货代提货,一种给仓库备货,此外是财务记账凭证。2)和入库单同样,自营业务、普通代理业务时必要制作出库单,纯代理可以不做出库单。出口明细单管理流程描述:1)当业务员将出运明细单数据发送给单证人员后(业务员本人也可以是单证人员),单证人员能浏览到业务员提交给自己新明细单信息(明细单发送时业务员指定直接单证人员),单证人员接受出运明细单后,系统自动将明细单数据拆提成2套单证:托单、报关商检单证、结汇议付单证。2)单证人员在接受明细单信息之前,可以退回业务员发送明细单信息,退回时,清空指定单证人员。如果明细单数据已经接受,则不容许退回。3)报关单据,结汇单据由单证人员与储运人员分开接受。报关单管理流程描述:1)储运人员在接受数据后,依照报关需要,可以修改有关商品信息,打印报关单证。2)报关单证涉及:报关发票(合并前、后两种)、报关装箱单、报关单、报关委托书、异地加工贸易申请表、商检发票、商检装箱单、商检报关单、商检合同、报检委托书、出境货品报检单、先放行申请书、浦东海关5000美金如下敷料核销表、保证函、出口明细单等。3)单证打印完毕后,单证人员确认制单完毕。配上核销单后,一并交给报关人员进行报关。4)一票业务只有一套报关单证。如果一次出运有2种贸易业务同步出运,则建议分开两个发票解决。5)由于报关发票和箱单商品数据条数也许不同,建议发票和装箱单商品库分开解决。结汇单证管理流程描述:1)单证人员依照业务员发送出运明细单数据和信用证规定,打印结汇单据。2)结汇单证涉及:结汇发票、结汇装箱单、汇票(交行、农行)、Forma、CCPIT(毛重、数量)、装船告知、品质证明书、证明信、普通产地证、普惠制产地证,亚太地区原产地证、输欧出口允许证、纺织品暂时出口允许证申请表、出口明细单等。3)单证打印完毕后,单证人员确认制单完毕。提交给业务员或交单人员,进行交单操作。4)由于结汇发票和箱单商品数据条数也许不同,建议发票和装箱单商品分开解决。5)结汇发票中需要进行认证商品必要单独打印一套发票信息。核销单管理流程描述[16]:1)核销单管理员(财务人员)从外管领用核销单后,登记核销单号、领用日期、报关口岸,并在网上登记各核销单报关口岸。此时核销单状态为“未使用”。2)单证人员依照发票号到核销单管理员处申请核销单。核销单管理员将外销发票输入系统。此时核销单状态为报关中。3)报关完毕,业务员收回核销单后,核销单管理人员记录实际返单日期。此时核销单状态为“已返单”。4)核销单管理人员将核销单交财务人员,财务人员输入核销单返回财务日期。此时核销单状态为“回管理员”。5)当核销单相应水单配齐后,由核销单管理员将核销单、报关单和银行水单一起交外管核销,并在系统中输入核销日期。此时核销单状态为“已核销”。6)报运人员在外运配仓中输入报关日期后,自动反馈到核销单信息中,同步计算预测核销日期(预测核销日期=报关日期+90天计算)。7)报关单退税连返回核销单管理员时,由核销单管理员输入报关单退税联返回日期。作为后来退税申报所需文档与否齐全可查询根据。8)核销单作废后,状态为“注销”,注销核销单不能再使用。9)若是代理业务,由委托方打单、配船、报关状况,由于报关前,电脑中不一定由发票信息,由于没有发票号,故不能自动配核销单。这种状况解决如下:业务员到核销单管理员处领用空白核销单,由核销单管理员记录领用人、领用日期、核销单去向(如代理委托方名称)等。核销单返回后,业务员补起发票信息后,手工将发票和核销单匹配起来。手工配时,在核销单管理中,找到相应核销单号,在该核销单信息栏中输入发票号即可,同步将核销单号反馈到报关单证中。信用证管理流程描述:1)当外销合同审批通过后来,若是信用证方式成交,则由业务员负责向客户催证。2)当信用证到公司后,由储运部审证人员对信用证进行审证,审证完毕后将信用证信息录入电脑,其中软条款信息由信用证管理员维护。注意:一种信用证也许由两业务员使用。3)信用证修改后,信用证修改人员将登记信用证修改记录。4)在出运明细单输入信用证编号时,判断该信用证与否已到(按登入电脑计算)或则出运金额与否不不大于信用证金额,若没到或超过信用证金额,则提示业务员,并且不容许出运明细单存盘。5)若审单员或银行发现实际单据和信用证有不符点时,在不能修改信用证前提下,规定业务员做担保申请,并提交审证员审批,并由审证员确顶该担保书与否规定公司审批。结算单管理流程描述:自营或合营业务(外销发票)执行结束后(付工厂货款,付运保佣,付国内费用,收国外客户款等资金往来已结束),业务员制作结算单。读取业务在各分散处登记收付款信息及财务实际发生信息,计算出发票实际盈亏状况。当外销发票已经结算完毕,此时如果浮现收汇没有完毕状况,应在逾期收汇查询中消除此发票预警(可以理解成已经收汇,但收汇有差额。这些数据可以提供应业务员或公司有关领导作为分析客户信用根据)本章小结本章一方面简介了项目背景,然后研究了系统总体需求和客户端需实现业务功能,最后研究了项目中重要业务流程,其中涉及外销合同管理、收购合同管理、进仓管理,出仓管理,出口明细单管理、报关单管理、核销单管理等。通过对外贸ERP业务系统业务需求分析,无论对开发流程还是技术架构搭建都提供了必要保证。同步业务需求理解有助于在开发过程中对某个详细业务有较好理解,减少开发过程中盲目性。.基于WCF外贸ERP业务系统设计在理解了有关技术知识和保险系统需求后,本章正式开始设计系统。本系统在典型三层框架(体现层、业务层、数据层)基本上,加了一层通讯层,充分运用了.NET4.0中WCF魅力,更好实现了客户端和服务器端数据通讯。系统总体方案体系构造概述重要框架基于C/S体系构造。将系统分为四层,由上及下分别为:体现层、通讯层、业务逻辑层、数据访问层,如图4.1所示。商品管理UI客户管理UI商品管理UI客户管理UI外销合同管理UI……体现逻辑层WCFClientWCFService商品Service客户Service外销合同Service……商品Component客户Component外销合同Component…….DataAccessLayer商品datasource客户datasource外销合同datasource……..商品Database客户Database外销合同DatabaseDatabase………图STYLEREF1\s4.SEQ图\*ARABIC\s11四层架构体现层:体现层涉及顾客界面以及一定量数据解决。顾客界面重要是响应顾客祈求以及呈现服务器端返回数据。而数据解决涉及对顾客数据进行验证,组装顾客祈求数据并传给通讯层已经通过通讯层获取服务器端返回数据。通讯层:重要负责客户端和服务器端之间通讯。业务逻辑层:重要负责对数据按照一定商业逻辑进行操作。也就是说把某些数据层操作进行组合。在该系统中,业务层重要是Business(业务逻辑)层。Business层重要负责与业务有关逻辑解决,如数据合法性检查及检索或者更新表解决。它事实上是通过通讯层链接了体现层和数据层,它向通讯层提供了某些函数接口,函数内部实现了需要详细解决业务,Business层提供了业务逻辑详细实现,即需要做哪些解决,这些解决又需要对哪些表进行哪些操作,最后是通讯层提供了对各个表进行查询和更新操作。数据访问层:是屏蔽上层业务逻辑与底层数据访问,使业务与数据操作无关。整个系统工作流程是:客服端向服务器端发送祈求时通过ECI端,并把自己祈求分为2某些,分别是消息头和消息主题。在消息头中指定在服务器端要调用接口,ECI依照消息头中内容在服务器端创立相应组件。而除此之外,ECI可以依照多台服务器合计响应时间来进行负载均衡(LoadBalance)[17]。ECI在收到客户端祈求后会作出某些响应(Response)并以不同类型返回(例如以XML形式返回成果,出错时会FaultMessage形式返回。服务器端在接到ECI端发来消息时普通以Access形式来存取数据(Access重要用来构建SQL语句),而当构建新数据时,则通过xxxSource形式进行插入、删除、更新操作。DateAccess工程对数据进行封装或者以多线程访问等方式和数据库进行交互。而对于某些复杂逻辑则采用xxxComp专门组件进行相应操作。而LDAP依照专门LDAPSource组件进行顾客操作管理。服务器端最后将操作成果通过ECI端返回客户端完毕一次完整操作。结合这些原则理论,咱们开始详细简介系统设计与实现,由于业务逻辑层重要是对商业逻辑实现,这与普通系统差别并不大,因此如下简介并不包括对业务逻辑层详细描述。系统构架实现体现层设计体现层,用于顾客接口展示,以及用业务层类和对象来“驱动”这些接口。在本系统中,重要使用了WinForm来实现,但是同步支持Web客户端访问是本系统下一步实现目的,由此在本系统中专门抽出了客户端通用组件层用来统一WinForm以及Web对通讯层访问。本文将Form依照业务需求进行分类如图4.2所示,以BaseForm为基类,它涉及了本系统中最基本行为,涉及:ResetClasses,HasAccessRight,ApplyEclipseStyle,DefineValidationRules,LoadData,SubmitData,ShowError/Warningmessage,Localization等。图STYLEREF1\s4.SEQ图\*ARABIC\s12窗体类图BaseForm设计:ResetClassesECI中某些实例、RuleGroup、Session中某些公共信息都是存储在一种被叫作ClientDataManager类中(这个类将属于客户端通用组件),然后被不同窗体共享。因此在不同窗体调用它之前要清理数据缓存,由于不同窗体数据是不同样。因此ResetClasses作用就是在不同窗体调用ClientDataManager之前,重置窗体数据缓存。HasAccessRight检查顾客与否有访问某些控件权限。例如,菜单权限管理,由于不同顾客所见到菜单内容也是不同样。ApplyEclipseStyle设立窗体中所有控件字体颜色、背景颜色,所有界面控件本地化、工具栏按钮设立。DefineValidationRules窗体上某些控件再提交给服务器端之前需要进行进行一定限度验证(例如必填项,最大/最小值约束等等),以节约服务器端计算资源,避免无意义计算,因此DefineValidationRules类用来添加相应规则到各自窗口中。BaseForm类如图4.3所示:图STYLEREF1\s4.SEQ图\*ARABIC\s13BaseForm类图EclipseForm继承于BaseForm重要是用来实现异步调用服务器功能。重要涉及:Closetheform,Releaselock,Multi-threading。Closetheform释放窗体上锁,关闭窗体、展示上一层窗体。Releaselock释放和该窗体有关业务锁。Multi-threadingutility定义某些基本属性和办法,减少修改代码以使用多线程代价,提高开发效率。再本系统中使用BackgroundWorker来实现顾客层多线程。使用BackgroundWorker好处在于BackgroundWorker使用基于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甜品台实战营销方案(3篇)
- 盐亭高压清洗施工方案(3篇)
- 空调隐藏施工方案图集(3篇)
- 线下跨品类营销方案(3篇)
- 营销工作重组方案(3篇)
- 设备改造施工方案模板(3篇)
- 酒店改造土建施工方案(3篇)
- 铁路施工防汛应急预案(3篇)
- 雪花啤酒产品营销方案(3篇)
- 马戏大棚搭建施工方案(3篇)
- 特种设备安全监察条例2024修订解读
- NIID生物标志物研究进展
- GB/T 24810.1-2026起重机限制器和指示器第1部分:通则
- 富邦华一银行招聘笔试题库2026
- 2025江苏南通港(港口)集团有限公司招聘工作人员拟录用人员笔试历年参考题库附带答案详解
- 煤矿3.60Mt-a产能核增项目环境影响报告书
- 律师费约定合同范本
- 2025年度小户型家居市场调研:空间优化、多功能家具及刚需适配报告
- 殡葬花艺知识培训课件
- 医药代表合同(标准版)
- 矿场股权融资方案(3篇)
评论
0/150
提交评论