Você está na página 1de 23

Um Plugin para Monitoramento e Gerenciamento de Web Services baseados em SOAP

Adair Jose Rohling1, Vinicius Cardoso Garcia2


1

Centro de Estudos e Sistemas Avanados do Recife C.E.S.A.R. EDU


2

Centro de Informtica Universidade Federal de Pernambuco


adairrohling@gmail.com, vcg@cin.ufpe.br

Abstract. Web Service has been playing a significant role in application development and integration. However there are still challenges to attend its enormous potential, one of these challenges is to check the behavior and Quality of Service (QoS) available. This paper presents a solution in form of a plugin that allows performing monitoring and management of Web Services based on SOAP W3C standard, non-intrusive to the codification and decoupled from the execution environment. To achieve the objectives the solution performs an extension of the JAXWS API and makes use of dynamic instrumentation process through JMX API. Resumo. Web Services tem desempenhado um papel significativo no desenvolvimento e integrao de aplicaes. Entretanto h ainda desafios para atender seu amplo potencial, um destes desafios verificar o comportamento e a qualidade dos servios disponibilizados. Esse trabalho apresenta uma soluo em forma de um plugin que permite realizar o monitoramento e gerenciamento de Web Services baseados no protocolo SOAP padro da W3C, de forma no intrusiva codificao e desacoplada do ambiente de execuo. Para atingir os objetivos a soluo realiza uma extenso da API JAXWS e faz uso do processo de instrumentao dinmica atravs da API JMX.

1. Introduo
O crescimento e a popularizao da transferncia de documentos entre computadores em redes permitiram a integrao entre sistemas e algumas tendncias aumentaram a necessidade da integrao entre processos em diferentes organizaes. Para Will et al.(1999), Casati (2001) e Dayal (2001), o aumento do outsourcing e do comrcio eletrnico, produz a necessidade da integrao e automao destes processos nas organizaes. Boniati (2003), define que Web Services uma soluo para as necessidades de integrao, pois em seu princpio utiliza padres abertos de protocolos de comunicao e de linguagens. Segundo o W3C (2008), a ideia por trs do conceito de Web Services oferecer um padro para interoperabilidade entre diferentes aplicaes de software, que possibilite a execuo dessas aplicaes de maneira independente de plataforma ou arquitetura.

De acordo com Cerami (2002), Web Services esto se tornando a forma mais bem aceita para disponibilizar e-business na web, bem como permitir que os usurios, sejam estes humanos ou outros servios da web, possam us-los. De acordo com pesquisas do Gartner (2004), organizaes que querem manter-se competitivas tero que frequentemente fornecer dados aos seus parceiros atravs de Web Services, e isso ir transformar a indstria de TI e de servios de software. Atualmente vrias organizaes possuem seus servios implantados atravs de Web Services, consequentemente vrios dados so recebidos e transmitidos. Entretanto, no basta somente receber e transmitir esses dados, tambm necessrio oferecer qualidade nestes servios. Andrieux et al. (2004), descrevem que as organizaes que contratam ou disponibilizam um Web Services tambm tem interesse em especificar quais as capacidades, requisitos e garantias que determinado servio oferece, bem como em monitorar se essas capacidades esto sendo respeitadas. Para tratar destes interesses surge a necessidade da criao de mecanismos que auxiliem na automatizao destas tarefas. Este artigo apresenta o plugin1 WSMM (Web Services Management and Monitoring) como uma proposta para realizar gerenciamento e monitoramento de Web Services baseados em SOAP, que o protocolo padro da W3C para Web Services. O plugin realiza a descoberta dos servios implantados e inicia o processo de monitoramento, verificando as caractersticas no-funcionais dos Web Services. No restante desse artigo, as sees esto definidas da seguinte forma: Seo 2, descreve o estado da arte de alguns conceitos como Web Services, mecanismo de monitorao e gerenciamento, na Seo 3, apresentado alguns trabalhos relacionados, na Seo 4 apresentado o plugin WSMM, seu desenvolvimento, sua arquitetura e suas funcionalidades, na Seo 5 realizado um validao da proposta, na Seo 6, so descritas as consideraes finais e propostas de trabalhos futuros. 1.1. Caracterizao do problema Quando adquirirmos algum hardware, como componentes de redes ou impressoras, os fabricantes disponibilizam ferramentas para o seu monitoramento e gerenciamento. Porm quando falamos de aplicaes de software muitas vezes no disponibilizado recurso algum para estas tarefas. Quando Web Services esto em produo estes servios podem estar apresentando algum tipo de problema como sobrecarga, tempo de resposta muito elevado, erro ou falhas na lgica do desenvolvimento. A no existncia de um processo de monitoramento e gerenciamento pode refletir em srios prejuzos para as organizaes. A tecnologia de Web Services possui vrias caractersticas importantes, porm para tratar de interesses no-funcionais ainda no disponibiliza um modelo padro para tratar estas caractersticas. Shuping (2003), indica que a falta de informaes sobre atributos de qualidade dos Web Services uma das causas da lenta taxa de adoo desta tecnologia.

1

Extenses para aplicao so chamadas de Plugin (Szyperski, 2002 ), usado normalmente para prover funcionalidades especficas.

Algumas solues para monitorar e gerenciar Web Services esto disponveis atravs do prprio ambiente de execuo (servidores de aplicao) destes servios. Outras solues, em menor ou maior grau, esto acoplados at mesmo, misturando-se implementao de seus interesses funcionais. Podendo assim afetar negativamente o desenvolvimento de aplicaes, dificultando no apenas a sua implementao, mas tambm a sua subsequente manuteno e evoluo. 1.2. Objetivos Como principal objetivo do trabalho, foi implementar um plugin para realizar em tempo de execuo a interceptao, monitorao e gerenciamento de Web Services, desacoplada de ambiente de execuo, de forma no intrusiva codificao. Alm disso, como objetivos especficos podem-se destacar: Apresentar uma alternativa para realizar a interceptao de Web Services em nvel do protocolo SOAP. Apresentar uma validao do plugin com o intuito de avaliar o impacto no desempenho e tambm verificar a independncia do ambiente de execuo. 1.3. Metodologia Este estudo caracterizou-se atravs da multiplicidade de meios, como pesquisa em artigos e livros, tecnologias, componentes, ambiente de execuo, ferramentas e tcnicas para a construo de um produto de software. Ser realizada uma pesquisa quantitativa atravs de um experimento verificando o impacto no desempenho, quando da adoo do uso do plugin no processo de monitoramento e gerenciamento. Outra anlise ser realizada para verificar se o plugin funcional independente do ambiente de execuo.

2. Estado da Arte
2.1. Web Services Web Services surgiram como uma evoluo dos modelos da computao distribuda, como IIOP, RMI, DCOM e o Corba, tendo como principal diferencial a possibilidade de comunicao entre ambientes heterogneos. Segundo Kalin (2009), Web Services podem ser divididos em dois grupos, baseados em SOAP e de estilo REST. REST e SOAP so muito diferentes. SOAP um protocolo de mensagem, enquanto que REST um estilo de arquitetura de software para sistemas hipermdia distribudos. A literatura atual apresenta diversos modelos de Web Services, neste trabalho ser baseado no modelo do W3C, onde Booth et al.(2004) na documentao do modelo W3C realizam a definio de Web Services como: Sistema de software projetado para apoiar interaes entre computadores em uma rede; Interface descrita em um formato processvel por mquina (especificamente WSDL Web Service Description Language); Outros sistemas que interagem com um servio conforme sua descrio utilizando mensagens SOAP. Essas mensagens so dirigidas utilizando geralmente o protocolo HyperText Transfer Protocol (HTTP) com uma serializao XML.

Foram encontradas na literatura vrias outras definies para Web Services, entre elas Austin et al. (2002), definem Web Services como uma aplicao identificada por uma URI (Universal Resource Identifier), cujas interfaces e implementaes so capazes de serem definidas, descritas e localizadas, utilizando-se a linguagem XML e suas ferramentas. Um servio web deve ser capaz de interagir com outras aplicaes, atravs da troca de mensagens baseadas em XML, utilizando os protocolos de comunicao existentes na Internet. Outro conceito dado por Papazoglou e Georgakopoulus (2003), onde Web Services so considerados um tipo especial de servio que fica disponvel em um endereo de acesso na Web, atravs de um identificador universal (URI), onde o mecanismo de transporte utiliza padres abertos, baseados em XML. 2.1.1 Tecnologias de Web Services As tecnologias de Web Services so apresentadas atravs de trs reas bsicas, o protocolo de mensagens, descrio de servios e a descoberta de servios. O protocolo SOAP (Simple Object Access Protocol) o protocolo padro de mensagens proposto pela W3C para transmisso de dados dentro da arquitetura de Web Services. Castillo et al. (2011) definen que SOAP pode ser considerado como uma evoluo do protocolo XML-RPC, muito mais completo e maduro, que permite realizar chamadas de procedimento remoto para rotinas distribudas (servios) com base em uma interface XML. WSDL (Web Service Description Language) um documento em formato XML utilizado para descrever um Web Services, permitindo que Web Services publique a interface de suas funes em um formato das mensagens de requisies e de respostas. UDDI (Universal Description, Discovery and Integration) uma especificao que descreve um padro para publicar e descobrir Web Services em um repositrio com uma rgida estrutura de dados que descreve empresas e seus Web Services. Abaixo apresentada na Figura 1 a arquitetura de comunicao em Web Services envolvendo as principais tecnologias.

Figura 1. Arquitetura Comunicao Web Services [Sommerville 2007]

A Figura 1 ilustra como os Web Services so usados no processo de comunicao. Os provedores de Web Services projetam e implementam os Web Services realizando a especificao em linguagem WSDL. Tambm publicado informaes sobre esses Web Services em um registro de acesso geral usando o padro de publicao UDDI. Os solicitantes de Web Services buscam o registro UDDI para descobrir a

especificao desses Web Services e a localizao do provedor Web Services, ento o solicitante e provedor realizam a comunicao atravs do protocolo SOAP. 2.2. Mecanismos de Monitorao e Gerenciamento Para as organizaes possurem uma gesto de seus recursos necessrio ter ferramentas que informam o comportamento de seus aplicativos e hardware. Tosic (2005), descreve que com base no comportamento dos recursos, pode reagir a eventuais falhas no sistema e eventos crticos. Ocasionando uma maneira mais efetiva no papel da resoluo dos problemas e acomodar mudanas. Wang et al. (2009) conceituam monitoramento de software como a obteno das informaes relativas ao estado e comportamento de sistema de software em tempo de execuo, a fim de lidar com potenciais desvios de comportamento dos requisitos mais cedo possvel. A realizao de monitoramento utilizando intermedirios SOAP como forma de implementar interesses no-funcionais de servios no uma ideia nova, fazendo parte da especificao SOAP desde suas primeiras verses conforme Gudin e Hadley (2003) e tambm suportada pela maioria dos frameworks que suportam Web Services atuais, como o framework Axis. Clark et al. (2003) definem que monitores em Web Services so implementados como um intermedirio do servio web podendo interceptar as mensagens para algum servio e depois encaminhar para seu destino. Booth et al. (2004) mostram que um intermedirio de Web Services est localizado entre um cliente de servio e um provedor de servio. Mitra et al. (2006) apresentam que os intermedirios Web Services tambm podem manipular o contedo das mensagens SOAP, incluindo o cabealho para definir algum tipo de extenso SOAP. Diferentes mecanismos esto disponveis para realizar monitorao em Web Services. Geralmente esses mecanismos podem ser classificados em duas categorias, aqueles baseados em instrumentao ou com base em um interceptador conforme Li (2006) e Chen (2003). Conforme Wang et al. (2009 a instrumentao o mecanismo mais utilizado na monitorao, tambm amplamente usado nos processos de testes. Nesta abordagem, o cdigo de monitoramento incorporado dentro do alvo de cdigo. Tradicionalmente, o cdigo de instrumentao inserido manualmente pelos programadores. A caracterstica mais importante desta abordagem que o cdigo pode ser inserido livremente em qualquer local no monitorado do cdigo. Outra razo para usar a instrumentao que no precisa de apoio da plataforma. Atualmente alguns dos novos mecanismos de instrumentao, tais como Javaassit2, JMX e AspectJ, so desenvolvidos, com a finalidade de instrumentao de cdigo dinmico de acordo com informaes de configurao. Os interceptores so amplamente utilizados nas implementaes de Web Services. Com interceptadores possvel obter detalhes das mensagens dos servios e, portanto, pode ser usado naturalmente no processo de monitoramento. Interceptadores em CORBA, filtro do Framework Axis, Handler Framework para API JAX-WS,

Biblioteca para realizar manipulao de bytecode em Java

Interceptadores no EJB verso 3.1 e JVMTI3, so todos interceptores conhecidos que podem fazer algum processamento de mensagens. A caracterstica mais importante de interceptadores que so independentes do sistema de destino tanto no tempo de codificao e tempo de execuo. 2.2.1. JMX O JMX (Java Management Extensions) uma extenso aberta e universal da linguagem Java que possibilita a instrumentao de aplicaes para provedores de servios gerenciem ambientes heterogneos de uma maneira padro. Foi introduzida na JavaSE (Java 2 Standard Edition) verso 5.0, com esta API JMX possvel criar a aplicao totalmente gerencivel , monitorvel e configurvel. Podendo expor os componentes da sua aplicao, atributos e configuraes para os utilitrios de gerenciamento, esse processo chamado de instrumentao. Conforme Mahmoud (2004), a arquitetura JMX dividida em trs nveis: nvel de instrumentao, nvel de agente e nvel de gerenciamento atravs de servios distribudos, a arquitetura apresentada na Figura 2.

Figura 2. Arquitetura JMX [Mahmoud 2004].

Conforme Sullins (2003) e Perry (2002), o nvel de instrumentao est mais prximo dos recursos que sero monitorados, onde ocorre a coleta das informaes destes recursos e exposto suas funcionalidades. Esse processo realizado atravs dos MBeans que conforme Perry (2002), so objetos Java que implementam uma interface e segue o padro de projeto Listener e Emitter para informar o MBeanServer as mudanas de registro e as mudanas internas respectivamente. No nvel de agente fornecido os agentes de gerncia, que so recipientes que contm a base dos servios de gerncia, formada por duas partes; os agentes de servios JMX e o MBean Server, que conforme

3

Interface padro que permite que bibliotecas nativas (conhecidas como agentes) controlem uma mquina virtual em execuo obtendo informaes sobre o aplicativo Java em execuo. Em http://docs.oracle.com/javase/1.5.0/docs/guide/jvmti/jvmti.html

Perry (2002), funciona como um registro de MBeans e um broker para realizar a comunicao entre as aplicaes e os prprios agentes JMX. No ltimo nvel da arquitetura o gerenciamento atravs de servios distribudos disponibilizado os agentes JMX para ser acessado, podendo fazer essa distribuio de duas formas, atravs de adaptadores com visibilidade dos MBeans em diferentes protocolo como HTTP e SNMP, outra forma de acesso utilizando conectores para outras tecnologias, tais como Java RMI, Java JNI (Java Native Interface) ou atravs Web Services com a especificao JSR-262(Web Services Conector for Java Management Extensions Agents). 2.2.2 Framework Axis O Framework Axis (eXtensible Interaction System) da Apache Software Foundation, uma implementao baseada em Java do protocolo padro W3C SOAP, usado para descrever aplicao servidor e cliente de Web Services. Possui uma arquitetura flexvel e extensvel, facilitando a adio de novas funcionalidades e suporte para novas especificaes. Atualmente o framework se encontra na verso 2.0, a seguir apresentada a arquitetura do framework.

Figura 3. Arquitetura Framework AXIS [Gopalakrishnan 2005].

Como pode ser observado na Figura 3, a arquitetura do framework Axis disponibiliza vrias fases e manipuladores durante o processo de comunicao entre as requisio e resposta dos Web Services. Em Tosic et al. (2005), descrevem que o Framework Axis no contm mdulos para medio ou clculos de mtricas para QoS, no possuindo suporte embutido para monitoramento destas atividades. Porm em virtude da extensibilidade do framework possvel acrescentar estas funcionalidades. 2.2.3. JWS Handler Framework JAX-WS (Java API for XML-Web Services) oferece um Handler Framework que permite realizar o monitoramento e a manipulao de mensagens SOAP de entrada e sada. disponibilizado dois tipos de manipuladores o LogicalHandler e SOAPHandler. O LogicalHandler tem apenas acesso ao corpo da mensagem SOAP, enquanto que SOAPHandler tem acesso a mensagem inteira incluindo cabealho, corpo e anexos.

Quando existe uma cadeia de manipuladores para execuo de tipos diferentes a ordem de execuo segue uma sequncia de um arquivo de configurao e diferencia conforme o tipo do manipulador, essa ordem apresentada na Figura 4.

Figura 4. Ordem execuo Manipulador- JWS Handler Framework [Kalin 2009]

A monitorao e manipulao dos servios pode ser realizada programaticamente com a necessidade de insero de cdigos no prprio servio ou atravs de uma arquivo de metadados como handler-chain.xml e com a incluso da anotao @HandlerChain nos servios a serem monitorados conforme Kalin (2009). Realizar monitoramento usando JAX-WS programaticamente ou fazendo uso de arquivo de metadados com anotaes, juntamente ao cdigo dos servios no torna independente o processo de monitoramento com a lgica do servio, pois apresenta a necessidade da incluso da anotao @HandlerChain e tambm consequentemente a recompilao e reimplantao destes servios a cada modificao. 2.2.4 Ferramentas de Monitorao Conforme Kalin (2009), o monitoramento de Web Services pode ser realizado tambm atravs de algumas ferramentas, que capturam o trfego de baixo nvel de rede para mensagens SOAP no protocolo HTTP. Exemplos destes produtos comerciais e open source, so o tcpmon, SOAPscope, NetSniffer, Wireshark e WinDump. Abaixo ilustrado como realizado este processo.

Figura 5. Pacotes de Redes Capturados na Pilha de Protocolos [Sahai e Graupner 2005]

Na Figura 5 apresentado como as ferramentas podem capturar o trfego da rede em diferentes camadas e protocolos, a vantagem da utilizao desta abordagem a

no existncia do processo de instrumentao, porm conforme apresentado por Sahai e Graupner (2005), a abordagem pode se tornar inadequada devido ao alto grau de trfego destes protocolos juntamente com a necessidade de mecanismo eficientes de filtragem, alm disso, durante uma comunicao criptografada os dados capturados estaro em formato inadequado.

3. Trabalhos Relacionados
Alguns trabalhos como Menasce (2002) e Leymann (2002) apresentam a necessidade dos padres de Web Services no tratamento de atributos de qualidade, Leymann (2002) tambm apresenta a importncia do tratamento destes atributos no processo de gerncia, j em Wei et al. (2005), apresentam que o monitoramento a base para outras atividades de gesto. Nestes contextos vrias atividades de pesquisas esto sendo realizadas para tratar destes interesses, em Garcia (2007), apresenta as seguintes necessidades para realizar o tratamento dos atributos de qualidade para Web Services: Especificao de caractersticas no-funcionais de Web Services; Publicao de atributos de qualidade de servio e descoberta de servios considerando parmetros de qualidade; Verificao de caractersticas no-funcionais com o objetivo de garantir nveis de qualidade.

Com o objetivo de realizar a especificao de caractersticas no-funcionais dos Web Services, so apresentadas as abordagens, Web Service Offerings Language (WSOL) de Tosic (2002), SLAs (Service Level Agreements) do trabalho de Keller e Ludwig (2003), a abordagem GlueQoS de Wohlstadter et al. (2004), (WSEL) Web Services Endpoint Language de Sivashanmugam (2005). Para realizar a publicao de atributos de qualidade de Web Services e descoberta de servios so apresentados o sistema UX (UDDI eXtension) de Chen (2003), UDDIe, uma extenso para o padro UDDI apresentada em ShaikhAli (2002), Maximilien e Singh (2004) apresentam WSAF (Web Services Agent Framework) e um modelo proposto por Kokash (2005). A necessidade do processo da verificao das caractersticas no-funcionais, que a principal caracterstica contemplada atravs do processo de monitoramento deste trabalho, apresentada de forma mais detalhada atravs de alguns trabalhos relacionados a seguir. 3.1. WSOI (Web Service Offerings Infrastructure) Em Wei et al. (2005), apresentam os detalhes tcnicos da WSOI (Web Service Offerings Infrastructure), que disponibiliza o monitoramento de Web Services das classes de Web Services descritas pela linguagem WSOL de Tosic (2002). Nesta proposta realizado uma extenso do Framework Axis atravs da criao das classes WSOIHandler e WSOIChain que so estendidas das classes Handler e Chain do framework. Com adoo desta extenso foi reduzido o tempo de desenvolvimento da soluo atravs do suporte a flexibilidade e extensibilidade deste framework. Em Silva (2008) apresenta uma abordagem baseada em instrumentao com uso do paradigma orientado a aspectos para monitoramento de contratos eletrnicos, chamada de AspectMonitor. definida uma arquitetura para implementao da

abordagem com as atividades e responsabilidades das organizaes envolvidas e um conjunto de regras de mapeamento de contratos eletrnicos, para aspectos de monitoramento. O tratamento do monitoramento realizado por aspectos monitores que atuam no processo de negcio e envia dados de monitoramento para Web Serivces monitores. Esta abordagem tem como foco principal o atendimento ao monitoramento de contratos eletrnicos com necessidade de um sistema que apoie a execuo de processos de negcios em AO4BPEL (Aspect Oriented extension to BPEL4WS) de Charfi, (2004), a qual no existe ainda apoio computacional para publicar o processo de negcio e os aspectos de monitoramento. Em outras propostas de linguagens de especificao de contratos eletrnicos como WSLA de Dan et al. (2004) e WS-Agreement de Andrieux et al. (2004), conforme Silva, (2008) define como mecanismos de monitoramento que apresentam algumas desvantagens como o excesso de instrumentao necessria no processo de negcio, excesso de novas funes que devem ser implementadas no cliente e servidor e falta de ferramentas disponveis para implementao efetiva do estabelecimento e monitoramento propostos. Com estas caractersticas a adoo da abordagem poder apresentar algumas dificuldades em relao a desempenho, manuteno e a necessidade de implementao de novo ambiente de monitorao. Wang et al.(2009) apresentam uma proposta de monitorao de requisitos de Web Services em tempo de execuo, seu trabalho direcionado para requisitos funcionais, realizando controle de algumas restries de valores, como tamanho mximo e mnimo de campos, tipo de dados e intervalos de valores. Este controle realizado baseado na linguagem de descrio, chamada WSCDL (Web Service Constraint Description Language) e o prottipo usado para realizar a interceptao de Web Services baseado no framework Axis 2.0. Han et al. (2006) apresentam um framework e tcnicas associadas para oferecer suporte a validao automtica do comportamento dos Web Services em tempo de execuo. Neste framework o MM (Monitor de Mensagens) o componente que foi desenvolvido para conectar-se ao SMS (Monitor de Servio SOAP) do Axis, para recuperar as mensagens e realizar a validao. Esta abordagem tem como principal objetivo dar suporte a validao dos Web Services atravs do processo de monitorao, onde este monitoramento realizado com auxlio do SMS do Axis 1.2, ficando assim vinculado ao uso restrito deste framework. WSAL (Web Service Aspect Language), uma proposta apresentada por Silva (2006), onde utiliza conceitos fundamentais da programao orientada a aspectos, onde interesses no-funcionais so modularizados em aspectos e implementados na forma de servios, nesta proposta o combinador intercepta o trfego SOAP em nvel de rede e no especificamente no ambiente de execuo dos Web Services, para realizar o processo de interceptao do trfego em nvel de rede faz uso da tecnologia de intermedirios web, adotando a proposta WBI4 de Barrett e Maglio (1998), que consiste em um servidor proxy programvel construdo na plataforma Java. Em Verheecke e Cibran (2003), apresentam uma camada de gerenciamento de Web Serivices chamada Web Services Management Layer (WSML), a qual colocada entre a provedor e consumidor de Web Services. Exigindo consumidores de Web Services requisitem os servios atravs de uma interface abstrata, aps a camada WSML

4

http://www.almaden.ibm.com/cs/wbi

realiza a seleo dinmica para os servios reais a serem utilizados na integrao dos servios em uma aplicao. A proposta utiliza a linguagem JAsCo apresentada em Suve et al. (2003), para realizar a modularizao dos aspectos para seleo dos servios. Alguns Servidores de Aplicaes possuem recursos para monitorar Web Services, como JbossAS que pertencente a Red Hat e o WebLogic da Oracle. No Servidor de Aplicao JbossAS foi desenvolvido como parte de sua soluo o JBossWS, um framework para Web Services que foi recentemente descontinuado a partir da verso 4.0.2 (Jboss, 2012), sendo a monitorao de Web Services atravs do JbosAS est disponvel com atravs do JBoss ON (JBoss Operations Network) que prov uma soluo centralizada para monitorao e gerenciamento da plataforma. A Oracle disponibiliza atravs de servidor de aplicao WebLogic, o acesso ao monitoramento dos Web Services baseados na API JAX-WS. O acesso realizado via browser no console de administrao, onde so disponibilizados alguns exemplos de monitoramento, como contagens de invocao dos servios, total de erros encontrados no acesso, tempo mdio de execuo dos servios e listagem de portas monitoradas.

4. Plugin WSMM
A partir dessa seo, este artigo apresenta a especificao do plugin WSMM, que foi desenvolvido para realizar o monitoramento e gerenciamento de Web Services baseados na arquitetura SOAP. As sees seguintes apresentam o Padro Arquitetural adotado, o Processo de Interceptao dos Envelopes SOAP, Processo de Implantao e suas Funcionalidades. O plugin WSMM disponibilizado atravs do site http://code.google.com/p/wsmm, uma ferramenta de uso livre (gratuito), a sua forma de licenciamento a BSD 2 License, onde a redistribuio e o uso nas formas binrias e cdigo fonte, com ou sem modificaes so permitidos com algumas restries. Para atingir o objetivo de realizar a interceptao e monitoramento de Web Services de forma independente, como deciso tecnolgica partiu do princpio de selecionar somente as prprias APIs presentes na plataforma Java. Essa deciso vem de encontro com a prpria concepo heterognea e fracamente acoplada que caracteriza os Web Services baseados em SOAP. Como o envelope SOAP o meio em comum de comunicao de qualquer tecnologia envolvida no processo, representa ser a opo mais vivel para realizao do processo de monitoramento com base neste protocolo. Nas sees seguintes sero apresentas como foi desenvolvida a soluo para realizar o processo de interceptao no nvel de envelopes SOAP. Em seguida, ser apresentado como foram disponibilizados alguns atributos de qualidade dos Web Services, os quais so fornecidos sem a necessidade de descrever ou configurar estas operaes, pois o plugin realiza o processo de descobrimento destas operaes durante o processo de implantao. Abaixo apresentada uma viso geral da arquitetura do ambiente de execuo do plugin WSMM.

Figura 6. Viso Geral Arquitetura Ambiente de Execuo

Na Figura 6 apresentada a arquitetura em um ambiente em execuo, com o plugin WSMM em funcionamento. O processo de solicitao e resposta dos Web Services realizado normalmente. No continer de Web Services esta implantado duas aplicaes, uma sem fazer uso do plugin, e outra aplicao com o plugin implantado, neste caso o plugin realiza a interceptao das requisies e respostas do envelopes SOAP atravs da extenso da biblioteca JAX-WS, e juntamente com o uso da arquitetura JMX disponibilizados uma interface atravs do browser para realizar o monitoramento e gerenciamento em tempo real. 4.1. Padro Arquitetural Baseado na necessidade do desenvolvimento de uma aplicao capaz de se conectar aos Web Services de uma forma dinmica, ento o plugin WSMM foi projetado com um padro arquitetural que faz a diviso de nveis de responsabilidade em forma de camada, conforme apresentado na Figura 7 a seguir.

Figura 7. Arquitetura WSMM

Abaixo apresentado um detalhamento da arquitetura com as principais funes de cada camada: WSMM Camada de Gerenciamento: Esta camada responsvel para prover a interface aos usurios que realizam a configurao, monitoramento e gerenciamento dos Web Services. Coleta as informaes da camada inferior e apresentam de forma compreensiva. WSMM Camada de Agentes: a camada responsvel por controlar os recursos diretamente e torn-los acessveis pelos agentes com o servidor MBean, tambm responsvel para realizar a mensurao dos dados coletas e expor para a camada superior. WSMM Camada de Interceptao: Nesta camada realizado e interceptao dos envelopes SOAP de requisio e respostas atravs do processo de extenso da arquitetura JAX-WS. E tambm onde realizado o processo de instrumentao atravs da arquitetura JMX. 4.1.1 Padres de Projeto No desenvolvimento do plugin WSMM, foi necessrio fazer uso de alguns padres de projetos, entre eles o padro Factory Method e o padro Proxy. O padro Proxy que conforme Gamma et al. (2000) tem a inteno de fornecer um objeto de referncia representante ou procurador de outro objeto, para poder controlar o acesso ao mesmo. No plugin WSMM este padro garante que o acesso as requisies e respostas aos Tubes sejam realizados atravs de outro objeto estendido, o CustomTube, na Figura 8 a seguir apresentado a extenso utilizada neste processo.

Figura 8. Representao do Objeto de Referncia

Outro padro de projeto o Factory Method que conforme Freeman (2007) define uma interface para criar um objeto, mas permite s classes decidir qual classe instanciar. O Factory Method permite a uma classe deferir a instanciao para subclasses, no desenvolvimento do plugin com a classe TubelineAssemblerFactory e o Factory Method doCreate, foi realizado o processo de carregamento da classe personalizada CustomTubeAssembler, isso foi possvel atravs do padro Service Locator5 da plataforma Java, fazendo uso da classe ServiceLoader presente na API JDK verso 1.6. 4.2. Processo de Interceptao de Envelopes SOAP O framework JAX-WS (Java API for XML-Web Services) verso 2.0 faz parte do Metro Web Services Stack, projeto que visa promover interoperabilidade entre plataforma Java e WCF (Windows Communication Foundation). Foi includo no Java SE a partir da verso 6 com Update 4 a verso atualizado para a verso JAX-WS 2.1, preservando e estendendo significativamente as capacitadas das verses anteriores, como o fornecimento ao suporte para Tube. Conforme documentao Java, Tube6 uma unidade base de processamento que representa em nvel de protocolo SOAP o cdigo para manipulao do envelope. Para realizar processamento das mensagens representadas como pacotes, esses pacotes so considerados apenas containers para as mensagens, que mantm as propriedades adicionais dos metadados relacionados. Os Tubes podem ser considerados como filtros que trabalham em nvel de pacote e pode ser executado de forma assncrona, o que significa que os pacotes de solicitao e resposta podem ser processados por diferentes threads. Apesar da implementao de Tubes estar apenas disponvel a partir da verso 2.1 do JAX-WS e possuir poucos trabalhos e referncias sobre o assunto, porm com um estudo detalhado sobre esta API e atravs da proposta de Kotamraju (2007), a implementao da extenso com Tubes apresentou-se como tima opo, pois se apresenta como suas principais vantagens a possibilidade de realizar a interceptao das requisies e respostas de forma totalmente transparente e o processamento de requisies e respostas dissociado, isso significa que eles poderiam ser executados por diferentes threads. Nas verses da API JAX-WS 2.1 e na verso atual 2.2, disponibilizo a classe TubelineAssemblerFactory que responsvel por realizar a verificao de suporte para

5 6

http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceLocator.html http://www.docjar.com/docs/api/com/sun/xml/ws/api/pipe/Tube.html

montadores de Tubeline. Os montadores de Tubeline so representados atravs da classe TubelineAssembler, a Figura 9 apresenta parte da implementao desta classe.

Figura 9. Classe TubelineAssemblerFactory da API JAX-WS

Durante a execuo desta classe, o primeiro objeto montador vlido que for verificado ser retornada para uso na criao do Tubeline. Depois de verificar como realizado este processo de carregamento nesta API, este trabalho optou por criar uma extenso da classe TubelineAssemblerFactory, onde nesta classe sobrescrevemos o mtodo abstrato doCreate, retornando um montador de Tubeline personalizado, conforme apresentado na Figura 10.

Figura 10. Classe Estendida com mtodo sobrescrito

Realizando o carregamento desta classe com auxlio do uso do padro Service Locator da plataforma Java, consecutivamente podemos retornar atravs do mtodo sobrescrito um montador de Tubes personalizado. A classe CustomTubeAssembler ser responsvel para retornar a classe CustomTube. A partir do momento do processo do carregamento da classe CustomTube que contm um objeto tube personalizado, podemos realizar a interceptao dos pacotes de requisio com o mtodo sobrescrito processRequest, e atravs do mtodo tambm sobrescrito processResponse realizar a interceptao dos pacotes de respostas 4.3. Implantao O plugin WSMM foi projetado para fazer parte da biblioteca da aplicao provedora de Web Services, para realizar a implantao do plugin, apenas necessrio adicionar o plugin junto pasta das bibliotecas da aplicao, identificada geralmente por uma pasta denominada lib. Como precisamos tambm estender a funcionalidades dos Tubes com auxlio do padro Service Locator da plataforma Java, ser necessrio a incluso da pasta META-INF/services no classpath da aplicao. Nesta pasta contm o arquivo com o caminho da classe estendida do Tube personalizado, o qual ser carregada durante o processo de inicializao da aplicao juntamente com os seus servios. A partir do momento da implantao do plugin, por padro de inicializao, todos os servios j estaro disponveis para o monitoramento e gerenciamento. Sendo necessrio apenas acessar atravs do browser o endereo de domnio ou do IP da aplicao provedora, e na porta pr-configurada nmero 1111, assim, http://domniox:1111 ou http://NmeroIPServidorAplicao:1111.

4.4. Funcionalidades O plugin WSMM quando implantado em projetos de Web Services baseados na API JAX-WS do protocolo SOAP, realiza atravs do processo de extenso a auto descoberta dos servios e as operaes disponibilizadas nestes servios. Durante o processo de implantao realizado o registro dos MBeans e inicializado o adaptador HTML para acesso aos servios monitorados, atravs do Browser, podendo ser acessado de qualquer local. Estando disponveis para o gerenciamento e a monitorao alguns requisitos nofuncionais dos servios como: Nmero de requisio de cada operao: o plugin realiza a contagem de todas as solicitaes de servios agrupados pelo tipo das operaes disponveis. Nmero de falhas de cada operao: o plugin captura e apresenta a contagem das requisies que retornaram com algum tipo de falha. Tempo mximo e tempo mnimo de cada operao de servio: o plugin apresenta o tempo mximo e mnimo para cada servio acessado. Porcentagem de falhas de cada operao de servios: para visualizar se os servios disponibilizados esto sendo consumidos com um ndice mnimo de falhas. Possibilidade de Habilita/Desabilitar o gerenciamento destes servios em tempo de execuo: esta opo disponibiliza que o processo de monitoramento e gerenciamento possa ser habilitado ou desabilitado a qualquer momento, mesmo em tempo de execuo. A seguir, na Figura 11, apresentada a interface gerada pelo adaptador JMX, onde realizado o acompanhamento das principais funcionalidades disponibilizadas.

Figura 11. Interface HTML-JMX para Monitorar Web Services

A Figura 11 apresenta a interface contendo uma lista atributos de Mbeans que representa alguns requisitos no-funcionais do servio monitorado, nesta interface poder ser observado em tempo de execuo o comportamento para cada servio provido. 5. Validao
Para realizarmos uma avaliao preliminar do plugin WSMM, elaboramos dois cenrios da aplicao da abordagem. No Primeiro Cenrio foi feita uma anlise do impacto de desempenho em relao ao fluxo normal de execuo dos Web Services, no segundo cenrio foi realizado um teste de compatibilidade entre alguns dos principais servidores de aplicao para Web Services. 5.1. Cenrio 1 Impacto no desempenho Para avaliarmos o custo de processamento imposto pela interceptao e registros dos pacotes SOAP durante o processo de monitoramento, foi utilizado o paradigma GQM (Goal/Question/Metric) proposto por Basili (1992). A Tabela 1 apresenta um sumrio com o plano GQM.
Tabela 1. Sumrio Plano GQM

Objeto de Estudo Propsito Com Relao Ponto de Vista: Questo Q1 Mtrica Questo M1 M2 Q2 M3 Mtrica M4

Plugin WSMM Verificar Impacto Tempo Consumidores de Web Services Qual o tempo de processamento de Web Services em um ambiente sem monitorao? Tempo total de processamento de 5000 requisies. Tempo mdio de processamento de 5 amostras de 5000 requisies Qual o tempo de processamento de Web Services em um ambiente com monitoramento? Tempo total de processamento de 5000 requisies com monitoramento. Tempo mdio de processamento de 5 amostras de 5000 requisies com monitoramento.

Aps a definio do plano GQM, foi realizado a seleo dos procedimentos e ferramentas apropriadas para a coleta de dados, entre as ferramentas foi usado Jmeter verso 2.5.1, para aferir o tempo de resposta, rodando em um microcomputador de 3.0 GHz de 2 ncleos, 2GB de memria RAM, sistema operacional Windows verso 7, Mquina virtual Java Sun Java Runtime Environment 1.5.0_06 e o Servidor de aplicao Apache Tomcat 6.1.8. Para execuo desta anlise foram realizados uma quantidade considervel de testes, seguindo os objetivos apresentados no plano GQM, tanto para o ambiente sem monitorao, quanto para o caso com monitorao com o plugin WSMM. Aps foram capturados o tempo transcorrido de cada teste realizado no grupo, obtido uma mdia para cada grupo, aps realizado a mdia entre os grupos para obter o resultado final em cada ambiente. Para efeito de calibragem dos dados, desconsideramos a primeira

invocao por apresentaram um tempo de resposta considerado elevado em relao s outras invocaes, em ambos os casos. O processo de realizao do monitoramento com a interceptao dos envelopes SOAP, como j era previsto, provocou um perda de desempenho conforme apresentado na Figura 12. A anlise dos resultados demonstra que a perda de desempenho obtida com a monitorao dos Web Services apresentou um valor mdio de 3,26% em relao ao cenrio sem monitorao.

Figura 12 Impacto do Desempenho

Apesar da perda no ser considerada insignificantes, os benefcios que esta abordagem traz para o gerenciamento dos Web Services, em nossa anlise, podem compensar o impacto apresentado. Outra anlise sobre os resultados mostra a utilidade do plugin WSMM para aferir o tempo de processamento das solicitaes de servio somente do lado provedor. O uso de algumas ferramentas disponveis como JMeter7 e soapUI8 realiza esta anlise considerando o tempo de latncia, que acontece a partir do incio da requisio do servio at o seu retorno. 5.2 Cenrio 2 Teste de Independncia de ambiente Neste cenrio foi verificado qual o comportamento do plugin WSMM em relao ao seu funcionamento e compatibilidade em alguns Servidores de Aplicao entre eles, Tomcat, Jboss, WebLogic e Glassfish. Para realizao desta anlise foi implantado provedores de Web Services em cada servidor de aplicao aps foi instalado o plugin WSMM. Durante da execuo foram realizadas 50.000 requisies de servios para cada servidor de aplicao. Os resultados obtidos so apresentados na tabela abaixo.
Tabela 2. Resultados

Servidor de Aplicao Apache Tomcat 6.1.8

% Monitoramento 100%

Observaes -


7 8

http://jmeter.apache.org/ http://www.soapui.org/

Servidor de Aplicao Jboss Web Server 1.0.2 Weblogic 12c

% Monitoramento 100%

Observaes -

0% Por motivos de segurana o continer no permitiu disponibilizar portas de acesso do adaptador HTML do JMX. 100% Necessrio incluir linha ao arquivo metro.xml9, pois o prprio continer j possui a implementao JAXWS.

Glassfish 3.1.1

Como pde ser observado na tabela acima o plugin WSMM, apresentou-se compatvel com a maioria dos servidores de aplicao, podendo ser implantado independente do ambiente de execuo dos Web Services, pois seu nico requisito para funcionamento a prpria plataforma Java.

6. Consideraes Finais
Este trabalho apresentou o plugin WSMM que realiza a monitorao e gerenciamento de Web Services que so implementados utilizando o protocolo SOAP padro da W3C. Para atingir nosso objetivo de realizar este processo de forma desacoplada de ambiente de execuo e de forma no intrusiva codificao, optou-se em fazer uso da instrumentao dinmica usando API JMX juntamente com uma proposta de extenso da API JAXWS. Outras vantagens observadas durante o desenvolvimento do trabalho a possibilidade de uso em Web Services j implantados uma vez que o plugin realiza a descoberta dos servios, alm do fcil processo de implantao, visto que depende somente da plataforma Java. O impacto no desempenho apresentado justifica-se em virtude dos benefcios que esta abordagem apresenta para o gerenciamento de Web Services. 6.1. Trabalhos Futuros Com o processo de Interceptao de envelopes SOAP realizado pelo plugin WSMM, o uso de um mecanismo de caching, o qual muito utilizado para melhorar o desempenho de aplicaes, parece apresentar-se como vlido, para operaes cuja resposta se repita quando invocada com um contexto similar ou equivalente conforme Terry et al.(2003). Tambm como proposta faz-se necessrio uma pesquisa no comportamento do plugin realizando o monitoramento e gerenciamento de forma totalmente paralela execuo dos servios. Neste trabalho foi apresentado o plugin realizando monitoramento e gerenciamento em funcionamento no provedor de servio, tambm sendo necessria a realizao de testes para verificar seu comportamento quando implantado em aplicaes consumidoras dos Web Services, bem como um estudo de implementao do plugin para WebServices baseados em Rest. A tecnologia JMX proporciona fazer uso de notificaes, apresentando-se tambm como uma opo para acrescentar em futuras atualizaes do plugin.

9

http://marek.potociar.net/2009/10/19/custom-metro-tube-interceptor/

Propor funcionalidades para localizar especificaes no-funcionais dos Web Services das propostas de modelos de descrio de servios, como Extenses UDDI, Linguagens WSOL ou GlueQoS.

Agradecimentos
A Deus pela capacidade de aprender, a toda minha famlia onde sempre busquei fora e coragem, ao meu orientador Vinicius Cardoso Garcia que no mediu esforos no apoio a este trabalho, a todos os professores, aos coordenadores Simone Santos e Felipe Furtado, a equipe do Cesar.edu e aos integrantes das fbricas de software FarmFactory e Yes.

Referncias
Andrieux, A.; Czajkowski, K.; Dan, A.; Keahey, K.; Ludwig, H.; Pruyne, J.; Rofrano, J.; Tuecke, S. e Xu, M. Web Service Agreement Specification (WS-Agreement). Global Grid Forum, Maio, 2004. Basili, V. R. Software modeling and measurement: the Goal/Question/Metric paradigm. University of Maryland CSTR2956, 1992. University of Maryland at College Park. Disponvel em: http://129.2.17.93/drum/handle/1903/7538. Barrett, R. Maglio, P., 1998, Intermediaries: New Places for Producing and Manipulating Web Content. Computer Networks and ISDN Systems, Abril 1998. Boniati, Bruno B.; Padoin, Edson Luiz. Web services como middlewares para interoperabilidade em sistemas. Revista do CCEI ,2003. Booth, David. Hugo Haas e Francis McCabe, Eric Newcomer, Michael Champion, Chris Ferris, e David Orchard. Web Services Architecture. W3C. Disponvel em: http://www.w3.org/TR/2004/NOTE-ws-arch20040211/, Acessado em 11/2011. Castillo, Pedro A.; Bernier, Jos Luis; Arenas, Maribel Garca; Merelo, Juan Julin; Garca-Snchez, Pablo. SOAP vs REST: Comparing a master-slave GA implementation. 2011. First International Workshop of Distributed Evolutionary computation in Informal Environments. Cerami, Ethan. Web Services Essentials. O'Reilly. 2002. Charfi, A. e Mezini, M. Aspect-oriented Web service composition with AO4BPEL. In Proceedings of the European Conference on Web Services (ECOWS), 2004. Chen F. and Rosu G., Towards Monitoring-Oriented Programming: A Paradigm Combining Specification and Implementation, Electronic Notes in Theoretical Computer Science, 2003. Chinnici R., J. Moreau, A. Ryman, and S. Weerawarana, Web services description language (wsdl) version 2.0 part 1: Core language w3c recommendation 26 june 2007, World Wide Web Consortium (W3C), Tech. Rep., 2007. Disponvel em: http://www.w3.org/TR/wsdl20/ Clark, Mike, Peter Fletcher, Jeffrey J. Hanson, Romin Irani, Mark Waterhouse, e Jorgen Thelin. Web Services Business Strategies and Architectures. A-Press, 2003.

Casati, Fabio ; Discenza, Angela. Modeling and managing interactions among business processes. J. of Systems Integration, 2001. Dayal, Umeshwar, Meichun, Hsu and Rivka, Ladin. Business process coordination: State of the art, trends, and open issues. VLDB 01: Proceedings of the 27th Intl. Conference on Very Large Data Bases , So Francisco, 2001. Eric, Wohlstadter, Stefan Tai, Thomas Mikalsen, Isabelle Rouvellou, e Premkumar Devanbu. GlueQoS: Middleware to sweeten quality-of-service policy interactions. IEEE Computer Society.Washington, EUA, 2004 Freeman, Eric; Freeman Elisabeth. Use a Cabea (Head First) Padres de Projeto. Rio de Janeiro: Alta Books, 2007. Gamma, Erich et al. Padres de Projeto: solues reutilizveis de software orientado a objetos. Porto Alegre: Bookman, 2000. Garcia, Diego Z.G. Incorporao de Qualidade de Servio no Modelo de Servios Web. 2007. 207 f. Dissertao(Cincias da Computao) - Universidade Estadual de Campinas. Unicamp, So Paulo. Gartner 2004, Whit Andres, Abrams C. Web Services Drive Market Convergence Gopalakrishnan U, Shreevidya Rao.(2005) Develop Web services with Axis2, Part 1: Deploy and consume simple Web services using the Axis2 runtime. Disponvel em: https://www.ibm.com/developerworks/webservices/library/ws-webaxis1. Acessado em: Fevereiro, 2012. Han , Jun ;Zheng Li, Yan Jin. A Runtime Monitoring and Validation Framework for Web Service Interactions. Proceedings of the 2006 Australian Software Engineering Conference,2006. Kaarthik Sivashanmugam, John A. Miller, Amit Sheth, e Kunal Verma. Framework for semantic Web process composition. International Journal of Electronic Commerce, 2005. Kalin, Martin. Java web services:up and running. 1sd ed. Sebastopol, California O'Reilly Media, 2009 Keller, Alexander e Ludwig, Heiko. The WSLA framework: Specifying and monitoring service level agreements for Web services. Journal of Network and Systems Management, 2003. Kokash, Natallia. Web service discovery with implicit QoS filtering. Em Andreas Hanemann, editor, Proceedings of the IBM PhD Student Symposium at the 3rd International Conference on Service Oriented Computing (ICSOC 2005), v.169 de IBM Technical Reports, 2005. Kotamraju, Jitendra. (2007). Tubes in JAX-WS 2.1. Disponvel em http://javakenaidev.cognisync.net/blog/2007/02/02/tubes-jax-ws-21. Acessado em: setembro, 2011. Mahmoud, Qusay H.(2004). Getting Started with Java Management Extensions (JMX): Developing Management and Monitoring Solutions. Disponvel em http://java.sun.com/developer/technicalArticles/J2SE/jmx.html. Acessado em: janeiro, 2012.

Maximilien E. Michael e Singh M. P. A framework and ontology for dynamic Web services selection. IEEE Internet Comp., 8(5):8493, 2004. Menasce, Daniel A. QoS issues in Web services. IEEE Internet Computing, V6,6, 2002. Michael, E. Maximilien e M. P. Singh. A framework and ontology for dynamic Web services selection. IEEE Internet Comp. 2004. Mitra, Nilo. SOAP Part Primer Version 1.2 Specification. W3C, 24 Junho 2003. http://www.w3.org/TR/2003/REC-soap12-part0-20030624, acessado em 03/2012. Leymann, Frank, Dieter Roller, e Marc-Thomas Schmidt. Web services and business process management. IBM Systems Journal, New Developments in Web Services and Electronic Commerce , 2002. Li Z. and Jin Y., J. Han, A Runtime Monitoring and Validation Framework for Web Service Interactions, Proc. 17th Australian Software Eng. Conf., 2006. Perry, J. Steven. Java Management Extensions. Sebastopol: O'Reilly Media, 1a. Ed. 2002 Sahai Akhil. and Graupner Sven. Web Services in the Enterprise Concepts, Standards, Solutions, and Management. Springer, 2005 Shaikh, Ali, Omer F. Rana, Rashid Al-Ali, e David W. Walker. UDDIe: An extended registry for Web services. Em Saint-W IEEE Computer Society., Washington, EUA, 2003. Shuping, Ran. A framework for discovering Web services with desired quality of services attributes. Em ICWS 03: Proceedings of the International Conference on Web Services, 2003. Silva, Mario F. Uma abordagem para monitoramento de contratos eletrnicos baseada em aspectos. 2008. 105 f. Dissertao(Cincias da Computao) Universidade Estadual de Maring. UEM, Maring. Silva, Clayton Ferreira. Uma Linguagem de Especificao de Aspectos para o Desenvolvimento Orientado a Servios. 2006. 124 f. Dissertao(Cincias da Computao) Universidade de Fortaleza. Sommerville, I. Engenharia de Software. 8 ed. So Paulo: Pearson Addison Wesley, 2007. Sullins, Ben G.; Whipple, Mark B. JMX in Action. Greenwich: Manning, 2003. Suve, D., Vanderperren, W., Jonckers, V., 2003, JAsCo: An Aspect-Oriented Approach Tailored for Component Based Software Development. In Proc. of the 2nd International Conference on Aspect Oriented Software Development (AOSD03), ACM Press, Boston, EUA. Szyperski, C. Component Software: Beyond Object-Oriented Programming. Boston, MA, USA: Addison-Wesley Longman, 2002. Terry, D. B., Ramasubramanian, Caching XML Web Services for Mobility. ACM Queue, 2003.

Tosic, Vladimir, Aad van Moorsel and Raymond, Wong. Quality of Service (QoS) middleware for Web services: Achieved results and challenges for the future (panel discussion). IEEE Computer Society, Washington, EUA, 2005. Tosic, Vladimir, Kruti Patel and Bernard, Pagurek. WSOL: Web Service Offerings Language. Em Christoph Bussler, Richard Hull, Sheila A. McIlraith, Maria E. Orlowska, Barbara Pernici, e Jian Yang, editores, WES 02: Proceedings of the CAiSE 2002 International Workshop on Web Services, Berlin, 2002. Verheecke, B., Cibrn, M. A., 2003, AOP for Dynamic Configuration and Management of Web Services. In Proc. of the International Conference on Web Services Europe 2003 (ICWS Europe03), Erfurt, Alemanha Wang, Qianxiang; Jin Shao; Fang Deng; Yonggang Liu; Min Li; Jun Han; Hong Mei, "An Online Monitoring Approach for Web Service Requirements," IEEE Transactions on Services Computing, vol. 2, no. 4, pp. 338-351, Oct.-Dec. 2009. Wei, Ma, Tosic, Vladimir, Esfandiari, Babak and Pagurek, Bernard. Extending Apache Axis for monitoring of Web Service Offerings. In Proceedings of the IEEE EEE05 international workshop on Business services networks, IEEE Press, 2005. Wil M. P. van der Aalst. Process-oriented architectures for electronic commerce and interorganizational workflow. Information Systems, 1999. Zhou Chen, Chia Liang-Tien, Bilhanan Silverajan, e Lee Bu-Sung. UX: An architecture providing QoS-aware and federated support for UDDI. Em ICWS 03: Proceedings of the International Conference on Web Services, Press, 2003.