J2EE Web服务客户端质量报告(一)

概要

本文实现了记录J2EE(Java2平台企业版)Web服务的客户端响应次数的一个通用的结构。记录的响应次数是真实的客户端响应次数,所以它们实际上反映了用户对服务质量的看法。实验的样品是使用Sun ONE (开放式网络环境)应用服务器和IDE建立起来的,但是这个方法很普通,很容易推广到其它J2EE实现上。

Web服务正迅速的成为实现客户端-服务器系统的首选结构。它的优点是:企业可以正式的定义一组服务,然后生成通讯用的完整的客户端和服务器的代码库,从而简化新的客户端对合法的Web资源的访问。

但是,Web 服务在简化客户端-服务器系统的建立的同时,监控服务质量就变得很重要。 假设有一个在用户的立场上提交处理的客户端应用程序。而企业事务通常要调用好几个Web服务:初始调用递交工作内容,接下来的调用检查实现,最终调用得出结果。一个调用就是一个特殊的HTTP/SOAP (简单对象访问协议)交换。假设你是IT部门专门负责监控服务器装载和预测未来需要的工作人员,你必须得回答这个基本问题:"我现在管理我的客户端怎样呢?对于将来的管理,我还需要什么东西?"

如果你只有HTTP日志的话,就很难回答上述问题了。客户端只关心事务的处理,但是因为每个事务包括几个HTTP请求,对于评估服务质量,你最多只能开发自定义数据采集软件,该软件可通过HTTP日志做出指示并建立用户事务处理的模型。就算是这样,你所拥有的信息仍然有限,因为它不能反映网络传送或者客户端应用程序的内务操作。

本文的中心思想是:事务服务质量用客户端评估最好。这儿采用的方法就是允许客户端记录实际的事务响应次数。客户端应用程序通过将响应时间报告添加到下一个弹出的事务处理请求上,从而上传响应时间报告给服务器。服务器取出这些附件并将他们排队储存和在线分析。

结构

基于客户端的频率记录结构的目标就是:记录用的下部构造必须是轻型的,它不但有利于实现运行的内务开销还可以减轻添加它到一个现有的实现的负担。我们也希望该结构对提供的服务没有限制,我们很想可以将服务添加到一个现有的、可以尽可能容易地使用Web服务的客户端-服务器系统上。

我们的结构的另一个目标是:企业应用程序自身的可靠性不要太差。我们将引入一些新的、容易做到的步骤到应用程序的处理工作流程中。而且我们可以保证这些新步骤中的任何故障都可以得到处理,我们不会因为不能将频率用于程序就让企业事务的处理失败

下图显示了一个典型的J2EE(Java 2 平台企业版)Web服务的客户端-服务器应用程序。典型的组件用粗线标明;我们添加的新组件用于收集频率,它采用红线标明。

J2EE Web services: Metrics-gathering architecture

"J2EE Application Server"区域表示现有的服务器资源。他们是用来处理客户端请求的企业JavaBeans (EJB) 组件。工具可自动的生成Web服务软件包。EJB组件和相关的 Web 服务模块被当作J2EE应用程序配置到J2EE服务器上。当应用程序配置时,客户端可以通过调用程序WSDL (Web 服务描述语言)服务来判断一个服务。WSDL服务对程序提供的服务给出正式的定义。

"Application Client"区域由程序组件和Web服务软件包组成。程序组件实现商业逻辑和用户界面。Web服务软件包可自动地通过WSDL编译器和J2EE服务器程序提供的WSDL服务创建出来。

从理论上来说,整个客户端-服务器系统有两层。应用程序层在服务器端拥有EJB组件,在客户端拥有一个应用程序。Web 服务层有一个服务器实现和一个客户端实现,两者都可以自动产生。

典型地,用户的商业事务处理包括许多个服务期调用。第一个调用初始化事务,返回一个"handle" 给客户端。后来的调用查询事务的完成--客户端使用句柄调用服务来检查事务是否得到处理。通常最后一个调用可得到完成的事务的状态。因此,一个商业模型,可在客户端程序内实现的商业模型,总是使得事务与低级别的服务器调用联系起来。

我们可以将收集频率的组件添加到我们的标准J2EE Web服务结构上。上图中的Payload软件包在服务器和客户端都有配置。稍后我会详细的讨论这个软件包,但是从结构的意义上来讲,这个软件包提供了几个服务。例如:客户端程序可以使用beginTransaction() 和 commitTransaction()来定界事务和记录次数。客户端Web服务软件包使用Payload软件包来连载次数报告给SOAP信息附件。服务器端的Web服务软件包使用Payload软件包将SOAP附件从引入的请求中剥离出来,并将它列队登记和报告。

这个实现中的系统操作很少因为客户端和服务器不交换任何新的通信--完成的事务的频率报告与下一个客户端请求一起运送。引入的唯一的新的处理就是客户端上的一些连载和服务器端排队等待的附件。整个实现很轻便,因为只要添加一行代码到每个程序Web方法上,并且代码还是一样的--如果Web方法的标记不变的话他也不会发生变化。

引入的最后一个组件就是信息驱动的EJB组件,它可读取连载的频率附件。典型的,这些附件将会记录到一个数据库中所以企业可以保存事务服务质量的历史纪录。企业可以使用这个数据库将真实的事务响应次数与服务器资源的使用联系起来,从而可以鉴定性的判断出哪个服务器组件才是关键的服务瓶颈。因为附件是排队等待的,所以频率读取器EJB组件应该在不同的J2EE服务器上运行,我们不希望使用商业EJB组件纪录的频率附件竞争资源。

时间: 2024-10-01 09:26:50

J2EE Web服务客户端质量报告(一)的相关文章

J2EE Web服务客户端质量报告(四)

客户端服务软件包 通过指引WSDL编译器到应用服务器提供的WSDL上可自动生成客户端服务软件包.这个软件包包含许多类.我们需要修改的唯一类就是客户端Stub类.同样地,服务器Web 服务软件包也包含类Tie,它可将Web服务请求绑定到EJB方法上,客户端Stub类为每个服务商业方法的每个客户端配备一个方法. 服务Stub类的名称为 <ServiceName>ServantInterface_Stub,其中<ServiceName>就是服务名.我们看看类XactServiceServ

J2EE Web服务客户端质量报告(三)

Payload软件包 Payload软件包可用于客户端,也可用于服务器.它包含三个类:ClientReport.CurrentReport.和 Serializer. ClientReport 表示一个客户端次数报告: package Payload; import java.io.*; import java.util.*; /** * * @author Brian Connolly Brian@ideajungle.com */ public class ClientReport impl

J2EE Web服务客户端质量报告(五)

建立样品客户端应用 要建立样品客户端应用,请将下列文件系统添加到IDE中:<download directory>/Metrics/TransactionClient. 该文件系统包含一个应用类和一个Xact 软件包.应用类可模仿客户端事务的执行,Xact 软件包包含客户端Web服务处理器. Xact软件包可使用Sun Web服务开发者工具包来创建,这个工具包包括在Sun ONE应用框架内.批文件gen.bat使用wscompile命令创建Xact软件包.如果你想重建该软件包的话, 你只需调整

J2EE Web服务客户端质量报告(二)

服务器Web 服务软件包 服务器Web 服务软件包可自动生成.在Sun ONE Studio中,Web模块的创建只要选择一组EJB Java方法即可,并且Web服务软件包的类可由Web模块创建. 该软件包包含许多类和接口.这里最关键的一个就是<ServiceName>ServantInterface_Tie 类,在这个类中服务名就是<ServiceName> .类Tie是Web服务模块最上面的堆栈:它将引入的服务调用绑定到创建它的EJB组件上.我们只需修改类Tie就可以添加次数纪录

使用Macromedia Flex开发Web服务客户端

引言 开放式标准被企业用作降低高整合及维护费用的主要手段.现实中的各种异构软件系统使 得我们必须使用一些涉及开放式标准的策略,而 Web 服务很快就成为了解决这个难题的方法 的一个重要部分.直到现在,要构造一个界面友好的 GUI 客户端来与这些系统进行交互还是 非常的单调乏味.这个问题的一个部分就是 Web 服务描述语言(Web Services Description Language ,WSDL)正趋向于成为服务端点的唯一描述语言,这有时使得遵守起来变得非常困 难,尤其是对组织中的设计人员和

webservice-无法通过JAXWS:wsimport实现程序创建Web服务客户端

问题描述 无法通过JAXWS:wsimport实现程序创建Web服务客户端 无法通过JAXWS:wsimport实现程序创建Web服务客户端,错误截图如下

ASP.NET+XML Web服务客户端创建Web服务

asp.net|web|web服务|xml|创建|客户端 XML Web服务是一个提供特别的功能元素的可编程实体,比如应用程序逻辑,并且可以使用普遍存在的Internet标准例如XML和HTTP访问许多潜在的完全不同的系统.XML Web服务依赖于对XML和其他因特网标准的广泛接受,使用它们来创建支持应用程序互操作性的基础结构,解决了许多过去阻碍互操作性的问题. XML Web服务可在单个应用程序中使用,也可国际互联网被许多应用程序使用.因为一个XML Web服务可通过一个标准接口访问,所以它允

怎样在J2EE组件中引用和查找Web服务

j2ee|web|web服务 本文将讨论怎么在J2EE组件中引用Web服务.并且通过JNDI来查找Web服务.在内容组织上,首先把一个EJB2.1无状态会话Bean发布成Web服务,然后开发基于JSP的Web服务客户端,最后着重介绍怎么在JSP的部署时引用Web服务,并且讨论怎么通过JNDI来查找和调用Web服务.阅读本文前您需要以下的知识和工具:J2EE1.4 SDK,并且会初步使用:掌握基本的JAX-RPC Web服务开发技能:了解JNDI的基本知识,能够使用它进行简单编程:一般的Java编

J2EE 1.4平台和Web服务

本文是J2EE Web服务开发系列文章的第七篇,在本系列文章的前面各主题中,着重介绍了在J2EE1.3平台下使用各种技术或者工具进行Web服务开发.从本文开始,将介绍J2EE1.4平台下的Web服务开发. 本文首先介绍了J2EE1.4平台中Web服务的构架,然后分别介绍了J2EE1.4平台中Web服务的最新规范和最新技术,接下来介绍了开发Web服务使用的API以及J2EE Web服务开发步骤,最后介绍了Web服务的开发工具. J2EE1.4 Web服务构架 J2EE1.4的主题是Web服务,在J