1、在动态电子商务中实现web服务在动态电子商务中实现Web服务摘 要 计算机网络和基于Web的组件技术的迅速发展,给电子商务的发展带来了新的机遇。在以B2C为主的商务模式向B2B为主的商务模式转变的过程中,传统以交互式Web为主的电子商务模式也逐渐向动态电子商务模式的方向发展。动态电子商务就是企业在进行电子商务过程中可以很容易的转换合作伙伴,克服以前转换合作伙伴带来的应用程序和数据集成带来的困难。这大大降低了企业转换合作伙伴的成本和系统集成的时间,使企业能够轻易快速地配置它们的软件系统去创造一个新的商务模型,加强了企业的竞争优势。动态电子商务的发展是以Web服务技术的出现为依托的。Web服务给动
2、态电子商务提供了技术基础。 Web服务技术是一种自包含、自描述、组件化的应用程序。它可以被看作是一种特殊的软件模块,能够通过标准的协议在 Internet上组装起来,完成某些功能和执行商业流程,它通过向用户提供服务来创造价值.Web服务以)Ml作为基本的数据通讯格式,消除了使用不同组件模型、操作系统和编程语言之间的差异。同时,Web服务的一些新的协议标准:简单对象访问协议 (SOAP),Web服务描述语言 (WSDL)、通用发现描述和集成 (UDDI)等提供了使用 Web服务的完整的支持。SOAP是一个以HTTP为底层协议的访问Web服务的轻量级协议。WSDL是用于描述Web服务的XML格式。
3、UDDI提供了注册Web服务的机制。Web服务使应用程序的集成比以前更快、更容易而且更便宜,使企业之间的电子商务变得更加灵活。关键词:动态电子商务、Web服务、可扩展标记语言、简单对象访问协议、 Web服务描述语言、通用发现描述和集成 Keywords: Dynamic e-business, Web Service, XML, SOAP, WSDL, UDDI一、Web服务概述(一)Web服务的定义 Web服务是一种“自包含、自描述、组件化的应用程序”。它可以被看作是一种特殊的软件模块,能够通过标准的协议在 Internet上组装起来,完成某些功能或者执行 “商业流程”。不同于传统的软件包,
4、它是通过向用户提供服务来创造价值。传统的软件难以满足计算机技术飞速发展所带来的易变的需求。通过广泛普及的Internet, Web服务使得企业能够快速的实现信息的共享和服务的复用。Web服务通过定义一组可以通过因特网调用的相关的商业逻辑,从而可以使某企业将其电子商务应用程序的功能以公开的、统一的方式提供给企业的商业合作伙伴。Web服务通过WSDL来描述,通过SOAP作访问,在商业注册中心UDDI发布,从而使开发者和电子商务应用程序可以搜索并定位到该服务。 Web服务是服务器向客户端提供的一种跨越互联网的服务。它在服务器上建立一个代理层,代理层向服务器建立通信,获得数据,再以标准的XML格式将数
5、据向外发送。由于ME数据可以为建立在任意平台上的客户端所使用,从而跨越了应用系统的对象体系、运行平台、开发语言的界限,实现了跨平台的数据传输。通过将基于 XML的消息处理用作创建和访问服务的机制,Web服务客户端和Web服务提供程序之间除输入、输出和位置之外无需互相了解其他信息。 Web服务的主要思想,就是未来的应用将由一组应用了网络的服务组合而成。只要两个等同的服务使用统一标准和中性的方法在网络上宣传自己,那么从理论上说,一个应用程序就可以根据价格或者性能的标准,从两个彼此竟争的服务之中选出一个。除此之外,一些服务允许在机器之间复制,因而可以通过把有用的服务复制到本地存储库,来提高运行在特定
6、的计算机上的应用程序的性能。Web服各仲应用程序的集成比以前更快、更容易而且更便宜。集成在协议栈中较高层发生,它基于更注重服务语义而不那么注重网络协议语义的消息,从而实现了业务功能的松散集成。这些特性对于在企业之间和企业内部通过Web连接业务功能是非常理想的。它们提供一种一致化编程模型,从而在企业内外都可以利用通用的基础设施并以一种通用的方法进行应用程序集成。利用现有的语言和平台以及旧应用程序,可以以一种增量的方式来集成和应用 Web服务。 随着 Web服务的使用越来越多以及行业的成熟,将会有更多的应用程序集成的动态模型发展起来。最终,通过 Web服务进行系统集成将会在运行时动态发生。(二)W
7、eb服务的优点 Web服务是下一代分布式系统的核心,它具有如下特点: 1.互操作性:任何的 Web服务都可以与其他 Web服务进行交互。由于有了SOAP这个所有主要供应商都支持的新标准协议,因而避免了在CORBA, DCOM和其他协议之间转换的麻烦。 2.普遍性:Web服务使用 HTTP和 XML进行通信。因此,任何支持这些技术的设备都可以拥有和访问Web服务。 3.完好的封装性:Web服务是一种部署在Web上的对象,与其他对象技术一样,具备良好的封装性。服务请求者和服务提供者只考虑自己要用于交互的接口,因而服务请求者不知道服务提供者如何实现他的服务,服务提供者也不知道一个服务请求者如何使用他
8、的服务,这些细节在请求者和提供者内部封装了。 4.松散耦合性:由于采用基于对象组件的技术,只要Web服务的界面不变,其实现有任何变更、甚至迁移到其他平台对于调用者来说都是透明的。另外,由于Web服务独特的运行架构,调用者无需在开发应用程序时,预先知道被调用的对象组件的实例和与它交换信息的通信协议,这些都可以在运行时即时连接。5.行业支持:主要的供应商如IBM, Microsoft都支持 SOAP和相关的Web服务技术。这大大巩固了Web服务广泛发展的行业基础。(三)Web服务体系结构Web服务体系结构是面向对象分析与设计的一种合理发展,同时也是电子商务解决方案中,面向体系结构、设计、实现与部署
9、而采用的组件化的合理发展。和面向对象系统一样,封装、消息传递、动态绑定、服务描述和查询也是Web服务中的基本概念,而且,在Web服务体系结构中,所有的东西都是服务,这些服务发布一个API供网络中的其他服务使用,并且封装了实现细节。(四)Web服务体系结构中的角色服务提供者 (Service provider):从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管访问服务的平台。服务请求者 (Service registry):从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户
10、界面的程序 (另外一个 Web服务)来控制它。服务注册中心 (Service requestor):这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。在静态绑定开发或动态绑定执行期间,服务请求者在服务注册中心查找服务并获得服务的绑定信息。对于静态绑定的服务请求者,月民务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。同样,服务请求者也可以从服务注册中心以外的其它来源得到服务描述,例如本地文件、nP站点、Web站点、广告和服务发现 (ADS).(五)Web服务体系结构中的操作 1.发布操作(publish):使服务提供者可以向服务注册中心注册自己的功能
11、及访问接口。Web服务要被人访问,就必须想办法让潜在的访问者知道它。最主要的方法就是用一种形式化,同时又便于理解的语言来描述Web服务,并把它张贴到潜在访问者认可的中介机构-服务注册中心。现在对Web服务的描述主要是通过WSDL来完成的,它描述了如何绑定和调用的信息。 2.发现操作 (find):使服务请求者可以通过服务注册中心查找特定种类的服务。通过发现这个操作,服务请求者可以获得对Web服务的描述信息.UDDI是目前的工业标准,它基于关键字做服务需求与服务提供之间的匹配。 3.绑定操作 (bind):使服务请求者能够真正使用 Web服务。通过绑定操作,服务请求者将真正地与服务提供者交互,来
12、调用它所发现的Web服务。Web服务的构件: 服务:Web服务是一个由服务描述来描述的接口,服务描述的实现就是该服务。服务是一个软件模块,它部署在由服务提供者提供的可以通过网络访问的平台上。服务存在就是要被服务请求者调用或者同服务请求者交互。当服务的实现中利用到其它的Web服务时,它也可以作为请求者。 服务描述:服务描述包含服务的接口和实现的细节。其中包括服务的数据类型、操作、绑定信息和网络位置。还可能包括可以方便服务请求者发现和利用的分类及其它元数据。服务描述可以被发布给服务请求者或服务注册中心 。(六)Web服务的协议栈Web服务平台需要一套协议来实现分布式应用程序的创建。(1)任何平台都
13、有它的数据表示方法和类型系统。要实现互操作性,Web服务平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。(2)还必须有一种方法来对这个Web服务进行远程调用。这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种 RPC协议还必须与平台和编程语言无关。(3)在传统的分布式系统中,基于界面的平台提供了一些方法来描述界面、方法和参数 (如COM和CORBA中的工DL语言)。同样的,Web服务平台也必须提供一种标准来描述Web服务,让客户可以得到足够的信息来调用这个Web服务。(4)最后,Web服务平台还提供了一种让客户端动态发布和查找Web服务的
14、机制。二、动态电子商务概述(一)动态电子商务出现的必然性随着计算机网络的蓬勃发展以及其应用领域的更加广泛,网络经济己经成为信息时代的主要经济模式。电子商务作为网络经济的重要组成部分使传统的商务模式发生了巨大的变革。但是起初的电子商务是极其不完善的,企业对企业的应用集成主要是把单块的企业软件进行改装而取得所需要的解决方案。但是,这种紧密结合解决方案的灵活性很差。当商务需求改变时,很难改装这种集成配置去解决新的问题。现在,企业无需在企业内部网、外部网和因特网做应用集成时为这种情况而担优,原因是动态电子商务为企业提供了商务流程、客户和厂商系统动态延伸和连接的功能.Web服务技术是动态电子商务的基础。
15、应用Web服务,企业可以很容易地集成新的应用程序,连接各种各样的商务流程和增值销售商来达到其商务目的。动态电子商务使商业实体能在其自身的域内以及在贸易伙伴之间有步骤地管理交互作用。从发现新的合作伙伴到与另一商务实体的集成,动态电子商务着重程序对程序的交互作用,而不是早期 B2C电子商务阶段占主导地位的客户对程序的交互作用(二)动态电子商务的特点: (1)软件资源之间的松散集成。(2)软件资源的服务接口完全公开并且可访问。 (3)程序与程序间的消息传递遵守开放因特网标准。 (4)可通过将核心商业进程和外包软件组件、资源组合起来,以构建应用程序。 (5)颗粒软件资源可用性的增强将使商业进程更灵活和
16、更个性化。 (6)可重用的外包软件资源将为服务消费者降低成本和提高生产效率。(7)软件能作为服务被出售。(三)动态电子商务的产生过程 1、宣传性的企业网站在电子商务的开始阶段,静态式的Web是企业在因特网上进行商务的主要途径。企业的网站是以宣传为主,没有交互,客户可以随时在企业的网站上浏览、寻找和搜集静态的商务信息。确切的说,这种没有互动的浏览静态式的Web的方式,不算是真正的电子商务。 2、以B2C为主的电子商务这一阶段的电子商务为用户提供了与网站交互的功能。企业对客户 (B2C)的商务主要是通过交互式的网上表单或者企业内部集成等程序进行。最初,CGI是交互式Web的主要技术,后来又出现了A
17、SP, PHP, JSP等技术。虽然CGI是一个简单的技术,但是它不是跨平台的、可靠的和高性能的技术。从编程的角度来看,用C/C+编程语言或者Perl脚本语言通过CGI去开发和展示用户界面(GUI)比较复杂。CGI程序如有内存泄漏等编程错误,它可以使整个Web服务器停止运行。由于每个CGI请求都是以系统进程形式执行的,所以会消耗很多的系统资源。后来Web服务器供应商发明了不同的专有高性能接口,例如Netscape的NSAPI, IBM的GWAPI和Microsoft的ISAPI去提高吞吐量。虽然这些接口改善了CGI程序的性能,用它们来编程的技能要求也相应地提高了。但是,由于这些接口是专有的,如
18、果需要使用另外一个Web服务器来运行这些开发了的CGI程序,是十分困难的。Java语言的出现使得通过其实现的Web应用程序是可靠的、跨平台的和高性能的。自从Sun公司把Java Servlets接口定义为标准的Web服务器插件程序,Java Servlets成为交互式Web的主要技术。Java Servlets与CGI程序相似,但是Servlets是跨平台和高性能的。任何一个Web服务器都可以装配上Servlets引擎来执行 Servlets程序。Servlets引擎是一个在Java Virtual Machine (JVM)中运行的高性能的插件程序。虽然 Servlets可以是个独立的程序,
19、但是商务和前台界面展示功能在架构设计与实现上应该分开。每个典型的Web应用程序都使用模型一视图一控制器 (Model-View-Controller,简称MVC)系统架构来实现。Web应用程序的商务功能一般用JavaBeans, Enterprise JavaBeans (EJB)等模块技术来实现。它的前台界面展示功能用Java Server Pages (JSP)来完成,而Servlets起着一个协调前、后台程序和执行HTTP协议的作用。 动态电子商务模式的电子商务以企业对客户的商务为主,使用HTML做信息的展示,许多步骤都是人工发起的。动态电子商务要求应用程序自动地发起Web交易,减少人工
20、步骤中易出的错误并提高效率。这种电子商务主要体现于企业对企业(B2B)的应用集成,使用XML做信息的交换。企业对企业(B2B)的计算机系统早己出现了,但是,以前这些应用集成多数用专有的交换协议技术来实现。在应用程序或者系统之间需要交换数据的时候,必须定义一个共同的文件格式。当所有的应用程序或系统都能处理这种文件格式后,才能在它们之间进行数据交换。EDI是一个早期企业对企业电子商务的解决技术,它依赖私人网络、硬性的信息格式和两端特定的软件去完成商业合作伙伴的数据集成。大规模的软件系统,例如企业资源规划(ERP)、客户关系管理(CRM)和供应链管理(SCM)都是用与EDI相同的设计原则,去解决完成
21、数据和程序集成的。后来,EDI成为企业对企业的应用集成标准交换协议,取代了专有的交换协议。目前,大多数商业系统都由新、旧开发的和购买的应用系统混合起来所组成,而且它们在多种平台上运行。由于设计和实现的延伸性差,造成在把现存的系统和新的软件集成时,困难重重,难以满足新的用户要求和功能。同时,开发者在实施软件系统集成时,要面对不同的编程语言、操作系统、硬件平台、网络、对象模型等的问题。难以延伸的文件格式和密祸的应用程序对企业系统集成、满足新的用户要求和功能很不利。但是,企业不可能抛弃他们在现存系统上的巨大投资,重新开发和集成一套新软件系统。企业需要一种技术标准允许现存系统以松散祸合的形式集成并一起
22、运作。在与一个新的合作伙伴开展商务活动的时候,由于需要连接新公司的系统,应用程序和数据集成也十分困难。因为与一个合作伙伴的系统集成很费时、耗资,所以当商务改变时,企业不能够容易地转换合作伙伴。这种情况导致企业的电子商务基本上是静态的。但是,如果企业能够轻易地、快速地配置他们的软件去创造出一个新的商务模型,将会加强自己的竞争优势并且从中获益。Web服务技术作为一个开放的标准简化了EDI编程的要求,并把EDI功能延伸到Web上,同时它解决了如何决定信息传送的格式、发现新的商业合作伙伴、能协调多重卖主的工作流程、缩短系统集成所需的时间等问题。因特网改造了企业对客户(B2C)的商业运作,Web服务将为
23、企业对企业(B2B)的应用集成带来巨大的商机,使企业的业务演变成动态电子商务。动态电子商务的特点是软件应该按照商务的过程而造型,设计成可重用的和柔性的组稗。应用动态电子商务,企业可以即时寻找商业合作伙伴,并将各种软件集成新的解决方法。使用Web服务技术,将企业各种应用程序和信息系统进行封装、组合和集成以达到动态电子商务的目标.Web服务能够统一地封装信息、行为、数据及商务流程,把应用程序改变成可重用的和柔性的组件.企业的核心商务功能用Web服务封装成组件之后,这些商务功能可以很方便地在企业之间共享。基于Web服务的组件被一次性地部署到网络后,所有连入网络的应用程序可以随时调用和集成这些Web服
24、务。通过采用Web服务,能够显著地降低开发、部署和集成的费用。开发者无需与多种平台和编程语言进行交互,只需要与有标准协议的Web服务这种组件进行交互。如果商务流程需要更改,开发者也不必修改大量的代码,甚至通过开发工具的支持,根本无需更改程序代码。由于Web服务的调用接口采用XML开放标准来定义,因而在代码实现上的代价也会被降低。 动态电子商务的实现有两个部分组成:连接和交易处理。连接解决应用程序集成的问题。这类集成可以直接使用Web服务去解决程序与程序之间的数据交换难题。交易处理能够建成一个完整的企业对企业 (B2B)的应用集成。这意味着需要把Web服务的动态性质延伸到复杂的交易处理系统、工作
25、流程、商业流程管理和合作系统上面。连接和交易处理一起能够满足动态系统集成的要求。它们共同是开发动态电子商务必需和充分的技术。利用Web服务企业只需要定义一层新的服务接口,就可以封装并重新利用现存的软件。Web月民务为电子商务发展带来了新的机遇。它促成了动态电子商务模型的出现,给企业的发展带来了新的商机。(四)Web服务在企业电子商务中的价值Web服务使企业能够利用连接和交易处理来创造出的松散祸合的系统集成。它支持多样化的商业关系和交易处理,可以把跨地区的不同商业关系的企业连接起来,处理他们所需求的商务。Web服务能使企业利用外部承包的方法去实现商务流程,减少开发、实施以及运作的费用。这样,企业
26、就可以充分地利用外部的技能和服务。企业利用Web服务,创造了一种新的动态电子商务的商业模型。它允许企业发布调用它们商业流程的接口,以方便和简化企业之间的相互交流。这样可以促使新的商业模型的出现,而且可增加机会,拉开与竟争对手的差距。Web服务也允许贸易伙伴、承包商、顾客和供应商连接商业流程而且一进行跨企业的交易处理。企业实施Web服务,能从自己现存的资产中取得更多的价值,从而得到增加收入的机会。使用Web服务,企业能够重复使用现存的资产和购买了的解决方案来减少企业对企业 (B2B)的应用集成开发的费用和实施的时间,而且不需硬性地改写现有的软件系统,或者从头开始开发。总之,Web服务给企业之间的
27、电子商务提供了可靠的技术基础,给企业的发展带来了新的机遇.三、动态电子商务的实现技术(一)可扩展标记语言XMLWeb服务是动态电子商务的核心技术,而XML开放标准则是Web服务技术的基础。我们经常在提起Web服务的时候将它说成XML Web服务,这是因为在后台,程序向Web服务发送以及接收的信息都是使用XML进行打包的。另外,WSDL文件被用来在程序中添加Web引用以作为服务,它们通常也包含用来描述服务和方法的基于XML的内容。XML和HTML一样,也是一种标记语言。区别在于Web开发人员使用HTML来实现Web页面,程序员用XML来描述数据。例如程序员使用XML来创建文档,描述数据库的字段和
28、数据结构。数据库程序可以引入XML文档,使用它所包含的信息来构建相应的字段并且在数据库中进行记录。同时,XML是一种源语言(Meta Language),可以根据源语言定义出新的标记语言。由于XML所具有的可扩展和高度结构化的特性,使得XML比HTML更加适合在电子商务中传递数据和定义内容。XML是Web服务平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优势在于提供开放式的数据交换功能,由于不同企业之间或者企业内部的不同部门很少达成协议使用统一的软件工具和数据格式,以致相互之间的通信涉及到大量的数据交换、集成问题和工作。XML使用户可以很简单地在网络上发送消息并且保证在格式转
29、换过程中不会丢失任何信息,而不需要预先知道对方使用什么样的系统。XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有解决如何去扩展这套数据类型。Document Type Definition (DTD)和XML Schema(XSD)都可以用来定义XML标记和其用法。XSD与SGML体系的兼容性不如DTD,但是XSD比DTD功能多、更方便和提供更多的数据类型。XSD不但支持整数、时间等数据类型,而且还提供自定义数据类型的机制;而DTD只提供文木型的支持。XSD文档本身就是XML文档,而DTD却是另一格式的文档。将来,XSD将会取代DTD成为定义XML标记和其用法的标准语言。We
30、b服务平台就是用XSD来作为其数据类型系统的。当使用某种语言(如. NET或C#)来构造一个Web服务时,为了符合Web服务标准,所有你使用的数据类型都必须被转换为XSD类型。(二)简单对象访问协议 (SOAP)SOAP (Simple Object Access Protocol)是一种基于XML的不依赖传输协议的表示层协议,用来在应用程序之间方便地以对象的形式交换数据,XML是 SOAP的数据编码方式。在 SOAP的下层,可以是 HTTP/PTP,也可以是SMTP/POP3,还可以是为一些应用而专门设计的特殊的通信协议,但是目前SOAP主要是构建HTTP协议之上。简单的说,SOAP是一个X
31、ML十RPC over HTTP的开放标准协议,SOAP使用HTTP传送XML消息,尽管HTTP不是最有效率的通信协议,而且在传送XML消息时还需要额外的文件解析,但是XML和HTTP都是开放标准规范 HTTP是一个在Web上被广泛应用又能避免许多关于防火墙问题的协议,从而使SOAP得到了广泛的接受和应用。SOAP是一个跨平台的协议,每一个通过网络的远程调用都可以通过SOAP封装起来。SOAP最早的版本SOAPI. 1版由IBM, Microsoft, Develop Mentor和 Userland一起开发,在2000年5月完成草案。它包括IBM和Lotus的技术,具有供应商中立性、跨平台、
32、编程语言和对象模型中立性等优点。最新草案1.2版木在2002年6月完成,由W3C成立的)CML Protocol Working Group专注开发SOAP规范。SOAP协议的架构SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP是“第一个没有发明任何新技术的技术”,SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现。实际上,它通过提供一个有标准组件的包模型和在模块中进行数据编码的机制,定义了一个简单的表示应用程序语义的机制,这使 SOAP能够用于从消息传递到 RPC的各种系统。SOAP由以下4个部分组成:(1)信封(Envelope):定义了一个整体框架,以表示消息中包含什么内容,谁发送的,谁来处理这些内容以及这些内容是可选的或是必需的。(2)编码规则(Encoding Rules):定义了数据的编码机制,用以交换应用程序定义的数据类型的实例。(3)绑定 (Binding):定义底层通信协议,进行消息交换。(4)RPC表示(RPC Representation):定义了一个用来表示远程过程调用和应答的协定。这几个部分被放在一起作为SOAP
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1