Acme Total

1.198 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.198
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Acme Total

  1. 1. ADLs • Em geral cada ADL oferece capacidades específicas – AESOP: permite o uso de estilos arquiteturais – ADAGE: permite a descrição de frameworks arquiteturais para sistemas de aviação – C2: permite a descrição de sistemas de interface com usuário usando um estilo baseado em mensagem – Wright: suporta a especificação e análise de interações entre componentes arquiteturais Arquitetura de Software – Thaís Batista ACME • Architecture Description Language • Motivação: – Proliferação de ADLs – Necessidade de um formato “padrão” Linguagem para Intercâmbio de Descrições Arquiteturais = ACME Arquitetura de Software – Thaís Batista 1
  2. 2. ACME Objetivos Principais • Permitir a integração de diferentes ferramentas oferecendo uma forma comum de intercâmbio arquitetural • Permitir o desenvolvimento de arquitetura compatível com múltiplas ADLs • Esclarecer o relacionamento entre diferentes ADLs Arquitetura de Software – Thaís Batista ACME Objetivos Secundários • Oferecer um esquema para representação de arquiteturas que irá permitir o desenvolvimento de novas ferramentas para análise e visualização de estruturas arquiteturais • Oferecer uma fundamentação para o desenvolvimento de ADLs • Servir como veículo para criar convenções e padrões para informação arquitetural • Oferecer descrições expressivas que são fáceis de ler e escrever Arquitetura de Software – Thaís Batista 2
  3. 3. ACME • Formato de Intercâmbio Genérico + facilidades de anotação para informações adicionais específicas de ADLs Arquitetura de Software – Thaís Batista ACME Características • ONTOLOGIA arquitetural: com sete elementos para design arquitetural • Mecanismo de ANOTAÇÃO: suportando associação de informação não estrutural usando sublinguagens definidas externamente • Mecanismo de TEMPLATE • Framework de semântica aberta Arquitetura de Software – Thaís Batista 3
  4. 4. ACME Elementos • Sete tipos de entidades para representação arquitetural: – Componentes – Conectores – Sistemas – Portas – Papéis – Representações – Rep-Maps Arquitetura de Software – Thaís Batista ACME Componentes • Elemento computacional primário • Exemplos típicos: – Clientes – Servidores – Filtros – Objetos Arquitetura de Software – Thaís Batista 4
  5. 5. ACME Conectores • Representam interações entre componentes • Mediam a comunicação e coordenação entre componentes • Exemplos: – Pipes – RPC – Eventos – Protocolos Cliente-Servidor Arquitetura de Software – Thaís Batista ACME Sistemas • Representam Configurações de componentes e conectores Arquitetura de Software – Thaís Batista 5
  6. 6. ACME Interfaces • Portas => Componentes • Papéis => Conectores Arquitetura de Software – Thaís Batista ACME Portas • Interfaces dos componentes são definidas por PORTAS • Cada porta identifica um ponto de interação entre o componente e seu ambiente • Um componente pode prover múltiplas interfaces usando diferentes tipos de portas Arquitetura de Software – Thaís Batista 6
  7. 7. ACME Papéis • Interfaces dos Conectores são definidas por papéis • Cada papel de um conector define um participante da interação representada pelo conector • Conectores Binários têm dois papéis: – Em RPC: Caller e Callee – Em um Pipe: Leitura e Escrita • Outros tipos de conectores podem ter mais que dois papéis. Exemplo: Broadcast de eventos pode ter um papel de um announcer e um número arbitrário de papeis de receiver. Arquitetura de Software – Thaís Batista ACME Exemplo RPC Cliente Servidor System simple_cs = { Component client = {Port send-request } Component server = {Port receive-request } Connector rpc = { Roles {caller, callee} } Attachments: { client.send-request to rpc.caller ; server.receive-request to rpc.callee } } Arquitetura de Software – Thaís Batista 7
  8. 8. ACME Representação • Usado para descrição da representação hierárquica de arquiteturas • O uso de múltiplas representações permite expressar múltiplas visões das entidades arquiteturais Arquitetura de Software – Thaís Batista ACME Rep-Map • Usado para definir a correspondência entre a representação interna do sistema e a interface externa do componente ou conector • Descreve uma associação entre portas externas e portas internas (para conectores define uma associação entre papéis internos e papéis externos) Arquitetura de Software – Thaís Batista 8
  9. 9. ACME Propriedades • Para acomodar a ampla variedade de informação auxiliar, ACME suporta anotação de estruturas arquiteturais com listas de propriedades • Cada propriedade tem: nome, tipo opcional e valor • Qualquer um dos sete tipos de entidades arquiteturais ACME podem ser anotadas Arquitetura de Software – Thaís Batista ACME Exemplo com Propriedades System simple_cs = { Component client = { Port send-request; Properties { Aesop-style: style-id = client-server; Unicon-style: style-id = cs; source-code: external = “CODE-LIB/client.c” }} Component server = { Port receive-request Properties { idempotence: boolean = true; max_concurrent_clients : integer = 1; source-code: external = “CODE-LIB/server.c” }} Connector rpc = { Roles {caller, callee} } Properties { synchronous : boolean = true; max_roles : integer = 2; protocol = Wright = “...” }} Attachments: { client.send-request to rpc.caller ; server.receive-request to rpc.callee } } Arquitetura de Software – Thaís Batista 9
  10. 10. Exemplo cliente servidor REPRESENTATIONS Properties Shape = rect. While(data) Width = 100 Read(resp) Color = blue SOURCE CODE High-Perf-rp: RepMap VISUAL Small-mem-rp: RepMap Arquitetura de Software – Thaís Batista 10

×