Você está na página 1de 27

PRÁTICAS PARA A ESPECIFICAÇÃO DE

ARQUITETURAS DE SOFTWARES NO CONTEXTO DE MÁQUINAS SOCIAIS PARA A WEB 3.0
Dissertação de Mestrado por

Elaine Gleyce Mira de Figueiredo (egmf@cin.ufpe.br)
Orientadores:

Prof. PhD. Silvio Romero de Lemos Meira Prof. PhD. Vinicius Cardoso Garcia

Sumário
• Introdução – Objetivos, problema, justificativa.... • Máquinas Sociais • Revisão da Literatura de Arquiteturas de Softwares Para Máquinas Sociais • Arquitetura de Referência Para Máquinas Sociais – Avaliação da Arquitetura • Práticas Para Desenvolver Arquiteturas de Máquinas Sociais • Experimentação das Práticas • Conclusão • Referências

Introdução
• Apresentação e Justificativa:
 Proliferação de serviços e aplicações para a Web;  Trabalhar o conceito de Máquinas Sociais - SM’s, e assim explorar a internet de forma mais científica;

• Problemática:
 Manutenções complexas;  Impactos na estratégia de negócio;

4 de 27

Introdução
• Objetivo:
 Recomendar práticas para auxiliar na especificação, e mesmo concepção, de arquiteturas de Máquinas Sociais;

• Contribuição:

5 de 27

Máquinas Sociais

Máquinas Sociais são sistemas conectáveis que possuem uma unidade de processamento interno e são capazes de interagir com outras SM’s, a fim de, executar um serviço (MEIRA. et al, 2011).

Figura 01. Representação da Máquina Social Fonte: MEIRA. et al, 2011

6 de 27

Máquinas Sociais

Figura 02: Taxonomia das SM’s Fonte: MEIRA. et al, 2011

Figura 03: Exemplos de SM’s

7 de 27

Máquinas Sociais
A priori requisitos como: Performance, Disponibilidade, Modificabilidade, e Interoperabilidade, são os mais importantes para as SM’s, eles atuam na satisfação das necessidades e características das Máquinas Sociais.
Têm Autonomia Sociabilidade Constância Necessitam Serviços Comunicação facilitada Manutenção facilitada Infraestrutura Reatividade Conectividade Expansão
Figura 04. Características e necessidades das SM’s

Máquinas Sociais
Colaboração Serviços

8 de 27

Revisão da Literatura de Arquiteturas de Softwares Para Máquinas Sociais
“Which the architecture of reference for Social Machines?” • • • • • QP1: What are reference architectures for Mashups? QP2: Which the reference architecture of Cloud Computing? QP3: What is the architecture of Social Networks? QP4: There is a model of architecture for Autonomous Systems? QP5: What are reference architectures of Web Applications?

“Which the architecture of “Social Networks” OR “Social Networking”.

9 de 27

Revisão da Literatura de Arquiteturas de Softwares Para Máquinas Sociais

• Repositórios de busca; • Critérios de exclusão e inclusão; • Registro do material;
 Inserção em um repositório público:
http://dl.dropbox.com/u/8309962/Fichas%20de%20Leitura.docx

10 de 27

Revisão da Literatura de Arquiteturas de Softwares Para Máquinas Sociais
• Baseado em critérios de classificação foram obtidos: 21 (vinte e um) textos entre artigos, periódicos e capítulo de livro; 11 (onze) destes materiais mostraram maior contribuição.

Figura 05. Gráfico de dispersão – número de estudos por questões

11 de 27

Revisão da Literatura de Arquiteturas de Softwares Para Máquinas Sociais
Fonte Mendeley IEEE Referência (MERRIL, 2006) (LIU e LIANG, et al. 2009) Descrição Mashups: The new breed of web app Using Architecture Integration Patterns to Compose Enterprise Mashups CiteSeerX (VECCHIOLA; CHU; BUYYA, Aneka: A Software Platform for .NET-based Cloud

2009) Google Scolar Google Scolar (BEHRENDT et al. 2011) (WEISSMAN, 2010)

Computing IBM Cloud Computing Reference Architecture 2.0 The Force.com Multitenant Architecture
Understanding the Design of Salesforce.com’s Internet Application Development Platform

CiteSeerX

(KOSSMANN, KRASKA, LOESING, 2010)

An Avaluation of Alternative Architectures for Transaction Processing in the Cloud. Facebook: An Example Canonical Architecture for Scaling Billions of Messages

Google Scolar

(HOFF, 2011)

Google Scolar Mendeley

(AVRAM, 2009) (MCCANN e HUEBSCHER, 2004)

Twitter, uma arquitetura Evoluindo Evaluation Issues in Autonomic Computing

IEEE Google Books

(IBM, 2006) (GOVERNOR, et al. 2009)

An Architectural Bluepoint for Autonomic Computing Web 2.0 Architectures

Figura 06. Materiais selecionados para o estudo (11 estudos mais relevantes)

12 de 27

Revisão da Literatura de Arquiteturas de Softwares Para Máquinas Sociais
• Utilização de Web Services; • Definição de arquiteturas com a camada de infraestrutura suportada por Computação nas Nuvens; • Utilização de linguagens de programação que facilitem a rapidez na codificação, como por exemplo: a adoção da linguagem Rails que já suporta PHP e REST;

• Algumas características das SM’s foram bem tratadas pelas arquiteturas, facilitando o atendimento aos requisitos: performance e modificabilidade.

13 de 27

Revisão da Literatura de Arquiteturas de Softwares Para Máquinas Sociais

Figura 07. Pontos ou aspectos mais trabalhados pelas arquiteturas

14 de 27

Proposta de Arquitetura de Referência Para Máquinas Sociais

Figura 09. Diagrama de Classe (Visão de módulos_Wrapper e Processing Unit) Figura 08. Arquitetura de Referência para SM’s

15 de 27

Proposta de Arquitetura de Referência Para Máquinas Sociais
• Avaliação –
 Baseada no método de inspeção - Checklist (TRAVASSOS, 2002, 2006 e DEBAUND,1998);  Processo com planejamento;  Adaptação dos itens de questionamento com os erros que seriam catalogados.  Resultado
(https://www.dropbox.com/sh/sc6bv62petuczdm/ocjs_kklFH):

80% das respostas na 2ª rodada estavam em conformidade
Figura 10. Resultado em percentual da 1ª e 2ª rodada

16 de 27

Práticas Para Desenvolver Arquiteturas de Máquinas Sociais
• As prática devem ser incorporadas a metodologia da fase de arquitetura de software, ou ao próprio processo de software. • Precursores IEEE Std 830-1998 e IEEE Std 1471- 2000. • Práticas:
– PRÁTICA 1: Modelar processos e sub-processos de negócio de serviço;
– PRÁTICA 2: Reconhecer os serviços funcionamento da Máquina Social; providos e requeridos para o

– PRÁTICA 3: Conhecer os provedores de serviço da aplicação; – PRÁTICA 4: Verificar a necessidade de recursos que tornem a aplicação autogerenciável e como esses recursos podem ser implementados;

17 de 27

Práticas Para Desenvolver Arquiteturas de Máquinas Sociais
 PRÁTICA 5: Determinar os recursos que implementarão os elementos States e Constraints;

Figura 11. Representação do framework de comunicação para as SM’s

 PRÁTICA 6: Adotar estratégias para sanar as fraquezas do estilo arquitetural camadas;

 PRÁTICA 7: Determinar o recurso que proverá a comunicação e a interoperabilidade.  Web Services; e ESB’s.

18 de 27

Práticas Para Desenvolver Arquiteturas de Máquinas Sociais
 PRÁTICA 8: Selecionar o recurso Cloud Computing a ser adotado na SM;  Recursos computacionais, economia e segurança.  PRÁTICA 9: Selecionar os padrões de projeto mais adequados para a arquitetura da Máquina Social;
Padrões de Projetos Estruturais e Comportamentais
Nome Definição / Problema a ser resolvido

Adapter

Faz a adaptação de interfaces em momento que uma classe não tem a interface que corresponde ao domínio esperado pela aplicação.

State

Permite que um componente altere suas funções conforme a alteração do seu estado.
Figura 12. Padrões de projeto recomendados

 PRÁTICA 10: Selecionar o banco de dados não relacional.

19 de 27

Práticas Para Desenvolver Arquiteturas de Máquinas Sociais

Figura 13. Tecnologias propostas nas práticas para arquitetura de SM’s
Figura 14. Relação entre as práticas e os requisitos não funcionais

20 de 27

Experimentação das Práticas
• Experimento do tipo caso de uso, ou In vivo, [JURISTO e MORENO, 2001]; • Objetivo Global: Determinar o efeito do uso das práticas e da arquitetura de referência na definição de arquiteturas de Máquinas Sociais quanto a qualidade dessas arquiteturas; • Questões:  Requisitos Trabalhados:
 Métrica: Quantidade de pontos ou requisitos trabalhados.

 Adequação da Arquitetura:
 Métrica: Quantidade de não conformidades encontradas.

21 de 27

Experimentação das Práticas
• Hipótese Nula:  NºPORsempráticas+AR=NºPORpráticas+AR  ADsempráticas+AR=ADpráticas+AR • Hipótese Alternativa:  NºPORsempráticas+AR<NºPORpráticas+AR  ADsempráticas+AR<ADpráticas+AR • Variáveis Independentes:
 Tipo de Sm; habilidade da equipe; fase do processo de desenvolvimento.

• Ruídos.

22 de 27

Experimentação das Práticas
• Execução:  Projeto Piloto;  Caso de Uso.
• Resultado:  NºPORpráticas+AR = 7  NºPORsempráticas+AR = 4  ADpráticas+AR = 4  ADsempráticas+AR = 2
AD = casos de testes atendidos

• Validades:  Validade Externa;  Validade de Conclusão;  Validade Interna.
23 de 27

Experimentação das Práticas
• Resultado:
 Os problemas de integração entre as aplicações foram descobertos no momento da analise arquitetural;
 Melhorias na estratégia de negócio, na definição dos requisitos e da arquitetura;  As facilidades que Cloud Computing poderiam trazer ao desenvolvimento do Editor foram notadas, entretanto, para a empresa os recursos de CC ainda é algo fora da realidade;

 O trabalho de definição de interface e design gráfico para o Editor foi preciso.

24 de 27

Conclusão
• • Através de SM’s é possível reinventar projetos em rede; Foram sugeridas adaptações no modo de usar a tecnologia para se construir Máquinas Sociais; Utilizar as práticas e a arquitetura proposta em outros projeto de software; Avaliação da arquitetura foi um processo interessante que pode ser replicado por ser dedicado as arquiteturas de referências; O experimento mostrou que tanto práticas quanto arquitetura de referência foram bem aceitas.

• •

25 de 27

Referências
MEIRA, Silvio; BUREGIO, Vanilson; NASCIMENTO, Lenadro; FIGUEIREDO, Elaine; NETO, Misael; ENCARNAÇÃO, Bruno; GARCIA, Vinicius. The Emerging Web of Social Machines, 2011. IEEE 35th Annual Computer Software and Applications Conference (pp. 26-27). Disponível em: <http://goo.gl/YcIB6>. Acesso em: 01 mar. 2011. TRAVASOS, Guilherme; GUROV, Dmytro; AMARAL, Edgar. Engenharia de Software Experimental. Relatório Técnico, Universidade Federal do Rio de Janeiro, 2002. LAITENBERGER, O; DEBAUD, Jean. Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures. 1998. Kaiserslautern, Germany, Fraunhofer Institute Experimental Software Engineering. JURISTO. Natalia; MORENO, Ana. Basics of Software Experimentation. 2ª Ed. USA: Kluweer Academic Publishers, 2001. Engineering

26 de 27

PRÁTICAS PARA A ESPECIFICAÇÃO DE ARQUITETURAS DE SOFTWARES NO CONTEXTO DE MÁQUINAS SOCIAIS PARA A WEB 3.0

CONSIDERAÇÕES!!