Você está na página 1de 79

Dymos QoS: Uma Abordagem para Descoberta de Serviços em Tempo de Execução em Linhas de Produto de Software Dinâmicas

Jackson Raniel Orientador: Vinicius Cardoso Garcia
Omnia Vincit Amor. - VIRGÍLIO (70 A.C – 19 A.C) 1
CIn.ufpe.br

Sumário
• Introdução
– Motivação – Problemática
• Métodos

– Visão Geral da Solução – Escopo Negativo

2

CIn.ufpe.br

Sumário
• Revisão da Literatura
– Computação Orientada a Serviços – Linhas de Produto de Software
• O Estado da Arte em Derivação Dinâmica • Apresentação Cronológica

– A interação entre SOC e DSPL

3

CIn.ufpe.br

Sumário
• DYMOS QoS
– Análise Exploratória
• Operações do DYMOS

– Intervenção Exploratória
• Seleção de Serviços

• Avaliação
– Validação Exploratória – Avaliação Estatística Descritiva

4

CIn.ufpe.br

Sumário
• Conclusão
– Contribuições – Limitações – Trabalhos Futuros

5

CIn.ufpe.br

Introdução

- Quarenta e dois [...] Eu verifiquei cuidadosamente e não há dúvida de que a resposta é essa. Para ser franco, acho que o problema é que vocês jamais souberam qual é a pergunta. - DOUGLAS ADAMS (O Guia do Mochileiro das Galáxias)
6
CIn.ufpe.br

Linhas de Produto

7

CIn.ufpe.br

Motivação

MobiLine (Marinho et al., 2012) 8
CIn.ufpe.br

Problemática

9

CIn.ufpe.br

Problemática

10

CIn.ufpe.br

Objetivo Geral
• Propor uma abordagem de seleção em tempo de execução das características que irão compor uma DSPL com base em uma análise de seus respectivos atributos de qualidade

11

CIn.ufpe.br

Objetivos Específicos
• Revisar a literatura a fim de identificar as maneiras pelas quais a derivação dinâmica em DSPL ocorre • Desenvolver um método para a avaliação da qualidade dos serviços em tempo de execução • Avaliar a performance da abordagem proposta

12

CIn.ufpe.br

Solução Proposta

13

CIn.ufpe.br

Escop o Negati vo

14

CIn.ufpe.br

Revisão 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 começo quanto o fim. - Matrix (Diálogo entre Neo e o Arquiteto)

15

CIn.ufpe.br

Computação Orientada a Serviços (SOC)

16

CIn.ufpe.br

SOC – Benefícios e Princípios
• • • • Reusabilidade Flexibilidade Intoperabilidade Baixo acoplamento (contratos) • Contrato entre serviços • Descoberta de Serviços • Granularidade alta (pequena quantidade de 17 CIn.ufpe.br requisições)

SOC – Contratos
• Clientes aderem a contratos de comunicação • Descrição de características, funcionalidades e formato de dados • XML, WSDL e XSD
18
CIn.ufpe.br

SOC - Descoberta
• Ocorre a partir da especificação descritiva (contratos) • Universal Descriptor, Discovery and Integration (UDDI) • Uniform Resource Identifier (URI)
19
CIn.ufpe.br

SOC - Web
• Manifesta-se na forma de Web services • Identificado por URI

20

CIn.ufpe.br

SOC – Características qualitativas dos Web services
• • • • • • • Latência Demanda Rede Controle de acesso Encriptação Disponibilidade Confiabilidade
21
CIn.ufpe.br

SOC – Características qualitativas dos Web services
• Conformidade e reputação (Deora et al., 2006)
– Sinônimo de atendimento a especificações – Percepção do usuário a respeito de um serviço

22

CIn.ufpe.br

Linhas de Produto de Software (SPL)
• Conjunto de sistemas intensivos de software • Conjunto comum de funcionalidades • Satisfaz necessidades específicas de um mercado • Conjunto comum de recursos principais
23
CIn.ufpe.br

SPL – Conceitos básicos
• • • • • • • Features Core assets Variabilidade Bind Engenharia de SPL Engenharia de Produto Derivação de Produto
24
CIn.ufpe.br

SPL Dinâmicas (DSPL)
• Variabilidade dinâmica • Bind dos elementos muda durante o ciclo de vida da aplicação • Pontos de variação mudam em tempo de execução • Mudanças de contexto • Desenvolvidas para um contexto ou ambiente específico
25

CIn.ufpe.br

DSPL – Características opcionais
• Sensibilidade ao contexto (Parra et al., 2009; Ali et al., 2009; Alferez and Pelechano, 2011) • Propriedades autonômicas ou de auto-adaptação (Abbas et al., 2011; Cetina et al., 2008; Abbas, 2011) • Tomada de decisão automática

26

CIn.ufpe.br

O Estado da Arte em Derivação Dinâmica
“Estado da Arte apresenta a partir da literatura já publicada o que já se sabe sobre determinado tema, quais as lacunas existentes e onde se encontram os principais entraves teóricos ou metodológicos.” (Moresi, 2003)

27

CIn.ufpe.br

O Estado da Arte em Derivação Dinâmica
• Estudo anteriores à formalização do termo DSPL que tratam sobre Derivação Dinâmica (Kim et al., 2005; Gomaa and Saleh, 2006; Hallsteinsen et al., 2006; Lee, 2006) • A maior parte das contribuições em DSPL estão relacionadas com a proposição de soluções e no desenvolvimento de metodologias (Buregio et al., 2010) • Não são comuns de serem encontrados relatos de experiência e pesquisas que possam avaliar a aplicabilidade dos conceitos de DSPL no contexto industrial (Buregio et al., 2010) 28 CIn.ufpe.br

O Estado da Arte em Derivação Dinâmica
• Constatações reforçadas no que diz respeito a Derivação Dinâmica (Silva et al., 2013)

29

CIn.ufpe.br

Cronologia dos Estudos em Derivação Dinâmica
• • • • • • • • • • Kim et al. (2005) Gomaa and Saleh (2006) Hallsteinsen et al. (2006) Lee (2006) Cetina et al. (2008) Wolfinger et al. (2008) Pukall et al. (2009) Yu et al. (2010) Sunkle and Pukall (2010) Günther and Sunkle (2010)
• • • • • • • • • • • Carvalho et al. (2010) Lee and Kotonya (2010) Alferez and Pelechano (2011) Gomaa and Hashimoto (2011) Parra et al. (2011) Rosenmüller et al. (2011) Shen et al. (2011) Damiani et al. (2012) Baresi and Milano (2012) Silva et al. (2013) Oliveira Martins (2013)
30
CIn.ufpe.br

Cronologia dos Estudos em Derivação Dinâmica
• • • • Lee (2006) • • • • Yu et al. (2010) • •
• • Lee and Kotonya (2010) • Alferez and Pelechano (2011) • Gomaa and Hashimoto (2011) • • • • • • •
31
CIn.ufpe.br

A Interação entre SOC e DSPL
É notório que SOA segue um abordagem de reuso e composição de serviços enquanto SPL, apesar de ter como benefício a reutilização, corresponde a uma abordagem de construção e decomposição (Parra et al., 2009).

32

CIn.ufpe.br

A Interação entre SOC e DSPL
• Yu et al. (2010), a DSPL orientada a serviços faz a análise de quais serviços compõem o produto unicamente verificando a disponibilidade dos serviços. • Lee (2006), as features são mapeadas em serviços. Esta DSPL realiza uma análise e um planejamento em tempo de execução baseados em mudanças contextuais para definir quais features devem compor o produto.

33

CIn.ufpe.br

A Interação entre SOC e DSPL
• Lee and Kotonya (2010) análise com base em acordos de nível de serviço impostos pela linha de produto. • Alferez and Pelechano (2011) e Gomaa and Hashimoto (2011), sempre que ocorre uma quebra no acordo de nível de serviço o framework procura por outro serviço que satisfaça as condições desejadas.

34

CIn.ufpe.br

DYMOS QoS

-

Esse caminho não há outro Que por você faça. - SKANK (Acima do Sol)

35

CIn.ufpe.br

Estudo Exploratório (Moresi, 2003)
• Área de pouco conhecimento acumulado e sistematizado • Natureza de sondagem • Não comporta hipóteses

36

CIn.ufpe.br

Análise Exploratória
• • • • • DYMOS ApplicationService ServiceContext OSGi contêiner Elementos descritores

37

CIn.ufpe.br

DYMOS

38

CIn.ufpe.br

DYMOS

<?xml version="1.0"?> <services> ... <service id="imageService” service-impl="com.assertLab.imageServiceImpl"> <service-spec> com.assertLab.imageService </service-spec> <alternative-service ref="imageService1" priority="1" /> </service> <service id="imageService1" service-impl="com.assertLab.imageService1"> <service-spec> com.assertLab.imageService </service-spec> </service> ... </services> </variabilities>

39

CIn.ufpe.br

DYMOS

40

CIn.ufpe.br

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>
41
CIn.ufpe.br

DYMOS

42

CIn.ufpe.br

DYMOS

43

CIn.ufpe.br

DYMOS

44

CIn.ufpe.br

DYMOS
Descoberta de Serviços

45

CIn.ufpe.br

DYMOS
Reconfiguração de Serviços

46

CIn.ufpe.br

DYMOS – ContextHotBuild
• Bind em tempo de execução • Serviços Web empacotados como bundles OSGi • Sob responsabilidade do OSGi Container

47

CIn.ufpe.br

Intervenção Exploratória
• O critério de seleção utilizado pode não ser ideal • Responsabilidade da decisão nas mãos do Engenheiro de Software • Propor análise com base em atributos de qualidades dos serviços • Maior pontuação dentro de um nível de serviço exigido

48

CIn.ufpe.br

DYMOS QoS

49

CIn.ufpe.br

DYMOS QoS
Descoberta

de Serviços

50

CIn.ufpe.br

DYMOS QoS
Atributos de

qualidade

... <serviceLevel id="1"> <cost>2,07</cost> <curCapacity>0</curCapacity> <level>1</level> <maxCapacity>42</maxCapacity> <name>imageService1</name> <responseTime>23379</responseTime> <serviceSpec> com.assertLab.imageService </serviceSpec> </serviceLevel> <serviceLevel id="2"> <cost>0,29</cost> <curCapacity>38</curCapacity> <level>2</level> <maxCapacity>48</maxCapacity> <name>imageService1</name> <responseTime>44639</responseTime> <serviceSpec> com.assertLab.imageService </serviceSpec> </serviceLevel> ...

51

CIn.ufpe.br

Seleção de serviços
• O Broker deriva das abordagens de Chen et al. (2003); Yu and Lin (2004, 2005) • Cada provedor oferece diversos níveis de serviço • Função de utilidade • Utilização de informações estáticas, a necessidade de qualidade e a capacidade dinâmica do servidor

52

CIn.ufpe.br

Seleção de serviços

53

CIn.ufpe.br

Avaliação

-

O poder permanece onde os homens crêem que ele deve permanecer. - GEORGE R. R. MARTIN (A Fúria dos Reis, As Crônicas de Gelo e Fogo)

54

CIn.ufpe.br

Validação Exploratória
• • • • Produtos MobiLine Modificação da DymosClientLib Descrição dos serviços Validação em 3 fases

55

CIn.ufpe.br

DYMOS Client Lib

... 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); ...

56

CIn.ufpe.br

XML de Serviços

<?xml version="1.0"?> <services> ... <service id="imageService" service−impl="com.assertLab.imageServiceImpl"> <service−spec> com.assertLab.imageService </service−spec> <alternative−service ref="imageService1" /> <alternative−service ref="imageService2" /> <alternative−service ref="imageService3" /> <alternative−service ref="imageService4" /> <alternative−service ref="imageService5" /> </service> <service id="imageService1” service−impl="com.assertLab.imageService1"> <service−spec>com.assertLab.imageService</service−spec> </service> <service id="imageService2" service−impl="com.assertLab.imageService2"> <service−spec>com.assertLab.imageService</service−spec> </service>

57

CIn.ufpe.br

Valores de QoS

58

CIn.ufpe.br

Primeira Fase

59

CIn.ufpe.br

Segunda Fase

60

CIn.ufpe.br

Terceira Fase

61

CIn.ufpe.br

Avaliação Estatística Descritiva
• Ausência de dados reais • Criação de um benchmark com 100 serviços • Dados categóricos:
– Identificador – Nome – Especificação

• Dados ordinais:
– Nível de Serviço
62
CIn.ufpe.br

Avaliação Estatística Descritiva
• Medidas de Razão:
– Capacidade – Custo – Tempo de Resposta

63

CIn.ufpe.br

Distribuição do Tempo de Resposta

64

CIn.ufpe.br

Capacidades Máximas e Atuais

65

CIn.ufpe.br

Custo

66

CIn.ufpe.br

Desempenho

67

CIn.ufpe.br

Desempenho

68

CIn.ufpe.br

Conclusão

Eu é que não me sento No trono de um apartamento Com a boca escancarada Cheia de dentes Esperando a morte chegar - RAUL SEIXAS (Ouro de Tolo) 69
CIn.ufpe.br

Conclusão
A abordagem apresentada é efetiva é efetiva para a linha de produto para a qual foi validada, sendo melhor utilizada com pequenas quantidades de serviços a serem avaliados em tempo de execução

70

CIn.ufpe.br

Contribuições
• Criação de uma abordagem de seleção, em tempo de execução das características que irão compor a DSPL com base em uma análise de seus respectivos atributos de qualidade
– Expande o processo de derivação já existente

• Fornecimento de um mecanismo que permite a seleção de serviços, assim como um benchmark para testes futuros junto com outras abordagens
71
CIn.ufpe.br

Limitações
• Apresentação de algo diferente (Wazawick, 2009)
– Característico de áreas emergentes – Comparações comumente qualitativas entre técnicas – As outras abordagens são a proposição de algo novo

• Indícios de que a área de DSPL esteja imatura corroborada pelos estudos de Buregio et al. (2010); Alves et al., (2009); Bencomo et al. (2010, 2012); da Silva et al. (2013) • Impossibilidade de criação de um desenho experimental rebuscado • Possibilidade de existir um viés no Benchmark 72 CIn.ufpe.br

Trabalhos Futuros
• As limitações da área de DSPL apresentam um conjunto de oportunidades de pesquisa, no que tange ao desenvolvimento de
– – – – – – Modelos Ferramentas Algorítimos Discussões Conceituais Relatos de experiência Pesquisas de validação e avaliação
73
CIn.ufpe.br

Trabalhos Futuros
• Identificação, avaliação e comparação entre outras técnicas de descoberta de serviços em diversos contextos de DSPL • Contribuir com o avanço das DSPL autônomas, diminuindo a necessidade de intervenção • Estudar a sinergia entre as DSPLs orientadas a serviços e as Social Machines • Investigação científica para o desenvolvimento de um mecanismo que permita a reconfiguração dinâmica de artefatos de código JavaScript
74
CIn.ufpe.br

Referências
• •
• • •

• • •
• • • • •

Abbas, N. (2011). Towards autonomic software product lines. volume 46. Abbas, N., Andersson, J., and Weyns, D. (2011). Knowledge evolution in autonomic software product lines. page 1, New York, New York, USA. ACM Press. Alferez, G. H. and Pelechano, V. (2011). Context-Aware Autonomous Web Services in Software Product Lines. pages 100– 109. Ieee. Ali, R., Chitchyan, R., and Giorgini, P. (2009). Context for goal-level product line derivation. Alves, V., Schneider, D., Becker, M., Bencomo, N., and Grace, P. (2009). Comparitive study of variability management in software product lines and runtime adaptable systems. Baresi, L. and Milano, P. (2012). Service-Oriented Dynamic Software Product Lines. Number Cvl, pages 42–48. Bencomo, N., Lee, J., and Hallsteinsen, S. (2010). How dynamic is your Dynamic Software Product Line? Bencomo, N., Hallsteinsen, S., and Almeida, E. (2012). A View of the Landscape of Dynamic Software Product Lines. pages 1–1. Buregio, V., Almeida, E., and Meira, S. (2010). Characterizing Dynamic Software Product Linesâ A Preliminary Mapping Study. pages 53–60. Carvalho, S. T., Loques, O., and Murta, L. (2010). Dynamic Variability Management in Product Lines: An Approach Based on Architectural Contracts. pages 61–69. Ieee. Cetina, C., Fons, J., and Pelechano, V. (2008). Applying Software Product Lines to Build Autonomic Pervasive Systems. Number ii, pages 117–126. Ieee. Chen, H. C. H., Yu, T. Y. T., and Lin, K.-J. L. K.-J. (2003). QCWS: an implementation of QoS-capable multimedia Web services. CIn.ufpe.br da Silva, J. R. F., da Silva, F. A. P., do Nascimento, L. M., Martins, D. A., and Garcia, V. C. (2013). The dynamic aspects of product derivation in dspl: A systematic literature review. In Information Reuse and Integration (IRI), 2013 IEEE 14th

75

Referências

• • • • • • • • • • • •

D’Ambrogio, 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 1–10. de Oliveira Martins, D. A. (2013). DYMOS: Uma abordagem para suporte a variabilidades dinâmicas em Linhas de Produto de Software Orientado a Serviços e Sensível ao Contexto. Master’s 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 95–101. 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 46–50. 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 345–352. Günther, S. and Sunkle, S. (2010). Dynamically adaptable software product lines using Ruby metaprogramming. pages 80– 87, 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 141–150. Ieee. Hallsteinsen, S., Hinchey, M., Park, S., and Schmid, K. (2008). Dynamic software product lines. Computer, (April), 93–95. IBM (2006). An architectural blueprint for autonomic computing. Technical Report June. Josuttis, N. (2007). SOA in Practice. O’reilly.

76

CIn.ufpe.br

Referências
• 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 &#38; Services, iiWAS ’10, pages 885–889, 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 66–72. Lee, J. (2006). A Feature-Oriented Approach to Developing Dynamically Reconfigurable Products in Product Line Engineering. pages 131–140. Ieee. Lee, J. and Kotonya, G. (2010). Combining service-orientation with product line engineering. Number June, pages 35–41. Lin, K.-J., Zhang, J., Zhai, Y., and Xu, B. (2010). The design and implementation of service process reconfiguration with endto-end QoS constraints in SOA. Service Oriented Computing and Applications, 4(3), 157–168. 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. Mendonça, 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 39–48. Moresi, E. (2003). Metodologia da pesquisa. Papazoglou, M. P. and Georgakopoulos, D. (2003). Introduction: Service-oriented computing. Commun. ACM, 46(10), 24– 28. Parra, C., Blanc, X., and Duchien, L. (2009). Context awareness for dynamic service oriented product lines. pages 131–140. Parra, C., Blanc, X., Cleve, A., and Duchien, L. (2011). Unifying design and runtime software adaptation using aspect CIn.ufpe.br models. volume 76, pages 1247–1260. Elsevier B.V. Pohl, K., Böckle, G., and van der Linden, F. (2005). Software Product Line Engineering: Foundations, Principles, and

• • • • •

• • • • • •

77

Referências

• • •


• • • • • •

Pukall, M., Siegmund, N., and Cazzola, W. (2009). Feature-oriented runtime adaptation. page 33, New York, New York, USA. ACM Press. Rosenmüller, M., Siegmund, N., Apel, S., and Saake, G. (2011). Flexible feature binding in software product lines. volume 18, pages 163–197. 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 1–6, New York, New York, USA. ACM Press. Wainer, J. (2007). Métodos de pesquisa quantitativa e qualitativa para a Ciência da Computação. Atualização em Informática. Org: Tomasz Kowaltowski; Karin Breitman. Rio de Janeiro: Ed. PUC-Rio, pages 1–42. Wazlawick, R. (2009). Metodologia de pesquisa para ciência da computação, 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 21–30. Ieee. Yu, J., Lalanda, P., and Bourret, P. (2010). An Approach for Dynamically Building and Managing Service-Based Applications. pages 51–58. Ieee. 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. Yu, T. and Lin, K.-J. (2005). Service selection algorithms for Web services with end-to-end QoS constraints. Information Systems and e-Business Management, 3(2), 103–126.

78

CIn.ufpe.br

Obrigado!

79

CIn.ufpe.br