Analisar Serviços Vítor Braga – [email protected] Objetivos da aula Apresentar os passos necessários para realizar a atividade analisar Serviços Discutir e mostrar o passo a passo para a construção dos artefatos Relembrando ... Visão geral (Exemplo: RUP) Visão geral Requisitos Modelagem do Negócio Especificação do modelo de negócios Analisar serviços Planejamento Projetar Serviços Planejamento Inicial Implementação Avaliação Teste Platform Platform Specific Independent Model (PSM) Model (PIM) Computation Independent Model (CIM) MDA Terms S O A M D E Fluxo de Atividades Visão Geral dos Artefatos Platform Platform Specific Independent Model (PSM) Model (PIM) Computation Independent Model (CIM) MDA Terms S O A M D E SOA É um estilo de arquitetura que promove a integração entre o negócio e a TI através de serviços. O serviço é o principal componente desta arquitetura. maior agilidade para atender as novas demandas, flexibilidade para atender as mudanças, redução de custo e reuso de ativos (serviços). O que são serviços ? Serviço é um componente que atende a uma função de negócio (business function). Ele pode receber e responder requisições ocultando os detalhes de sua implementação. Desacoplados em relação ao cliente/consumidor Descritos através de contratos de operações Serviços são coleções de “capacidade” Assim como pessoas, um serviço pode prover múltiplas capacidades. Classificação dos Serviços Quando estamos modelando os serviços, fica evidente que podemos classifica-los em função: Tipo de logica que encapsulam Potencial de Reuso Como a logica implementada se relaciona com o domínio da aplicação Por isso, podemos classificar os serviços: Serviços de entidades Serviços de tarefas Serviços de utilidade Service Layers Analisar Serviços Analisar serviços Visão inicial da arquitetura do Sistema Sistemática para identificação dos serviços e componentes “Análise” diferente do RUP Fluxo de Atividades Visão Geral dos Artefatos Fluxo de Atividades Passos para Identificar Serviços 1. Empacotar Casos de Uso 2. Construir Arquitetura de Serviços 3. Identificar Serviços de Entidades 5. Revisar Resultados Exemplo do QIB Desbloquear Talões de Cheque Efetuar Login Solicitar Talões de Cheque Alterar Senha Consultar Cheques ClienteAtor Consultar Saldo <<include>> <<include>> Realizar DOC Consultar Extrato Realizar Transferência Consultar Qualiti Card Efetuar Pagamento do Qualiti Card Operadora do DOC Operadora Cartão de Crédito Mostrar Dados da Consulta 1. Empacotar Casos de Uso Casos de usos “semelhantes” deverão ser empacotados dentro de um pacote de casos de uso Desbloquear Talões de Cheque Efetuar Login Solicitar Talões de Cheque Alterar Senha Consultar Cheques ClienteAtor Consultar Saldo <<include>> <<include>> Realizar DOC Consultar Extrato Realizar Transferência Consultar Qualiti Card Efetuar Pagamento do Qualiti Card Operadora do DOC Operadora Cartão de Crédito Mostrar Dados da Consulta Controle de Acesso Controle Cheque Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito 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) Exemplo Order Conformation Shipped Ship Req Shipped Delivered Arquitetura de Serviços Dealer Participant – provides and uses services Ship Status service Purchasing service Manufacturer Participant – provides and uses services Shipping service Arquitetura de Serviços Services architecture descreve como os participantes que consomem e fornecem serviços para atender aos requisitos do negócio. Participant representa uma “parte” que consomem e/ou fornecem serviços. Podem 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. QIB Controle de Acesso Controle Cheque Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito Sistemática para construir a Arquitetura de Serviços • Gerada estaticamente a partir do modelo de casos de uso “empacotado”: 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 Participants <<consumer>> Cliente Front-end Controle de Acesso Controle Cheque Controle Conta <<participant>> Sistema back-end Realizar Transferência ClienteAtor Realizar Doc Controle Qualit Card <<participant>> Operadora DOC <<participant>> Operadora Cartão Operadora Doc Operadora de Cartão de Crédito Services Contracts <<Service Contract>> Controle de Acesso <<Service Contract>> Controle de Cheque <<Service Contract>> Controle de Conta Controle de Acesso Controle Cheque Controle Conta <<Service Contract>> Realiazr Transferencia Realizar Transferência ClienteAtor Realizar Doc Controle Qualit Card <<Service Contract>> Controle Qualiti Card <<Service Contract>> Relizar Doc <<Service Contract>> Servico Operadora Doc Operadora Doc Operadora de Cartão de Crédito <<Service Contract>> Servico Operadora Cartao Services Contracts <<Service Contract>> Controle de Cheque consumer <<Service Contract>> Realiazar Transferencia consumer consumer <<participant>> Operadora Cartão provider <<participant>> Sistema back-end provider consumer consumer provider comsumer <<Service Contract>> Controle de Acesso <<consumer>> Cliente Front-end <<Service Contract>> Servico Operadora Cartao provider <<Service Contract>> Controle de Conta provider <<Service Contract>> Servico Operadora Doc provider <<Service Contract>> Controle Qualiti Card <<Service Contract>> Relizar Doc consumer provider <<participant>> Operadora DOC 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ável e usados por vários serviços Exemplo: Serviços para fazer CRUD 3. Identificar Serviços de entidades Conta <<Service Contract>> Serviço Conta ContaintInternet <<Service Contract>> Serviço Conta Internet PagamentoCartão Comprovante <<Service Contract>> Serviço PagamentoCartão Fluxo de Atividades Interação dos Serviços Sistemática “semelhante” Distribuir comportamento entre as classes Para cada Serviço (service contract) Diagrama de seqüência (coreografia dos serviços) Surgimento de novas entidades Atualizar negócio o Modelo de Informação do Interação dos Serviços Levar em consideração TODOS os casos de uso envolvidos Diagrama de interação único* Não possuem mensagens reflexivas Por que? Controle de Acesso Controle Cheque Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito : Serviço Conta Internet : Controle de Acesso : Cliente Front-end 1 : logar(login,senha) 2 : existe(login, senha) 3 : ContaInternet 4 : sessão Mensagens de retorno 5 : alterarSenha(login,senhaAntiga, SenhaNova) 6 : existe(login,senha) 7 : ContaInternet 8 : atualizar(ContaInternet) 9 : Conta Internet 10 : sessão Exercício Fazer diagrama para o pacote Controle de Qualit Card Atualizar o Modelo de informação 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 Modelo de informação atualizado Conta +numero +saldo ContaintInternet +login +senha PagamentoCartão +numero da fatura +data +valor +numero da conta Fluxo de Atividades Identificação de componentes Sistemática 1. 2. 3. para identificar os componentes Identificar os participants provedores Componentes “provedores” implementam os contratos de serviços Definir relacionamento entre componentes <<Service Contract>> Controle de Cheque consumer <<Service Contract>> Realiazar Transferencia consumer consumer <<participant>> Operadora Cartão provider <<participant>> Sistema back-end provider consumer consumer provider comsumer <<Service Contract>> Controle de Acesso <<consumer>> Cliente Front-end <<Service Contract>> Servico Operadora Cartao provider <<Service Contract>> Controle de Conta provider <<Service Contract>> Servico Operadora Doc provider <<Service Contract>> Controle Qualiti Card <<Service Contract>> Relizar Doc consumer provider <<participant>> Operadora DOC Provedores <<Service Contract>> Controle de Conta Componentes “provedores” implementam os contratos de serviços Componente Conta +existe(login, senha) +atualizar(login, senha) <<Service Contract>> Controle de Acesso Componente Controle de Acesso +logar(login, senha) +alterarSenha(login, senhaAntiga, senhaNova) <<Service Contract>> Controle de Cheque Componente Cheque +Operation1() +..() <<Service Contract>> Controle Qualiti Card Componente Qualiti Card +Operation1() +..() <<Service Contract>> Realiazar Transferencia Componente Transferencia +Operation1() +..() <<Service Contract>> Relizar Doc +Operation1() Componente Realizar Doc <<Service Contract>> Controle de Cheque consumer <<Service Contract>> Realiazar Transferencia consumer consumer <<participant>> Operadora Cartão provider <<participant>> Sistema back-end provider consumer consumer provider comsumer <<Service Contract>> Controle de Acesso <<consumer>> Cliente Front-end <<Service Contract>> Servico Operadora Cartao provider <<Service Contract>> Controle de Conta provider <<Service Contract>> Servico Operadora Doc provider <<Service Contract>> Controle Qualiti Card <<Service Contract>> Relizar Doc consumer provider <<participant>> Operadora DOC Arquitetura componentizada <<Service Contract>> Controle de Acesso Componente Controle de Acesso +logar(login, senha) +alterarSenha(login, senhaAntiga, senhaNova) <<Service Contract>> Controle de Cheque Componente Cliente Front-end << C +e +a Componente Cheque +Operation1() +..() <<Service Contract>> Controle Qualiti Card Componente Qualiti Card <<Servi Servico Op +Operation1() +..() <<Service Contract>> Realiazar Transferencia Componente Transferencia +Operation1() +..() <<Service Contract>> Relizar Doc +Operation1() Componente Realizar Doc <<Service Cont Servico Operad Dúvidas ?