750 likes | 952 Views
SOA Service Oriented Architecture. SOA – Service Oriented Architecture. Estilo/padrão de arquitetura onde as funcionalidades de aplicações existentes são disponibilizadas na forma de serviços
E N D
SOA – Service Oriented Architecture • Estilo/padrão de arquitetura onde as funcionalidades de aplicações existentes são disponibilizadas na forma de serviços • É um elemento de Service Oriented Computing (SOC), um paradigma de desenvolvimento baseado no conceito de serviços
O que são serviços? • Serviço é um componente que atende a uma função de negócio (business function) • Pode receber e responder requisições, ocultando os detalhes de implementação • Desacoplados em relação ao cliente/consumidor • Descritos através de contratos de operações
Serviços versus Componentes • Serviço • conceito mais abstrato • ligado ao negócio • desvinculado de um código • granularidade “grossa” • pode ser implementado por componentes • Componentes • elemento concreto • usado para compor aplicações • vinculado a um código • Granularidade mais “fina • Ex.: Uma entity EJB é um componente, não um serviço • Comparação interessante em • http://radovanjanecek.net/blog/archives/296.html
Análise e Projeto em SOA(Service Oriented Architecture) Requisitos Especificação do modelo de negócios Modelagem do Negócio Analisar serviços Planejamento Projetar Serviços Planejamento Inicial Implementação Avaliação Teste
Analisar Serviços Arquiteto de Software Projetar Serviços Projetar Arquitetura Revisor de projeto Prototipar Interface gráfica Arquiteto de Informação Analisar Casos de Uso Projetar Casos de Uso Projetar Subsistemas/ componentes Analista de Sistemas Revisar Projeto Projetar classes Projetar Base de Dados Projetista de Banco de Dados
Objetivos desta atividade • Gerar artefatos para facilitar e alinhar o entendimento entre os stakeholders • Prototipação e avaliação da GUI • Organização das informações • Input para Designers • Teste de usabilidade
Visão geral dos artefatos Documento de Requisitos Modelo de Informação do Negócio Glossário Prototipação da Interface Gráfica Documento da Arquitetura Modelo de Casos de Uso Prototipar Interface Gráfica Arquiteto da informação Modelo Navegacional Protótipo da Interface Gráfica
Passos para Prototipar a GUI 1. Modelar conceitos de negócios - Modelo de Informação do Negócio 2. Projetar Fluxo de Informação - Modelo Navegacional 3. Elaborar Protótipo de Interface - Protótipo de Interface Gráfica
1. Modelar conceitos de negócios • Modelo conceitualdas informações/entidades manipuladas pelo sistema • Pré modelo E-R • Vai ajudar na organizaçãodas informações • Multiplicidade é opcional • Modelo independente de computação (CIM)
QIB - Diagrama de Casos de Uso • Usaremos o QIB como exemplo
2. Projetar Fluxo de Informação • Gerar o modelo navegacional do sistema • Fluxo de informação do sistema • Pode ser: • Sitemap • Interface flow diagram (Diagrama de fluxo) • Screen Flow (Fluxo de Tela) • Modelo independente de computação (CIM)
3. Elaborar Protótipo de Interface • Modelo Navegacional + Modelo de Informação do negócio = “wireframe detalhado” • Layout completo das telas do sistema: • Organização das informações • Ações de links e botões • Tratamento de erros e fluxos secundários • É útil?
Como criar os artefatos? • Ferramentas: • Axure RP(wireframe), Smartdraw (sitemap), Netbeans (Fluxo de telas) • Exemplos: • www.cin.ufpe.br/~vtb/wireframes • http://www.axure.com/Samples/AxureRPFeaturesSample/AxureRPFeaturesSample_Start.html • http://www.axure.com/Samples/RegistrationSample/RegistrationSample_Start.html
Prototipar Interface Gráfica • Exercício: • Baseado no Modelo Navegacional e no modelo de informação, construa o protótipo da interface • Sugestão: Axure RP • http://www.axure.com/downloads.aspx • http://www.axure.com/downloadThanks.aspx?version=50 • http://www.youtube.com/watch?v=xgUE3BuaKZ4&feature=related • http://www.youtube.com/watch?v=sieYeDepdzA&feature=related • http://www.youtube.com/watch?v=-NwsjE5LY1M&feature=related
Contexto decisões do arquiteto <<subsystem>> Analisar Serviços Arquiteto de Software Projetar Serviços Projetar Arquitetura Revisor de projeto Prototipar Interface gráfica Arquiteto de Informação Check List bla bla bla blabla Analisar Casos de Uso Projetar Casos de Uso Projetar Subsistemas Analista de Sistemas Revisar Projeto Projetar classes Projetar Base de Dados Projetista de Banco de Dados
Objetivos • Visão inicial da arquitetura (orientada a serviços) do sistema • Sistemática para identificação dos serviços e componentes • “Análise” diferente do RUP
Visão Geral dos Artefatos <<entrada para esta atividade>> <<entrada para esta atividade>>
Para Identificar Serviços: 1. Empacotar Casos de Uso 2. Construir Arquitetura de Serviços 3. Identificar Serviços de Entidade 4. Revisar Resultados
Para Identificar Serviços: 1. Empacotar Casos de Uso 2. Construir Arquitetura de Serviços 3. Identificar Serviços de Entidades 4. Revisar Resultados
Exemplo do QIB Analisar Serviços
2. Construir Arquitetura de Serviços • Arquitetura de Serviços (Service Architecture) é gerada a partir do modelo de casos de uso • Passo inicial para identificação dos serviços do sistema • SOAML (Profile UML para modelar SOA)
Arquitetura de Serviços • Services architecturedescreve como os participantes consomem e fornecem serviços para atender aos requisitos do negócio • Participant representa uma “parte” que consome e/ou fornece serviços. Pode representar pessoas, organizações ou sistemas • A service contracté a especificação do acordo entre provedores e consumidores de um serviço quanto às informações trocadas entre participantes
Arquitetura de Serviços • Gerada estaticamente a partir do modelo de casos de uso “empacotados”: • Atores => participant • Sistema => participant • Pacote de casos de uso => Service Contract • Relação na direção caso de uso – ator => Service Contract • Casos de uso no modelo principal=> Service Contract
Arquitetura de Serviços Analisar Serviços
3. Identificar Serviços de entidades • Um tipo de serviço que é derivado de um ou mais entidades de negócio relacionadas • São altamente reutilizáveis e usados por vários serviços • Gerados a partir do Modelo de Informação do Negócio • Exemplo: Serviços para fazer CRUD
Interação dos Serviços • Sistemática “semelhante” a Distribuir comportamento entre as classes • Para cada Serviço (service contract) • Diagrama de seqüência (coreografia dos serviços) • Surgimento de novas entidades • Atualizar as classes com atributos
Interação dos Serviços • Levar em consideração TODOS os casos de uso envolvidos • Diagrama de interação único • Pelo menos 2 casos de uso por diagrama • Não possuem mensagens reflexivas • Por que?
Exercício • Fazer diagrama de interação para o pacote Controle Qualit Card
Atualizar atributos das entidades • Possíveis fontes: conhecimento do negócio, requisitos, glossário, modelo do negócio, mensagens do modelo de interação etc. • São propriedades/características das entidades identificadas • informação cujo valor é o aspecto crucial • informação de propriedade exclusiva do objeto • Caso seja identificada nova entidade, verificar necessidade de criar novo serviço • Remover entidades desnecessárias