Você está na página 1de 89

DYMOS: Uma abordagem para suporte a

variabilidades dinmicas em Linhas de


Produto de Software Orientado a Servios
e Sensvel ao Contexto
Centro de Informtica
Universidade Federal de Pernambuco
Dhiego Abrantes de Oliveira Martins
Orientadores: Vinicius Cardoso Garcia (Cin/UFPE)
Uir Kulesza (DIMAp/UFRN)

Agenda

Introduo e Motivao
Definio do Problema
Soluo Proposta
Contextualizao
DYMOS Framework
Avaliao Preliminar
Consideraes Finais

INTRODUO E
MOTIVAO
3

Introduo e Motivao
sistemas mais flexveis e dinmicos
componentes plugveis, em tempo de execuo
necessidade de decises e adaptaes em tempo de
execuo
Sistemas Sensveis ao Contexto

e se aplicarmos abordagens de LPS?


tais decises e adaptaes resultam na configurao de
um novo sistema
Abordagem convencional
configurao fase de design ou implementao
seleo de features e ligao de variabilidades

Introduo e Motivao

E se tais decises estiverem ligadas a atributos


do contexto (Localizao, Conectividade, etc) ?

Introduo e Motivao

Um dos principais desafios na tentativa de unir


Sistemas Sensveis ao Contexto a abordagens de
LPS
Decises precisam ser adiadas da fase de design
ou implementao para a fase de tempo de

execuo

PROBLEMTICA

Problemtica
Arquitetura Orientada a Servios (AOS)
estrutura dinmica e desacoplada
flexibilidade e poder de adaptao
caractersticas requeridas por muitas LPS

AOS + LPS = Linhas de Produto Orientadas a


Servio
aumento na reusabilidade
maior suporte a mudanas e adaptaes
implantao facilitada

Problemtica

Se alinharmos os paradgmas de Sistemas Sensveis


ao Contexto, modelo de Arquitetura Orientada a
Servios e Linhas de Produto de Software, podemos
enfrentar alguns desafios

Problemtica

Um sistema derivado de uma LPS composto por


features comuns e variveis.
Considerando que o modelo AOS segue o padro
Cliente-Servidor
Podemos ter o seguinte cenrio

10

Problemtica
Aplicao Cliente

Servidor

Feature 1

Servio A

Feature 2

Servio B

Feature 3

Servio C

Feature N

Servio D

11

Problemtica
Aplicao Cliente
Feature 1

Servidor
usa
usa

Servio A

Feature 2

Servio B

Feature 3

Servio C

Feature N

Servio D

12

Problemtica
Aplicao Cliente
Feature 1

Servidor
usa
usa

Servio A

Feature 2

Servio B

Feature 3

Servio C

Feature N

Servio D

13

Problemtica
Aplicao Cliente
Feature 1

Servidor
usa
usa

Servio A

Feature 2

Servio B

Feature 3

Servio C

Feature N

Servio D

14

Problemtica
Aplicao Cliente
Feature 1

Servidor
usa
usa

Servio A

Feature 2

Servio B

Feature 3

Servio C

Feature N

Servio D

Este tipo de cenrio no tratado por


abordagens propostas atualmente.
15

Problemtica

Como possibilitar reconfiguraes de variabilidades


dinmicas em Linhas de Produto de Software
Orientado Servios e Sensvel ao Contexto?

16

SOLUO PROPOSTA

17

Soluo Proposta

DYMOS: Um framework para suporte a


variabilidades dinmicas em Linhas de Produto de
Software Orientado a Servios e Sensvel ao
Contexto

18

Soluo Proposta
DYMOS
Abordagem leve e simples
Reconfigurao de variabilidades dinmicas
Descoberta de Servios

Demais abordagens
Complexidade, que dificulta a utilizao em sistemas de
pequeno porte
Servios so tratados como features auto-contidas
Acoplamento com a LPS

19

Soluo Proposta
O DYMOS em trs lacunas
1. Notificaes sobre adaptaes de features
2. Reconfigurao de variabilidades dinmicas
3. Descoberta de Servios

20

CONTEXTUALIZAO

21

Linhas de Produto de Software

Pode ser definida como um conjunto de sistemas de


software que compartilham caractersticas em
comum e que satisfazem as necessidades de um
segmento especfico de mercado.

22

Linhas de Produto de Software

partes variveis

Plataforma

Plataforma

partes comuns

Plataforma

23

Linhas de Produto de Software

Atividades Essenciais na Engenharia de Linha de Produto de


Software.

24

Linhas de Produto de Software


LPS Dinmicas
Extendem o conceito convencional de LPS
aspectos dinmicos para tratar variabilidades
bind a unbind de pontos de variao em tempo de
execuo, de acordo com mudanas no contexto
variabilidade esttica vs. variabilidade dinmica

25

Linhas de Produto Orientadas


a Servios

26

Linhas de Produto Orientadas


a Servios
Computao Orientada a
Servios
Aplicaes Distribudas
Funcionalidades como
servios
Onde Servios so:
independentes de
plataforma
auto descritivos
auto contidos

27

Linhas de Produto Orientadas


a Servios
Utiliza o modelo de Arquitetura Orientada a
Servios, herdando seus benefcios
Estrutura dinmica e desacoplada
Mais Flexibilidade
Maior poder de adaptao

28

Linhas de Produto Orientadas


a Servios

29

Linhas de Produto Orientadas


a Servios

30

DYMOS FRAMEWORK

31

DYMOS Framework
DYMOS
Abordagem leve e simples
Reconfigurao de variabilidades dinmicas, por meio de
adaptao de componentes
Descoberta de Servios
Mecanismos de auto-implantao
Interoperabilidade
Baixo acoplamento com a LPS

32

DYMOS Framework
O DYMOS em trs lacunas
1. Notificaes sobre adaptaes de features
2. Reconfigurao de variabilidades dinmicas
3. Descoberta de Servios

Para preencher estas lacunas,


implementamos

Descritor de Servios
Descritor de Variabilidades
Mecanismo de Reconfigurao de Servios
Mecanismo de Descoberta de Servios

33

DYMOS Framework
Arquitetura e Implementao

34

DYMOS Framework
Arquitetura e Implementao: Viso Geral

35

DYMOS Framework
Arquitetura e Implementao: Componentes
Descritores
Estrutura de metadados que permite descrever
elementos.
Permite a converter os elementos descritos em
objetos Java, facilitanto o gerenciamento das
informaes.
Implementam a interface ObjectDescriptor.

36

DYMOS Framework
Arquitetura e Implementao: Componentes
Descritores

37

DYMOS Framework
Arquitetura e Implementao: Componentes
Descritores
ServiceDescriptor
VariabilityDescriptor
WSDLDescriptor

38

DYMOS Framework
Arquitetura e Implementao: Componentes
Descritores

39

DYMOS Framework
Componentes Descritores: ServiceDescriptor

Estrutura de Metadados de Servios: Diagrama


de Classes
40

DYMOS Framework
Componentes Descritores:
VariabilityDescriptor

Estrutura de Metadados de Variabilidades:


Diagrama de Classes
41

DYMOS Framework
Componentes Descritores: WSDLDescriptor
Utilizado nas operaes de Descoberta de
Servios
Permite acessar atributos particulares de cada
implementao
ServiceName
PortType
TargetNamespace

42

DYMOS Framework
Componentes Descritores: WSDLDescriptor

Viso Geral do Fluxo de dados do WSDLDescriptor

43

DYMOS Framework
Arquitetura e Implementao: ServiceContext
Gerencia e mantm as informaes sobre
servios e variabilidades
Responsvel por efetuar operaes de
Reconfigurao de Variabilidades
Descoberta de Servios
ContextHotBuild

44

DYMOS Framework
ServiceContext: Reconfigurao de
Variabilidades
permite a reconfigurao dinmica de servios
ativao ou desativao, de acordo com mudanas no
contexto

45

DYMOS Framework

Reconfigurao de Variabilidades: Diagrama


de Sequncia
46

DYMOS Framework
ServiceContext: Descoberta de Servios
agrega caractersticas dinmicas, permitindo que
a relao entre cliente e servio no seja tratada
de forma fixa.
permite inserir critrios de seleo, por exemplo,
por ordem de prioridade.

47

DYMOS Framework
ServiceContext: Descoberta de Servios

Descoberta de Servios: Viso geral sobre interao


entre componentes

48

DYMOS Framework
ServiceContext: Descoberta de Servios
Busca por Spec e Impl
Busca por Servicos alternativos, por prioridade
Busca qualquer servio que atenda a Spec

serviceEndpoint;targetNamespace;serviceName
Descoberta de Servios: Formato de
referncia de servio (serviceEndpoint)

49

DYMOS Framework
ServiceContext: ContextHotBuild
permite a implantao de novos servios e
variabilidades sem a necessidade de interromper
a execuo do framework.
hot swapping de servios e variabilidades
atualizao dos descritores de servios e
variabilidades
implantao de forma facilitada, sem exigir uma
interao direta com o container OSGi por meio
de linhas de comando

50

DYMOS Framework
Arquitetura e Implementao:
ApplicationService
Implementado como uma fachada
Externaliza por meio de Web Services, as funes
de Reconfigurao e Descoberta de Servios
Interoperabilidade

51

AVALIAO PRELIMINAR

52

Avaliao Preliminar
Objetivos
Avaliar a efetividade da abordagem
proposta, aplicando-a em uma LPS
Orientada a Servios e Sensvel ao
Contexto
Averiguar a possibilidade de reuso dos
artefatos em outro sistema da mesma LPS

53

Avaliao Preliminar
Metodologia utilizada
Seleo de uma LPS Orientada a Servios
e Sensvel ao Contexto
Seleo de dois produtos desta LPS
Produto 1: Aplicar abordagem proposta
Produto 2: Averiguar a possibilidade de reuso
dos artefatos utilizados no Produto 1

Em cada um dos produtos, foram efetuada


Anlises e Definies, que guiaram esta
avaliao
54

Avaliao Preliminar
LPS e Produtos
MobiLine
Possui apenas adaptaes comportamentais
Necessidades da LPS motivaram alguns
requisitos

GREat Tour e CIn Tour


Documentao e Implementao disponveis

55

Avaliao Preliminar
LPS e Produtos
MobiLine
LPS aninhada, cujo o domnio de aplicaes
mveis e sensveis ao contexto

Guia de Visitas Mvel


GREat Tour
CIn Tour

56

Avaliao Preliminar
GREat Tour
Guia de Visitas Mvel e Sensvel ao Contexto.
Auxilia visitantes a conhecer o laboratrio de
pesquisa e desenvolvimento do GREat (Grupo de
Redes, Engenharia de Software e Sistemas) da
Universidade Federal do Cear.
executada no dispositivo mvel do visitante e
fornece informaes sobre o ambiente.

57

Avaliao Preliminar
GREat Tour: Anlises e Definies
1. Anlise do modelo de features
2. Anlise da implementao dos artefatos
referentes s features selecionadas
3. Analisar os casos de incompatibilidade
4. Anlise da implementao dos artefatos da
aplicao cliente

58

Avaliao Preliminar
GREat Tour: Analisando o Modelo de
Feature
Analisar o modelo de features
Identificar e selecionar features e pontos de variao
que seriam utilizados na avaliao da abordagem

59

GREat Tour: Modelo de features parcial


60

Avaliao Preliminar
GREat Tour: Analisando o Modelo de
Feature
Features
Privacy
Show Document
Video

Sumarizando os Pontos de Variao


Modo de acesso
Tipo de Mdia Disponvel para Visualizao
Provedor de Stream de Vdeo

61

Avaliao Preliminar
GREat Tour: Analisando os Artefatos
Anlise da implementao dos artefatos
referentes as features selecionadas
1.
2.
3.
4.

Identificar
Identificar
Identificar
Verificar a

Artefatos
as Implementaes destes artefatos
as Tecnologias Utilizadas
compatibilidade com OSGi.

62

Avaliao Preliminar
GREat Tour: Analisando os Artefatos
1 e 2: Identificao dos Artefatos e suas
Implementaes
Features

Artefatos

Privacy

LoginService

Show
Document

TextService, ImageService, VideoService

Video

LocalVideoProviderService,
Relao
entre features e artefatos
ExternalVideoProviderService

63

Avaliao Preliminar
GREat Tour: Analisando os Artefatos
3 e 4: Tecnologias Utilizadas e Compatibilidade com
OSGi

Funes disponibilizadas como servios web.


Java como linguagem de programao
Apache Axis para construo dos servios web.
Conexo com banco de dados (MySQL)
Apache Tomcat como servidor web.
Servios no esto implementados na forma de bundles.

64

Avaliao Preliminar
GREat Tour: Analisando
Incompatibilidades
Incompatibilidades Identificadas
LoginService
TextService
ImageService
VideoService

65

Avaliao Preliminar
GREat Tour: Estratgia para Migrao
Implementao de Provedor de Conexes
Separar Interfaces e Implementaes
componentes empacotados em bundles diferentes

66

Avaliao Preliminar
GREat Tour: Estratgia para Migrao
Implementao de Provedor de Conexes

Dependncia entre Servio Provedor de Conexes e


demais Servios Modularizados
67

Avaliao Preliminar
GREat Tour: Estratgia para Migrao
Separar Interfaces e Implementaes
componentes empacotados em bundles diferentes

68

Avaliao Preliminar
GREat Tour: Estratgia para Migrao
Separar Interfaces e Implementaes
componentes empacotados em bundles diferentes

69

Avaliao Preliminar
GREat Tour: Descrevendo Servios e
Variabilidades
Efetuar a descrio dos servios de acordo
com os servios que compem o produto
Descrever as variabilidades presentes na
configurao do produto, mapeando-as
com os servios descritos.

70

Descrevendo Servios

71

Descrevendo Variabilidades

72

Avaliao Preliminar
GREat Tour: Analisando e Integrando o
Cliente
Anlise de Implementaes
Identificar como ocorre a interao com
servios
Identificar pontos de adaptao

DymosClientLib
VariabilityContext
ServiceEndpointFactory
ServiceEndpoint
73

Avaliao Preliminar
GREat Tour: Analisando e Integrando o
Cliente
Interao com Servios

Interao com Servios


74

Avaliao Preliminar
GREat Tour: Analisando e Integrando o
Cliente
Interao com Servios

Interao com Servios utilizando a DymosClientLib

75

Avaliao Preliminar
GREat Tour: Analisando e Integrando o
Cliente
Pontos de adaptao

Integrando funcionalidade de Reconfigurao de


Variabilidades

76

Avaliao Preliminar
CInTour
Guia de Visitas Mvel e Sensvel ao Contexto.
Auxilia visitantes a conhecer o CIn (Centro de
Informtica) da Universidade Federal de
Pernambuco.
executada no dispositivo mvel do visitante e
fornece informaes sobre o ambiente.

77

Avaliao Preliminar
CInTour: Anlises e Definies
1. Anlise do modelo de features
2. Descrever Servios e Variabilidades

78

Avaliao Preliminar
CInTour: Analisando o Modelo de
Feature
Analisar o modelo de features
Identificar e selecionar features e pontos de variao em
comum com o GREat Tour, para serem utilizados na
avaliao da abordagem.

79

CInTour: Modelo de features parcial


80

Avaliao Preliminar
CInTour: Analisando o Modelo de
Feature
Features
Show Document

Sumarizando os Pontos de Variao


Tipo de Mdia Disponvel para Visualizao

81

Avaliao Preliminar
CInTour: Descrevendo Servios e
Variabilidades
Efetuar a descrio dos servios de acordo
com os servios que compem o produto
Descrever as variabilidades presentes na
configurao do produto, mapeando-as
com os servios descritos.

82

Descrevendo Servios

83

Descrevendo Variabilidades

84

Avaliao Preliminar
Concluses da Avaliao
A abordagem proposta foi avaliada de forma
preliminar, sendo aplicada em dois produtos de
uma LPS
Implementaes atuais incompatveis com OSGi
Esforo inicial para modularizar os servios

Viabilidade na utilizao da abordagem proposta


Possibilidade de reutilizao dos servios
modularizados por outros produtos da LPS
Adoo facilitada
Ganhos em custo e tempo de entrega

85

CONSIDERAES FINAIS

86

Consideraes Finais
Contribuies
DYMOS Framework
Plataforma para Reconfigurao de
Variabilidades Dinmicas e Descoberta de
Servios

Avaliao Experimental
Modularizao de Servios
Adaptao de Componentes

87

Consideraes Finais
Trabalhos Futuros
Avaliar a utilizao do DYMOS Framework na
reconfigurao de variabilidades dinmicas que
endeream servios distribudos.
Modularizao da funcionalidade de Descoberta de
Servios
Desenvolver um componente de descoberta e seleo
de servios com base em atributos de qualidade.
Avaliar os modelos de adoo de LPS que so
compatveis com a abordagem proposta.
88

DYMOS: Uma abordagem para suporte a


variabilidades dinmicas em Linhas de
Produto de Software Orientado a Servios
e Sensvel ao Contexto
Centro de Informtica
Universidade Federal de Pernambuco
Dhiego Abrantes de Oliveira Martins
Orientadores: Vinicius Cardoso Garcia (Cin/UFPE)
Uir Kulesza (DIMAp/UFRN)