文档库 最新最全的文档下载
当前位置:文档库 › 简单对象访问协议SOAP在分布式系统中的应用研究

简单对象访问协议SOAP在分布式系统中的应用研究

本文由huagfit贡献

pdf1。

东南大学 硕士学位论文 简单对象访问协议SOAP在分布式系统中的应用研究 姓名:李良 申请学位级别:硕士 专业:计算机应用 指导教师:陈钢 20040301

间的合作与交流也更加广泛。

随着信息技术的不断发展,电子商务成为当今计算机和商务领域的一个热门话题,企业 由y-历史原因以及企业间技术选择的差异,企业问的电子信息系统难以真正实现互通。 另外,企业间密切合作的同时,为了安全和商业秘密,也要保证自己的信息系统的相对独立

性。为了解决上述问题,XMLWeb服务及其SOAP协议应运而生。

本文主要对SOAP在分布式系统中的应用进行研究和实现。建立了一个网上购物的电 子商务模型,这个模型由多个分布式系统组成,系统间通过Soap协议进行通信。 这个模型主要由购物网站、商家和物流公司三类分布式Web系统组成。购物网站是面 向客户的服务界面,商品信息的数据维护则由具体商家的Web服务提供,购买信息将由购 物网站的WEB服务器通知具体商家和物流公司的Web服务,商家和物流公司的Web服务 将做进一步处理。通过传递绑定Http协议SOAP消息,各个Web服务间进行交流,对消息 的处理是消息接收者自己的事情,可以采用不同的开发技术利平台,只要支持SOAP消息 处理和提供具体的服务访问接口就可以完成平台间的消息传递和过程调用。 通过研究SOAP在这个分布式系统的应用,说明了SOAP在这些分布式的、异构的系 统间进行RPC的技术优势。同时也有效的解决了目前B2B商务系统中信息交互的问题。

关键字:电子商务,简单对象访问协议,XMLWeb..Net

Abstract

With the development of information technic,the electronic commerce becomes a

hot issue

of the business and computer realm.The cooperation of the business enterprises is much more extensive. Because ofhistory

reason

and the difference ofthe technique choice,the business enterprise

is hard

to

realize mutual communication.Moreoveg with the close cooperation of business ensure

enterprises,it must

the independence of own information system for the sake of safety and

reasons.

business secret.At this

It

time,XML Web service and it’s SOAP appear for above

is main

to

study

and realize the distributed application about SOAP in

this

papeL

Established

electronic commerce model about shopping website.This model is constituted by to

several distributed system,via Soap This model is main

to

communicate.

constitute with three distributed web system(the shopping website,

is

goods provided company,Physical Distribution interface

to face

company).The shopping website

service

t11e customer.The data of the

merchandise information is provided by

the

Web

service of Goods provided company.The purchasing Goods provided company and PD company by

information

will be send to the services of

the shopping website’s web server.The purchasing

information

will be deal with by the services of Goods provided

company and

PD

company.Via

to deliver SOAP

message which binds http protocol,web services

as

exchange

message.It’s own business of every reveiver to handle the message,as long

handle SOAP message and provide the service and interface

different technique and

to

caller,.So every system may adopt

platform.

hetemgenous system.At the same time,it explains

Via studying the SOAP application in this distributed system,it explains the advantage of SOAP

to

handle RPC in these distributed

can

or

that SOAP

solve the message exchanged problen ofB2B.

Keywords:electronic commerce,SOAP,XML Web,.Net

11

东南大学学位论文独创性声明

本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得

的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人己经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。

研究生签名:钽日期:础≯

东南大学学位论文使用授权声明

东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位 论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人

电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论 文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。论文的公布(包 括刊登)授权东南大学研究生院办理。

~虢俨翩躲蚴

第一章绪论

第一章绪论

1.1引言

随着信息技术的不断发展,电子商务成为商务领域新的交易方式,并逐渐改变着人们 的生活方式和企业的经营管理方式,B2C、B2B等名词大家也不再陌生,企业间的电子信息 交互也越来越广泛。新的技术推动了新的应用,反过来,新的应用也推动技术的创新。由于 各种原因,企业间的信息平台千差万别,难以实现互通,这又与新的需求发生矛盾,需要新 的技术来解决这个问题。 现在公司业务越来越依靠软件应用系统,而对于一个非lT的企业要实施一个商务系统 是很困难的,因为它得首先与第三方公司合作设计一个解决方案,然后在第三方的支持下开 发项目应用,最后还必须雇佣一些懂软件、硬件的技术人才维护系统的运行。开发一个企业 商务系统不仅费大量人力、财力、物力,而且项目的开发周期可能很长。面对一个快速变化、 灵活的市场来说,辛苦开发出来的系统,可能因为周期过长,已经不能适应新的市场变化。 难道没有更好的解决办法吗?

新的英雄登场了,那就是以Soap为代表的XML Web家族。XML We

台互通,Soap是其桥梁。企业也可以使用第三方提供的XML Web服务,该服务不仅对市场 信息能快速地作出响应,而且能为企业节省一大笔费用,企业不需要组织人员开发项目,也 不需要购买昂贵的机器设备,更不需要另外骋用一批管理、配置维护软件和相关硬件设各的 技术人员。也就是说,企业租用第三方公司软件系统提供的软件功能,这种软件功能对于第 三方的公司来说,实际上就是它为客户所提供的一种服务。

1.2论文研究背景

随着信息技术的不断发展,电子商务成为当今计算机和商务领域的一个热门话题,企 业间的合作与交流也更加广泛。Intemet环境F,在一个集成商业程序的所有参与者间确保 一个单一、统一的体系架构是十分困难的。由于历史原因以及企业间技术选择的差异,企业 间的电子信息系统难以真正实现互通。另外,企业间密切合作的同时,为了安全和商业秘密, 也要保证自己的信息系统的相对独立性。为了解决上述问题,XMLWeb服务及其SOAP协

议应运而生.。

1.3本文的研究目的及内容

本文主要目的对XML Web服务及其SOAP(简单对象访问协议)在分布式系统中的应

用进行研究和实现。将建立一个网上购物的电子商务模型,这个模型由多个分布式web服

务组成。购物网站是面向客户的服务界面,商品信息的数据维护则由具体商家的Web服务

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

东南大学顾I一学位论文

提供,购买信息将由购物网站的WEB服务器通知具体商家和物流公司的Web服务,商家和 物流公司的Web服务将做进一步处理。通过传递绑定Http协议SOAP消息,各个Web服务

问进行交流,对消息的处理是消息接收者自己的事情,可以采削不同的开发技术和平台,只 要支持SOAP消息处理和提供具体的服务访问接口就可以了。

随着SOAP应用的升温,许多大的厂商相继发布了支持SOAP的软件。微软的.NET框 架的一个重要特性就是全面支持SOAP,SUN也提出ONE(开放式网络环境)架构来支持 SOAP。网上也有许多基于JAVA的SOAP实现的开放源码项目,其中Apache SOAP(其下 一个版本是AXIS)是最著名,也是实现了最多特性的SOAP协议的JA、,A实现。 本课题将采Hj以.NET框架+IIS Web服务器作为系统平台,用c#开发服务代码和客户 端软件,实现购物服务、商家服务、物流公司的服务,实现SOAP在分布式服务中的应用。 对其他应用也进行广泛研究,如采用Apache SOAP(AXIS)作为服务器,JAVA编写SOAP 服务代码,或是利用已有的EJB、COM组件,将这些服务发布到Web服务上。通过SOAP

消息实现异构调用。

1.4论文的组织结构

论文分六个章=i了,具体章节安排如下:

第一章绪论。介绍论文研究的背景、论文研究的目的和内容以及章节安排。

第二章Soap协议介绍。主要对Soap-协议的主要内容进行简单介绍。 第三章SOAP等XML Web技术应用介绍。对XML Web服务、XML、SOAP和WSDL

等进行了介绍,并说明了其主要优点和应用。 第四章基于soap远程调用的分布式网上购物系统架构。本章从系统的总体结构以及 用到的平台和开发技术进行了介绍。 第五章基于soap远程调用的分布式网上购物系统的设计。本章从系统的总体结构设

第六章基于soap远程调用的分布式网上购物系统的实现。本章从实际开发方面对系 统实现进行了简单的介绍。

参考文献 致谢

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

第二章Soap协议介绍

第二章Soap协议介绍

SOAP

v1.2为在一个松散的、分布的环境中使用XML对等地交换结构化的和类型化

的信息提供了一个简单且轻量级的机制。SOAP本身并不定义任何应用语义,如编程模 型或特定语义实现,它只是定义了一种简单的机制,通过一个模块化的包装模型和对模 块中特定格式编码的数据的重编码机制来表示应用语义。SOAP的这项能力使得它可被 很多类型的系统削丁从消息系统到RPC(Remote

SOAP由四部分组成:

Procedure

Call)l拘延伸。

SOAP

envelop(SOAP信封),它构造定义了一个整体的表示框架,可用于表 rules(SOAP编码规则),定义了一个编序机制用于交换应用 RPC表示),定义了一个用于表示远端过程

示在消息(message)6P的是什么,谁应当处理它,以及这是可选的还是强制的。

SOAP encoding

程序定义的数据类型的实例。

> SOAP RPC representation(SOAP

调用和响应的约定。

SOAP

binding(SOAP绑定)定义了一个使用底层传输协议来完成在结点间交

换SOAP信封的约定。

为了简化本规范,这四部分在功能上是正交的。特别的,信封和编码规则是被定义在

不同的命名空间(namespace)中,这样有利于通过模块化获得简明性。本规范还定义了两

种SOAP绑定(binding),用于描述SOAP消,鼠(message)如何通过带或不带HTTP扩展

框架(HTTP

Extension

Framework)的HT下P消息(message)进行传输。

2.1设计目标

SOAP的主要设计目标是简明性和可扩展性。这就意味着有一些传统消息系统或分布 式对象系统中的特性将不包含在SOAP的核心规范中。这些特性包括:

分布式垃圾收集(distributed

garbage

collection);

≯ ≯

批量消息传输/处理(boxcarring

batching of

messages);

对象引用(objecIs—by-reference,需要分布式垃圾收集的支持):

对象激活(activation,需要对象引用的支持)。

2.2

SOAP术语

2.2.1协议概念

SOAP

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

查堕查堂塑主兰竺笙奎

关于SOAP消息的格式和处理规则、为沿着SOAP消息路径交换信息而需要的不同 应用程序之间生成和接收SOAP消息的交互过程的简单控制机制等的一整套规范和约

定。

SOAP绑定 为传输的需要而将SOAP消息在另一个底层协议之上或之内传输的一整套规范和规 则。典型的SOAP绑定包括在HTTP消息中传送SOAP消息或在TCP之上传送SOAP 消息等。 SOAP结点 SOAP结点根据SOAP定义的整套规范来处理SOAP消息。SOAP结点有责任遵守 SOAP消息交换的规则以及提供通过依赖底层协议的SOAP绑定来访问的服务。任何不 符合SOAP约定的情况都将导致SOAP结点产生一个SOAP错误。

2。2.2数据封装概念

SOAP消息 SOAP消.息(message)是在对等SOAP结点(SOAP nodes)]'司通讯的基本单位。 SOAP信封 SOAP信封(envelope)是SOAP规范中定义的SOAP消息(SOAP message)在句法 上的撮外层结构。在句法上,它包含了所有其他的元素。 SOAP条目 SOAP条目是一个句法上的结构,它用于包含一个逻辑上的单一元素,这一元素是需 要被SOAP结点处理的。一个SOAP条目是由该条目最外层元素的完整修饰名所标识的, 这个完整修饰名是由一个局部名和一个命名空间URI组成的。封装在SOAP header中的 SOAP条目成为Header条目,而封装在SOAP body中的SOAP条目为Body条目。

SOAP header

能够被SOAP消息路径中任意的SOAP接受者处理的一组SOAP条目(0个或多个)。

SOAP body

能够被SOAP消息路径中的最终SOAP接受者处理的一组s0AP条目(0个或多个)。

SOAP fauit

SOAP结点产生的用于包含错误信息的特殊的SOAP条El。 以下的图表演示了一个SOAP消息是如何组成的:

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

第二章Soap协议介绍

SOAP发送者 SOAP发送者是发出SOAP消息的SOAP结点。 SOAP接收者 SOAP接收者是接受SOAP消息的SOAP结点。

SOAP消息路径 为传送一个简单的SOAP消息而要经过的一组SOAP发送者和SOAP接受者。其 中包含了初始SOAP发送者、零个或多个SOAP中介以及最终SOAP接受者。 初始SOAP发送者 SOAP消息的最初产生者,同时也是SOAP消息路径的第一个结点。 SOAP中介 SOAP中介即是SOAP接收者也是SOAP发送者,是SOAP消息可到达的某一个 应用程序。当SOAP消息沿着SOAP消息路径传输时,SOAP中介将处理一组确定的 SOAP条目,然后它将消息转发给消息路径的下一个SOAP结点,直至传送到最终SOAP 接收者。 最终SOAP接收者 由初始SOAP发送者指定的通过SOAP消息路径传送SOAP消息的最终SOAP接 收者。如果在SOAP消息路径中有SOAP结点产生了SOAP错误,那么SOAP消息将 不会到达最终接收者。

2.2.4数据编码概念

SOAP数据模型 一组抽象的构造约定,用于描述通用的数据类型和数据中的链接关系。 SOAP数据编码 在SOAP消息中使用一个或多个SOAP条目,按照SOAP数据模型完成句法上的 数据表示。

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

查查查堂堡主兰垡笙塞 2.3与XML的关系

一一——

所有的SOAP消息都是使用XML格式来编码的,SOAP应用程序在生成由SOAP 定义的所有元素和属性的时候,应该包含恰当的SOAP命名空间。SOAP应熠程序必须

能处理其收到的消息中的SOAP命名空间。它必须丢弃那些包含不正确命名空间的消息,

并且可以处理那些不包含SOAP命名空间的SOAP消息,就好象他们包含了正确的命名

空间一样。 SOAP定义了以F的命名空间: SOAP信封的命名空问标识为 ”http:llwww w3.or9120011061 soap—envelope”

SOAP编码的命名空间标识为”http://wwww3.org/200I/06/soap—encoding”

SOAP mustUnderstand fault的命名空间标识为 ”http://www w3.orgl200l1061soap-faults” SOAP

upgrade的命名空间标识为”http://wwww3.org/200I/06/soap-upgrade”

而这些命名空间的模式文档可以通过解析这些命名空间标识符来获得。SOAP消息 必须不包含DTD,同时SOAP消息也必须不包含PI(Processing Instructions)。SOAP 使用局部的非限制的ID类型的id属性来指定编码元素(encoded elemenO的唯一标识, 使用局部的非限制的uri-reference类型的href属性来指定编码元素的值的应用,以获得

与XML规范、XML Schema规范和XML

Linking

Language规范的一致。

除SOAP mustUnderstand属性和SOAP actor属性外,一般允许属性及属性值自由 地选择是在XML实例中描述还是在XML Sche

ema)中使用默认值或固定值定义在语义上等价于在 实例中的定义。

2.4

SOAP编码

SOAP编码风格是基于一个简单类型系统,而这个系统是程序语言、数据库和半结

构数据中类型系统的公共特性的泛化。一个类型要么是一个简单(可量化的)类型或是一个 复合类型,这个复合类型由多个部分组成,每个部分是一个类型。它在两个级别上操作。 首先,给出一个符号上一致化的由该类型系统描述的模式,构造一个XML语法层的模式。 其次,提供一个类型系统的模式以及一个与该模式相一致的值的表示方法,构造一个XML 实例层的模式。反之,先提供一个符合这些规则XML实例,然后再给出原始的模式、一 个原始值表示,也是可以构造的。在本节中描述的数据模型和编码风格的使用方式是被 鼓励的而不是必备的,其他的数据模型和编码也是可以与SOAP联合使用的。 使用XML进行类型编码的规则: XML允许:|}常柔性地编码数据。SOAP只定义了1F常有限的编码规则。本节在一个 高层次上定义编码规则,本节中描述的编码可以与后面描述的RPC调用和响应的映射联

合使用。

为了描述编码,以下术语将被使用:

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

第二章Soap协议介绍

“value”值是一个字符串(string)、一个可量度对象(数字、日期、玫举)的名字、 或是数个简单值的组合。所有的值都有明确的类型。 “simplevalue”简单值是一个1;可分的值,它不包含任意可以命名的部分。简 单值的离子可以是特定的字符串、证书或玫举值等。

“compound

value”复合值是一个值的关系的聚集。复合值的例子可以是特定

的采购定单、存货报表、街道地址等。

在一个复合值中,每一个相关的值都可以用一个角色名来区分,也可以用一个序 数来区分,当然也可以同时使用两者。这被称为“accesser”存取标识。复合值 的离子包括特定的采购定单、存货报表等。数组也是复合值。它可以被看成是具 有多个相同名字的存取标识(access00的复合值。

“array”数组是一个复合值,在其成员值之间仅有顺序位置不同。

“struct”结构是一个复合值,在其成员值之间的区分是依靠存取标识(accessor)。 同时所有存取标识的名应不同。 type”简单类型是简单值的类。简单类型的例子包括那些类“string”. type”复台类型是复合值的类。复合类型的例子包括采购定单的抽

“simple

“integer”,玫举类等。

》 “compound

象类型,这些由该类型派生的采购定单具各相同的存取标识(shipTo.totalCost 等),当然他们有不同的值(也许对某些值还有约束)。

在一个复合类型中,一个存取标识在本符合类型中是唯一的,如果它和其他复合 类型中的某个存取标识无法相区别,则该存取标识名加上复合类型的名字才能成 为唯一标识,这个名称为”局部名”。无论该名是直接或间接基于一个URI,如果 该存取标识不用加类型名约束就已经是唯一的,那该名就成为“全局名”。

值表的编序的模式中所给出的信息,是有可能决定一些值只能关联一个存取标识 的简单实例。对于其他可能的情况,则无法下这个断言。一个值被称为” single—reference”单引用,如果只有一个存取标识能够引用它。如果能被多个引 用,无论是事实上还是潜在可能,那就是”multi-reference”多引用。注意有可 能在一模式中有一个确定的值是单引用而其他则是多引用。

在句法上,一个元素可以是”独立的“或”嵌入的”。一个独立的元素是作为编序中 一个顶级元素出现。而其他则是嵌入元素。

尽管使用xsi:type属性可以令值的表示为自描述的,也就是说即包含值的结构也包 含值的类型,但编序规则允许值的类型可以仅仅引用模式(Schema)中的类型定义。注意 尽管这样,但许多模式定义只支持结构(struct)和数组(array)类型,而编序规则则有可能 要尝试使用结构(siruci)和数组(array)类型之外的复合类型。

2.5在HTTP中使用SOAP

本节描述了如何在使用或不使用HTTP

Extension

Framework的前提F将SOAP与

HTTP的协同上作机制。将SOAP绑定在HT丁P上可以利I目j HTTP丰富的特性集,提供 使用SOAP形式方法和分布适应性的优点。将SOAP在HTTP上传输并不意味着SOAP

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

东南大学硕十学位论立:

可以完全超越HTTP的语义,更恰当的描述应当是SOAP的语义通过HTTP的映射而很

自然地成为HTTP的语义。

SOAP很自然地利用HTTP的请求川向应消息模型,将SOAP请求的参数放在HTTP 请求里,而将SOAP响应的参数放在HTTP响应里面。注意,无论如何,SOAP的中间

介与HTTP中间介是不同的。也就是说,根据H丌P Connection头字段来寻址的HTTP

中间介一般并不能来处理HTTP请求中的SOAP实体。 当需耍将SOAP消息体包含在H丁TP消息中时,HTTP应用秽序必须依照RFC2376 使用媒体类型“texfJxml”。

2.5.1 SOAP

HTTP请求

SOAP可以和多种HTTP请求方法联合使用,如SOAP在HTTP Post请求中传输

等。

I-ITTP

Header中的SOAPAetion字段 HIQ-P请求头字段(header field)可以用于指示SOAP HTTP请求的目

SOAPAction

的。它的值是一个标识该目的的URI。SOAP对下格式上并没有严格的限制

的描述蛆及是否要是可解析的都没有严格的限制。当发出SOAP HTTP请求时,H‘厂rP 客户必须使用该头字段。

SOAPAction头字段的存在及其内容可以被服务器例如防火墙用于在HTTP中过滤 SOAP请求消息。当该字段的值为空字符串(“”)时,则意味着SOAP消息的目的由

HTTP

Request-URI来提供。而如果没有值则表示对消息的目的没有指示。 2.5.2 SOAP

H1lrP响应

在HTTP之上的SOAP遵从用于在H丌P中表示通讯状态的HTTP状态代码的语义。

例如,2xx状态代码表明这是客户端包含SOAP构件的请求被成功的接收、理解和接受

等等。 当处理请求的时候发生SOAP错误的时候,SOAP HTTP服务器必须发出一个HTTP

500“Internal Sen,er Effor”响应同时在包含于该响应的SOAP消息中应包含一个SOAP

Fault元素来指明SOAP处理的错误。

2.5.3

HTTP扩展框架

Extension

SOAP消息可以与HTTP 的出现和意图。 是使用Extension

Framework一起使用来标识SOAP HTTP请求

Framework还是使用简单H丌P对于通讯各方而言是一个策略及

Framwork。服务器端可以通过使用510“Not Extended”H丌P

Extension

能力的问题。客户端可以通过一个强制扩展声明以及一个“M一”H丁TP方法名前缀来强

制使用HTTP

Extension

状态代码来强制使用HTTP

Framework。也就是说,通过一次额外的环游,每

个通讯方都可以检测到其他通讯方和因此的动作。

用于使用Extension Framework标识SOAP的扩展标识是:

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

兰三至!!翌垫丝!!塑——

htIp://www w3 Orgf200I/06/soap’envelope

2.6在RPO中使用SOAP

SOAP的一个设计目标就是要利用XML的可扩展性和可伸缩性来包装和交换RPC

调用。

其实我们也可以预想到在RPC环境F的表示很可能是与在其他表示中定义的编码

风格结合。SOAP encodingStyle属性可以被用于指明在本节

的编码风格。 在RPC中使用SOAP与SOAP协议绑定基本是正交的。在使用HTTP作为SOAP

协议绑定媒介的情况下,一个RPC调用可以很自然地映射到一个HTTP请求,而RPC

响应则可以映射到H丌P响应。无论如何,使用SOAP方式的RPC并不限于HTTP协

议绑定。

为实施一个方法调用,需要以F信息:

> >

目标SOAP结点的URI 方法名

可选的方法或过程的特征 方法或过程的参数

>可选的头数据

SOAP依赖协议绑定来提供传送URI的机制。例如,对HTTP而言,请求URI指明 了与该调用相对应的资源。除要求该URI是合法的以外,SOAP对于该地址没有任何限

制。 2.6.1 RPC和SOAP Body

RPC调用和响应都是在SOAP Body元素中传送,使用如下表示方式

> >

一个方法调用被建模成一个结构struct。

该方法调用显示为一个简单结构struct,包含每个pn】或[in/out]参数的存取标识。 该结构的名和类型可使用过程或方法的名来标识。 每个阶】或[in/out]参数都被表示为一个存取标识,该存取标识的名和类型都对应 丁相应参数的名和类型。他们的次序也是按照原来RPC中的次序。 一个方法响应被建模成一个结构struct。 该方法响应显示为一个简单结构struct,包含每个[out]或[in/out]参数的存取标识。 而第一个存取标识是返周僮,而随后则是按照原来次序的返回参数。 每个[out]或[in/out]参数都被表示为一个存取标识,该存取标识的名和类型都对应 于相应参数的名和类型。返回值的存取标识名并没有多少语义。同样的,结构的 名也并没有多少语义。当然,无论如何,在添加了“Response”字串的方法名 后,要有一个约定来命名它。

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

东南大学硕士学位论文

方法调用山错应使用SOAP Fault元素来编码。如果一个绑定协议对于错误表达

还有额外规则,那么这些规则都应当被遵守。 应用程序可以处理漏写参数的请求不过也可以返回一个错误。因为在响应中若包含

“result”则表明成功,若包含“fault”越0表明失败,所以如果方法响应中同时包含了“result” 和“fault”则是错误的。

2.6.2 RPC和SOAP Header

对于那些并非是方法的正式调用数据部分,而是方法请求编码相关的一些额外信息, 也可以在RPC编码中表示。如果这样,它必须作为SOAP Header元素的一个子元素来 描述。

并不是调用 参数表中的一员.它一般是要被下层构件所处理而不仅仅是一个应用程序ID,而这里并 没有一个直接的方法在调用中传送这一需要的信息。通过在头上加一个条目并赋予它一 个固定的名字,接收方的事务管理器就可以将该事务lD抽取出来,同时就可以在不影响 远程过程调用的代码的前提下使用它。

2.7安全机制的考虑

在目前的Soap规范版本中并不包含完整性和私密性保护的方法的描述。这些问题

将在以后版本中详细说明。

2.8本章小结

本章主要对Soap协议内容进行了简要的介绍,内容包括Soap协议的设计目标、基 本术语、与Xml的关系、编码规则、以及Soap在HTTP和RPC中的使用规则等。

10

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

第三章SOAP等XML Web技术应用介绍

箢三章SOAP等XML Web技术应用介绍

信息技术的发展,使人们越来越依赖于网络。从网上政府到网上购物、信息咨询等等无 不与网络相关。由丁历史的、现实的诸多原因,目前存在的信息系统大多数为多平台、多系 统的复杂系统。这就要求现在的解决方案要具有』“泛的兼容能力,能支持不同的操作系统平 台、数据格式和多种连接方式,要求在Web环境下,实现的系统具有松耦合性、跨平台, 与语言无关与特定接口无关等多种特性,同时还要提供对Web应用程序的可靠访问。SOAP 技术极大地方便了不同系统平台、异构程序之间的交流,使得Web上分散的资源不再孤立, 打破了应用软件、网站和各种系统平台之间的格格不入的状态,实现基于Web的无缝集成。

3.1基本概念

3.1.1

XMLWeb服务

XML Web服务的正式定义是:XML Web服务是一种编程模式,它提供在可缩放的、

松耦合的和非特定平台的环境下交换信息的能力,信息交换使用诸如HTTP、XML、SOAP 和WSDL之类的标准协议。在XMLWeb服务及其客户端之间交换的基于SOAP的XML信 息,可以是结构化、类型化或松散定义的信息。使用文本格式(如XML)的灵活性使信息 交换能够以松耦台的方式随着时间而发展。由于Web服务基于标准协议且不特定于平台, 因此可以与多种多样的实现、平台和设备进行通信。

3.1.2 XML

目前HTML得到了广泛的应用,它适合展示数据,指定数据的表现形式、布局等,但 从HTML中提取数据相当麻烦,因为数据跟格式标志混在一起,而且即使从HTML提取了

数据,仍缺少一套解释数据的规则。

为了克服HTML的上述不足.XML诞生了。HTML和XML都是由W3C组织创建的 标准,W3C的成员认识到随着Web的发展,必须有一种方法能够把数据和它的显示分离开 来,这样就导致了XML的诞生。但是为什么不直接使用SGML呢?原因是SGML相当复 杂(它的标准超过了500页),而XML的标准就非常简单,只有二十儿页。

跟HTML相同的是,XML也是由若干标志构成的。但XML专注于描述数据本身而不 是其外在的表示形式,例如,跟用高级语言定义新的类型然后声明该类型的变量类似,XML

用一些元标志定义了数据类型,然后可以用自定义的标志声明数据类型的实例,

在XMLWeb服务中,XML有如下作用:

(1)

简单对象访问协议SOAP用XML描述每个SOAP消息

也就是说,用户和XML Web服务之间交互都采用XML这种开发的文本语言。具体而 言,客户端的代理将把用户的调用请求按照SOAP包装成XML格式的消息,然后通过某种

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

东南大学硕士学位论文

协议例如HTTP通过Internet传到xML Web服务所在的服务器。服务器解读XML形式的请 求,并把它翻译为XML Web服务所理解的调用形式。接下来,XML Web服务的调用结果

被翻泽为XML消息并透过网络传递到客户端,客户端再把响应的XML同应翻译为用户应

用所能理解的形式。 (2)WSDL用XML描述服务

WSDL是XML Web服务的描述,相当于COM对象的接13定义。WSDL用XML描述

XML Web服务提供的服务端口(相当于一个Web方法)、每个端口接收的消息和返回的消

息等。

在XMLWeb服务中,XML扮演了幕后英雄的角色。XMLWeb服务的开发者和使用者 一般都不用跟XML直接打交道。但是,XMLWeb服务中,所有的数据都表示为XML。

3.1.3简单对象访问协议SOAP

SOAP协议以XML文件的形式提供了一个简单、轻量的用于在分散或分布环境中交换 结构化和类型信息的机制,能够被用于从消息传递到RPC的各种系统。协议传送的是纯文

本。

该出议不包含应用程序或传输语义,这使它高度模块化并具有强可扩展性。之所以被 称为“简单”协议,是因为它和用以此目的的其他协议如DCOM、IIOP、ORB、CORBA等 相比,是简单的。SOAP协议定义了如何格式化请求和响应,从而使两个支持SOAP的应用 程序互通。所有的XMLWeb调用请求和同应都被格式化为SOAP消息。通常采用HTTP协 议传输SOAP消息,但这不是唯一的选择。事实上,SOAP消息只不过是格式化的XML文 本,可以由任意传输协议承载,例如FTP、SMTP等。 从某种意义上,SOAP可以理解为:HTTP+XML+RPC,采用HTTP作为底层通信协议, RPC(RemoteProcedureCarl,远程过程调用)作为一致性的调用途径,XML作为数据传输 的格式,允许服务提供者和服务器客户经过防火墙在Interact进行通信交互。SOAP被设计 的一个主要目的,就是为了实现基于XML的RPC。我们可以将SOAP的报文作为Http报 文的内容送到目的主机,由其负责解析并执行其中的内容。这样,对分布式服务对象的调用 就可以转换为http流通过防火墙。通过XML Web服务及基于其上的S

全能实现系统间的对象调用和通讯。

3.1.4 XML

O A

P,使得我们完

Web服务描述语言WSDL

WSDL是基于XML的协定语言,用于描述服务器提供的网络服务。尽管有了SOAP, 你有能力发出各种SOAP消息米请求XML Web服务,但你怎么知道SOAP消息具有什么内

WSDL。它规定 了用户调用XML Web服务所应了解的一切,包括位置、参数信息和支持的协议。客户端的

XMLWeb服务代理能依据WSDL准确地产生格式适合的消息,并能无误地理解响应。读者 可以把WSDL简单地理解为XML Web服务的接口描述语言(IDL.Interface

Language),它是用户调用XML w曲服务所需要了解的全部。

Description

一般不用专门撰写WSDL文件。相反,开发工具提供了依据XML Web服务自动产生

对应的WSDL的方法。

12

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

第三章SOAP等XML Web技术应用介绍

3.1.5通用说明、发现、和集成(UDDI)

UDDI是提供程序公布Web服务的存在以使Web服务使用者找到感兴趣的Web服务的 一种机制。 在开发出了XMLWeb服务后,自然希望更多的用户能使用它。用户使用你的XMLWeb 服务的方法是获得服务的WSDL。你可以用E-mail把WSDL发送到你的用户,或者通知他 们在哪个地方可以获得WSDL。除了E.mail这种方式,你甚至可以用电话。方式并不重要, 重要的是让用户获得WSDL(或执行命令可以自动产生你的XML Web服务的WSDL)。接 下来,用户就依据获得的WSDL产生合适的代理访问你的Web服务。这个过程就是UDDI。

总之,对XML Web服务开发商而言,UDDI提供了一种发行XML Web服务的可选方

式,这种方式有可能吸引无限的潜在用户。对用户而言,UDDI提供了XMLWeb服务的索 引服务,利用它,可以找到感兴趣的XMLWeb服务。

3.1.6 DISCO

DISCO是DiscoveryofWebServices的缩写。跟UDDI规范类似,它也是为了帮助用户 发现XML Web服务而提出的协议。它用XML格式定义了对多个XML Web服务的WSDL

的引用。

3.2

SOAP等XML Web技术优势与应用

SOAP等XMLWeb技术和传统技术相比有很多优势,可以在以I'-)L个方面得以体现

3.2.1异构平台互通

SOAP等XMLWeb技术的最大优势是提供了异构平台无缝衔接的技术手段。长久以来, 人们一直在搜索异构平台互通的解决方案。当然,如果所有的用户都使用同样的硬件平台、 同样的操作系统、同样的软件,采用相同的协议信息,这样或与就根本不会产生互通的问题。 但显然,这样的假设在现实中并不成立,互通的需求总是存在的。 第一代网络的诞生,使整个网络连接了各种各样的计算机,上面运行着各种系统软件,

但它们都采用相同的通讯协议TCP/IP相互通话,FTP、MAIL等服务随之诞生。但这种互通

的层次是传输层实现的,应用软件之间的直接对话还不可能。 随着HTTP协议的出现,Web诞生了。互联网络迎来了它的第二个发展高峰。Web提 供了丰富的信息展示能力,通过将应用转变为Web应用,只要有浏览器,客户端就可以通 过HTTP协议在网络中访问应用程序。但应用程序的Hj户并不总是满足仅通过浏览器访问。 有时候,他们希望有~种更直接的方式把应用嵌入到自己的应用。例如,用

的应用程序中集成该

功能,这时HTML就无能为力了。 现在XML Web服务正好满足了这种需求。公司A把即时股票信息查询转变为XML

Web服务S,然后将该服务信息公布在某个公共的站点B,用户c通过访问B了解到服务S 的信息,其中包括S的服务描述。然后C将根据S的服务描述生成本地代理,借助于该代

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

东南大学硕士学位论文

理获取S提供的即时股票信息。

有了XML Web服务,整个Web服务就不止是提供信息,它还将具有处理信息的无限

滞力。任何两个应用程序,只要能够读取XML,那么就能互相通信。

3.2.2更广泛的软件复用

通过组合已有模块搭建应州程序,就是软件设计中的复用技术。通过使用成熟稳健的 模块,能大幅度提高软件的生产效率和质量。 在软件开发史中。最先出现的就是源代码级的复用:把经常使崩的代码包装为过程而被 其他代码调用。这样的复用仅限于同一种开发语言,例如Java编写的排序函数不能在C中

直接使用。

为了克服这个问题,人们想到把某些公共功能编写为二进制的动态链接库DLL。这样 的DLL可由一种语言编写而可能由男一种编程语言调用。但不同语言编写的DLL仍可能存 在差异,例如参数传递顺序、数据类型的内存布局等。另外,这种复用仅限于特定的平台范 围内,因为DLL是二进制的机器代码。此外,为了使用DLL中的函数,用户必须了解很多 细节信息,如方法名及其参数、参数传递规则等。 随着Intemet、网络技术和软件技术的不断发展,基于组件的软件开发被越来越多的软 件开发人员所接受。采用已有的组件来构建新的应用程序,可以切实地提高代码重用比例和 生产效率。在网络日益成为新一代软件核心的今大,人”J对于分布式组件的服务有着越来越 高的需求。目前,分布式组件的规范主要有CORBA、EJB和DCOM/COM+。 但是,所有这些规范都需要在服务器端和客户端有明确的、同类型基本构架的具体的对 象模型协议,比如CORBA的IIOP协议和EJB底层所依靠的RMI协议。这就要求客户端必 须通过特定的框架(Skeleton)}U桩(Stub)模块才能访问服务器端的分布式组件。也就是说,客 户端的实现技术完全依赖丁服务端的技术。这种限制使得开发不同类型的分布式组件需要完 全不同的方法,而且各种不同类型的组件很难进行互操作。另外,DCOM/COM组件等是二 进制标准,仍依赖特定的平台。也就是说,Windows系统下的COM组件,在Linux或UNIX

下将不可用。

在Internet环境中,在一个集成商业程序的所有参与者间确保一个单一、统一的体系架 构是十分困难的。组件技术的目标本来是为了能够更好地实现代码重用,但是缺少组件之间 的互操作,用户就不得不为各种不同的分布式组件系统写相同功能的代码。对于企业应用来 说,基于不同规范的异种分布式组件的互操作性就成为一个非常重要的特性。 下一个登场的就是XML Web服务。可以采用任何语言在任何平台下把一组功能包装成

XML Web服务,然后将其注册到UDDI中心(一个特殊的用以索引Web服务的站点)。用

户只要获得了描述XMLWeb服务的WSDL文件,就可以用代理工具自动产生合适的客户端

代理,然后就可以通过代理访问XML Web服务提供的功能。这里用户不必了解XML Web 服务如何实现以及其应用平台等。用户只需要根据WSDL描述的XMLWeb服务能否满足需 要,因此XMLWeb服务将软件复用技术推向了一

3.2.3普遍的通讯能力

XML Web服务可以基于XML的SOAP来表示数据利调崩请求,并且通过HTFP协议

14

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

第三章SOAP等XML Web技术应用介绍

传输这些XML格式数据。这一点非常重要, 因为它意味着XML Web服务的调用请求和回 应消息可以透过防火墒。山于安全性的考虑 以外的其他端El。 一般系统都关闭了除HTTP协议标准端口80

而在XMLWeb服务出现以前的各种分布式组件技术,都是基于二进制标准的,并且通 过特殊的端口进行通信,在Internet环境下实现异种分布式组件互操作有一个很重要的问题

需要解决,那就是所谓的防火墙问题。大多数的防火墙都是基于端口扫描的,而CORBA或 EJB都使用了非常多的端121,如果不经过特殊配置,基于CORBA及EJB等的分布式组件调

用将被作为恶意访问而拒绝。因此,我们考虑将SOAP与标准的Hllp协议集成在一起使用。

3.2.4更迅捷的软件发行方式

在XML Web服务出现以前,软件主要通过机器预装、光盘等物理媒介发行。这种发行 方式的缺点是:成本高,需要大笔的营销开支,从而也增加了用户的使用费用:软件更新周 期长:不便于定制,一般只能针对某些需求制作有限个版本,软件购买者要为他永远不会使

用的功能模块支付费用,这显然是不公平的。

XML Web服务将彻底改变软件的发行方式。软件供应商将把软件分解成若干Web服务

模块构成的系统,直接在Web上发布软件。通过支付少量的费用,用户在网上下载安装基 本的客户端模块,这些模块利用远程的XMLWeb服务满足用户的特殊需求。随着软件开发

商不断更新XML Web服务版本,用户也能及时享受新版本的服务。

3.2.5方便商务到商务的集成(B2B)

随着电子商务的发展,各个商务公司需要有效的方式来推动它们的商务活动,这就产生 了商务到商务集成的趋势。公司需要与它的台作伙伴建立更为紧密地联系,咀促进向现有用 户销售彼此的产品。但这个过程受到如下因素的干扰:各个企业有自己的一套专用的数据格 式和自己的业务软件,紧密集成这些软件需要大量的中间转换。 但有了XMLWeb服务,这种情况将得以改观。各个企业把业务软件的核心模块以XML Web的形势向其合作伙伴发布,这样以较低的代价实现了商务到商务的集成。

3.2.6

SOAP等XML Web技术应用展望

为了更好地了解XML Web服务,首先让我们来了解一下XML Web服务将要扮演的角 色,下面是XML Web服务可能的用武之地。 1.商务组件

XML Web服务的最基本用途是包装商务逻辑,以保证能为更多的电子商务活动所崩。

例如,保证所实现的最基本的方案向它的客户端提供某个基本功能。托运商可以把计算各种 送货的费用包装为XMLWeb服务,并向其用户发布。用户的应用程序把包装的重量与尺寸、 装货地点与运送目的地,以及其他参数(如服务的种类)保证为基于XML的简单消息并使

用标准传输协议(如HTTP)通过Intemet将它传递给托运商的XML Web服务。然后,托

响应消息将费

用数额返回给调用的应用程序。

淘宝网购物商城

淘宝网购物

http://www.521taobao.com/

东南大学硕士学位论文

2.应用集成

由丁=_大多数公司几乎都广泛采用了自定义软件.因而导致产生了大量实用但孤立的数据 禾l业务逻辑块。由于开发每个应用程序所处的环境是多种多样的,而技术在永不停息地发展, 因此,利用这些应用程序来创建一个可以工作的集合曾经是个令人生艮的任务。 使用XML Web服务,可以将每个现有应用程序的功能和数据以XML Web服务的形式 公开。然后,便可以创建使用此XMLWeb服务集合的复合应用程序以实现各个构成应用程

序之间的互操作性。 3.软件开发

未来软什将是若干XMLWeb服务有机组合而成的复合应用。未米会诞生专门提供XML Web服务的软件商,它们直接在Web上出售具有专业水准的XML Web服务,例如翻译、 实时天气预报、搜索引擎等服务。

3.3本章小结

本章主要对SOAP等XML Web技术进行简单的介绍,如XML、SOAP、WSDL、UDDI、 DISCO等,还对XML Web技术的优势进行分析,说明目前和将来可能的应用。

16

笙婴空茎王!!翌垄堡塑旦盟坌鱼苎塑土婴墨竺堡塑——

第四章基于soap远程调用的分布式网上购物系统架构

随着Intemet、网络技术和软件技术的不断发展,电子商务成为当今计算机和商务领域 的一个热门话题,企业间的合作与交流也更加广泛。Internet环境中,在一个集成商业程序 的所有参与者间确保一个单一、统一的体系架构是十分困难的。由于历史原因以及企业问技 术选择的差异,企业间的电子信息系统难以真正实现互通。

4.1设计目标

在前面的章节里我们已经介绍SOAP等XML Web技术的特点,并和传统的组件技术 进行了比较,我们可以发现XMLWeb Service相关技术正适合这种松耦合的企业间电子信息 交流,为了便于研究XMLWeb Service相关技术,在这里我将建立一个网上购物系统的模型, 在这个模型里,涉及到多台相对独立的企业服务器,它们之间主要通过soap协议完成需要 的信息交互,研究soap协议在分布式系统中的应用也正是本文的目的。模型的目标就是通 过SOAP等XMLWeb技术将分散的、松耦合的企业联系起来,实现数据交互和服务调用。 4.2系统架构

将要建立的这个网上购物的电子商务模型,由多个分布式Web服务组成。它的核心是 一个网上购物的服务平台,由运营这个网站的商家管理和维护,购物网站的前台是面向客户 的服务界面,后台有专门的维护管理系统,和这个网站相关的还有具体提供商品的商家和提 供物流服务的公司。这样假定三者关系:网站是个卖场,从商家出货,物流公司送货。商品 信息的数据维护由具体商家提供,通过调用网站的Web服务,更新网站的商品数据库,购 买的订单信息将由购物网站的WEB服务器通知具体商家和物流公司的Web服务,商家和物 流公司的Web服务将做进一步处理。通过传递绑定H卸协议SOAP消息,各个Web服务间 进行交流,对消息的处理是消息接收者自己的事情,可以采用不同的开发技术和平台,只要 支持SOAP消息处理和提供具体的服务访问接口就可以了。拓扑图如下:

17

东南人学硕士学位论文

它由运营这个网站的商家管理和维护,购物网站的前台是面向客户的服务界面,后台

有专门的维护管理系统,可以和相关的齑家和物流公司通过soap远程调用交互信息。

前台对客户提供的服务,包括用户的注册、登陆、商品信息的查询、在线定购和支付

等功能。它所面对的用户不仅仅包括个人,也可能是企业单位,因此商品的出售包括批发和

零售,具体商品提供的商家,折扣的方法也大多不同,有的是根据定购的数量提供相应的批 发价格,有的根据用户级别(如金牌用户、银牌用户)给予相应的折扣,商家有时还会搞一 些优惠活动。另外还要查看商家的库存是否满足客户要求等,这些都要和具体商家打交道。 不同的购物数量,物流的配送方式和收费标准也会有区别,如定购一箱芦柑,和定购100 箱芦柑的送货方式可能不同,送货价格可能也不是简单的倍乘关系。不同的物流公司收费标 准可能也不尽相同(在本应用里暂且考虑一个物流公司)。

在后台要提供对用户的管理,资金的支付管理,和商品提供者间的通信,以及对销售 商品的信息进行发布,对用户的定购信息与具体商家进行交互,返同物品折扣信息,包装规

格以及库存是否满足等信息。还要与物流公司在线交互相应规格产品、收交货地点等的运送 价格,并将相应信息返回给用户,用户确认购物后,后台锁定相应库存,根据用户提供的卡 号扣除相应款项。并将信息发送给相应的商家和物流公司,由他们完成发货工作,当用户收 到货物后,由物流公司提交收货单给商家和购物网站服务,购物网站将相应的款项划给商家

和物流公司。

4.2.2商家服务

每个商家都有自己的一套企业管理系统,与购物网站无直接关系的,这里不予考虑, 商家要提供网上销售商品的信息,如商品编号,零售价格(原价、优惠价等),批发价格(可 能有多种批发价格),商品介绍信息,包装规格,库存信息,是否提供送货等,如有各种用 户级别(金卡、银}等)的价格,也要有相应数据说明。这些数据有些需要发布到购物网站 上,有些只需要后台访问,需要网上发布的必备数据发送到购物网站的接收服务,并保存到 购物网站的数据库中,由购物网站发布,如有变更,由本地服务通知购物网站的服务,更新 数据。当有用户需要定购商品,由购物网站的服务传回相麻的信息,检查库存等,将处理的 信息,返回购物网站服务。当客户确认购买后,锁定相应库存,如果锁定前这短暂期间内有 其他用户购买,并使库存量不够,返同处理失败消息给购物网站服务,取消交易。当客户通 过银行卡付款之后(如果资金不够取消交易,库存解锁),标记相应库存为待出状态,等待 物流公司提货,或自己送货,当出货后,标记为已出。当物流服务返回已正常交货后,标记 为已售。否则,退回后重新解锁。本地管理客户端可以进行数据的录入,修改,删除,统计, 报表打印等,或者提供这些数据给本系统内的ERP、CRM等系统。

4.2.3物流服务

负责物流服务的公司或部门,发布专门的物流服务,后台数据库提供各种规格(与商 家有约定)的商品的送货价格,还要提供不同地点的价格系数,当购物网站或商家需要物流 服务时,调用提供的物流服务,查询相应规格、送货地点的价格,当认可后可以调用物流公

18

笺婴童兰±!!竺至堡塑旦塑坌塑茎型占塑望至竺堡塑

一——

司发布的服务,F送货订单,并支付相应的费用。物流公司接到订单后,返回接收信息,并 将订甲标志为处理中,并派工作人员去提货,送货。如果送货成功,将订单标志为送货成功, 并返回信息给购物网站或商家。如果送货失败,将订单标志为送货失败,并返回消息给购物

4.3所采用的关键技术和平台

前面我们己经提到了,在这个模型里,采用XML Web Service相关技术,服务之间主

要通过Soap协议完成需要的信息交互。说到XM和Soap协议,可以说它们是得到业界广 泛支持的标准协议,从Microsoft到IBM,以及Java的鼻祖SUN,还有数不清的公司组织 都在开茇支持通用的XML,Soap协议的服务产品,如新版的Delphi,Jbuilder等中都提供了 对XML,Soap协议开发的支持,许多Web服务也都支持相关的Web Service发布,这给我 的选择提供了很大的方便。在学习中,了解到当今主流的WEB服务体系结构中主要包括

Microsoft.NET开发框架,和Sun ONE架构,两种架构在思想上有很多相似之处,目前Sun

ONE架构可以在多种操作系统上实现,而Microsoft.NET开发框架目前还主要在微软的操作 系统上实现,虽然它的设计目的是支持移植到其他平台上的。当然架构在不同操作系统上的 WEB服务间是可以通过XML,Soap协议正常通信,协同工作,这也是XML,Soap协议产 生和得到广泛支持的重要原因。我最初在选择开发架构的时候权衡了很久,一种是.NET平

台+IIS WEB服务+ASP.NET+c#.NET开发技术,一种是Apache

Soap

WEB服务+Java开发

技术。因为时间和个人能力的原因,我的模型是基丁微软的操作系统平台的,在我通过实际 例子研究了.NET平台+IIS WEB服务和Apache +c#.NET开发技术来实现我的模型。

4.3.1.NET

Soap

WEB服务后,我深深地被.NET平台的

简单、易用、高集成化、功能强大所吸引,决定采用.NET平台+IIS WEB服务+ASP.NET

从.NET框架角度看,所有组件都可以是Web服务,而Web服务也仅是一种组件。实 际上,.NET框架提取出微软组件对象模型(COM)的精华,将它们与松散耦合计算的精华有 机地结台在一起,生成了强大、高效的Web组件系统:简化程序员的“管道”操作、深入地 集成了安全性,引进了基于互联网的操作系统,极大地改善应用程序的可靠性和可扩展性。 .NET框架包含三个主要部分:公共语言运行时、具有多层次结构的统一的类库集合和

高级版“活动服务器页面”(又名ASP+) 公共语言运行时

此名称不能准确反映它的全部功能。实际上,公共语言运行时在组件的开发过程中以 及软件的运行过程中,都扮演着非常重要的角色。在组件运行过程中,运行时负责管理内存 分配、启动或取消线程和进程、实施安全性策略、同时满足当前组件对其它组件的需求。在 开发阶段,运行时的作用有些变化:与现今的COM相比,运行时的自动化程度大为提高(比 如可自动执行内存管理),因而开发人员的工作变得非常轻松。尤其是,映射功能将使代码 编写量锐减,这些代码是开发人员在将业务逻辑转化成可复用的组件进行编程时所需的。

统一的编程类

19

东南大学硕上学位论文

.NET框架中的类为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的类 j_苹集(API)。现今,c++开发人员使用的是微软基础类序,Java开发人员使削的是Windows 基础类库,而Visual Basic用户使用的又是Visual BasicAPI集。简而言之,.NET框架统一

了微软当前各种不同的框架。这样,开发人员不再需要学习多种框架就能顺利编

实现跨语言继承性、错 误处理功能和调试功能。实际上,从Jscript到c++的所有编程语言,都是相互等同的,开 发人员可以自由选择理想的编程语言。

高级版“活动服务器页面”(ASP+)

ASP+是使用.NET框架提供的类库构建而成的,它提供了一个Web应用程序模型,该 模型由一组控件和一个基本结构组成。有了它,Web应用程序的构建变得非常容易。开发 人员可以直接使用ASP+控件集,该控件集封装了公共的、用于超文本标识语言(HTML)用 户界面的各种小组件(诸如文本框、r拉菜单等等)。实际上,这些控件运行在Web服务器 上,它”J将用户界面转换成HTML格式后再发送给浏览器。在服务器上,控件负责将面向 对象的编程模型呈现给Web开发人员,这种编程模型能提供面向对象的编程技术拥有的丰 富功能。ASP+还提供一些基本结构服务(诸如会话状态管理和进程循环),这些服务进一步 减少了开发人员要编写的代码量,并使应用程序的可靠性得到了大幅度提高。ASP+还允许 开发人员将软件作为一项服务进行传送。通过使用AsP+Web服务功能,ASP+开发人员只 需进行简单的业务逻辑编稗,而由ASP+基本结构负责通过SOAP传送服务。 尽管ASP+还未正式发行,但它己在改进应用程序功能方面创造出令人难以置信的奇 迹:在现有基于ASP的应用程序性能基础上,性能优化了三倍之多,更为激动人心的是生

产效率再度攀升。

4.3.2 IIS

WEB服务器

IIS

WEB服务器是Microsoft公司推出的Winnt系列操作系统上的WEB服务平台,可

以使您在Intemet或Intranet上非常容易地发布信息,提供WEB服务支持。IIs包含了许

N管.NNNN Web服务器的功能。您可以利用它创建并配置可升级的、灵活的Web应用

程序。

4.3.3 C拌.NET

曾几何时,OO语言大家族中又多了一位新成员,他有个坚强、锐利而又不失好听的名 字,c#(读做C Sharp)。c#由Microsoft一手打造,更重要的是其总设计师就是Turbo Pascal、 Delphi的缔造者、天才的Anders。在一次C#的演示会上,Anders和Microsofc的主管人员 曾立r壮志,要让c#取代Vc上+,成为今后.NET开发的首选语言。它继承了Delphi和Java 的许多优点,功能强大,便于使用,目前在.NET平台开发上,c#已经成为无可争议的首选

语言。

4.3.4 ASP.NET

第四章基于soap远程调用的分布式网上购物系统架构

ASP.NET是一个统一的w曲开发平台,它提供生成企业级Web应用程序所需的各种服 务。虽然ASRNET有很大一部分语法与ASP兼容,但是它提供了一个新的程序设计模型与

架构,方便用户生成功能更强人且完善的应用程序。

ASENET支持c#.NET和VB,NET开发WEB应用程序。

4.3.5 XML

WEB

SERVlCE

我们在前面的章节中已经介绍了XML WEB SERVICE,它是一种编程模式,它提供在

可缩放的、松耦合的和非特定平台的环境下交换信息的能力,信息交换使用诸如HTTP、 XML、XSD、SOAP和WSDL之类的标准协议。在XMLWeb

soap协议规范

SOAP协议规范 1. 简介 SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SO AP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使SOAP能够被用于从消息传递到RPC的各种系统。 soap包括三个部分 soap封装(见第4节)结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 SOAP编码规则(见第5节)定义了用以交换应用程序定义的数据类型的实例的一系列机制。 SOAP RPC表示(见第7节)定义了一个用来表示远程过程调用和应答的协定。 虽然这三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP封装,SOAP编码规则和SOAPRP C协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架[6]的情况下,SOAP 消息如何包含在HTTP消息[5]中被传送。 1.1 设计目标 SOAP的主要设计目标是简单性和可扩展性,这意味着传统的消息系统和分布对象系统的某些性质不是SO AP规范的一部分。这些性质包括: 分布式碎片收集 成批传送消息 对象引用(要求分布式碎片收集) 激活机制(要求对象引用) 1.2 符号约定 这篇文章中的关键字 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD", "S HOULD NOT", "RECOMMENDED", "MAY", 和"OPTIONAL"的解释在RFC-2119 [2]中。这篇文章中用到的名域前缀 "SOAP-ENV" 和"SOAP-ENC"分别与"https://www.wendangku.net/doc/ed6162771.html,/soap/envelope/"; 和"http://sc https://www.wendangku.net/doc/ed6162771.html,/soap/encoding/";关联。整篇文档中,名域前缀“xsi”被假定为与URI"https://www.wendangku.net/doc/ed6162771.html,/19

面向对象的数据库技术

面向对象的数据库技术 肖阳辉 摘要:面向对象的数据库极有可能是数据库发展的方向,关系型数据库已显得力不从心,面向对象技术已经渗透到了数据库领域,把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。论文关键词:关,键,词,数据库,面向对象,技术 随着应用的日趋复杂和智能化,传统的关系数据库的缺点一点点的暴露出来,人们迫切希望产生一种新的数据库解决方案来适应这些复杂需求。一种新的解决方案呼之欲出。而这个解决方案极有可能就是面向对象数据库技术。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。在传统的面向对象应用开发中,由于传统的关系数据库开发风格完全不同于面向对象风格,使得许多程序员难以从复杂的SQL编程中解脱出来(尽管已经有一些成熟的ORM技术框架,如Hibernate,但程序员仍需要做大量的数据库代码工作),从而也无法从实质上提高工作效率。 1、面向对象数据库技术概述 面向对象是当前计算机界关心的重点,面向对象是一种新的方法学,也是一种认知方法学。它是一种支持模块化设计和软件重用的实际可行的编程方法,它把程序间的逻辑活动建立在对象间的消息传递之上,且设计上更加符合现实世界,更加自然,所以面向对象方法得到了更广泛的应用。 面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。在数据库中提供面向对象的技术是为了满足特定应用的需要。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。 还有许多应用要求多媒体数据库。它们要求以集成方式和文本或图形信息一起处理关系数据,这些应用包括高级办公室系统的其它文档管理系统。 面向对象数据库从面向程序设计语言的扩充着手使之成为基于面向对象程序设计语言的面向对象数据库。例如:ONTOS、ORION等,它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。 面向对象数据库研究的另一个进展是在现有关系数据库中加入许多纯面向对象数据库的功能。在商业应用中对关系模型的面向对象扩展着重于性能优化,处理各种环境的对象的物理表示的优化和增加SQL模型以赋予面向对象特征。如UNISQL、O2等,它们均具有关系数据库的基本功能,采用类似于SQL的语言,用户很容易掌握。 2.面向对象数据库的优点 面向对象数据库是数据库技术与面向对象程序设计方法相结合的产物,由于同是面向对象方法学,所以其具有了所有面向对象的优点。同时,由于数据库主要操作的是集合(而不是单个数据),所以其又具有自身的特点和优点。 (1)提高数据库开发效率

通过CXF开发webService接口(soap协议、maven项目)

1. 引入cxf的jar包 pom文件里面直接增加依赖 < dependency> junit junit 4.11 test org.springframework spring- webmvc 4.0.0.RELEASE org.apache.cxf apache-cxf 2.4.3 pom 2. 配置web.xml文件 < web-app xmlns= "https://www.wendangku.net/doc/ed6162771.html,/xml/ns/javaee" xmlns:xsi= "https://www.wendangku.net/doc/ed6162771.html,/2001/XMLSchema-instance" xsi:schemaLocation= "https://www.wendangku.net/doc/ed6162771.html,/xml/ns/javaee https://www.wendangku.net/doc/ed6162771.html,/xml/ns/javaee/web-app_3_1.xsd" version= "3.1" > < display-name >Archetype Created Web Application < context-param > contextConfigLocation classpath:config/spring/metadata WebService-spring.xml org.springframework.web.conte xt.ContextLoaderListener

智能电能表通信协议(TCP)及功能一致性测试(ETS)与协议标准的探讨

智能电能表通信协议(TCP)及功能一致性测试(ETS)与协议标准的探讨 发表时间:2018-03-14T15:13:27.440Z 来源:《基层建设》2017年第34期作者:刘永杰[导读] 摘要:开放式综合设备网络可以满足建筑节能、引进设备控制网络、连接现有的各种电气设备网络协议、通过扩展因特网的方式构建广域建筑设备控制网络等要求。 公诚管理咨询有限公司 520000 摘要:开放式综合设备网络可以满足建筑节能、引进设备控制网络、连接现有的各种电气设备网络协议、通过扩展因特网的方式构建广域建筑设备控制网络等要求。 关键词:通信协议;标准规格;一次性测试;互操作性引言:随着人们对通信要求的增加和通信技术自身的发展,通信网的建构日益成为一个庞大的系统工程。协议在通信网中占有绝对重要的地位,ISO开发的OSI七层协议参考模型为推动通信网的发展作出了很大贡献。但仅仅制定了协议还不够,协议工程概念的提出使得协议的制定、验证实现与测试紧密结合在一起,保证了通信网得以正确有效的运行。在整个协议工程过程中,协议的测试居于最后的阶段,测试的 结果表明通信产品可否满足最初的协议要求,直接影响到产品能否投入使用。因此,协议测试是协议工程的重要组成部分。图1示出协议工程总体概览以及协议测试所处的地位。正是鉴于协议测试的重要性,ISO和IEC共同制定了关于一致性测试方法学和框架的国际标准,这就是IS0/IEC9646系列标准。所谓一致性测试,简言之就是测试协议实现与协议规范标准的符合程度。 1.一致性测试的意图、能力和类型 一致性测试包括测试一个协议实现(protocol implementation)的能力和行为两个方面,同时检查是否有与相关国际标准或CCITT建议中的一致性要求以及实现者所声明的实现能力相违背的地方。一致性测试的意图在于增加不同的OSI协议实现在相互联接时的成功率。但是,从技术和经济上双重考虑,对协议实现进行穷尽测试是不现实的。一个正确的协议实现应该具备协议要求的能力并且行为上与协议表现一致,一致性测试要做的仅在于提高这一可信度。正如前面所言,一致性测试的目的在于判断协议实现是否与协议规范相一致。根据对一致性不同的指示程度,可以将一致性测试分为四种: 1.1 基本互联测试,这类测试目的在于检测严重的不一致情况是否存在,即IUT甚至不能与测试器相联或者没能实现协议的主要特征。 1.2 能力测试,静态一致性要求定义了协议实现所要具备的核心能力集合能力测试按照静态一致性要求进行测试,判断IUT的哪些能力可被观察到并检查这些可观察能力的有效性。 1.3 行为测试,行为测试是标准化的抽象测试集(ATS-Abstraet Test Suite)中的主要组成部分。它覆盖了动态一致性要求的全部,旨在确定协议实现的动态一致性。 1.4 一致性决定测试,这类测试提供尽可能明确的诊断性回答,以断定协议实现是否满足特定要求。一般认为,基本互联测试和能力测试可以作为行为测试的先行,而一致性决定测试是非标准化的,可以作为行为测试的后继补充。 2.抽象测试方法及其比较选择 2.1 在本地测试法中,测试器位于测试系统内部,要求IUT的上层服务边界是标准化的硬件接口,测试协调规程在测试系统中予以完全的实现。该方法仅适于有两个硬件接口的SUT。在这里,测试系统是指包括下测试器实现的一个真实系统。 2.2 分布式方法中,上测试器位于SUT中,上层服务边界应该是人工用户接口或者标准编程语言接口。适用于该法的IUT应该有一个上层接口,该接口能够为人工用户或含标准编程语言接口的软件化上测试器所访问。 2.3 在协调法中,测试协调规程由标准的测试管理协议(TMP-Test M anagement Protoco1)来实现。上测试器实质上是相应TMP的一个实现该法适用于TMP能够在上测试器中得以实现的情况。 2.4 在远程法中,对测试协调规程的要隐含于或非形式化地表述于抽象测试集(ATS—A bstract Test Suite,见下节)中,一般没有上测试器,但某些上测试器的功能需由SUT来执行,适用于可以利用SUT的某些功能来控制IUT而无须上测试器的情况。这四种测试方法见图2。

基于J2ME平台的SOAP协议研究与应用

基于J2ME平台的SOAP协议研究与应用 基于J2ME平台的SOAP协议研究与应用 基于J2ME平台的SOAP协议研究与应用 2019-10-03 计算机信息技术 基于J2ME平台的SOAP协议研究与应用 摘要:本文对于在J2ME平台下,利用XML解析器开发SOAP协议的基本方法进行了研究,介绍了J2ME平台和SOAP协议,其中重点探讨了XML的开发,提出了一种利用XML解析器在J2ME平台上实现SOAP协议的方法,具有一定的推广价值。关键词:J2ME SOAP XML嵌入式系统 1引言 J2ME作为嵌入式系统应用平台得到了迅速的发展,JAVA语言固有的平台无关性使得基于J2ME平台的嵌入式应用系统具有广阔的前景。受限于嵌入式设备及消费类电器硬件条件的限制,J2ME平台提供的功能有限,如何能够在有限的资源下拓展J2ME的功能,使得J2ME平台能够处理SOAP协议是本文研究的重点。 目前企业应用正在向面向WEB服务的SOA架构转变,嵌入式系统与企业应用系统的连接目前还处于TCP/IP协议、HTTP协议等比较初级的阶段。随着企业应用系统提供的WEB服务日益广泛和成熟,需要J2ME平台提供处理SOAP协议的需求也越来越多。 SOA架构是目前企业应用系统广泛部署的架构,实现SOA的关键问题之一就是对

SOAP协议的支持。本文分析了在J2ME平台中实现SOAP协议处理遇到的问题,提出了相应的解决方案。 2 j2ME介绍[1] [2] [3] J2ME(Java 2 Platform Micro Edition)是为无线电子市场所设计的JAVA平台,包括JVM规范和API规范。J2ME 定义了一套类库和虚拟机技术,这些技术可以使用户、服务提供商和设备制造商通过物理(有线)连接或无线连接,按照需要随时使用丰富的应用程序。J2ME同时提供了Java语言一贯的跨平台性和安全性。 为了支持用户和嵌入式市场提出的灵活性和可定制性要求,J2ME被设计得更加模块化和可缩放化。J2ME在设备原有的操作系统上建造了3层软件来实现这种要求: 1.JVM层:这层基于宿主操作系统,按照某一种J2ME的配置实现了JVM。 2.配置层:这层对于用户可见度要低一些,但对简表层非常重要。它针对不同市场的需求,定义了Java虚拟机的最小功能集合和Java类库的最小集合。在J2ME设备中,JVM与配置层紧密相连,它们体现了每一类设备的基本功能。 3.简表层:这层对于用户和应用程序提供者来说是最常见的。它针对特定市场的需求,定义了Java虚拟机的最小功能集合和Java类库的最小集合。 J2ME组件都围绕一个中心,这些中心被称为configuration(配置),它们中间的每一个都是用于消费电子和嵌入设备的特别的类。目前配置分为CLDC和CDC 两种。 Connected limited device configuration(有限连接设备配置,简称 CLDC)定义支持“devices that you hold in your hand(握在手中的设备)”的应用程

基于Raft分布式一致性协议实现的局限及其对数据库的风险

基于Raft分布式一致性协议实现的局限及其 对数据库的风险

普通服务器具有良好的性价比,因此在互联网等行业得到了广泛的应用。但普通服务器也不得不面对2%-4%的年故障率([1]),于是必须高可用的传统数据库只得很悲催地使用性价比低得可怜的高可靠服务器。 分布式一致性协议(distributed consensus protocol)是迄今为止最有效的解决服务器不可靠问题的途径,因为它使得一组服务器形成一个相互协同的系统,从而当其中部分服务器故障后,整个系统也能够继续工作。而Paxos协议([2])则几乎成了分布式一致性协议的代名词。 然而,Paxos协议的难以理解的名声似乎跟它本身一样出名。为此,Stanford大学的博士生Diego Ongaro甚至把对Paxos协议的研究作为了博士课题。他在2014年秋天正式发表了博士论文:“CONSENSUS: BRIDGING THEORY AND PRACTICE”,在这篇博士论文中,他们给出了分布式一致性协议的一个实现算法,即Raft。由于这篇博士论文很长(257页),可能是为了便于别人阅读和理解,他们在博士论文正式发表之前,即2014年初,把Raft相关的部分摘了出来,形成了一篇十多页的文章:“In Search of an Understandable Consensus Algorithm”,即人们俗称的Raft论文。 Raft算法给出了分布式一致性协议的一个比较简单的实现,到目前为止并没有人挑战这个算法的正确性。然而,OceanBase却没有采用Raft算法,这并非是OceanBase团队同学不懂Raft,而是Raft的一个根本性的局限对数据库的事务有很大的风险。 Raft有一个很强的假设是主(leader)和备(follower)都按顺序投票,为了便于阐述,以数据库事务为例: 1)主库按事务顺序发送事务日志 2)备库按事务顺序持久化事务和应答主库 3)主库按事务顺序提交事务

SOAP协议在XML数据传输中的应用

第16卷 第4期长 春 大 学 学 报V o.l16 N o.4 2006年8月J OU RNAL OF CHANGCHUN UN I VER SI TY A ug.2006 文章编号:1009-3907(2006)04-0052-04 SOAP协议在X ML数据传输中的应用 隋菱歌,殷树友,黄 岚 (长春金融高等专科学校计算机系,吉林长春 130022) 摘 要:随着计算机技术和电子商务的发展,传统的数据交换技术已不能满足企业间大容量数据的交互。XML作为下一代Internet语言,简单易用并且具有极大的灵活性。SOAP协议是基于XML 数据表示的简单对象访问协议,使用它可以在不同的平台和应用程序间方便地交换数据。SOAP 协议在X M L数据传输中必然会得到广泛的应用。 关键词:SOAP协议;X M L;数据传输 中图分类号:TP393.04 文献标识码:B 0 引 言 现代计算机技术和电子商务技术的迅猛发展,对于不同架构下的资源共享和数据通信提出了迫切要求。X M L以其良好的数据存储格式、可扩展性、高度结构化、便于网络传输等特点,使得我们对纷繁复杂的异构数据表达和传输不再束手无策。I B M、M icr osoft等公司制定的基于XML技术的数据传输协议SOAP,具有开放性、与应用无关性、与语言无关性等特点,满足了异构应用程序之间的通信需求,使得模块层能够以一种开放、自说明、统一的方式进行集成和交互,避免了在CORB A、DCOM和其它协议之间转换的麻烦。正是SOAP 的引入,使W eb服务得以满足互操作性、普遍性和低进入屏障,可以用任何语言来编写W eb服务,开发者无需更改他们的开发环境就可生产和使用W eb服务,这极大地促进了W eb服务的发展。 1 S OAP协议及X M L语言的优势 数据通信的基础是进行数据交换的双方要对数据的格式达成统一的认识。传统的数据交换技术基于不同的架构,例如:不同的操作系统NT、Un i x等,不同的数据库系统SQL Server,O rac le等,要想在这些不同的平台、不同的数据库系统之间传输信息非常不方便,这成为阻碍很多项目发展的瓶颈。 X M L(e X tensible M arkup Language)[1]是一种可扩展的元置标语言,采用与平台无关的中性的数据表达,允许数据被序列化成一个可以传递的形式,使其可以容易地在任何平台上被解码。X M L的优势在于:有大量X M L编码和解码软件存在于每个编程环境和平台上;XML基于文本,相当容易用低技术水平的编程环境来处理;XML格式灵活,支持可扩展性,容易用一致的方式来扩展;在XML中每一个元素和属性有一个名域UR I与它相联系;XML还支持带类型的数据表达,XML Sche m a规范为描述X M L数据类型标准化了一个词汇集。所以,采用XML语言统一数据格式是一个必然的发展趋势。 数据格式的统一是数据通信的基础,而数据传输是数据通信的关键。传统的ED I是一种被证明了的适用于商务公司间交换信息的解决方式。然而,EDI非常严格,而且非常复杂。因此,对一个公司来说,实现、维护和配置ED I是非常昂贵的。分布式组件对象模型(DCOM)允许驻留在不同的计算机上,并且基于C OM 收稿日期:2006-05-10 基金项目:吉林省科技发展计划项目(20050106);吉林省教育厅科研计划项目(JJ KHZ2005-101) 作者简介:隋菱歌(1975-),女,吉林省农安县人,长春金融高等专科学校计算机系讲师,硕士,主要从事计算机网络及数字图像处理的研究。

SOAP协议规范

SOAP协议规范 SOAP协议规范 1. 简介 SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使SOAP能够被用于从消息传递到RPC的各种系统。 soap包括三个部分 soap封装(见第4节)结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 SOAP编码规则(见第5节)定义了用以交换应用程序定义的数据类型的实例的一系列机制。 SOAP RPC表示(见第7节)定义了一个用来表示远程过程调用和应答的协定。虽然这三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP封装,SOAP编码规则和SOAPRPC协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架[6]的情况下,SOAP消息如何包含在HTTP消息[5]中被传送。 1.1 设计目标 SOAP的主要设计目标是简单性和可扩展性,这意味着传统的消息系统和分布对象系统的某些性质不是SOAP规范的一部分。这些性质包括: 分布式碎片收集 成批传送消息 对象引用(要求分布式碎片收集) 激活机制(要求对象引用) 1.2 符号约定 这篇文章中的关键 字 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOUL D", "SHOULD NOT", "RECOMMENDED", "MAY", 和"OPTIONAL"的解释在 RFC-2119 [2]中。这篇文章中用到的名域前缀 "SOAP-ENV" 和"SOAP-ENC"分别与"https://www.wendangku.net/doc/ed6162771.html,/soap/envelope/"; 和 "https://www.wendangku.net/doc/ed6162771.html,/soap/encoding/";关联。整篇文档中,名域前缀“xsi”被假定为与 URI"https://www.wendangku.net/doc/ed6162771.html,/1999/XMLSchema-instance“(在XMLSchema规范[11]定义)相连。类似的,名域前缀”xsd“被假定为与URI"https://www.wendangku.net/doc/ed6162771.html,/1999/XMLSchema";(在[10]中定义)相连。名域前 缀”tns“用来表示任意名域。所有其它的名域前缀都只是例子。 名域URI的基本形式”some-URI“表示某些依赖于应用程序或上下文的 URI[4]。这个规范用扩展BNF(在RFC-2616[5] 描述)描述某些结构。

使用.NET类编写SOAP协议调用Web服务

使用.NET类编写SOAP协议调用Web服务 简介:使用.NET类编写SOAP消息,SOAP消息中包含用户的用户帐号,用户密码和帐号ID。使用HttpWebRequest类发送SOAP请求,请求远程服务器上Web服务程序(客户帐户信息),并使用HttpWebResponse类获取服务响应。 知识点: 命名空间:System.Xml 创建XML文档的类:XmlTextWriter 1.创建XmlTextWriter 对象,设置用Tab键缩进 代码示例: XmlTextWriter BookWriter = new XmlTextWriter( @"\catalog\books.xml", Encoding.UTF8); BookWriter.Formatting = Formatting.Indented; 2.编写XML文档的根元素 使用WriteStartDocument()方法和WriteEndDocument()方法创建XML声明 使用WriteStartElement()方法和WriteEndElement()方法创建根元素 代码示例: BookWriter.WriteStartDocument(); BookWriter.WriteStartElement("books"); // 其他元素 BookWriter.WriteEndElement(); BookWriter.WriteEndDocument(); 输出: 3.编写元素 使用WriteElementString()方法创建不包含子元素和属性的元素 代码示例: BookWriter.WriteElementString("price", "19.95"); 输出: 19.95

第9章 面向对象数据库系统习题解答

第9章面向对象数据库系统 习题解答 一. 简答题 1.面向对象程序设计的基本思想是什么?它的主要特点是什么? 面向对象程序设计的基本思想是用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系统(解空间)。 面向对象方法的主要优点是:符合人们通常的思维方式;从分析到设计再到编码采用一致的模型表示具有高度连续性;软件重用性好。 2.解释面向对象模型中的对象、对象标识、封装、类、类层次等概念。 对象是一组数据结构和在这组数据结构上的操作的程序代码封装起来的基本单位。是对现实世界某个实体的抽象。 对象标识:唯一地标识某个对象。 封装:隐藏属性,方法或实现细节的过程,对外仅公开接口。 类:对象类的简称,即共享所有属性和方法的所有对象集合。 类层次:一组父子关系的类构成的层次结构 3.给出一个面向对象数据库的类层次的实例。 4.举例说明超类和子类的概念。 超类是子类的抽象,子类是超类的特殊化,如学生、本科生、研究生三个类,学生是本科生和研究生的超类,而本科生和研究生是学生的子类。因为本科生和研究生继承了学生的所有属性和行为。 224

二.问答题 1.对于实体集学生、课程、班级以及它们相互之间的联系,请用ODL来描述。要求为所有的属性和联系(正向、反向)进行说明,并且指出每个类的范围和键码。 Interface Student { attribute integer StudentNo; attribute string StudentName; attribute integer Age; attribute string Dept; relationship Set courses; inverse Course::students; relationship Class bemasterof; Inverse Class::master; relationship Class inclassof; Inverse Class::students; }; Interface Course { attribute integer CourseNo; attribute string CourseName; attribute string Teacher; relationship Set students; Inverse Student::courses; }; Interface Class { attribute integer ClassNo; relationship Student master; Inverse Student::bemasterof; relationship Set students; Inverse Student::inclassof; } 2.对于第1题的ODL描述,请将ODL设计转换为关系数据库模式。 Student(StudentNo, StudentName,Age,Dept) Course(CourseNo,CourseName,Teacher) Class(ClassNo) 3. 根据第1题的ODL描述,请你应用FOR ALL和EXISTS量词设计一个OQL查询,并编程实现之。 输出李红选修的课程名称 Select c.CourseName from Course c where exists s in c.students: s.StudentName=’李红’ 225

物联网四大协议

物联网四大协议物联网协议

协议一:物联网协议XMPP XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。 基本网络结构 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 工作原理 XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是关闭流,关闭TCP/IP 连接。

功能 传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。 优点 XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。 缺点 网络通信过程中数据冗余率非常高,网络流量中70% 都消耗在 XMPP 协议层了。对于物联网来说,大量计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备,省电、省流量是所有底层服务的一个关键技术指标,XMPP协议看起来已经落后了。

SOAP协议应用

1、SOAP简介 SOAP(SOAP:Simple Object Access Protocol):简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序 SOAP包括的3部分: soap 封装结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 SOAP 编码规则定义了用以交换应用程序定义的数据类型的实例的一系列机制。 SOAP RPC 表示定义了一个用来表示远程过程调用和应答的协定。 虽然这三个部分都作为SOAP 的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP 封装,SOAP 编码规则和SOAPRPC 协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP 扩展框架[6]的情况下,SOAP 消息如何包含在HTTP 消息[5]中被传送。 2、SOAP的优势 个人认为,作为新一代的分布式技术,SOAP很大的价值在于它可以很好得解决异构系统之间的连接问题。SOAP是基于XML的一种简单协议,而XML已经成为计算机工业的一个标准。就象一个中国人和一个德国人不太好交流,但是如果双方都会英语的话,那么事情就好办了。XML就是异构系统之间的英语!这就是为什么我们在拥有DCOM,RMI,EJB等众多分布技术后,还需要SOAP的一个原因。在SOAP中,所有的请求和响应都是XML文件格式的,而各种语言的相应开发包都具备把这些请求和响应中包含的数据解析出来并转换成为自己的数据类型,而且这种转化是在暗中进行的,通常是不需要开发者关心的。当然,说回来,SOAP也不是解决这一问题的唯一方案,它的发展还在起步阶段。另外一个常被提到的优点是,SOAP建立在HTTP上进行通信,因此它可以通过绝大部分的防火墙。 3、SOAP基本的语法 SOAP 构建模块 一条SOAP 消息就是一个普通的XML 文档,包含下列元素: ?必需的Envelope 元素,可把此XML 文档标识为一条SOAP 消息 ?可选的Header 元素,包含头部信息 ?必需的Body 元素,包含所有的调用和响应信息 ?可选的Fault 元素,提供有关在处理此消息所发生错误的信息 所有以上的元素均被声明于针对SOAP 封装的默认命名空间中: https://www.wendangku.net/doc/ed6162771.html,/2001/12/soap-envelope 以及针对SOAP 编码和数据类型的默认命名空间: https://www.wendangku.net/doc/ed6162771.html,/2001/12/soap-encoding 语法规则 这里是一些重要的语法规则: ?SOAP 消息必须用XML 来编码 ?SOAP 消息必须使用SOAP Envelope 命名空间 ?SOAP 消息必须使用SOAP Encoding 命名空间 ?SOAP 消息不能包含DTD 引用 SOAP 消息不能包含XML 处理指令 1)Envelope元素 必需的SOAP 的Envelope 元素是SOAP 消息的根元素。它可把XML 文档定义为SOAP 消息。 请注意xmlns:soap 命名空间的使用。它的值应当始终是:https://www.wendangku.net/doc/ed6162771.html,/2001/12/soap-envelope SOAP 的encodingStyle 属性用于定义在文档中使用的数据类型。此属性可出现在任何SOAP 元素中,并会被应用到元素的内容及元素的所有子元素上。SOAP 消息没有默认的编码方式。 2)SOAP Header 元素

soap协议

概述 SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。 简介 四个部分 soap。n.(英文)肥皂 SOAP:简单对象访问协议 (SOAP:Simple Object Access Protocol) SOAP 包括四个部分: SOAP 封装:它定义了一个框架, 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。 SOAP 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。 SOAP RPC 表示:它定义了用于表示远程过程调用和应答的协定。 SOAP 绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求/ 应答的模式。所有的SOAP 消息都使用XML 编码。一条SOAP 消息就是一个包含有一个必需的SOAP 的封装包,一个可选的SOAP 标头和一个必需的SOAP 体块的XML 文档。 把SOAP 绑定到HTTP 提供了同时利用SOAP 的样式和分散的灵活性的特点以及HTTP 的丰富的特征库的优点。在HTTP上传送SOAP 并不是说SOAP 会覆盖现有的HTTP 语义,而是HTTP 上的SOAP 语义会自然的映射到HTTP 语义。在使用HTTP 作为协议绑定的场合中,RPC 请求映射到HTTP 请求上,而RPC 应答映射到HTTP 应答。然而,在RPC 上使用SOAP 并不仅限于HTTP 协议绑定。 SOAP也可以绑定到TCP和UDP协议上。 协议结构 SOAP 消息格式: SOAP 标头

SOAP协议分析

西安邮电大学 Web服务 课内实验报告书 院系名称:计算机学院 实验题目:SOAP协议分析学生姓名:周从军 专业名称:网络工程 班级:网络1101班学号:04112016 时间:2014年12月20日

Web服务实验报告 SOAP协议分析 一、实验目的 1.理解Web服务,了解简单对象访问协议(SOAP Simple Object Access Protocol)的内容进行分析; 2.掌握简单对象访问协议(SOAP)的格式。 二、实验内容 1.了解SOAP协议内容和技术架构 2.分析协议的原理及SOAP消息的格式、编码原则 3.掌握 SOAP消息的组成 三、设计与设计过程 1.SOAP协议的简介 SOAP(Simple Object Access Protocal,简单对象访问协议)技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。SOAP是把成熟的基于HTTP的WEB技术与xml的灵活性和可扩展性组合在了一起。 2.SOAP的应用范围 SOAP 的一个主要目标是使存在的应用能被更广泛的用户所使用。为了实现这个目的,没有任何SOAPAPI或SOAP对象请求代理(SOAPORB),SOAP是假设你将使用尽可能多的存在的技术。几个主要的CORBA厂商已经承诺在他们的ORB 产品中支持SOAP协议。微软也承诺在将来的COM版本中支持 SOAP。DevelopMentor已经开发了参考实现,它使得在任何平台上的任何java或Perl 程序员都可以使用SOAP。而且IBM和Sun也陆续支持了SOAP协议,和MS合作共同开发SOAP规范和应用。目前SOAP已经成为了W3C和IETF的参考标准之一。 3.SOAP与XML的关系 SOAP 的指导理念是“它是第一个没有发明任何新技术的技术”。它采用了已经广泛使用的两个协议:HTTP和XML。HTTP用于实现SOAP的RPC风格的传输,而XML是它的编码模式。采用几行代码和一个XML解析器,HTTP服务器(如MS

TCP IP,HTTP,SOAP等协议之区别

笑笑小白 归类自己需要的资料,慢慢爬行TCP/IP,HTTP,SOAP等协议之区别 术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议。“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。 你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP 都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。 HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。 SOAP(Simple Object Access Protocal,简单对象访问协议) 技术有助于实现大量异构程序和平台之间的互操作性,根据我有限的了解,SOAP是把成熟的基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。比如我们.NET中的WEB服务,就是基于SOAP。 记住,需要IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。 下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置: 7 应用层例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP 6 表示层例如XDR、ASN.1、SMB、AFP、NCP 5 会话层例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets 4 传输层例如TCP、UDP、RTP、SCTP、SPX、ATP、IL 3 网络层例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25 2 数据链路层例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP 1 物理层例如线路、无线电、光纤、信鸽 笑笑小白 归类自己需要的资料,慢慢爬行TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为: 对应

相关文档