当前位置: 代码迷 >> Web前端 >> WEB服务组合相关有关问题
  详细解决方案

WEB服务组合相关有关问题

热度:349   发布时间:2012-10-20 14:12:48.0
WEB服务组合相关问题

?

综述题目:WEB服务组合相关问题

?

摘要:目前的互联网的应用开发中已经出现了大量的Web服务,每个Web服务提供特定的功能,越来越多的实际项目需要Web服务集成起来,组合提来,从而提供更强大的计算和功能,单独的Web服务逐渐越来越不能满足用户复杂的应用需求。而Web服务组合实际上就是为了满足用户的需要,把多个Web服务组合起来,提供综合的,复杂的服务,形成一个新的服务,新服务的组成成员之间可以互相通信,他们按照一定的逻辑来处理用户操作和请求。其本质是若干服务成员的协调工作,从而灵活的实现上层业务模型,屏蔽底层信息基础设施的改变。但是WEB服务组合中遇到的问题还有很多,如语义问题,即不同的服务之间没有一个共同的标准来交流信息。Web服务是否能提供服务是不确定的,它能提供服务的Qos也是动态变化的,这些问题都影响着服务组合的进一步发展和应用。

?

关键词:Web服务 ?组合问题

?

一、? ? 引言:

目前用户的需求越来越多,也越来越复杂,原来单个Web服务所能解决的问题越来越少,复杂性的增加使得服务组合越来越重要,因为Web服务组合起来能解决更多的问题,而且在软件工程的概念上提高了聚合程度,降低了耦合程度,在组合的基础上维护起来更加方便,增加新的功能和减少原来的功能更加容易,只要单独的Web服务模块经过严格的测试,各个方面的参数都满足要求,我们就可以放心的来使用,并且在发现错误后可以很快的定位,最终的服务是经过测试好的单独服务组合起来的,并且单个服务模块是正确的。这就使得Web服务组合的应用越来越广泛。

随着Web服务组合应用的广泛,随之出现的问题也越来越多,较为突出的有语义Web服务组合问题,即单个Web服务信息交互,消息理解一致性等,这是由于广泛存在的服务异构问题造成的,这样的问题降低了服务发现,匹配和选取的准确率以及服务之间互操作的能力,影响组合服务的有效性和正确性,成为动态组合发展的瓶颈之一。

Web服务的不确定性问题也比较突出,不确定性问题包括Web服务是否可用是不确定的,Web服务的服务质量Qos是动态变化的,是不可控的,是不同的,当然用户对Web服务质量Qos的要求是不同的,对于不同Web服务应用领域,Web服务的最有组合模式和关联关系是不同的。不确定性问题给Web组合带来的问题是多种多样的,它影响着系统的有效设计,开发,可靠性,可用性以及质量问题。

本文根据查阅的相关的资料,对于一些Web服务组合提出新的解决方案,并且搭建环境,通过具体Java Web Service实现具体的实例。

?

二、??相关工作:

本文通过查阅相关的论文和资料,进行分析了解,并且通过搭建Java Web 服务平台,通过具体,真实的实例进行分析实际中遇到的Web服务组合问题,最后找到解决这方面问题的一些方法。

本文采用了Apache Axis 框架来进行搭建环境做实例首先下载Tomcat做为Web容器当然还要配置环境变量开发工具利用eclipse先到Apache网站下载Axis然后放在Tomcatwebapps下面然后启动Tomcat。访问http://localhost:9090/axis/ ?如果访问成功,说明配置成功,然后就可以写可以提供的Web Service

第一步先写Web Service,和写普通类的方法是一样的。当然Web Service一般是要返回值的,要不就没有意义,写完以后是java文件,只要把以java后缀名改为jws,然后把此文件放入到axis 根目录下边就可以了。

第二步,启动Tomcat服务器,然后在客户端使用刚才写的Web Service就可以了。

具体代码见下

?

服务器端的代码:

?

package server;

?

public class HelloAXIS{

???

??? public String Hello(String name) {

?????? return "您输入的数据是:" + name;

??? }

???

??? public int Add(int fristNumber,int secondNumber){

?????? return fristNumber+secondNumber;

??? }?????????????????????????????

???

}

?

客户端的代码:

public class GreetClient {

???

public static void main(String[] args) throws ServiceException, RemoteException {

String endPoint = "http://localhost:9090/axis/HelloAXIS.jws";

//要调用的地址

??????

??????? Service service = new Service();

??????? Call call = (Call) service.createCall();

??????? call.setTargetEndpointAddress(endPoint);

??????? call.setOperationName(new QName(endPoint,"Hello"));

//要调用的服务器方法

??????

??????? String result = (String) call.invoke(new Object[]{"你好"});

//传入参数后执行完的结果

??????? System.out.println(result);

??? }

?

}

运行完测试程序后输出的结果是:您输入的数据是: 你好 。当然上面的例子是最简单的Web Service调用,而且没有组合问题。环境的框架就是这样的,至于做动态组合和静态组合的实例,只要简单的修改一下就可以实现。

三、问题描述

当调用单个Web服务不会遇到许多麻烦的问题,但是随着业务的增长,组合显得越来越必要,有一个典型的问题就是Web服务的不确定性,即Web服务的可用性是不确定的,Web服务的Qos也是不确定的,因为它是动态变化的,而且不同的Web服务应用对Web服务质量Qos的要求也是不同的,对于不同的Web服务领域,Web服务的最优组合和关联关系是不同的。

这些问题可以通过实例明显的展示出来,因为可能不是同时工作的一个地方,所有Web服务的可用性得不到保证,如果在静态组合中调用Web服务的时候才发现所用的服务不可用,那么会造成很大的损失。

Web服务的Qos的不确定性,在经过多次测试也能发现,因为网络层提供的服务就是尽最大努力交付,而且网络的拓扑结构是不确定的,所以下层不可能确定Qos的参数,这就导致了Web服务的Qos的不确定性。

不同的Web服务应用对Qos要求也是不同的,有些要求系统在特定的时间内必须做出响应,例如火车站查询系统,有些应用可能没有这么严格的要求,如普通的企业门户网站。

Web服务的最优组合和关联关系是不同的对于不同的Web服务领域。在动态Web服务组合的情况下会遇到这种情况。

本文主要介绍第二个问题,那就是Qos变化的问题。并提出一些认为可行的方法。

四、解决方法

我们知道我们是无法控制Qos参数的,因为这完全取决于真实网络的状态。我们不可能去控制网路层以下的东西,也没有方法去控制,所以只能在上层找方法。

Web服务对外公开的描述使用的是XML语言。提供一个对外可以访问的接口。这个接口描述了一组可访问的操作,其中包括由SOAP+WSDL包装的Object。服务的行为,输入输出都使用WSDL描述。

Web服务体系结构:为支持结构中的三种操作,服务描述应具有以下重要特点:首先,服务描述要声明服务提供者提供的Web服务的特征,帮助查找具体服务。其次,服务描述应该声明接口特征,以访问特定的服务。最后,服务描述应声明各种非功能特征。

为了解决Qos问题,我们可以在发布的时候,附带Qos参数的信息,详细的话可以带上时间的信息,因为每个时间段的Qos区别是很大的。服务的描述和服务的实现的分离的。所以在服务实现改变后一定要改变服务的描述,要不会让客户端产生严重的错误。

当然这种方面会增加一些处理时间,Web Service 客户端在查找服务时会附带自己的Qos,然后UUDI会在自己的服务器上筛选符合客户端Qos要求的服务,提供给客户,当然Qos的描述最好形成一个公开的标准,这样才有助于广泛的推广和应用。

当然其中会带来新的问题,其中一个就是UUDI处理的问题,随着越来越多的服务注册到UUDI中来以后,用户使用UUDI搜索服务时间会越来越长,那么用户等待的时间会越来越长。

除了传统解决数据库搜索的方法外,我们可以在用户传来的服务需求中做一些处理,来提高处理速度,首先对用户需求的优先级进行分析处理,提取出硬性要求和软性要求,如Qos就属于软性要求,即不是特别严格,参数在一定范围内即可,然后组成相应的查询语句进行查询。

其次,对服务进行分类对于查询处理也是很重要的。好的分类能迅速提高查询速度,当服务数特别多时,我们可以采用树形结构,每个树的节点就是一个UUDI,我们可以根据一定的规则计算用户需求所对应的树的节点号,算完节点号就可以迅速定位到特点的节点树上查找相应的服务。

?

五、结束语

在过去的几年里,Web服务组合作为一种新兴起的技术,正在不断的得到发展和应用。由于用户不断增长的需求,不仅在规模上的增长,还有质量上的,复杂度上的增长,而Web Service根据其特有的优点,在这种环境展现出自己的优势,并得到广泛的应用,使用Web Service的软件或系统极大的减少了各个模块之间的耦合性,节省了测试所花费的时间,并且对错误的定位也更加迅速,更加准备,方便。

但是技术方面还有很多亟待解决的难题。Web服务组合中的问题就是其中一方面,由于Web服务组合在各个领域的广泛应用。Web服务组合问题越来越重要,也显的越来越突出,单个Web服务应用发挥的作用可能是强大的,但是多个Web服务组合起来发挥的作用远远超过单个服务提供的作用之和。其中关键的问题就是协调这些组合,让组合协调的工作,组合的顺利,发挥的作用越大,所以这些问题对于Web服务能否在将来大规模应用起到关键的作用,它决定着Web Service 的未来,这些问题如果不能很好的解决就不可能为用户提供满意的服务,伴随着这些问题的解决,Web? Service 将迎来它的辉煌。

?

参考文献:

?

[1]Eric Armstrong等著? 电子工业出版社,Java Web Services教程

[2]柴晓路:清华大学出版社,Web服务架构与开放互操作技术

[3]Harvey M.Deitel等著? 机械工业出版社,Java Web服务高级教程

[4]蒋丽清.云计算及其简单应用. Web服务原理与开发

[5] Eric Newcomer,Greg Lomow?,电子工业出版社,Understanding SOA with Web Services

[6] 帕派佐格罗,械工业出版社,Web服务:原理和技术

?

?

  相关解决方案