文档库 最新最全的文档下载
当前位置:文档库 › 深入浅出WebService

深入浅出WebService

深入浅出WebService
深入浅出WebService

深入浅出WebService

引言

最近几年WebService 技术正在逐渐成熟,并在项目中开始广泛使用。现在我们简单了解一下什么是WebService ,如何使用它。

什么是WebService

WebService ,顾名思义就是基于Web 的服务。它使用Web 方式,接收和响应外部系统的某种请求。比如,我们可以提供一个用于查询天气信息的WebService ,然后可以用任何支持WebService 的客户端连接到这个Service 进行查询。

很多企业用户经过多年的积累,已经部署了很多应用系统。这些应用系统在企业运营中分担着不同的功能或任务。随着企业的发展壮大,由于种种原因,这些企业用户逐渐开始考虑如何对原有的这些旧系统进行整合。使用WebService 方式将这些旧的应用系统整合起来,对外部提供一致的接口,不仅可以达到整合已有旧系统的目的,还可以避开因为完全构建一个新系统而产生的风险。这样就大大降低了项目的成本和风险。这就是SOA 得以被客户广泛采纳的原因。

从WebService 的工作模式上理解的话,它跟普通的Web 程序(比如ASP 、JSP 等)并没有本质的区别,都是基于HTTP 传输协议的程序。WebService 与普通Web 程序的区别主要在于:1) WebService 只采用HTTP POST 方式传输数据,不使用GET 方式; 2) WebService 从数据传输格式上作了限定。WebService 所使用的数据均是基于XML 格式的。目前标准的WebService 在数据格式上主要采用SOAP 协议。SOAP 协议实际上就是一种基于XML 编码规范的文本协议。

所以我们可以用下面这个图来简单地描述WebService :

WebService 和Web 服务器的区别

有人曾疑问WebService 和Web 服务器有什么区别呢?我们可以把WebService 看作是Web 服务器上应用;反过来说,Web 服务器是WebService 运行时所必需的容器。这就是它们的区别和联系。

WebService 的特点

通过上面对WebService 的简要介绍,我们了解到WebService 的主要特性: 1) WebService 通过HTTP POST 方式接受客户的请求

2) WebService 与客户端之间一般使用SOAP 协议传输数据

必须注意到,WebService 标准本身并没有限制服务端或客户端的操作系统环境或编程语言环境。因为它本身就是为了跨平台或跨应用而设计的。所以我们会看到很多声称支持WebService 的平台。比如:Microsoft Visual Studio 开发平台,Sping ,Axis ,XFire ,Spring 等等。

我现在主要讨论Java 平台上的WebService 框架,实际上其中的原理也适用于其它平台。

SOAP (XML)

通迅协议:HTTP POST

基于Java技术的WebService

对于Java平台,常见的WebService框架有Spring+XFire,Axis,CXF。

这些框架各有千秋,本次讨论以理解WebService的原理为目标,所以我选择了CXF这个相对简单的框架。通过使用CXF,我们可以了解WebService服务端的工作机制,实际上它跟其它WebService框架在这方面没有区别。我会介绍如何创建一个通用的WebService服务端;然后我还会介绍如何自己编写一个通用的客户端,直接通过HTTP POST方式调用WebService服务端。

CXF是Apache基金会组织下的一个项目,简化了WebService服务端的创建过程。CXF 实现了JAX-WS2.0规范,并通过了JAX-WS2.0 TCK;CXF可以和Spring无缝集成;CXF 支持多种传输协议(HTTP,JMS,Corba等),支持多种Binding数据格式(SOAP,XML,JSON等),支持多种DataBinding数据类型(JAXB,Aegis) 。CXF基于Interceptor的架构,使得整个框架非常易于扩展。本次我主要讨论CXF在HTTP/SOAP模式下的处理机制。

可以从https://www.wendangku.net/doc/0816263420.html,/download.html下载CXF,目前最新版本是2.2.5。下载最新的版本后,解压压缩包,从lib目录下至少要拿出下面几个jar放入你的工程:cxf-2.2.5.jar

antlr-2.7.7.jar

commons-codec-1.3.jar

commons-collections-3.2.1.jar

commons-lang-2.4.jar

commons-logging-1.1.1.jar

commons-pool-1.5.2.jar

geronimo-annotation_1.0_spec-1.1.1.jar

geronimo-jaxws_2.1_spec-1.0.jar

geronimo-ws-metadata_2.0_spec-1.1.2.jar

jaxb-api-2.1.jar

xalan-2.7.1.jar

wsdl4j-1.6.2.jar

XmlSchema-1.4.5.jar

假设我们的Web工程目录结构是如下所示:

myapp

|-------- src

|-------- WebContent

| |---------WEB-INF

| |---------classes

| |---------lib (在这里放入上面所列的jar包)

| |---------web.xml

上述的jar包应该放入myapp/WebContent/WEB-INF/lib目录下。

如何编写WebService服务端

CXF是一个嵌入式的WebService框架,它没有直接的WEB接口。也就是说如果我们要在WEB模块中使用CXF,必须自己在WEB模块中实现一个调用CXF的WEB接口。现在我使用WEB Servlet方式来调用CXF。首先我在myapp/src目录下创建一个自己的Servlet 程序(所有使用CXF的Web Servlet必须继承servlet.CXFNonSpringServlet)。

下面是Web Servlet的主要代码:

public class WebServiceServlet extends CXFNonSpringServlet {

public void loadBus(ServletConfig servletConfig) throws ServletException {

...

super.loadBus(servletConfig);

Bus bus = getBus();

ServerFactoryBean factroy = new ServerFactoryBean();

factroy.setBus(bus);

factroy.setServiceClass(IWebService.class);

factroy.setAddress("/SampleWebService");

factroy.setServiceBean(new SampleWebService());

factroy.create();

...

}

}

下面这两行代码主要为了获得CXF的内部上下文对象Bus:

super.loadBus(servletConfig);

Bus bus = getBus();

然后我再使用CXF提供的ServerFactoryBean工具类把自己写的一个普通的JavaBean发布成WebService。ServerFactoryBean需要以下参数:

1)Bus。也就是上面我们所得到的Bus对象。

2)WebService的接口定义。也就是指自己的WebService实现了哪个Java Interface。

3)WebService的发布地址。也就是访问WebService的URL地址。

4)WebService的实现类

我们执行下面的这几行代码就能发布一个WebService:

ServerFactoryBean factroy = new ServerFactoryBean();

factroy.setBus(bus);

factroy.setServiceClass(IWebService.class);

factroy.setAddress("/SampleWebService");

factroy.setServiceBean(new SampleWebService());

factroy.create();

如果我们要发布多个WebService,仅仅需要更改少量代码(修改WebService的接口定义、发布地址、实现类),然后不断重复上面的代码即可。

在此之前,我还要定义一个WebService接口和一个WebService实现类。

下面的代码是WebService接口:

public interface IWebService {

String execute(String params);

}

它就是一个普通的Java Interface而已。

下面的代码是一个WebService的简单实现类:

public class SampleWebService implements IWebService {

public String execute(String params) {

System.out.println(params);

return params;

}

}

接下来,我们在web.xml中配置WebServiceServlet:

WebServiceServlet

WebServiceServlet

1

WebServiceServlet

/services/*

完成上述的操作后,我们启动应用服务器(这里我用TOMCAT作测试,假设TOMCAT的端口为8080,我的应用名称为vo)。

然后,我们可以从http://localhost:8080/vo/services/?wsdl访问WebService主画面,页面上显示出当前Web应用中可用的所有WebService。

我们可以点击某个WebService的链接查看WebService的详细信息:

如果你能看到上面两个画面,说明WebService已经正常发布了。

这时,我们的SampleWebService的访问地址为:

http://localhost:8080/vo/services/SampleWebService

请注意,我们绝不能直接在浏览器上输入这个地址,虽然它看起来就像一个普通的Web应用地址。因为通过浏览器直接访问这个地址,浏览器是以POST方式向Web服务器发出请求,这不符合WebService的运行要求。

如果你强行在浏览器上用http://localhost:8080/vo/services/SampleWebService地址访问

WebService,你会看到浏览器上显示一个HTTP 5XX错误。

当你在用浏览器直接访问WebService时看到类似的错误,不要以为是WebService没有发布成功。事实上,你不能用这种方式来测试WebService是否正常发布。

如何编写WebService客户端

CXF框架提供了调用WebService的客户端API,使用起来也比较方便。下面是CXF客户端的写法:

ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); factory.setServiceClass(IWebService.class);

factory.setAddress(

"http://localhost:8080/vo/services/SampleWebService");

IWebService client = (IWebService)factory.create();

System.out.println("Invoke execute()....");

System.out.println(client.execute("Hello World"));

在启动服务端后,运行这段代码,客户端终端窗口上会显示“Hello World”,服务端的信息窗口也会显示一个“Hello World”。这表示WebService能成功运行了。

CXF框架提供的客户端API封装了WebService的内幕,虽然它很好用,但使用者却不能理解WebService的运行机制。

破解WebService的秘密

接下来,我们对WebService作进一步拆解,来了解它是怎么运作的。

之前,我提到WebService一般是基于HTTP POST方式工作的。刚刚作为范例的CXF 框架的WebService就是基于HTTP POST方式工作的。现在,我用一种称为通迅协议解析工具的软件来帮我们了解它的工作过程。我现在所使用的这个软件叫Ethereal,是一个开源的通迅协议解析工具。(可以从https://www.wendangku.net/doc/0816263420.html,下载最新版本的Ethereal) 首先,我们启动WebService所在的Web服务器。

然后,我们启动Ethereal。点击工具条上的第二个图标按钮,如下图所示:

在弹出的画面中,Interface栏位选中正确的网卡;Capture Filter中填入port 8080(Tomcat 的默认端口是8080,如果你修改了这个端口,必须在这里填入相同的端口);Display options

中的三个选项都勾上;最后,点“Start”按钮开始监视WebService的运作。

这里改为对应的网卡

这三个都

选上

我们还是运行刚刚使用CXF客户端API编写的客户端程序测试一下WebService。(此时要特别注意,你的WebService客户端和WebService服务端不要位于一台机器上。这是源于Ethereal软件本身的限制,它没有办法监控同一台机器上的网卡数据。)

如果按照上面那样做,我们会在Ethereal看到类似于这样的内容:

消息区域

消息详细信息区域

消息详细信息区域

(二进制方式)

上面的画面显示了几个区域。

我们注意到,在画面上部第一个区域中,Protocol中显示的协议类型为HTTP,Info中显示的是POST方式,POST后紧跟的是WebService的调用地址。Source中显示的是客户端的IP,Destination中显示的是服务端的IP。

画面中间的Hypertext Transfer Protocol展开,显示以下内容:

POST /vo/services/SampleWebService HTTP/1.1\r\n

Content-Type: text/xml; charset=UTF-8\r\n

SOAPAction: ""\r\n

Accept: */*\r\n

User-Agent: Apache CXF 2.2.5\r\n

Cache-Control: no-cache\r\n

Pragma: no-cache\r\n

Host: 192.168.2.6:8080\r\n

Connection: keep-alive\r\n

Content-Length: 593\r\n

\r\n

其中Content-Type指明数据类型为XML,使用UTF-8字符编码。SOAPAction表明这是一个WebService调用。User-Agent说明当前客户端是使用CXF API制作的。Host表明WebService服务器的IP和端口。Content-Length说明后面将使用POST方式传送的数据的长度。

选中消息列表区域中的第三条,会显示如下信息:

特别地,选中“Data ( 593 bytes )”,在消息详细内容二进制区域会显示出这593字节的详细内容。根据WebService中传递的数据的长度不同,这里的字节数也会不尽相同。

我们仔细观察使用CXF API编写的WebService客户端所发送出去的POST数据是类似下面这样的内容:

Hello World

其中,指明要调用的方法是execute(),arg0说明调用时的参数值为“Hello World”。这些内容都包括在标签之中。

所以SOAP协议规定的WebService数据一般有如下格式:

|_________

|____________ <方法名>

|___________<参数>

上面消息列表的最后是WebService服务端向客户端返回的消息:

返回的消息内容为:

Hello World

我们注意到,返回的消息中内的内容换成了与所调用的方法名对应的Response标签。Response标签内的Return标签说明了方法的返回值。

我们回过头来再仔细想想,所谓WebService,似乎只是将方法调用的过程用XML形式来重新定义其规则,然后再用一种类似CXF这样的符合这类WebService标准的框架来支持它,就可以达到这种远程调用方法的效果。

现在我们知道了WebService所使用XML数据的一般形式,可以绕开CXF这样的API,

直接采用HTTP协议编写客户端,来访问WebService服务端。

在Java中,我直接使用Socket类来实现WebService的客户端。实际上,你也可以参考这个思路,用C++或.Net等程序来实现同样的功能。

//建立与WebService服务端的连接

Socket sock = new Socket("192.168.2.6", 8080);

//建立向WebService服务端的输出流,编码格式为UTF-8

BufferedWriter wr = new BufferedWriter(new

OutputStreamWriter(sock.getOutputStream(),

"UTF-8"));

//参照用Ethereal截获的信息一样向输出流写入数据

wr.write("POST "+path+" HTTP/1.0\r\n");

wr.write("Host: "+host+"\r\n");

wr.write("Content-Length: 593\r\n");

wr.write("Content-Type: text/xml; charset=\"UTF-8\"\r\n");

wr.write("SOAPAction: \"\"\r\n");

wr.write("Accept: */*\r\n");

wr.write("Cache-Control: no-cache\r\n");

wr.write("Pragma: no-cache\r\n");

wr.write("\r\n");

wr.write(xmldata);

wr.flush();

...

wr.flush();

//建立来自WebService服务端的输入流

BufferedReader rd = new BufferedReader(new

InputStreamReader(sock.getInputStream()));

String line;

StringBuffer xmlReturn=new StringBuffer();

//循环读入从服务端发送回来的数据

while((line = rd.readLine()) != null) {

xmlReturn.append(line);

}

sock.close();

按照上面这个思路,我们可以直接使用Socket实现WebService客户端,同样可以调用标准的WebService服务端。唯一的缺点就是,我们需要对WebService返回的信息进行解析。由于WebService返回的内容是XML格式的。所以我们可以使用DOM或SAX对XML进行解析。只是还是稍显麻烦。不过即便如此,我们用Socket直接调用WebService,这已经很大程度上解决了如果编写一个通用WebService客户端的问题。所以用这种方式编写的客户端,不仅可以调用不同Java WebService框架发布的WebService,甚至也可以调用不同语言开发平台上发布的WebService。

至于返回信息的解析问题,我们可以采用一些其它的方法来弥补。比如:XML序列化技术。其实现在已经有不少这方面的技术。比如从JDK 1.5开始提供的JAXB技术、Apache 的XMLBean等等。读者有兴趣的话,可以自行研究一下。很多Java WebService框架就是采用这些技术来实现的。

写在最后

本文对WebService的核心通讯协议方面作了探讨。事实上WebService标准还包括很多其它内容,比如最重要的安全问题等等。虽然如此,我还是希望这篇文章能帮助你开启迈向WebService的大门。(我将在后文中为大家继续讨论关于XML序列化的问题)。另外,我也建议读者去了解一下WSDL文法标准,虽然很多WEBService框架隐藏了它的细节,因为我认为它是我们了解WebService的基础。就像我们要写Web界面程序时,必须先了解HTML 文法一样。

SAP开发webservice接口教程

SAP开发webservice接口教程 在client=100中进行开发: 1.创建RFC函数 SE80,在函数组下,右击->创建,创建函数模块,填写函数模块名称及描述。 2.函数属性标签页,选择“远程启用的模块”,其余默认不变。 3.函数导入标签页,需要添加调用时传入的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_T (需要自己创建) 行类型:ZSHR_EMPLOYEER (需要自己创建)

4.函数导出标签页,需要添加调用返回的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_OUT_T (需要自己创建) 行类型:ZSHR_EMPLOYEER_OUT (需要自己创建) 5.函数源代码标签页,需要写代码实现把传入的数据保存在透明表中。 至此,函数创建完成。 6.创建Web Services 右击包名创建企业服务,进入如下页面,选择“Service Provider”,因为我们是服务提供者,点击“继续”。

7.选择“Existing ABAP Object (Inside Out)”,点击“继续”。 8.给服务起名,并填写描述,点击“继续”

9.选择“Function Module”,点击“继续”。 10.填写我们第一步创建的函数,并勾选“Map Name”,点击“继续”。 11.SOAP Appl默认不变,Profie下拉框选择第四个选择,即不进行权限认证。点击“继续”。 12.填写对于的包和请求,点击“继续”。 下一步,直接点击“完成”。服务创建成功。

13.配置SOA 使用T-CODE:soamanager,进入web页面的SOA管理(client=100)。 14.点击“简化Web服务配置”,进入如下设置页面,点击“执行”,从列表中找到自己创建的 服务,勾选第一个checkbox,User Name/Password(basic),点击列表左上角的“保存”,之后页面右上角的“返回”按钮,返回首页。 这一步设置,代表我们只设置用户名/密码的调用认证方式。

Webservice学习

Web Service学习笔记(1) Web Service的宗旨是创建不需要用户界面就能与其他应用程序交互的Web应用程序。 举例说明它的优点,假如你正在为一家股票投资公司创建网站,你并不需要把不同证劵交易所得数据库与自己的后台数据库进行整合,因为你的应用程序可以使用Web Service,并使用XML格式交换数据。 Web Service是松耦合的,它与服务器端和客户端使用的操作系统、编程语言都无关。假如你既拥有客户端又有服务器端的访问和管理权,这种情况更适合用.NET 的Remoting技术,而不是Web service。 创建Web Service必须保证的是,服务器端和客户端都要支持HTTP、SOAP(简单对象访问协议)和XML等行业标准协议。 Web Service是如何工作的 Web Service允许两个程序之间交换XML文档。在这个架构的顶层,微软实现了一个远程过程调用(Remote Procedure Call,PRC)模型。 Web Service架构包括以下特性: 1。WebServcie的服务器端和客户端应用程序都能够连接到互联网。 2。用于进行通信的数据格式必须遵守相同的开放标准,并且在大多数情况下,这个标准几乎总是SOAP。 3。客户端和服务器端的系统是松耦合的。即Web Service不关心客户端和服务器端所使用的操作系统、对象模型或者编程语言。只要Web Service和使用Web Service的应用程序都能够发送和接收遵守适当协议标准的消息即可。 下图为Web Service流程的逻辑架构

如图所示,一个Web Service使用着会向Web Service发出一个调用请求。使用者会认为它通过Internet直接和Web Service进行交流,当然这实际上是个幻象。实际上,真正的调用由代理类完成。代理类对于Web Service使用者来说是一个本地类。代理会处理所有的负责的复杂架构,包括通过Internet发送请求道服务器、从web Service取回结果并呈现给Web Service使用者。 由于代理类在之前已在消费程序中注册,所有一切工作才可以顺利进行。注册有开发消费程序的程序员完成。 开发Web Service 开发Web Service的流程与开发网页的流程近乎一致: 1。所有构成网页和服务的源文件都是文本文件,它们可以使用任何文本编辑器创建和修改。而类文件可以在控制台命令行中通过命令工具进行编译。 2。可以在vs2005及以上版本中创建网页和Web Service 3。网页和Web Service既可以使用代码隐藏模型,也可以使用内联编码(inline coding)模型。Web Service中不需要使用代码隐藏技术,因为Web Service并不包括任何可视化内容。 4。网页和Web Service都充分利用了CLR和.NET Framework。

【WebService】接口的测试方法

【WebService】接口的测试方法 有以下多种方式: 一、通过WSCaller.jar工具进行测试: 前提:知道wsdl的url。 wsCaller可执行程序的发布方式为一个wsCaller.jar包,不包含Java运行环境。你可以把wsCaller.jar复制到任何安装了Java运行环境(要求安装JRE/JDK 1.3.1或更高版本)的计算机中,用以下命令运行wsCaller: java -jar wsCaller.jar 使用wsCaller软件的方法非常简单,下面是wsCaller的主界面: 首先在WSDL Location输入框中输入你想调用或想测试的Web Service的WSDL位置,如“https://www.wendangku.net/doc/0816263420.html,/axis/services/StockQuoteService?wsdl”,然后点“Find”按钮。wsCaller就会检查你输入的URL地址,并获取Web Service的WSDL信息。如果信息获取成功,wsCaller会在Service和Operation下拉列表框中列出该位置提供的Web Service服务和服务中的所有可调用的方法。你可以在列表框中选择你要调用或测试的方法名称,选定后,wsCaller窗口中间的参数列表框就会列出该方法的所有参数,包括每个参数的名

称、类型和参数值的输入框(只对[IN]或[IN, OUT]型的参数提供输入框)。你可以输入每个参数的取值。如下图: 这时,如果你想调用该方法并查看其结果的话,只要点下面的“Invoke”按钮就可以了。如果你想测试该方法的执行时间,则可以在“Invoke Times”框中指定重复调用的次数,然后再按“Invoke”按钮。wsCaller会自动调用你指定的方法,如果调用成功,wsCaller会显示结果对话框,其中包括调用该方法所花的总时间,每次调用的平均时间和该方法的返回值(包括返回值和所有输出型的参数)。如下图:

(电子商务)电子商务网站设计原理总最全版

(电子商务)电子商务网站设计原理总

名词解释 1电子商务:利用有限的计算机硬件设备,软件和网络基础设施,通过壹定的协议链接起来的电子网络环境进行各式各样商务活动的总称。 2interet:链接无数个遍及全球范围内的广域网和局域网的互联网路。 3B2B:商业机构试用网络或各种商务网络向供应商订货和付款。4B2C:电子商务是以网络为主要手段,用商家或者企业通过网站向消费者提供商品和服务的壹种商业模式。 5C2C:通过为买卖双方提供壹个交易平台,使卖方能够主动提供商品拍卖,而买方能够自行选择商品进行竞价。 6B2G:指政府部门和企业之间通过网络进行各项商务活动。 7电子支付:是客户首先以壹定金额的现金过存款从发卡人处兑换得代表相同金额的数据,通过使用某些电子化方法将数据直接移动给支付对象。 8银行卡:是商务银行向社会公开发行,具有消费信用,转账结算,存取现金的全部过部分功能,作为支付结算工具的各种卡的统称。 9电子现金:是壹种以数据形式流通能被消费者和商家普遍接受,通过互联网购物使用的数字化货币。 10电子支票:是壹种借鉴纸张支票转移支付的优点,利用数字传递将钱款从壹个账户转移到另壹个账户的电子支付形式。 11智能卡:是壹种大小和普通名片相仿的塑料卡片,内含壹块壹厘米左右的芯片,具有存储信息和进复杂运算的功能。 12物流:物质资料从供给者的物理运动,主要是创造时间价值和 尝试价值,有时也创造壹定的加 工价值的活动。 13数据保密:保证网络上传送的 数据信息不被第三方监视的窃 取且使用该数据。 14数据完整性:要保证在公共的 网络上传递的数据信息不被篡 改。 15防火墙:壹种位于俩个或者多 个网络间实施网络之间访问控 制的组件集合,是维护个人计算 机过局域网安全的防护措施的 总称。 16CA证书:用认证授权中心发 行的数字证书。 17虚拟专用网:用于网络交易的 壹种专用网络,在俩个系统之间 建立安全的信道,用于电子数据 交换。 18信息检索:指间信息按壹定的 方式组织和存储起来,且根据信 息用户的需要找出有关的过程。 19指令:是指示计算机执行某种 操作的命令。 20程序:是由有序排列的指令组 成的。 21数据库:长期存储在计算机 内,有组织,可共享的数据集合。 22数据管理系统DBMS:是为 数据库的建立,使用和维护配置 的软件。 23数据仓库:面向主题,集成, 不可更新,随时间二维表的形式 来描述数据。 24数据挖掘:从大量,不完全, 有噪声,模糊,随机,的实际应 用数据中,提取隐含在其中,人 们事先不知道但又是潜在有用 的信息和知识的过程。 25OSI/RM:是ISO在网络通信 方面所定义的开放系统互连模 式。 26TCP/IP:包括俩个协议壹个是 TCP协议传输控制协议,壹个是 IP协议互联网协议。 27数据链路层:建立在物理传输 能力基础上的,以帧为单位传输 数据,它的组要任务就是进行数 据封装和数据连接的建立。 28中间件:是壹种独立的系统软 件或服务程序,分布式应用软件 借助这种软件在不同的技术之 间共享资源,中间件位于客户服 务机服务器的操作系统之上,管 理计算机资源和网络通信。 29企业应用集成:能将业务流 程,应用软件,硬件和各种标准 联合起来,在俩个或更多的企业 应用系统之间实现无缝集成,使 他们像壹个整体壹样进行业务 处理和信息共享。 30工作流:业务过程的部分或整 体在计算机应用环境下的自动 化。 31WEB服务:是壹种能够用来 解决垮网络应用集成问题的开 发模式,这种模式为现实软件作 为服务提供了技术保障。 32数据集成:通过应用间的数据 交换从而到达集成。主要解决数 据的分布性和异构性问题,其前 提是被集成应用必须公开数据 结构。 33功能集成:通过相互调用对方 的功能实现应用间的集成,其前 提是被集成的应用必须提供功 能调用接口。 34Webservice:是描述壹些操作 接口。 35网站规划:在网络建设前对市 场进行分析,确定网站的目的和 功能,且根据需要对网站设计中 的技术内容费用测试维护等做 出规划。 36可行性研究:在进行项目投资 工程建设之前的准备性研究工 作。它是经济活动中常使用的壹

Java程序员必须掌握的技术

1linux操作系统和安全性能优先考虑。熟悉linux系统下的开 发及web平台架构原理 熟悉UNIX命令及配置,可以编写简单的shell脚本,UNIX环境下的应用系统安装调试; FreeBSD 2Ajax、jQuery、ext、dwr技术 3 4J2EE项目开发经验,采用HIBERNATE、SPRING、STRUTS2、Webwork2、 ibatis开发过项目; 熟练掌握:struts2+spring+hibernate,熟悉Oracle,Sqlserver,Mysql数据库。 熟悉使用一个或多个常见开源框架struts、Spring、Hibernate、……,具有spring/struts/struts2+hibernate项目开发经验;velocity 5WEB开发所需要的 HTML / JavaScript / XML / UML / CSS等相关知识; 8Oracle,较好的sql基础,能够熟练使用SQL语言,或有一定SQL 基础,熟练掌握oracle、sqlserver(或mysql等其他关系数据库)的设计和开发;DB2,熟悉DB2,熟悉WebSphere,WebSphere Portal,WebSphere Studio;6、熟悉Oracle、SQL Server、Sybase、DB2、MySQL等一种数据库,有实际设计与开发中使用经验 PL/SQL. Access就不要写了 9SVN、CVS 10J2EE 服务器,如Jboss,Websphere,Weblgoic,Tomcat、Resin 熟悉使用常用应用服务器:Tomcat/WebSphere/WebLogic/Jboss; 11, 精通OOD, OOP及UML; 熟悉软件建模概念,掌握例如Rational Rose、PowerDesign等建模工具; 12.年以上EXT开发经验,能够独立完成EXT框架的界面模块程序设计、编码与单元测试 2年以上EXT JS框架实际开发经验; 13 精通倒排索引、全文检索、分词、排序等相关技术,熟练运用lucene nutch等技术 参与过大中型W AP、WEB垂直搜索引擎设计,对搜索引擎优化有自己的见解。 负责公司互联网垂直搜索引擎研发(,数据分析及挖掘系统的开发及维护。

ESB部署WebService接口(统一用户和待办)

1 统一待办(WebService方式) 1.1 概述 门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。 统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM系统。 为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。不满足本技术方案提供的接入规则的相关应用系统,应参考本文档完成对应用系统改造后方可进行门户系统统一待办接入工作。 统一待办实现共分为以下部分: 系统待办信息获取 系统待办信息展示 系统待办信息处理 1.2 待办信息获取 设计思路:应用系统通过门户系统提供的webservice接口向门户系统统一待办系统库写入代表信息,如下图

数据获取设计示意图 步骤如下: 1.应用系统需获得最新的待办信息。 2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。 3.统一待办系统将应用系统提供的待办信息展示给用户。 4.应用系统通过调用集成接口后获得信息,可以判断发送信息操作是否正常。 1.3 待办信息展示 设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图 用户 待办栏目页面 待办集中展示设计示意图 场景如下:

在所有的待办类标题前加上”请办理”,待阅类标题前加上”请审阅”。此外,如果信息是未办或者未阅,用红色表示 1.4 待办信息处理 设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现SSO,然后跳转到应用系统的待办页面,完成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。如下图: 待办信息集中处理设计示意图

WebService接口代码样例说明

WS接口代码样例 Java代码调用样例 参见WSTest_for_Java.rar附件,该附件为Eclipse工程代码。接口调用参见https://www.wendangku.net/doc/0816263420.html,info.smsmonitor.Test C代码调用样例 参见WSTest_for_c.tar附件,该附件为标准C工程代码。 附录 Webservice消息发送接口报文样例: TaskID-003761653 8613301261178 106557503 1 This is test message 1 00:00-23:59

金蝶EAS_V8.1_WebService开发指南

Webservice开发指南

版权声明 本书著作权属于金蝶软件(中国)有限公司所有,在未经本公司许可的情况下,任何单位或个人不得以任何方式对本书的部分或全部内容擅自进行增删,改编,节录,翻译,翻印,改写。 金蝶软件(中国)有限公司 2015年8月

BOSWebService 1.1.BOSWebService原理 (4) 1.2.发布WebService的约束 (5) 1.3.BOSWebService发布 (5) 1.3.1.发布流程 (5) 1.3.2.发布WebService (5) 1.3.3.编辑WebService配置文件 (6) 1.4.BOSWebService部署 (7) 1.4.1.建立web工程................................... 错误!未定义书签。 1.4.2.部署发布文件 (7) 1.4.3.测试是否正确 (8) 1.4.4.Web工程目录及文件截图 (8) 1.5.客户端代码 (9) 1.5.1.获取wsdl服务描述文件 (9) 1.5.2.下载工具 (10) 1.5.3.建立一个新工程 (10) 1.5.4.使用java客户端 (13) 1.5.5.importVoucher(凭证引入 (14) 1.6.BOS webservice 安全性 (15) 1.6.1.BOS webservice 安全性概述 (15) 1.6.2.不启用安全性 (15) 1.6.3.启用安全性 (15) 1.6.4.如何安全性启用 (16) 1.7.EASLogin 登陆webservice 说明 (16) 1.7.1.EASLogin 接口说明 (16) 1.7.2.EASLogin 异常说明 (17) 1.7.3.EASLogin 和前面版本的差别 (18) 1.8.webservice 异常查看 (18) 2.WebService 客户端开发指南 (19) 2.1.前提条件 (19) 2.2.获取WSDL文件 (19) 2.3.生成客户端 (20) 2.3.1.生成Java客户端 (20) 2.3.2.建立一个新工程 (20) 2.3.3.将获取到的WSDL文件拷贝到工程的根目录下: (21) 2.3.4.生成客户端 (21) 2.4.使用java客户端 (25) 2.5.生成C# 客户端 (25) 2.5.1.使用命令行 (25) 2.5.2.运行命令生成客户端 (26) 2.5.3.使用客户端代码 (27) 3.webservice FAQ (29) 3.1.在EAS 上如何发布一个webservice ? (29) 3.2.如何调用一个 webservice? (29)

常用的webservice接口

商业和贸易: 1、股票行情数据WEB 服务(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询) Endpoint:https://www.wendangku.net/doc/0816263420.html,/WebServices/StockInfoWS.asmx Disco:https://www.wendangku.net/doc/0816263420.html,/WebServices/StockInfoWS.asmx?disco WSDL:https://www.wendangku.net/doc/0816263420.html,/WebServices/StockInfoWS.asmx?wsdl 支持香港股票、深圳、上海封闭式基金、债券和股票;支持多股票同时查询。数据即时更新。此中国股票行情数据WEB 服务仅作为用户获取信息之目的,并不构成投资建议。支持使用| 符号分割的多股票查询。 2、中国开放式基金数据WEB 服务 Endpoint:https://www.wendangku.net/doc/0816263420.html,/WebServices/ChinaOpenFundWS.asmx Disco:https://www.wendangku.net/doc/0816263420.html,/WebServices/ChinaOpenFundWS.asmx?disco WSDL:https://www.wendangku.net/doc/0816263420.html,/WebServices/ChinaOpenFundWS.asmx?wsdl 中国开放式基金数据WEB 服务,数据每天15:30以后及时更新。输出数据包括:证券代码、证券简称、单位净值、累计单位净值、前单位净值、净值涨跌额、净值增长率(%)、净值日期。只有商业用户可获得此中国开放式基金数据Web Services的全部功能,若有需要测试、开发和使用请QQ:8698053 或联系我们 3、中国股票行情分时走势预览缩略图WEB 服务 Endpoint: https://www.wendangku.net/doc/0816263420.html,/webservices/ChinaStockSmallImageWS.asmx Disco: https://www.wendangku.net/doc/0816263420.html,/webservices/ChinaStockSmallImageWS.asmx?disco WSDL: https://www.wendangku.net/doc/0816263420.html,/webservices/ChinaStockSmallImageWS.asmx?wsdl 中国股票行情分时走势预览缩略图WEB 服务(支持深圳和上海股市的全部基金、债券和股票),数据即时更新。返回数据:2种大小可选择的股票GIF分时走势预览缩略图字节数组和直接输出该预览缩略图。 4、外汇-人民币即时报价WEB 服务 Endpoint: https://www.wendangku.net/doc/0816263420.html,/WebServices/ForexRmbRateWebService.asmx Disco:https://www.wendangku.net/doc/0816263420.html,/WebServices/ForexRmbRateWebService.asmx?disco

基于.NET的Web程序设计课程教学大纲

基于.net的web程序设计课程教学大纲 课程编码:0221313 学时数:90 课程性质:专业方向 先修课程:面向对象程序设计 适用专业:计算机科学与技术 一、课程的性质、目的和任务 本课程是为计算机科学与技术专业本科生开设的专业课,是计算机科学与技术专业本科生的专业限选课程。本课程的教学目的在于通过教与学,使学生正确理解web程序设计相关的概念、基本原理、一般方法及安全问题。通过学习本课程,学生具备在.NET平台上熟练运用HTML、JavaScript、https://www.wendangku.net/doc/0816263420.html,、https://www.wendangku.net/doc/0816263420.html,、WebService、XML、N层架构、Ajax等主流技术开发Web应用程序的能力。二、课程教学内容及基本要求 第一章 https://www.wendangku.net/doc/0816263420.html,入门 [学时分配] 6(讲课)+2(上机实践)=8学时 [主要内容] https://www.wendangku.net/doc/0816263420.html, 技术进行简要介绍 https://www.wendangku.net/doc/0816263420.html, 的优点、功能和工作原理以及如何配置IIS 3.Web 窗体的特点、功能、生命周期以及它的IDE 环境和如何在VS2005/2008下创建https://www.wendangku.net/doc/0816263420.html, 应用程序 4.介绍https://www.wendangku.net/doc/0816263420.html, 页的结构 5.Page对象的各种事件和属性。需要着重讲解Page_Load 事件和IsPostBack 属性的用法 6.要求能够对ViewState 对象的作用和代码隐藏技术有充分的理解 [教学重点] 1.理解https://www.wendangku.net/doc/0816263420.html, 的功能和工作原理 2.在IIS 中为应用程序设置虚拟目录 3.Page 对象的各种事件和属性的用法,代码隐藏技术 [教学难点] 1.对Web 窗体的特点、功能和生命周期的理解 2.Page.IsPostback 属性的用法和对VIEWSTATE 对象的理解 [教学要求] 1.了解https://www.wendangku.net/doc/0816263420.html, 2.了解Web 窗体

webservice接口开发

Microsoft .NET体系结构中非常强调Web Service,构建Web Service接口对.NET Framework开发工具有很大的吸引力,因此很多讲建立Web Service机制的文章都是使用.NET Framework开发工具的。 在这篇文章中我们将谈论下面几个方面的问题 1、客户端怎样和Web Service通信的 2、使用已存在的Web Service创建代理对象 3、创建客户端。这包括: Web 浏览器客户端 Windows应用程序客户端 WAP客户端 最好的学习方法是建立一个基于真实世界的实例。我们将使用一个已存在的Web Service,这个Web Service从纳斯达克获得股票价格,客户端有一个简单的接口,该接口的外观和感觉集中了建立接口的多数语句。 客户端描述 三种客户端都接受客户输入的同一股票代码,如果请求成功,将显示公司名和股票价格,如果代码不可用,将显示一个错误信息。客户端都设置有"Get Quote" 和"Reset"按钮以初始化用户的请求。 开发中的注意事项 我使用visual https://www.wendangku.net/doc/0816263420.html,作为我的集成开发环境,beta版没有结合.NET Mobile Web,因此,我们需要使用文本编辑器创建wap客户端,下一个版本的visual https://www.wendangku.net/doc/0816263420.html, 将整合入.NET Mobile Web 。 客户端怎样与Web Service通讯 我们先复习一下Web Service的功能,在我得上一篇文章中曾展示一幅图(如图一),a点的用户将通过Internet执行远程调用调用b点web 服务器上的东西,这次通讯由SOAP和HTTP完成。

WebService的几种验证方式

WebService的几种验证方式 1.1WebService设计 1.1.1传输基本参数 1.1.2传输数据集合 (1)数组 (2)DataSet 1.2WebService异常处理 1.3WebService性能 1.4WebService认证 请参考WebService认证学习报告 1.4.1各种认证方式 1.4.1.1Windows认证 (1)配置IIS中WebService文件的权限为集成Windows认证(2)设置Web.Config 1.4.2跟踪用户访问 1.5WebService调用 1.5.1Windows认证 (1)NT认证使用时,Credentials必须指定 https://www.wendangku.net/doc/0816263420.html,.CredentialCache.DefaultCredentials

当设置为default时,客户端根据服务端配置决定采用NTLM认证还是其他的安全认证 (2)实例化WebService对象 (3)添加WebService认证信息 (4)调用WebService方法 LocalTest.GIISService localTest = new LocalTest.GIISService(); CredentialCache credentialCache = new CredentialCache(); NetworkCredential credentials = new NetworkCredential("XuJian", "password", "Snda"); credentialCache.Add(new Uri("http://localhost/GIIS/ GIISService.asmx"), "Basic", credentials); localTest.Credentials = credentialCache; string tt = localTest.Hello("ssssssss"); 1.6GIIS中WebService认证实现 该部分为本次GIIS中实现的认证方式,考虑到相关配置、维护性,不涉及其他认证方式的处理 1.6.1实现方式 SOAP Header + DES加解密 + Windows认证 1.6.2实现原理 (1)SOAP Header SOAP包括四个部分: SOAP封装(envelop),定义描述消息 SOAP编码规则 SOAP RPC调用和应答协定 SOAP绑定,底层协议交换信息 其中envelop由一个或多个Header和一个Body组成,Header元素的每一个 子元素称为一个SOAP Header (2)DES对称加解密

webservice接口文档

软件项目文档 无线条码库存管理系统 数据库设计报告 版本:<1.0>

版本历史

目录 1文档介绍 (4) 1.1 文档目的 (4) 1.2 文档范围 (4) 1.3 读者对象 (4) 1.4 参考文献 (4) 1.5 术语与缩写解释 (4) 2数据库环境说明 (4) 3数据库的命名规则 (4) 4逻辑设计............................................................................................................................ 错误!未定义书签。5物理设计.. (4) 5.0 表汇总......................................................................................................................... 错误!未定义书签。 5.1 表A ............................................................................................................................. 错误!未定义书签。 5.n 表N ............................................................................................................................. 错误!未定义书签。6存储过程、函数、触发器设计........................................................................................ 错误!未定义书签。7安全性设计........................................................................................................................ 错误!未定义书签。 7.1 防止用户直接操作数据库的方法............................................................................. 错误!未定义书签。 7.2 用户帐号密码的加密方法......................................................................................... 错误!未定义书签。 7.3 角色与权限................................................................................................................. 错误!未定义书签。8优化.................................................................................................................................... 错误!未定义书签。9数据库管理与维护说明.................................................................................................... 错误!未定义书签。

WebService接口实例说明文档

WebService接口说明文档 文档说明 本文档主要讲述如何用CSharp创建一个简单的WebService接口,并使用Java调用这个WebService接口。 准备工作 系统环境:安装JDK1.6或更新版本 开发工具:Microsoft Visual Studio2012、MyEclipse10.5、axis2-1.6.2 C Sharp服务端 1.首先,创建一个Web Service项目。依次点击:文件—新建—项目,在弹出的新建项目窗口中选择 Web下的https://www.wendangku.net/doc/0816263420.html, 空 Web应用程序。如下图: 2.接下来我们需要创建我们的WebService接口实现文件。鼠标右击我们的项目,依次点击:添加—新 建项,在弹出窗口中选择Web服务。可修改新建项的文件名,注意文件名后缀后.asmx。如下图:

新建完成后我们的项目结构如下: 3.打开我们新建的MyService.asmx下的MyService.asmx.cs文件,可以看到其中已经有默认的 HelloWorld方法。

我们可以直接运行查看下运行的效果,效果如下图: 点击HelloWorld,再点击调用可以看到页面返回:

4.接下来我们完善我们的WebService接口功能。主要对WebService接口进行参数类型的测试,文本型、 布尔型、数值型、类(Class)等。 新增Add()等运算方法: 新增strcat()连接字符串方法: 新增GetBool()返回布尔值方法: 新增GetTest()返回测试类,并新增Test类 运行我们的项目,可以看到我们的结果如下图:

点击add方法测试: 输入add的参数i和j点击调用按钮,可以看到返回计算结果: 5.到此为止我们C Sharp创建的WebService程序完成。接下来看Java如何调用我们的WebService接口。

webservice数据传输系统设计说明书

X X X学院毕业 毕业设计 . 题目: _______ Web Service数据传输 系别:_____________ ______________ 专业:______________ ___________班级:_______________________ __姓名:___________________ ________指导老师:______________________ _____________

数据传输项目需求分析 1 系统概述 (2) 系统简介 (2) 系统功能简介 (2) 系统用户角色 (2) 2 系统假设 (3) 3 串口通信技术 (3) 串口通信的定义 (3) 串口通信与项目之间的联系 (3) 4 服务器与服务器之间的数据传输 (3) Web Service技术和数据库复制技术之间的优缺点 (3) Web Service技术和数据库复制技术之间的对比 (4) Web Service 技术和数据库复制技术的选择 (4) 5 分析和总结 (4) 6 文档历史 (5) 1 系统概述 系统简介 该系统主要是为了实现太阳神有限公司的数据交换传递。 系统功能简介 异构平台间的互通功能;数据备份功能。 系统用户角色 系统管理员:添加、删除普通管理员 普通管理员:可以查看数据库的数据;整理数据集合

2 系统假设 1)假定各公司设备完整,该系统开发时间和经费充足。 2)公司无其他新的功能要求; 3 串口通信技术 串口通信的定义 串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。现在比较普遍的串口通信是两个基于RS-232的串口之间的通信。 串口通信与项目之间的联系 串口通信是串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现较远距离通信。所以非常适合该项目单片机把数据传输到电脑上,也可以通过电脑把要执行的指令传输到单片机上。 4 Web Service技术和数据库复制技术 Web Service技术和数据库复制技术之间的优缺点 Web Service技术和数据库复制技术之间的对比

webservice接口实现过程

说明:该文档以电子路演系统与ECM的WebService集成为例 创建服务端 一、搭建测试环境 1 新建web工程OARSInterface,引入jar包 将“E:\zhaodongmei\ECM\OARSandECM\IntegrationInterfaceCode\测试代码\WebService\WebJarFiles”目录下的jar包引入。 引入的具体jar包如下:activation.jar;apache_soap-2_3_1.jar;axis.jar;axis-ant.jar;CEOperterMonitor.jar;CEService_IIOP.jar;commons-collections-3.2.jar;commons-discovery-0.2.jar;commons-fileupload-1.2.1.jar;commons-io-1.3.2.jar;commons-logging-1.0.4.jar;dom4j-1.6.1.jar;dom4j-1.6.1.jar;jaxen-1.1.1.jar;jaxrpc.jar;log4j-1.2.8.jar;mail.jar;saaj.jar;wsdl4j-1.5.1.jar。其中可选包(发布服务及生成客户端程序是要用到的):activation.jar;mail.jar。 2 配置web.xml文件 参照E:\zhaodongmei\ECM\OARSandECM\IntegrationInterfaceCode\测试代码\WebService\客户端测试项目\OARSTest\WebRoot\WEB-INF\ web.xml进行配置,不需要进行修改 二、接口开发 在开发之前,我们先介绍与接口实现相关的两个jar包:CEOperterMonitor.jar和CEService_IIOP.jar。 CEOperterMonitor.jar:实现的是对接口操作的监控。当电子路演系统调用我们的接口进行上传、下载、修改和删除操作时,可以在监控系统的数据库中查看到相关的操作记录。CEService_IIOP.jar:主要的功能是提供对文件夹或文件进行操作的各个接口供本文档中接口的开发时调用。当该jar包中的函数不能满足开发的需要时,可以对该jar包进行修改,即重写某些方法。 1 编写服务端程序src/services.OARSService/ OARSService.java 在该Java类中实现了10个方法:OARSService();getProperties(String filename);uploadRSFile( DataHandler file,Map parms);deleteRSFile(String documentId);downloadRSFile(String documentId);updateFileProperyAndPermission(DataHandler xmlFile);getParams(List affixfilebeanList);writeXML(DataHandler xmlFile);createFolder(String folderPath);main(String[] args) 下面分别介绍这些函数的功能: ①OARSService():构造函数,主要实现的功能是从OARS.config中取得参数值。并在

WebService异构系统通信的原理及特点:SOAP与WSDL

从标准上来说,整个技术架构是WebServices(带s的),有时会看到很多人写成WebService(不带s的),其实这是不标准的 WebService指的是单独一个服务,而WebServices指的是它的技术架构 目前WebServices技术使用的稍多些,因为它走的是HTTP协议,它可以穿越防火墙,它天生就能穿越80端口 但是WebServices的缺点就是:慢!!因为WebServices是基于HTTP协议传送大文本,实际传送的是XML文件 而IIOP(属于CORBA技术架构)协议传送的就是二进制,所以它的效率要比WebServices快很多 所以在一些行业里,也大量的使用了CORBA技术,比如说电信网 而CORBA的缺点就是:编程模型复杂,它是属于重量级的 SOAP——简单对象访问协议 假设我们在本地通过Java写一个main()方法与远程的一个可以是用任何语言写的取得天气预报的服务打交道 如果打交道的过程中采用的是WebServices技术的话,那么它传送给远程的就是XML文件,使用的是SOAP协议 SOAP即简单对象访问协议,其实质就是HTTP+XML,也就是说它是通过HTTP协议来传送XML文件 也就是说SOAP是基于XML的简易协议,可以使应用程序在HTTP之上进行信息交换 或者更简单地说SOAP是用于访问网络服务的协议,而一条SOAP消息就是一个普通的XML文档 使用SOAP协议通信的过程中,远程对象会将所要返回的信息形成一个XML文件传给Stub 然后客户端就会把XML文件转换成Java对象,而当客户端在调用远程服务时客户端就会把Java对象转换成XML文件作为参数传给Skeleton,而Skeleton 就负责把XML文件转换成远程服务的相应语言的对象 比如说服务端是采用Java开发的,那么Skeleton就会将接收到的数据解析成Java对象,再传送给服务端 同理若服务端是采用C#开发的,那么Skeleton就会将接收到的数据解析成C#对象,再传送给服务端 所以,WebServices能够实现异构语言的通信,可以用来整合异构系统 同理,如果不是异构系统的话,也就没有必要使用WebServices技术 比如说客户端和远程对象都是采用Java开发的,那么就没有必要使用WebServices了 因为二者都是采用Java开发的,它们之间可以直接以二进制来传输数据,访问效率会快的很多 而WebServices其实就是基于XML的数据交换,即WebServices所传送的是大文本,效率自然就慢了 除非我们的系统是采用多语言开发的,那么就可以考虑使用WebServices技术或者说我们的系统想做的通用一些,则可以采用并开放WebServices的一些方法其实SOAP就是用来最终完成Web服务的调用的,而WSDL则用于描述如何使用SOAP来调用Web服务

相关文档
相关文档 最新文档