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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 SOA – Service Oriented Architecture O que são serviços? » Serviço é um componente que atende a uma » 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 função de negócio (business function) Serviços versus Componentes » » » » 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 » Serviço » conceito mais SOA 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 SOA: Vantagens potenciais Análise e Projeto em SOA (Service Oriented Architecture) Requisitos Modelagem do Negócio Analisar serviços Planejamento Projetar Serviços Planejamento Inicial Implementação Avaliação Teste 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Especificação do modelo de negócios Prototipar Interface Gráfica Analisar Serviços Projetar Arquitetura Projetar Serviços 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 Projetar classes Revisar Projeto Projetar Base de Dados Projetista de Banco de Dados Análise e Projeto OO com UML e Padrões| 9 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Arquiteto de Software 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 Analisar caso de uso | 10 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Objetivos desta atividade Visão geral dos artefatos Arquiteto da informação Documento da Arquitetura Modelo de Casos de Uso Prototipar Interface Gráfica Modelo de Informação do Negócio 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Documento deGlossário Requisitos Prototipação da Interface Gráfica Modelo Navegacional Protótipo da Interface Gráfica Analisar caso de uso | 11 Passos para Prototipar a GUI - 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 Analisar caso de uso | 12 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 1. Modelar conceitos de negócios Modelo conceitual das informações/entidades manipuladas pelo sistema Pré modelo E-R Vai ajudar na organização das informações Multiplicidade é opcional Modelo independente de computação (CIM) Analisar caso de uso | 13 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 1. Modelar conceitos de negócios 1. Modelar conceitos de negócios I1 I2 1 UC 01 1 I2 1..* I3 I1 I2 0..1 UC 02 1 1 I1 I2 0..1 UC 03 UC 04 1 I1 I2 0..1 Actor A 1..* 1 I3 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 0..1 QIB - Diagrama de Casos de Uso Usaremos o QIB como exemplo 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Desbloquear Talões de Cheque Conta Cliente Pagmento Cartão Comprovante 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Modelo de Informação do negócio 2. Projetar Fluxo de Informação - 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) Analisar caso de uso | 17 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Gerar o modelo navegacional do sistema 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Home Minha página Conta corrente Cartões Serviços DOC Analisar caso de uso | 19 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Modelo Navegacional do QIB 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? Analisar caso de uso | 20 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 3. Elaborar Protótipo de Interface 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Como criar os artefatos? Ferramentas: Netbeans (Fluxo de telas) Exemplos: - www.cin.ufpe.br/~vtb/wireframes - http://www.axure.com/Samples/AxureRPFeature - sSample/AxureRPFeaturesSample_Start.html http://www.axure.com/Samples/RegistrationSam ple/RegistrationSample_Start.html 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 - Axure RP(wireframe), Smartdraw (sitemap), Prototipar Interface Gráfica Exercício: 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&fea ture=related http://www.youtube.com/watch?v=sieYeDepdzA&feat ure=related http://www.youtube.com/watch?v=NwsjE5LY1M&feature=related 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 - Baseado no Modelo Navegacional e no modelo de 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Analisar Serviços Contexto Analisar Serviços Projetar Arquitetura Projetar Serviços Revisor de projeto Prototipar Interface gráfica Arquiteto de Informação Analisar Casos de Uso Projetar Casos de Uso Analista de Sistemas Projetar Subsistemas <<subsystem>> Projetar classes decisões do arquiteto Projetar Base de Dados Projetista de Banco de Dados Check List bla bla bla blabla Revisar Projeto 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Arquiteto de Software Objetivos (orientada a serviços) do sistema » Sistemática para identificação dos serviços e componentes “Análise” diferente do RUP 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 » Visão inicial da arquitetura 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Passo a Passo Visão Geral dos Artefatos <<entrada para esta atividade>> 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 <<entrada para esta atividade>> 1. Empacotar Casos de Uso 2. Construir Arquitetura de Serviços 3. Identificar Serviços de Entidade 4. Revisar Resultados 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Para Identificar Serviços: 1. Empacotar Casos de Uso 2. Construir Arquitetura de Serviços 3. Identificar Serviços de Entidades 4. Revisar Resultados 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Para Identificar Serviços: Desbloquear Talões de Cheque Efetuar Login Solicitar Talões de Cheque Consultar Cheques ClienteAtor Analisar Serviços Exemplo do QIB Alterar Senha Consultar Saldo <<include>> Realizar DOC Consultar Extrato Realizar Transferência Operadora do DOC <<include>> Consultar Qualiti Card Efetuar Pagamento do Qualiti Card Operadora Cartão de Crédito Mostrar Dados da Consulta Controle de Acesso Controle Cheque Exemplo do QIB Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito 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) 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 2. Construir Arquitetura de Serviços Services architecture descreve 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Arquitetura de Serviços Arquitetura de Serviços 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 • Gerada estaticamente a partir do modelo de Pacote 2 UC 5 UC 4 Pacote 1 UC 1 Ator 2 Ator 1 UC2 Analisar Serviços Arquitetura de Serviços UC3 provide consume <<Participant>> Ator1 consume <<Service Contract>> UC5-Ator2 <<Service Contract>> Pacote1 <<Service Contract>> Pacote2 <<Participant>> Sistema provide consume provide <<Service Contract>> UC5 consume provide <<Participant>> Ator2 Participants <<consumer>> Cliente Front-end 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Controle de Acesso Services Contracts <<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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 <<Service Contract>> Controle de Acesso <<Service Contract>> Controle de Cheque Arquitetura de Serviços 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>> Relizar Doc consumer <<Service Contract>> Servico Operadora Doc provider <<Service Contract>> Controle Qualiti Card 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 <<Service Contract>> Controle de Cheque provider <<participant>> Operadora DOC 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 3. Identificar Serviços de entidades 3. Identificar Serviços de entidades <<Service Contract>> Serviço Conta ContaintInternet <<Service Contract>> Serviço Conta Internet PagamentoCartão Comprovante <<Service Contract>> Serviço PagamentoCartão 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Conta 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Fluxo de Atividades 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 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? 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Interação dos Serviços 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 Fazer diagrama de interação para o pacote Controle Qualit Card 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Exercício 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 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Atualizar atributos das entidades Conta +numero +saldo ContaintInternet +login +senha PagamentoCartão +numero da fatura +data +valor +numero da conta 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Modelo de Informação Refinado 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Fluxo de Atividades Identificação de componentes - Identificar os participants provedores Componentes “provedores” implementam os contratos de serviços Definir relacionamento entre componentes 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Sistemática para identificar os componentes <<Service Contract>> OperadoraCartao <<Service Contract>> ControleAcesso provider Identificar Componentes consumer <<participant>> Cliente Front-end <<Service Contractt>> ControleConta consumer consumer provider comsumer provider <<participant>> Sistema back-end <<participant>> Operadora Cartão consumer <<Service Contract>> ControleQualitiCard <<Service Contract>> ContaInternet <<Service Contract>> ContaBancaria <<Service Contract>> Transação <<Front-end>> Cliente Front-end IControleAcesso IControleConta Controle de Acesso Controle Conta IControleCartão Controle Cartão IOperadoraCartão IContaInternet ContaInternet IContaBancaria ContaBancaria ITrasação Trasação OperadoraCartão 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Projetar Serviços Analisar Serviços Projetar Arquitetura Projetar Serviços 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 Projetar classes Revisar Projeto Projetar Base de Dados Projetista de Banco de Dados Análise e Projeto OO com UML e Padrões| 54 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Arquiteto de Software 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Fluxo de Atividades 1. 2. Refinar Análise de Serviços Definir Padrão de Arquitetura 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Projetar Arquitetura Lembrando o resultado de Analisar Serviços … provider Identificar Componentes consumer <<participant>> Cliente Front-end <<Service Contract>> OperadoraCartao <<Service Contract>> ControleAcesso <<Service Contractt>> ControleConta consumer consumer provider comsumer provider <<participant>> Sistema back-end <<participant>> Operadora Cartão consumer <<Service Contract>> ControleQualitiCard <<Service Contract>> ContaInternet <<Service Contract>> ContaBancaria <<Service Contract>> Transação <<Front-end>> Cliente Front-end IControleAcesso IControleConta Controle de Acesso Controle Conta IControleCartão Controle Cartão IOperadoraCartão IContaInternet ContaInternet IContaBancaria ContaBancaria ITrasação Trasação OperadoraCartão 1. Refinar Análise de Serviços - Conhecimento do negócio - Modelo de interação dos serviços - Modelo de Componentes dos serviços Analisar os contratos de serviços e componentes identificados até o momento - Empacotamento foi correto? - Todos os componentes de front-end foram identificados? - Podemos “agrupar” serviços semelhantes? - Todas as funcionalidades foram identificadas? 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Baseado no: Controle de Acesso Controle Conta Realizar Transferência ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Controle Cheque Controle de Acesso Controle Cheque ClienteAtor Realizar Doc Operadora Doc Controle Qualit Card Operadora de Cartão de Crédito 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Controle Conta Componente Controle de Acesso +logar(login, senha) +alterarSenha(login, senhaAntiga, senhaNova) <<Service Contract>> Servico Cadastro ContaInternet +existe(login, senha) +atualizar(login, senha) Componente Cliente Front-end <<Service Contract>> ServicoQualitiCard +EfetuarpagamentoQualitCard() Componente Qualiti Card <<Service Contract>> Servico Operadora Cartao +enviar() <<Service Contract>> Serviço Cadastro ContaBancaria <<Service Contract>> Serviço Pagamento cartão 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 <<Service Contract>> ServiçoControleAcesso Com <<Service Contract>> ServicoQualitiCard <<Service Contract>> ServiçoControleAcesso +EfetuarpagamentoQualitCard() +logar(login, senha) +alterarSenha(login, senhaAntiga, senhaNova) Componente Qualiti Card <<Service Contract>> Serviço Pagamento cartão Componente Controle de Acesso <<Service Contract>> Serviço Cadastro ContaBancaria <<Service Contract>> Servico Cadastro ContaInternet +existe(login, senha) +atualizar(login, senha) Componente Pagamento cartão <<Service Contract>> Servico Operadora Cartao +enviar() Componente Cadastro ContaBancaria Compoente Operadora Cartão 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Componente Cliente Front-end Componente ContaInternet 1. Refinar Análise de Serviços 2. Definir Padrão de Arquitetura 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Projetar Arquitetura O arquiteto pode seguir um padrão existente para estruturar a aplicação O arquiteto também pode definir novos padrões ou atualizar orientações existentes Identificar oportunidades de reuso: - serviços e componentes disponíveis no mercado - Serviços e componentes de aplicações já - desenvolvidas Serviços e componentes que podem se tornar reusáveis para outros projetos 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 2. Definir Padrão de Arquitetura O Arquiteto deve levar em consideração as tecnologias que serão usadas: - Ex: .net, java, flash, C++ - Como será a integração do Front e backend 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 2. Definir Padrão de Arquitetura Necessidades do negócio - Acessado por celular e desktop (windows, - mac e linux) O ambiente de produção é Windows Server 2003 com .net framework 2.0 e banco de dados sql server 2005 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Além do sistema web Interface web=> ASP.NET Dispositivos Móveis => Iphone (iOS) Desktop=> aplicação Java Integração com o front-end será feita via web service Os componentes serão todos implementados (e não adquiridos) Os componentes de acesso a dados deverão implementar o padrão Bridge 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Definição da Arquitetura <<Front-end>> Front-end Web <<front-end>> Front-end Iphone <<Front-end>> Desktop IFachadaWebServices IServicoControleAcesso IServicoQualitCard +logar(login, senha) +alterarSenha(login, senhaAtual, SenhaNov +EfetuarpagamentoQualitCard() Componente Qualiti Card Componente Controle de Acess IServicoOperadoraCartao +enviar() oente Operadora Cartão ICadastroContaBancaria +inserir() +remover() +atualizar() +consultar() Componente Cadastro ContaBancaria 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 FachadaWebservice ICadastroTransacao +ConsultarSaldo() +ConsultarExtrato() +RealizarTransferencia() Compoente Cadastrotransacao ICadastroContaInternet +inserir(ContaInternet) +remover(ContaInternet) +atualizar(ContaInternet) +existe(login, senha) Componente ContaInternet 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Fluxo de Atividades • • • Envolve o projeto dos componentes do back-end Coincide com a atividade “Projetar Subsistemas” do RUP Será detalhada posteriomente (atividades comuns a RUP e SOA) 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Projetar Back-end 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Fluxo de Atividades Baseado no protótipo da interface, tecnologias utilizadas e integração frontback end 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Projetar Front-end <<Front-end>> Front-end Web <<front-end>> Front-end Iphone IFachadaWebServices FachadaWebservice <<Front-end>> Desktop 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 Front-end - Exemplo +loginText: TextBox +senhaText: TextBox +entrarButton: Button +efetuarlogin() 2006 Qualiti. Todos os direitos reservados. Copyright © 2008 TelaLogin