综述题目: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,然后放在Tomcat中webapps下面,然后启动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服务:原理和技术
分享到:
相关推荐
在当前的Web服务组合领域中,质量问题逐渐成为研究者关注的热点,尤其是在大数据环境下,如何确保服务组合的质量、提高效率和可靠性,是实现高质量服务组合的关键。本文提出了一个质量驱动的Web服务组合研究模型,...
Web服务组合是信息技术领域中的一个重要概念,特别是在分布式计算和云计算中。它涉及到将多个独立的Web服务集成到一个单一的、复杂的应用程序中,以提供更高级别的功能或满足特定业务需求。以下是一些关于Web服务...
论文中提到的"无等待流车间调度问题"是与Web服务组合相关的一个实际问题。在无等待流车间调度中,每个工作单元(或Web服务)需要按照特定顺序在多个机器(或服务)上进行处理,且不允许在不同机器间有等待时间。设置...
Dustdar和Schreiner的这篇综述论文不仅详细介绍了Web服务组合的相关技术和方法,还展望了未来的研究趋势和发展方向。随着技术的不断进步,Web服务组合将继续发挥其重要作用,为企业级应用和服务市场带来更大的价值。
综上所述,基于改进多目标蜂群算法的Web服务组合优化方法,为解决Web服务组合优化问题提供了创新的解决方案,不仅提高了优化的效率和质量,也为相关领域的专业人士带来了实践上的指导和理论上的启示。随着未来技术的...
Web服务组合是指将多个单一的服务按照一定的业务逻辑组合成一个更复杂的服务的过程。这不仅可以提高服务的复用性,还能增强服务的功能性。服务组合通常涉及服务选择、组合策略、工作流管理等多个环节。例如,在B2B...
在深入分析《Web服务组合匹配框架研究.pdf》文档之前,首先需明确文档的结构和内容。该文档是一篇发表于2017年的论文,主要聚焦于Web服务组合匹配的框架研究,详细介绍了通过模型转换的方式提高服务发现准确率的框架...
文档提到的“JavaWebServices:UpandRunning”这本书是由O'Reilly Media出版的,向读者介绍了XML Web服务和RESTful Web服务相关的Java API。这本书通过实例驱动的方式向读者清晰、务实地讲述了Web服务的相关技术。书...
在对Web服务组合的研究工作回顾和总结的基础上,提出了依据组合过程中服务的复用程度对Web服务组合进行分类的方法,建立了有关服务模式的概念;与此同时,提出服务网络(services network,SN)的概念来表达服务间的...
《随机QoS感知的Web服务组合概率分析》一文深入探讨了上述问题,并提出了一种重要性采样仿真方法,以概率分析Web服务组合中的QoS随机性。该方法是基于随机程序评价理论(Program Evaluation and Review Technique, ...
因此,Web 服务动态组合技术作为一种解决方案,旨在实现灵活、可靠、可扩展的服务组合。 Web 服务动态组合技术可以分为两种方式:静态组合和动态组合。静态组合需要定义大量的模板且服务在运行期间不可替换或更改,...
在Web服务组合中,Petri网的引入旨在解决服务之间的协调、并发控制和状态管理等问题。首先,文章提出了一个基于语义功能体系的建模方法,为特定领域内的服务定义了一套语义功能框架。每个服务都可以根据其功能特性被...