Académique Documents
Professionnel Documents
Culture Documents
RECIFE, FEBRUARY/2014
RECIFE, FEBRUARY/2014
Agradecimentos
vii
Resumo
xi
Abstract
The industrial production before Taylor was essentially focused on manufacturing and
unique products. The Taylorism and his time and motion studies have led to the industry
the idea of standardization of products. Ford, sometime later, invented the product
line which from then on was possible to mass produce by reducing the delivery time
and product costs. Regarding the software industry, this presents both a manufacturing
and mass production that generates products that are denoted for Pohl et al. (2005) as
individual software and standard software: a clear influence of Fordism in the design
paradigm of Software Product Lines (SPL). However, this development paradigm was not
designed to support changing requirements of users at runtime. Faced with this problem,
the academy has developed and proposed ways to extend the paradigm of SPL in order
to enable such dynamic reconfigurations of software. From This effort emerged the
Dynamics Software Lines (DSPL) (Hallsteinsen et al., 2008). Considering this scenario,
the objective of this dissertation is to contribute to this research area presenting a new way
of thinking which features a DSPL should be connected at runtime to a product based on
an analysis that measures and validates quality attributes in service levels specified by
the user. For this it was necessary to review the existing literature searching means of
analyzing service quality attributes at runtime in DSPL and a exploratory development of
an approach for reconfiguration of DSPL using dynamic features OSGi based. In order to
validate the proposed approach , it was tested in a mobile and context-aware DSPL, where
we can verify this assertiveness. At the end of the exploratory validation we can observe
the effectiveness of the proposed approach in DSPL in which it was applied. However,
it is necessary to perform statistical evidence for the hypothesis that this demonstrated
effectiveness is valid for other areas DSPLs other tests.
Keywords: Software Product Line, SPL, Dynamic SPL, SPL, Service Quality attributes
xiii
Sumrio
Lista de Figuras
xvii
Lista de Tabelas
xix
Lista de Acrnimos
xxi
Introduo
1.1
Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Problemtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
1.4
Escopo Negativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5
Organizao da Dissertao . . . . . . . . . . . . . . . . . . . . . . . .
Mtodos
Reviso da Literatura
2.1
2.2
Qualidade de Servios . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.3
11
2.3.1
12
13
2.4
18
2.5
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
DYMOS QoS
21
3.1
Anlise Exploratria . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.1.1
Operaes do DYMOS . . . . . . . . . . . . . . . . . . . . . .
24
Interveno Exploratria . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.2.1
Seleo de Servios . . . . . . . . . . . . . . . . . . . . . . . .
30
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.2
3.3
4
xxiii
Avaliao
33
4.1
Validao Exploratria . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.2
38
xv
4.3
5
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Concluso
5.1 Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Limitaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
44
44
45
Referncias Bibliogrficas
xvi
47
Lista de Figuras
1.1
Cenrio do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
2.2
13
14
3.1
3.2
22
3.4
3.5
4.1
4.2
4.3
4.4
3.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
26
27
28
34
35
40
42
xvii
Lista de Tabelas
4.1
4.2
4.3
4.4
4.5
Valores de QoS . . . . . . . .
Capacidades Mximas e Atuais
Custo . . . . . . . . . . . . .
Desempenho do Dymos QoS .
Desempenho do Dymos . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
40
40
41
42
xix
Lista de Acrnimos
DOP
DSPL
SPL
OSGi
SCM
SOA
SEI
xxi
3.1
3.2
3.3
4.1
4.2
4.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
23
29
35
36
37
xxiii
1
Introduo
O legado deixado por Ford com a criao da linha de produtos modificou os meios
de pensar a atividade industrial. No que tange indstria de software, esta, apresenta
tanto uma produo manufatureira quanto em massa que gera produtos que so denotados
segundo Pohl et al. (2005) como software individual e software standard.
Denota-se, neste contexto, uma clara influncia do fordismo na concepo do paradigma de Linhas de Produto de Software (SPL). Neste paradigma os produtos de software
so criados a partir de um conjunto comum de caractersticas, diferenciando-se entre si
pelo gerenciamento de um conjunto de caractersticas variveis que diferenciam cada
produto.
O paradigma SPL tradicionalmente divido em duas fases: a fase de Engenharia de
Linha de Produtos e a fase de Engenharia do Produto. Na primeira fase so definidas
e implementadas todas as caractersticas que estaro presentes em todos os produtos
chamadas de core assets, assim como as caractersticas variveis que podem ou no
estar em um produto da SPL. Durante a fase de Engenharia de Produto, so selecionadas
para compor o produto alm dos core assets as caractersticas variveis que atendem a
determinados requisitos de usurios que justificam a sua escolha para a composio do
produto.
CAPTULO 1. INTRODUO
O ato de selecionar o conjunto de caractersticas que iro compor o produto e construlo para ser entregue chamado de derivao de produto. Sendo assim, este paradigma de
desenvolvimento no foi concebido para suportar mudanas nos requisitos de usurios
em tempo de execuo. Diante deste problema, a academia tem desenvolvido e proposto
maneiras de estender o paradigma de SPL, de forma a permitir que essas reconfiguraes
dinmicas do software sejam suportadas. Surgiram deste esforo as Linhas de Produto de
Software Dinmicas (DSPL) (Hallsteinsen et al., 2008).
1.1
Motivao
O projeto Ubstructure1 mantm a MobiLine, que uma DSPL para aplicaes mveis
sensveis ao contexto dividida em dois nveis de abstrao: base e especfico. O nvel
base possui caractersticas comuns a aplicaes mveis e sensveis ao contexto. J o nvel
especfico composto por caractersticas que pertencem a um determinado domnio de
negcio (Marinho et al., 2012).
Esta SPL composta por dois produtos: o GREat Tour e o Cin Tour, que so guias de
visitas mveis sensveis ao contexto derivados da MobiLine. Ambos so executados a
partir de dispositivos que possuem o sistema operacional Android e fornecem informaes
sobre os pesquisadores e os ambientes do laboratrio do grupo de pesquisas GREat da
Universidade Federal do Cear e do Centro de Informtica da Universidade Federal de
Pernambuco, respectivamente.
Estes aplicativos utilizam informaes contextuais, como a localizao, o perfil e as
preferncias do usurio visitante. Assim como as requisies desencadeadas por este e as
caractersticas (features) do dispositivo mvel para adaptar seu prprio comportamento.
Parte das caractersticas do produto que variam em tempo de execuo e os core assets da
SPL esto presentes nos dispositivos mveis, enquanto outras caractersticas que variam
em tempo de execuo so ligadas ao produto a partir do acesso a servios Web.
Dentre os objetivos do projeto Ubstructure est a criao de um mecanismo de
adaptao automtico que em tempo de execuo selecione caractersticas da aplicao.
Estas estaro habilitadas para o usurio adapt-las segundo o contexto no qual a aplicao
est inserida. Onde, o funcionamento deste mecanismo pode variar desde baseado em
regras de condio ou at mesmo ser modelado como um problema de otimizao.
O contexto varia entre tipos de aplicaes e seus respectivos domnios. Na MobiLine
considera-se contexto tanto o ambiente fsico no qual o dispositivo mvel est inserido,
1 Projeto
apoiado pelo CNPq (MCT / CNPq 14/2011 - Universal), sob o processo de nmero
481417/2011-7.
1.2. PROBLEMTICA
1.2
Problemtica
CAPTULO 1. INTRODUO
1.2.1
Mtodos
1.3
Para alcanar o objetivo geral desta dissertao a abordagem proposta por de Oliveira Martins (2013) foi ampliada passando a ser chamada de DYMOS QoS. Esta soluo proposta
consiste de uma aplicao desenvolvida em linguagem JAVA e Open Service Gatway
Initiative (OSGi) que avalia individual e coletivamente os atributos de qualidade de
servio disponvel para a reconfigurao da SPL em tempo de execuo.
So levados em considerao enquanto atributos de qualidade para a seleo dos
servios em tempo de execuo: o custo da utilizao de um servio, as capacidades
atuais e totais de carga dos servios e o tempo de resposta. Como critrios de desempate,
so utilizados os atributos de qualidade de disponibilidade e confiabilidade.
A partir desta contribuio possvel modificar a situao b) apresentada na Seo 1.2
e ilustrada na Figura 1.1, de modo que a seleo do servio que substituir o que est
CAPTULO 1. INTRODUO
1.4
Escopo Negativo
Alguns tpicos que se relacionam com o objetivo desta pesquisa ou seus objetos no so
influenciados e no influenciam a mesma. Sendo assim, esto fora do escopo do presente
trabalho alguns tpicos como a especificao e implementao de agentes, sejam estes de
hardware ou de software, que responsabilizem-se pela monitorao do contexto onde os
produtos da DSPL esto inseridos.
Assume-se, neste estudo, que existem regras de contexto e derivao de produtos
determinadas. Sendo assim, a criao de tais regras considerada com fora do escopo
abordado. Da mesma maneira, no so abordadas tcnicas de precificao, regras de
estabelecimento de preos ou prazo de vigncia para os mesmos.
Os servios utilizados neste trabalho possuem atributos de qualidade que servem
como insumos para a avaliao dos mesmos. No entanto, o monitoramento de quebra de
acordos de nvel de servio ou de qualquer garantia a respeito dos valores desses atributos
de qualidade tambm so considerados como fora de escopo.
1.5
Organizao da Dissertao
O restante desta dissertao est organizada em quatro captulos. O Captulo 2 trata dos
conceitos bsicos relacionados a rea de SPL alm de apresentar o Estado da Arte em
derivao dinmica e explorar as deficincias desta temtica de pesquisa.
O Captulo 3 trata do desenvolvimento da abordagem proposta. Este captulo inicia
com a descrio do funcionamento do DYMOS, sobretudo no que diz respeito ao seu
mecanismo de descoberta de servios. A segunda parte deste captulo trata de apresentar as modificaes realizadas no framework com a criao dos componentes que so
responsveis pela anlise da qualidade dos servios em tempo de execuo.
No Captulo 4 demonstrada uma avaliao que valida o DYMOS QoS utilizando
os produtos da MobiLine. apresentado ainda, uma avaliao de performance para o
6
framework.
Por fim, o Captulo 5 encerra esta dissertao sumarizando os passos demonstrados
nos captulos anteriores e relatando o desfecho que foi possvel concluir com relao a
abordagem proposta. apresentado neste captulo as limitaes, contribuies e uma
lista de trabalhos futuros.
2
Reviso da Literatura
O que nos traz finalmente ao momento da verdade, em que a falha
fundamental definitivamente expressa e a anomalia revela ser tanto o
comeo quanto o fim.
MATRIX (Dilogo entre Neo e o Arquiteto)
Sero explorados nesse captulo os conceitos utilizados nesta dissertao. Para tanto,
o captulo inicia com uma breve explanao a respeito dos conceitos fundamentais
da Computao Orientada a Servios (SOC). Em seguida so apresentados conceitos
relacionados a abordagem SPL e ento o estabelecimento do Estado da Arte em derivao
dinmica. Finaliza-se, ento com uma explanao crtica a respeito da interao entre
DSPL e SOC.
2.1
2.2
Qualidade de Servios
Um servio Web pode ter vrias implementaes oferecidas por diferentes provedores.
Estas implementaes tm a mesma funcionalidade mas podem ter diferentes valores
para os seus atributos de QoS. Sendo assim, alguns critrios de qualidade podem ter
melhores valores em uma implementao do servio e alguns piores em comparao a
outras implementaes (Tang and Ai, 2010).
10
Mais precisamente, um servio Web pode ser identificado por duas propriedades: funcionalidade e qualidade. Funcionalidade o que o software pode oferecer e tipicamente
representado por um conjunto de operaes providas pelo servio. J a qualidade diz
respeito a o quo bem um provedor de servios pode fazer a entrega das funcionalidades
deste (Yu et al., 2010b).
O termo qualidade utilizado para representar juzos de valor e por isso um
termo de significado vago. No entanto, Deora et al. (2006) argumenta que em SOC a
qualidade normalmente vista segundo as perspectivas de conformidade e reputao.
Dentro da primeira perspectiva a qualidade vista como um sinnimo de atendimento
a especificaes como tempo de reposta, custo e largura de banda. J na perspectiva de
qualidade enquanto reputao, trabalha-se com a percepo de um usurio a respeito de
um servio em geral.
Papakos and Rosenblum (2010) defendem que em aplicaes cliente em dispositivos
mveis sofrem com mudanas de contexto que podem incluir mudanas nos recursos do
dispositivo, em variveis ambientais e nas preferncias do usurio em tempo de execuo.
Sendo assim, o nvel de QoS exigido inicialmente exigido pelo podem no estar de acordo
com as capacidades do dispositivo em seu contexto atual resultando em um desperdcio
de recursos e um alto custo monetrio.
2.3
11
custo e do time-to-marketing promovido pela reutilizao dos core assets dos softwares
da linha.
No obstante, variaes dinmicas em requisitos dos usurios e no ambiente no qual
o software est inserido em tempo de execuo tornam-se cada vez mais frequentes, por
isso existe uma demanda crescente por sistemas capazes de se adaptar automaticamente
ao encontrar essas condies. Em 2008, Hallsteinsen Hallsteinsen et al. (2008) publicou
um estudo que descreveu o conceito de Dynamic Software Product Lines (DSPL). Estas
linhas de produto diferem das outras por no gerenciarem a variabilidade durante a fase
de design do software, mas em tempo de execuo.
Uma DSPL representa normlamente cinco caractersticas: a) variabilidade dinmica,
b) a ligao (biding)de elementos da DSPL muda durante o ciclo de vida da aplicao, c)
pontos de variao mudam em tempo de execuo, d) mudanas inesperadas no contexto
e e) so desenvolvidas para um contexto ou ambiente especfico no lugar de um segmento
de mercado (Hallsteinsen et al., 2008).
Opcionalmente, DSPLs podem ser sensveis ao contexto a sua volta (Parra et al.,
2009; Ali et al., 2009; Alferez and Pelechano, 2011), possuir propriedades autonmicas
ou de auto-adaptao (Abbas et al., 2011; Cetina et al., 2008; Abbas, 2011) e tomada
automtica de deciso. Estas caractersticas compem um desafio para um modelo de
desenvolvimento de SPLs que gerencia a variabilidade fora da fase de design.
2.3.1
13
14
Resource Planning
15
17
Damiani et al. (2012) apresenta para este campo de estudo os conceitos de Delta
Oriented Programing (DOP). Um produto em particular em uma DOP SPL gerado
aplicando-se as modificaes contidas em mdulos delta adequados para um ncleo de
sistema, que podem sempre ser assumido como vazio. O grfico de reconfigurao define
quais configuraes o sistema pode adaptar em tempo de execuo e descreve como
objetos alocados na pilha precisam ser realocados.
O estudo de Baresi and Milano (2012) demonstra uma maneira de enriquecer as
composies da Business Process Execution Language (BPEL) com o gerenciamento
dinmico de varabilidades. A soluo proposta utiliza a Common Variability Language
(CVL) para aumentar os processos BPEL com variabilidades, que torna possvel a criao
de DSPLs e uma verso dinmica da BPEL para gerenciar e execut-las.
Em 2013 dois estudos a respeito da derivao dinmica foram concludos pelo Advanced System and Software Engineering Research Technologies Lab(AssertLabs): no
primeiro (da Silva et al., 2013), dentre outras coisas, pode-se verificar que no contexto de
DSPLs orientadas a servio existem algumas abordagens para a reconfigurao desses
servios em tempo de execuo com base em atributos de qualidade. No entanto nenhuma
dessas abordagens utiliza acordos de nvel de servios ou demonstra evidncias de que
podem ser reutilizadas em DSPLs de domnios distintos.
O segundo estudo foi uma dissertao de mestrado (de Oliveira Martins, 2013), onde
foi desenvolvido o DYMOS framework com o propsito de gerenciar variabilidades dinmicas em SPL orientadas a servios e sensveis ao contexto. Este framework possibilita
que servios sejam adicionados ou removidos da configurao do produto em tempo de
execuo por meio de mecanismos de auto-implantao, de modo que o funcionamento
do sistema no seja afetado e que tais modificaes sejam aplicadas e reconhecidas
imediatamente. Possui tambm um mecanismo de descoberta de servios, que prov uma
abstrao entre o cliente e o servio, permitindo efetuar orquestrao de servios e agregar
critrios para a seleo do servio mais adequados, de acordo com uma requisio.
2.4
Pelo fato de SOC e SPL serem paradigmas utilizados com certa frequncia pela comunidade de reuso de software no difcil encontrar na literatura estudos bem sucedidos
que tratam servios como features, onde a determinao de quais servios vo compor
o produto feita atravs do modelo de features selecionado para cada produto a ser
derivado. No entanto, este mapeamento esttico de servios, no atende aos requisitos de
18
2.5. CONCLUSES
2.5
Concluses
19
20
3
DYMOS QoS
Estudos exploratrios so realizados geralmente em reas onde h pouco conhecimento acumulado e sistematizado, como o caso da rea de derivao dinmica em DSPL
relatado no Captulo 2. Este tipo de estudo tambm possui uma natureza de sondagem e
no comporta hipteses que todavia podem surgir no final da pesquisa (Moresi, 2003).
Este captulo apresenta uma anlise e interveno exploratria realizadas no DYMOS,
que um mecanismo de reconfigurao e descoberta de servios apresentado e desenvolvido por de Oliveira Martins (2013). Cada uma das fases desse estudo exploratrio so
apresentadas a seguir.
Vale ressaltar que o framework DYMOS trabalha com features em dois nveis de
abstrao distintos. No primeiro nvel estas features so compostas de uma chamada a um
servio no lado cliente da aplicao e um contrato existe no lado servidor. No segundo
nvel de abstrao as features so todas alternativas e implementadas como servios Web.
Portanto, a fim de evitar mal entendidos, as features de primeiro nvel sero tratadas
por este nome, enquanto as do segundo nvel sero tratadas como servios ou servios
Web. Ainda assim, o framework possui um servio Web chamado ApplicationService
que assim como os outros elementos da arquitetura exibida na Seo 3.1 ser tratado
21
3.1
Anlise Exploratria
O framework DYMOS est estruturado como apresentado na Figura 3.1. Essa arquitetura
apresenta um servio Web chamado ApplicationService, o componente ServiceContext, o continer OSGi e trs elementos descritores: o ServiceDescriptor que descreve
o que pode ser plugado em tempo de execuo ao produto da SPL, o VariabilityDescriptor que descreve os pontos de variao e, finalmente, o WSDescriptor que descreve o
WSDL de cada servio Web.
22
A estrutura de metadados de variabilidade utilizada pelo VariabilityDescriptor, apresentado no trecho de cdigo 3.2, define uma lista de variabilidades com uma identificao
(ID) do atributo id, um nome atravs do atributo name e um conjunto de variantes.
Desta forma, uma variante consiste em um ID e um nome de um conjunto de referncias a
servios. Este conjunto de referncias responsvel por manter os servios ativos quando
a variao estiver ativada.
Cdigo Fonte 3.2 XML de Servios do DYMOS
<?xml version="1.0"?>
<variabilities>
<variability id="accessMode">
<variant id="infraredMode">
<service-ref ref="hiService" />
</variant>
</variability>
<variability>
<variant id="batteryHalfLife">
<service-ref ref="imageService" />
</variant>
</variability>
</variabilities>
23
3.1.1
Operaes do DYMOS
Figura 3.2 DYMOS - Diagrama de Sequncia - Reconfigurao de Servios (de Oliveira Martins,
2013)
25
Figura 3.3 DYMOS - Diagrama de Sequncia - Descoberta de Servios (de Oliveira Martins,
2013)
DSPL como features de segundo nvel esto empacotados em bundles OSGi, tornando
possvel que eles sejam ativados e desativados, plugados e desplugados da DSPL sem a
necessidade de que o software seja recompilado. Sendo assim, fica sob a responsabilidade
do componente OSGi Container gerenciar a operao de ContextHotBuild a partir
do gerenciamento do ciclo de vida dos bundles.
3.2
Interveno Exploratria
Visto que, na perspectiva de Khezrian et al. (2010), por um lado a descoberta de servios
permite que a relao entre cliente e servios no seja tratada de forma fixa ou acoplada,
com vistas seleo de um servio mais adequado baseado em critrios estabelecidos.
Por outro lado, a descoberta de servios no DYMOS apesar de efetiva pode no ser a
ideal ao considerar apenas um critrio para a seleo dos servios.
importante pontuar que a utilizao da prioridade como critrio nico alm de
limitar a descoberta de servios a torna arbitrria e delega ao engenheiro de software a
responsabilidade de determinar qual servio deve ser plugado ao produto em tempo de
26
execuo na fase de design da aplicao. Este cenrio pode caracterizar uma perda de
dinamicidade para a DSPL. Com base nesta observao e no intuito de atingir o objetivo
de propor uma abordagem de seleo em tempo de execuo das caractersticas que iro
compor uma DSPL e com base em uma anlise de seus respectivos atributos de qualidade,
prope-se estender o DYMOS, passando a denomina-lo de DYMOS QoS.
A proposta de extenso consiste em modificar a situao b) apresentada na Seo 1.2.
Nesta situao a seleo de servio para substituir o servio indisponvel ocorre de acordo
com a prioridade arbitrada. Prope-se que a seleo de servios ocorra de acordo com a
qualidade dos servios disponveis no lado servidor no momento em que a solicitao
realizada no lado cliente.
Assim, ser selecionado o servio que tiver a maior pontuao fornecida pelo DYMOS
QoS. Esta nova abordagem torna possvel que uma terceira situao ocorra, onde sempre
que realizada uma requisio a um servio no lado cliente, o servio retornado ser
sempre o que tiver a melhor avaliao dos atributos de qualidade no nvel de servio
exigido.
Para tanto, dois novos componentes foram adicionados a arquitetura do DYMOS:
o ServiceLevelProvider e o Broker, como pode ser visualizado na Figura 3.4. O
primeiro armazena informaes contextuais sobre os servios Web de forma estruturada
em um arquivo XML e atualiza essas informaes de acordo com as mudanas que
ocorrem no contexto. O componente Broker responsvel por analisar os atributos de
qualidade para cada servio em tempo de execuo durante a descoberta de servios.
27
A fim de que seja possvel ao Broker realizar essa anlise, o componente ServiceLevelProvider armazena em um XML alguns atributos de qualidade, tais como nvel de
servio, capacidade mxima, a capacidade atual, tempo de resposta e custo. A anlise
do Broker calcula a utilidade (Yu and Lin, 2005) de cada servio no nvel de servio
escolhido e envia esta informao para o componente ServiceContext, que continua
sendo o principal responsvel pelo processo de descoberta de servios.
Esta interveno requer uma modificao no componente ServiceContext de modo
que durante a execuo do mtodo findAlternativeService a prioridade descrita no XML
de servios deve ser desconsiderada, os atributos de qualidade de cada servio devem ser
recuperadas e a utilidade de cada servio deve ser calculada.
A Figura 3.5 ilustra como essa modificao afeta a sequncia da execuo do processo
de descoberta de servios. Ao perceber que a implementao do servio requisitado no
28
Apesar da nomenclatura dos atributos de qualidade dizer muito a respeito dos mesmos,
estes no so suficientes para evitar interpretaes distintas. Por isso, vale ressaltar
que o atributo de custo representa o custo de um determinado servio em um dado
nvel de servio. Esta abordagem no determina como o custo do servio deve ser
definido, possibilitando a utilizao do DYMOS QoS de acordo com diversos modelos
de precificao.
Os atributos de capacidade mxima e atual representam respectivamente quantos
29
3.2.1
Seleo de Servios
De acordo com o que j foi explanado, o componente Broker responsvel por realizar
as anlises dos atributos de qualidade dos servios Web. O Broker do DYMOS QoS
derivado das abordagens de Chen et al. (2003); Yu and Lin (2004, 2005), onde cada
provedor de servios Web oferece diversos nveis de servio para cada funcionalidade.
Nesta abordagem fica sob a responsabilidade do Broker coletar as informaes a
respeito dos candidatos a provedores de servio. Para tanto, este componente, apanha as
definies de servio e nvel de servio dos clientes e ento realiza uma verificao nos
compromissos de qualidade oferecidos pelos servios.
O Broker utiliza uma funo para a otimizao da seleo dos servios Web chamada por Yu and Lin (2004, 2005) de funo de utilidade. Esta funo baseada em
um conjunto de parmetros que englobam informaes estticas (nvel de servio), as
necessidades de qualidade do lado cliente e a capacidade dinmica do servidor (carga).
Para que seja possvel o entendimento da funo de utilidade algumas definies
precisam ser esclarecidas. A primeira delas que servios Web que oferecem a mesma
funcionalidade podem ter caractersticas no funcionais distintas. O conjunto desses
servios que oferecem a mesma funcionalidade chamado de classe de servio e denotado
por S, sendo cada servio de uma classe denotado individualmente por s. O nvel de
servio oferecido por um nico servio Web denotado por l. A confiabilidade uma
restrio de qualidade a respeito do atraso no provimento de um servio denotada por R.
Cada servio Web tem suas prprias definies. O nmero de nveis de servio que
cada servio Web oferece obtido a partir da definio L(s) e o tempo de servio
30
3.3. CONCLUSES
denotado por e(s, l). As definies adotadas a respeito da carga de cada servio so
Cmax (s, l) e Ccur (s, l), onde o primeiro denota a capacidade mxima e o segundo a carga
atual em um determinado nvel de servio. Por fim, o custo para cada nvel de servio
denotado por c(s, l).
A funo de utilidade toma as decises de seleo com base na funo de benefcio
(Equao 3.1), que por sua vez baseia-se na carga do servio. A funo utilizada para
que os servios selecionados tenham uma baixa carga, oferecendo assim menores tempos
de resposta reais. Isso implica em um balanceamento global das cargas dos servios
evitando sobrecargas.
b(s, l) =
3.1
3.3
b(s, l) avgb
c(s, l) avgc
) + wc (1
)
stdb
stdc
3.2
Concluses
Este captulo tratou da anlise e interveno exploratria realizadas para contribuir com
os objetivos deste estudo apresentando um entendimento do processo de descoberta de
servios do DYMOS e a classificao das features utilizadas por este. Partindo desta
anlise foi possvel construir uma abordagem de descoberta de servios com base na
anlise de atributos de QoS.
A anlise implementada para a seleo de servios fundamentada na idia de que um
componente pode atuar como mediador avaliando a necessidade do cliente e encontrando
um servio que melhor se enquadre nesta necessidade. O trabalho do componente
mediador (Broker) regido pela relao custo-benefcio especificada na forma de
funes matemticas definidas por Yu and Lin (2004, 2005). O prximo captulo trata
da de uma validao realizada com a abordagem aqui proposta para demonstrar a sua
efetividade. Assim como relatada uma avaliao da performance da mesma.
31
4
Avaliao
4.1
Validao Exploratria
33
CAPTULO 4. AVALIAO
Estes aplicativos utilizam informaes contextuais, como localizao, perfil e preferncias do usurio visitante, assim como as requisies desencadeadas por este e as
caractersticas do dispositivo mvel para adaptar seu prprio comportamento. Parte das
caractersticas do produto que variam em tempo de execuo e os core assets da SPL
esto presentes nos dispositivos mveis, enquanto outras caractersticas que variam em
tempo de execuo so ligadas ao produto a partir do acesso a servios Web.
Uma viso geral das features desses dois produtos so apresentadas nas Figura 4.11 e
Figura 4.2. O Cin Tour uma verso mais leve do Great Tour, diferindo deste por no
apresentar as features de autenticao, de vdeo e de captura da localizao do usurio
utilizando a tecnologia NFC.
A chamada aos servios do lado servidor da SPL deve ser feita a partir da utilizao
das bibliotecas KSOAP2 e DymosClientLib. Esta ltima possui uma classe chamada
VariabilityContex, que permite o suporte a reconfigurao de variabilidades dinmicas
e a classe ServiceEndpointFactory que suporta a descoberta de servios. H tambm a
1 Disponvel
em: http://goo.gl/weMfAf
2 https://code.google.com/p/ksoap2-android/
34
classe ServiceEndPoint que cria objetos com a capacidade de armazenar o end point, o
namespace e o nome do servio Web.
O Cdigo 4.1 apresenta como deve ser feita uma requisio a um servio Web no
DYMOS QoS. Primeiro necessria a criao de um objeto ServiceEndPoint que
recebe o retorno do mtodo getEndPoint() da classe ServiceEndPointFactory. Este
mtodo recebe como parmetro o nome da variante ou da interface para o servio desejado
e o nmero referente ao nvel de servio esperado.
Cdigo Fonte 4.1 Descoberta de Servios no Lado Cliente
...
private ServiceEndPoint endpoint;
this.endpoint = ServiceEndPointFactory.getEndPoint("imageService", 1);
SoapObject request = new SoapObject(endpoint.getNamespace(), METHOD_NAME);
HttpTransportSE transport = new HttpTransportSE(endpoint.getEndpoint());
transport.call(SOAP_ACTION, envelope);
...
35
CAPTULO 4. AVALIAO
Para a abordagem do DYMOS QoS ser totalmente funcional cada vez que um servio
estiver para ser chamado no lado do cliente, o nvel de servio desejado e o end point
desse servio precisa ser atualizado. Isso feito atravs de uma chamada para os mtodos
requireLevel() e getServiceEndPoint() do servio Web ApplicationService do framework
que ocorre por meio do mtodo getEndPoint no lado cliente.
Para exemplificar o funcionamento dos QoS DYMOS em uma situao real, a variante
ImageService foi ativada e todos os seus servios alternativos descritos na Listagem
4.2 com o custo, a capacidade mxima (Cmax), a capacidade atual (cCurr) e o valor da
funo de utilidade (UF) mostrados na Tabela 4.1. Isto posto, foi possvel experimentar o
framework nas trs situaes descritas na Seo 1.3.
Cdigo Fonte 4.2 Services XML File
<?xml version="1.0"?>
<services>
...
<service id="imageService" serviceimpl="com.assertLab.imageServiceImpl">
<servicespec>com.assertLab.imageService</servicespec>
<alternativeservice ref="imageService1" />
<alternativeservice ref="imageService2" />
<alternativeservice ref="imageService3" />
<alternativeservice ref="imageService4" />
<alternativeservice ref="imageService5" />
</service>
<service id="imageService1" serviceimpl="com.assertLab.imageService1">
<servicespec>com.assertLab.imageService</servicespec>
</service>
<service id="imageService2" serviceimpl="com.assertLab.imageService2">
<servicespec>com.assertLab.imageService</servicespec>
</service>
<service id="imageService3" serviceimpl="com.assertLab.imageService3">
<servicespec>com.assertLab.imageService</servicespec>
</service>
<service id="imageService4" serviceimpl="com.assertLab.imageService4">
<servicespec>com.assertLab.imageService</servicespec>
</service>
<service id="imageService5" serviceimpl="com.assertLab.imageService5">
<servicespec>com.assertLab.imageService</servicespec>
36
Service
imageService1
imageService2
imageService3
imageService4
imageService5
cMax
42
39
30
23
43
cCurr
0
9
17
22
26
Cost
2,07
6,86
0,56
6,97
9,69
UF
0,82
-0,58
0,18
-1,83
-1,82
37
CAPTULO 4. AVALIAO
4.2
A avaliao estatstica descritiva tem cunho quantitativo, o que implica afirmar que toda
ela baseada na filosofia positivista. Onde as variveis a serem observadas so conside38
39
CAPTULO 4. AVALIAO
valores em relao aos custos praticados pelos servios Web. Tanto as capacidades quanto
os custos da amostra gerada apresentam mdias e medianas similares entre si, o que pode
ser um indicativo de que estes dados tem uma distribuio normal de probabilidade.
Tabela 4.2 Capacidades Mximas e Atuais
Level
1
2
3
4
Mdia
Mxima Atual
25,64
13,25
25,14
12,48
24,78
11,11
26,98
13,98
Mediana
Mxima Atual
25
12
24,5
7,5
24
8,5
27,5
11
Desvio Padro
Mxima
Atual
14,36350932 11,08546345
15,32254548 12,38586291
13,81273326 9,813149342
14,12372472 11,7115157
Level
1
2
3
4
Mdia
4,82
5,20
5,48
4,99
Mediana
4,56
5,09
5,71
4,97
Desvio Padro
2,74
2,74
2,73
2,86
4.3. CONCLUSES
Java Development Kit (JDK) 1.7. Antes da extrao dos tempos de execuo foi realizado
o Warm Up do ambiente, executando cada subgrupo da populao de servios duas
vezes utilizando como parmetro para a JVM -XX:+PrintCompilation, -verbose:gc e
-XX:CICompilerCount=1.
Para que se pudesse ter uma medida mais exata do tempo de execuo do DYMOS
QoS durante o processo de seleo de servio com bases nos atributos de qualidade
apresentados as medidas foram feitas em nanosegundos. A Figura 4.4 apresenta o
desempenho para cada execuo em todos os subgrupos.
A Tabela 4.4 apresenta os valores mdios, medianos e de desvio para cada um dos
subgrupos alm do desempenho relativo entre eles. O desempenho relativo representado
pelo percentual da quantidade de tempo de execuo mdia da seleo de servios no
DYMOS QoS com relao ao desempenho anterior.
Como pode ser observado, o tempo de execuo para o subgrupo com 50 servios
Web foi 84% menor em relao ao subgrupo com 100 servios e 472% maior com relao
ao subgrupo com 10 servios. Esta informao evidencia que a abordagem utilizada pode
no ser escalonvel.
O mesmo procedimento de avaliao foi realizado com o DYMOS Framework com a
diferena de que os nveis de servio e seus respectivos atributos no foram utilizados. O
resultado destas execues podem ser vistas Tabela 4.5. Ao se comparar os desempenhos
do DYMOS Framework com o DYMOS QoS, fica ntido que o problema de escalabilidade apresentado no DYMOS QoS no oriundo do DYMOS Framework, mas sim da
interveno exploratria realizada nesta dissertao.
Tabela 4.4 Desempenho do Dymos QoS
Qauntidade
de Sevios
100
50
10
5
4.3
Mdia
Mediana
Desvio Padro
10596089267,56
5748081772,13
1005138360,88
561101255,45
10566183253
5703638330
984489598,5
562455565
137289824,9
103294539,4
37707131,55
11848639,2
Desempenho
Relativo
(%)
84,3413105
471,8697043
79,13671572
Concluses
Este captulo apresentou uma validao exploratria da abordagem proposta e uma avaliao estatstica de desempenho. Pode-se concluir a partir da validao que a abordagem
41
CAPTULO 4. AVALIAO
Qauntidade
de Sevios
100
50
10
5
Mdia
Mediana
Desvio Padro
44718748,65
47238874,62
47566174,54
39972607,83
42730676,00
45913599,50
45192888,50
38636221,50
5234277,245
7166111,98
9912151,66
6680693,484
Desempenho
Relativo (%)
5,33485607
0,688093846
18,99692595
proposta funcional para a MobiLine, exigindo pouco esforo para ser adotada pela
DSPL. Vale salientar, no entanto, que apesar dos indcios de que a abordagem seja compatvel com outras DSPLs, esta no uma afirmao que possa ser feita com base nesta
validao.
A avaliao estatstica descreve em termos quantitativos o desempenho da abordagem
proposta. Pode-se concluir, a partir da observao do comportamento do DYMOS QoS
que a abordagem pode no ser escalonvel. Fato devido ao tempo gasto para a descoberta
dos servios em classes grandes de servio que se apresenta relativamente maior do que
o esperado quando comparado com classes de servios menores.
Vale salientar ainda, que os dados utilizados para a execuo da avaliao de performance so dados gerados. Portanto existe um risco de que esses dados apresentem um vis
que pode ser considerado com uma ameaa a validade do estudo. Outra limitao o fato
de no estar disponvel na literatura nenhum outro benchmark ou abordagem relacionada
disponvel para uma comparao dentro de um desenho experimental adequado.
42
5
Concluso
Eu que no me sento
No trono de um apartamento
Com a boca escancarada
Cheia de dentes
Esperando a morte chegar
RAUL SEIXAS (Ouro de Tolo)
43
CAPTULO 5. CONCLUSO
5.1
Contribuies
5.2
Limitaes
44
jrfs/dymosqos
5.3
Trabalhos Futuros
As limitaes da rea de pesquisa desta dissertao representam um conjunto de oportunidades de pesquisa que no deve deixar de ser levado em considerao. Basta olhar para
as reas de carncia de estudos apontadas por Buregio et al. (2010); Alves et al. (2009);
Bencomo et al. (2010, 2012); da Silva et al. (2013).
A rea de DSPL como um todo e a derivao dinmica em si carecem do desenvolvi-
45
CAPTULO 5. CONCLUSO
46
Referncias Bibliogrficas
47
REFERNCIAS BIBLIOGRFICAS
DAmbrogio, A. (2006). A model-driven wsdl extension for describing the qos ofweb
services. In Web Services, 2006. ICWS 06. International Conference on, pages 789
796.
Damiani, F., Padovani, L., and Schaefer, I. (2012). A Formal Foundation for Dynamic
Delta-Oriented Software Product Lines. pages 110.
de Oliveira Martins, D. A. (2013). DYMOS: Uma abordagem para suporte a variabilidades dinmicas em Linhas de Produto de Software Orientado a Servios e Sensvel ao
Contexto. Masters thesis, Universidade Federal de Pernambuco, Recife, Pernambuco,
Brazil.
Deora, V., Shao, J., Gray, W. A., and Fiddian, N. (2006). Modelling quality of service in
service oriented computing. In Service-Oriented System Engineering, 2006. SOSE 06.
Second IEEE International Workshop, pages 95101.
Erl, T. (2005). Service-Oriented Architecture: Concepts, Technology, and Design.
Erl, T. (2007). SOA and Web Services. In SOA Principles of Service Design, chapter 3,
pages 4650. Prentice Hall.
Gomaa, H. and Hashimoto, K. (2011). Dynamic software adaptation for service-oriented
product lines. page 1, New York, New York, USA. ACM Press.
Gomaa, H. and Saleh, M. (2006). Software Product Line Engineering and Dynamic
Customization of a Radio Frequency Management System. pages 345352.
Gnther, S. and Sunkle, S. (2010). Dynamically adaptable software product lines using
Ruby metaprogramming. pages 8087, New York, New York, USA. ACM Press.
Hallsteinsen, S., Stav, E., Solberg, a., and Floch, J. (2006). Using Product Line Techniques
to Build Adaptive Systems. pages 141150. Ieee.
Hallsteinsen, S., Hinchey, M., Park, S., and Schmid, K. (2008). Dynamic software
product lines. Computer, (April), 9395.
IBM (2006). An architectural blueprint for autonomic computing. Technical Report June.
Josuttis, N. (2007). SOA in Practice. Oreilly.
48
REFERNCIAS BIBLIOGRFICAS
Khezrian, M., Wan Kadir, W. M. N., Ibrahim, S., Mohebbi, K., Munusamy, K., and
Tabatabaei, S. G. H. (2010). An evaluation of state-of-the-art approaches for web
service selection. In Proceedings of the 12th International Conference on Information
Integration and Web-based Applications & Services, iiWAS 10, pages 885889,
New York, NY, USA. ACM.
Kim, M., Jeong, J., and Park, S. (2005). From product lines to self-managed systems: an
architecture-based runtime reconfiguration framework. pages 6672.
Lee, J. (2006). A Feature-Oriented Approach to Developing Dynamically Reconfigurable
Products in Product Line Engineering. pages 131140. Ieee.
Lee, J. and Kotonya, G. (2010). Combining service-orientation with product line engineering. Number June, pages 3541.
Lin, K.-J., Zhang, J., Zhai, Y., and Xu, B. (2010). The design and implementation of
service process reconfiguration with end-to-end QoS constraints in SOA. Service
Oriented Computing and Applications, 4(3), 157168.
Marinho, F. G., Andrade, R. M., Werner, C., Viana, W., Maia, M. E., Rocha, L. S., Teixeira, E., Filho, J. a. B. F., Dantas, V. L., Lima, F., and Aguiar, S. (2012). MobiLine: A
Nested Software Product Line for the domain of mobile and context-aware applications.
Science of Computer Programming.
Mendona, D. F., Rodrigues, G. N., Favacho, A., and Holanda, M. (2013). A Systematic
Mapping Study on Service Oriented Computing in the Context of Quality of Services.
pages 3948.
Moresi, E. (2003). Metodologia da pesquisa.
Papakos, P. and Rosenblum, D. S. (2010). VOLARE : Context-Aware Adaptive Cloud
Service Discovery for Mobile Systems. pages 3238.
Papazoglou, M. P. and Georgakopoulos, D. (2003). Introduction: Service-oriented
computing. Commun. ACM, 46(10), 2428.
Parra, C., Blanc, X., and Duchien, L. (2009). Context awareness for dynamic serviceoriented product lines. pages 131140.
Parra, C., Blanc, X., Cleve, A., and Duchien, L. (2011). Unifying design and runtime
software adaptation using aspect models. volume 76, pages 12471260. Elsevier B.V.
49
REFERNCIAS BIBLIOGRFICAS
Pohl, K., Bckle, G., and van der Linden, F. (2005). Software Product Line Engineering:
Foundations, Principles, and Techniques.
Pukall, M., Siegmund, N., and Cazzola, W. (2009). Feature-oriented runtime adaptation.
page 33, New York, New York, USA. ACM Press.
Rosenmller, M., Siegmund, N., Apel, S., and Saake, G. (2011). Flexible feature binding
in software product lines. volume 18, pages 163197.
Shen, L., Peng, X., Liu, J., and Zhao, W. (2011). Towards feature-oriented variability
reconfiguration in dynamic software product lines.
Sunkle, S. and Pukall, M. (2010). Using reified contextual information for safe run-time
adaptation of software product lines. pages 16, New York, New York, USA. ACM
Press.
Tang, M. and Ai, L. (2010). A hybrid genetic algorithm for the optimal constrained
web service selection problem in web service composition. Computation (CEC), 2010
IEEE Congress on.
Wainer, J. (2007). Mtodos de pesquisa quantitativa e qualitativa para a Cincia da
Computao. Atualizao em Informtica. Org: Tomasz Kowaltowski; Karin Breitman.
Rio de Janeiro: Ed. PUC-Rio, pages 142.
Wazlawick, R. (2009). Metodologia de pesquisa para cincia da computao, volume 1.
Elsevier Brasil.
Wolfinger, R., Reiter, S., Dhungana, D., Grunbacher, P., and Prahofer, H. (2008). Supporting Runtime System Adaptation through Product Line Engineering and Plug-in
Techniques. pages 2130. Ieee.
Yu, J., Lalanda, P., and Bourret, P. (2010a). An Approach for Dynamically Building and
Managing Service-Based Applications. pages 5158. Ieee.
Yu, Q., Rege, M., Bouguettaya, A., Medjahed, B., and Ouzzani, M. (2010b). A two-phase
framework for quality-aware Web service selection. Service Oriented Computing and
Applications, 4(2), 6379.
Yu, T. and Lin, K. (2004). Service selection algorithms for Web services with end-to-end
QoS constraints. In IEEE International Conference on E-Commerce Technology.
50
REFERNCIAS BIBLIOGRFICAS
Yu, T. and Lin, K.-J. (2005). Service selection algorithms for Web services with end-toend QoS constraints. Information Systems and e-Business Management, 3(2), 103126.
51