分类号密级UDC学校代码硕士研究生学位论文基于Web服务的企业信息化集成应用学院(部、所):信息学院专业:计算机应用技术姓名:韩雪导师:王元亮教授论文起止时间:2011年5月~2012年5月
学位论文原创性声明声明:本人所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。论文作者签名:日期:年月日学位论文版权使用授权书本人完全了解云南财经大学有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文和论文电子版,允许学位论文被查阅或借阅;学校可以公布学位论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存、汇编、发表学位论文;授权学校将学位论文的全文或部分内容编入、提供有关数据库进行检索。(保密的学位论文在解密后遵循此规定)论文作者签名:导师签名:日期:年月日日期:年月日
摘要摘要Web服务是一种新的Web应用程序开发模式,具有互操作性和灵活性等特点,而且是开放的通讯标准,这种开发模式是异构系统集成的平台和主要手段,它的基本理念是:把软件做成服务,并且遵从其相互对应的标准,让不同的系统能够跨越平台,彼此相互兼容,具有数据共享和无缝通信的能力。本文则是针对以Web服务技术为基础,在企业信息化系统中进行的研究与应用阐述。伴随着我国市场经济的发展,各个大中小企业对我国国民经济的增长起到了很大的促进作用。我国企业需要不断加强对信息的分析能力,而且必须加强对信息的判断能力,以及企业的信息化建设,这对于提高我国企业的市场竞争力,更进一步,对于我国国民经济水平的提高,具有重要的现实意义。企业信息化是指企业综合运用各种信息技术,在企业的生产和经营的各个环节,充分开发和利用内、外部各种资源,包括人力资源和信息资源,然后建立与此相适应的组织模式,从而使得企业的生产、管理、决策等过程的效率、水平与经营效益得到提高,并且增强了企业竞争力的一种过程。进行企业信息化建设有个很重要的目的,那就是在改造传统产业以及发展高新技术产业(以信息技术为核心的高新技术)的同时,不断提高企业的开发创新、经营管理与竞争能力。要想实现企业快速发展,一个有效途径就是企业开展企业信息化,这对于实现传统经营方式的转变,以及对于节约营运中的各项业务成本有很大的帮助,并且能够提高较大的工作效率,让企业的内部管理更加容易。对于企业信息化中存在的一些问题,与Web服务技术的优势相结合,本文设计的是一种以Web服务为基础的企业信息系统架构,而且对架构各个层次进行了详细设计,然后给出了各个层次的设计原则。这个架构将Web服务技术拓展到系统架构设计中,具有灵活性和可扩展性、可重用性、安全性等特点,同时克服了传统分布式技术不能很好的适应协议、平台以及体系结构差异的缺点,为企业之间信息交互及企业内部应用系统集成提供了全新的解决方案。本文通过构建以Web服务为基础的企业信息化架构,实现了集成开发企业信息化系统的模式,详细分析了Web服务技术在企业信息化中的应用,对基于i
摘要Web服务的信息系统架构各个层次进行实现,系统以.NET作为开发平台,使用C#语言,后台使用SQLServer数据库管理系统,采用B/S结构的开发方式,开发SOAPWEB服务,最后阐述了Web服务技术实现的难点和关键点。本文第1章是引言,介绍了研究目的和意义、选题背景、研究方法和论文结构安排。第2章是Web服务概述,包括Web服务的定义、Web服务协议栈、Web服务关键技术。第3章是Web服务在企业信息化中的研究,研究了Web服务在企业信息化中的优势和基于Web服务的信息系统架构设计。第4章是Web服务在企业信息化中的应用,包括需求背景及目标分析构建WEB服务、SOAPWEB服务、客户端和代理、消费PRODUCTINFORMATIONSOAPWEB服务。第5章是集成过程中的主要问题,包括WEB服务方面的问题、数据集成方面的问题、非技术因素。第6章是结论,对本文进行系统地总结。关键词:Web服务;企业信息化;SOAP;XMLii
AbstractAbstractWebservicesisanewWebapplicationdevelopmentmodel,withopencommunicationstandardsandflexibility,interoperability,etc.,tobecomeaplatformforheterogeneoussystemintegrationandthemainmeansof,thebasicideais:makethesoftwareservicesandcomplywithappropriatestandardsforthedifferentsystemscanbecross-platform,compatiblewitheachother,,'smarketeconomy,allmediumandsmallenterprisesofChina''senterprisesneedtocontinuouslystrengthentheanalyticalcapacityoftheinformation,andmustenhancetheabilitytojudgeinformation,andinformationtechnologycompanies,whichenhancethemarketcompetitivenessofourenterprises,andfurther,forraisingthelevelofChina',includinghumanresourcesandinformationresources,andestablishanorganizationtoadapttothismodeof,whichmakestheproduction,management,decision-makingprocessefficiency,improvedoperatingefficiencylevels,,whichisinthetransformationoftraditionalindustriesandthedevelopmentofhigh-techindustries(informationtechnologyasthecoreofhigh-tech),whileincreasingthedevelopmentofinnovativeenterprises,,enterprisestodevelopaneffectivewaytoenterpriseinformation,thetraditionalmodeofoperationforachievingthischange,andforsavingoperationalcostsinthebusinessofgreathelp,andtheycanenhancetheefficiencyoflarger,soiii
Abstractthattheenterprise',combinedwithWebservicestechnology,thisdesignofaWebservices-basedenterpriseinformationsystemarchitecture,detaileddesignandarchitecturelevels,,withreusability,scalabilityandsecurity,flexibility,etc.,toovercomethetraditionaltechniquesarenotwelladapteddistributedplatforms,protocols,architecture,,buildingaWebservices-basedenterpriseinformationarchitecture,toachievetheintegrationofenterpriseinformationsystemsdevelopment,detailedanalysisofWebservicesinenterpriseinformationapplications,
:WebService;EnterpriseInformalization;SOAP;XMLv
目录目录第1章引言························································································研究目的和意义·····························································································选题背景·········································································································文献综述·········································································································国外研究现状·····································································································国内研究现状·····································································································研究方法·········································································································论文结构安排·································································································7第2章WEB服务概述·······································································服务的定义·······························································································服务协议栈·······························································································服务关键技术···········································································································································································································································································································································································································································································································································································13第3章WEB服务在企业信息化中的研究······································服务在企业信息化中的优势································································传统分布式对象技术·······················································································服务具有的技术优势················································································服务在企业信息化中的应用分析····························································基于WEB服务的信息系统架构设计····························································数据库层···········································································································数据访问层·······································································································业务逻辑层·······································································································服务层········································································································26vi
目录客户层···············································································································28第4章WEB服务在企业信息化中的应用······································需求背景及目标分析···················································································需求背景···············································································································目标分析···············································································································构建WEB服务································································································服务、客户端和代理···································································消费PRODUCTINFORMATIONSOAPWEB服务·······················································33第5章集成过程中的主要问题·······················································服务方面的问题·····················································································数据集成方面的问题···················································································非技术因素···································································································38第6章结论······················································································42参考文献····························································································43附录····································································································49致谢····································································································58本人在读期间完成的研究成果·························································59vii
第1章引言第1章引言研究目的和意义伴随着我国市场经济的发展,各个大中小企业对我国国民经济的增长起到了很大的促进作用。我国企业需要不断加强对信息的分析能力,而且必须加强对信息的判断能力,以及企业的信息化建设,这对于提高我国企业的市场竞争力,更进一步,对于我国国民经济水平的提高,具有重要的现实意义。企业信息化是指企业综合运用各种信息技术,在企业的生产和经营的各个环节,充分开发和利用内、外部各种资源,包括人力资源和信息资源,然后建立与此相适应的组织模式,从而使得企业的生产、管理、决策等过程的效率、水平与经营效益得到提高,并且增强了企业竞争力的一种过程。进行企业信息化建设有个很重要的目的,那就是在改造传统产业以及发展高新技术产业(以信息技术为核心的高新技术)的同时,不断提高企业的开发创新、经营管理与竞争能力。要想实现企业快速发展,一个有效途径就是企业开展企业信息化,这对于实现传统经营方式的转变,以及对于节约营运中的各项业务成本有很大的帮助,并且能够提高较大的工作效率,让企业的内部管理更加容易。我们不能将企业信息系统看成是一个简单的技术系统,可以说它涉及到了技术和社会两个层面,这两个层面中的不同因素相互交叉在一起,形成了在开放、动态和多变应用环境下,人、软件和设备的多重异构性。另外,社会的信息化程度也越来越高,应用软件的开发越来越快,软件规模越来越大,这使得信息系统的开发也变得越来越复杂。拥有IT技术和先进的管理思想,企业信息化的建设才有可能。企业信息化依赖于IT技术对企业的内外部信息资源进行集成和优化配置。但是,从目前的使用情况看,很多信息系统的运用并不是很成功,而且有时会成为使用单位的一种负担,尤其是十分复杂的信息系统开发和运用,这样的情况更糟,系统的应用成功率非常低。这种低成功率主要表现在两个方面:首先,很多企业多年来把信息系统分散来开发,或向外购买新的信息系统,这使得互相之间并不能1
第1章引言共享信息,业务也不能流畅地执行及控制,这就给管理企业和操作业务带来诸多不便;其次,随着企业越做越大,企业的交易可能不再局限于供应商和客户之间,而是突破了公司的界线,这样就迫切要求不同企业之间进行信息通信,但是不同的企业所使用的系统是异构的,这就让企业之间的交互变得很困难。对于以上的不足,传统的解决方法是采用基于组件的技术,但是这也不能很好地适应各种平台、协议、体系结构等的差异性。WebService出现后,采用该技术能够做到平台、语言和发布者之间相互独立,因此使用WebService这种技术既可以实现企业应用的松散集成,也可以做到动态的集成,具有相当好的灵活性。WebService可以采取基于XML的技术,该技术是实现现代企业信息管理的一种有效的方案,它能够进行统一封装信息、行为、数据表现以及商务的一些流程,而不必考虑所部属的环境是使用哪些系统和设备。因此,企业可以把自己的企业管理信息进行拆分,使其组件化,然后把各种企业管理信息的WebService组件进行综合和集成,以创建能够重组的企业应用。WebService通过分布式的、与平台无关的应用程序进行集成,采用更加灵活的方式进行系统设计,并能有效地解决企业应用系统集成和跨平台交互所带来的问题,同时也使得企业对系统资源能够更加有效地、更加经济地进行整合,所以研究WebService在企业信息化系统中集成应用,具有十分重要的意义。选题背景通信技术为我们带来了很多好处,它也促进了信息技术的发展,同时,Internet技术在全球也得到广泛的普及,从而,这给企业的信息化建设带来了巨大的的机遇与挑战。首先,新技术的不断发展为企业提供了获取和利用信息的可能;其次,新技术使得企业不得不对自己的信息化建设提出更高的要求,包括如何更快速地得到有效可靠的信息,如何与供应商、消费者等更有效地共享信息资源。当前,企业信息化建设所面临的问题可概括如下:(1)信息膨胀随着应用多种信息系统,许多企业要处理的信息量急速膨胀。据不完全统计,平均每12到18个月信息量就会增加一倍。这种几何级数的增长速度确实困住了许多人员,海量的信息让企业不知如何应对。2
第1章引言(2)信息孤岛由于企业的不同业务,企业会采用各种各样的,而且是相互独立的网络系统,或者是应用系统。这虽然在一定程度上提高了工作效率,但这些系统的相互独立性也使得企业管理变得越来越困难。由于它们缺乏统一的用户界面,没有相互交换的信息接口,数据通常都被保存在企业的不同主机、数据库和服务器上,只有个别有特权的用户才能访问到这些数据资源。所以,数据集成度不高、不易共享,很容易就形成差异和错误。(3)信息的非结构化企业中的数据有一部分是结构化数据,它们一般只占到企业全部数据信息的10%左右,余下的90%都是数据库难以存取的非结构化数据。这种非结构化数据里很多都隐藏着可供企业分析和使用的内容,但是却得不到开发。(4)信息的非个性化企业信息的提供者和需求者有多种类型,包括企业管理者、客户、供应商、合作伙伴等。但是他们想要访问的数据和关注重点内容确是不同的。而现在的企业信息化系统大多只是实现了“如果你肯找,反正最终能找到”这样的方式,这种方式是一种被动式,而且大众化的,还没有达到信息的个性化定制。这是在这样的背景下,1998年11月,美国的美林公司(MerrilLynch)发布了一份名为“超越YAHOO!企业信息门户已经上路”的研究报告,在这份报告中首次提出了“企业信息门户(EnterpriseInformationPortal,EIP)”一词。从此,人们开始极大地关注企业信息门户,而且与此同时,这个概念的内涵被不断地扩充,它的外延也得到不断地发展。许多人认为企业信息门户是企业信息化过程中信息集成的需求。很多企业通过各种方式构建了一些应用系统,但是他们还希望解除应用系统之间的差异,使得结构化信息和非结构化信息能够进行交换和通信,从而产生出一个协同的信息交互平台。刚开始有些门户软件产品为用户提供的仅仅是单一的入口,仅能获取工作时所需的相关内容和相关信息。后来,由于新技术的发展以及革新,加上客户需求也产生了很大的变化,企业信息门户包含了越来越多的新功能和新特性,包括商业智能、搜索、工作流、文档管理、内容管理、知识管理、分类和协同等。这些新功能和新特性与传统的操作系统、应用服务器、数据库和应用程序3
第1章引言的运作方式不同,它们不是并行运作。这样也就能够创造有跨度的、异构基础架构上的企业信息环境。但是,这种集成了众多功能的企业信息门户在某些程度上还是满足不了企业用户的需求。企业在前期投入了大量的资金和资源,就是希望通过企业信息门户解决企业所面临的各种问题,而且这种解决方法要有针对性,以提高企业的生产效率,比方说能够快速的提高商品的销售总量,或者是提高客户的满意程度,抑或是提高企业的协同能力等。总之,企业信息门户是解决以商业功能为驱动、以服务为导向的一项重要课题。文献综述国外研究现状美国美林公司的Shilakes和Tylman给“企业信息门户”作了如下定义:企业信息门户是一种应用程序,它能够为用户提供单一的入口点,使得用户根据自己的需求,把存储在企业内部的以及企业外部的信息提取出来,从而方便地作出商业上的决策。它包括一些用于管理、分析、发布信息的软件,如商务智能、内容管理、数据管理等技术[10]。国际数据公司(IDC)的GerryMurray对企业门户(CorporatePortal)一词定义为,企业门户不仅用户提供一些所需要的信息,还应该为用户提供工作时所需要的所有工具,方便用户与企业中的所有人进行交流。可以通过企业门户进行Email管理、工作流管理、群组管理等功能的实现,门户类似于办公桌,所有一切相关的工作都已经为用户准备妥当了。他将企业门户分成四种,即企业信息门户、知识门户、协作型门户和专家门户,强调企业门户应该为不同工作类型的用户提供全面的服务支持[11]。Eckerso也将企业门户分成四种,参考门户,它带有搜索引擎,能够搜索网络内容的分级目录,个性化门户,用户通过个性设置,使得门户内容具有个性化,交互式门户,该门户载有应用程序,能进行协作,专门化门户,这是一种基于角色的门户,能够管理特定公司的业务[7]。IngelaBruce和KerstinForsberg指出,区别企业内部的网络和其他应用系统的关键性企业信息门户,是企业的信息服务,特别是以商业功能为驱动的信息服务[12]。核心企业知识需要进行综合、进4
第1章引言行商业分析以及性能影响的评估,以使得企业能够识别信息服务的必备条件和结果,并且能够阐明这种服务的商业价值。同时要掌握相关的程序开发和数据库设计的知识,能够设计新颖的用户界面和功能模块,并解决有关信息服务的一些重要问题,比如重组、归档、标记、终端用户培训以及购买,此外还应该了解原有的企业信息系统和数据存储所拥有的特殊信息和功能。Gartner指出一些特定的门户会成为拥有商业功能的应用程序开发的基础框架,它们包含了协同功能和内容管理[13]。Forrester指出,企业要想让门户满足用户的使用需求,就该意识到角色门户的重要地位,它会在下一代的应用程序中发挥重要作用,应该把企业专有的流程、功能和企业门户结合起来,放弃以技术为中心的门户观点[14]。W3C把Web服务定义成一种软件应用程序[15],是互联网下汇集了新技术并且是十分重要的一种中间件,它代表了已有的Web技术和组件技术,并将他们进行了发展。目前Web服务的相关研究主要集中在Web服务的调用方面,也就是构件的Web化,例如微软公司的.NET[16]架构和SUNONE计划[17],它们把Web服务做成Web化构件对象,以供开发人员和用户使用。从Web服务的应用和发展历程来看,可以将其分成三个阶段:第1阶段“Connection(联接)”,Web服务作为标准交互方式,能够跨越防火墙进行服务的调用,并进行规范化的服务描述、服务查找和服务调用;第2阶段“Transaction(交易)”,Web服务作为业务处理方式,能够对其进行编程设计,从而实现商业交互和商务交易处理,成为互联网应用的主要的服务模式;第3阶段“Enterprise(企业级服务)”,Web服务采用智能化辅助技术,对商务流程处理进行自动化操作,把动态电子商务应用到现实当中。在以上三个阶段里,Web服务及其应用存在着许多技术上的问题,例如从发布到部署、从展现到定制、从组合到集成、从运行到监控,特别是在Web服务调用、访问、业务流程处理等环节上仍然有许多问题有待处理和解决[18]。国内研究现状朱永虎等介绍了一种企业信息门户的Jetspeed技术,该技术把Turbine作为底层框架,提供了让用户进行个性化设置的特性[20]。李胜利等提出了企业信息5
第1章引言化门户站点部署的一些安全性管理方法,并讨论了建设企业信息化的技术方法,还阐明了使用Web数据库构建企业信息化应用的方法[21]。雷远平讨论了Web服务中的安全登录问题,研究了Web服务使用的单次登录技术,同时将登录技术和LDAP目录服务技术相结合,以实现Web服务的安全管理机制[22]。向上、沈治宏对企业信息化中的知识管理进行了相关研究,并从知识链优化的角度说明如何提高Web服务的质量[23]。李卫红等分析了EIP的特点,研究了其实现的技术细节[24]。宋绍成等研究了智能企业信息化中Web服务的定义以及其所遵循的协议[25]。韩蓄等针对目前某些企业门户网站中存在的问题进行分析,例如用户管理、权限划分等,实现了基于角色的个性化设置网站模型,以减小权限的管理代价和负担[26]。王萍等分析了企业的资源整合需求,并探讨了将Portlet、门户和Web服务进行资源整合的相关方案,以实现身份验证、用户管理、资源整合和使用的统一性[27]。徐碧云等分析了企业信息化的相关技术JSR168和远程PortletWeb服务,并对比它们之间的关系[28]。研究方法本论文主要通过以下方法进行研究:1、通过查阅国内外相关领域的研究以及成果,结合理论和实践经验,进行对比分析,从中找出每种方法的优缺点。2、结合大量的管理理论和先进的计算机技术,把它们应用在企业信息集成中,再通过采用联想、图表、对比、归纳和演绎等方法,解决企业实际集成中的遇到的各种问题。3、通过对企业进行建模,了解企业的整个流程,并对该流程进行优化,然后在本文提出的模型中进行的运用,作为本文实际解决问题的方式。4、按照“提出模型一分析模型一实证分析一应用实现”的路线进行研究,综合实证研究和对比研究,对具体的集成框架进行剖析。而且研究集成过程中的关键技术实现环节,同时结合国内外学者的理论研究与实践研究,将本文的集成框架进行应用程序的开发与实现,从而实现企业信息化集成。6
第1章引言论文结构安排本文的论文结构安排如下:1.第2章讲述Web服务概述,包括Web服务的定义、Web服务协议栈、Web服务关键技术。2.第3章主要是Web服务在企业信息化中的研究,包括Web服务在企业信息化中的优势、基于Web服务的信息系统架构设计。3.第4章研究WEB服务在企业信息化中的应用,包括需求背景及目标分析构建WEB服务、SOAPWEB服务、客户端和代理、消费PRODUCTINFORMATIONSOAPWEB服务。4.第5章阐述集成过程中的主要问题,包括Web服务方面的问题、数据集成方面的问题、非技术因素。5.第6章是结论,对本文进行系统地总结。7
第2章Web服务概述第2章Web服务概述服务的定义Web服务是比较新的一种Web应用程序开发模式,它提供各种描述,在Internet/Intranet上还可以对服务进行请求,服务也可以进行相当复杂的处理,还能够发现和调用各种分布式对象技术,这些技术部署在Web的各个节点上,同时也应用相关的协议和标准,因此Web服务的定义应该从多个角度来定义:1.从技术层面来说,Web服务是一种应用软件,它可以被URI识别,而且它的接口和绑定是由XML来描述和发现的,可以和其他基于XML消息的应用程序进行信息交互。2.从功能层面来说,Web服务是一种较新且先进的Web应用程序,能够自包含、自描述,并且具有模块化的特点,可以在Web上进行发布、查找以及调用。3.从实现目标的层面来说,Web服务需要建立在现有的各种异构平台,它以这些平台为基础,然后在上层构建一个通用的,与平台无关的,与语言无关的技术层,其他各种不同平台上的应用程序通过这个技术层来实现连接和调用,从而实现系统集成。Web服务是一个开放的信息通讯标准,已经成为构建异构系统的主要手段,也可以对现有的平台进行集成,Web服务的基本理念是遵循相对应的行业准则,把软件做成服务,使得不同系统之间可以跨越平台,从而达到相互兼容的目的,而且要有无缝通信和数据共享的功能。服务协议栈Web服务是由一系列协议组建起来的,完整的Web服务需要这些协议来提供支持,下面以IBM公司使用的Web服务协议栈[21]为例进行说明,见表。表服务协议栈8
第2章Web服务概述ProtocolLayerBusinessIssuesWSFLServiceFlowUDDIServiceDiscoveryServicePublicationWSDLServiceDescriptionServiceInterfaceSOAPXML-BasedMessagingXMLSchemaDataModelingXMLDataPresentationHTTP、SMTP、FTP、MQTransport在上表中,传输层(TransportLayer)是Web服务协议栈最基础的一个层;数据表现层(DataPresentationLayer)是描述整个Web服务中用于通信的相关数据信息;数据模型层(DataModelingLayer)规定了Web服务中数据结构的元数据;基于XML的消息层(XML-BasedMessagingLayer)是在数据模型层之上,它使用的是SOAP协议;服务描述层(ServiceDescriptionLayer)规定了调用Web服务的方法,它采用WSDL标准,其中包括服务实现和服务接口两种描述;服务发布层(ServicePublicationLayer)和服务发现层(ServiceDiscoveryLayer)规定通过UDDI发布和发现服务的机制;服务工作流层(ServiceFlowLayer)采用WSFL标准,对商务流程建模和工作流作出了规定。虽然有多个不同的标准化组织、厂商对服务概念的认知存在不同观点,他们提供的服务协议栈也是不相同的,然而其中也存在一些相同之处,例如以他们都是采用SOAP作为传输协议,采用UDDI作为服务注册者的实现标准,用XML作为数据的交换格式等。服务关键技术服务上层协议需要XML的支持,它能够克服HTML结构性和扩展性差的弱点,是一种用于能够在不同的环境中描述数据和交换数据的标准格式,9QualityofServiceManagementSecurity
第2章Web服务概述提供了一种数据描述的手段,是W3C开发的一个标准广义标记语言(StandardGeneralizedMarkupLanguage,SGML)的最小完备子集,继承了SGML的强大功能,但是剔除了其中繁琐的定义。XML文档分为序言、文档主体和可选信息三个部分。序言是可选的,文档主体的形式为层次树形结构,包含一个或多个元素,如果需要的话,其中也可以包含了一些字符,可选信息包括注释、处理指令和紧跟在元素树后面的空白。XML的特点可以归结为以下几方面:1.自描述性:XML允许用户自己定义标签,有时用户有自己想要表示的内容和结构,XML就提供了这种功能,也就是说这种标签是可扩展的。2.半结构化:有些纯文本的文档不能提供任何关于整个文档内容和结构的信息,如HTML,但是XML文档却能够提供DTD或者XMLSchema文档来说明文档的结构。许多关于内容的结构信息都可由XML文档提供,而且它独立于平台和应用,采用Unicode编码,不受数据库、操作系统、Web服务器以及编程语言的限制,适合在网络上进行传输。3.机器可处理性:计算机处理XML文档十分方便,因为XML文档很有规则且其语义表述很清晰,另外,对XML文档进行阅读和编写也十分方便。4.可扩展性:采用DTD或XMLSchema来定义XML文档的结构,方便了其它信息系统获取和读取XML文档的内容。5.多样的样式表支持:XML只关心数据的逻辑结构,把数据内容与其表现形式隔离开,使得采用样式表来格式化数据的表现形式。同时,也可以让用户定义自己的样式表来显示其想要显示的不同的XML数据。6.广泛的支持:许多厂商都支持XML格式,例如微软、Oracle、SUN、IBM等。这些大的软件厂商已经开发出了各种可供开发人员调用的类库,包括Java版或C++版等,从而可以从最大程度上来保证采用XML数据的应用程序的健壮性。是一种协议,它基于XML,可以用来交换分布环境中的数据信息。它能够实现在一个分布式下的、松散的网络环境里使用XML进行对等交换结构化信息以及类型化信息。SOAP定义了一种简单的机制,它本身并不定义任10
第2章Web服务概述何语义。SOAP建立一个模块化的包装模型,并对模块中的数据进行重编码,从而表示出应用语义,这种功能让SOAP可以被多种类型的应用系统用于消息的远程过程调用(RemoteProcedureCall)。SOAP协议由以下三部分组成:1.SOAP信封(Envelope):SOAP信封定义了完整的SOAP结构,信封上有关于消息的相关内容,比如该消息是由谁发出,应当由谁来接收消息并处理消息;2.SOAP编码规则(EncodingRules):SOAP编码规则定义了数据该如何进行编码,其中可以确定数据使用的数据类型;3.SOAPRPC表示(RPCRepresentation):SOAPRPC表示定义了如何进行远端过程调用和响应的规则,比方说,该怎样使用HTTP或SMTP来和SOAP进行绑定,在消息的传输过程中怎样进行调用等。SOAP协议由一个SOAPEnvelope(必需)、一个SOAPHeader(可选)以及一个SOAPBody(必需)组成。SOAP使用XML文件来描述信息,其结构如图所示,该消息是一个XML文档,在XML的基础上进行定义的,下面进行说明:1.SOAPEnvelope:SOAP信封是每个消息中必须要有的元素,而且它是一整个消息的根元素。2.SOAPHeader:SOAP是消息中的可选元素,不是必须要有的,即并不是每个SOAP消息中都有<Header>元素。但是,如果有SOAPHeader的话,它必须是<Envelope>的第一个直接元素。<Header>元素中可以包含多个头条目元素。3.SOAPBody:SOAPBody是每个消息中必须要有的元素,而且它是<Envelope>元素的直接子元素。另外,SOAP还定义了Body的一个子元素Fault,它可以用来对错误进行报告。11
第2章Web服务概述SOAPEnvelopeSOAPHeaderSOAPBlock...SOAPBlockSOAPBodySOAPBlock...SOAPBlock图消息的框架在互联网中,每一台PC都是通过网络进行连接的,每台计算机所发送的数据必须被经过编码。SOAP使用XML进行类型编码,XML的编码格式很方便而且很灵活,可以说,SOAP规范基于XML定义了一个比较小的集合。但是,XML的编码格式并不是必须强制要求,SOAP也可以和其它的数据编码格式联合使用。XML是一种与平台无关的数据格式,它比JavaRMI、CORBA及DCOM这些以特定二进制形式发送数据的语言有更大的优点。SOPA通过XML来包装和传递信息,它是一种与系统和程序语言无关的消息传递协议。服务描述语言(WebServiceDescriptionLanguage,WSDL)定义了一套语法,是Web服务的一项重要组成部分。这种语言将Web服务描述为一种集合,它是由进行消息交换的服务访问点所组成的。WSDL可对包含面向文档的消息或面向过程调用的服务进行访问,是由客户端进行解析的。从根本上说,WSDL能够描述Web服务的三个基本特性:(1)服务做些什么,也就是说,服务能提供哪些操作;(2)如何访问服务,即详细的数据格式说明以及访问服务所必需的一些相关协议;(3)服务在哪里,即由服务所提供的网络地址,如URL。在WSDL中,端点和消息的抽象定义跟它们在网络中的实体和和数据格式绑定是分离的,12
第2章Web服务概述这样就能保证重用这些已经定义好的抽象。是Web服务的一项核心标准技术,它能够提供Web服务的信息注册和查找规范。UDDI能够支持Web服务的创建、描述、发现和调用,它是构建在基于SOAP的XML消息传输层以及互联网的网络传输层上。这种结构使得互联网上的商业实体之间能够共享信息,并且能够发现应用服务并与其进行交互。UDDI的核心组成部分主要有2方面:首先,UDDI是一个分布式目录的技术规范,用它能够建立Web服务和业务,包括搜索已经存在的数据以及发布新的数据API接口;其次,UDDI注册中心包括了所有的提供UDDI注册服务的站点,是对UDDI规范进行的一种实现。这些注册中心会相互之间进行同步,它们按照特定的规则进行。如果某个服务已经被客户注册过了,那么该注册信息就会被复制,并发送到其它的注册中心。目前的UDDI注册中心可以分成两种,一种是由Microsoft、IBM等公司建立并维护的商业注册中心,该中心是全球性质的注册中心,而且是分布式的;另一种是私有注册中心,拥有者可以对注册中心的可见性进行控制,并管理其内容和使用。从本质上来说,UDDI解决了组件化Web服务中所使用的技术而无法解决的一些问题,能够简化某些技术操作。UDDI为Web服务的技术层面提供了三项重要支持:一是可对服务注册中心进行访问;二是透明的、标准化的而且专门描述服务的机制;三是服务的调用非常简单。UDDI定位了互联网上可用的Web服务的中心数据库,根据UDDI规范架构,UDDI注册中心会被用作在空间中的商务信息的集散地。13
第3章Web服务在企业信息化中的研究第3章Web服务在企业信息化中的研究服务在企业信息化中的优势目前的解决企业信息化中存在的问题主要是通过组件技术,如DCOM或CORBA等。这些传统的技术大多数是采用各自的平台、协议、体系结构,而且是在分布式环境下进行设计的,由于这种差异,对于异构平台的Web应用系统的集成和实施就显得很不尽人意。Web服务是一种新技术,能够处理分布式计算,让各应用程序能够很方便地结合起来,从而实现较大范围的多种企业信息系统的对接。传统分布式对象技术传统的分布式对象技术主要有以下三种:Java分布对象技术包括2方面的技术:远程方法调用(RMI)和企业级JavaBean(EJB)。通过采用JavaRMI使得客户端可以用引用与远程对象进行交互,还可以把远程对象下载到客户端上进行使用。一个Java对象远程调用另一Java对象可以通过RMI来实现,但是RMI只能支持基本的分布对象的互操作性。EJB框架提供了对远程访问、安全和交易等分布对象的多种技术支持服务,它是基于RMI实现的。DCOM是微软公司开发的组件对象模型(ComponentObjectModel,COM)的分布式扩展,它是在RPC(远程过程调用,RemoteProcdureCall)的顶端建立了一个ORPC层来支持远程对象的调用。组件对象模型的客户端可以获取一个指针,该指针指向一个对象接口。好比对象驻留在客户端的内存地址中一样,通过该指针调用的方法可以实现和组件对象模型的对象进行交互。公共对象请求代理结构(CommonObjectRequestBrokerArchitecture,CORBA)是对象管理组织(ObjectManagementGroup,OMG)提出的实现分布式计算节点间的互操作性规范。OMG的目标是定义一个能允许不同种类的运行上下文进行对象级别的相互通信,而且不需要考虑到底是谁设计了这个分布式应14
第3章Web服务在企业信息化中的研究用程序的两个端点的架构。CORBA标准由对象请求代理、公共对象服务和公共设施三个部分组成。远程指代是这三种技术所共有的特性(如图所示)。分布式对象技术的好处是可以让面向对象程序在本机以外的机器上运行,并并对其进行访问。本机上使用“代理”或“对象存根”,可以实现远程调用的透明性。具体的接口实现中,JavaRMI采用自己编写的JavaIDL,大多使用IIOP(InternetInter-ORBProtocol)协议;DCOM采用微软公司自己定义的二进制接口Iunknown;CORBA定义了一个框架,但不定义具体的接口,转由软件开发者自己来对接口进行实现。图三种传统的分布式对象技术所共有的特性但是传统的分布式技术已经不适用于当前的网络环境,其原因主要有以下3个方面:第一,这些技术都有自己的一套的体系结构,从而使得不同的模型之间进行通信变得困难。第二,客户端和服务器端必须能够对应的上,如果对服务端的接口进行修改,那么客户端就无法访问服务器。第三,客户端和服务器端进行相互通信时会产生较大的网络通信量。服务具有的技术优势Web服务比起JavaRMI/CORBA/DCOM的RPC模型来说,具有更大的意义,就是它能够在互联网上实现分布式的计算模式。Web服务相互之间的关联较少,用户在连接时随时可以更改自己的行为,但不会影响程序的正常运行。软件开发人员可以使用HTTP、SMTP以及XML等技术来实现较高性能的企业信息化系统,这些技术都是基于消息的异步通信来达到统一的连接。Web服务15
第3章Web服务在企业信息化中的研究支持新一代的互联网标准,而其它一些分布式的计算技术大多数不能替代Web服务。互联网在发展过程中产生了两个问题,一个是数据传送,另一个是平台的异构性,随着Web服务的兴起,它利用了互联网的标准解决了这两个问题。从开发人员的角度说,Web服务为他们提供了一个统一风格的编程接口,从使用者的角度来说,Web服务为他们提供了一个纯粹的网络访问模式。和传统的分布计算技术相比较,Web服务的优点主要有以下两个方面:第一,协议普遍通用。在公共的互联网协议下,例如HTTP、SMTP等协议,Web服务解决了面向网络的分布式计算所面临的问题,但是CORBA、DCOM和RMI只是解决了企业自己的内部计算,范围过于狭窄,使用的是私有协议,不利于信息的交换。第二,平台独立性。Web服务的抽象程度更高,开发人员只需要要使用Web服务所提供的接口,就可以对特定的服务进行使用,而CORBA、DCOM和RMI技术却要在对等的网络体系结构之间才能进行信息的相互通信。而且在实际的应用中,Web服务表现出更多的特点,对其归纳见表。该表比较了Web服务和传统的分布式技术之间的特点。表传统的分布式对象技术和Web服务的特点比较技术传统的分布式对象技术WebService性能简单性开发和维护的工作量比较大便于设计、开发、维护和使用开放性基于私有标准,依赖特定厂家基于开放标注,跨平台灵活性点对点操作,紧密耦合松散耦合经济性实施费用较高,时间周期较长实施费用低廉,周期较短交互性较弱,很难在Internet下使用较强,很容易突破企业防火墙高效性对于单个实体,效率较低效率较高Web服务是为解决平台层和应用层对于软件集成所带来的问题而构建的,它多个技术都建立在XML之上,并且是开放式的。Web服务可以让CORBA,DCOM和RMI实现相互通信,进行相互操作,屏蔽了不同软件架构的差异,从而实现了网络环境里最好的软件集成。16
第3章Web服务在企业信息化中的研究服务在企业信息化中的应用分析在分析了企业信息化过程中所存在的问题和Web服务技术特性后得知,Web服务对于分布式计算中所面临的问题都可以提供很好的解决方案。为了实现企业中的信息系统集成以及企业之间对信息交互的需求,Web服务是一种很好的应用于企业信息化建设的技术。1.采用Web服务的企业中信息系统集成模型如图所示。ERP絗缻ERP凡酄旌揊WebService搁吿吭幟浄凨争怟EHR絗缻EHR凡酄旌揊吭幟WebService搁吿吭幟桁拚CRM絗缻CRM凡酄旌揊WebService搁吿缭寶缭寶勽囄疄抓豓沞缭寶佝乶杩图基于Web服务的企业中信息系统集成模型Web服务是企业信息系统集成的核心部分,在企业内部,通过建立Web服务平台,可以把ERP、EHR、CRM等系统统一联系起来,让它们之间的通信通过通过Web服务来实现。企业中的信息可以用“信息孤岛”来形容,不可能全部采用最新的产品和17UDDWebServiceI
第3章Web服务在企业信息化中的研究系统,或者是开发新的系统,而抛弃原有的一些设施和数据以及应用系统。最好的方法是能有一个共享平台,它来提供对不同的业务系统和不同类型的数据格式进行转换。Web服务就是这种共享的平台,它能够为企业的内部信息系统提供集成。应用系统中的每个子模块都是封装成Web服务构件,然后发布到UDDI中心进行注册,使得服务能够在Web服务器上正常使用,这样也就实现了不同系统之间信息的共享,而且实现了信息通信的方便。2.企业之间对信息交互如图所示。企业之间所要交互的信息可以封装成Web服务,这是由于Web服务基于XML规范,使得不同系统之间的交互可以跨平台、跨系统地进行,而不受到协议的限制。这也使得在企业已有的异构平台上建立起一个统一的、和平台无关的技术层面。DCOM絗缻吭幟CORBA絗缻WebService杩勽囄桁拚WebService杩勽囄吭幟桁拚浄吭幟凨争怟桁拚吭幟EJB絗缻WebService杩勽囄RIMI絗缻WebService杩勽囄图基于Web服务的企业之间信息交互模型从图的模型中可以看出,企业会提供许多的服务,它的内部系统会使用不同的应用,如CORBA、DCOM、EJB、RMI。在这些系统的外部有一个统一的接口,Web服务对其进行了封装。相对于传统的分布式技术,COBRA实现了跨平台、跨语言的一些功能,但是它要求相互通信的双方必须在对等的网络结构中进行交互,客户端和服务器端都必须要有对象请求代理(ORB);DCOM是微软公司开发的,所以通信的系统双方必须都是Windows系统;RMI也要求18佝乶佝乶旌揊旌揊廯廯佝乶佝乶旌揊旌揊廯廯UDDI
第3章Web服务在企业信息化中的研究通信系统的双方都使用Java语言开发的系统。但是各个企业都有各自不同的系统,很难实现都是统一的,比如Windows、Linux、Unix。所以,企业之间的系统架构没有一个统一的标准,跨平台的系统其交互性也就略显能力差。只有对企业的信息系统采用Web服务技术,不同企业之间才能实现信息的共享。基于Web服务的信息系统架构设计Web服务使得不同的企业系统之间可以实现信息的相互交互,从而达到异构系统进行无缝通信的目的。本文结合Web服务的特点,设计了一种基于Web服务的企业信息化模型,该模型比起传统的企业系统架构来说,多增加了Web服务层,将Web服务融合到模型的设计当中,使企业信息化建设具有可重用性和可扩展性,以解决企业信息化过程中的系统集成和跨平台难的问题,从而能够克服企业信息化中旧系统不能垮平台、协议、体系结构等的缺点。基于Web服务的企业信息化架构如图所示,该架构由五个层组成,自底向上分别是:数据库层、数据访问层、业务逻辑层、Web服务层、客户层。下面分别对这五个层的设计进行详细说明。基于Web服务的信息系统架构19
第3章Web服务在企业信息化中的研究数据库层数据库层拥有企业中的各种数据,其中包括异构类型的数据资源,例如各式各样的数据库系统、文件管理系统、邮件系统等,它们通过各种数据模型进行表现,存放在半结构化的XML数据表里和结构化的SQL数据库里。在具体的实际操作当中,数据库层一般采用关系型数据库。设计数据库时要实现把对象和对象的关系通过映射,表示成关系数据库中的具体元素。而每个对象的属性值映射到关系数据库中就是相对应的列。对象之间的多种关系,如聚合、关联和组成等,映射成数据库中的约束条件。图显示了关系数据库中业务对象的约束关系,该图采用了面向对象的设计方法,从系统的最底层开始建立层次关系,使得数据被良好地设计出来。另一方面,为了让系统达到更好的效率,以及更好的安全机制和事务控制,在开发和设计过程中,应该尽可能地采用视图、触发器、存储过程、索引等,以使整个系统性能得到提升,运行效率得到优化。数据库的设计会对应用系统以及企业信息化实现的效果产生较大的影响,一个好的数据库设计会使数据库中的数据保持较高的一致性和完整性,并且会降低数据的存储容量,让信息系统能够迅速地响应客户端的请求。所以,在数据库设计之前应充分地进行分析和设计,保证数据库的设计满足了用户的需求,避免浪费过多的人力、物力和财力。图关系数据库中业务对象的约束关系20
第3章Web服务在企业信息化中的研究在设计数据库层时,应该遵循以下的原则:1.数据独立性:数据对应用程序来说应该是独立的,不能因为数据的更改而造成应用程序不能访问,也就是说,数据对应用程序要透明化,它的更改不会影响到应用程序。2.数据的规范化、标准化和结构化:数据库中数据的规范化、标准化和结构化是信息进行相互传递和交流的基础,结构化的数据有利于数据的维护和通信,而且在设计数据库时要遵照相关的标准,如国家标准、行业标准等。3.层次分明,布局合理:在设计数据库时,要达到层次分明,并且布局也要合理,尽可能在信息的源头上和信息的使用上设置数据库,让信息以最短路径进行读取和写入,这样能够让信息的流动更加快捷。4.数据的安全性:要采取一些安全的保护措施,使得数据不会被没有授权的非法用户访问,或者是遭到病毒的侵入。5.数据共享:由于多个应用程序需要访问数据,所以企业信息系统应该能够实现数据的共享,必须保证数据是正确的,以确保数据的一致性。下面以库存管理为例分析数据库设计,库存管理主要是对产品入库,出库,登帐,查询以及财务进行管理。以下是具体实现库存管理的表格设计:1.入库主表:用来存储入库信息,如表所示:表入库主表主键名称类型/长度空含义√idBigint(8)编号inrkdbhVarchar(50)√入库单编号inxmbhVarchar(50)√项目编号instatusVarchar(50)√登帐状态…2.入库产品明细表:用来存储入库产品信息,如表所示:表入库产品明细表主键名称类型/长度空含义√idBigint(8)编号rkdbhVarchar(50)√入库单编号21
第3章Web服务在企业信息化中的研究xmbhVarchar(50)√项目编号pmVarchar(50)√品名…3.出库主表:用来存储出库单的信息,如表所以:表出库主表主键名称类型/长度空含义√idBigint(8)编号outckdbhVarchar(50)√出库单编号outxmbhVarchar(50)√项目编号outstatusVarchar(50)√登帐状态…4.出库产品明细表:用来存储出库单产品信息,如表所以:表出库产品明细表主键名称类型/长度空含义√idBigint(8)编号rkidBigint(8)入库明细表编号ckdbhVarchar(50)√出库单编号xmbhVarchar(50)√项目编号pmVarchar(50)√品名…5.库存商品备查表:用来存储库存商品信息表,如表所以:表库存商品备查表主键名称类型/长度空含义√idBigint(8)编号rkidBigint(8)入库明细表单编号ckidVarchar(50)√出库明细表单编号xmbhVarchar(50)√项目编号…6.财务核对表:用来存储财务核对信息表的信息,如表所示:22
第3章Web服务在企业信息化中的研究表财务核对表主键名称类型/长度空含义√idBigint(8)编号ymxmbhVarchar(50)项目编号ymkcjcVarchar(50)√库存结存金额ymcwjcVarchar(50)√财务结存…这里入库主表和入库产品明细表通过入库单编号相关联,出库主表和出库产品明细表通过出库单编号相关联,而且出库产品与入库产品之间对此产生了对应关系,库存商品备查表通过入库产品编号跟入库产品明细表相关联,通过出库产品编号跟出库产品明细表相关联,财务核对表和库存商品备查表通过项目编号相关联。数据访问层数据访问层可以保证上层的应用和下层数据库中的数据相互分离,使数据的访问具有跨平台的特性。数据访问层确保了上层的应用程序和数据库中数据的类型具有低的耦合性,并且会根据具体的应用,选取合适的连接方式、SQL语句检查等。数据访问层要处理的数据库对象可以分成两种:一种是数据实体,在数据库中也就是数据表。数据表可以永久地存放,是数据库中持久的对象,这些表是数据存放的表现形式,是访问的对象,但是并没有行为。另一种是数据的业务逻辑对象,这种业务逻辑是指数据库的一些插入、删除、修改等操作。它们只是有操作的行为,并不是所要访问的数据,所以可以把它们理解为一种数据访问的接口。对数据的查询、插入、更新、修改等操作都是在数据访问层里来完成的,同时,数据的一致性、完整性、安全性等一些维护工作也需要在数据访问层里来实现。在用Web服务构建的企业信息系统中,数据库不是被某个用户单独地占用,而是多个用户可以通过数据访问层共同访问数据库中的数据,允许同时23
第3章Web服务在企业信息化中的研究有多个连接接入数据库。数据访问层的插入、修改、删除等操作消除了异构数据库之间的差异,让业务逻辑层通过数据访问层能够访问到数据库中的数据,达到跨平台的目的。对于数据实体,要建立相应的实体类,一个实体类对应数据库中的一个表,在实体类里把对应的表中的字段都定义成私有类型,这样外界只能通过属性来访问字段。这里如果只是读取字段,就用属性get来实现;如果可以随意存取字段,就用属性get和set来实现。在设计数据访问层时,应该遵循以下的原则:1.设计合适的外部接口:在设计数据访问的接口时,要考虑函数是如何传递参数和返回参数的。开发人员可以采用三种技术来实现接口的设计:对象、XML技术、类的自定义。本文直接采用对象,原因是,架构中的各个层次都会使用数据,数据集会从底层往上层流动,也会从上层往下层流动,而且有些层是分布式的,可能在不同的地区。另外,采用XML来返回数据集是Web服务处理数据比较好的办法,这些数据集可以串行化,所以可以SOAP的消息里返回数据集。2.对数据提供程序进行抽象化:在企业所采用的数据库中,有的企业使用一种数据库,而有的企业使用两种或者多种数据库,比如同时使用SQLServer和Oracle。如果企业只使用一种数据库,就不需要考虑不同的数据库同时访问的问题。而如果企业拥有两种或者两种以上的数据库,那么就需要考虑不同数据库同时访问的问题了。对于后者,使用一种称为抽象工厂(AbstractFactory)的设计模式,将它引入到数据访问层,然后设计一个统一的接口来访问不同类型的数据库,这样对调用者来说就十分的方便,对于访问不同的数据库,只需要调用相应的接口就可以实现数据访问了。3.采用面向对象技术:抽象类的构建是实现面向对象操作的一个基本方法,这个抽象类可以用来实现继承,也称它为基类。基类应该含有所有数据访问的抽象方法,子类对抽象类进行继承,把抽象类中的所有特性都继承下来,然后重载这些方法。这种面向对象的抽象和继承技术,使得系统功能的扩充成为可能,为以后系统升级提供了方便。24
第3章Web服务在企业信息化中的研究业务逻辑层业务逻辑层通过提取企业信息化系统中已经存在的一些重复性业务以及这些应用系统中的重要组件,对其进行封装,形成新的业务组件。业务逻辑采用了分层的结构,较复杂的业务逻辑通过将底层较简单的基础业务逻辑进行封装,从而形成高层的复杂业务逻辑。企业信息化的业务逻辑层对企业的系统业务逻辑进行处理,包括一些旧业务逻辑组件和重新开发的新业务逻辑组件,这些组件直接可以用来对企业信息化进行部署。对企业已经拥有的一些旧的和新的业务逻辑或者是企业的业务处理通过组件的形式进行提供,不仅有利于实现该系统和其它的企业系统进行整合和集成,也使得信息化系统的可维护性和可重用性得到提高。在提取企业的业务逻辑层时,应该充分考虑各种因素,从宏观层面出发,总体把握企业或者公司的业务流程,而不管这些业务是否已经被原有的系统实现了,是否需要重新开发新组件。而应该对所有的业务进行规划,把一些关键的业务和重复操作的业务提取出来,将其封装成组件,以提供给外部程序的调用。提取业务逻辑的过程是相对比较复杂的,要处理好业务和技术上的协调一致,以及流程上的统一。技术手段在业务逻辑层的设计上并不是很大的障碍,相反,对于企业的整个业务流程的熟悉和理解是比较困难的过程。在分析业务流程时,先将这个企业的信息化系统划分为若干个子系统,然后采用面向对象的分析技术对对这些子系统进行完整的分析和设计。根据粒度控制原则,从子系统中抽象出一个或者是多个类,将它们组成一个组件。在设计业务逻辑层时,应该遵循以下的原则:1.业务逻辑的组件接口要满足通用性、简单性。2.业务逻辑的组件实现与组件接口必须分离,接口里不能实现组件的内部细节,当应用程序的内部发生改变时,不会影响组件的接口,这样可以让系统的维护更佳方便。3.组件之间应该根据功能来进行划分,使相互之间的功能彼此独立,组件的粒度也不能太大,每个组件最好只实现一个或者是一类相同的功能,以提高组件的可重用性。25
第3章Web服务在企业信息化中的研究业务逻辑层的操作,是通过数据访问层对数据库进行操作的,如果以采购业务为例,对库存管理进行分析,相关操作与类中函数对应的关系如表所示:表业务对象的操作与函数的对应关系业务对象相关操作对应函数添加Newruku入库单删除Delruku编辑Editruku添加Newrukuproperty入库产品明细表删除Delrukuproperty编辑Editrukuproperty出库单……出库产品明细表……库存商品查备表……财务核对表……服务层在整个企业信息化过程中,Web服务层的设计是重点。在Web服务层里,逻辑模块都放在企业的综合服务平台上,这些逻辑模块可以分成三部分:(1)安全控制模块:为了保证系统的安全,需要设置安全控制模块,该模块由加密和身份验证两个子模块构成,加密子模块加解密传输的数据,保证数据在传输过程中的安全性,身份验证子模块验证用户的身份。(2)Web服务模块:包括数据Web服务和身份验证Web服务,其中数据Web服务由业务逻辑层的业务组件组成,而身份验证Web服务由安全控制模块中的身份验证子模块组成。数据Web服务和身份验证Web服务都运行在IIS中。(3)UDDI注册中心:包括私有注册中心和公有注册中心,企业内部的所有的Web服务在私有注册中心注册,提供给外部用户进行查询、调用的Web服务在公有注册中心注册。当Web服务器收到客户端的请求后,服务器先到UDDI注册中心查找所请求的服务,得到26
第3章Web服务在企业信息化中的研究相关服务的位置信息。然后根据该服务的位置,服务器找到所请求的Web服务,得到服务的接口说明文件WSDL,并将其返回给客户端。之后客户端根据WSDL文件,用SOAP协议进行请求/响应的方式调用服务器的Web服务。Web服务层的详细设计如图所示:佝乶罘呤杩勽廏呌寶侩杩勽UDDI浄凨争怟W寥凄搃劒橽垳SDL輇対余勼抓髨尢輇余髨谝W谝ebSOAP豓沞Service旌揊WebServiceSOAP唩廰乶勽缠佒图服务层详细设计在设计Web服务层时,应该遵循以下的原则:1.Web服务能够重用:企业系统的网络吞吐量是衡量该系统的重要因素,Web服务应能满足网络吞吐量的增加,适应企业业务流程的不断变化,满足用户并发数目的增加。同时还要精心精心设计服务的粒度,使服务能够最大程度地满足目标需求。2.Web服务满足内聚性:Web服务应满足功能内聚性,把同一类的操作聚合在一起,便于客户的请求,或者采用时间内聚性,把在一段时间内的一些操作聚合在一起。3.Web服务满足可靠性:服务所提供的功能应该是彼此独立的,耦合性较低,能够单独使用,调用某个服务时,该服务并不依赖于其他服务,这样才能使服务具有可靠性。4.Web服务应封装实现的细节:在设计服务时,应该采用面向对象的设计思想,即封装。封装用来设计Web服务的接口,让服务的使用者和服务的提供者之间关联性降低,为将来系统的升级提供较大的可扩展性。27
第3章Web服务在企业信息化中的研究5.Web服务满足易用性:易用性是判断系统是否满足需求的重要因素,Web服务应该保证服务的一致性,从而保证服务的易用性。在进行服务调度时,服务的特性能够被预测。客户层客户层是用户最终使用的层面,是用户与系统交互的接口,从某种意义上说,是一种抽象客户。客户层包括Web浏览器、应用程序客户端、PDA和无线设备等终端,它们通过标准的XML数据和一些网络技术与协议,连接到Web服务器。此外,如果其它企业的应用程序或服务器也想访问该企业的服务器,那么其它企业的应用程序或服务器也可以被认为是客户端。客户层是用户和企业信息系统进行交互的接口,能够对信息进行控制和选择,从而保证信息的正确输入和输出。客户层将可视化的界面提供给用户,让用户方便地进行数据的输入和浏览,同时,客户层还能和信息系统进行交互。客户层调用Web服务层的组件,将Web服务组件返回的结果进行加工和处理,从而完成企业的业务流程和数据的存取。客户层可以把Web服务层和外部事件隔离开,使得到达Web服务层的请求看起来都是一样的,如用户的请求、上传文件、业务事件的触发等。在设计客户层时,应该遵循以下的原则:1.易用性原则:客户层是用户和Web服务器交互的窗口,所以好的客户端界面能够方便用户使用系统。客户层的界面应该是友好的,它让用户无需拥有预备知识,只要稍加培训或者自己使用就能够掌握客户端程序。客户端程序还应在合适的时候提供一些提示信息,以便用户知道帮助信息和错误的地方。2.精练性原则:客户层的精练性原则包含两层意义。第一,客户层只需负责把用户的一些操作转换成应用程序的事件,使这些事件能被系统所捕获,以及把Web服务器所返回的结果转换成Web界面可以显示的内容,除了这两项功能之外,客户端不应该承担过多其它的职责。第二,客户层不应该包含企业的任何业务逻辑过程,而只应该包含Web页面的控制逻辑。28
第4章Web服务在企业信息化中的应用第4章Web服务在企业信息化中的应用需求背景及目标分析需求背景当前,许多公司或企业已经有了一些业务处理的信息系统,但是这些之前引进的系统都是针对公司或企业内部某些部门的业务流程的,例如,市场部拥有自己的库存管理系统,而财务部拥有自己的财务管理系统。因为公司或者企业的这多个系统所购买或开发的时间不同,所以,这些系统之间很少关注相互交互和集成的问题。而且,每个系统的运行环境也可能不相同,这就使得在工作中难免要进行一些人工的操作,使系统之间的信息能够交换。这些问题也就凸显出公司或企业的信息化程度不高,工作的效率过低,而且甚至还会因为人工输入等原因出现一些错误。另外,随着公司或企业不断发展壮大,它们的业务也就不断地扩大,在异地很可能会建立分公司或子公司。但是,分公司或子公司和总公司所使用的系统可能是分开开发或者购买的,即它们的系统是相互独立的。那么,这样也就使得公司内部的信息不能实现共享。随着公司或企业的规模和业务不断拓展,公司与公司之间的业务往来也就越来越频繁,而且经销商和分销商也会对公司的服务提出一些新要求。在考虑公司或企业的信息战略和成本后,建立一个新的、统一的企业信息化系统变得刻不容缓,以满足公司或企业不断增长的业务需求。目标分析本文通过研究当前企业中信息化存在的问题,提出建立企业信息化系统的模型,使得企业的业务流程变得更加方便,从而能够提高企业员工工作的效率。具体分析如下:1.当前企业的一些业务还存在使用纸质的办公,例如文件的审批,而这些29
第4章Web服务在企业信息化中的应用业务是可以放在网上进行办公的,简化一些操作流程,提高工作效率。也就是说,企业一些可以实现信息化的业务并没有实现信息化,而这些业务的信息化实现又是刻不容缓。2.企业中已经采用的系统可以不遗弃,运用重构技术,对遗留系统进行业务提取,把要添加的新功能和原有系统的功能进行融合,从而形成新的企业信息化系统。3.应该克服不同部门之间的信息独立性,让整个企业内部的数据实现共享,保证有效、安全的信息,从而使得部门之间的业务能够进行协同工作,以提高工作效率,节省人力、物力、财力。4.应该分析企业信息化系统和企业外部系统信息交互的问题,以提供跨企业业务的交互接口。首先,这能够使企业方便地为外界提供所需的交互信息,其次,这也为企业和外界进行信息共享做好准备。构建Web服务本文采用WCF来构建企业信息化的Web服务,有两种模型可以创建Web服务:REST和SOAP模型。然而,在用WCF实现的两种方案中,SOAP机制是最容易的,所以本文构建SOAPWeb服务,而不采用RESTWeb服务。在构建SOAPWeb服务中,为说明设计原理,文本只提取所设计系统的一个服务为例,这里采用创建Web服务ProductInformation为例。ProductInformationWeb服务是一个SOAPWeb服务,允许用户计算购买指定数量的产品的价格。这个服务里实现了一个HowMuchWillItCost的Web方法。端口指定了Web服务器在什么时候侦听客户端应用程序的入站请求。默认情况下,VisualStudio2010提供的DevelopmentWebServer会随机选择一个端口,避免与计算机上运行的其他网络服务的端口冲突。然而,构建Web服务时,最好还是使用固定端口号,以便客户端应用程序连接它。IProductInformation文件的主要内容是IService接口和一个名为CompositeType的类。IService接口应用了ServiceContract属性,CompositeType类则应用了DataContract属性。由于WCF服务的结构,可采取一种contract-first的方式来进行开发。以这种方式开发,要先定义好服务准备实现的接口(也就30
第4章Web服务在企业信息化中的应用是contract,或者说契约),然后遵照这个契约来构建一个服务。contract-first开发的重点在于,开发者可将精力集中在服务的设计上。在需要的时候,可以快速对它进行检查,确保自己的设计没有引入对特定硬件或软件的任何依赖,而不是等到进行了大量开发之后才发现问题。在许多情况下,客户端应用程序可能不是使用WCF开发的,甚至可能不在Windows上运行。应用了ServiceContract这个属性后,就表明接口中定义的方法可以被实现Web服务的类作为Web方法公开。方法本身还要应用OperationContract这个属性。VisualStudio2010提供的工具利用这些属性帮助为服务生成恰当的WSDL文档。如果接口中的一个方法没有应用OperationContractattribute,它就不会包含到WSDL文档中,也就不能由使用Web服务的客户端应用程序(消费者)访问。如果Web方法要获取参数,或者要返回值,这些参数和值的数据必须转换成一种格式,这种格式的数据能通过网络传输并重新转换回对象。这就是前面提到过的序列化和反序列化过程。各种Web服务标准都定义了自己的机制来指定简单数据类型的序列化格式,例如数字和字符串。这些机制是Web服务的WSDL描述的一部分。然而,也可以根据类和结构来定义自己的复杂数据类型。在Web服务中使用这些类型时,必须自己提供信息来描述如何序列化和反序列化它们。在IService接口中查看一下GetDataUsingDataContract方法的定义,会发现它期待的是CompositeType类型的一个参数。CompositeType类应用了DataContract属性,表明该类的实例必须能作为一个XML流来序列化和反序列化。任何成员如果想包含到序列化的数据流中,并通过网络来传输,那么必须应用DataMember属性。接着配置Web服务,设置ServiceHost指令中的Service和CodeBehind属性,部分代码如下所示:<%@ServiceHostLanguage="C#"Debug="true"Service="ProductInformation"CodeBehind="~/App_Code/"%>在文件中,在<>元素中编辑<services>元素和它的子元素,并把它们添加到<behaviors>元素的前面。<>31
第4章Web服务在企业信息化中的应用<services><servicename="ProductInformation"><endpointaddress=""binding="wsHttpBinding"contract="IProductInformation"/></service></services><behaviors><serviceBehaviors><behavior><!--Toavoiddisclosingmetadatainformation,setthevaluebelowtofalseandremovethemetadataendpointabovebeforedeployment--><serviceMetadatahttpGetEnabled="true"/><!--Toreceiveexceptiondetailsinfaultsfordebuggingpurposes,--><serviceDebugincludeExceptionDetailInFaults="false"/></behavior></serviceBehaviors></behaviors></>这个配置指定实现了Web服务的类的名称(ProductInformation)。WCF使用endpoint表示法将一个网络地址与一个特定Web服务关联。如果用IIS或DevelopmentWebServer托管一个Web服务,应该将endpoint的address属性留空,因为这些服务器在它们自己的配置信息指定的一个地址处侦听入站请求。如果不想使用IIS或DevelopmentWebServer,可以构建自定义的宿主应用程序。在这种情况下,作为endpoint定义的一部分,必须为服务指定一个地址。binding参数指出服务器用于接收请求和发送应答的网络协议。随后会启动Web浏览器并显示一个网页,这个网页会显示出已成功创建并部署了Web服务,并提供了一些有帮助的信息来描述如何创建一个简单的客户32
第4章Web服务在企业信息化中的应用端应用程序来访问Web服务。服务、客户端和代理SOAPWeb服务用SOAP协议在客户端应用程序和服务之间传输数据。SOAP使用XML对要传输的数据进行标准格式化,XML位于Web服务器和浏览器使用的HTTP协议的顶部。这正是使Web服务显得如此强大的地方——SOAP,HTTP和XML都很好理解(至少理论上如此),同时也是几个标准委员会关心的主题。任何会解析SOAP的客户端应用程序都能和Web服务通信。但是,客户端应用程序解析SOAP必须执行大量的步骤,主要过程如下:1.确定正在运行Web方法的Web服务的URL。2.使用URL来执行一次“WebServicesDescriptionLanguage”(WSDL)查询,获得对其可用的Web方法、所用参数以及返回值的描述。3.解析WSDL,将每个操作都转换成Web请求,并将每个参数都序列化为WSDL文档描述的格式。4.使用HTTP协议,向URL提交请求以及序列化好的数据。5.等待Web服务应答。6.使用WSDL文档指定的格式,将Web服务返回的数据反序列化为客户端应用程序能使用的有意义的值。仅调用一个方法就需要以上6个步骤,许多厂商(包括Microsoft在内)都提供了可以根据一个WSDL描述来生成代理(proxy)类的工具。代理隐藏了使用SOAP的复杂性,并基于Web服务所发布的方法公开了一个简单的可编程接口。客户端应用程序调用代理中的同名方法来调用Web方法。代理类将这些局部调用转换成SOAP请求,并将它们发送给Web服务。代理类等待应答,反序列化数据,然后将其返回给客户端,就像从任何一个简单的方法调用中返回一样。消费ProductInformationSOAPWeb服务前面已创建了公开了一个Web方法的一个Web服务,公开的方法是33
第4章Web服务在企业信息化中的应用HowMuchWillItCost(计算购买数据库中n件产品x所花费的金额)。接下来将使用这个Web服务,并构建一个要调用该方法的应用程序。通过界面允许用户输入一个产品的ID,并从数据库获取产品详细信息,详细信息包括产品名称、提供商ID、类别ID、单件重量、单价、库存等。并且在输入数量之后可以计算购买这么多数量的产品所需的总金额。界面上的按钮调用ProductInformationWeb服务的HowMuchWillItCost方法来获取并显示价格。在所构建的命名空间中,命名空间中有一个ProductInformationClient类。ProductInformationClient是根据ProductInformationWeb服务的WSDL描述生成的一个代理类,其中包含大量构造器,另外还有一个名为HowMuchWillItCost的方法。IProductInformation接口和Web服务中定义的接口相似,只是一些attribute指定了额外的参数。ProductInformation类实现了这个接口,并从泛型ClientBase类继承。命名空间中的ClientBase类提供了基本的通信功能,以便客户端应用程序与一个Web服务通信。类型参数指定了类实现的接口。ClientBase类提供了Channel(通道)属性,它封装了到一个Web服务的HTTP连接。ProductInformationClient类的各个构造器配置通道,将它连接到Web服务正在侦听的端点(endpoint)。客户端应用程序可实例化ProductInformationClient类,指定要连接到的端点,然后调用HowMuchWillItCost方法。在这个时候,基础ClientBase类中的通道会将作为参数提供的信息打包到一条SOAP消息,并发送给Web服务。Web服务应答时,返回的信息从SOAP应答中解包,并传回客户端应用程序。这样一来,客户端应用程序就可以像调用一个本地方法那样调用一个Web服务中的方法。将以下加粗的代码添到calcCost_Click方法中。这些代码将从窗体上的文本框提取方法中。这些代码将从窗体上的文本框提取产品ID和产品数量,使用代理对象执行HowMuchWillItCostWeb方法,然后在totalCost标签中显示结果。privatevoidcalcCost_Click(objectsender,RoutedEventArgse)34
第4章Web服务在企业信息化中的应用{ProductInformationClientproxy=newProductInformationClient();try{intprodID=();intnumberRequied=();decimalcost=(prodID,numberRequied);=("{0:C}",cost);}catch(Exceptionex){("Errorobtainingcost:"+,"Error",,);}finally{if(==)();();}}在互联网上有很多情况可能发生,所以,在编写代码时一定要用try/catch块捕捉可能发生的任何网络异常。用户还有可能在窗体上的ProductID文本框中输入无效的整数,try/catch块也能处理这个异常。finally块可以进行检查代理对象的状态。如果Web服务中发生异常(例如,可能是由于用户提供了一个不存在的产品ID引起的),代理就会进入35
第4章Web服务在企业信息化中的应用Faulted状态。在这种情况下,finally块会调用proxy的Abort方法;否则它会调用Close方法。Abort和Close方法都会关闭与Web服务器的通信,并释放与ProductInformationClient对象的这个实例关联资源。36
第5章集成过程中的主要问题第5章集成过程中的主要问题服务方面的问题Web服务还在不断地发展之中,虽然其技术不断更新,但是有些企业对其技术的掌握还不是很熟悉,而且由于各种原因,采用Web服务进行企业信息化集成也存在着许多不足之处,主要有以下三点:第一,大部分企业对于实施Web服务还没做好充分准备,基础设施不完善,如缺少相关的软件和硬件。有些企业原来已经有了Web服务软件,这些遗留软件需要整合到新的信息系统中,必须实现其转化,因此需要大量的编程工作。而且构建完整的企业Web服务还需要大量资金和设备,所以,对于小企业来说,这种花销是十分高昂的,对于大企业来说,他们也会考虑是否要花如此高的费用。第二,Web服务一般是部署在防火墙之内的。企业公布的许多Web服务是要供给企业外部调用的,那么服务调用过程中产生的数据就必须在企业外部的网络上传输,这将变得很危险,所以,Web服务要解决一些数据加密和认证技术,目前已经有很多软件公司在数据加密和数据签名方面进行相关的研究。第三,目前的Web服务大多是一种低耦合度的企业信息化集成方式,所以这些服务的集成结果所达到的效果没有预期的好,不能满足企业对信息化建设的需求。为了让企业能够更容易地使用信息化系统,需要软件厂商对Web服务从开发、部署到维护,都提供完善的服务。数据集成方面的问题数据集成在企业的信息信息化建设中占据较大的地位,数据集成的好坏会直接影响到后续的企业信息化建设和信息系统的开发。数据的集成问题在数据库开发中是经常遇到的,企业的信息系统开发中必定会对数据库进行设计,因此,数据集成是必须考虑的。数据集成涉及到不同的数据来源,并为用户提供数据的统一视图。这个过程是十分显著的,在各种各样的情况下,包括商业领37
第5章集成过程中的主要问题域(当两个类似的公司需要合并他们的数据库)和科学(例如,结合来自不同的生物信息学库的数据)领域。数据集成的出现频率已经越来越高,它已成为广泛的理论研究重点。在管理上,人们经常提到的是“企业信息集成(EII)”中的数据集成。在具体进行数据集成时,需要认真考虑以下问题:(1)数据集成的范围企业信息化过程中的数据集成有时并不需要集成所有的数据,而是集成最相关的一些数据,这些数据包括数据库中的数据、某些HTML、多媒体文件等,所以在进行集成之前,要先考虑好哪些数据要集成,哪些数据不需要集成。(2)数据集成的资源所有权企业中的数据都有不同的来源,有些还属于不同的部门,那么,这种数据集成会涉及到一些权限的问题,有些数据是不能被其他部门访问的,有些数据是要被隔离保护起来的,因此,在数据集成过程中必须考虑每种数据的所有权,对于无权访问的数据要设置权限。(3)数据集成的全局模式全局模式的数据集成要使用数据聚合方法和ETL方法,这些方法涉及数据仓库技术,是在多个异构数据源上建立一个统一的全局模式,使不同的数据源能够在这种模式下进行交互,达到共享的目的。由于异构数据源之间的数据结构差别较大,所以要建立起统一的全局模式是一件不容易的事情,而且要让程序之间相互兼容。(4)数据的动态集成企业的数据集成并不是要丢弃以往建立的数据格式来建立一个一统的数据库,这样会增加企业的成本。比较合理的做法是在把所有的数据都存放到某个数据库的同时,也保留原来的数据,防止数据在集成过程中出现丢失,而且这些留存的数据将来还可能继续使用。所以,数据的集成是动态的过程,数据在流入旧的数据库时,也要将其存入新的数据库中,保持数据的一致,这也是在构建信息化系统所要考虑的问题。非技术因素企业信息系统的集成并不是简单地把硬件和软件进行连接,而是需要合理38
第5章集成过程中的主要问题的设计和部署,才能实现企业信息系统的正常运行。除了一些技术上的问题,也包括许多非技术问题,比如部门的分工和协调、人员配备和培训等。如果在构建过程中只考虑技术问题,而不考虑非技术问题,那么设计出的信息系统肯定会有不合理之处,势必会影响企业信息化实施的效果。企业信息系统的集成中非技术因素包括组织结构的整合和人员的整合,具体说明如下:(1)组织结构的整合传统的组织结构是一个等级森严的“金字塔”形层次结构,每个等级之间是烟囱式的结构,这是由于组织的层次结构和功能造成的。在现代信息技术如此普及的环境下,这种结构应该改变,因为它的改变有利于企业业务的开展。由于企业的员工并不直接参与决策和管理,部门之间和上下层之间也就不容易进行协调和沟通。在当今,企业以信息技术和业务过程为导向,这种分工方式的组织结构应该结束,取而代之的是新的组织结构。新的组织结构才能适应业务的发展,适应市场的发展,以满足快速决策的需要和内部的自由交流。在这种组织结构之外,允许各部门基于业务流程的需要自由交流。这个组织结构不仅有适应市场的能力,也具有自我发展和自我完善的能力。组织和职能部门之间应该实现横向和纵向一体化,打破横向障碍和纵向障碍。采用横向一体化的策略,企业能够有效地实现规模经济,快速获得互补性的能力和资源。此外,通过合作或者收购的方式,企业能够有效地建立与客户之间的固定关系,竞争对手的扩张意图得到遏制,维护了自身的竞争优势和竞争地位。但是,横向一体化策略同时也存在一定的风险,例如过度扩张所产生的巨大生产能力对企业销售能力和市场需求规模都提出了比较高的要求;同时,在某些横向一体化策略例如合作策略中,还存在技术扩散方面的风险;此外,横向一体化策略所面临的组织上的障碍风险也是不可忽视的一点,例如并购中存在文化不融合的现象、“大企业病”等。纵向一体化策略的目的是为了强化核心企业能够控制原材料供应、产品制造、分销和销售全过程的能力,使企业能够在市场竞争中掌握主动,进而达到增加各个业务活动阶段的利润。纵向一体化策略是企业通常会选择的战略体39
第5章集成过程中的主要问题系,但是任何战略都存在不可避免的风险和缺点,纵向一体化策略的初衷,是希望通过建立起较强的规模生产能力进而获得更高的回报,并且通过面向销售终端的方略获得来自于市场各种信息的直接反馈,从而促进不断改进产品和降低成本,来取得竞争优势的一种方法。纵向一体化策略有助于开拓技术,在某些情况下,纵向一体化策略提供了进一步了解上游或者下游经营相关技术的机会。这种技术信息对于基础经营技术的发展和开拓很重要。例如许多领域中的零部件制造企业都向一体化体系发展。这就能够熟悉零部件是怎样进行装配的技术信息。而且纵向一体化策略能够保证需求和供给,企业在产品供应紧缺时得到充足的供应也能够得以保证,或者在总需求很低时能够确保有一个通畅的产品输出渠道。这也就是说,纵向一体化策略能够减少上下游企业随意中止交易的不确定性。当然,在交易的过程中,内部转让价格必须要与市场接轨。纵向一体化策略还能防止被排斥,如果竞争者们都是纵向一体化企业,那么一体化就具有防御的意义。因为竞争者的广泛一体化能够占有许多供应资源或者拥有许多称心的顾客或者零售机会。所以,为了防御的目的,企业应该实施纵向一体化策略,否则将会面临着被排斥的处境。但是纵向一体化策略也会带来昂贵的代价,它迫使企业依赖自己的场内活动而不是外部的供应源,而这样做所付出的代价很可能随时间的推移而变得比外部寻找供应源还昂贵。产生这种情况的原因有很多。例如,纵向一体化策略意味着通过固定关系来进行购买和销售,上游单位的经营激励可能会因为实在内部销售而是竞争有所减弱。再例如,纵向一体化策略可能切断来自供应商以及客户的技术流动。如果企业不实施一体化,供应商通常愿意在工程,研究等方面积极支持企业。反过来如果在从一体化企业内部某个单位购买产品时,企业不会像与外部供应商做生意时那样激烈地讨价还价。所以,内部交易会减弱员工降低成本和改进技术的积极性。纵向一体化策略还不利于平衡,在价值链的各个阶段平衡生产能力上会产生一些问题。价值链上各个活动最有效的生产运作规模可能不完全相同,这就使得完全一体化不是很容易达到。针对某项活动来举例,如果它的内部能力不足以供应下一个阶段的话,差值部分就需要从外部购买。如果内部能力超过供应,就必须为过剩部分继续寻找顾客,如果生产了副产品,就必须进行处理。(2)人员的整合40
第5章集成过程中的主要问题企业信息系统集成是一个集合了多类人员的过程,包括商界人士、系统分析师、开发人员等,因此,需要协调和沟通各类人员,让他们了解企业信息化的重要性,有效地整合各种工作人员,让他们共同参与企业信息化。信息系统集成完成后,系统集成商和应用开发人员应该为企业提供一个长期有效的技术支持服务,这也是企业信息化成功应用的关键。随着信息化建设的深入和电子商务的普及,企业需要进一步的集成现有的应用系统和扩展其价值链,实现企业内部、企业与企业之间、企业与客户之间端到端的业务集成,使企业可以为各种类型的用户:企业内部雇员、合作伙伴、供应商和顾客等提供个性化的信息搜索、访问和分析的功能,帮助他们通过有效利用企业的信息资产,实现更有效率的业务运作,做出最有效的业务分析和决策。41
第6章结论第6章结论信息技术的高速发展为企业信息化提供了有力的技术保证,越来越多的企业已经开始着手建立自己的信息化系统,可见信息化已经在社会和企业中发挥着重要的作用。但是企业原有的一些软件要想集成起来也不是件容易的事,因此怎样合理利用现有的信息资源,整合原有的资源,扩大信息共享的范围,是企业信息化过程中所面临的问题。以往的方法是采用组件技术,但是这种方法对于平台、协议等并不能有很好的适应性,目前好的解决方案就是采用Web服务,它基于XML,这就能够克服上面所说的缺点。现对本文的内容进行总结如下:本文根据信息系统的体系结构,设计了基于Web服务的体系结构的五个层,即数据库层、数据访问层、业务逻辑层、Web服务层、客户层,每个层做了具体的设计说明,并给出了应遵循的原则,以此作为企业信息化建设整个Web服务架构实施的指导准则。从而形成一个多层的体系结构,使得系统的功能得到增强,提高系统的可扩展性和可移植性,方便以后对改系统进行升级和维护。分析了企业信息化存在的一些问题,并结合Web服务技术的优势,设计了一个信息服务系统架构,以商品价格查询为例进行了相应的说明,构建SOAPWeb服务。在这个多层架构的体系结构中,客户通过客户层与Web服务进行交互,开发人员通过Web层对服务进行调用,以克服传统技术不能很好地适应分布式平台、不同协议等缺点,为企业内部之间,企业与企业之间的信息交换提供了较好的解决方案。该系统能在大多数的操作系统上运行,能够为企业提供一个有参考价值的应用。而且在设计上把执行和逻辑进行分离,为以后的扩展提供了可能。支持多个远程用户同时访问系统,降低了用户执行的等待时间,减少了服务器开销和整体企业信息化系统成本,提高了系统稳定性。在具体实施过程中,还有一些技术需要得到改进,应该采用系统信息加密技术对一些敏感数据进行加密,比如密码和个人信息等。42
参考文献参考文献[1]徐家俊,贾文玉编著.企业信息门户.北京:机械工业出版社.2004,1[2]UniversalDescription,Discovery,andIntegration,.[3]WebServicesDescriptionLanguage,
参考文献2002-03-20/2003-04-09[18][EB/OL].
参考文献[34]MessageServiceSpecificationebXMLTransport,Routing&,11[35]JCPNote,[R].JavaCommunityProcess,2003[36]AlanKropp,[S].OASIS,2003[37]赵勇,马殿富.远程门户组件的Web服务的研究与实现.J.计算机应用研究.2004,11:247~250[38]程宏斌,孙霞.单点登录技术研究.J.计算机时代.2004,5:3~4[39]谭立球,费耀平,李建华.企业信息门户单点登录系统的实现.J.计算机工程.2005,9:102~104[40]毛捍东,张维明.一个基于Web服务的单点登录系统.J.计算机工程与应用.2004(24):18~21[41]林满山,郭荷清.单点登录技术的现状及发展.J.计算机应用.2004,6:248~250[42]查炜.论信息的个性化需求与个性化服务.J.山东图书馆季刊.2000,(2):16~17[43]张晓林.基于web的个性化信息服务机制.J.现代图书馆情报技术.2001(1):25~29[44]王超.关于企业信息化的现状与对策研究[J].商场现代化,2006,(30):21-22.[45]杜红,黄春毅.我国中小企业信息化研究现状的定量分析[J].情报探索,2006:83-85.[46]李晓东.我国企业信息化发展的现状、障碍及对策建议[J].数量经济技术经济研究,2001,(1):24-26.[47]秦克林.浅述如何搞好企业信息化建设[J].林业机械与木工设备,2006,34(9):40-42.[48]FOSTERI,KESSELMANC,TUECKES.TheAnatomyoftheGridEnablingScalableVirtualOrganizationInternational[J].SupercomputerApplications,2001,15(3):32-35.[49]邹筱梅.XML技术与应用综述[J].教育信息化,2003,12(5):21-23.[50]杜勋.Web服务信息发布及安全性的研究[D].武汉:武汉理工大学,硕士学位论文,2007:3-4.[51]张中.基于XML/SOAP协议的Web服务研究及其应用[D].哈尔滨:哈尔滨工程大学,硕士学位论文,2006:25-28.[52]张志强,张景.基于WebServices的应用系统开发初探[J].计算机应用,2003,(5):134-136.45
参考文献[53]李晶睿.数据可视化的Web服务及其组合的研究与开发[D].武汉:武汉理工大学,硕士学位论文,2007:9-10.[54]杨涛,刘锦德.WebServices技术综述——一种面向服务的分布式计算模式[J].计算机应用,2004,8(24):1-4.[55]TSALGATIDOUA,PILIOURAT.AnOverviewofStandardsandRelatedTechnologyinWebService[J].DistributedandParallelDatabases,2002,12(2):135.[56]刘红文.浅谈WebService技术[J].福建电脑,2007,(3):70.[57]柴晓路.Web服务架构与开放互操作技术[M].北京:清华大学出版社,2002:188-212.[58]肖开锋,冯文龙.面向服务体系架构的供应链管理信息系统研究[J].中国管理信息化:综合版,2007,9(10):22-24.[59]孙友仓.一种基于WebServices的分布异构数据库集成机制[J].山西大学学报:自然科学版,2007,3(10):340-343.[60]王明文,朱清新,卿利.Web服务架构[J].计算机应用研究,2007,(3):93-94.[61]顾宁,刘家茂,柴晓路.WebService原理与研发实践[M].北京:机械工业出版社,2006:33-35.[62]王楠,刘心雄,陈和平.WebService技术研究[J].计算机与数字工程,2006,7(34):88-90.[63]周剑锋,代崴.WebService技术框架研究[J].软件导刊,2006,(19):4-6.[64]BOOTHD,HAASH,MCCABEF.BrokerArchitectureforIntegratingDataUsingaWebServicesEnvironment[J].Service-OrientedComputing,2003,(2910):409-422.[65]AKHILS,SVENG.WebServicesintheEnterprise[M].Berlin:SpringerUS,2005:20-33.[66]DOUGLASSB,DOINGHARD.Time:DevelopingReal-TimeSystemswithUML,Objects,FrameworksandPatterns[M].Boston:Addison-Wesley,1999:78.[67]ERIKSSONH,PENKERM,LYONSB.UMLtoolkit[M].Hoboken:Wiley,2003:122-123.[68]吴家菊,唐定勇,席传裕.基于XML的信息集成研究[J].计算机工程与设计,2007,20(28):5018-5020.[69]SUJEON,JEHONG.Interaction-basedBehaviorModelingofEmbeddedSoftwareUsing46
参考文献[J].ComputersandStructures,2006,(5):45-48.[70]吴文明,瞿裕忠,董逸生.Web服务及相关技术[J].计算机应用与软件,2004,3(21):14-15.[71]张奇勇,王东.基于XML及SOAP的信息交换平台研究[J].计算机应用与软件,2007,10(24):39-40.[72]陈佳蕊,蔡国永.基于扩展WSDL变异的Web服务测试方法[J].计算机应用,2007,7(27):1726-1731.[73]JAMESSNELL,DOUGTIDWELL,PAVELKULCHENKO.ProgrammingWebServiceswithSOAP[M].Washington:O’Reilly&Associates,2002:235-242.[74]索红光,左利云.基于UDDI的服务代理的设计与实现[J].计算机工程与设计,2007,18(28):4526-4528.-65-[75]龚文芳.基于虚拟企业的UDDI访问控制研究[J].计算机应用研究,2006,(6):110-112.[76]LIPPMAN,SA,RP.UncertainImitability:AnanalysisofInterfirmDifferencesinEfficiencyunderCompetition[J].BellJournalofEconomics,1992,(13):418-438.[77]谈翔,张忠能.一种WebService的发布平台的设计[J].计算机应用与软件,2005,(9):61-62.[78]ERICNEWCOMER,GREGLOMOW.UnderstandingSOAwithWebServices[M].NewYork:ManningPublications,2006:128-143.[79]顾宁.WebServices原理与研发实践[M].北京:机械工业出版社,2006:145-148.[80]冯锡炜.应用Web服务技术实现分布式组件互操作[J].计算机应用研究,2004,24(10):27-28.[81]徐枫.Web服务的应用策略及实践研究[D].武汉:华中科技大学,硕士学位论文,2006:20-22.[82]吴建平,虞益诚.基于WebService的协同办公系统体系结构与实现的探究[J].计算机应用与软件,2007,9(24):124-126.[83]崔妍卿,杨德华.WebService与传统Web应用[J].微计算机应用,2005,(1):21-22.[84]OMG.CORBA系统结构、原理与规范[M].北京:电子工业出版社,2006:9-13.[85]张驰,吴健,胡正国.CORBA与Web服务的比较与集成[J].计算工程与设计,2005,(8):13-14.47
参考文献[86]JULIAB,ANITACM.ProgrammingwithJava[M].Beijing:PublishingHouseofElectronicesIndusty,2004:68-72.[87]孙荣胜,徐天鹏.Web服务与CORBA、DCOM三种分布式计算模型的互操作[J].江南大学学报,2003,(3):29-31.[88]RICKAOBERG.MasteringRMI-DevelopeingEnterpriseApplicationinJavaandEJB[M].Beijing:CiticPublishingHouse,2003:23-24.[89]刘海川,陈培久.基于和XML的工作流管理系统的设计与实现[J].计算机工程与应用,2004,(15):214-217.[90]DIETERF,CHRISTOPHB.TheWebServiceModelingFrameworkWSMF[J].ElectronicCommerceResearchandApplications,2002,1(2):113-137.[91]AMJADUMAR.PerformanceofWeb-basedApplications[J].Database&NetworkJournal,2004,27(5):437-450.[92]林海.浏览器/服务器应用开发[M].北京:科学出版社,2000:
附录附录部分程序代码客户端xaml文件<Windowx:Class=""xmlns="
附录VerticalAlignment="Top"Width="120"/><LabelContent="UnitsonOrder"Height="23"HorizontalAlignment="Left"Margin="10,220,0,0"Name="label8"VerticalAlignment="Top"Width="120"/><LabelContent="ReorderLevel"Height="23"HorizontalAlignment="Left"Margin="10,250,0,0"Name="label9"VerticalAlignment="Top"Width="120"/><LabelContent="Discontinued"Height="23"HorizontalAlignment="Left"Margin="10,280,0,0"Name="label10"VerticalAlignment="Top"Width="120"/><LabelContent="CostCalculator"Height="32"HorizontalAlignment="Right"Margin="0,0,39,110"Name="label11"VerticalAlignment="Bottom"Width="126"FontSize="15"/><LabelContent="HowMany"Height="23"HorizontalAlignment="Right"Margin="0,0,119,89"Name="label12"VerticalAlignment="Bottom"Width="75"/><LabelContent="TotalCost"Height="23"HorizontalAlignment="Right"Margin="0,0,74,21"Name="label13"VerticalAlignment="Bottom"Width="120"/><LabelHeight="23"Margin="150,40,0,0"Name="productName"VerticalAlignment="Top"HorizontalAlignment="Left"Width="257"/><LabelHeight="23"HorizontalAlignment="Left"Margin="150,70,0,0"Name="supplierID"VerticalAlignment="Top"Width="120"/><LabelHeight="23"HorizontalAlignment="Left"Margin="150,100,0,0"Name="categoryID"VerticalAlignment="Top"Width="120"/><LabelHeight="23"Margin="150,130,31,0"Name="quantityPerUnit"VerticalAlignment="Top"/><LabelHeight="23"HorizontalAlignment="Left"Margin="150,160,0,0"Name="unitPrice"VerticalAlignment="Top"Width="120"/><LabelHeight="23"HorizontalAlignment="Left"Margin="150,190,0,0"50
附录Name="unitsInStock"VerticalAlignment="Top"Width="120"/><LabelHeight="23"HorizontalAlignment="Left"Margin="150,220,0,0"Name="unitsOnOrder"VerticalAlignment="Top"Width="120"/><LabelHeight="23"HorizontalAlignment="Left"Margin="150,250,0,0"Name="reorderLevel"VerticalAlignment="Top"Width="120"/><LabelHeight="23"HorizontalAlignment="Right"Margin="0,0,21,19"Name="totalCost"VerticalAlignment="Bottom"Width="68"/><TextBoxHeight="21"Margin="150,14,0,0"Name="productID"VerticalAlignment="Top"HorizontalAlignment="Left"Width="50"/><TextBoxHeight="21"HorizontalAlignment="Right"Margin="0,0,21,87"Name="howMany"VerticalAlignment="Bottom"Width="68"/><CheckBoxMargin="150,285,0,0"Name="discontinued"Height="16"VerticalAlignment="Top"IsEnabled="False"HorizontalAlignment="Left"Width="120"/><ButtonContent="GetProduct"Height="23"HorizontalAlignment="Right"Margin="0,12,90,0"Name="getProduct"VerticalAlignment="Top"Width="75"/><ButtonContent="CalculateCost"Height="23"HorizontalAlignment="Right"Margin="0,0,99,49"Name="calcCost"VerticalAlignment="Bottom"Width="95"/></Grid></Window>客户端cs文件usingSystem;;;;;;51
附录;;;;;;;;;usingProductDetailsContracts;namespaceProductClient{///<summary>///
附录intnumberRequired=();decimalcost=(prodID,numberRequired);=("{0:C}",cost);}catch(Exceptionex){("Errorobtainingcost:"+,"Error",,);}finally{if(==){();}else{();}}}privatevoidgetProduct_Click(objectsender,RoutedEventArgse){ProductClientProxyproxy=newProductClientProxy();try{53
附录Productproduct=();=;=;=;=;=("{0:C}",);=;=;=;=;}catch(Exceptionex){("Errorfetchingproductdetails:"+,"Error",,);}finally{if(==){();}else{();}}54
附录}}}服务器端文件publicclassProductDetails:IProductDetails{publicProductGetProduct(stringproductID){intID=(productID);SqlConnectionStringBuilderbuilder=newSqlConnectionStringBuilder();=".\\SQLExpress";="Database";=true;DataContextproductsContext=newDataContext();Productproduct=(<Product>()==IDselectp).First();returnproduct;}}服务器端文件usingSystem;;55
附录;;;;;;;publicclassProductInformation:IProductInformation{publicdecimalHowMuchWillItCost(intproductID,inthowMany){SqlConnectiondataConnection=newSqlConnection();decimaltotalCost=0;try{SqlConnectionStringBuilderbuilder=newSqlConnectionStringBuilder();=".\\SQLExpress";="Database";=true;=;();SqlCommanddataCommand=newSqlCommand();=dataConnection;=;="SELECTUnitPriceFROM56
附录ProductsWHEREProductID=@ProductID";SqlParameterproductIDParameter=newSqlParameter("@ProductID",);=productID;(productIDParameter);decimal?price=()asdecimal?;if(){totalCost=*howMany;}}finally{();}returntotalCost;}}57
致谢致谢光阴荏苒,硕士研究生的学习即将结束,在这三年的学习生活里使我受益非线。经历了一年时间的磨砺,硕士论文终于完成,回顾一年前来收集、整理、修改到最后完成的过程,我得到了许多的帮助,所以要向老师和同学们表达我最诚挚的感谢。首先,我要感谢我的导师王元亮老师。王老师在论文的选题和写作阶段给予了我很大的帮助,王老师总会不厌其烦地指点我,并提出许多有用建议,每当我有所疑问,还会耐心给予解释。王老师多次抽空对我的论文进行批改,并且提出很多中肯的指导意见,让我在研究和写作过程中得到许多帮助。所以,我对王老师致以最诚挚的感谢。其次,我还要感谢云南财经大学信息学院的各位老师,在学习方面对我的无私帮助和提点。使我在这次论文写作过程中能够顺利完成。然后,感学林杰同学在校期间对我的帮助,在选题方面给予的中肯建议。并多次与我讨论论文选题方面的内容,所以在这里我要衷心地感谢所有帮助过我的老师和同学。最后,我要感谢所有参与我论文评审和答辩的各位老师,感谢老师们在百忙之中抽出宝贵时间给我一个审视几年来学习成果的机会,让我能够明确今后的发展方向。58
本人在读期间完成的研究成果本人在读期间完成的研究成果发表的学术论文[1]韩雪,王元亮.粒子滤波的目标跟踪算法研究与实现[J].现代商贸工业,2011,8(15):