UNIVERSIDADE FEDERAL DA BAHIA
INSTITUTO DE MATEMÁTICA
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Marco Antonio Santos Almeida Filho
Portabilidade de Serviços Web Semânticos na
Computação na Nuvem através do OWL-S
Composer
Salvador
2013.1
Marco Antonio Santos Almeida Filho
Portabilidade de Serviços Web Semânticos
na Computação na Nuvem através do
OWL-S Composer
Monografia apresentada ao Curso de
graduação em Ciência da Computação,
Departamento de Ciência da Computação,
Instituto de Matemática, Universidade Federal da Bahia, como requisito parcial para
obtenção do grau de Bacharel em Ciência da
Computação.
Orientadora: Daniela Barreiro Claro
Salvador
2013.1
RESUMO
A necessidade de recursos sob medida, baixo custo e maior disponibilidade fez com que a
indústria e a academia começassem a migrar as suas aplicações e documentos para a nuvem.
De forma análoga, o uso de Serviços Web para realizar os mais diversos tipos de tarefa continua em crescimento, mais especificamente os Serviços Web Semânticos, que além de reduzir a
ambiguidade entre serviços, também permitem a composição entre serviços de modo semântico
abrindo a possibilidade para um maior conjunto de tarefas e facilitando que um cliente alcance
um objetivo final com maior praticidade. É comum que clientes utilizem mais de um provedor
de nuvem ao mesmo tempo para atender aos seus requisitos, contudo, a falta de padrões existentes para publicação de serviços entre os diversos provedores de nuvem é um dos fatores que
dificultam o uso da nuvem para publicação de Serviços Web Semânticos. Publicar um mesmo
serviço em nuvens diferentes implica em interferência do usuário para a publicação em cada
uma das nuvens. O OWL-S Composer é um plug-in para a plataforma Eclipse com o objetivo de
modelar composições de Serviços Web Semânticos de forma visual. Neste contexto, o presente
trabalho visa implementar sobre o OWL-S Composer uma interface que intermedia a relação
cliente e nuvem para tornar a etapa de publicação de Serviços Web Semânticos em nuvens um
processo mais simples e intuitivo.
Palavras-chave: Serviços Web Semânticos, Computação em Nuvem, Interoperabilidade
entre nuvens, Serviço em Nuvem Unificado, OWL-S Composer, Eclipse
ABSTRACT
Industry and academy started to move their applications and documents to the clouds based
on their needs of a on-demand, low cost and ubiquitous environment. Analogously, the use
of Web Services to perform various tasks continues to grow, specifically the Semantic Web
Services, that in addition to reducing the ambiguity it also allows the composition between
services which opens un the possibility to work with a larger set of tasks and make it easier
for a client to reach their final goal with ease. It is common that clients use more than one
cloud provider at a time in order to attend their requirements however the lack of patterns to
publish services between the cloud providers hampers the use of Web Services on the cloud.
Publishing a service on any cloud implies on the user interference for each cloud being used to
publish. The OWL-S Composer is a plug-in for the Eclipse platform and it is used to visually
model Semantic Web Services compositions. This work aims to implement over the OWL-S
Composer a interface that mediates between client and cloud to make the publishing of Semantic
Web Services on the cloud a more simple and intuitive process.
Keywords: Semantic Web Services, Cloud Computing, Interoperability between clouds,
Unified Cloud Service, OWL-S Composer, Eclipse
SUMÁRIO
Lista de Figuras
Lista de Tabelas
Lista de abreviaturas e siglas
1
2
3
4
Introdução
9
1.1
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.2
Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.3
Estrutura do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
Serviços Web Semânticos
12
2.1
OWL-S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2
Arquitetura Orientada a Serviços . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.3
Composição de Serviços Web Semânticos . . . . . . . . . . . . . . . . . . . .
16
Computação em nuvem
17
3.1
Características essenciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2
Modelos de serviço . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.3
Modelos de implantação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.4
Provedores de serviços em nuvem . . . . . . . . . . . . . . . . . . . . . . . .
21
Serviços Web Semânticos em nuvem
23
4.1
24
Portabilidade e interoperabilidade entre nuvens . . . . . . . . . . . . . . . . .
5
6
Trabalhos relacionados
27
5.1
VRESCo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
5.2
Multi-cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
Interoperabilidade para o OWL-S Composer
30
6.1
Histórico do OWL-S Composer . . . . . . . . . . . . . . . . . . . . . . . . .
30
6.2
Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
6.3
Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
6.4
Projeto Estrutural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
6.4.1
Nuvens utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
6.4.2
Arquitetura do OWL-S Composer 4.0 . . . . . . . . . . . . . . . . . .
34
Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
6.5
7
Experimentos e Resultados
7.1
8
38
1o experimento: Divulgação e avaliação do OWL-S Composer para Mestrado e
Graduação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
7.1.1
Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
7.2
2o experimento: Publicação de um projeto na Amazon e no Eucalyptus . . . . .
41
7.3
3o experimento: Divulgação e testes realizados pela Empresa Júnior de Informática da UFBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
7.3.1
45
Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conclusão
46
8.1
Dificuldades encontradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
8.2
Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
Referências Bibliográficas
48
LISTA DE FIGURAS
2.1
Ontologia Service do OWL-S (MARTIN et al., 2004). . . . . . . . . . . . . . .
14
2.2
Arquitetura Orientada a Serviços. . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.3
Diferença entre orquestração e coreografia (MICHELS, 2009). . . . . . . . . .
16
3.1
Modelos de serviço de computação na nuvem (ZHANG; CHENG; BOUTABA,
2010). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.1
Ciclo de vida de um Serviço Web (FERREIRA, 2010). . . . . . . . . . . . . .
23
4.2
Esquema de interoperabilidade entre nuvens (BHUKYA REETA SONY A.L,
2012). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
5.1
Modelo de metadados para um serviço (HUMMER et al., 2011). . . . . . . . .
28
6.1
Evolução da arquitetura do OWL-S Composer . . . . . . . . . . . . . . . . . .
30
6.2
Exemplo de composição feita pela interface do OWL-S Composer . . . . . . .
31
6.3
Arquitetura do OWL-S Composer 4.0 . . . . . . . . . . . . . . . . . . . . . . .
35
7.1
Seleção do projeto a ser pré-publicado . . . . . . . . . . . . . . . . . . . . . .
42
7.2
Seleção das nuvens e pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
7.3
Inserção de credenciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
7.4
Publicando com o plugin da Amazon para Eclipse . . . . . . . . . . . . . . . .
43
7.5
Página do serviço desenvolvido publicado na amazon . . . . . . . . . . . . . .
44
LISTA DE TABELAS
3.1
Comparativo entre public cloud e data center convencional (ARMBRUST et
al., 2010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
LISTA DE ABREVIATURAS E SIGLAS
ABFR
Advanced Back & Forward Recovery,
p. 30
API
Application Programming Interface,
p. 33
EMF
Eclipse Modeling Framework Project,
p. 32
GEF
Graphical Editing Framework,
p. 32
GMF
Graphical Modeling Framework,
p. 32
IOPE
entrada e saída, pré-condições, efeitos,
p. 19
JET
Java Emitter Templates,
p. 33
MAPE-K
Monitor, Analyse, Plan, Execute, Knowledge,
p. 22
MDR
Monitoramento, Diagnóstico e Recuperação,
p. 40
MVC
Model-View-Controller,
p. 32
OWL
Ontology Web Language,
p. 11
OWL-S
Ontology Web Language for Service,
p. 18
QoS
Qualidade do serviço,
p. 19
SAWSDL
Semantic Annotations for WSDL,
p. 18
SHIWS
Self-healing Integrator for Web Services,
p. 27
SOA
Arquitetura Orientada à Serviços,
p. 15
SOAP
Simple Object Access Protocol,
p. 15
SWS
Serviços Web Semânticos,
p. 11
UDDI
Universal Description, Discovery and Integration,
p. 16
WSDL
Web Services Description Language,
p. 15
WSMO
Web Service Modeling Ontology,
p. 18
WTP
Web Tool Plugin,
p. 31
XML
eXtensible Markup Language,
p. 15
9
1
INTRODUÇÃO
A computação nas nuvens se tornou uma tendência significante com alguns especialistas
esperando que ela remodele o mercado de tecnologia de informação (LEAVITT, 2009). Fatores
que fazem com que a academia e o mercado migrem suas atividades para a nuvem se devem
à sua capacidade em prover recursos sob demanda de maneira escalável, segura e de vaixo
custo. Aliado à isso, os serviços em nuvem podem ser acessados em uma gama de dispositivos,
incluindos PCs, laptops e smartphones.
Desde a introdução da Web Semântica (LEE; HENDLER; LASSILA, 2001) criou-se um
interesse em prover serviços automáticos para atender necessidades de usuários que variam de
modo significativo em sua complexidade. Estes serviços podem ser desde consulta do clima
para o fim de semana, até classificação de documentos através de mineração de dados. Para
evitar falsos cognatos e promover composições automáticas de serviços, os Serviços Web Semânticos foram criados, e desta forma, é possível utilizar por exemplo, serviços que buscam
pela palavra “banco” e diferenciem o “banco” de agência financeira para o “banco” de assento.
Para prover Serviços Web Semânticos mais complexos foi utilizado o conceito de composição de serviços (CLARO; ALBERS; HAO, 2005). Esta composição permite que clientes
utilizem mais de um serviço por vez. Assim, empresas podem desenvolver mais serviços que
atendam uma necessidade isolada, mas que ao serem compostos podem fornecer uma diversidade de funcionalidades. As composições são feitas por meio de linguagens como OWL-S
(MARTIN et al., 2004). Prover a clientes buscar e selecionar esses serviços também é um tema
importante e o OWL-S facilita esse processo de descoberta e selecão, pois incorpora informações adicionais, não ambíguas e interpretáveis computacionalmente.
Unir Serviços Web Semânticos e computação nas nuvens é permitir que clientes tenham a
possibilidade de publicar, buscar, compor e executar serviços através de uma arquitetura escalável, segura e de baixo custo.
10
1.1
MOTIVAÇÃO
Por ter um desenvolvimento rápido e disperso, a computação em nuvem ainda não é uma
tecnologia padronizada. Esta falta de padrões dificulta a tarefa de publicação de um mesmo
Serviço Web Semântico em nuvens diferentes. Aliado a isso, é comum que clientes utilizem
serviços de diferentes provedores simultaneamente (PARAMESWARAN; CHADDHA, 2009).
Para tornar esses serviços em serviços portáveis seria necessário uma interface que intermedie
cliente e nuvem, tornando o manejo do ciclo de vida de um Serviço Web Semântico uma tarefa
simples e intuitiva, independente da nuvem utilizada.
Para solucionar esse problema nasce o conceito de Serviço em Nuvem Unificado (Unified
Cloud Service), cujo objetivo é permitir que clientes a publiquem em qualquer tipo de nuvem
com suporte à publicação de sites de Serviços promovendo a interoperabilidade entre nuvens.
O plug-in OWL-S Composer 3.1 (ALVES, 2011) para a plataforma Eclipse (FOUNDATION, 2013) permite de maneira simples e prática a manipulação do ciclo de vida de Serviços
Web Semânticos em servidores convencionais. Através de uma modelagem de composições de
maneira visual, o plug-in elimina longas tarefas de descrição composições. O OWL-S Composer
3.1 é capaz de publicar, buscar, compor e monitorar Serviços Web Semânticos.
1.2
PROPOSTA
A publicação de Serviços Web Semânticos ainda é um processo custoso, devido às diferenças existentes entre os provedores de nuvem. No caso em que um cliente tenha um repositório
de Serviços Web Semânticos em uma nuvem e deseje migrar esse repositório para outro provedor será necessário alterar parte do código e os documentos existentes.
Para automatizar a tarefa de publicação de serviços na nuvem, independente de provedor
é necessário criar uma camada intermediária que torne o processo de publicação de serviços
transparente para o cliente.
Apesar de ser possível publicar Serviços Web Semânticos em nuvem, é necessário realizar
muitos passos para permitir que a publicação seja concluída e a etapa de configuração está propensa a erros. Além disso, migrar os serviços para outra nuvem implica em grande esforço por
parte do usuário, muitas vezes sendo necessário reescrever o projeto inteiramente. Diante disso,
a proposta presente neste trabalho é atualizar o plug-in OWL-S Composer, criando um Serviço
em Nuvem Unificado que possibilite clientes a trabalharem com um conjunto de provedores de
11
nuvem mais comuns no mercado e na academia.
Para identificar em que tipo de trabalho focar no futuro são realizadas pesquisas com estudantes de graduação e de mestrado para avaliarem o textitplug-in, suas funcionalidades, pontos
fortes e pontos fracos.
1.3
ESTRUTURA DO TRABALHO
Este trabalho está organizado em oito capítulos distribuídos da seguinte forma: o capítulo
2 introduz a fundamentação teórica deste trabalho, apresentando os Serviços Web Semânticos,
suas tecnologias básicas e uma arquitetura orientada a serviços; o capítulo 3 aborda sobre a
computação na nuvem, suas características essenciais e os provedores mais comuns; o capítulo
4 descreve como é possível e para que serve a integração entre Serviços Web Semânticos e computação em nuvem; no capítulo 5 são vistos os trabalhos relacionados com a presente proposta
assim como as suas vantagens e desvantagens; o capítulo 6 é focado no OWL-S Composer, as
funcionalidades presentes e a arquitetura para lidar com a portabilidade e no capítulo 7 são apresentados os experimentos e resultados alcançados; por fim, no capítulo 8 está a conclusão do
trabalho com as dificuldades enfrentadas e sugestões de trabalhos que podem ser desenvolvidos
no futuro.
12
2
SERVIÇOS WEB SEMÂNTICOS
Atualmente, grande parte do conteúdo da Web está dirigido para a leitura humana, não para
computadores extraírem significados. A Web Semântica é uma maneira de extrair conteúdo
relevante de páginas Web, em um ambiente onde agentes de software navegam entre páginas
realizando tarefas complexas para os seus respectivos usuários. A proposta da Web Semântica
não é ser uma área separada da Web e sim uma extensão desta, em que as informações são
fornecidas de maneira mais organizada, possibilitando uma melhor interação entre humanos e
computadores (LEE; HENDLER; LASSILA, 2001).
Existem diversas tecnologias para se trabalhar com a Web Semântica como RDF, RDFS,
SHOE, DAML-ONT, OIL, DAML+OIL, DAML-L e OWL (ALVES; CLARO, 2012). Por outro
lado, a indústria propõe o uso de Serviços Web para transformar a Web de um estado passivo
(repositório de documentos estáticos) para um estado dinâmico (repositório de serviços dinâmicos). Esse estado dinâmico pode ser auziliado pela atuação independente da máquina para
satisfação da necessidade do usuário, necessitando que a Web seja mais descritiva em seu conteúdo existente, ou seja é necessário a adição de semântica ao conteúdo. Contudo, os padrões
para Serviços Web como WSDL, UDDI, XLANG, WSFL, ebXML e WS-BPEL não são de
todo orientados à semântica (SIVASHANMUGAM et al., 2003) e por isso surgiram diversos
projetos como por exemplo: Ontology Web Language for Service (OWL-S) (MARTIN et al.,
2007), WSMO (Web Service Modeling Ontology) (LAUSEN; POLLERES; ROMAN, 2005) e
o Semantic Annotations for WSDL (SAWSDL) (KOPECKY et al., 2007). É nesse contexto que
surgem os Serviços Web Semânticos (SWS) (WANG; ZHANG; SUNDERRAMAN, 2004).
O plugin OWL-S composer, estendido pelo presente trabalho, utiliza a linguagem OWL-S
(Ontology Web Language for Services). Essa linguagem se baseia na OWL (Web Ontology
Language) que por sua vez utiliza o XML para marcação e descrição de serviços. Detalhes
sobre essa linguagem serão vistos na seção seguinte.
Ao reduzir os limites de uma requisição de usuário para uma única operação automática, as
linguagens para descrever Serviços Web baseadas em ontologias tem um enorme potencial para
13
negócios na Web. Essas linguagens permitem que Serviços Web se adaptem às mudanças no
conteúdo das mensagens ou no protocolo de interação. Não apenas isso, mas essas linguagens
permitem a criação de serviços sob demanda (PAOLUCCI; SYCARA, 2003).
2.1
OWL-S
Movidos pelo movimento para o desenvolvimento da nova geração da Web que autores
em (MARTIN et al., 2004) desenvolveram uma linguagem chamada Ontology Web Language
for Service (OWL-S). Esta pode ser descrita como uma linguagem para descrever serviços,
refletindo no fato de que provê um vocabulário padrão que pode ser utilizado em outros aspectos
da linguagem OWL para criar descrição de serviços.
A linguagem OWL-S tem como principais objetivos: (1) prover um framework de propósito
geral para descrever Serviços Web; (2) oferecer suporte a automação de gerenciamento de serviços e uso por parte de agentes de software; (3) construir, de forma integral, sobre os padrões
para Serviços Web existentes e nos padrões existentes para a Web Semântica; e (4) ser abrangente o suficiente para comportar todas as etapas do ciclo de vida de um serviço (MARTIN et
al., 2007).
A estrutura de ontologia de serviços do OWL-S é motivada pela necessidade de se compreender três aspectos essenciais de um serviço. Esses três pontos são ServiceProfile, ServiceModel, ServiceGrounding (MARTIN et al., 2004):
• ServiceProfile.
Referência para as funcionalidades de um serviço. Adequado para as situações onde um
agente de busca de serviços necessita determinar se um serviço satisfaz as suas necessidades. Nesta forma de representação inclui uma descrição do que deve ser alcançado
pelo serviço, limitações na aplicabilidade do serviço e na qualidade do serviço (QoS) , e
requisitos que o usuário do serviço deve satisfazer para usar o serviço de forma exitosa.
• ServiceModel.
Indica a um cliente como usar um serviço, detalhando o conteúdo semântico das requisições, as condições necessárias para que resultados particulares aconteçam e, quando
necessário, a sequência de passos que levam para esses resultados. Em casos de serviços
não triviais (aqueles que são compostos de diversos passos em uma só chamada) esse
detalhamento pode ser usado por um agente de busca de serviços em pelo menos quatro
maneiras: (1) realizar uma análise mais profunda se determinado serviço satisfaz as ne-
14
cessidades; (2) compor descrições de serviços de vários serviços para realizar uma tarefa
específica; (3) durante o curso de execução de um serviço, coordenar as atividades dos
diferentes participantes; (4) monitorar a execução do serviço.
• ServiceGrounding.
Especifíca os detalhes de como um agente pode acessar um serviço. Tipicamente um
ServiceGrounding irá especificar um protocolo de comunicação, formatos de mensagem,
e outros detalhes específicos do serviço como números de portas usados para contactar
um serviço. Além disso, o ServiceGrounding deve especificar, para cada tipo de entrada
ou saída semântica definida no ServiceModel, uma maneira livre de ambiguidades para
realizar troca de dados, isto é, o emprego técnicas de serialização.
Na Figura 2.1 se vê uma classe Service que serve como ponto de referência para um Serviço
Web. Onde uma instância de Service existirá para cada Serviço criado. Cada instância de um
Serviço Web apresenta (presents) uma descrição de ServiceProfile, é descrita por uma descrição
de ServiceModel e suporta (supports) uma descrição de ServiceGrounding. É necessário levar
em consideração dois aspectos sobre a cardinalidade dessa ontologia: um serviço pode ser
descrito por no máximo um ServiceModel e estar associado a exatamente um ServiceGrounding.
Figura 2.1: Ontologia Service do OWL-S (MARTIN et al., 2004).
2.2
ARQUITETURA ORIENTADA A SERVIÇOS
A Arquitetura Orientada a Serviços (SOA) é um paradigma para organizar e utilizar entidades distribuídas que podem estar sob controle de domínios diferentes (MACKENZIE et al.,
2006).
15
O uso de SOA não está diretamente relacionada e nem dependente dos Serviços Web. Contudo, os benefícios da SOA são mais evidentes ao serem usados em Serviços Web (MICHELS,
2009), entre eles: distribuição, heterogeneidade, dinamismo, transparência e orientação a processos. Na Figura 2.2 o fluxo de processos relacionados à arquitetura é apresentado. O Provedor
do Serviço desenvolve e publica uma funcionalidade no Repositório de Serviço (1). Quando disponível, o serviço no Repositório de Serviço está pronto para ser localizado pelo Solicitante do
Serviço (2). A chamada para utilizar o serviço é feita do Solicitante do Serviço para o Provedor
do Serviço (3).
Figura 2.2: Arquitetura Orientada a Serviços.
Com o crescimento de uma arquitetura orientada a serviços, aumenta a necessidade de se
ter entidades responsáveis pela integração de serviços. Essas entidades intermediam e coordenam a execução dos processos. Para que os Serviços Web usem todo o seu potencial e sejam
beneficiados pela arquitetura SOA é necessário que estas entidades tornem possíveis interações
síncronas e assíncronas e com manutenção de estado (stateful). Nesse caso dois termos são
utilizados para expressar a coordenação de processos entre serviços: orquestração e coreografia
(MICHELS, 2009). A orquestração é um processo que pode interagir com processos internos e
externos, representada pelo ponto de vista do coordenador (aquele que tem o controle do processo). A coreografia, por sua vez, é um processo mais colaborativo, em que cada uma das
partes envolvidas descreve o seu papel no processo de interação.
A Figura 2.3 ilustra as diferenças entre os dois conceitos recém apresentados. A orquestração é centralizada na interação dos serviços na perspectiva do coordenador, enquanto a coreografia é usada mais para ordenação de mensagens e não há a necessidade de um coordenador.
2.3
COMPOSIÇÃO DE SERVIÇOS WEB SEMÂNTICOS
O processo de composição de Serviços Web é realizado quando nenhum serviço atômico
(que realiza uma tarefa específica) ou composto disponível é capaz de realizar uma requisição,
16
Figura 2.3: Diferença entre orquestração e coreografia (MICHELS, 2009).
mas a composição desses serviços atômicos e compostos disponíveis e torna esse processo
factível (KUMAR; MISHRA, 2008).
Uma composição de Serviços Web pode ser alcançada de duas maneiras: estática e dinâmica. Uma composição estática se trata de uma especificação na forma de um script (na
notação XML). Esse script essencialmente lista os diversos serviços a serem executados e específica como os resultados da execução de um serviço são mapeados em entrada de outros.
Essa é uma funcionalidade importante para manter serviços com um propósito específico. De
maneira similar, a composição dinâmica se diferencia pelo seu script de composição ser gerade
em tempo de execução (NANDIGAM; GUDIVADA; KALAVALA, 2005).
Uma composição de Servicos Web Semânticos não é muito diferente da composição de
Serviços Web convencionais, contudo, os primeiros possuem a característica especial para permitir a identificação de conceitos definidos em domínio e dessa forma é possível realizar uma
composição mais eficaz e com menor probablididade de erros quando comparada com a forma
sem significado agregado.
Uma grande quantidade de técnicas de composição têm sido desenvolvidas por pesquisadores e a escolha da técnica de composição mais apropriada ao processo afeta o resultado da
composição. Uma escolha apropriada para composição de Serviços Web Semânticos é capaz
de reduzir custos, tempo e esforço, além de produzir melhores resultados (KUMAR; MISHRA,
2008).
17
3
COMPUTAÇÃO EM NUVEM
O termo computação em nuvem e seus termos associados sofrem de uma falta de definição
largamente aceita, pois são termos recentes e definidos mais pelo uso que pelos documentos
escritos. Alguns fornecedores de serviços em nuvem utilizam definições diferentes para os
mesmos termos (ARMBRUST et al., 2010). No presente trabalho serão seguidos as definições
propostas pelo Instituto Nacional de Padrões e Tecnologias (NIST) dos Estados Unidos (MELL;
GRANCE, 2011).
A computação na nuvem é um modelo que visa permitir de maneira onipresente, conveniente e sob demanda acesso a uma série de recursos computacionais configuráveis (exemplos:
redes, servidores, armazenamento, aplicações e serviços) que podem ser disponibilizados e liberados com esforço de gerenciamento mínimo ou interação com provedor de serviços. Esse modelo é composto por cinco características essenciais, três modelos de serviços e quatro modelos
de implantação (MELL; GRANCE, 2011). As definições da NIST permanecem em rascunho,
mas as suas definições já são largamente utilizadas pela academia (CHEN; PAXSON; KATZ,
2010)(ZHANG; CHENG; BOUTABA, 2010)(VOOSLUYS; BROBERG; BUYYA, 2011).
3.1
CARACTERÍSTICAS ESSENCIAIS
Para caracterizar um serviço de nuvem, cinco aspectos básicos devem ser cumpridos pelo
provedor do serviço. Estes aspectos estão definidos à seguir.
• Serviços sob demanda.
Um cliente pode de forma unilateral prover capacidades computacionais, como tempo
de servidor e capacidade de armazenamento conforme necessário automaticamente, sem
necessidade de interação humana com cada provedor de serviço.
• Amplo acesso à rede.
Funcionalidades estão disponíveis na rede e podem ser acessados por mecanismos pa-
18
drões que promovem o uso de plataformas a nível de cliente (exemplos: telefones, tablets,
notebooks e estações de trabalho).
• Pool de recursos.
Os recursos computacionais do provedor estão agrupados para servir consumidores usando
um modelo com múltiplos clientes, com diferentes recursos físicos e virtuais atribuídos
de acordo com a demanda do cliente. Existe uma independência da localização do serviço, já que o cliente não tem controle ou conhecimento sobre o local exato dos recursos
providos, mas é capaz de especificar em um nível maior de abstração (exemplos: país,
estado ou data center).
• Elasticidade rápida.
Funcionalidades podem ser providas ou liberadas, algumas vezes automaticamente, para
escalar rapidamente a demanda externa ou interna. Para a perspectiva do consumidor as
funcionalidades disponíveis geralmente aparecem como ilimitadas e podem ser apropriadas em qualquer quantidade a qualquer momento.
• Serviços sob medida.
Sistemas em nuvem automaticamente controlam e otimizam o uso de recursos ao alavancar uma funcionalidade de medição (geralmente paga por uso) em algum nível apropriado de abstração. Uso de recursos podem ser monitorados, controlados, e reportados,
provendo transparência para ambos provedor e cliente.
3.2
MODELOS DE SERVIÇO
De maneira geral a arquitetura de um ambiente de computação em nuvem é dividido em
quatro camadas para três modelos de serviço (ZHANG; CHENG; BOUTABA, 2010). A Figura
3.1 ilustra esses três modelos e os exemplifica.
• Software as a Service (SaaS).
A funcionalidade disponibilizada para o cliente está vinculada ao uso das aplicações disponibilizadas pelo provedor da infraestrutura de nuvem. As aplicações são acessíveis por
diversos disposítivos a nível de cliente (exemplos: navegador Web, um programa). Neste
modelo de serviço o cliente não tem controle sobre as camadas de infraestrutura inferiores
como rede, servidores, sistemas operacionais, armazenamento, etc.
• Platform as a Service (PaaS).
Neste modelo o cliente é capaz de hospedar na nuvem aplicações criadas ou adquiridas
19
Figura 3.1: Modelos de serviço de computação na nuvem (ZHANG; CHENG; BOUTABA,
2010).
pelo cliente. Essas aplicações devem ser feitas utilizando linguagens de programação,
bibliotecas, serviços e ferramentas suportadas pelo provedor. Similar ao modelo anterior,
o cliente de um provedor PaaS não tem acesso à rede, servidores, sistemas operacionais ou
armazenamento, porém tem controle sobre as aplicações implantadas e suas respectivas
configurações disponibilizadas pelo ambiente de hospedagem de aplicações.
• Infrastructure as a Service (IaaS).
A funcionalidade disponibilizada para o cliente é para prover procesamento, armazenamento, redes e outros recursos computacionais onde o cliente pode implantar e executar
software de forma arbitrária, podendo incluir sistemas operacionais e aplicações. O cliente não gerencia ou controla as camadas inferiores de infraestrutura, mas possui controle
sobre sistemas operacionais, armazenamento, e aplicações implantadas e possivelmente
controle limitado sobre os componentes de rede (exemplo: firewalls).
Comparada aos modelos tradicionais de hospedagem, a arquitetura da computação em nuvem é mais modular. O baixo acoplamento entre as camadas permite que cada camada se desenvolva separadamente. Essas características fazem com que a computação em nuvem suporte
um largo número de requisitos de aplicações com um mínimo de esforço (ZHANG; CHENG;
BOUTABA, 2010).
Ambientes de desenvolvimento em nuvem são implementados nos topos dos serviços de
infraestrutura para oferecer funcionalidades de desenvolvimento e implantação de aplicações.
20
Neste nível vários modelos de programação, bibliotecas, APIs e editores de mashups 1 possibilitam a criação de um variedade de negócios. Uma vez implantadas essas aplicações podem ser
consumidas por usuários (VOOSLUYS; BROBERG; BUYYA, 2011).
É possível que um provedor de um PaaS seja executado sobre um outro provedor IaaS,
mas atualmente são geralmente as mesmas organizações que provêm os mesmos serviços. Por
isso, essas organizações são chamadas de provedores de nuvem ou provedores de infraestrutura
(ZHANG; CHENG; BOUTABA, 2010).
3.3
MODELOS DE IMPLANTAÇÃO
No momento de decidir em qual ambiente em nuvem operar é necessário ter em mente
qual é o tipo de implantação a ser feita. Alguns provedores de serviços estão interessados em
diminuir o custo operacional, outros focam em confiabilidade e segurança (ZHANG; CHENG;
BOUTABA, 2010). Existem quatro maneiras de implantar uma infraestrutura em nuvem, cada
uma com suas vantagens e desvantagens.
• Private cloud.
A infraestrutura é disponibilizada para uso exclusivo de uma única organização composta
por múltiplos clientes. Pode pertencer, ser gerenciada e operada pela própria organização,
um terceiro ou uma combinação de ambos.
• Community cloud.
Esse modelo de implantação é para uso exclusivo de uma comunidade específica de clientes de organizações que compartilham interesses (exemplos: missões, requisitos de
segurança, políticas). Pode pertencer, ser gerenciada e operada por uma ou mais das
organizações da comunidade, um terceiro ou a combinação de ambos.
• Public cloud.
Disponibilizada para uso aberto do público. Pode pertencer, ser gerenciado e operado por
um empreendimento, uma academia ou instância do governo ou a combinação destes.
Existe sobre as premissas do provedor da nuvem.
• Hybrid cloud.
Esta infraestrutura é uma composição de duas ou mais infraestruturas de nuvem distintas
(private, community, public) que permanecem como entidades únicas, mas que se mantém
conectadas por uma tecnologia padrão que permite portabilidade.
1 http://pipes.yahoo.com/pipes/
21
Vantagem
Public cloud
Aparência de recursos computacionais
Sim
infinitos sob demanda
Eliminação de um compromisso
Sim
antecipado por usuários
Possibilidade de pagar por uso de
Sim
recursos computacionais em um base
de tempo pequena conforme necessário
Economias de escala devido a grandes
Sim
data centers
Maior utilização de multiplexação de
Sim
cargas de trabalho de diferentes
organizações
Simplifica operação e aumento de
Sim
utilização via virtualização de recursos
Data center
Não
Não
Não
Parcial
Depende da organização
Não
Tabela 3.1: Comparativo entre public cloud e data center convencional (ARMBRUST et al.,
2010)
A Tabela 3.1 compara as vantagens de uma nuvem pública com um data center convencional. Neste comparativo é exaltada a flexibilidade oferecida pelo uso de nuvens, especialmente
pelo uso de recursos sob demanda.
3.4
PROVEDORES DE SERVIÇOS EM NUVEM
Computação em nuvem surgiu recentemente como um paradigma para gerenciar e entregar
serviços pela Internet. O aumento da computação em nuvem está rapidamente modificando o
cenário da tecnologia da informação (ZHANG; CHENG; BOUTABA, 2010). Existem uma diversidade de provedores de nuvem oferecendo uma quantidade variada de serviços que variam
desde análise de dados até recuperação de desastres (perda de arquivos) e o seu uso varia de
acordo com a necessidade do cliente. Serviços como Dropbox, um diretório de arquivos hospedado na nuvem, por exemplo, são utilizados por pesquisadores e estudantes para trabalharem
de forma colaborativa em tarefas e projetos (KAISERSWERTH et al., 2012).
Alguns dos provedores de serviços em cloud mais comuns estão listados a seguir:
• Amazon Web Services (http://aws.amazon.com/) - Fornece um conjunto de ferramentas,
bibliotecas e API’s próprias para executar qualquer tipo de tecnologia que execute sobre
uma infraestrutura particular;
• CloudBees (http://www.cloudbees.com) - Possui invólucro para desenvolvimento de aplicações Web em Java;
22
• Eucalyptus (http://www.eucalyptus.com) - É um software open source e gratuito para a
criação de nuvens privadas. Utiliza uma API compatível com o Amazon Web Services
possibilitando a migração entre esses serviços;
• Force.com (http://www.force.com/) - Especializada em aplicações do tipo CRM e voltadas para o gerenciamento de clientes, empresas, etc;
• Google App Engine (http://appengine.google.com) - Possui invólucro para desenvolvimento de aplicações Web em Java e Python;
• Heroku (http://www.heroku.com) - Possui ferramentas, bibliotecas e API’s próprias para
execução de aplicações desenvolvidas em Ruby on Rails;
• Microsoft Azure (http://www.windowsazure.com/) - Possui ferramentas, bibliotecas e
API’s próprias para executar aplicações desenvolvidas em .NET.
23
4
SERVIÇOS WEB SEMÂNTICOS
EM NUVEM
Serviços Web Semânticos possuem um ciclo de vida similar a um Serviço Web publicado
em servidores tradicionais. A Figura 4.1 apresenta os seis passos essenciais para garantir o
reúso, alta disponibilidade e execução de um Serviço Web.
Figura 4.1: Ciclo de vida de um Serviço Web (FERREIRA, 2010).
As etapas de publicação, descoberta, seleção e invocação foram discutidas na Seção 2.2. A
etapa de composição é responsável por interligar serviços em um fluxo de execução, na qual
a saída de uma operação serve como entrada para uma nova solicitação. São denominados
serviços compostos aqueles que possuem mais de um serviço envolvido na execução. Por fim,
a etapa de monitoramento é responsável por avaliar a execução da composição e atuar visando
aumentar a confiabilidade nas execuções.
Algumas pequenas adaptações são contudo necessárias para Serviços Web em nuvem. A
publicação, descoberta, composição e monitoramento de serviços possuem características especiais que devem ser consideradas.
Para publicar serviços na nuvem é necessário publicá-los no formato de PaaS. Algumas das
24
plataformas que disponibilizam esse tipo de serviço foram descritas na seção 3.4. Para publicar
um projeto de Serviços Web em diferentes provedores de nuvem é uma tarefa complexa, devido
a falta de padrões existentes. Um dos grandes desafios da publicação em nuvem se deve ao fato
de que não há um padrão que se torna totalmente dependente da PaaS utilizada. É importante
ressaltar que um serviço disponibilizado em um PaaS não necessariamente o torna um SaaS,
já que para que este seja um SaaS é necessário que este possua características intrínsecas da
computação em nuvem, como a utilização de recursos sob demanda (ALVES; CLARO, 2012).
Na etapa de descoberta de participantes de uma composição, a ferramenta que produz a
composição necessita ter conhecimento em que nuvem estão hospedadas as ontologias dos serviços disponíveis. Ter conhecimento de onde estão esses serviços se faz ainda mais importante
no processo de monitoramento e recuperação de serviços falhos.
Existem cenários nos quais os serviços conhecidos em uma nuvem não são capazes de realizar a requisição de um usuário, mas existem serviços conhecidos em uma segunda nuvem
que, ao serem interligados com os serviços da primeira são capazes de realizar tal tarefa. O
estudo de (ROSENBERG et al., 2009) sugere uma camada de software intermediária chamada
CaaS (Composition as a Service ), responsável por realizar tarefas de integração de serviços.
Atualmente, modelos de CaaS fornecem ao cliente um plug-in que provê recomendações aos
usuários e coleta feedbacks. Esse plug-in age em nome do usuário para detectar os seus requisitos e redirecioná-los para o serviço de CaaS (BLAKE; TAN; ROSENBERG, 2010).
Para o uso do CaaS não é necessário que serviços estejam publicados em um mesmo repositório. Num ambiente desses, seja a composição feita de maneira manual (o usuário seleciona
a ordem de composição que achar mais conveniente) ou automática (o plug-in seleciona a ordem da composição), devem ser levados em consideração em como realizar a composição mais
econômica, visando a utilização de menor número de acesso em nuvens (pois é custosa em
respeito à taxa a ser paga, tempo de execução e interconexão entre as nuvems) (ZOU et al.,
2010). No caso de falhas o raciocínio é o mesmo. É preferível que o serviço escolhido para ser
substituído esteja hospedado em uma nuvem já utilizada na composição.
4.1
PORTABILIDADE E INTEROPERABILIDADE ENTRE
NUVENS
A portabilidade é a capacidade de um sistema em ser utilizado em diferentes ambientes. Enquanto que a interoperabilidade é a capacidade que sistemas tem em interagir (PETCU, 2011).
A importância destes dois termos num ambiente de nuvem está ligada à necessidade dos clientes
25
em: (1) publicar em diferentes provedores sem a necessidade de realizar extensas modificações
no software desenvolvido e (2) interagir com serviços dispostos em nuvens diferentes fornecendo os recursos de ambas as nuvens simultaneamente.
O desafio para a portabilidade e interoperabilidade de Serviços Web Semânticos na nuvem
está ligado à falta de padrões entre as nuvens. Em pouco tempo existirão softwares legados
hospedados nas nuvens e migrar essa plataforma para outra nuvem implica muitas vezes em
rescrevê-lo muitas vezes por inteiro, o que impacta na economia da organização. Um plano
economicamente razoável seria construir a nova aplicação na nova nuvem e ao mesmo tempo
permitindo uma comunicação com a aplicação legada (BHUKYA REETA SONY A.L, 2012).
A Figura 4.2 representa um esquema de interoperabilidade.
Figura 4.2: Esquema de interoperabilidade entre nuvens (BHUKYA REETA SONY A.L, 2012).
A flexibilidade de se comunicar e expor os componentes na lógica de negócio presentes nos
Serviços Web fazem com que seja uma alternativa interessante para interoperabilidade entre
nuvens. Uma das formas de realizar essa comunicação é através do modelo SOAP (Simple Object Access Protocol ) ou através do modelo REST (REpresentational State Transfer ). Ambas
oferecem grande suporte à comunicação de aplicações em nuvens.
• SOAP.
SOAP é um protocolo para troca de mensagens formatadas em XML pela Internet. É fundamentalmente um modelo de comunicação que garante que a comunicação remetentedestinatário seja coerente. O desenho do SOAP é para prover um protocolo de comunicação independente e abstrato capaz de conectar dois ou mais negócios ou dois ou mais
sítios de negócios remotos. Isso significa que sistemas podem utilizar quaisquer combinação de software e hardware desde que suporte tecnologias para a Internet como .NET
e J2EE (NEWCOMER, 2002).
• REST
Originalmente introduzida como um estilo arquitetural para construir sistemas de hipermídia de larga escala, o modelo REST serve serve como modelo de comunicação entre
26
serviços utilizando o protocolo HTTP e seus verbos (GET, POST, PUT, DELETE) para
troca de mensagens. Possui quatro princípios tecnológicos: identificação de recursos através de uma URI ; interface uniforme, onde são utilizados os verbos HTTP; mensagens
auto-descritivas, conteúdo é separado do cabeçalho de forma que a resposta possa ter
vários formatos (HTML, XML, PDF, etc.); interações com manutenção de estado (stateful), os estados são transferidos entre requisições (mudanças de URI, cookies, formulários
escondidos) (PAUTASSO; ZIMMERMANN; LEYMANN, 2008).
Diversas técnicas estão sendo investigadas para alcançar a interoperabilidade na nuvem. No
cenário atual os Serviços Web são uma alternativa efetiva para alcançar tal objetivo (BHUKYA
REETA SONY A.L, 2012).
27
5
TRABALHOS RELACIONADOS
Apesar de ser uma área de pesquisa recente, interoperabilidade e portabilidade de Serviços
Web Semânticos publicados na nuvem já existem alguns trabalhos que estão relacionados à
proposta deste trabalho. Dos quais, dois foram destacados: VRESCo (HUMMER et al., 2011)
e Multi-cloud (ZOU et al., 2010).
5.1
VRESCO
VRESCo (Vienna Runtime Environment for Service-oriented Computing) (HUMMER et
al., 2011) é um framework desenvolvido em cima de cinco componentes: consulta, notificação,
publicação, gerenciamento e composição. O sistema é construído em C# e faz uso da Windows
Communication Foundation (WCF) para realizar a interação cliente-servidor. O protocolo de
mensagem utilizado é o SOAP.
O framework usa um modelo de metadados para descrever as funcionalidades dos Serviços
Web permitindo também a adição de précondições e póscondições que necessitam ser realizados
quando uma determinada funcionalidade é executada. A Figura 5.1 representa o mapeamento
entre o modelo de metadados de um serviço e o serviço propriamente dito. Serviços são mapeados em categorias (Category), a operação de um serviço é uma implementação concreta da
funcionalidade (Feature) e os parâmetros de uma operação são representados por conceitos de
dados (Data Concept). Em (ROSENBERG et al., 2009) são adicionados ao VRESCo a possibilidade de compor e executar Serviços Web disponibilizados na nuvem em forma de SaaS.
A linguagem para realizar esta composição é chamada de VRESCo Composition Language
(VCL).
Além disso, o framework provê uma linguagem de consulta própria, a VRESCo Querying
Language (VQL) . A VQL é baseada nas categorias, funcionalidades e parâmetros do mapeamento de modelos de metadados discutidos anteriormente e utiliza um conjunto de critérios
para buscar por serviços correspondentes.
28
Figura 5.1: Modelo de metadados para um serviço (HUMMER et al., 2011).
As vantagens de se usar o VRESCo estão ligadas ao ambiente unificado para especificação,
provisão e composição de serviços, deixando com que desenvolvedores de Serviços Web Semânticos trabalhem com apenas um framework para gerenciar o ciclo de vida dos serviços. Por
outro lado, (1) o fluxo de composição usado pela ferramenta necessita ser feito manualmente,
tornando custosa a inserção de novos serviços; (2) a dificuldade em automatizar o processo,
visto que a intervenção humana faz-se necessária para o processo de composição (inserção,
remoção e troca de serviços); (3) a linguagem VQL não utiliza descrição semântica, um dos
principais fatores para impedir a composição automática.
5.2
MULTI-CLOUD
O Multi-Cloud (ZOU et al., 2010) é um framework que, similar ao VRESCo, visa trabalhar
com a composição de Serviços Web em ambientes que utilizam múltiplas nuvens. As estratégias
utilizadas para minimizar a quantidade de provedores de nuvens para realizar uma determinada
tarefa é através do uso de análise combinatorial e planejamento de Inteligência Artificial.
O processo para composição dos serviços em nuvem se inicia com a requisição dos usuários,
definindo as descrições iniciais e o objetivo através de ontologias. Em seguida, é selecionada a
combinação de nuvens apropriada para alcançar o objetivo. As composições são então convertidas em um domínio e um problema onde finalmente um planejador de composições executa e
encontra uma plano de composição que satisfaça as requisições do usuário.
Para selecionar a combinação de nuvens são propostos três diferentes métodos: (1) combinação de todas as nuvens, (2) combinação de nuvem base e (3) combinação inteligente de
29
nuvens. No primeiro caso, todas as nuvens são dispostas como entradas para realizar uma composição. Na combinação de nuvem base, são reduzidos os números de nuvens envolvidas ao
se usar combinação, e por fim, o método de combinação inteligente que ao mesmo tempo que
otimiza a quantidade de nuvens envolvidas na combinação, também reduz a complexidade para
alcançar esta solução.
Essa ferramenta tem algumas vantagens sobre o VRESCo, como a composição de forma
automática e eficiente e uso de semântica; uso do OWL-S para especificação do serviço, que
é uma linguagem mais comum para descrição de serviços. O protótipo contudo ainda não
está disponível para uso ou teste de terceiros, não tem integração com outros ambientes de
desenvolvimento e também não permitem ao usuário selecionar serviços de forma manual, caso
seja do interesse deste.
Diferentemente deste trabalho, os autores em (HUMMER et al., 2011) desenvolveram o
ambiente em C#, tornando necessária a implantação da nuvem em uma máquina Windows,
deixando o usuário limitado em termos de escolha de tecnologia. Isso se deve ao fato de que
o ambiente VRESCo é um ambiente completo com linguagens próprias para realizar diferentes
tarefas, mas isso pode dificultar a adoção, pois para migrar para outro sistema implicaria ter
que implementar todo o sistema. O presente trabalho foi desenvolvido como um plug-in para a
IDE Eclipse permitindo que o usuário utilize o software em qualquer sistema em que o Eclipse
possa ser instalado. Além disso, o OWL-S Composer utiliza as nuvens disponíveis no mercado
para publicar serviços desenvolvidos em Java, permitindo que projetos de Serviços Web sejam
publicados em uma gama maior de nuvens.
Já a implementação do Multi-cloud (ZOU et al., 2010) utiliza o OWL-S para realizar as
composições, porém apesar de trabalhar com Serviços Web Semânticos em nuvem ela não
realiza tarefas de publicação de serviços e nem é integrada a outras ferramentas, ambas soluções
implementadas neste trabalho.
A contribuição realizada neste trabalho foi feita sobre a ferramenta OWL-S Composer, pois
esta executa em um ambiente robusto que auxilia a lidar com o ciclo de vida de uma composição
de Serviços Web Semânticos em uma nuvem. Ela é integrada com o Eclipse, o que permite
maior comodidade para desenvolver e publicar serviços em apenas um ambiente. O objetivo
principal deste trabalho é permitir ao OWL-S Composer atuar de maneira interoperável entre
provedores de nuvem. O OWL-S Composer, seus componentes e as propostas de evolução estão
descritos no capítulo 6.
30
6
INTEROPERABILIDADE PARA O
OWL-S COMPOSER
Esse capítulo introduz a ferramenta OWL-S Composer, evidenciando os pontos mais relevantes para o desenvolvimento da versão 4.0 da ferramenta. O objetivo principal desta versão é
prover ao usuário maior facilidade para publicar Serviços Web Semânticos em nuvens distintas
através de um ambiente unificado.
6.1
HISTÓRICO DO OWL-S COMPOSER
O OWL-S Composer é um plug-in para a IDE Eclipse, cujo objetivo é prover ferramentas
para a produção, busca, publicação e monitoramento de Serviços Web Semânticos. Criado em
2008 pelo grupo FORMAS (Formalismos e Aplicações Semânticas) da Universidade Federal
da Bahia, o plugin continua em desenvolvimento visando melhorar a experiência na criação e
gerenciamento de Serviços Web Semânticos. Três versões principais foram lançadas do OWL-S
Composer, cada uma com um conjunto de funcionalidades. A Figura 6.1 apresenta a evolução
do plug-in dividido em versões com os respectivos módulos.
Figura 6.1: Evolução da arquitetura do OWL-S Composer
A versão 1.0 do OWL-S Composer (FONSECA; CLARO; LOPES, 2009) foi desenvolvida
31
com o objetivo de prover ao usuário uma maneira de realizar composições de Serviços Web
Semânticos de forma gráfica utilizando a linguagem para composição de serviços OWL-S. O
fato de ser desenvolvido como um plug-in para a plataforma Eclipse permitiu a integração com
outras tarefas e ferramentas relacionadas à criação e manutenção de serviços.
O OWL-S Composer 2.0 (SENA, 2009) é o produto da incorporação da ferramenta OWL-S
Discovery (AMORIM, 2009) no Eclipse, ferramenta esta capaz de realizar descoberta semântica
de Serviços Web atômicos. É agregada a essa versão do OWL-S Composer a capacidade de descoberta de Serviços Web similarmente semânticos (inclusive composições) àqueles modelados
de forma manual.
Agregar mecanismos de auto-cura foi o objetivo principal da versão 3.0 do OWL-S Composer (FERREIRA, 2010). O suporte a execução de Serviços Web Semânticos exigiu um ambiente
que permitisse uma maior confiabilidade nas suas composições. Aliado a isso, a versão 3.1 recebeu uma atualização para permitir que Serviços Web Semânticos tivessem o seu ciclo de vida
executado em nuvem (ALVES, 2011).
A Figura 6.2 ilustra um exemplo de composição sendo modelada através da interface do
OWL-S Composer.
Figura 6.2: Exemplo de composição feita pela interface do OWL-S Composer
32
6.2
CONTRIBUIÇÕES
Para a elaboração deste trabalho foram traçadas duas linhas de contribuição. A primeira
se refere a atualização do plug-in OWL-S Composer para a versão 4.0 com a adição de uma
interface genérica que permita a usuários a publicar Serviços Web Semânticos em um provedor
de nuvem de modo mais simples. A segunda se refere à contribuição voltada para a validação
da ferramenta desenvolvida. Para tal, cursos foram ministrados para públicos distintos com o
objetivo de avaliar a manipulação desta ferramenta para o ambiente em nuvem.
A versão 4.0 do OWL-S Composer permite a publicação em dois provedores distintos de
nuvem (Amazon Web Services e Eucalyptus) além de disponibilizar um ambiente para o acoplamento de novos provedores. Detalhes sobre a implementação estão descritos na Seção 6.4.
O OWL-S Composer foi atualizado para executar numa versão mais recente do Eclipse, o
Eclipse Helios (3.6.2). Como o plug-in é uma ferramenta open source o seu código fonte foi
movido para a plataforma GitHub1 que disponibiliza hospedagem do código assim como espaço
para colaboração de outros desenvolvedores à plataforma.
Devido a algumas alterações feitas na versão 3.1 do OWL-S Composer surgiram algumas
inconsistências no sistema que foram corrigidos para a versão 4.0. Além disso, alguns estudantes de mestrado que assistiram ao curso sobre o plug-in colaboraram na correção de alguns bugs
presentes.
6.3
AMBIENTE
Dois conjuntos de bibliotecas foram fundamentais para o desenvolvimento do plug-in: bibliotecas externas independentes do Eclipse (JAX-SA, OWL-S API, OWL-S Discovery) e o
Eclipse Modeling Framework (GMF, GEF, EMF, JET). Esse módulos são vistos na Figura 6.1.
Para que o OWL-S Composer funcione corretamente é aconselhável utilizar as mesmas versões
explicitadas.
• Eclipse Modeling Framework (EMF) (EMF, 2009)
Biblioteca capaz de gerar código para construir ferramentas a partir de um modelo de
dados. Isso implica que o plugin é capaz de gerar código a partir de um diagrama e
vice-versa. No caso do OWL-S Composer, o OWL-S é utilizado para gerar o documento
OWL-S (em sua versão 1.1) a partir do diagrama de composição. A versão do EMF
1 https://github.com/FORMAS/OWL-S-Composer
33
utilizada é a 2.5.0.
• Graphical Editing Framework (GEF) (GEF, 2013)
O GEF é um framework que provê ferramentas para criar editores gráficos no Eclipse.
Possui três componentes para a realização das tarefas. Draw2d, para renderizar os gráficos; GEF (MVC), biblioteca fornecida para criação do editor gráfico através da arquitetura Model View Controller (MVC) que facilita tanto na integração dos modelos gráficos
como na legibilidade e manutenabilidade do código; Zest, é um conjunto de ferramentas baseados em Draw2d que implementam a camada de visualização (View) do GEF. O
GEF oferece as ferramentas necessárias para que o OWL-S Composer defina composições
através de elementos gráficos. A versão utilizada do GEF é a 3.5.1.
• Graphical Modeling Framework (GMF) (GMF, 2010)
Componente que integra EMF e GEF, o GMF permite que o mapeamento entre diagrama
e código seja feito de forma visual. O OWL-S Composer utiliza o GMF para mapear a
modelagem da composição com os elementos do documento OWL-S. A versão utilizada
do GMF é a 1.2.0.
• Java Emitter Templates (JET) (JET, 2007)
Para aplicações que tem seu desenvolvimento baseado em modelos (Model Driven Development) o JET é comumente utilizado como um gerador de código. Através de templates
em Java Server Pages (JSP) o OWL-S Composer gera código Java através do diagrama de
composições. A versão utilizada do JET é a 1.1.0.
A versão do Eclipse utilizada para se realizar a implementação do plug-in foi o Eclipse
Helios 3.6.
Como ferramentas independentes do Eclipse estão o (1) JAX-SA (BABIK, 2013), que realiza anotações semânticas e permite a geração correspondente de documentos WSDL para
OWL-S, conversão opcional no OWL-S Composer, já que este pode importar OWL-S existentes
para realizar a composição de serviços; (2) OWLS-API (MINDSWAP, 2007) é uma biblioteca
que fornece o necessário para manejar documentos OWL-S, como leitura, escrita e execução de
serviços compostos.
34
6.4
6.4.1
PROJETO ESTRUTURAL
NUVENS UTILIZADAS
Para a criação da interface unificada de serviços em nuvem foi necessário selecionar uma
amostra de provedores de nuvem em que o OWL-S Composer pudesse interagir. Foram selecionados ao todo dois provedores: (1) Amazon Web Services (AWS) (AWS, 2013) e (2) Eucalyptus
(EUCALYPTUS, 2013).
O Amazon Web Services foi escolhido como um dos provedores de nuvem a serem implementados pelo seu amplo uso no mercado, além de ter uma facilidade para se publicar Serviços
Web através de um plug-in para Eclipse. Enquanto isso, o Eucalyptus foi escolhido por ser
um provedor de nuvem open source utilizado tanto por empresas quanto por instituições acadêmicas. Além disso, o Eucalyptus é parcialmente compatível com o Amazon Web Services,
implementando suas funcionalidades de forma similar à API da Amazon para facilitar a migração de aplicaçãoes entre essas nuvens.
6.4.2
ARQUITETURA DO OWL-S COMPOSER 4.0
A Figura 6.3 apresenta a arquitetura do OWL-S Composer 4.0. O retângulo representado
pelo círculo de número 1 representa a arquitetura da versão 3.1 do plug-in e suas funcionalidades. O que é acrescido na versão 4.0 é a interface para lidar com múltiplos provedores de
nuvem chamada Unified Cloud Service e os Cloud Services que são implementações da interface com as particularidades de cada nuvem. Conforme informado na Seção 6.4.1, apenas dois
Cloud Services foram implementados na versão 4.0, contudo, a implementação de novos Cloud
Services se torna uma tarefa mais simples, visto que será necessário implementar sobre a interface Unified Cloud Service que fornece um “mapa” das funções necessárias para se publicar na
nuvem.
6.5
IMPLEMENTAÇÃO
Para permitir que o OWL-S Composer auxilie na publicação de Serviços Web Semânticos
na nuvem é necessário conhecer as peculiaridades da nuvem ao se publicar um serviço. Para
a Amazon e Eucalyptus são necessários a criação/edição de três arquivos e uma biblioteca,
descritos a seguir.
• A biblioteca JAX-WS
35
Figura 6.3: Arquitetura do OWL-S Composer 4.0
Java API for XML Web Services (JAX-WS) (GLASSFISH, 2013) é uma API em Java
para criação de Serviços Web. O uso da biblioteca se deve ao protocolo de comunicação escolhido para os serviços que é o SOAP que por sua vez é baseado no XML. A
partir de anotações feitas nas classes e métodos criados a API é capaz de gerar o arquivo de descrições do Serviço Web (WSDL). Essa biblioteca deve se situar na pasta
WebContent/WEB-INF/lib do projeto.
• web.xml
O arquivo web.xml é um arquivo que descreve aplicações para publicação. Por padrão
em um projeto para publicação de Serviços Web no Eclipse, esse arquivo fica hospedado
na pasta WebContent/WEB-INF. Ele indica quais os Serviços Web disponíveis através da
tag <servlet> e os mapeia em urls através da tag <servlet-mapping>. A listagem 6.1
é um exemplo de arquivo web.xml para uma suposta aplicação que disponibiliza Serviços
Web que informam a temperatura.
Para que o JAX-WS delegue para onde as futuras requisições devem apontar é necessário
que um ouvinte (listener) seja registrado na aplicação. É o caso do WSServletContextListener que irá criar um objeto que irá delegar as rotas definidas no arquivo sun-jaxws.xml
que será abordado no item seguinte.
<?xml version="1.0" encoding="UTF-8"?>
<web−app>
<display−name>AWSWeatherSOAPServer</display−name>
<welcome−file−list>
<welcome−file>index.jsp</welcome−file>
</welcome−file−list>
<listener>
36
<listener−class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</
listener−class>
</listener>
<servlet>
<description>Temperature</description>
<display−name>WeatherInfo</display−name>
<servlet−name>WeatherInfo</servlet−name>
<servlet−class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet−class>
<load−on−startup>1</load−on−startup>
</servlet>
<servlet−mapping>
<servlet−name>WeatherInfo</servlet−name>
<url−pattern>/WeatherInfoService</url−pattern>
</servlet−mapping>
</web−app>
Listagem 6.1: Exemplo de arquivo web.xml
• sun-jaxws.xml
Hospedado na mesma pasta que o web.xml, o sun-jaxws.xml é um arquivo que indica
como acessar e qual é a implementação de um determinado Serviço Web. Essas informações são utilizadas pelo listener para delegar as requisições ao Serviço Web correto.
Cada Serviço Web é descrito através de um endpoint informando características como
nome (name), implementação (implementation) e padrão da URL (url-pattern). É importante ressaltar que, para que a aplicação funcione corretamente o atributo name do sunjaxws.xml seja igual à tag servlet-name do web.xml assim como o atributo url-pattern do
sun-jaxws.xml seja similar à tag url-pattern do web.xml.
A listagem 6.2 é um exemplo de arquivo sun-jaxws.xml para uma suposta aplicação que
informa o clima.
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='
2.0'>
<endpoint name='WeatherInfo' implementation='com.example.WeatherInfo'
url−pattern='/WeatherInfoService' />
</endpoints>
Listagem 6.2: Exemplo de arquivo sun-jaxws.xml
37
• Awscredentials.properties
Este arquivo fica hospedado ao lado da pasta src do projeto. Compõe as duas chaves de
acesso necessárias para publicar na nuvem denotadas por accessKey e secretKey. Essas
chaves provem a autenticação do usuário ao executar a ação de publicação.
Como o plug-in da Amazon para Eclipse realiza uma quantidade extensa de tarefas para
publicar projetos (criação de instância, de máquina virtual e configuração básica da instância),
optou-se realizar uma etapa de pré-publicação do projeto. Assim, o cliente terá a possibilidade
de verificar como o projeto se comporta antes de ser publicado em nuvem.
Para implementar a versão 4.0 do OWL-S Composer não foi necessário realizar nenhuma
modificação na versão anterior do plug-in. Apenas se estendeu o pacote owls.cloud com o conjunto de funcionalidades necessárias para realizar a pré-publicação. Foram criadas duas funcionalidades AWSCloudService e EucalyptusCloudService que implementam a interface UnifiedCloudService.
A listagem 6.3 mostra a implementação da classe AWSCloudService para a funcão prepareToPublish(). Essa função prepara a aplicação para ser publicada na Amazon, ou seja, o conjunto
de características exigidas pela Amazon para publicar um projeto. A rotina para a publicação
no Eucalyptus é a mesma, já que são provedores compatíveis.
public void prepareToPublish() {
importJaxWs();
updateCredentials();
updateWebXml();
updateJaxWsXml();
}
Listagem 6.3: Sequência de tarefas necessárias para preparar um projeto Amazon para
publicação
38
7
AVALIAÇÕES E PROVA DE
CONCEITO
Esse capítulo apresenta os três principais experimentos realizados para validar o presente
trabalho, o OWL-S Composer 4.0 e a análise dos respectivos resultados alcançados.
7.1
1a ESTUDO DE CASO: AVALIAÇÃO E EXPLORAÇÃO
DO OWL-S COMPOSER PARA MESTRADO E GRADUAÇÃO
Para aproximar os estudantes da Universidade Federal da Bahia (UFBA) com o OWL-S
Composer foi realizado um trabalho de divulgação do plug-in através de apresentações1 ministrados para alunos de mestrado em Ciência da Computação e bacharelado em Sistemas de
Informação.
Estas apresentações tinham como objetivos introduzir o plug-in, suas funcionalidades e
uso, convidar os estudantes a oferecem modificações e avaliar a ferramenta na perspectiva do
usuário. Foram realizados no total dois cursos de duas horas cada, expondo o OWL-S Composer
e suas funcionalidades para os estudantes num tutorial passo a passo. O caso utilizado foi uma
aplicação com dois Serviços Web: um para conversão de Celsius para Kelvin e outra de Kelvin
para Fahrenheit. Ao final os alunos deveriam produzir uma composição Celsius para Fahrenheit
utilizando as funcionalidades oferecidas pelo OWL-S Composer.
Ao final de cada apresentação foi realizada uma avaliação2 sobre as funcionalidades presentes no plug-in, a satisfação dos usuários e a importância de certas características a serem
implementadas para a cloud. Através de algumas técnicas da abordagem Goal Question Metrics (GQM) (BASILI; CALDIERA; ROMBACH, 1994), foi possível determinar quais são as
funcionalidades mais importantes para o sucesso da ferramenta. Além disso, com os resultados
1 http://homes.dcc.ufba.br/
dclaro/download/mate15/OWL-S%20Composer.pdf
2 https://docs.google.com/forms/d/1Z-rQVd4KAKwcmiz1WdUw-_W-9YUeTmbZDgCWO2_Q6D8/viewform
39
da avaliação é possível traçar objetivos e indicadores para as próximas iterações da ferramenta.
O questionário foi dividido em quatro partes: (1) Autoavaliação sobre os conhecimentos
em Serviços Web, (2) Avaliação do OWL-S Composer, (3) Relevância das funcionalidades e
(4) Importância de funcionalidades na nuvem. No primeiro ponto foi feito apenas um questionamento sobre o conhecimento do avaliador sobre Serviços Web e composição de serviços.
Para definir quais são os requisitos mínimos para uma ferramenta de composição de Serviços
Web foram utilizados os critérios descritos em (CHAFLE et al., 2007), (FONSECA; CLARO;
LOPES, 2009) e (SENA et al., 2010). A seguinte lista descreve os critérios a serem avaliados:
1. Funcionalidade de um Serviço Web *: O ambiente onde o plug-in está instalado deve
possuir a funcionalidade de criar um Serviço Web ou deve possuir plug-ins que realizem
esta tarefa;
2. Funcionalidade da composição de Serviços Web: O ambiente deve ser permitir lidar
com a composição de serviços web desde a sua criação até a execução desta composição;
3. Usabilidade: A interface deve possuir botões e menus que facilitam o desenvolvimento
da composição de serviços;
4. Integração: A ferramenta deve permitir a criação de composições de Serviços Web em
um único ambiente integrado sem a necessidade de recorrer a diversos recursos e ambientes para se ter uma composição de Serviços Web;
5. Legibilidade: Os arquivos *.OWL-S gerados, tanto na conversão do WSDL como na
geração a partir do diagrama de composição devem ser legíveis e reutilizáveis pela ferramenta sem necessidade de manipulação por conta do usuário;
6. Grau de Similaridade: A ferramenta deve ser capaz de descobrir serviços baseados no
grau de similaridade semântica;
7. Análise Global *: Em um aspecto geral, o plug-in auxilia usuários a manejarem composições de Serviços Web.
Os critérios em asterisco (*) se referem a pontos considerados apenas no item 2 da avaliação
(Avaliação do OWL-S Composer). Na avaliação sobre a importância de funcionalidades para a
composição de Serviços Web em nuvem foram considerados os seguintes itens:
1. Portabilidade: O plug-in deve possuir uma funcionalidade que permita a publicação de
Serviços Web em diferentes provedores de nuvem (Google, Amazon, Eucalyptus);
40
2. Interoperabilidade: O plug-in deve permitir que Serviços Web se comuniquem de modo
interoperável, ou seja, independente de qual provedor de nuvem estejam hospedados;
3. Descoberta de serviços: O plug-in deve permitir a descoberta de Serviços Web similares
em nuvens distintas;
4. Usabilidade: O plug-in deve permitir a publicação, composição e descoberta de serviços
em nuvem de uma maneira fácil e transparente para o desenvolvedor;
7.1.1
RESULTADOS
Ao final do curso todos os alunos conseguiram realizar a composição, apesar de que ainda
existiam alguns bugs que interviram no avanço de alguns alunos que tiveram que ser auxiliados. Após essa aula, alguns alunos de mestrado contribuiram com a correção de alguns erros
existentes na ferramenta, correções estas agregadas na versão 4.0 do OWL-S Composer.
O relatório completo da avaliação realizada pelos estudantes de mestrado e graduação segue
nos Anexos I e Anexos II deste trabalho. No entanto, a análise destes resultados é feita a seguir.
Vale lembrar que no momento em que o primeiro experimento foi realizado as funcionalidades
de publicação em nuvem do OWL-S Composer 4.0 não estavam prontas e portanto os estudantes
não utilizaram esta parte da plataforma.
Observou-se que 54% da turma de mestrado possuía algum conhecimento em composição
de serviços e 7% já conhecia o OWL-S Composer enquanto que na turma de graduação, nenhum
aluno tinha quaisquer tipo de conhecimento sobre composição de serviços ou já tinha ouvido
falar sobre o plug-in. 83% da turma de graduação tinha conhecimento sobre Serviços Web.
O critério considerado mais importante por ambas as turmas foi a interface, ponto que o
plug-in deixou a desejar devido a alguns erros que são apresentados sem qualquer mensagem
de erro, dificultando ao usuário a possibilidade de realizar correções. Essas mensagens de erro
foram atualizadas por alguns estudantes de mestrado, que agregaram mensagens às notificações
do OWL-S Composer. Nas duas turmas, 60% considerou que a interface é um item importante
e 28% como muito importante, enquanto que 56% dos avaliadores consideraram a ferramenta
como fraca no critério interface.
Em características como funcionalidade de composição de serviços e integração a ferramenta superou as expectativas dos alunos. Isso se deve ao fato de que o OWL-S Composer
está embutido no Eclipse e utiliza os recursos que a IDE fornece para o desenvolvimento de
plug-ins, facilitando não apenas o desenvolvimento, mas o uso por parte dos usuários.
41
De um ponto de viste geral o software teve uma boa aceitação tanto por parte dos alunos de
mestrado quanto por parte dos alunos de graduação. 85% dos alunos de mestrado consideraram
o OWL-S Composer como uma boa ferramenta para a composição de Serviços Web, enquanto
que na turma de graduação 45% o consideraram como muito boa e outros 45% como boa.
Na perspectiva cloud, os itens que tiveram mais média foram portabilidade e usabilidade.
Na escala de 0 a 4 esses itens tiveram média de 3.53 e 3.75 e na turma de graduação 3.44 e 3.44.
A inclusão da portabilidade na nuvem já é o objetivo do presente trabalho, mas a melhoria da
usabilidade da ferramenta pode ser tema de um trabalho futuro.
7.2
PROVA DE CONCEITO: PUBLICAÇÃO DE UM PROJETO NA AMAZON E NO EUCALYPTUS
Para fazer a publicação na Amazon e no Eucalyptus é necessário utilizar o plug-in da Amazon para Eclipse. Este plug-in oferece um conjunto de serviços para gerenciar uma nuvem,
entre eles a publicação de projetos em uma instância da Amazon. É possível configurar esse
plug-in para publicar no Eucalyptus também. Para fazer isso é necessário adicionar o conteúdo da listagem 7.1 no arquivo region.xml encontrado no workspace do Eclipse, no diretório
./metadata/.plugins/com.amazonaws.eclipse.core.
<region>
<displayname>EucalyptusCC</displayname>
<systemname>ecc−1</systemname>
<flag−icon>flags/usa.png</flag−icon>
<min−toolkit−version>1.1.0.0</min−toolkit−version>
<services>
<service name="S3">http://communitycloud.eucalyptus.com:8773/services/Walrus/</service>
<service name="IAM">http://communitycloud.eucalyptus.com:8773/services/Euare/</service>
<service name="EC2">http://communitycloud.eucalyptus.com:8773/services/Eucalyptus/</
service>
<service name="AutoScaling">http://communitycloud.eucalyptus.com:8773/services/
AutoScaling/</service>
<service name="CloudWatch">http://communitycloud.eucalyptus.com:8773/services/
CloudWatch/</service>
</services>
</region>
Listagem 7.1: Exemplo de arquivo web.xml
42
A etapa de pré-publicação do OWL-S Composer se resume em três etapas: (1) Seleção do
projeto, (2) Seleção das nuvens e pacotes e (3) Inserção das credenciais. A Figura 7.1 mostra
como inicializar a tarefa de pré-publicação.
Figura 7.1: Seleção do projeto a ser pré-publicado
A Figura 7.2 mostra o wizard de pré-publicação. Nesta tela são escolhidas as nuvens onde
o projeto é publicado e também os pacotes onde estão os Serviços Web. O Cloud Service irá
iterar sobre os arquivos *.java presentes nesse pacote e irá atualizar (ou criar, caso não existam)
os arquivos web.xml e sun-jaxws.xml abordados na Seção 6.5 como requisitos necessários para
publicação na nuvem.
A janela para inserção de credenciais para o Eucalytpus é vista na Figura 7.3. As credenciais
de um projeto ficam guardadas ao lado da pasta src e são usadas tanto pela Amazon como pelo
Eucalyptus para autenticar o usuário e permitir a publicação do projeto em uma instância.
Por fim, após gerados os arquivos, é necessário selecionar o projeto e invocar o plugin da
Amazon para o Eclipse e selecionar a função Deploy to AWS Elastic Beanstalk, demonstrado
pela Figura 7.4. Essa mesma função é utilizada para realizar a publicação no Eucalyptus. Uma
janela será aberta para configurar o servidor e baseado na chave ativa em suas credenciais é que
será apresentado os serviços disponíveis da Amazon ou do Eucalytpus. Ao final da publicação
é necessário executar o projeto no servidor escolhido e o navegador embutido no Eclipse irá
mostrar a página com os Serviços Web.
43
Figura 7.2: Seleção das nuvens e pacotes
Figura 7.3: Inserção de credenciais
Figura 7.4: Publicando com o plugin da Amazon para Eclipse
44
A Figura 7.5 ilustra a página de descrição do serviço após ser publicado na Amazon.
Figura 7.5: Página do serviço desenvolvido publicado na amazon
7.3
2o ESTUDO DE CASO: AVALIAÇÃO E TESTES REALIZADOS PELA EMPRESA JÚNIOR DE INFORMÁTICA DA UFBA
Com o objetivo de avaliar se a versão 4.0 do OWL-S Composer reduz o tempo utilizado
por desenvolvedores de Serviços Web, uma outra apresentação, com moldes similares ao primeiro experimento foi realizada. Nesta apresentação contudo, a ferramenta já estava completa
e corrigida.
Este curso teve uma quantidade menor de participantes comparada ao primeiro experimento. Seis integrantes da empresa júnior participaram com o objetivo de investigar se a etapa
de pré-publicação diminui o tempo geral para a publicação de serviços na cloud. A partir desse
objetivo as perguntas foram realizadas: “Qual o tempo para a publicação de aplicações?” e
“Quão satisfatório é esse tempo de publicação?”. Dessas perguntas são extraídos alguns indicadores como o tempo total de publicação (tempo atual - tempo antigo) e o índice de satisfação
com o tempo de desenvolvimento.
O projeto foi desenvolvido em duas etapas: Publicar na Amazon com o OWL-S Composer
e sem o OWL-S Composer. A ordem escolhida para realizar o experimento se deve ao fato
45
que o projeto desenvolvidos pelos integrantes da empresa júnior são os mesmos, usando apenas
técnicas diferentes. Isso significa que ao desenvolver sem o uso do plug-in eles terão a vantagem
de conhecer o algoritmo para desenvolver a aplicação, mas os resultados obtidos mostraram que
independente disso, o OWL-S Composer se mostrou mais eficiente.
A aplicação construída para esse projeto foi o conversor de temperatura. Dois serviços deveriam ser implementados: Kelvin para Fahrenheit e Celsius para Kelvin. Além disso, foi aplicado
o mesmo questionário do primeiro experimento para avaliar a ferramenta OWL-S Composer.
7.3.1
RESULTADOS
O Anexo III apresenta o relatório com os resultados do questionário e da avaliação. As
conclusões retiradas do experimentos estão expostas a seguir.
O tempo médio gasto pelos integrantes da empresa júnior para desenvolver e publicar o
software conversor de temperatura sem o OWL-S Composer é de 19 minutos e 38 segundos,
enquanto que a mesma aplicação utilizando o plug-in tem um tempo médio de 13 minutos e
18 segundos. A melhoria de aproximadamente seis minutos, uma economia média de 32%, se
deve ao tempo gasto com as tarefas de configuração da aplicação. Esse valor tende a aumentar
à medida que a quantidade de serviços cresce. Um outro fator que reduziu o tempo total para
publicação se deve a injeção de erros por parte do usuário. Ao utilizar a ferramenta esses erros
são eliminados.
Com relação ao índice de satisfação, 67% dos avaliadores se mostraram muito satisfeitos
com a economia de tempo para a publicação dos projetos.
46
8
CONCLUSÃO
O uso de Serviços Web Semânticos em nuvem ainda é uma área de pesquisa recente e
ainda falta estudos e ferramentas para o desenvolvimento desta. Prover ferramentas para realizar tarefas que lidam com o ciclo de vida de um Serviço Web Semântico são importantes por
eliminarem etapas que podem ser automatizadas, acelerando todo o processo. Um dos esforços
para se lidar com serviços em nuvem é manter um ambiente que seja interoperável, ou seja, que
Serviços Web publicados em nuvens diferentes tenham capacidade de se comunicar através de
composições.
Este trabalho propôs uma nova versão do OWL-S Composer capaz de lidar com publicação
de serviços em nuvens distintas com quantidade mínima de configuração, deixando tudo a cargo
de uma interface que liga cliente e provedor. A versão 4.0 do OWL-S Composer permite que
Serviços Web Semânticos sejam publicados nas nuvens da Amazon e Eucalyptus de forma conveniente. A versão corrente do plug-in assim como as anteriorem estão disponíveis na página
do SourceForge1 e o código fonte está hospedado no GitHub2 .
8.1
DIFICULDADES ENCONTRADAS
Um dos desafios para a realização deste trabalho foi com a tecnologia utilizada, especialmente com os módulos externos comentados no Capítulo 5. A falta de suporte e documentação
para uso de tais tecnologias dificultou o desenvolvimento. O OWL-S Composer também utiliza
internamente alguns plug-ins antigos que necessitam ser atualizados, assim como a versão do
Eclipse utilizada. No momento em que este trabalho foi escrito a versão mais atual do Eclipse
é a 4.2.2 de 2013, enquanto o plug-in utiliza a 3.5.1 de 2010.
1 https://sourceforge.net/projects/owl-scomposer/
2 https://github.com/FORMAS/OWL-S-Composer
47
8.2
TRABALHOS FUTUROS
Com a publicação de Serviços Web Semânticos em nuvem, este trabalho possibilita um
conjunto de novas funcionalidades para o OWL-S Composer 4.0, listados à seguir:
• A composição de Serviços Web Semânticos em nuvens distintas, isso implica na busca e
seleção de serviços em nuvens distintas;
• A descoberta de Serviços Web Semânticos similares em nuvem, facilitando a etapa de
seleção;
• Permitir que composições automáticas sejam feitas em nuvens distintas;
• Aprimorar o mecanismo de busca utilizado, a fim de considerar Pré-Condições e Efeitos;
• A atualização, revisão da arquitetura e documentação das ferramentas utilizadas no OWLS Composer, visando facilitar o trabalho de desenvolvimento de futuras funcionalidades
no plug-in.
48
REFERÊNCIAS BIBLIOGRÁFICAS
ALVES, F.; CLARO, D. B. Semantic web service composition on cloud (composição de
serviços web semânticos em nuvem). In: Minicursos da XIV Escola Regional de Informática
Bahia, Alagoas e Sergipe. Juazeiro/BA: UNIVASF, 2012. cap. 1, p. 97–128.
ALVES, F. de O. Uma composição de serviços em nuvem tolerante a falhas através do owl-s
composer. Trabalho de Conclusão de Curso (Graduação) - Universidade Federal da Bahia:
Orientadora: Daniela Claro. 2011.
AMORIM, R. Um algoritmo hibrido para descoberta de serviços web semânticos. Trabalho
de Conclusão de Curso (Graduação) - Universidade Federal da Bahia: Orientadora: Daniela
Claro. 2009.
ARMBRUST, M.; FOX, A.; GRIFFITH, R.; JOSEPH, A. D.; KATZ, R.; KONWINSKI, A.;
LEE, G.; PATTERSON, D.; RABKIN, A.; STOICA, I.; ZAHARIA, M. A view of cloud
computing. Commun. ACM, ACM, New York, NY, USA, v. 53, n. 4, p. 50–58, Abril 2010.
ISSN 0001-0782. Disponível em: <http://doi.acm.org/10.1145/1721654.1721672>.
AWS. Amazon Web Services. 2013. Disponível em: <http://aws.amazon.com/>.
BABIK, M. JAX-SA. Março 2013. Disponível em: <http://sourceforge.net/projects/jax-sa/>.
BASILI, V. R.; CALDIERA, G.; ROMBACH, H. D. The goal question metric approach.
Encyclopedia of software engineering, v. 2, n. 1994, p. 528–532, 1994.
BHUKYA REETA SONY A.L, G. M. D. P. On web services based cloud interoperability.
International Journal of Computer Science Issues, IJCSI, v. 9, n. 1, p. 232–236, Setembro
2012. ISSN 1694-0814. Disponível em: <http://doi.acm.org/10.1145/1721654.1721672>.
BLAKE, M.; TAN, W.; ROSENBERG, F. Composition as a service [web-scale workflow].
Internet Computing, IEEE, v. 14, n. 1, p. 78–82, 2010. ISSN 1089-7801.
CHAFLE, G.; DAS, G.; DASGUPTA, K.; KUMAR, A.; MITTAL, S.; MUKHERJEA, S.;
SRIVASTAVA, B. An integrated development enviroment for web service composition. IEEE
International Conference on Web Services, p. 839–847, 2007.
CHEN, Y.; PAXSON, V.; KATZ, R. H. What’s New About Cloud Computing Security? [S.l.],
Agosto 2010.
CLARO, D. B.; ALBERS, P.; HAO, J.-K. Approaches of web services composition.
International Conference on Enterprise Information Systems, p. 208–213, Maio 2005.
EMF. Eclipse Modeling Framework. Junho 2009. Disponível em:
<http://www.eclipse.org/modeling/emf/>.
49
EUCALYPTUS. Eucalyptus. 2013. Disponível em: <http://www.eucalyptus.com/>.
FERREIRA, M. Integração de mecanismo de self-healing ao owl-s composer. Trabalho de
Conclusão de Curso (Graduação) - Universidade Federal da Bahia: Orientadora: Daniela
Claro. 2010.
FONSECA, A. de A.; CLARO, D. B.; LOPES, D. C. P. Gerenciando o desenvolvimento de
uma composição de serviços web semânticos através do owl-s composer. In: Proceedings of
the 5th Brazilian Symposium of Information Systems (SBSI2009). [S.l.: s.n.], 2009.
FOUNDATION, T. E. Eclipse. 2013. Último acesso em 25 de junho de 2013. Disponível em:
<http://www.eclipse.org/>.
GEF. Graphical Editing Framework. Março 2013. Disponível em:
<http://www.eclipse.org/gef/>.
GLASSFISH. JAX-WS. 2013. Disponível em: <http://jax-ws.java.net/>.
GMF. Graphical Modeling Framework. Fevereiro 2010. Disponível em:
<http://www.eclipse.org/modeling/gmp/>.
HUMMER, W.; MICHLMAYR, A.; ROSENBERG, F.; DUSTDAR, S.; HUMMER, W.;
MICHLMAYR, A.; DUSTDAR, S. Vresco - vienna runtime environment for service-oriented
. [S.l.]: Springer, 2011. cap. 11, p. 299–324.
computing. In:
JET. Java Emitter Templates. Junho 2007. Disponível em:
<http://www.eclipse.org/modeling/m2t/?project=jet#jet>.
KAISERSWERTH, M.; BRIAN, O.; BRUNSCHWILER, T.; DILL, H.; CHRIST, H.;
FALSAFI, B.; FISCHER, M.; GRIVAS, S. G.; GIOVANOLI, C.; GISI, R. E.; GUTMANN,
R.; KüNDIG, M.; LEINEN, S.; MüLLER, W.; OESCH, D.; REDLI, M.; REY, D.; RIEDL,
R.; SCHäR, A.; SPICHIGER, A.; WIDMER, U.; WIGGINS, A.; ZOLLINGER, M. Cloud
Computing. [S.l.], Novembro 2012.
KOPECKY, J.; VITVAR, T.; BOURNEZ, C.; FARRELL, J. Sawsdl: Semantic annotations for
wsdl and xml schema. IEEE Internet Computing, v. 11, n. 6, p. 60–67, 2007.
KUMAR, S.; MISHRA, R. B. Trs: System for recommending semantic web service
composition approaches. In: Information Technology, 2008. ITSim 2008. International
Symposium on. [S.l.: s.n.], 2008. v. 2.
LAUSEN, H.; POLLERES, A.; ROMAN, D. Web service modeling ontology (wsmo). W3C
Member Submission, Junho 2005. Último acesso em 06 de maio de 2013. Disponível em:
<http://www.w3.org/Submission/WSMO/>.
LEAVITT, N. Is cloud computing really ready for prime time? Computer, IEEE Computer
Society Press, Los Alamitos, CA, USA, v. 42, n. 1, p. 15–20, jan. 2009. ISSN 0018-9162.
Disponível em: <http://dx.doi.org/10.1109/MC.2009.20>.
LEE, T.; HENDLER, J.; LASSILA, O. The semantic web. Scientific American, v. 284, n. 5, p.
34–43, 2001.
50
MACKENZIE, C.; LASKEY, K.; MCCABE, F.; BROWN, P. F.; METZ, R. Reference
Model for Service Oriented Architecture. August 2006. Disponível em: <https://www.oasisopen.org/committees/download.php/19679/>.
MARTIN, D.; BURSTEIN, M.; HOBBS, J.; LASSILA, O.; MCDERMOTT, D.; MCILRAITH,
S.; NARAYANAN, S.; PAOLUCCI, M.; PARSIA, B.; PAYNE, T.; SIRIN, E.; SRINIVASAN,
N.; SYCARA, K. OWL-S Semantic Markup for Web Services. Novembro 2004. Disponível em:
<http://www.w3.org/Submission/OWL-S/>.
MARTIN, D.; BURSTEIN, M.; MCDERMOTT, D.; MCILRAITH, S.; PAOLUCCI, M.;
SYCARA, K.; MCGUINNESS, D. L.; SIRIN, E.; SRINIVASAN, N. Bringing semantics
to web services with owl-s. World Wide Web, Kluwer Academic Publishers, Hingham,
MA, USA, v. 10, n. 3, p. 243–277, Setembro 2007. ISSN 1386-145X. Disponível em:
<http://dx.doi.org/10.1007/s11280-007-0033-x>.
MELL, P.; GRANCE, T. The NIST Definition of Cloud Computing. Setembro 2011. Disponível
em: <http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf>.
MICHELS, P. H. Coreografia de serviços web. Trabalho de Conclusão de Curso (Graduação em
Sistemas de Informação) - Universidade Federal de Santa Catarina. Orientador: Renato Fileto.
2009. Disponível em: <http://projetos.inf.ufsc.br/arquivos_projetos/projeto_621/artigo.pdf>.
MINDSWAP. Maryland Information and Network Dynamics Lab Semantic Web Agents
Project. 2007. Disponível em: <http://www.mindswap.org/2004/owl-s/api/>.
NANDIGAM, J.; GUDIVADA, V. N.; KALAVALA, M. Semantic web services. J. Comput. Sci. Coll., Consortium for Computing Sciences in Colleges,
USA, v. 21, n. 1, p. 50–63, Outubro 2005. ISSN 1937-4771. Disponível em:
<http://dl.acm.org/citation.cfm?id=1088791.1088801>.
NEWCOMER, E. Understanding Web Services: XML, WSDL, SOAP and UDDI. [S.l.]:
Addison-Wesley Longman Publishing, 2002.
PAOLUCCI, M.; SYCARA, K. Autonomous semantic web services. Internet Computing,
IEEE, v. 7, n. 5, p. 34–41, 2003. ISSN 1089-7801.
PARAMESWARAN, A.; CHADDHA, A. Cloud interoperability and standardization. SETLabs
Briefings, v. 7, n. 7, p. 19–26, 2009.
PAUTASSO, C.; ZIMMERMANN, O.; LEYMANN, F. Restful web services vs. "big"’ web
services: making the right architectural decision. In: Proceedings of the 17th international
conference on World Wide Web. New York, NY, USA: ACM, 2008. (WWW ’08), p. 805–814.
ISBN 978-1-60558-085-2. Disponível em: <http://doi.acm.org/10.1145/1367497.1367606>.
PETCU, D. Portability and interoperability between clouds: Challenges and case study. In:
ABRAMOWICZ, W.; LLORENTE, I.; SURRIDGE, M.; ZISMAN, A.; VAYSSIèRE, J. (Ed.).
Towards a Service-Based Internet. [S.l.]: Springer Berlin Heidelberg, 2011, (Lecture Notes in
Computer Science, v. 6994). p. 62–74. ISBN 978-3-642-24754-5.
ROSENBERG, F.; LEITNER, P.; MICHLMAYR, A.; CELIKOVIC, P.; DUSTDAR, S.
Towards composition as a service - a quality of service driven approach. In: Data Engineering,
2009. ICDE ’09. IEEE 25th International Conference on. [S.l.: s.n.], 2009. p. 1733–1740.
ISSN 1084-4627.
51
SENA, V. A. Incorporação da similaridade semântica no owl-s composer. Trabalho de
Conclusão de Curso (Graduação) - Universidade Federal da Bahia: Orientadora: Daniela
Claro. 2009.
SENA, V. A.; CLARO, D. B.; AMORIM, R.; LOPES, D. Similaridade semântica na
composição de sistemas de informação através dos serviços web. In: VI Simpósio Brasileiro de
Sistemas de Informação (SBSI 2010). [S.l.: s.n.], 2010.
SIVASHANMUGAM, K.; VERMA, K.; SHETH, A.; MILLER, J. Adding Semantics to Web
Services Standards. 2003.
VOOSLUYS, W.; BROBERG, J.; BUYYA, R. Introduction to Cloud Computing, in Cloud
Computing: Principles and Paradigms. [S.l.]: Wiley, 2011.
WANG, H.; ZHANG, Y. qing; SUNDERRAMAN, R. Soft semantic web services agent. In:
Proceedings of NAFIPS 2004. [S.l.: s.n.], 2004. p. 126–129.
ZHANG, Q.; CHENG, L.; BOUTABA, R. Cloud computing: state-of-the-art and research
challenges. Journal of Internet Services and Applications, Springer London, v. 1, n. 1, p. 7–18,
Maio 2010. ISSN 1867-4828. Disponível em: <http://dx.doi.org/10.1007/s13174-010-00076>.
ZOU, G.; CHEN, Y.; XIANG, Y.; HUANG, R.; XU, Y. Ai planning and combinatorial
optimization for web service composition in cloud computing. In: Proceedings of the
International Conference on Cloud Computing and Virtualization. [S.l.: s.n.], 2010.
ANEXO I
Relatório da avaliação do OWL-S Composer por alunos do Mestrado
em Ciência da Computação da Universidade Federal da Bahia.
Informações sobre a avaliação
Data de realização: 24/07/2013
Número de avaliadores: 13
Versão do OWL-S Composer: 3.1
Seção 1. Informações do avaliador
Questão realizada como autoavaliação para mensurar o conhecimento dos
participantes em Serviços Web, Serviços Web Semânticos e OWL-S Composer.
Em uma escala de 0 a 4, determinar o conhecimento de Serviços Web, onde:
0. Eu não conhecia nada de Serviços Web antes de trabalhar com a ferramenta;
1. Eu conhecia pouco de Serviços Web;
2. Eu conhecia pouco de composição de Serviços Web;
3. Eu conhecia muito de composição de Serviços Web;
4. Eu já conhecia a ferramenta o OWL-S Composer.
Número de respostas Conhecimento em Serivços Web 8 7 6 5 4 3 2 1 0 0 1 2 Resposta 3 4 Seção 2. Presença das funcionalidades do plug-in x Importância das
funcionalidades numa ferramenta para composição de Serviços Web
Os quesitos desta seção comparam as funcionalidades presentes no OWL-S
Composer com a importância das mesmas em uma ferramenta compositora de
serviços. Algumas questões foram feitas apenas para avaliar o plug-in. Tais questões
estão marcadas com um asterisco (*).
Todas as questões desta seção variam de uma escala de 0 a 4, onde:
0. Não aplica ou não tem conhecimento;
1. Inadequada ou ausente;
2. Fraca;
3. Boa;
4. Muito boa.
Critério Interface:
A interface possui botões e menus que facilitam o desenvolvimento da
composição de serviços?
Número de respostas Interface 10 9 8 7 6 5 4 3 2 1 0 OWL-­‐S Composer Importância 0 1 2 Resposta 3 4 Critério Funcionalidade de um Serviço Web *:
O ambiente tem a funcionalidade de criar um serviço web a partir de outros
plugins já existentes na ferramenta?
Número de respostas Funcionalidade de um Serviço Web 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 Resposta Critério Funcionalidade da composição de Serviços Web:
O ambiente permite lidar com a composição de serviços web desde a sua
criação até a execução desta composição? Há menus que facilitam esta criação?
Número de respostas Funcionalidade na composição de Serviços Web 10 8 6 OWL-­‐S Composer 4 Importância 2 0 0 1 2 Resposta 3 4 Critério Usabilidade:
A ferramenta é de fácil manuseio para a criação de composições de serviços
web? É possível utilizar controles da composição, tais como sequence, split, na
ferramenta facilmente?
Usabilidade Número de respostas 7 6 5 4 3 OWL-­‐S Composer 2 Importância 1 0 0 1 2 3 4 Resposta Critério Integração:
A ferramenta permite criar composições de serviços web em um único
ambiente integrado ou é necessário o uso de diversos ambientes para se ter uma
composição de serviços web?
Número de respostas Integração 10 9 8 7 6 5 4 3 2 1 0 OWL-­‐S Composer Importância 0 1 2 Resposta 3 4 Critério Legibilidade:
Os arquivos *.OWL-S gerados, tanto na conversão do WSDL como na
geração a partir do diagrama de composição, são legíveis? Eles puderam ser
reutilizados na ferramenta? Houve necessidade de manipulá-los manualmente?
Número de respostas Legibilidade 10 9 8 7 6 5 4 3 2 1 0 OWL-­‐S Composer Importância 0 1 2 3 4 Resposta Critério Grau de Similaridade:
A ferramenta permite descobrir serviços baseados no grau de similaridade
semântica?
Grau de Similaridade 4.5 Número de respostas 4 3.5 3 2.5 OWL-­‐S Composer 2 1.5 Importância 1 0.5 0 0 1 2 Resposta 3 4 Critério Análise Global *:
Em geral, o plug-in auxilia o usuário a manejar composições de Serviços
Web?
Análise Global Número de respostas 12 10 8 6 4 2 0 0 1 2 3 4 Resposta Seção 3. Relevância de funcionalidades para o OWL-S Composer na
nuvem
O conjunto de questões utilizado nesta seção visa compreender a relevância de
certas funcionalidades para uma ferramenta capaz de realizar composição de Serviços
Web em nuvem.
Nesse contexto, as questões utilizam uma escala de 0 a 4, onde:
0. Não aplica ou não tem conhecimento;
1. Irrelevante;
2. Moderadamente relevante;
3. Relevante;
4. Muito relevante.
Critério Publicação portável:
É relavante ter uma funcionalidade que permite a publicação em diferentes
provedores de nuvem (Google, Amazon, Eucalyptus)? Isso facilita o desenvolvimento
de Cloud Services?
Portabilidade 9 Número de respostas 8 7 6 5 4 3 2 1 0 0 1 2 3 4 Resposta Critério Interoperabilidade entre nuvens:
É relevante para o plugin criar uma interface interoperável onde serviços
possam interagir com serviços publicados em outras nuvens?
Interoperabilidade 9 Número de respostas 8 7 6 5 4 3 2 1 0 0 1 2 Resposta 3 4 Critério Descoberta de serviços:
É importante que o plugin permita descobrir serviços similares em nuvens
distintas?
Descoberta de Serviços Web 9 Número de respostas 8 7 6 5 4 3 2 1 0 0 1 2 3 4 Resposta Critério Usabilidade:
É importante que o plugin permita publicar, compor e descobrir serviços em
nuvem de uma maneira fácil e transparente para o desenvolvedor?
Usabilidade 10 Número de respostas 9 8 7 6 5 4 3 2 1 0 0 1 2 Resposta 3 4 ANEXO II
Relatório da avaliação do OWL-S Composer por alunos do
Bacharelado em Sistemas de Informação da Universidade Federal da
Bahia.
Informações sobre a avaliação
Data de realização: 31/07/2013
Número de avaliadores: 12
Versão do OWL-S Composer: 3.1
Seção 1. Informações do avaliador
Questão realizada como autoavaliação para mensurar o conhecimento dos
participantes em Serviços Web, Serviços Web Semânticos e OWL-S Composer.
Em uma escala de 0 a 4, determinar o conhecimento de Serviços Web, onde:
0. Eu não conhecia nada de Serviços Web antes de trabalhar com a ferramenta;
1. Eu conhecia pouco de Serviços Web;
2. Eu conhecia pouco de composição de Serviços Web;
3. Eu conhecia muito de composição de Serviços Web;
4. Eu já conhecia a ferramenta o OWL-S Composer.
Número de respostas Conhecimento em Serivços Web 12 10 8 6 4 2 0 0 1 2 Resposta 3 4 Seção 2. Presença das funcionalidades do plug-in x Importância das
funcionalidades numa ferramenta para composição de Serviços Web
Os quesitos desta seção comparam as funcionalidades presentes no OWL-S
Composer com a importância das mesmas em uma ferramenta compositora de
serviços. Algumas questões foram feitas apenas para avaliar o plug-in. Tais questões
estão marcadas com um asterisco (*).
Todas as questões desta seção variam de uma escala de 0 a 4, onde:
0. Não aplica ou não tem conhecimento;
1. Inadequada ou ausente;
2. Fraca;
3. Boa;
4. Muito boa.
Critério Interface:
A interface possui botões e menus que facilitam o desenvolvimento da
composição de serviços?
Interface Número de respostas 8 7 6 5 4 OWL-­‐S Composer 3 Importância 2 1 0 0 1 2 Resposta 3 4 Critério Funcionalidade de um Serviço Web *:
O ambiente tem a funcionalidade de criar um serviço web a partir de outros
plugins já existentes na ferramenta?
Funcionalidade de um Serviço Web Número de respostas 6 5 4 3 2 1 0 0 1 2 3 4 Resposta Critério Funcionalidade da composição de Serviços Web:
O ambiente permite lidar com a composição de serviços web desde a sua
criação até a execução desta composição? Há menus que facilitam esta criação?
Número de respostas Funcionalidade na composição de Serviços Web 10 8 6 OWL-­‐S Composer 4 Importância 2 0 0 1 2 Resposta 3 4 Critério Usabilidade:
A ferramenta é de fácil manuseio para a criação de composições de serviços
web? É possível utilizar controles da composição, tais como sequence, split, na
ferramenta facilmente?
Usabilidade Número de respostas 8 7 6 5 4 OWL-­‐S Composer 3 Importância 2 1 0 0 1 2 3 4 Resposta Critério Integração:
A ferramenta permite criar composições de serviços web em um único
ambiente integrado ou é necessário o uso de diversos ambientes para se ter uma
composição de serviços web?
Integração Número de respostas 8 7 6 5 4 OWL-­‐S Composer 3 Importância 2 1 0 0 1 2 Resposta 3 4 Critério Legibilidade:
Os arquivos *.OWL-S gerados, tanto na conversão do WSDL como na
geração a partir do diagrama de composição, são legíveis? Eles puderam ser
reutilizados na ferramenta? Houve necessidade de manipulá-los manualmente?
Legibilidade Número de respostas 8 7 6 5 4 OWL-­‐S Composer 3 Importância 2 1 0 0 1 2 3 4 Resposta Critério Grau de Similaridade:
A ferramenta permite descobrir serviços baseados no grau de similaridade
semântica?
Grau de Similaridade Número de respostas 6 5 4 3 OWL-­‐S Composer 2 Importância 1 0 0 1 2 Resposta 3 4 Critério Análise Global *:
Em geral, o plug-in auxilia o usuário a manejar composições de Serviços
Web?
Análise Global Número de respostas 6 5 4 3 2 1 0 0 1 2 3 4 Resposta Seção 3. Relevância de funcionalidades para o OWL-S Composer na
nuvem
O conjunto de questões utilizado nesta seção visa compreender a relevância de
certas funcionalidades para uma ferramenta capaz de realizar composição de Serviços
Web em nuvem.
Nesse contexto, as questões utilizam uma escala de 0 a 4, onde:
0. Não aplica ou não tem conhecimento;
1. Irrelevante;
2. Moderadamente relevante;
3. Relevante;
4. Muito relevante.
Critério Publicação portável:
É relavante ter uma funcionalidade que permite a publicação em diferentes
provedores de nuvem (Google, Amazon, Eucalyptus)? Isso facilita o desenvolvimento
de Cloud Services?
Portabilidade Número de respostas 6 5 4 3 2 1 0 0 1 2 3 4 Resposta Critério Interoperabilidade entre nuvens:
É relevante para o plugin criar uma interface interoperável onde serviços
possam interagir com serviços publicados em outras nuvens?
Interoperabilidade 9 Número de respostas 8 7 6 5 4 3 2 1 0 0 1 2 Resposta 3 4 Critério Descoberta de serviços:
É importante que o plugin permita descobrir serviços similares em nuvens
distintas?
Descoberta de Serviços Web 9 Número de respostas 8 7 6 5 4 3 2 1 0 0 1 2 3 4 Resposta Critério Usabilidade:
É importante que o plugin permita publicar, compor e descobrir serviços em
nuvem de uma maneira fácil e transparente para o desenvolvedor?
Usabilidade 10 Número de respostas 9 8 7 6 5 4 3 2 1 0 0 1 2 Resposta 3 4 ANEXO III
Relatório da avaliação do OWL-S Composer por integrantes da
Empresa Júnior de informática da Universidade Federal da Bahia.
Informações sobre a avaliação
Data de realização: 13/08/2013
Número de avaliadores: 6
Versão do OWL-S Composer: 4.0
Seção 1. Comparativo de tempo de publicação usando o OWL-S
Composer 4.0
Através do desenvolvimento de uma aplicação que disponibilizam Serviços
Web de conversão de temperatura, os avaliadores preencheram um formulário para
comparar a diferença entre o tempo de publicação usando a tarefa de pré-publicação
realizada pelo OWL-S Composer e sem utilizá-la. A tabela à seguir apresenta os
resultados desse experimento.
Com OWL- S Composer
Sem OWL-S Composer
Avaliador 1
10:00
16:20
Avaliador 2
12:40
17:15
Avaliador 3
14:20
18:45
Avaliador 4
13:40
18:30
Avaliador 5
15:10
20:25
Avaliador 6
14:00
26:30
Média dos Candidatos
13:18
19:38
Foi questionado o índice de satisfação dos avaliadores com relação à economia de
tempo devido ao uso do plug-in. O seguinte gráfico retrata os resultados.
Número de respostas Satisfação com economia de tempo 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 1 2 3 4 5 Resposta Seção 2. Informações do avaliador
Questão realizada como autoavaliação para mensurar o conhecimento dos
participantes em Serviços Web, Serviços Web Semânticos e OWL-S Composer.
Em uma escala de 0 a 4, determinar o conhecimento de Serviços Web, onde:
0. Eu não conhecia nada de Serviços Web antes de trabalhar com a ferramenta;
1. Eu conhecia pouco de Serviços Web;
2. Eu conhecia pouco de composição de Serviços Web;
3. Eu conhecia muito de composição de Serviços Web;
4. Eu já conhecia a ferramenta o OWL-S Composer.
Número de respostas Conhecimento em Serivços Web 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 3 4 Resposta Seção 3. Presença das funcionalidades do plug-in x Importância das
funcionalidades numa ferramenta para composição de Serviços Web
Os quesitos desta seção comparam as funcionalidades presentes no OWL-S
Composer com a importância das mesmas em uma ferramenta compositora de
serviços. Algumas questões foram feitas apenas para avaliar o plug-in. Tais questões
estão marcadas com um asterisco (*).
Todas as questões desta seção variam de uma escala de 0 a 4, onde:
0. Não aplica ou não tem conhecimento;
1. Inadequada ou ausente;
2. Fraca;
3. Boa;
4. Muito boa.
Critério Interface:
A interface possui botões e menus que facilitam o desenvolvimento da
composição de serviços?
Interface Número de respostas 7 6 5 4 3 OWL-­‐S Composer 2 Importância 1 0 0 1 2 3 4 Resposta Critério Funcionalidade de um Serviço Web *:
O ambiente tem a funcionalidade de criar um serviço web a partir de outros
plugins já existentes na ferramenta?
Funcionalidade de um Serviço Web Número de respostas 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 Resposta 3 4 Critério Funcionalidade da composição de Serviços Web:
O ambiente permite lidar com a composição de serviços web desde a sua
criação até a execução desta composição ? Há menus que facilitam esta criação?
Número de respostas Funcionalidade na composição de Serviços Web 7 6 5 4 3 OWL-­‐S Composer 2 Importância 1 0 0 1 2 3 4 Resposta Critério Usabilidade:
A ferramenta é de fácil manuseio para a criação de composições de serviços
web? É possível utilizar controles da composição, tais como sequence, split, na
ferramenta facilmente?
Usabilidade Número de respostas 6 5 4 3 OWL-­‐S Composer 2 Importância 1 0 0 1 2 Resposta 3 4 Critério Integração:
A ferramenta permite criar composições de serviços web em um único
ambiente integrado ou é necessário o uso de diversos ambientes para se ter uma
composição de serviços web?
Integração Número de respostas 7 6 5 4 3 OWL-­‐S Composer 2 Importância 1 0 0 1 2 3 4 Resposta Critério Legibilidade:
Os arquivos *.OWL-S gerados, tanto na conversão do WSDL como na
geração a partir do diagrama de composição, são legíveis? Eles puderam ser
reutilizados na ferramenta? Houve necessidade de manipulá-los manualmente?
Legibilidade Número de respostas 7 6 5 4 3 OWL-­‐S Composer 2 Importância 1 0 0 1 2 Resposta 3 4 Critério Grau de Similaridade:
A ferramenta permite descobrir serviços baseados no grau de similaridade
semântica?
Grau de Similaridade Número de respostas 7 6 5 4 OWL-­‐S Composer 3 Importância 2 1 0 0 1 2 3 4 Resposta Critério Análise Global *:
Em geral, o plug-in auxilia o usuário a manejar composições de Serviços
Web?
Análise Global Número de respostas 6 5 4 3 2 1 0 0 1 2 Resposta 3 4 Seção 4. Relevância de funcionalidades para o OWL-S Composer na
nuvem
O conjunto de questões utilizado nesta seção visa compreender a relevância de
certas funcionalidades para uma ferramenta capaz de realizar composição de Serviços
Web em nuvem.
Nesse contexto, as questões utilizam uma escala de 0 a 4, onde:
0. Não aplica ou não tem conhecimento;
1. Irrelevante;
2. Moderadamente relevante;
3. Relevante;
4. Muito relevante.
Critério Publicação portável:
É relavante ter uma funcionalidade que permite a publicação em diferentes
provedores de nuvem (Google, Amazon, Eucalyptus)? Isso facilita o desenvolvimento
de Cloud Services?
Portabilidade Número de respostas 6 5 4 3 2 1 0 0 1 2 Resposta 3 4 Critério Interoperabilidade entre nuvens:
É relevante para o plugin criar uma interface interoperável onde serviços
possam interagir com serviços publicados em outras nuvens?
Interoperabilidade 4.5 Número de respostas 4 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 3 4 Resposta Critério Descoberta de serviços:
É importante que o plugin permita descobrir serviços similares em nuvens
distintas?
Descoberta de Serviços Web 4.5 Número de respostas 4 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 Resposta 3 4 Critério Usabilidade:
É importante que o plugin permita publicar, compor e descobrir serviços em
nuvem de uma maneira fácil e transparente para o desenvolvedor?
Usabilidade Número de respostas 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 Resposta 3 4 
Download

MonografiaMarco Antonio2013_ VersaoFinal