Metodologiadedesenvolvimentosoa.pdf

  • Uploaded by: Murilo Vidigal
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Metodologiadedesenvolvimentosoa.pdf as PDF for free.

More details

  • Words: 38,104
  • Pages: 257
Metodologia de Desenvolvimento SOA

Metodologia de Desenvolvimento SOA é instrumento corporativo utilizado para sistematização do desenvolvimento de soluções orientadas a serviço a fim de alcançar benefícios estratégicos da computação orientada a serviço.

Histórico de revisões Data

Versão

Descrição

Autor

Revisor

0.1

Arthur Fonseca; Charlimar Rabelo; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

0.2

Arthur Fonseca; Charlimar Rabelo; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

15/07/2016

0.3

Arthur Fonseca; Charlimar Rabelo; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

22/07/2016

0.4

Arthur Fonseca; Charlimar Rabelo; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

28/07/2016

0.5

Arthur Fonseca; Charlimar Rabelo; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

10/08/2016

0.6

Inserção de imagens de visibilidade de fase da metodologia

Arthur Fonseca; Charlimar Rabelo; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

08/09/2016

0.7

Implementação de etapas de Projeto Orientado Serviço

Arthur Fonseca; Charlimar Rabelo; Marcello Ribeiro; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

06/10/2016

0.8

Descrição das etapas de Projeto Orientado Serviço

Arthur Fonseca; Charlimar Rabelo; Marcello Ribeiro; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

07/10/2016

0.9

Revisão da Metodologia

Arthur Fonseca; Charlimar Rabelo; Marcello Ribeiro; Murilo Vidigal; Valéria Guimarães

Ricardo Puttini

Aprovação

1

SUMÁRIO 1

Objetivo .................................................................................................................................. 5

2

Apresentação ......................................................................................................................... 5

3

Visão Geral............................................................................................................................. 7

4

Perfis profissionais ............................................................................................................... 13 4.1

Analista de Processos de Negócio................................. Erro! Indicador não definido.

4.2

Analista SOA .................................................................. Erro! Indicador não definido.

4.3

Arquiteto SOA................................................................. Erro! Indicador não definido.

4.4

Desenvolvedor SOA ....................................................... Erro! Indicador não definido.

4.5

Designer de Interface de Usuário................................... Erro! Indicador não definido.

4.6

Analista de Testes .......................................................... Erro! Indicador não definido.

4.7

Especialista de Infraestrutura SOA ................................ Erro! Indicador não definido.

4.8

Administrador de Dados ................................................. Erro! Indicador não definido.

4.9

Auditor SOA .................................................................... Erro! Indicador não definido.

4.10

Especialista de Governança SOA .................................. Erro! Indicador não definido.

4.11

Gerente de Projeto ......................................................... Erro! Indicador não definido.

4.12

Analista de Processos de Negócio................................. Erro! Indicador não definido.

4.13

Analista SOA .................................................................. Erro! Indicador não definido.

4.14

Arquiteto SOA................................................................. Erro! Indicador não definido.

4.15

Desenvolvedor SOA ....................................................... Erro! Indicador não definido.

4.16

Designer de Interface de Usuário................................... Erro! Indicador não definido.

4.17

Analista de Testes .......................................................... Erro! Indicador não definido.

4.18

Especialista de Infraestrutura SOA ................................ Erro! Indicador não definido.

4.19

Administrador de Dados ................................................. Erro! Indicador não definido.

4.20

Auditor SOA .................................................................... Erro! Indicador não definido.

4.21

Especialista de Governança SOA .................................. Erro! Indicador não definido.

2

4.22

Gerente de Projeto ......................................................... Erro! Indicador não definido.

5

Estrutura funcional ............................................................................................................... 15

6

Modelagem de Negócio ....................................................................................................... 17 6.1 6.1.1

7

7.1.1 7.2 7.2.1 7.3

Analisar Inventário de Serviços ................................................................................... 37 Visibilidade do Processo de Desenvolvimento ....................................................... 62 Analisar Serviços ......................................................................................................... 63 Visibilidade do Processo de Desenvolvimento ....................................................... 78 Heurísticas para Análise Orientada a Serviço ............................................................ 79

7.3.1

Princípio da Capacidade de Composição de Serviço ............................................. 79

7.3.2

Princípio do Reuso de Serviço ................................................................................ 80

7.3.3

Padrões de Projeto para Análise Orientada a Serviço ............................................ 81

Projeto Orientado o Serviço ................................................................................................. 82 8.1.1 8.2 8.2.1 8.3

9

Visibilidade do Processo de Desenvolvimento ....................................................... 35

Análise Orientada a Serviço................................................................................................. 36 7.1

8

Modelar Negócio ......................................................................................................... 19

Visibilidade do Processo de Desenvolvimento ....................................................... 97 Projetar Arquitetura ..................................................................................................... 98 Visibilidade do Processo de Desenvolvimento ..................................................... 106 Heurísticas para Projeto Orientado a Serviço ........................................................... 107

8.3.1

Princípio de Padronização de Contrato de Serviço .............................................. 107

8.3.2

Princípio do Baixo Acoplamento ........................................................................... 108

8.3.3

Princípio da Abstração de Serviço ........................................................................ 109

8.3.4

Princípio da Visibilidade de Serviço ...................................................................... 110

8.3.5

Princípio da Autonomia de Serviço ....................................................................... 111

8.3.6

Padrões de Projeto para Projeto Orientado a Serviço .......................................... 112

Implementação ................................................................................................................... 114

3

9.1

Implementar Serviço.................................................................................................. 114

9.1.1 9.2 10

Visibilidade do Processo de Desenvolvimento ..................................................... 148 Implementar Solução................................................................................................. 149

Testes ............................................................................................................................. 160

10.1

Testar Serviço ........................................................................................................... 161

10.2

Testar Integração ...................................................................................................... 173

10.3

Teste de Aceitação .................................................................................................... 192

11

Implantação .................................................................................................................... 197

11.1

Implantar Serviço....................................................................................................... 197

11.2

Implantar Solução...................................................................................................... 203

11.2.1 12

Visibilidade do Processo de Desenvolvimento ................................................. 212

Vitalidade de Serviços .................................................................................................... 213

12.1

Exposição de Serviços do Inventário ........................................................................ 213

12.2

Gerenciar Configuração e Versionamento ................................................................ 225

12.3

Manutenção de Serviço ............................................................................................. 233

Apêndice A: Referências Bibliográficas .................................................................................... 246 Apêndice B: Glossário ............................................................................................................... 247 Apêndice C: Considerações de Gestão de Projetos SOA ............. Erro! Indicador não definido. ANEXO A: Templates ................................................................................................................ 256

4

1 OBJETIVO Estabelecer a Metodologia de desenvolvimento SOA da Core Consulting, a ser utilizada no desenvolvimento de soluções baseadas em Arquitetura Orienta a Serviços (SOA).

2 APRESENTAÇÃO Uma Metodologia é um conjunto de métodos aplicados para se realizar um determinado processo. Metodologias podem ser aplicadas nas mais diversas áreas de conhecimento, e no contexto da Metodologia de Desenvolvimento SOA (MD-SOA), trata-se de um instrumento corporativo que visa à correta definição de etapas a serem seguidas para a execução de um projeto SOA. A Metodologia de Desenvolvimento é aplicada em conjunto com outros instrumentos estruturantes da prática de software na organização. Em especial, esta metodologia encontra-se alinhada com uma Arquitetura de Referência SOA (AR-SOA) implantada e em uso na Core Consulting. A metodologia proposta leva em consideração padrões de indústria e práticas estabelecidas de desenvolvimento de software orientado a serviço. Em conjunto com a Arquitetura de Referência SOA, define-se, portanto, um conjunto de padrões corporativos de desenvolvimento, de modo a se evitar a subjetividade na abordagem e garantir os benefícios mensuráveis relacionados à qualidade das soluções orientadas a serviço. A metodologia está essencialmente organizada por processos que descrevem as atividades a serem realizadas em relação a cada uma das seguintes disciplinas de engenharia de software: Modelagem de Negócio, Análise, Projeto, Implementação, Testes e Implantação. Adicionalmente à descrição dos processos e atividades, são apresentados ainda conjuntos de heurísticas e de padrões de projeto aplicáveis como parte do processo de desenvolvimento SOA: •



Heurísticas: O uso de heurísticas estabelece um conjunto de considerações práticas para aplicação dos princípios de orientação a serviço que devem ser consideradas pelo analista/arquiteto ao executar tarefas em um projeto de desenvolvimento SOA. Estas heurísticas são adaptadas dos princípios de orientação a serviço, extraídos de (Erl, SOA: Principles of Service Design, 2008), (Erl, SOA Design Patterns, 2009), (Josuttis, 2007), (Portier, 2007) e (Hewitt, 2009). Padrões de Projeto: A aplicação sistemática de padrões de projeto (design patterns) de SOA resulta em melhores soluções orientadas a serviço. Recomenda-se que se desenvolva e mantenha um catálogo de padrões (design patterns catalog) com documentação acessível e regras de aplicação claramente estabelecidas. O desenvolvimento deste catálogo é igualmente indicado na Arquitetura de Referência SOA, mas sua construção não faz parte do escopo desta metodologia. Esse catálogo deverá estar sob responsabilidade e gestão do Núcleo de Governança SOA. Não obstante, alguns padrões de projeto com aplicabilidade reconhecida são apontados nas seções seguintes. Os padrões de projeto aqui elencados estão documentados em (Erl, SOA: Principles of Service Design, 2008), (Erl, SOA Design Patterns, 2009) e (SOA Patterns).

5

Esses elementos adicionais da metodologia aparecem especialmente nas atividades das disciplinas de análise e projeto com orientação a serviço. Os fluxos de processos apresentados nesse documento foram elaborados a partir da notação padrão BPMN 2.0. A MD-SOA é estruturada de modo a permitir a adoção do modelo de Fábrica de Serviço, uma adaptação do modelo de fábrica de software aplicada à terceirização da força de trabalho em processo de desenvolvimento SOA. Desse modo, espera-se que a adoção da MD-SOA favoreça maior maturidade na contratação e gestão dos contratos de Fábrica de Serviço. A metodologia proposta contém os seguintes capítulos e subcapítulos que compõem o escopo da MD-SOA: Capítulo 3: Visão Geral: Apresenta um resumo do processo geral de desenvolvimento de software com orientação a serviços, destacando as disciplinas de Engenharia de Software abordadas em cada fase do desenvolvimento. Capítulo 4: Perfis Profissionais: Indica os perfis e as capacidades dos profissionais envolvidos com os projetos de desenvolvimento de soluções SOA. Capítulo 5: Estrutura Funcional: Propõe áreas a serem instituídas na estrutura funcional de forma a garantir a plena realização dos projetos de desenvolvimento de soluções SOA. Capítulo 6: Modelagem de Negócio: Estrutura um conjunto-chave de habilidades e técnicas que possibilitam às pessoas compreender, formalizar e comunicar os principais componentes de processos de negócio. Sua principal atividade é a compreensão do processo de negócio, incluindo sua eficiência e eficácia para atendimento dos objetivos do negócio para os quais foram desenhados. Capítulo 7: Análise Orientada a Serviço: Determina quais os serviços devem ser construídos e o escopo de cada um deles, ou seja, qual a lógica deve ser encapsulada por cada um. Inclui a Análise de Inventário de Serviços, onde o desenvolvimento de serviços se dá por uma revisão constante no inventário de serviços já desenvolvidos, a fim de não criar serviços que sobrepõem o contexto funcional de outros serviços. Capítulo 8: Projeto Orientado a Serviço: esta etapa está associada ao processo formal para projetar contratos de serviço, incluindo ainda, o projeto da lógica de serviço. Uma iteração do processo de projeto orientado a serviço usualmente resulta na criação de um único contrato de serviço. Capítulo 9: Implementação de Serviço e Soluções Orientadas a Serviço: esta etapa descreve os processos “Implementar Serviço” e “Implementar de Solução”. A implementação do serviço é formatada pelas especificações do serviço e de seu projeto de lógica. Nesta etapa de implementação da solução, a camada de apresentação é realizada, bem como suas interações com as camadas de processo e de serviço, de modo a agrupar todos os componentes da solução.

Capítulo 10: Teste de Serviços e Soluções Orientadas a Serviço (em desenvolvimento) 6

Capítulo 11: Publicação e Catalogação de Serviços e Implantação de Soluções (em desenvolvimento) O presente documento traz elementos de duas áreas de conhecimento distintas que se complementam: Gestão de Processos de Negócio e Tecnologia da Informação. Nesse sentido, o Apêndice A apresenta um Glossário dos principais termos utilizados na Metodologia, com a finalidade de facilitar o entendimento dos termos e mitigar possíveis conflitos e ambiguidades de conceitos.

3 VISÃO GERAL De acordo com o CBOK1, “Processo é um conjunto de atividades interdependentes, ordenadas no tempo e no espaço de forma encadeada, que ocorrem como resposta a eventos e que possui um objetivo, início, fim, entradas e saídas bem definidas”. (ABPMP, 2015) A Figura 1 ilustra o fluxo de processos que compõem a Metodologia de Desenvolvimento SOA abordada no presente documento.

1

BPM CBOK – Guia para o Gerenciamento de Processos e Negócio – Corpo Comum de Conhecimento.

7

Figura 1 - Desenvolvimento de Soluções Orientadas a Serviço

8

O processo de desenvolvimento inicia-se pela fase de Modelagem de Negócio. Esta fase trata do entendimento da situação atual dos processos de negócio (as-is) que são objetos do desenvolvimento, seguida de análise desses processos onde se busca oportunidades de melhorias. No presente contexto do desenvolvimento de SOA, a análise busca ainda identificar no modelo de negócio quais atividades podem ser traduzidas em serviços de automação. Desse modo, o desenho de processos de negócio (to-be) é realizado com uso de princípios de SOA, especialmente no que se refere à separação de interesses e à segmentação da lógica de processo em serviços, bem como sua posterior automação. Os produtos desta fase incluem: • • • •

Modelo de Processo de Negócio: Representação projetada dos fluxos de trabalho e de informação. Modelo de Informação: Representação das estruturas de informação corporativa (entidades) envolvidas nos processos estudados. Regras de Negócio: Conjunto de regras que condicionam as decisões implícitas e explícitas no processo de trabalho. Protótipo de Telas: Desenho preliminar das interfaces de usuário, construído com objetivo de elucidar os requisitos dos processos estudados.

A fase de Análise Orientada a Serviço é dividida em dois processos que são realizados paralelamente: Analisar Inventário de Serviços e Analisar Serviço. Nesses processos, os serviços são analisados coletivamente (Análise de Inventário de Serviços) e de modo individual (Análise de Serviço). Um serviço é a unidade fundamental da lógica orientada a serviço. Uma unidade de lógica é classificada como um serviço orientação a serviço foi aplicada em uma extensão significativa. Soluções orientadas a serviço são tipicamente formadas de múltiplos serviços que formam uma composição de serviços. Esta etapa tem por objetivo a aplicação dos princípios de SOA e suas práticas e critérios de separação de interesses. Desse modo, identificam-se os serviços e as composições de serviços que fornecessem conjuntamente as capacidades computacionais requeridas na automação pretendida (candidatos a serviços). Em especial, aplicam-se padrões de projeto relacionados à separação de lógica agnóstica e lógica não agnóstica através do uso de modelos de serviço (entidade, utilitário, tarefa e processo). Os produtos desta fase são: • •

• •

Documento de Candidatos a Serviços: Descreve os serviços identificados e seu posicionamento na arquitetura de inventário de serviços. Perfil de Serviço: Apresenta a documentação detalhada de cada serviço. É um documento que acompanha o serviço em todo seu ciclo de vida. Assim, este é desenvolvido e complementado de modo incremental em cada fase. Na fase de análise, são completadas as especificações de contexto funcional e das capacidades do serviço, bem como restrições não funcionais identificadas a partir da modelagem de negócio e da análise SOA. Esse documento é construído/atualizado para cada serviço elegido para construção/adaptação, sendo de especial interesse no caso de serviços agnósticos (entidade e utilitário). Matriz de Sistemas Legados: Descreve cada serviço legado existente bem como a correlação entre cada dado e o modelo de informação proposto. Protótipo de Telas: Atualização do protótipo desenvolvido na fase anterior, tipicamente com uso de mock-ups.

9

Thomas Erl (Erl, SOA: Principles of Service Design, 2008) aponta o esforço prévio realizado na Análise como fundamental para o sucesso da implementação SOA. O maior esforço realizado nessa fase acarretará em uma melhor compreensão do negócio, trazendo resultados que alcancem maior interoperabilidade, federação, retorno do investimento, agilidade organizacional e otimização da TI. A fase de Projeto Orientado a Serviço também é dividida em dois processos que tipicamente são realizados de modo sequencial: Realizar Projeto Orientado a Serviço e Projetar Arquitetura. Serviços expressam seus propósitos e capacidades através de um contrato de serviço padronizado. A prática SOA implica em grande ênfase no projeto de contratos de serviços, e advoga o princípio de projeto “contrato primeiro”. Seu propósito é assegurar que a maneira na qual os serviços expressam funcionalidades e representam tipos de dados é mantida relativamente alinhada. O termo “projeto orientado a serviço” é utilizado nesta metodologia para descrever um processo formal de projeto de contratos de serviço. No projeto da arquitetura são especificados detalhes da arquitetura da lógica de serviço, suas composições (orquestrações) e a aplicação de padrões de projeto relacionados ao contexto arquitetural de cada serviço. São produtos desta fase: •

• • •

Contrato de Serviço: Especificação da interface técnica do serviço. Expressa meta informação sobre um serviço e estabelece os termos para seu engajamento (requisitos para invocar e interagir com o serviço). Modelo Canônico de Dados: Especificação de esquemas de dados padronizados dentro do inventário de serviços. Perfil de Serviço (atualização): Nesta etapa, atualizam-se/completam-se as informações acerca do contrato de serviço e da arquitetura da lógica de serviço. Arquitetura de Solução: Artefato opcional, utilizado para descrever adaptações da arquitetura de referência específicas para a solução (de automação) projetada.

A fase de Implementação contempla os processos Implementar Serviço e Implementar Solução, que são tipicamente executados em paralelo. Nesta metodologia esses processos consideram os princípios de análise e projeto antecipados. Desse modo, fluxos de processos, modelos de informação, contratos de serviço e arquiteturas de serviço e composições já se encontram definidas quando do início desta etapa. São produtos desta fase: •

Projeto IDE: Código fonte tipicamente escrito com uso e padrões tecnológicos da plataforma IDE.

A fase de Teste tem por objetivo verificar a qualidade do produto de software implementado, identificando defeitos e atestando o funcionamento adequado do software e de seus componentes no ambiente para o qual este foi projetado para executar. Diferentes tipos e técnicas de teste de software fazem parte desta etapa, incluindo testes unitários (Testar Serviço), de integração, de solução e de aceitação (Testar Solução). São produtos desta fase: •



Plano de Testes: O Plano de Testes é um documento global que contém os elementos necessários para execução de quaisquer testes gerais durante todo o ciclo de desenvolvimento SOA. Ou seja, o Plano de Teste é um documento de referência a ser utilizada na execução de quaisquer testes que envolva solução SOA. Caso de Teste: Especificação de um conjunto de condições usadas no teste de software, incluindo entradas, saídas esperadas e roteiros de testes (processo utilizado para testar o software). 10





Roteiro de Testes: O Roteiro de Testes agrega os cenários de testes a serem realizados (na forma de Casos de Testes) e que contém os elementos necessários para definição do escopo do teste específico a ser realizado Relatório de Execução de Teste: Documentação dos resultados obtidos com o teste realizado.

A fase Implantação é composta por dois processos: Publicar e Catalogar Serviço e Implantar Solução. O primeiro processo inclui a implantação do serviço propriamente dito e a coleta/atualização de metadados comunicativos que suportam a descoberta e o reuso de serviços no diretório de serviços. O segundo processo refere-se à implantação da solução (de automação), encerrando o ciclo de desenvolvimento SOA. São produtos desta fase: • • • •

Perfil de Serviço: Nesta fase são atualizadas as informações de configuração e versionamento de serviço. Implantação de Serviço: Componente de tempo de execução implantado. Configuração de Solução: Detalhamento da configuração da solução e seu versionamento. Implantação da Solução: Componente de tempo de execução implantado.

O processo de utilização de força de trabalho terceirizada deve ser suportado diretamente pela metodologia. Nesse sentido, a metodologia prevê a organização e o gerenciamento do processo com uso do modelo de fábrica de serviço. Neste modo, são utilizadas Ordens de Serviço (OS) para definir e encomendar o trabalho junto à fábrica de serviço. Para essa finalidade, são definidos três ciclos de OS dentro de um projeto de desenvolvimento SOA. Cada ciclo agrupa fases da metodologia usando um ordenamento lógico que permita a Core Consulting dividir as atividades que serão terceirizadas e as que serão realizadas pela equipe interna. São eles: • • •

OS Modelagem de Negócio e Análise: Ciclo inicial, que agrupa atividades diretamente relacionadas à análise do negócio e da solução de automação pretendida. OS Projeto e Implementação: Ciclo intermediário que agrupa atividade de natureza técnica relacionadas ao projeto, implementação e testes da solução. OS Governança e Implantação: Ciclo de transição que agrupa atividade de encerramento do desenvolvimento e início da operação (produção) das soluções desenvolvidas.

A execução da metodologia insere-se ainda no contexto de outros processos corporativos relacionados a governança, gestão de projetos, gestão de ambiente (infraestrutura), entre outros. A Figura 2 apresenta uma visão geral desses processos e suas relações com esta metodologia. Estão fora do escopo desta metodologia: • • • •

Especificação da metodologia de gestão de projetos (MGP/Escritório de Projetos). Especificação de processos associados de governança (Divisão de Governança). Especificação de processos de gestão de processos corporativos (Escritório de Processos). Especificação de processos de gestão do ambiente (Divisão de Infraestrutura).

11

Figura 2 – Processos Corporativos Relacionados com a Metodologia de Desenvolvimento SOA

12

4 PERFIS PROFISSIONAIS A metodologia não define atores (i.e. recursos humanos) específicos para realização ou gerenciamento de cada tarefa ou processo. A atribuição de recursos humanos específicos deve ser realizada projeto a projeto, como parte do planejamento, e constituição/alocação da equipe de projeto. Entretanto, a metodologia define perfis profissionais associados a tarefas, processos e subprocessos, bem como ao seu gerenciamento. Cada perfil profissional definido na metodologia está associado a um conjunto de capacidades profissionais, que indicam as competências e habilidades recomendadas e desejáveis para o profissional ao qual o perfil é atribuído. A A Tabela 1 apresenta a lista de perfis profissionais referenciados na metodologia, com suas respectivas capacidades profissionais, as quais deverão ser objeto de capacitação profissional continuada da equipe. Tabela 1 - Perfis profissionais

Perfil Profissional

Capacidade Profissional

Analista de Processos de Negócio

Gestão de Processos de Negócio (BPM) Especialista em Middleware BPM (Oracle) (desejável)

Analista SOA

Analista especializado em SOA Especialista em Middleware BPM (Oracle) (desejável)

Arquiteto SOA

Arquiteto de software especializado em SOA Especialista de Middleware SOA (Oracle)

Desenvolvedor

Desenvolvedor/Programador Especialização em desenvolvimento SOA (desejável)

Designer de Interface de Usuário

Designer de Interfaces

Analista de Testes

Analista especializado em testes Analista especializado em SOA (desejável)

Testador

Experiência em teste de software

Especialista de Infraestrutura SOA

Especialista em Middleware SOA (Oracle)

Administrador de Dados

Especialista em administração de dados

Auditor SOA

Especialista sênior em SOA Analista SOA (desejável) Arquiteto SOA (desejável)

Especialista em Governança SOA

Especialista em Governança SOA Especialista de Governança SOA (Oracle)

Gerente de Projeto

Gerência de Projetos (PMI)

13

14

5 ESTRUTURA FUNCIONAL A estrutura funcional proposta é composta por unidades funcionais que representam agrupamentos lógicos de atividades e responsabilidades dentro da Metodologia (funções). Essa estrutura não reflete, necessariamente, a estrutura organizacional formal vigente. É importante observar que as equipes de projetos normalmente serão formadas por atores que pertencem a unidades funcionais diferentes, bem como por atores ad hoc, i.e., atores que não estão relacionados a uma unidade funcional. Essa visão pretende favorecer a interoperação entre equipes de projetos diferentes e a governança da metodologia. A Figura 3 ilustra a estrutura funcional proposta.

Figura 3 - Estrutura funcional

A seguir, uma breve descrição de cada estrutura funcional sugerida: •









Gestão de Projetos de TI (Escritório de Projetos): Responsável pela metodologia de gestão de projetos e sua aplicação na área de TI. Pode conter um pool de gerentes de projetos. Gestão de Processos e Maturidade de TI (Escritório de Processos de TI): Responsável pela definição e implantação dos processos do cliente. Pode ser estendida para prover melhores práticas de gestão por processos em nível corporativo. Gestão da Informação Corporativa (Administração de Dados): Responsável pela Arquitetura de Informação corporativa, incluindo administração de dados e respectivos esquemas. Gestão de Arquitetura e Práticas de Software (Centro de Excelência SOA): compreende uma equipe focada em Arquitetura Orientada a Serviços que possui como principal função a garantia da governança e alinhamento dos projetos de desenvolvimento de soluções tecnológicas orientadas a serviço, sob uma visão corporativa. Fábrica de Serviços: responsável pela construção dos serviços e demais componentes da solução Orientada a Serviço.

15





Gestão de Infraestrutura: responsável pela disponibilização e gerenciamento de recursos de infraestrutura computacional necessários à execução das soluções tecnológicas corporativas. Gestão de Infraestrutura SOA: responsável pela disponibilização e gerenciamento de recursos de infraestrutura computacional necessários à execução das soluções Orientadas a Serviço.

16

6 MODELAGEM DE NEGÓCIO A Modelagem do Negócio consiste em um conjunto de atividades que visam compreender como a organização opera para levar valor aos seus clientes. No contexto de SOA, essa modelagem visa compreender também as oportunidades de automatização dos processos que compõem o cerne no Negócio e adaptá-lo de forma a agregar essas oportunidades ao fluxo de atividades. As atividades nesta etapa estão relacionadas com a disciplina Modelagem de Negócio (SCOTT, 2003) e utilizam os métodos e práticas preconizados no CBOK (ABPMP, 2015), cujas áreas de conhecimento são ilustradas na Figura 4. Nesta metodologia, as práticas são adaptadas ao uso de orientação a serviços, sempre que aplicável. Mais especificamente, são descritas neste documento as práticas relacionadas a: • • •

Modelagem de Processos Análise de Processos Desenho de Processos

fonte: CBOK 2.0 p.25 Figura 4 – Áreas de Conhecimento CBOK

Para o formalismo da modelagem do processo de negócio faz-se necessário seguir uma notação padrão dentre as várias existentes. A

17

Tabela 2 apresenta notações retiradas da do guia CBOK. Considerando o uso de BPMS (Oracle BPM Suite 12c), a notação BPMN 2.0 é a notação preferida.

18

Tabela 2 - Notações de modelagem de processos

Notação

Descrição

BPMN

Padrão criado pelo Object Management Group, útil para apresentar um modelo para público-alvos diferentes.

EPC

Desenvolvido como parte da estrutura de trabalho ARIS, considera eventos como “gatilhos para” ou “resultados de” uma etapa do processo; útil para modelar conjuntos complexos de processos.

UML

Mantido pelo Object Management Group, consiste em um conjunto padrão de notações técnicas de diagramação orientado à descrição de requisitos de sistemas de informação.

IDEF

Padrão da Federal Information Processing Standard dos EUA que destaca entradas, saídas, mecanismos, controles de processo e relação dos níveis de detalhe do processo superior e inferior; ponto de partida para uma visão corporativa da organização.

Value Stream Mapping

Do Lean Manufacturing, consiste em um conjunto intuitivo de símbolos usado para mostrar a eficiência de processos por meio do mapeamento de uso de recursos e elementos de tempo.

6.1 Modelar Negócio O processo Modelar Negócio é mostrado na Figura 5 e suas atividades são descritas a seguir.

Finalidade

Compreender e modelar o contexto de Negócio corporativo, apresentando modelos formais que expressam as visões atuais (as-is) e pretendidas (to-be) dos processos de negócio, as entidades e informações envolvidas e as regras de negócio.

Entradas

OS Modelagem de Negócio e Análise Documento de Visão Arquitetura de Referência

Saídas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Perfis Participantes

R

Analista de Processos de Negócio

X

A

Analista SOA Designer de Interfaces de Usuário

C

I

X X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

X X

X

19

Figura 5 - Modelar Negócio

20

Coletar informações do estado atual do processo (as-is)

Finalidade

Verificar a existência de uma modelagem adequada sobre o processo a ser analisado.

Entradas

OS Modelagem Negócio e Análise

Saídas

Modelo de Processo de Negócio (Informações existentes).

Perfis Participantes

R

Analista de Processos de Negócio

X

A

C

I

Analista SOA Designer de Interfaces de Usuário Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

Descrição das Atividades

X X

X

A coleta de informações sobre o processo atual compreende a busca, nas estruturas de informações e conhecimento internos da organização, do processo a ser estudado. Ela verifica quais modelos formais a organização possui sobre o processo estudado e se estes modelos são suficientes para dar prosseguimento à análise do processo.

21

Modelar estado atual do processo

Finalidade

Elaborar um modelo do processo que represente o estado atual de execução do processo (se houver).

Entradas

Documentos, reuniões e demais insumos para descrição do processo de negócio.

Saídas

Modelagem do Processo de Negócio (as-is) (template); Informações gerais sobre o processo sob análise; Informações sobre as entradas e saídas do processo; Informações sobre os fornecedores e os clientes do processo; Informações básicas sobre as regras de negócio incidentes sobre os processos; Informações sobre os sistemas e tecnologias de informação; e O pacote de valor gerado pelo fluxo de atividades.

Perfis Participantes

R

Analista de Processos de Negócio

X

A

C

I

Analista SOA

X

Designer de Interfaces de Usuário

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

X

X X

A modelagem é realizada considerando o estado atual do processo (as-is). Segundo o CBOK, “implica a representação de um determinado estado do negócio e dos respectivos recursos envolvidos, tais como pessoas, informações, instalações, automatização, finanças e insumos” (ABPMP, 2015). Indica, portanto, a representação, com maior nível possível de detalhamento, do fluxo de atividades. Descrição das Atividades

O analista de processos de negócio, responsável por essa atividade, deve focar principalmente e especialmente na representação das atividades e fluxos de trabalho, nos recursos de Tecnologia da Informação e nos indicadores de desempenho utilizados pelo processo, de forma a prover subsídios e informações adequadas às próximas atividades.

A representação de fluxo de trabalho pode ser realizada em diferentes níveis, sendo que a utilização de cada qual pode ou

22

não ser adotada de acordo com a necessidade, com o planejamento estratégico e/ou com a importância do processo no negócio da organização. São cinco níveis mais aceitos pela literatura (ABPMP, 2015): o primeiro apresenta um entendimento macro do valor do processo, percorrendo toda a organização, ponta a ponta. No segundo nível, o macroprocesso é decomposto em processos que entregam produtos importantes que compõem o valor entregue ao cliente. No terceiro nível são apresentadas as distinções das áreas funcionais e como elas se relacionam ao processo. No quarto nível, os subprocessos são divididos em atividades executadas e no quinto nível todos os detalhes são acrescentados: decomposição das atividades em tarefas, regras de negócio, legislações, entradas, saídas e outros.

23

Realizar análise no processo com foco no negócio

Finalidade

Identificar no modelo elaborado as oportunidades de melhoria e de adaptações com foco no negócio.

Entradas

Modelagem da situação presente do processo (as-is); Informações gerais sobre o processo sob análise; Informações sobre as entradas e saídas do processo; Informações sobre os fornecedores e os clientes do processo; Modelagem aprofundada das regras de negócio; Informações sobre os sistemas e tecnologias de informação; e O pacote de valor gerado pelo fluxo de atividades.

Saídas

Análise do Processo de Negócio (template).

Perfis Participantes

R

Analista de Processos de Negócio

X

Analista SOA

X

Designer de Interfaces de Usuário

X

A

C

I

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

X X

A análise do processo modelado com foco no negócio visa trazer ao analista uma visão mais completa e profunda sobre o processo trabalhado. Ela compreende uma série de estudos que podem ser realizados de acordo com a necessidade observada pelo analista. Deve ser orientada ao tipo de transformação a ser realizada sobre o processo.

Descrição das Atividades

As boas práticas de gerenciamento de processos de negócio orientam inicialmente uma análise de alinhamento entre o processo e a estratégia da organização, de forma a se verificar se os objetivos e metas traçados com o planejamento estratégico vigente e os processos modelados são aderentes entre si. Os principais problemas de desempenho do processo podem ser identificados de várias formas, dentre elas: entrevistas com os agentes executores, pesquisas, conferências, workshops, observações diretas, simulações e/ou outros. Cada alternativa não é completa em si e deve ser escolhida de acordo com a demanda percebida. As transferências de responsabilidades na execução do processo, chamadas de hand-offs, têm um enorme potencial de 24

serem prejudiciais à eficiência do fluxo ordenado de atividades e, por isso, devem ser estudados com um cuidado especial. Naturalmente que eles estão presentes na maioria dos processos e muitos deles são necessários, porém “quanto menor for o número menor de hand-offs, menor será a sua vulnerabilidade a desconexões” (ABPMP, 2015). Análises de hand-offs costumam analisar quais são mais prováveis de atrasar o processo, se existem gargalos de informação ou serviços adicionais executados para compensá-los, se eles podem ser eliminados e quais meios existem para gerenciar o seu sequenciamento, tempo e dependências.

25

Realizar análise no processo com foco na automação

Finalidade

Identificar no modelo elaborado as oportunidades de melhoria e de adaptações com foco na automação.

Entradas

Modelagem da situação presente do processo; Informações gerais sobre o processo sob análise; Informações sobre as entradas e saídas do processo; Informações sobre os fornecedores e os clientes do processo; Modelagem aprofundada das regras de negócio; Informações sobre os sistemas e tecnologias de informação; e O pacote de valor gerado pelo fluxo de atividades.

Saídas

Análise do Processo de Negócio (template).

Perfis Participantes

R

Analista de Processos de Negócio

X

A

C

I

Analista SOA

X

X

Designer de Interfaces de Usuário

X

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

Descrição das Atividades

X X

A análise do processo com foco na automação deve ser feita com o intuito de caracterizar as atividades em dois principais tipos, realização manual ou de realização automatizada. Deve buscar indicar também as características do negócio atribuídas a interfaces tecnológicas que podem ser empregadas com a intenção de tornar o processo mais eficiente e quais regras de negócio podem ser adaptadas e/ou melhoradas, principalmente com a intenção de aumentar a celeridade da sua execução. É sugerida a elaboração de um documento que identifique quais as atividades de cada tipo antes mesmo da realização do desenho do processo (to-be), como forma de garantir as boas práticas de versionamento do processo e registro da história do processo na empresa.

26

Prover informações do estado atual do processo (as-is)

Finalidade

Fornecer informações corporativas sobre o processo sob análise

Entradas

OS Modelagem Negócio e Análise

Saídas

Modelo de Processo de Negócio (existente).

Perfis Participantes

R

Analista de Processos de Negócio

A

C

X

X

I

Analista SOA

X

Designer de Interfaces de Usuário

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio)

X

Gestor (Área de Negócio)

X

Descrição das Atividades

X

X

Há situações em que o processo em análise é bem documentado e são conhecidas informações suficientes para que o desenho do processo (to-be) para automação seja bem feito. Assim, o conteúdo que pode ser fornecido pela Área de Negócios ou a Área Gestora da organização contém um conjunto de informações complementares e úteis ao Analista de Negócio.

27

Desenhar processo (to-be) para automação

Finalidade

Desenhar o processo de forma a adaptá-lo às melhorias elencadas pela análise.

Entradas

Análise do Processo de Negócio (Foco na automatização).

Saídas

Modelo de Processo de Negócio (to-be) (template).

Perfis Participantes

R

Analista de Processos de Negócio

X

A

C

I

Analista SOA

X

X

Designer de Interfaces de Usuário

X

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

X X

Diversos tipos de atividades que podem ser aplicadas no momento do desenho, dependendo do contexto do processo. Há pelo menos dois tipos de abordagens: no contexto de uma iniciativa maior de gerenciamento de processos da organização; ou no contexto de um projeto de automação do processo. Esta última é tratada na presente metodologia.

Descrição das Atividades

Um processo, como fluxo ordenado de atividades, pode estar inserido na organização de forma interfuncional, isto é, percorrendo duas ou mais estruturas funcionais, caracterizando um fluxo ordenado de trabalho, executados por pessoas que compõem a cultura organizacional. Alterações nesses processos, se não realizadas com muito cuidado e observando os aspectos do gerenciamento da mudança, têm o potencial de causar verdadeiros desastres no modo operante da organização. São recomendadas revisões, simulações, profundas análises e avaliações comportamentais e outros estudos antes de efetivar as alterações propostas, de forma a se garantir sua eficiência e coerência com os demais processos. Como subsídio para as etapas seguintes do desenvolvimento de soluções orientadas a serviços, esse desenho não deve se limitar apenas a ilustração do fluxo de atividades que compõem o processo.

28

Desenhar as Regras de Negócio

Finalidade

Identificar as Regras de Negócio do Processo.

Entradas

Processo desenhado com atendimento aos requisitos solicitados pela análise; e Documentação gerada pelo processo desenhado.

Saídas

Regras de Negócio (template).

Perfis Participantes

R

Analista de Processos de Negócio

X

A

C

I

Analista SOA

X

X

Designer de Interfaces de Usuário

X

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

X X

A descrição das regras de Negócio contempla a identificação dos requisitos para o desenvolvimento das atividades de forma a atender as expectativas do cliente do processo. Tal identificação compreende, para cada atividade, QUEM é o seu responsável, COMO, ONDE, QUANDO e PORQUE ela deve ser realizada. Descrição das Atividades

Uma vez que as Regras de Negócio resultantes dessa atividade serão utilizadas por todo o processo, é importante focar em algumas boas práticas na sua elaboração, principalmente no que diz respeito à sua simplicidade. Com o tempo, a maturidade da empresa no gerenciamento das Regras de Negócio tende a aumentar e, então, serão criados padrões de codificação e identificação das regras, separação por tipos e outros conceitos que ajudarão na sua elaboração e manutenção.

29

Desenhar estrutura da informação

Finalidade

Identificar o modelo de estrutura da informação do processo.

Entradas

Modelo do Processo de Negócio (to-be); e Regras de Negócio.

Saídas

Estrutura da informação (template).

Perfis Participantes

R

Analista de Processos de Negócio

X

A

C

I

Analista SOA

X

X

Designer de Interfaces de Usuário

X

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

X X

A estrutura de informação do processo deve contemplar, de forma clara e concisa, a estrutura de dados e informações que são transferidas entre as diferentes atividades do processo pelos serviços a serem projetados e implementados.

Descrição das Atividades

Seu desenvolvedor deve ter em mente que essa estrutura de informações gerada será a base para todo o desenvolvimento SOA que acontecerá nas etapas seguintes. Por isso, ela deve ser capaz de informar de maneira prática e clara quais os níveis de informações e o grau de parentesco entre elas. Não é escopo desse documento a prescrição de práticas, porém, convém apresentar (por meio dos templates) tipos de estruturas de informação adequadas, com base na experiência e no conhecimento das melhores práticas da equipe autora dessa metodologia.

30

Elaborar protótipos de telas

Finalidade

Elaborar interfaces gráficas que serão utilizadas para a compreensão da usabilidade do processo automatizado pelo usuário final.

Entradas

Processo desenhado; Documentação gerada pelo processo desenhado; Regras de Negócio adaptadas; e Modelo de estrutura da informação.

Saídas

Telas de prototipação de interface.

Perfis Participantes

R

A

C

Analista de Processos de Negócio

X

Analista SOA

X

Designer de Interfaces de Usuário

I X

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio) Gestor (Área de Negócio)

Descrição das Atividades

X X

A elaboração dos protótipos de telas no desenvolvimento SOA, diferentemente de outras metodologias, não é realizada exclusivamente nas etapas de desenvolvimento. Ela é uma visão prévia da aplicação a ser desenvolvida, sendo ainda realizadas possíveis alterações futuras durante os processos da disciplina de Análise subsequentes, quando a concepção de serviços candidatos a comporem a solução já estará mais consolidada. Esta primeira prototipação deve ser realizada alinhando-se as expectativas do cliente, sendo o resultado final exposto através de telas que expressem a concepção inicial das interfaces, bem como o seu fluxo de navegação e interações entre as mesmas.

31

Prover informações sobre o processo desejado

Finalidade

Suportar o Analista de Negócios sobre o processo trabalhado para que o desenho do processo para automação seja bem sucedido.

Entradas

Processo desenhado; Documentação gerada pelo processo desenhado; Regras de Negócio adaptadas; e Modelo de estrutura da informação.

Saídas

Informações providas e eventuais dúvidas sanadas.

Perfis Participantes

R

Analista de Processos de Negócio

A

C

X

X

I

Analista SOA

X

X

Designer de Interfaces de Usuário

X

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio)

X

Gestor (Área de Negócio)

X

Descrição das Atividades

X

Durante o desenho do processo (to-be) para automação, das Regras de Negócio e da Estrutura da Informação, é possível que o Analista de Negócio tenha algumas dúvidas residuais sobre o processo trabalhado e analisado. A Área de Negócio pode vir a ser solicitada para esclarecer tais eventuais dúvidas, de forma que a eficiência do processo desenhado seja maximizada.

32

Apoiar análise, modelagem e desenho do Negócio com orientação a serviço

Finalidade

Auxiliar o Analista de Negócio no momento do Desenho do processo para automação.

Entradas

Processo desenhado; Documentação gerada pelo processo desenhado; Regras de Negócio adaptadas; e Modelo de estrutura da informação.

Saídas

Processo desenhado com maior orientação a serviço

Perfis Participantes

R

Analista de Processos de Negócio Analista SOA

A

C

X

X

I

X

Designer de Interfaces de Usuário

X

Gerente de Projeto

X X

Auditor SOA

X

X

Técnicos/Usuários (Área de Negócio)

X

X

Gestor (Área de Negócio)

X

X

Descrição das Atividades

O apoio dado pelo Analista SOA ajuda o Analista de Negócio a identificar os Serviços de Tarefa, de Entidade e Utilitários presentes no processo com maior eficácia. Dessa forma, quando do momento da Análise do Inventário de Serviços e da Análise Orientada a Serviços, o trabalho será mais facilmente realizável.

33

Aprovar modelo

Finalidade

Analisar o modelo de estrutura da informação gerado para validar a sua aderência ao processo e ao negócio modelados.

Entradas

Processo desenhado; Documentação gerada pelo processo desenhado; Regras de Negócio adaptadas; e Modelo de estrutura da informação.

Saídas

Produtos validados

Perfis Participantes

R

Analista de Processos de Negócio

A

C

X

X

I

Analista SOA

X

X

Designer de Interfaces de Usuário

X

X

Gerente de Projeto

X

Auditor SOA

X

Técnicos/Usuários (Área de Negócio)

X

Gestor (Área de Negócio)

X

Descrição das Atividades

A validação dos produtos compreende a aceitação de todos os produtos gerados pelas atividades do processo com os colaboradores da organização que estão envolvidos com a área de negócio onde o processo analisado percorre. Dessa forma, a área de negócio garante que o processo desenhado para automação, as regras de Negócio, o Modelo de informação e os protótipos de tela estão alinhados com as atividades por ela desenvolvidas

34

6.1.1 Visibilidade do Processo de Desenvolvimento A Figura 6 apresenta a visão dos artefatos de entrada e saída para esta etapa da metodologia SOA.

Figura 6 - Entradas e Saídas do processo Modelar Negócio

35

7 ANÁLISE ORIENTADA A SERVIÇO A Análise Orientada a Serviço consiste em um conjunto de atividades que visam compreender como os serviços a serem desenvolvidos irão interagir entre si com o intuito de solucionar o cenário proposto pela Modelagem do Negócio. Esta etapa será responsável pela identificação e especificação funcional de serviços. Para tanto, é utilizada a separação de interesses orientada a serviços, tipicamente pela separação de lógica agnóstica (serviços agnósticos) e de lógica não agnóstica. O uso da arquitetura de camadas do inventário e de modelos de serviço consiste em parte fundamental deste processo de abstração. Como descrito na Arquitetura de Referência SOA (AR-SOA), serviços de lógica agnóstica podem seguir dois processos de abstração: Utilitária e de Entidade; enquanto serviços de lógica não agnóstica seguem abstrações relacionadas a orquestração (composição) de serviços: Tarefa e Processo. A descrição de cada modelo de serviço é apresentada a seguir: •







Serviços Utilitários: são serviços que proveem funcionalidades que endereçam interesses múltiplos, enquanto mantém um escopo funcional não inerente ao negócio. Frequentemente, encapsularem recursos corporativos, tais como sistemas legados e base de dados, e os expõem em contexto único. Serviços de Entidade: são serviços relacionados a entidades de negócio. Ainda que uma capacidade de serviço de entidade possa encapsular um processo ou tarefa de negócio, seu escopo é limitado a sua associação com a entidade de negócio definidas na Modelagem de Negócio. São serviços de fácil identificação por representarem as entidades de negócio, bem como estarem associados a capacidades de criação, recuperação, atualização e remoção de informações (CRUD) inerentes à entidade. Serviços de Tarefa: são serviços que representam a lógica de processos de negócio que envolve a composição de serviços. Tais serviços são, por natureza, não agnósticos e de propósito único, agrupando lógicas agnósticas, porém em um contexto específico, possuindo, portanto, potencial de reuso limitado ou inexistente. Tipicamente, serviços de tarefa não possuem lógica interativa (lógica de usuário). Serviços de Processo: são serviços muito semelhantes aos Serviços de Tarefa, possuindo como diferença composições mais complexas e que executam em maior quantidade de tempo. Tipicamente, serviços de processo possuem lógica interativa.

Uma característica fundamental dos projetos de desenvolvimento de soluções SOA consiste na ênfase dada à necessidade de aumentar o esforço da análise antecipada. No contexto de SOA, essa análise pode ser dividida em dois processos: Analisar Inventário de Serviços e Analisar Serviço. O processo Analisar Inventário de Serviços consiste em uma análise mais ampla do processo, sendo responsável pela decomposição da lógica de solução em serviços. Neste processo, serviços são identificados usando os modelos de serviços definidos o que resulta em uma coleção de candidatos a serviço agnósticos e na definição preliminar de composições de serviços. Como resultado, o próprio modelo de processo estabelecido na Modelagem de Negócio é enriquecido e, eventualmente, aprimorado para contemplar a divisão de serviços pretendida. Nesse sentido, o processo engloba ainda um aprimoramento da concepção dos protótipos de UI e com análise de sistemas adjacentes (legado). A análise de serviços é feita considerando os serviços coletivamente, inclusive com exploração do inventário de serviços existente para

36

descoberta de serviços e definição de reuso e evolução de serviços previamente disponibilizados. O processo Analisar Serviços consiste em uma análise específica sobre cada serviço a ser desenvolvido, sendo responsável pela definição e detalhamento de candidatos a capacidades de serviço, suas respectivas mensagens (estrutura), bem como requisitos não funcionais. Este processo é executado para cada serviço individualmente, de modo a observar com maior atenção composições e dependências entre serviços. Neste processo são gerados/atualizados documentos de perfil para cada serviço proposto, bem como uma matriz de sistemas legados (mapeamento entre modelos canônicos e modelos utilizados nos sistemas adjacentes (legado) e sua lógica de transformação).

7.1 Analisar Inventário de Serviços O processo Analisar Inventário de Serviços é apresentado na Figura 7 e suas atividades são descritas a seguir.

Finalidade

Aplicar princípios de orientação a serviço para decompor a lógica de negócio e identificar serviços candidatos. Modelar de modo preliminar os serviços candidatos e composições identificadas.

Entradas

OS Modelagem de Negócio e Análise Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Arquitetura de Informação Corporativa Arquitetura de Dados Corporativa Arquitetura de Sistema Adjacente Arquitetura de Referência

Saídas

Modelo de dados (físico) Modelo de integração Protótipo de Telas (atualização) Documento de Candidatos a Serviço (template)

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X

X

X

X

X X

Auditor SOA Design de Interfaces Gerente de Projeto

X X X

37

Figura 7 – Analisar Inventário de Serviços

38

Revisar Modelos de Processo, Informação e Regras de Negócio

Finalidade

Revisão dos modelos de processo e demais documentos que expressem

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Processo revisado

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Muitos dos serviços a serem modelados e projetados serão serviços diretamente ligados aos processos finalísticos da organização, responsáveis por encapsular e expressar lógicas de negócio de forma precisa. Portanto, um dos fatores essenciais para o sucesso desta etapa é a revisão e dos processos de negócio e suas especificações elencados até o momento.

39

Analisar Sistemas Existentes

Finalidade

Identificar sistemas adjacentes legados que interagem de alguma forma como negócio mapeado

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Definição de Sistemas Existentes

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

A avaliação dos sistemas legados desenvolvidos visa a detecção de soluções já desenvolvidas para reaproveitamento, favorecendo o retorno do investimento e evitando o descarte total e criação de novas soluções, tal como ocorre em outras abordagens.

40

Analisar Tarefas Humanas e Automáticas

Finalidade

Filtrar tarefas a serem analisadas como candidatas a serviço

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes

Saídas

Definição de Tarefas Humanas e Automáticas

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Dentro de um processo de negócio, algumas tarefas podem ser facilmente identificadas como não pertencentes à lógica que deve ser encapsulada em um candidato a serviço, como por exemplo, tarefas manuais do processo que não podem ou não devem ser automatizadas ou tarefas de processos executadas por lógica legada existente para o qual o encapsulamento por um serviço não é uma opção. A separação desses contextos auxilia na separação de tarefas a serem executadas via serviço e tarefas que não devem ser automatizadas.

41

Decompor Processos de Negócio

Finalidade

Decomposição de processo em menor nível de granularidade a fim de facilitar compreensão de composições e reusabilidade de capacidades

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas

Saídas

Processo Decomposto

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Nesta atividade o processo de negócio documentado é decomposto em uma série de passos elementares. É importante que o fluxo de trabalho seja decomposto no menor nível de granularidade possível, frequentemente diferente dos níveis no qual os passos de processo são inicialmente documentados. Com isso, composições de serviços se tornarão mais claramente perceptíveis, e os benefícios de reusabilidade ficará em maior evidencia.

42

Identificar Candidatos a Serviço de Negócio - Entidades

Finalidade

Definir os candidatos a Serviço de Entidade

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto

Saídas

Candidatos a Serviços de Entidade

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Neta etapa são identificados serviços centralizados nas entidades de negócio e com grande potencial de reuso, para tanto uma análise do Modelo de Processo de Negócio (to-be) deve ser realizada, tendo-se em vista as próprias entidades existentes. Estes serviços possuem contexto derivado de uma entidade de negócio específica (ex. Magistrado, Vara) ou de um grupo de entidades de negócio relacionadas

43

Analisar Inventário de Serviços e identificar oportunidades de reuso

Finalidade

Identificar os serviços existentes que podem ser utilizados de acordo com os candidatos propostos

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade

Saídas

Serviços com capacidade de reuso identificados.

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Esta análise verifica o Inventário de Serviços existente para identificar Serviços já construídos que possam ser aproveitados como Serviços de Entidade.

44

Identificar Candidatos a Serviço Utilitário

Finalidade

Definir os candidatos a Serviço Utilitário

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade

Saídas

Candidatos a Serviços Utilitários

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Nesta etapa são identificados serviços de funcionalidade com interesses múltiplos, e, portanto, com grande potencial de reuso. Frequentemente, estes serviços encapsulam recursos corporativos, tais como sistemas legados e bases de dados e os expõem em contextos únicos. É comum a definição constante de mais serviços utilitários a medida que a análise é refinada, sendo a granularidade escolhida um dos grandes desafios desta atividade.

45

Identificar Candidatos a Serviço de Negócio - Tarefa

Finalidade

Definir os candidatos a Serviço de Tarefa

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários

Saídas

Candidatos a Serviços de Tarefa

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Identificar serviços que encapsulam a lógica de negócio específica de uma tarefa de negócio, frequentemente relacionada a atividades de processo.

46

Identificar Composições de Serviço

Finalidade

Especificação de composições de serviços

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa

Saídas

Composições de Serviço

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Nessa tarefa, são identificados os cenários mais comuns no contexto do processo e quais as etapas para a conclusão desses. É necessário garantir que esses cenários contemplem todas as condições possíveis. As composições a serem detalhadas posteriormente devem seguir os princípios de separação de camadas de serviço, facilitando o entendimento do papel de serviços agnósticos e não agnósticos na solução proposta.

47

Analisar Requisitos não Funcionais

Finalidade

Análise prévia de termos de desempenho, usabilidade, confiabilidade, segurança, disponibilidade, manutenção e tecnologias envolvidas da solução.

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Candidatos a Composições de Serviço

Saídas

Requisitos não Funcionais dos Candidatos a Serviços

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Nessa tarefa, o foco está no estudo dos requisitos de processamento subjacentes de cada capacidade de serviço. Isso pode revelar a necessidade por candidatos a capacidades adicionais de serviço não ligados diretamente ao negócio.

48

Aplicar Princípios e Patterns

Finalidade

Revisão de candidatos a serviços identificados a fim de se aplicar princípios e patterns SOA

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Candidatos a Composições de Serviço Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Revisão de Candidatos a Serviço

Perfis Participantes

R

A

C

I

Administrador de Dados

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Os princípios de SOA que têm significância especial, durante a modelagem de serviços, são os de Capacidade de Reuso de Serviço e de Autonomia de Serviço: - Considerações de reuso ajudam a tornar os passos dentro de contextos agnósticos em ações mais genéricas. - Considerações de autonomia relacionam-se com os sistemas legados afetados, identificados anteriormente. - Visibilidade de Serviço (capacidade de descoberta) também é levada em consideração para propósitos de meta anotação.

49

Revisar Composições e Candidatos a Serviços

Finalidade

Revisão de composições e candidatos a serviço a fim de se verificar a necessidade de nível de granularidade

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Candidatos a Composições de Serviço Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Candidatos a Composições de Serviço

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Os cenários originais que foram identificados na Tarefa “Identificar Composições de Serviço” são revisitados. Desta vez, entretanto, são incorporados também os novos candidatos a serviços utilitários. Isso pode resultar no mapeamento de novas atividades de serviços a serem elaboradas. Deve-se manter o histórico de como candidatos a serviços de negócio relacionamse com candidatos a serviços utilitários subjacentes durante este exercício.

50

Revisar Candidatos a Capacidade de Serviço

Finalidade

Revisão de capacidades a serviço a fim de se verificar a necessidade de refinamento de análise

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Revisão de Candidatos a Serviço

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio Analista SOA

X

X

X

X

X

X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

Descrição das Atividades

X

X

Nesta etapa são revisadas as capacidades elencadas anteriormente, tomando-se o cenário proposto, sendo reavaliada a necessidade de novas composições e decomposições. É um processo interativo, e que deve ser aprimorado visando a granularidade desejada.

51

Atualizar Modelo de Processo de Negócio e Documento de Candidatos a Serviços

Finalidade

Atualização de Modelo de Processo de Negócio quando novas considerações frente à decomposição de serviços

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Modelo de Processo de Negócio (atualizado) Documento de Candidatos a Serviço

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

C

I

X

X

X

X

X X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

O mapeamento dos cenários oriundos das etapas anteriores poderá acarretar em novas considerações na solução, o que poderá gerar a necessidade de refinar e alterar o agrupamento ou a definição dos candidatos a capacidades de serviço que foram previamente definidos. Essas novas considerações devem ser alinhadas com o Modelo de Processo de Negócio definido anteriormente

52

Apoiar Análise

Finalidade

Auxiliar o Analista SOA a manter o foco no negócio do processo trabalhado

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Modelo de Processo de Negócio (atualizado) Documento de Candidatos a Serviço

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA

I

X

X

X X

Arquiteto SOA

C

X X

X

Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Garantir que as análises realizadas pelo Analista SOA não percam o alinhamento com o negócio. Isso implica acompanhar e estar ciente da Análise realizada sobre o inventário de Serviços, da identificação dos Serviços candidatos e garantir o alinhamento dessas atividades ao negócio.

53

Fornecer informações adicionais

Finalidade

Apoiar os Analistas SOA e de Processos de Negócio fornecendo eventuais informações que possam não ter sido coletadas previamente.

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Modelo de Processo de Negócio (atualizado) Documento de Candidatos a Serviço

Perfis Participantes

R

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

X

X

X

X

Analista SOA

A

X

Arquiteto SOA Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora Descrição das Atividades

X

Fornecer informações complementares às coletadas durante a Modelagem de Negócio de forma que os Analistas SOA e de Negócio possam realizar uma Análise Orientada a Serviço mais completa e abrangente.

54

Aplicar Considerações de Administração de Dados

Finalidade

Avaliar base de dados e considerações quanto a sua interação com as definições existente e definições necessárias para o funcionamento da solução proposta

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Análise de solução proposta

Perfis Participantes

R

Administrador de Dados

X

A

C

Analista de Processos de Negócio Analista SOA

X X

Arquiteto SOA

I

X

X

X

X

Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Nesta etapa o Analista e Administrador de Dados analisam o cenário proposto pela solução e ponderam quanto a viabilidade e definições já existentes.

55

Definir Modelo de Dados (físico)

Finalidade

Definição de modelo de dados físicos a serem trafegados

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Definição de modelos

Perfis Participantes

R

Administrador de Dados

X

A

C

Analista de Processos de Negócio Analista SOA

X X

Arquiteto SOA

I

X

X

X

X

Arquiteto de Software

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Após a análise de base de dados é definido o modelo de dados a ser utilizado na para a solução dos diversos cenários propostos

56

Aplicar considerações de integração com sistemas adjacentes

Finalidade

Analisar o impacto para realização de integração de sistemas adjacentes.

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Analise de sistemas adjacentes

Perfis Participantes

R

A

Administrador de Dados

C

I

X

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA Arquiteto de Software

X

X

X

X

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Nesta etapa os sistemas adjacentes que irão interagir com a solução são analisados para a definição de mecanismos e transformações a serem utilizados para a comunicação destas implementações com a solução proposta.

57

Definir modelo de integração

Finalidade

Definir modelo de integração utilizado para comunicação com sistema adjacentes

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Modelo de integração de sistemas adjacentes

Perfis Participantes

R

A

Administrador de Dados

C

I

X

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA Arquiteto de Software

X

X

X

X

X

Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Nesta etapa é definido o modelo de dados utilizados na comunicação com sistema adjacente, bem como protocolos a serem utilizados, autenticação, disponibilidade, etç.

58

Apoiar Análise

Finalidade

Fornecer o suporte necessário para que a solução SOA em desenvolvimento esteja de acordo com a arquitetura elaborada

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Modelo de Processo de Negócio (atualizado) Documento de Candidatos a Serviço

Perfis Participantes

R

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

Analista SOA

A

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

X

Descrição das Atividades

Diferentemente de outras abordagens, em uma Arquitetura Orientada a Serviços, os Analistas SOA e os Arquitetos SOA trabalham em conjunto para a elaboração da análise. O Arquiteto SOA participava ativamente dessa etapa para melhor concepção da solução.

59

Aprimorar Protótipo de Telas

Finalidade

Aprimoramento de concepção inicial de protótipo de telas tendo como base a decomposição de serviços e possíveis implicações que acarretarão da decomposição da solução em serviços.

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Protótipo de Telas (atualizado)

Perfis Participantes

R

C

I

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Analista de Processos de Negócio Analista SOA

A X

X

Auditor SOA

X

Designer de Interfaces de Usuário

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

Descrição das Atividades

X

X

X

O mapeamento dos cenários oriundos da etapa poderá acarretar em novas considerações na prototipação inicial de telas, esta etapa permite o alinhamento dos protótipos com as novas considerações especificadas nas fases anteriores, sendo avaliada a necessidade de construção de novos protótipos ou campos de texto.

60

Aprovar análise

Finalidade

Validar todos os passos realizados na Análise de forma a atender o Negócio

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de Sistemas Existentes Definição de Tarefas Humanas e Automáticas Processo Decomposto Candidatos a Serviços de Entidade Candidatos a Serviços Utilitários Candidatos a Serviços de Tarefa Composições de Serviços Requisitos não Funcionais dos Candidatos a Serviços

Saídas

Análise do Inventário de Serviços aprovado

Perfis Participantes

R

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

X

X

X

X

Analista SOA

A

X

Arquiteto SOA Auditor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora Descrição das Atividades

X

Analisar o Inventário de Serviços, o Modelo de Dados e o Modelo de Integração propostos e verificar se vão atender o escopo proposto. Caso se verifique que o serviço não foi bem desenvolvido ou que precisa de ajustes, pode-se solicitar uma segunda realização de uma ou mais atividades.

61

7.1.1 Visibilidade do Processo de Desenvolvimento A Figura 8 apresenta a visão dos artefatos de entrada e saída para este processo.

Figura 8 - Entradas e Saídas do processo Analisar Inventário de Serviço

62

7.2 Analisar Serviços O processo Analisar Serviço é apresentado na Figura 9 e suas atividades são descritas a seguir. Finalidade

Aplicar princípios de orientação a serviço para detalhar a análise de cada serviço individualmente.

Entradas

OS Modelagem de Negócio e Análise Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Documento de Candidatos a Serviços (template) Candidatos a Serviço Arquitetura de Referência

Saídas

Perfil de Serviço (template) Mapeamento de Sistema Adjacente

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X

X

X

X

X X

Auditor SOA

X

Gerente de Projeto

X

63

Figura 9 – Analisar Serviço

64

Analisar Composições

Finalidade

Analisar composições especificadas

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Candidatos a Serviço

Saídas

Composições de tarefa agrupadas

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nessa tarefa, os cenários identificados no contexto do processo são revisitados tendo uma ótica mais direcionada às trocas de mensagens entre as composições para solução. Serviços de tarefa fazem uso de outros serviços, geralmente de contexto agnóstico, porém como são projetados em um contexto específico, possuem sua capacidade de reutilização remota.

65

Analisar Capacidades

Finalidade

Especificar as capacidades do serviço de tarefa

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Candidatos a Serviço Composições de tarefa Agrupadas

Saídas

Capacidades de serviço de tarefa

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Serviços de tarefa possuem granularidade grossa, em detrimento de outros serviços, e como atuam em um contexto específico, tendem a ter geralmente uma única capacidade que expresse seu propósito, como especificado na Arquitetura de Referência SOA (AR-SOA).

66

Analisar Modelos de Informação

Finalidade

Revisar Modelos de Informação definidos anteriormente

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Modelos de Informação (atualizado)

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa são refinadas as informações coletadas anteriormente, pois uma ótica mais detalhada sobre tais modelos pode gerar a necessidade de algum ajuste, tendo-se em vista a ênfase em orientação a serviços. Possíveis alterações podem ser descobertas oriundas da diferença de perspectivas entre o funcionamento das informações de negócio e das informações necessárias em um modelo orientado a serviços.

67

Analisar Granularidade

Finalidade

Definir granularidade de dos serviços de entidade

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Definição de granularidade de serviços de entidade

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Serviços de entidade estão comumente sujeitos a padrões de decomposição de serviços de modo a ajustar sua evolução em resposta a mudanças de requisitos de negócio, bem como a maturação do seu ambiente subjacente de implementação. A definição de granularidade é importante, portanto, para futuras evoluções do serviço, bem como possibilidade de reutilização do serviço e suas capacidades.

68

Analisar Capacidades (CRUD e Derivações)

Finalidade

Especificação mais aprofundada de capacidades de serviços de entidade

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas Definição de granularidade de serviços de entidade

Saídas

Revisão de capacidades de serviços de entidade

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Dado o alinhamento de serviços de entidade com as entidades de negócio é comum estes possuírem capacidades relacionadas às operações básicas em entidades manipuladas, como inserir, visualizar, alterar e excluir. Maiores detalhes quanto à nomenclaturas e especificações de capacidades de serviços de entidade podem ser encontrados na Arquitetura de Referência SOA (AR-SOA).

69

Analisar Estrutura de Mensagens

Finalidade

Definição de estrutura de mensagens a serem utilizadas

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Estrutura de mensagens de payload em serviços de entidade

Perfis Participantes

R

Analista SOA

X

Arquiteto SOA

X

A

C

Governança SOA

X

Administrador de Dados Gerente de Projetos

Descrição das Atividades

I

X X

X

X

A comunicação de entre serviços se dá através da troca de mensagens entre estes, para tanto é necessária a definição de payload a ser trafegada entre os serviços, levando-se em considerações implicações referentes ao tipo de dado, número de ocorrência do mesmo e obrigatoriedade. A definição de tais mensagens ajuda a separar os contextos de definição do modelo de informações do contexto de mensagens a serem trafegadas.

70

Analisar Capacidades Utilitárias

Finalidade

Especificação mais aprofundada de capacidades de serviços utilitários

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Revisão de capacidades de serviços utilitários

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Serviços utilitários geralmente residem em uma hierarquia inferior da composição de serviços, uma vez que são utilizados como composição por serviços de entidade e tarefa, podendo em alguns casos serem eles mesmos compostos por outros serviços utilitários. Dado serem agnósticos e seu alto grau de reusabilidade é importante analisar também sua granularidade. Cada capacidade deve ser analisada individualmente, tendo-se como premissa evitar serviços de grande granularidade por diminuírem a possibilidade de reuso.

71

Analisar Estrutura de Mensagens

Finalidade

Definição de estrutura de mensagens a serem utilizadas

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Estrutura de mensagens de payload em serviços utilitários

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

A comunicação de entre serviços se dá através da troca de mensagens entre estes, para tanto é necessária a definição de payload a ser trafegada entre os serviços, levando-se em considerações implicações referentes ao tipo de dado, número de ocorrência do mesmo e obrigatoriedade. A definição de tais mensagens ajuda a separar os contextos de definição do modelo de informações do contexto de mensagens a serem trafegadas. No caso de mensagens de serviços utilitários deve-se levar em consideração possíveis transformações a serem executadas quando do encapsulamento de sistemas legados, por possuírem estruturas e dados em formatos diferentes ao modelo de informação proposto.

72

Analisar Sistema Adjacente

Finalidade

Especificação de correlação entre payloads de sistemas legados e modelo de informações

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Mapeamento de Sistema Adjacente

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Diferentemente de outras abordagens, sistemas legados ou em silo são vistos como importantes para SOA, uma vez que se trata de uma forma de se obter o retorno de investimento anteriormente feito, entretanto, estes devem ser encapsuladas para o aproveitamento dos benefícios e aplicação de princípios SOA de forma significativa. Comumente, existirão diferenças entre o modelo proposto pelos sistemas legados e os modelos de informação definidos até então, portanto, é de fundamental relevância o mapeamento entre estes modelos a fim de facilitar a melhor compreensão dos dados, evitando-se transformações quando do consumo do serviço utilitário que encapsule o serviço legado em questão.

73

Elaborar Perfil de Serviço

Finalidade

Especificar/ atualizar perfil de serviço para cada serviço avaliado

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Perfil de Serviço

Perfis Participantes

R

A

Analista de Processos de Negócio Analista SOA Arquiteto SOA

C

I

X X X

Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta tarefa as considerações referentes a classificação em camadas dos serviços, modelos de informações, payloads de capacidades, dentre outros devem ser agrupadas em um documento para cada serviço analisado. Dado a evolução de serviços, pode ocorrer cenários onde o perfil de serviço já exista, sendo necessária a atualização do mesmo.

74

Aprovar Análise

Finalidade

Validar todos os passos realizados na Análise de forma a atender o Negócio

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Perfil de serviço aprovado

Perfis Participantes

R

A

Analista de Processos de Negócio X

Arquiteto SOA Gerente de Projeto Descrição das Atividades

I

X

Analista SOA Governança SOA

C

X X X Analisar o modelo de serviço sob análise e verificar se irá atender o escopo proposto. Caso se verifique que o serviço não foi bem desenvolvido ou que precisa de ajustes, pode-se solicitar uma segunda realização de uma ou mais atividades.

75

Apoiar Análise

Finalidade

Fornecer o suporte necessário para que a equipe que está desenvolvendo a solução SOA tenha um perfeito entendimento sobre o processo e o negócio trabalhado.

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Perfil de Serviço aprovado

Perfis Participantes

R

A

Analista de Processos de Negócio

Governança SOA Gerente de Projeto Descrição das Atividades

I

X

Analista SOA Arquiteto SOA

C

X X X X Estar disponível para sanar quaisquer dúvidas que possam surgir durante a Análise dos Serviços.

76

Elaborar Perfil de Serviço

Finalidade

Especificar/ atualizar perfil de serviço para cada serviço avaliado

Entradas

Modelo de Processo de Negócio (as-is) (template) Modelo de Processo de Negócio (to-be) (template) Análise do Processo de Negócio (template) Modelo de Informação (template) Regras de Negócio (template) Protótipo de Telas

Saídas

Perfil de Serviço

Perfis Participantes

R

Analista de Processos de Negócio Analista SOA Arquiteto SOA

A

C

I

X

X

X X

Auditor SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta tarefa as considerações referentes a classificação em camadas dos serviços, modelos de informações, payloads de capacidades, dentre outros devem ser agrupadas em um documento para cada serviço analisado. Dado a evolução de serviços, pode ocorrer cenários onde o perfil de serviço já exista, sendo necessária a atualização do mesmo.

77

7.2.1 Visibilidade do Processo de Desenvolvimento A Figura 10 apresenta a visão dos artefatos de entrada e saída para este processo.

Figura 10 - Entradas e Saídas do processo Analisar Serviço

78

7.3 Heurísticas para Análise Orientada a Serviço Esta seção apresenta heurísticas para Análise Orientada a Serviços que devem ser consideradas pelo Analista SOA ao identificar e modelar serviços para uma iniciativa SOA.

7.3.1 Princípio da Capacidade de Composição de Serviço •

Composição de serviços

Heurística: Composições de serviço são usadas para evitar a construção de lógica de solução redundante. Heurística: Serviços são projetados para serem membros efetivos de composição, independente de eles precisarem ser imediatamente listados em uma composição. A habilidade de compor serviços com efetividade é requisito crítico para atingir alguns dos objetivos fundamentais de computação orientada a serviço. •

Granularidade

Heurística: A granularidade definida é influenciada pela capacidade de se realizar composições complexas, segundo critérios de complexidade de projeto e de desempenho. Heurística: Projetar serviços com granularidade baixa para disponibilizar serviços com alto valor ao negócio. Serviços são abstrações que escondem dos consumidores os detalhes de implementação. Entretanto, uma granularidade mais fina acarreta normalmente em um tempo de execução maior. Por essa razão, geralmente é melhor ter uma chamada de serviço transferindo todos os dados necessários entre um provedor e seu consumidor ao invés de ter múltiplas chamadas de serviço processando a mesma quantidade de dados. Serviços com granularidade grossa ajudam a separar a estrutura interna de um provedor de serviço da sua interface externa. Ter um serviço para cada um acessar um atributo de uma entidade (por exemplo, um serviço para cada setter e getter) pode resultar em objetos distribuídos que aumentam as dependências entre os sistemas distribuídos. Em termos de necessidades e capacidades, a granularidade geralmente está associada ao detalhamento do nível do problema que está sendo resolvido, ou seja, projetar num nível mais estratégico versus num nível algorítmico, e definir o nível ótimo não está relacionado em contar o número de interfaces ou o número de tipos de trocas de informação que estão conectadas a uma interface. Outro problema com a recomendação de serviços grossos tem a ver com considerações de desempenho. Processar uma quantidade de dados demanda tempo e, se o consumidor não precisa desses dados, o tempo empregado para o processamento será em vão. Para o projeto orientado a serviço, deve-se pensar na granularidade no nível do provedor (quantos serviços são providos) ou no nível da especificação do serviço. Uma especificação de serviço é um agrupamento lógico das operações do serviço ao se considerar o negócio.

79

Quando as operações dos serviços são projetadas, considere colaborações, cenários de uso e mensagens (número e tamanho delas) que irão trafegar entre provedores e consumidores de serviços. Operações com granularidade grossa fornecem mais valor de negócio e permitem modificações mais fáceis no código. Os parâmetros desse tipo de operação (que usam mensagens para entrada, saída e erro) são menos suscetíveis a erro. Usar parâmetros com granularidade fina ao invés de mensagens, contudo, é geralmente mais descritivo. Para a granularidade do serviço, deve-se considerar que serviços podem ser compostos. Isso está relacionado com a reutilização e a habilidade de prover novas funcionalidades baseadas em funcionalidades existentes. Um conjunto de serviços em certo nível de granularidade pode ser orquestrado/coreografado e o resultado pode ser outro serviço com granularidade mais grossa. Pode-se, contudo, ter-se tarefas de negócio fornecidas pelos serviços e então ter uma sequência dessas tarefas (um processo de negócio) fornecida também como um serviço. Por fim, tomar decisões de projeto sobre granularidade de serviço é sempre um tradeoff entre desempenho (por exemplo, tamanho e número de mensagens sendo trocadas e a eficiência da implementação) e potencial de reuso. Além disso, SOA contêm tanto serviços com granularidade fina (serviços atômicos) quanto grossa (serviços compostos). •

Serviço Autocontido

Heurística: Priorizar a definição de serviços autocontidos. Caso seja necessário que um serviço invoque outro serviço, considerar o impacto da realização de composição de serviços, bem como o uso de arquiteturas e tecnologias específicas para realização dessas composições (p.e. mediadores (ESB), orquestração de serviços). O objetivo, enfim, é minimizar as dependências. Quanto menos dependências, modificações ou erros em um sistema, menos consequências serão produzidas em outro sistema.

7.3.2 Princípio do Reuso de Serviço •

Serviços como recursos corporativos

Heurística: Soluções individuais devem usar (compartilhar) lógicas de solução encapsuladas por serviços (agnósticos), posicionados como recursos corporativos (em um inventário de serviços). Heurística: Projetar serviços que possam ter uma demanda maior que a esperada. Heurística: Serviços semelhantes devem ser consolidados em um único serviço. A assinatura do serviço deve ser definida de acordo com a função mais genérica. Se as funções consideram diferentes requisitos não funcionais, então deve ser considerado o requisito funcional mais restritivo. Um dos objetivos mais fundamentais de orientação a serviço consiste em estabelecer serviços como recursos corporativos. Um recurso corporativo é algo pode ser usado por mais de uma parte da corporação. Um contexto de serviço que posiciona a lógica de serviço como um recurso corporativo é agnóstico por natureza. Um contexto agnóstico não tem propósito específico e, portanto, é potencialmente útil para muitos. O reuso é o princípio mais importante no projeto de serviços. Normalmente, têm-se requisitos específicos de consumidores específicos. Contudo, quando se quer ter todas as vantagens de SOA, é necessário que os serviços que foram projetados sejam reusados por outros 80

consumidores com requisitos ligeiramente diferentes. Ou seja, não se conhece de antemão todos os consumidores de um serviço e seus requisitos durante o projeto do serviço, o que torna a tarefa muito difícil.

7.3.3 Padrões de Projeto para Análise Orientada a Serviço Os seguintes padrões de projeto devem ser observados como parte do processo de Análise Orientada a Serviço. Uma descrição mais aprofundada de cada um pode ser encontrada nas respectivas páginas do livro de Thomas Erl (Erl, SOA Design Patterns, 2009), indicadas ao lado de cada padrão: • • • • • • • • • • • •

Abstração de Entidade (175); Abstração de Processo (182); Abstração de Utilitário (168); Centralização de Lógica (136); Camadas de Serviços (143); Capacidade Agnóstica (324); Contexto Agnóstico (312); Contexto Não Agnóstico (319); Encapsulamento em Serviço (305); Inventário Corporativo (116); Inventário de Domínio (123); Normalização de Serviços (131);

81

8 PROJETO ORIENTADO O SERVIÇO A etapa de Projeto Orientado a Serviço tipicamente começa quando uma extensão significativa da análise foi completada. O termo “projeto orientado a serviço” é comumente associado com um processo formal para projetar contratos de serviço. Entretanto, esse termo também é usado em um sentido mais amplo que engloba o projeto da lógica de serviço. Em geral, é importante reconhecer que uma característica distinta primária do projeto orientado a serviço é a abordagem “contrato primeiro” para o projeto de serviços. Todo o esforço colocado nos processos de análise e modelagem de serviços resulta em uma coleção de candidatos a serviços que estabelecem o ponto de partida para o projeto de serviços. Cada candidato a serviço pode ser usado como entrada para uma instância do processo de projeto orientado a serviço. Ao contrário do processo de análise orientada a serviço, que usualmente resulta na criação de múltiplos candidatos a serviços, uma iteração do processo de projeto orientado a serviço usualmente resulta na criação de um único contrato de serviço. O foco da fase Projetar Arquitetura é a definição das escolhas de projeto de arquitetura de serviço (e de solução) que qualificam, enquadram e restringem os processos de implementação (codificação) de serviços. Destaque-se que, em um projeto de solução orientada a serviços, o projeto da solução como um todo se concretiza a partir de composições de serviços individuais e de sua integração com a camada de interface de usuário (camada de apresentação). Desse modo, esse processo de projeto de lógica (de serviço e de solução) orientada a serviço deve enfocar o uso e aplicação dos princípios de orientação a serviço. A Realizar Projeto Orientado a Serviço (processo ilustrado na Figura 11). Finalidade

Definição de contratos e modelos canônicos

Entradas

Modelo Canônico de dados Perfil de Serviço (template) Arquitetura de Referência

Saídas

Arquitetura de Referência Modelos Canônicos Contrato de Serviços Perfil de Serviço (template)

Perfis Participantes

R

A

C

Administrador de Dados

X

Analista de Processos de Negócio

X

Analista SOA Arquiteto SOA

X X

Auditor SOA Especialista em Governança SOA Gerente de Projeto

I

X X X

82

Figura 11 - Relizar Projeto Orientado a Serviço

83

Identificar Modelos Canônicos aplicáveis

Finalidade

Levantamento inicial de Modelos canônicos

Entradas

Perfil de Serviço (template) Modelos Canônicos

Saídas

Modelos canônicos aplicáveis

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

O modelo canônico é uma definição universal utilizada entre serviços que possui entre suas principais vantagens a reutilização e padronização de modelos na requisição e comunicação entre serviços. Ao se identificar, e consolidar futuramente os modelos canônicos, outra grande vantagem é a diminuição de esforço e overhead em transformações de modelos díspares de dados.

84

Revisar Modelos Canônicos aplicáveis

Finalidade

Revisar os modelos canônicos para identificar modelos que poderão ser reutilizados e novos modelos a serem desenvolvidos

Entradas

Modelos canônicos aplicáveis

Saídas

Modelos canônicos

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa os modelos até então desenvolvidos são analisados novamente a fim de elencar quais serão reutilizados nas definições dos contratos, sendo possíveis três cenários distintos: modelo canônico que atende as necessidades do novo contrato, o modelo canônico que precisa ser ajustado para atender às novas demandas ou novos modelos canônicos que precisam ser criados para a definição do contrato.

85

Reusar Modelo sem Adaptações

Finalidade

Reutilizar modelo canônico existente

Entradas

Modelo Canônico

Saídas

Modelo Canônico reutilizado

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa não será necessária a criação de novos modelos canônicos, dado que os modelos previamente definidos podem ser reutilizados para definição de mensagens a serem utilizadas no contrato a ser definido. Esse cenário favorece o princípio de reusabilidade, diminuindo-se assim o esforço necessário para a criação de novos contratos.

86

Adaptar Modelo

Finalidade

Atualizar modelos existentes para atenderem novas demandas em um contexto funcional existente

Entradas

Modelos canônicos existentes

Saídas

Modelos canônicos (atualização)

Perfis Participantes

R

Administrador de Dados

A

C

X

Analista de Processos de Negócio

I X

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

X

Geralmente é necessário ampliar um modelo canônico, seja adicionando, atualizando ou removendo tipos definidos. É interessante, no entanto, ponderar o impacto de tais estratégias: •

Descrição das Atividades



• •

A adição de elementos obrigatórios em uma estrutura já existente comprometerá clientes que já utilizavam a estrutura em sua concepção anterior; A adição de elementos opcionais não trará impactos a clientes que já utilizavam a estrutura em sua concepção anterior; A adição de uma nova estrutura não trará impactos a clientes; A exclusão de estrutura ou de elementos de uma estrutura comprometerá clientes que já utilizavam a estrutura em sua concepção anterior.

87

Construir Modelo

Finalidade

Construir novos modelos canônicos que servirão de base para a criação de novos contratos

Entradas

Perfil de Serviço (template) Modelos canônicos existentes

Saídas

Modelos canônicos

Perfis Participantes

R

Administrador de Dados

A

C

I

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

Descrição das Atividades

X

X

X

Por vezes, novas estruturas de modelos canônicos são necessárias para a criação de um contrato de serviço. Nestes casos, a especificação universal de modelo deverá ser definida para suprir as estruturas faltantes, de forma a atender prioridades requisitadas e possibilitar a reutilização desse mesmo modelo em futuras implementações.

88

Aplicar Padronizações e Normalizar Modelo

Finalidade

Aplicar padrões e melhores práticas a fim de construir modelos canônicos passíveis de reutilização

Entradas

Arquitetura de Referência

Saídas

Modelos canônicos (atualizados)

Perfis Participantes

R

Administrador de Dados

A

C

I

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

Descrição das Atividades

X

X

Um modelo canônico é uma estrutura universal a ser adotada para definição de entidades inerentes ao negócio. Por isso, é importante considerar as possibilidades de evoluções e alterações futuras do mesmo, definindo principalmente o nível de granularidade a ser utilizado. A exposição de estruturas a serem reaproveitadas em definições futuras é uma preocupação pertinente, uma vez que alterações em modelos canônicos podem ter um impacto em cascata nos serviços de uma composição ou que interagem entre si.

89

Publicar Modelo

Finalidade

Expor o modelo canônico como definição universal a ser utilizada pelos serviços subsequentes.

Entradas

Modelos canônicos

Saídas

Modelo canônico publicado (Atualizado)

Perfis Participantes

R

A

C

Administrador de Dados

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

I

X

X X

Definida a padronização dos modelos, estes devem ser publicados para que novas definições não sobreponham as estruturas já definidas anteriormente e tão pouco sejam criadas estruturas diferentes para um mesmo contexto funcional.

90

Projetar/Adaptar interface abstrata

Finalidade

Definição de capacidades e das mensagens contidas em cada capacidade

Entradas

Perfil de Serviço (template) Modelos Canônicos

Saídas

Contrato de Serviços (parcial)

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

A primeira etapa ao se definir um contrato é a definição de sua interface abstrata, ou seja, a definição das mensagens de entrada, de saída, de falhas, a definição das capacidades e as mensagens a ela vinculadas.

91

Projetar/Adaptar interface concreta

Finalidade

Atualização de contrato, definindo-se protocolos e endpoints

Entradas

Perfil de Serviço (template) Modelos Canônicos Contrato de Serviços (parcial)

Saídas

Contrato de Serviços (parcial)

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

A definição de interface concreta é constituída pela definição do protocolo a ser utilizado, bem como o endpoint definido do contrato.

92

Aplicar padronização de projeto

Finalidade

Realização de padronização em modelos canônicos e contratos

Entradas

Arquitetura de Referência

Saídas

Contrato de Serviços

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

A padronização de contratos visa buscar a interoperabilidade, ou seja, a facilidade em se compreender e reutilizar contratos e em se manter a evolução dos mesmos. A aplicação das melhores práticas e da padronização evita também a utilização de transformações entre composições de serviços.

93

Atualizar perfil de serviço

Finalidade

Atualização de perfil de serviço

Entradas

Perfil de Serviço

Saídas

Perfil de Serviço (template)

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa, o perfil de serviços é atualizado para conter definições do contrato concreto, como, por exemplo, o protocolo de comunicação e o endpoint. Essas novas informações favorecerão o entendimento futuro e a evolução dos serviços.

94

Aprovar Projeto

Finalidade

Aprovar as definições do projeto

Entradas

Projeto orientado a serviço

Saídas

Definições aprovadas

Perfis Participantes

R

A

C

Administrador de Dados

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

I

X X

Cabe ao Especialista em Governança SOA verificar se o contrato proposto atende à demanda requisitada, sendo verificados os modelos canônicos, contratos propostos e soluções existentes.

95

Apoiar Projeto

Finalidade

Apoiar o Projeto

Entradas

Necessidades da etapa

Saídas

Necessidades da etapa

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio Analista SOA

X X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Diferentemente de outras abordagens, em uma Arquitetura Orientada a Serviços, os Analista de Processos de Negócio, Analistas SOA e os Arquitetos SOA trabalham em conjunto para a elaboração dos contratos, assim como nas etapas anteriores, onde, apesar do Analista SOA ser responsável por elencar os serviços candidatos, o Arquiteto SOA participava ativamente na compreensão do todo.

96

8.1.1 Visibilidade do Processo de Desenvolvimento A Figura 12 apresenta a visão dos artefatos de entrada e saída para este processo.

Figura 12 - Entradas e Saídas do processo Realizar Projeto Orientado a Serviço

97

8.2 Projetar Arquitetura Durante a fase “Projetar Arquitetura”, os serviços candidatos definidos durante a fase de Análise Orientada a Serviço são analisados com foco na definição da arquitetura a ser aplicada na construção do serviço. Antes de Projetar a Arquitetura, é fundamental ter em mãos a Arquitetura de Referência, onde são definidos os padrões de projeto a serem aplicados em soluções Orientadas a Serviço. O processo Projetar Arquitetura é apresentado e suas atividades são descritas a seguir (bem como ilustrado na Figura 13). Finalidade

Definir Arquitetura a ser aplicada na construção dos serviços

Entradas

Perfil de Serviço (template) Arquitetura de Referência

Saídas

Perfil de Serviço (atualizado) Arquitetura especializada

Perfis Participantes

R

A

C

Administrador de Dados

X

Analista de Processos de Negócio

X

Analista SOA Arquiteto SOA

I

X X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

98

Figura 13 - Projetar Arquitetura de Serviço

99

Analisar Padrões de Arquitetura de Serviço

Finalidade

Analisar especificamente cada capacidade de serviço para a definição dos Padrões de Projeto a serem utilizados na construção do serviço

Entradas

Perfil de Serviço (template) Arquitetura de Referência

Saídas

Arquitetura de Serviços

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

A avaliação dos contratos de serviços tem por objetivo identificar quais Padrões de Projeto podem ser aplicados na construção do serviço (definidos junto a Arquitetura de Referência SOA). Cada capacidade de serviço deve ser analisada individualmente. O resultado da análise de cada capacidade leva a definição da solução para construção do serviço. Esta análise visa, além da definição da Arquitetura da Solução, a detecção de padrões de projeto disponíveis no mercado para reutilização, favorecendo o retorno do investimento e evitando a criação de novas soluções quando da já existência de soluções parciais como sistemas legados, tal como ocorre em outras abordagens.

100

Aplicar Padrões de Projeto conforme Arquitetura de Serviço Selecionada.

Finalidade

Aplicar Padrões de Projeto com base na Arquitetura de Referência SOA

Entradas

Arquitetura de serviço

Saídas

Arquitetura especializada

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa, os padrões de projeto definidos são aplicados conforme Arquitetura de Referência, resultando na Arquitetura especializada (identificados junto a Arquitetura de Referência SOA).

101

Definir Arquitetura específica e Padrões de Projetos aplicáveis

Finalidade

Definir Padrões de Projeto Específicos para a construção do serviço

Entradas

Arquitetura de Serviço

Saídas

Arquitetura Especializada

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

A etapa de avaliação do serviço identificou que os Padrões de Projeto pré-definidos não são adequados à construção de um serviço em particular. Desta forma, Padrões de Projeto específicos devem ser criados para se adequarem a uma Arquitetura Especializada a ser aplicada na construção do serviço.

102

Aplicar Padrões de Projeto conforme Arquitetura Especializada

Finalidade

Aplicar Padrões de Projeto conforme Arquitetura Especializada para a construção de um serviço em particular

Entradas

Arquitetura Especializada

Saídas

Padrões aplicados

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa, os padrões de projeto definidos são aplicados conforme Arquitetura de Referência resultando na Arquitetura Especializada da solução.

103

Atualizar Perfil de Serviço

Finalidade

Atualizar Perfil de Serviço

Entradas

Arquitetura de Referência Arquitetura Especializada Perfil de Serviço

Saídas

Perfil de Serviço (atualizado)

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa, o perfil de serviços é atualizado para conter definições arquiteturais a serem seguidas na implementação dos serviços. Essas novas informações favorecerão o entendimento futuro e evolução dos serviços.

104

Aprovar Projeto

Finalidade

Aprovar as definições arquiteturais propostas

Entradas

Perfil de Serviço (atualizado) Arquitetura de Referência Arquitetura Especializada

Saídas

Arquitetura aprovada

Perfis Participantes

R

A

C

Administrador de Dados

X

Analista de Processos de Negócio

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

I

X X

Cabe ao Especialista em Governança SOA verificar se a arquitetura proposta atende à demanda requisitada, sendo verificadas a esta e às outras soluções existentes.

105

8.2.1 Visibilidade do Processo de Desenvolvimento A Figura 14 apresenta a visão dos artefatos de entrada e saída para este processo.

Figura 14 - Entradas e Saídas do processo Projetar Arquitetura

106

8.3 Heurísticas para Projeto Orientado a Serviço Esta seção apresenta heurísticas para Projeto Orientado a Serviços que devem ser consideradas pelo Analista SOA e pelo Arquiteto SOA ao projetar serviços para uma iniciativa SOA.

8.3.1 Princípio de Padronização de Contrato de Serviço •

Abordagem “Contrato Primeiro”

Heurística: Serviços dentro de um mesmo inventário de serviços estão em conformidade com os mesmos padrões para projeto de contrato. Heurística: Evitar o uso de ferramentas de geração automática de contrato a partir de lógica implementada (legada). Serviços expressam seus propósitos e capacidades através de um contrato padronizado. Isso implica em grande ênfase no projeto de contratos de serviços advogando o princípio de projeto “contrato primeiro”. Seu propósito é assegurar que a maneira na qual os serviços expressam funcionalidades e representam tipos de dados é mantida relativamente alinhada e independente (desacoplada) do projeto da lógica de solução. •

Padronizações de Projeto

Heurística: A arquitetura de referência SOA deve estabelecer diferentes padronizações de projeto (design standards), com objetivo de garantir a uniformidade dos produtos de um projeto de SOA. Heurística: Serviços dentro de um mesmo inventário de serviços devem estar em conformidade com os mesmos padrões para projeto de contrato (Princípio da Padronização de Contratos). Há dois tipos de padronização de contratos: Padronização de Representação de Dados (ou Modelo de Dados). Padronização da Expressão Funcional. •

Modelos de Dados Padronizados (Modelo Canônico)

Heurística: Definições de contrato devem compartilhar modelos canônicos comuns. Esses modelos canônicos definem a estrutura de dados de entrada e/ou saída para cada capacidade de serviço. Heurística: Antes de criar um tipo de dado no projeto do serviço, verificar os tipos de dados existentes no modelo canônico. Um objetivo fundamental dessa heurística consiste em evitar transformações através da padronização da representação de dados entre contratos de serviços. Recomenda-se ter um conjunto básico de tipos fundamentais que possam ser compostos com outros tipos (estruturas, records, etc.) e sequências (arrays). É necessário tomar cuidado com enumerações, herança e polimorfismo (mesmo quando XML suportar isto). Em resumo, deve-se ser conservador com os tipos de dados. 107

A harmonização dos tipos de dados é um grande problema em ambientes distribuídos. Não há dúvida que tudo se torna muito mais fácil se os tipos de dados estão compartilhados em todos os sistemas. Segundo Josuttis [2007], quando a orientação a objetos se tornou famosa, ter um modelo de objeto de negócio comum se tornou um objetivo geral. Entretanto, essa abordagem se tornou um problema quando aplicada a grandes sistemas. A primeira razão é organizacional: é muito difícil entrar em acordo sobre tipos de dados comuns. Existem visões e interesses que variam muito de sistema pra sistema, uma vez que os diversos sistemas possuem diferentes proprietários. Cedo ou tarde o preço da harmonização se torna muito alto, pois é muito caro manter todos os sistemas sincronizados e, quando um novo serviço for adicionado, a heterogeneidade será introduzida novamente. Se tipos de dados não estão harmonizados, então é preciso criar mapeamentos entre eles. Apesar da utilização de tipos de dados heterogêneos diminuir o acoplamento, a existência de uma diretriz organizacional para definir um modelo canônico de dados pode ser útil para manter a reusabilidade. Para a definição do contrato dos serviços, contudo, a homogeneização dos tipos de dados dificulta a criação de visão sobre os tipos de dados e pode aumentar desnecessariamente o tamanho das mensagens entre os serviços. •

Expressão Funcional padronizada (convenção de nomenclatura)

Heurística: Serviços de entidade serão nomeados em acordo com as entidades de negócio correspondentes. Heurística: Os nomes de serviços de tarefas serão baseados no processo de negócio que o serviço é responsável por automatizar. Heurística: Nomes de capacidades de serviço incluíram um verbo seguido por um nome. Heurística: Os nomes das capacidades de serviço não podem repetir o nome do serviço. Padronização da Expressão Funcional refere-se a ter cada serviço expressando detalhes de seu respectivo contexto funcional usando convenções comuns, o que facilita a descoberta e o reuso de serviços.

8.3.2 Princípio do Baixo Acoplamento •

Acoplamento Consumidor para Contrato

Heurística: Reduzir o acoplamento entre o contrato de serviço e o consumidor de serviço. Um provedor não deve ter conhecimento sobre uma instância específica de um consumidor e vice-versa. Trocar um provedor ou a implementação de um serviço deve ter efeitos mínimos nos consumidores. Uma consideração central de projeto para o estabelecimento de relações entre consumidor e serviço é se o consumidor de serviço de fato se acopla ao contrato de serviço. Deve-se enfatizar fortemente que um consumidor de serviço apenas se acople ao contrato de serviço (acoplamento Consumidor-para-Contrato). A forma negativa fundamental de acoplamento de consumidor ocorre quando o programa consumidor é projetado para ignorar o contrato de serviço, de modo a acessar partes da

108

implementação subjacente Implementação). •

do

serviço

diretamente

(acoplamento

Consumidor-para-

Acoplamento Lógica para Contrato

Heurística: Separar a especificação do serviço da sua implementação, descrevendo um modelo técnico (contrato) e um modelo conceitual (requisitos, restrições etc.). Heurística: Reduzir o acoplamento entre o contrato de serviço e sua lógica subjacente. Ao projetar serviços, os seguintes tipos de acoplamento devem ser levados em consideração de modo a atingir o nível apropriado de acoplamento global: Lógica-para-Contrato (positivo) Contrato-para-Lógica (negativo) Contrato-para-Funcionalidade (negativo) Contrato-para-Implementação (negativo) Contrato-para-Tecnologia (negativo) Tipos negativos de acoplamento de contrato são evitados de modo a maximizar a independência de governança do contrato de serviço. Um contrato de serviço completamente desacoplado pode evitar impor tipos de acoplamento negativos aos consumidores de serviço. Em última análise, qualquer forma indesejável de acoplamento permitida no projeto do contrato de serviço termina sendo imposta e proliferada através de todos os consumidores de serviço. Isso causa sérios problemas quando serviços agnósticos são largamente reusados. É importante ter todas as especificações dos serviços de forma independente de uma implementação particular, promovendo o projeto e a evolução independente da lógica de serviço. Heurística: Descrever formalmente a especificação do serviço. Heurística: Atualizar especificação do serviço com detalhamentos da fase de projeto. A especificação do serviço deve ser descrita formalmente, tanto em um formato que seja compreensível por máquinas, para que os geradores de código possam ajudar com a implementação do serviço, como também por humanos. O contrato do serviço deve estar no nível de especificação (não no nível de implementação). Para garantir uma rastreabilidade através dos processos de negócio, é interessante relacionar a especificação do serviço com a modelagem do processo de negócio o qual o serviço apoia.

8.3.3 Princípio da Abstração de Serviço Heurística: Contratos de Serviços contêm apenas informações essenciais e informações sobre os serviços são limitadas ao que está publicado nos contratos de serviços. Em um nível fundamental, esse princípio enfatiza a necessidade de esconder tanto quanto possível os detalhes subjacentes de um serviço. A informação sobre um serviço é, portanto, limitada ao que está publicado no contrato de serviço. Entretanto, abstração de serviço influencia o conteúdo do contrato de serviço.

109

Existem quatro tipos de meta abstração: Funcional: relaciona-se com metadados que descrevem o que o serviço é capaz de fazer. Tecnológica: relaciona-se com metadados que descrevem a implementação técnica da lógica de serviço subjacente. Programática: relaciona-se com metadados que descrevem como o serviço realizada suas capacidades. Qualidade de serviço: relaciona-se com metadados que descrevem o comportamento, limitações e requisitos de integração do serviço. A aplicação desse princípio envolve a necessidade de introduzir medidas de controle de acesso às especificações de projeto do serviço e ao código fonte. Isso protege tanto o serviço quanto seus consumidores de formas indesejáveis de acoplamento. O conteúdo de contratos de serviços pode ser regulado por este princípio, pois este encoraja a racionalização de meta informações e restrições. O propósito por de trás dessas limitações é maximizar a longevidade do contrato de serviço e dar liberdade de evolução da implementação subjacente aos proprietários de serviço. A aplicação deste princípio introduz a questão da “composição escondida”, onde programas consumidores de serviço não estão cientes que o serviço que eles estão invocando, de fato, encapsula uma composição inteira.

8.3.4 Princípio da Visibilidade de Serviço Heurística: Prover nomes significativos e bem descritivos do serviço e suas operações baseado no domínio do negócio, não na tecnologia. Definir padrões de nomes e descrições de acordo com as diretrizes da organização. Heurística: Publicar descrição dos serviços em um repositório de contratos. Heurística: Suplementar as especificações de serviços com metadados comunicativos pelos quais eles podem ser eficientemente descobertos e interpretados. É desejável que serviços (especialmente serviços agnósticos) possam ser facilmente localizados e entendidos de modo que eles possam ser apropriadamente reusados e recompostos. Existem dois conceitos relevantes para se obter essa característica: Capacidade de descoberta: O processo de buscar e encontrar uma lógica de solução dentro de um ambiente específico é referido como descoberta. Para que algo dentro de uma corporação possa ter capacidade de descoberta, ele precisa ser equipado com meta informação que permitirá que ele seja incluído no escopo dos mecanismos de busca da descoberta. Informação de capacidade de descoberta é essencialmente uma combinação do conteúdo de um contrato de serviço e metadados no registro do diretório correspondente. Algo que possa ser corretamente descoberto é considerado possuidor de uma medida de capacidade de descoberta. Capacidade de ser interpretado: Uma vez encontrados por um humano, é importante que o propósito e as capacidades do que foi descoberto possam ser claramente entendidos. Este nível de clareza ou “qualidade de comunicações” é referido como capacidade de ser interpretado. 110

Os passos envolvidos por um humano para avaliar os resultados de uma consulta de um processo de descoberta e, então, escolher um serviço como sendo capaz de atender requisitos de automação desejados é parte do processo de interpretação.

8.3.5 Princípio da Autonomia de Serviço Heurística: O projeto de serviços deve considerar o nível de controle sobre seu ambiente de execução subjacente. A autonomia de serviço refere-se ao: Nível de controle que se tem sobre um serviço em tempo de projeto (autonomia em tempo de projeto). Nível de controle que um serviço tem sobre seu ambiente de execução (autonomia em tempo de execução). Existem diferentes níveis atingíveis de autonomia em tempo de execução, dependendo da extensão do isolamento de uma dada implementação de um serviço. A aplicação desse princípio depende da quantidade de recursos compartilhados dos quais um serviço pode precisar ou depender. Qualquer parte do ambiente de um serviço sobre o qual este não tenha controle exclusivo pode comprometer a previsibilidade de seu desempenho e comportamento. Atingir um nível alto de autonomia é especialmente importante no caso de serviços agnósticos, tais como aqueles baseados nos modelos de serviços de entidade e utilitários. Ao compor serviços, a autonomia é automaticamente reduzida, na medida em que se aproximada dos níveis superiores em uma hierarquia de composição. •

Monitoramento de Serviço

Heurística: Definir métricas para monitoramento de serviços e utilizar ferramenta de monitoramento de serviços. Outra questão importante é a dificuldade em monitorar a quantidade de tráfego que um serviço está recebendo e de onde se não existe um software e métricas de monitoramento de SLA (Service-Level Agreement). Se o serviço é utilizado por diferentes clientes de diferentes domínios, é importante particularmente considerar que ele poderá ocorrer uma explosão de tráfego de forma repentina e inesperada devido a composição realizada por clientes fora do seu projeto. Outro problema com invocação direta é que ela adiciona complexidade na sua topografia sem dar visibilidade através de ferramentas. •

Princípio da Ausência de Estado de Serviço

Heurística: Evitar criação de serviços que guardam estados. Heurística: Em serviços onde é necessário guardar estados, pode-se utilizar a linguagem WS-BPEL para gerenciar o estado. Heurística: Utilizar a transferência de informações de estado (bases de dados, serviços utilitários, mensagens). 111

O gerenciamento de informações de estado em excesso pode comprometer a disponibilidade e a escalabilidade de um serviço. Serviços são desse modo, idealmente projetados para manter uma condição de independência de estado sempre que apropriado. Ao automatizar uma tarefa em particular, um serviço deve processar dados específicos desta tarefa. Estes são referidos como dados de estado. Um serviço pode ser ativo, mas pode não estar comprometido com o processamento de dados de estado. Nesta condição desocupada, o serviço é considerado independente de estado. Um serviço que processa ativamente ou retém dados de estado é classificado como dependente de estado. Apesar de serviços que gerenciam estados poderem ser disponibilizados, a criação dos mesmos deve ser evitada a fim de se garantir escalabilidade, independência entre instâncias do serviço, balanceamento de carga. A linguagem WS-BPEL pode ser utilizada implementar a lógica que necessidade guardar estados de serviços. Alternativamente, pode-se recorrer a um mecanismo de transferência de estado.

8.3.6 Padrões de Projeto para Projeto Orientado a Serviço Os seguintes padrões de projeto devem ser observados como parte do processo de Projeto Orientado a Serviço. Uma descrição mais aprofundada de cada um pode ser encontrada nas respectivas páginas do livro de Thomas Erl (Erl, SOA Design Patterns, 2009), indicadas ao lado de cada padrão: • • • • • • • • • • • • • • • • • • • • • • • • • • •

Abstração de Processo (182) Agente de Serviço (543) Camadas de Serviços (143) Capsula de Legado (441) Centralização de Contratos (409) Centralização de Lógica (136) Centralização de Metadados (280) Centralização de Modelo Canônico (200) Centralização de Políticas (207) Centralização de Processos (193) Centralização de Regras (216) Compensação de Transação com Serviços (631) Composição de Capacidade (504) Contratos Concorrentes (421) Contratos Desacoplados (401) Conversão de Protocolos (687) Encapsulamento de Serviços (305) Enfileiramento Assíncrono (582) Esquema Canônico (158) Fachada de Serviço (333) Implementação Redundante (345) Mensageria Confiável (592) Mensageria Direcionada por Eventos (599) Metadados de Mensageria (538) Normalização de Serviços (131) Protocolo Canônico (150) Recomposição de Capacidade (526) 112

• • • • • • •

Refatoração de Serviços (484) Replicação de Dados de Serviço (350) Repositório de Estado (242) Roteamento Intermediário (549) Transformação de Formatos de Dados (681) Transformação de Modelos de Dados (671) Transação Atômica com Serviços (623)

113

9 IMPLEMENTAÇÃO A implementação está dividida em dois processos, que são normalmente executados em paralelo: Implementar Serviço (executado para cada serviço) e Implementar de Solução.

9.1 Implementar Serviço Devido à ênfase em análise antecipada, modelagem, projeto e no uso de padronizações de projeto, o estágio de implementação de um projeto de SOA é muito mais controlado que em projetos tradicionais. Desse modo, a implementação de serviço é formatada pelas especificações de serviço e de seu projeto de lógica. O processo de implementação de serviço depende da tecnologia de implementação usada que, normalmente, vem acompanhada de suas próprias melhores práticas. De maneira geral, esta metodologia permanece independente da tecnologia. Entretanto, na Arquitetura de Referência, mais especificamente em sua Visão de Implementação, os padrões tecnológicos adotados estão especificados. Em continuidade, na prática, o processo Implementar Serviço tem sua execução dependente do modelo do serviço. A seguir, são apresentados os processos específicos para implementação de serviços agnósticos (entidade e utilitário, Figura 15) e não agnósticos (tarefa, Figura 16, e processo, Figura 17). Ainda, há processos específicos para implementação de serviços proxy (exposição de serviço no barramento de serviços), apresentado na Figura 18. Finalidade

Implementar serviços agnósticos, não agnósticos e proxy.

Entradas

Contrato de Serviço Modelo Canônico de Dados Perfil de Serviço Plano de Testes

Saídas

Código Fonte (Projeto IDE)

Perfis Participantes

R

Analista SOA

X

Arquiteto SOA

X

A

Auditor SOA

I

X

Desenvolvedor

X

Analista de Testes

X

Especialista em Governança SOA Gerente de Projeto

C

X X

114

Figura 15 - Implementar Serviço Utilitário e de Entidade

115

Figura 16 - Implementar Serviço de Tarefa

116

Figura 17 - Implementar Serviço de Processo

117

Figura 18 - Implementar Serviço de Barramento

118

Analisar Perfil de Serviço

Finalidade

Obter entendimento do negócio e do serviço a ser implementado

Entradas

Perfil de Serviço

Saídas

Avaliação de necessidade de desenvolver camada de persistência, desenvolver fachada de integração, composição entre serviços, dentre outros.

Perfis Participantes

R

A

C

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor

X

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

I

X X

O desenvolvedor avalia o perfil de serviço sob os aspectos de lógica de negócio, arquitetura, mensageria, etc.

119

Projetar Fachada de Banco de Dados (opcional)

Finalidade

Nesta etapa, o analista de BD, de posse das devidas ferramentas, implementa uma fachada para acesso a dados expondo o processamento de persistência do serviço

Entradas

Perfil de serviço

Saídas Perfis Participantes

R

Analista SOA

X

Arquiteto SOA

X

A

C

Auditor SOA

X

Administrador de Dados

X

Desenvolvedor

Descrição das Atividades

X

X

Especialista em Governança SOA Gerente de Projeto

I

X X

A fachada de banco de dados serve como uma camada de abstração do modelo de dados, abstraindo-se assim funções, pacotes, procedures etç..

120

Implementar Rotinas de Banco de Dados

Finalidade

Nesta etapa, o analista de BD, de posse das devidas ferramentas, implementa as rotinas de processamento de persistência do serviço

Entradas

Perfil de serviço

Saídas

Rotinas de Banco de Dados

Perfis Participantes

R

A

C

I

Analista SOA

X

X

Arquiteto SOA

X

X

Auditor SOA Desenvolvedor Administrador de Dados

X X X

X

X

Gerente de Projeto Descrição das Atividades

X Implementar as funcionalidades definidas no perfil de serviços, em nível de persistência.

121

Projetar Fachada de Integração

Finalidade

Projetar Fachada de Integração

Entradas

Perfil de serviço

Saídas Perfis Participantes

R

A

C

I

Analista SOA

X

X

Arquiteto SOA

X

X

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

X X

Nesta etapa, serão definidos os campos a serem expostos na fachada de serviço para exposição da lógica de solução legada, como por exemplo protocolo de acesso, autenticação e capacidade a ser exposta.

122

Implementar Fachada de Integração

Finalidade

Implementar Fachada de Integração

Entradas

Perfil de Serviço

Saídas

Fachada de Integração

Perfis Participantes

R

A

C

I

Analista SOA

X

X

Arquiteto SOA

X

X

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto

Descrição das Atividades

X X

A fachada de integração tem por objetivo expor dados de sistemas legados utilizando-se abstração necessária para que futuramente essas informações, geralmente em modelos e protocolos de comunicação diferentes dos modelos canônicos e protocolos propostos possam se comunicar com a solução, geralmente através de Capsula de Legados.

123

Implementar Adaptadores (opcional)

Finalidade

Implementar acesso às fachadas disponibilizadas

Entradas

Perfil de Serviço

Saídas

Adaptadores

Perfis Participantes

R

A

C

I

Analista SOA

X

X

Arquiteto SOA

X

X

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

X X

Implementar adaptadores que acessem os dados fornecidos pelas fachadas disponibilizadas, via adaptador.

124

Mapear transformações de dados

Finalidade

Mapear transformações de dados

Entradas

Perfil de Serviço

Saídas

Transformações de dados

Perfis Participantes

R

A

C

I

Analista SOA

X

X

Arquiteto SOA

X

X

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto

Descrição das Atividades

X X

O desenvolvedor SOA realiza o mapeamento entre o modelo de dados canônico e o modelo de dados providos pelas fachadas disponíveis. Na maioria das vezes há uma disparidade entre essas informações por virem de sistemas legados ou base de dados, essa transformação visa a congruência com o modelo canônico, facilitando assim a reutilização de tais serviços futuramente, uma vez que os modelos que foram transformados poderão ser reutilizados, não sendo necessária nova transformação, e sim um repasse direto de dados.

125

Implementar Fachada

Finalidade

Implementar Fachada

Entradas

Perfil de Serviço

Saídas Perfis Participantes

R

A

C

I

Analista SOA

X

X

Arquiteto SOA

X

X

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

X X

O desenvolvedor SOA deverá implementar o roteamento das mensagens provenientes do modelo canônico, disponibilizado pelo contrato, para os adaptadores. Também é necessário rotear o caminho inverso das mensagens.

126

Implementar Regras de Negócio

Finalidade

Implementar regras de negócio

Entradas

Regras de Negócio

Saídas Perfis Participantes

R

A

C

I

Analista SOA

X

X

Arquiteto SOA

X

X

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

X X

Implementar as regras de negócio alinhadas aos padrões definidos na arquitetura de referência.

127

Selecionar tecnologia de orquestração

Finalidade

Definição de tecnologia de orquestração de serviços

Entradas

Perfil de Serviço

Saídas Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa é definido o mecanismo de orquestração de serviços, uma vez que cenários como serviços de tarefa e processo geralmente são compostos por outros serviços. Nota: Em geral, deverá se optar por implementar serviços de tarefa como fluxos BPEL (visualizados através da interface de desenvolvimento) e processos de negócios como fluxos BPM/BPMS (visualizados nos Modelos de Processos de Negócio). Alguns processos de negócio automatizados (sem interface humana) são providos de forma otimizada por fluxos BPEL.

128

Definir os componentes da orquestração

Finalidade

Definir serviços da orquestração

Entradas

Perfil de Serviço

Saídas Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa os serviços que irão interagir entre si para a execução de cada capacidade deverão ser elencados, levandose em consideração as informações que deverão interagir entre si para a correta execução da capacidade. Ex: BPEL, BPMN

129

Construir lógica de orquestração

Finalidade

Especificação de lógica de orquestração

Entradas

Perfil de Serviço Modelo Canônico Contrato de Serviço

Saídas

Lógica de Orquestração

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Construir lógica de orquestração de serviços participantes de composição, sendo definido estratégias, padrões de projetos e melhores práticas aplicáveis para a interoperabilidade.

130

Construir lógica de processo

Finalidade

Implementar lógica de processo

Entradas

Perfil de Serviço Modelo Canônico Contrato de Serviço

Saídas

Desenho de negócio automatizado

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Construir a lógica do processo, conforme definido no perfil de serviço.

131

Definir objetos de negócio

Finalidade

Definir objetos de negócio

Entradas

Perfil de serviço

Saídas

Objetos de Negócio

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Objetos de negócio são modelos de entidades de negócio reusáveis no processo de negócio. A definição é normalmente realizada a partir de objetos existentes no modelo canônico de dados.

132

Definir dados de processo

Finalidade

Definir dados de estado do processo

Entradas

Perfil de serviço

Saídas

Objetos de dados do processo

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Definir os dados de estado do processo. Essas estruturas são responsáveis pelo armazenamento da informação de estado, sendo utilizadas para iniciar cada tarefa (humana ou serviço) e atualizadas após a execução destes.

133

Definir modelos de tarefa de usuário

Finalidade

Definir modelos de tarefa de usuário

Entradas

Capacidades dos serviços.

Saídas

Entrada de dados, manual, grupo, gerenciamento, aprovação, entres outros.

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa, deverá ser definido qual o tipo de informação o usuário deverá executar. Ex: entrada de dados, manual, grupo, gerenciamento, aprovação, entres outros.

134

Implementar tarefa de usuário

Finalidade

Implementar tarefas que terão interação com o usuário e não poderão ser automatizadas

Entradas

Perfil de Serviço

Saídas

Tarefa de usuário

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa, tarefas pertinentes a interação do usuário e que não poderão ser automatizadas deverão ser planejadas e implementadas. Essas tarefas serão o meio de comunicação a posterior camada de visão da solução.

135

Implementar composição de serviço

Finalidade

Implementar composição de serviço

Entradas

Contrato de Serviço Documento de Candidatos a Serviço ou Perfil de Serviço Arquitetura de Referência

Saídas

Lógica de orquestração

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Associação dos serviços que serão consumidos para execução de tarefas com maior contexto funcional compondo capacidades com diferentes separações de interesse.

136

Implementar regras de negócio centralizadas (opcional)

Finalidade

Implementar regras de negócio centralizadas

Entradas

Regras de Negócio

Saídas

Regras de negócio centralizadas

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Identificar formato da regra de negócio e avaliar tecnicamente qual a melhor opção para implementá-las, podendo ser fórmulas ou tabelas de decisão, por exemplo. (Opcional)

137

Implementar subprocesso (opcional)

Finalidade

Avaliar se existem processos que possam ser reaproveitados

Entradas

Fluxo automatizado

Saídas

Subprocessos

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Avaliar a existência de processos que possam ser reaproveitados durante o ciclo.

138

Definir Business Services

Finalidade

Definição de Business Services

Entradas

Perfil de Serviços

Saídas

Business Services

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Definir Business Service no projeto do Barramento, mediante ao contrato do serviço que terá suas capacidades expostas.

139

Definir Interface REST

Finalidade

Definir Interface REST conforme descrito no Perfil de Serviço.

Entradas

Perfil de Serviço

Saídas

Interface REST

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

C

Auditor SOA

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Definir Interface REST conforme descrito no Perfil de Serviço.

140

Desenvolver Transformações

Finalidade

Transformar modelos dispares

Entradas

Modelos canônicos Perfil de Serviços Sistema Legado Adaptadores de Dados

Saídas

Transformação de dados

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Apesar da recomendação de evitar transformações, em alguns cenários, transformação de modelos e protocolos são necessários para a correta execução da capacidade. Cenários como transformação de dados provenientes de adaptadores de banco de dados, sistemas legados dentre outros usualmente possuem dados em formato diferente ao definido canonicamente, sendo a transformação necessária para comunicação.

141

Desenvolver Roteamento

Finalidade

Implementar roteamento

Entradas

Perfil de Serviço

Saídas

Mensagens de roteamento

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Definir o roteamento de mensagens entre proxy e business services.

142

Desenvolver Políticas (opcionais)

Finalidade

Definir políticas de serviço

Entradas

Perfil de Serviço

Saídas

Politicas de Serviços definidas

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Adicionar políticas do serviço conforme descrito no perfil de serviço.

143

Tratar erros e exceções

Finalidade

Manipulação de erros e exceções

Entradas

Perfil de Serviço Contrato de Serviço

Saídas

Erros e exceções tratados

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Quando da execução de um fluxo cenários inesperados podem ocorrer, é responsabilidade do Desenvolvedor ponderar em quando os cenários inesperados devem ser tratados ou passados adiante.

144

Testar Serviço (Unitário)

Finalidade

Testar implementação de serviço

Entradas

Endpoint de serviço Perfil de Serviço

Saídas

Projeto IDE (código fonte)

Perfis Participantes

R

Analista SOA

X

Arquiteto SOA

X

A

C

Auditor SOA

X

Desenvolvedor

X

Analista de Testes

X

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

I

X X

X

Após a implementação da capacidade é importante validar se a capacidade se comporta como o esperado em dados cenários.

145

Apoiar Implementação

Finalidade

Apoiar a implementação

Entradas

Perfil de Serviço

Saídas Perfis Participantes

R

Analista SOA

X

Arquiteto SOA

X

A

Desenvolvedor Gerente de Projeto

Descrição das Atividades

C

I

X X Nesta etapa, o analista de governança SOA em conjunto com os arquitetos e analistas SOA, avaliam se os resultados dos produtos estão de acordo com os padrões definidos.

146

Aprovar Implementação

Finalidade

Aprovar a implementação disponibilizada.

Entradas

Perfil de Serviço Projeto IDE (código fonte)

Saídas

Aprovação

Perfis Participantes

R

Analista SOA

X

Arquiteto SOA

X

A

C

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto

Descrição das Atividades

I

X X

Nesta etapa, o analista de governança SOA, avalia se os resultados dos produtos estão de acordo com os padrões definidos.

147

9.1.1 Visibilidade do Processo de Desenvolvimento A Figura 19 apresenta a visão dos artefatos de entrada e saída para este processo.

Figura 19 - Entradas e Saídas da fase Implementar Serviço

148

9.2 Implementar Solução Devido ao esforço realizado antecipadamente por parte do Analista SOA e Arquiteto SOA a etapa de implementação da Solução tem um peso muito menor em relação a outras abordagens, uma vez que os modelos de negócio, regras de negócio, protótipos de telas e demais definições já foram analisados. Nesta etapa, a camada de apresentação é realizada, bem como suas interações com as camadas de processo e de serviço, de modo a agrupar todos os componentes da solução. Finalidade

Implementar a solução completa de automação

Entradas

Modelo de Processo de Negócio Modelo de Informação Regras de Negócio Protótipo de Telas Perfis de Interface Perfis de Serviço Arquitetura da Solução Plano de Testes

Saídas

Projeto IDE (código fonte)

Perfis Participantes

R

A

C

Analista SOA

X

Arquiteto SOA

X

Auditor SOA Desenvolvedor

I

X X

Especialista em Governança SOA

X

Gerente de Projeto

X

149

Figura 20 - Implementar Solução

150

Analisar Arquitetura da Solução

Finalidade Entradas

Arquitetura da Solução Perfil de Serviço Protótipo de Tela

Saídas

Arquitetura de Solução revisada

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

C

Auditor SOA

I

X

Desenvolvedor

X

Especialista de Infraestrutura SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa o desenvolvedor irá buscar no perfil serviço as capacidades a serem disponibilizadas através de camada de visão.

151

Implementar Componentes de Visualização (telas)

Finalidade

Desenvolver componentes de visualização

Entradas

Perfil de Serviço Protótipo de Telas

Saídas

Componentes de visualização (telas)

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista de Infraestrutura SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Nesta etapa os componentes de interface gráfica são padronizados quanto ao uso. Ex: FW3, frameworks de camada de visão.

152

Implementar Controladores de Apresentação

Finalidade

Implementar controladores

Entradas

Perfil de Serviço Protótipo de Telas

Saídas

Controladores

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista de Infraestrutura SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Em uma solução MVC a camada de Controladoria é a intermediária entre a camada de Modelo e Visão. No caso da implementação proposta, os modelos canônicos atuam como a camada de Modelo, invocando-se após isso as capacidades de cada serviço para execução das operações desejadas.

153

Implementar Bindings de serviços

Finalidade Entradas Saídas

Definir a comunicação entre camada de visão e parâmetros necessários para comunicação com serviços Perfil de Serviço Protótipo de Telas Bindings de serviços

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista de Infraestrutura SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Os bindings são as ligações necessárias para a comunicação dos parâmetros passados via interface ao serviço que se deseja consumir.

154

Implementar Políticas (opcional)

Finalidade

Definir políticas de serviço

Entradas

Perfil de Serviço Políticas definidas

Saídas

Politicas implementadas

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista de Infraestrutura SOA

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Adicionar políticas à camada de visão conforme descrito no perfil de serviço.

155

Testar Solução

Finalidade

Testar implementação de solução

Entradas

Modelo de Processo de Negócio Modelo de Informação Regras de Negócio Perfis de Interface Perfis de Serviço Arquitetura da Solução Plano de Testes

Saídas

Projeto IDE (código fonte)

Perfis Participantes

R

A

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

C

I

X

Desenvolvedor

X

Especialista em Governança SOA

X

Gerente de Projeto

X

Descrição das Atividades

Após a implementação da tela é importante validar se a mesma se comporta como o esperado em dados cenários.

156

Aprovar Implementação

Finalidade

Aprovar a implementação disponibilizada.

Entradas

Modelo de Processo de Negócio Modelo de Informação Regras de Negócio Protótipo de Telas Perfis de Serviço Arquitetura da Solução Projeto IDE (código fonte)

Saídas

Aprovação

Perfis Participantes

R

A

C

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor

X

Especialista em Governança SOA Gerente de Projeto Descrição das Atividades

I

X X

Nesta etapa, o analista de governança SOA, avalia se os resultados dos produtos estão de acordo com os padrões definidos.

157

Apoiar Implementação

Finalidade

Apoiar a implementação

Entradas

Modelo de Processo de Negócio Modelo de Informação Regras de Negócio Protótipo de Telas Perfis de Serviço Arquitetura da Solução

Saídas Perfis Participantes

R

Analista SOA

X

Arquiteto SOA

X

Descrição das Atividades

A

C

I

Diferentemente de outras abordagens, em uma Arquitetura Orientada a Serviços Analistas SOA e Arquitetos SOA trabalham em conjunto para a elaboração dos contratos, assim como nas etapas anteriores, onde, apesar do Analista SOA ser responsável por elencar os serviços candidatos, o Arquiteto SOA participava ativamente na compreensão como um todo. Nesta etapa o Arquiteto atua como referência ao Desenvolvedor, ajudando-o na compreensão da arquitetura, melhores padrões de projeto e melhores práticas como um todo.

158

Visibilidade do Processo de Desenvolvimento A Figura 21 apresenta a visão dos artefatos de entrada e saída para este processo.

Figura 21 - Entradas e Saídas do processo Implementar Solução

159

10 TESTES O processo de desenvolvimento de software envolve uma série de atividades onde as chances de falhas humanas são bastante significativas. Erros podem surgir nas diversas etapas do ciclo de vida do produto, desde a sua concepção (especificação dos requisitos) até estágios posteriores (análise, design, implementação) do desenvolvimento [Pressman, Engenharia de Software, 7ª Edição]. Dentro deste contexto, surge a necessidade de desenvolvimento de uma estratégia para testes de software. Antecipadamente, diversas tratativas sobre o que se remete aos princípios de testes estão determinadas nessa Metodologia de Desenvolvimento SOA (atividades, tarefas e notas descritas nos tópicos 9.1.e 9.2). Esses tratamentos encontram, ainda, suporte em diversas assertivas e diretrizes apontadas na Arquitetura de Referência SOA. As assertivas na AR-SOA dão suporte ao uso de ferramentas específicas selecionadas para atendimento aos devidos fins de testes. O que se espera é que nas atividades envolvidas no processo de desenvolvimento de uma aplicação SOA (assim como para uma solução tradicional) exista a formação de roteiro e scripts mínimos e específicos que possam ser executados, de forma que cada elemento da solução como serviços ou composições, fluxos representados pelos serviços de tarefas (BPEL) e fluxos de processos de negócio visualizados junto ao Modelo de Processos de Negócio (que interligam telas ou processos de negócio mais complexos) possam ser testados completamente ao final de todo ciclo de desenvolvimento de uma solução, bem como a solução como um todo. Assim, a estratégia de teste de software incorpora atividades que incluem planejamento de testes, projetos de casos de testes, execução dos testes e coleta e avaliação dos dados resultantes. A estratégia de testes deve ser elaborada de forma a acomodar testes de baixo e alto nível. Os testes de baixo nível têm por objetivo verificar a implementação de um serviço específico, enquanto os testes de alto nível buscam validar as principais funções do sistema de acordo com a especificação dos requisitos (Documento de Modelagem de Negócio e Regras de Negócio). O processo de teste consiste das seguintes atividades, que apesar de serem apresentadas sequencialmente, podem ser realizadas de forma concorrente: • • •

Planejar Testes Implementação e Execução dos Testes Validação e Documentação

Diferentes objetivos podem ser almejados com a execução de testes: • • • •

Encontrar defeitos nos serviços. Ganhar confiança sobre o nível de qualidade nos serviços Prover informações para realização das correções necessárias Garantir uma qualidade de desempenho mínimo para o serviço

De acordo com International Software Testing Qualifications Board (ISTQB), “no processo de teste, diferentes pontos de vista levam a diferentes objetivos. Por exemplo, no teste feito em desenvolvimento, o principal objetivo pode ser causar o maior número de falhas possíveis, de modo que os defeitos no software possam ser identificados e resolvidos. Em alguns casos o

160

principal objetivo do teste pode ser avaliar a qualidade do software (não com a intenção de encontrar defeitos), para prover informações sobre os riscos da implantação do sistema em um determinado momento aos gestores” [Syllabus,2011]. Reconhecido esses princípios, entende-se que para realização de teste finais - e independentes da inferência do processo de desenvolvimento - os documentos de entrada do próprio processo de desenvolvimento podem dar suporte à essa atividade finalística, a saber: •

Perfis de Serviços: documentação fundamental na definição dos serviços e suas capacidades / operações, e que detalha todas as restrições formais no atendimento de cada uma dessas (capacidades / operações).



Documento de Regras de Negócio: composto pela lista de requisitos funcionais e não funcionais a serem compridos pela solução.



Perfil de Interfaces (regras de validação nas interfaces): define padrões de tratamento de entrada de dados na interface.



Plano de Teste: define as estratégias de testes e de avaliação a serem adotadas para testar serviços e composições, integrações e desempenho. Podem, ainda, fornecer uma ideia das possíveis deficiências arquiteturais a serem avaliadas com mais profundidade (agregadas em processos / subprocessos de negócio). O Plano de Testes dá suporte a coordenação e condução dos testes, pois explicita ainda os níveis de teste a serem abordados de acordo com os tipos de testes a serem executados (unitários (serviços e composições), integrações, desempenho e aceitação), o escopo de requisitos à serem testados. Por fim, no Plano de Testes são definidas as ferramentas e ambientes a serem utilizados para a realização dos cenários de teste referentes a cada processo / subprocesso do negócio, com a devida disponibilização de Manuais / Especificações da Interface de das Ferramentas de Suporte a Testes.

Ainda, antes do fechamento do processo metodologicamente imposto nessa MDS-SOA, testes de carga finalísticos são executados de acordo com requisitos específicos analisados e desenvolvidos durante a atividade de Projeto de Serviços de forma a dar suporte ao cumprimento da avaliação dos requisitos não-funcionais de desempenho em carga.

10.1 Testar Serviço A Figura 22 apresenta o modelo de processo para execução de testes. As descrições das atividades são apresentadas a seguir.

161

Figura 22 - Testar Serviço

162

Planejar Testes de Serviços

Finalidade

O planejamento de testes tem por finalidade definir os roteiros de teste (cenários) e casos de testes a serem seguidos como referência durante a execução dos testes (e que é acompanhado do plano de testes que contém a estratégia e a descrição do ferramental utilizado). Nesta etapa são definidos o escopo e casos gerais (scripts ou não) para a execução de cada área de testes. O planejamento dos testes é uma atividade que pode ser iniciada durante as atividades de Modelagem de Negócio, e tem como elemento / documento de referência o Plano de Testes.

Entradas

Documento de Regras de Negócio Modelo de Processo de Negócio (BPM/BPMS) Perfis de Interface Perfil do Serviço Plano de Testes (referencial) Modelo de Informação

Saídas

Roteiro de Testes (incluindo os casos de teste)

Perfis Participantes

R

A

Analista de Processos de Negócio Analista de Testes

C

I

X X

Analista SOA

X X

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

X

Gerente de Projeto Área de Negócio / Área Gestora

Descrição das Atividades

X X

X O planejamento dos testes envolve a construção dos Roteiros de Testes (em conformidade com o Plano de Testes, e segundo as necessidades a serem realizadas, e são concretizados nos Casos de Testes). O Plano de Testes é um documento global que contém os elementos necessários para execução de quaisquer testes gerais durante todo o ciclo de desenvolvimento SOA. Ou seja, 163

o Plano de Teste é um documento de referência a ser utilizada na execução de quaisquer testes que envolva solução SOA (template). O Roteiro de Testes agrega os cenários de testes a serem realizados (na forma de Casos de Testes) e que contém os elementos necessários para definição do escopo do teste específico a ser realizado (template). O caso de teste é um conjunto de ações a serem executadas para a validação de uma funcionalidade específica. Tem por objetivo descrever uma condição particular a ser testada. Neste documento devem ser especificados os valores de entrada, pré-condições para execução do teste e os resultados esperados. A criação dos casos de teste pode, ainda, contribuir na identificação de cenários não tratados pelos requisitos do software. Os casos de teste visam garantir a realização dos princípios de testes elementares e/ou testes em composições de serviços e/ou Fluxo BPEL (template). Para cada iteração de testes (cada serviço ou grupo destes que se refiram a serviços de tarefa - BPEL, de entidade ou utilitário), são elaborados Roteiros de Testes que são a descrição dos casos de testes (cenários) a serem realizados (e/ou transformados em scripts), e é composto por um conjunto de condições usadas para testes unitário (capacidade de serviço), principalmente com o foco na descrição de condições particulares a serem testadas. A criação dos casos de teste pode, ainda, contribuir na identificação de cenários não tratados pelos requisitos levantados na fase de Análise Orientada a Serviço. Ainda, um roteiro de Teste descreve os passos necessários para a execução de um caso de teste ou um grupo de casos de testes.

164

Realizar Testes Unitários (Serviços, Composições e Fluxos BPEL) Realizar Testes Unitários (Serviços, Composições e Fluxos BPEL)

Finalidade

Realizar testes em nível estrutural da implementação do serviço que deverão ser aplicados por capacidade de forma a cobrir todos os cenários levantados em fase de Modelagem de Negócio.

Entradas

Documento de Regras de Negócio Modelo de Processo de Negócio (BPM/BPMS) Perfis de Interface Perfil do Serviço Plano de Testes (referencial) Roteiro de Teste Modelo de Informação

Saídas

Resultado dos documentação.

Perfis Participantes

testes

para

posterior R

registro A

Analista de Processos de Negócio Analista de Testes

C

/ I

X X

X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor SOA Gerente de Projeto

Descrição das Atividades

X

X

X X

Realizar testes que essencialmente referem-se as atividades de testes de caixa branca, visando garantir os princípios de manutenibilidade e legibilidade dos códigos de serviços e composições de serviços ou dos fluxos de serviços de tarefa, bem como – e fundamentalmente – a execução de testes de caixa preta que serão realizados pela injeção de mensagens em todas as capacidades de serviços segundo os casos de testes elaborados e análise dos resultados obtidos.

165

Realizar Testes Mínimos de Desempenho

Finalidade

Esses testes mínimos antecedem os testes de integração pois visa garantir, mesmo em ambiente de desenvolvimento, um tempo aceitável para realização de cada serviço ou capacidade de serviço. Dependendo de seu resultado, pode envolver a interrupção dos testes e ou completa ou parcial de refatoração do serviço ou a aplicação de padrões de projeto SOA que possibilitem o atingimento de princípios mínimos aceitáveis de escalabilidade, disponibilidade e previsibilidade computacional.

Entradas

Documento de Regras de Negócio Modelo de Processo de Negócio (BPM/BPMS) Perfis de Interface Perfil do Serviço Plano de Testes (referencial) Modelo de Informação

Saídas

Resultados dos testes elementares de desempenho realizados

Perfis Participantes

R

A

Analista de Testes

X

X

C

I

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

Descrição das Atividades

X

X

Testar o desempenho de uma determinada capacidade pode ser um grande desafio, uma vez que os ambientes de desenvolvimento, homologação e produção podem possuir arquiteturas e especificações diferentes, além do que do SLA poder não estar completamente definido. Porém existem desempenhos mínimos que uma determinada capacidade deve prover de forma que o conjunto ou parte estejam “funcionando adequadamente”, ou seja por tempo excessivo de processamento de dados ou seja, por perca de dados que podem não ser detectadas na fase de implementação. Porém, apesar de ser possível a avaliação de um desempenho mínimo aceitável, o verdadeiro desempenho da solução somente poderá ser avaliado em etapas posteriores, após integração de todos os elementos que compõem a solução, e sob ambientes de homologação e /ou produção.

166

Validar e Documentar os Resultados de Testes de Serviços

Finalidade

Esta atividade tem como objetivo dar clareza aos desenvolvedores dos resultados obtidos acerca dos testes unitários e de desempenho mínimo dos serviços / capacidades, bem como estabelece uma documentação formal de testes em geral.

Entradas

Resultados dos testes

Saídas

Relatório de Execução de Testes (template)

Perfis Participantes

R

A

Analista de Testes

X

X

Analista SOA

C

I

X

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X X

Área de Negócio / Área Gestora

X

Esta atividade tem como ponto focal a documentação com a devida evidenciação (e.g. telas de erro, lista de registros não gravados, etc) dos erros encontrados bem como a sua quantificação para avaliação dos retrabalhos / esforços adicionais necessários.

Descrição das Atividades

Tem por função suportar a realimentação das atividades inerentes ao desenvolvimento do produto na correção das falhas e /ou identificação de requisitos não cumpridos, isto é, atender aos princípios de MANUTENÇÃO CORRETIVA. Em determinadas situações, que envolvam uma revisão intempestiva de regras de negócio ou adequação de nova infraestrutura, podem atender também os princípios de MANUTENÇÃO ADAPTATIVA.

167

Figura 23 - Realizar Testes Unitários

168

Validar entradas/saídas/Exceções

Finalidade

Validar entradas, saídas e Exceções

Entradas

Documento de Regras de Negócio Modelo de Processo de Negócio (BPM/BPMS) Perfis de Interface Perfil do Serviço Plano de Testes (referencial) Roteiro de Teste Modelo de Informação

Saídas

Resultado dos testes para posterior registro / documentação.

Perfis Participantes

R

A

Analista de Testes

X

X

C

I

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor SOA Gerente de Projeto

X

X

X X

Durante a execução dos testes unitários, devem ser avaliados os possíveis fluxos de dados que atravessam a interface de cada capacidade de cada serviço (entrada / processamento e saída), pois, antes que qualquer outro princípio de teste possa ser considerado válido, é necessário, antes, garantir que esse processamento ocorra corretamente. Descrição das Atividades

Assim, os casos de testes devem incluir valores de dados no cumprimento de situações de conformidade com os requisitos – DÁDOS VÁLIDOS - bem como prever situações de exceção, onde os dados não estão em conformidade – DADOS INVÁLIDOS (e.g. abaixo ou acima de máximos e mínimos de valores). Essas situações derivam nos dois passos explicitados a seguir.

169

Verificar dados válidos

Finalidade

Verificar dados válidos

Entradas

Roteiro de Testes Documento de Regras de Negócio

Saídas

Regras de Negócio Validadas Erros Identificados

Perfis Participantes

R

A

Analista de Testes

X

X

C

I

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor SOA Gerente de Projeto

X

X

X X

Dados válidos são entradas e saídas esperadas pelo sistema, e pertencem ao atendimento de requisitos segundo um fluxo de processo padrão (“caminho feliz”). Descrição das Atividades

A corretude e expectativas de saídas esperadas se encontram definidos junto aos casos de testes, e geram resultados que devem ser documentados de forma a evidenciar o correto funcionamento do serviço.

170

Verificar dados Inválidos

Finalidade

Verificar dados Inválidos

Entradas

Roteiro de Testes Documento de Regras de Negócio

Saídas

Regras de Negócio Validadas Erros Identificados

Perfis Participantes

R

A

Analista de Testes

X

X

C

I X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor SOA

X

Gerente de Projeto

X

X X

Dados inválidos são entradas e saídas de dados não esperados pelo sistema. Neste sentido existem duas situações a serem tratadas: • Descrição das Atividades •

Ou o sistema não consegue processar o dado (gerando uma exceção). Ou o sistema comporta a entrada de dados como se não houvessem suas restrições (restrição / regra de negócio não desenvolvida).

Esses também geram resultados que devem ser documentados de forma a evidenciar o incorreto funcionamento do serviço.

171

Verificar consistência

Finalidade

Verificar consistência

Entradas

Plano de testes, RN e Perfil de serviço

Saídas

Relatório de testes

Perfis Participantes

R

A

Analista de Testes

X

X

C

I

Analista SOA

X

Arquiteto SOA

X

Auditor SOA

X

Desenvolvedor SOA Gerente de Projeto

Descrição das Atividades

X

X

X X

Verificar se todos os testes foram realizados satisfatoriamente, e se cada capacidade atende o especificado no Roteiro de Testes (e assim atende as Regras de Negócio e o Perfil de Serviço). Essa é a atividade que visa realizar o processo de síntese do observado na aplicação de dados válidos (“caminho feliz”) ou de dados inválidos (“caminhos alternativos”).

172

10.2 Testar Integração A Figura 24 apresenta o modelo de processo para execução de testes de integração e de aceitação / homologação, e suas atividades são descritas a seguir.

Figura 24 - Testar Integração

173

Planejar Testes de Integração

O planejamento de testes de integração tem por finalidade analisar as respostas esperadas na execução de fluxos de processo de negócio (BPM), fundamentalmente, no que se refere a interação / composição de tarefas que envolvem serviços genéricos (tarefas, entidade e utilitários – testados nos Testes Unitários) em conjunto com as atividades humanas (interfaces). Finalidade

Nesta etapa são planejadas as atividades desses testes sobre a forma de elaboração de cenários de manipulação de interfaces e as respostas corretas, tanto no conjunto da execução, bem como em processos referentes ao acesso à infraestrutura (persistência de dados, notificações aos usuários, entre outros). Como qualquer Planejamento de Testes, envolve os documentos Plano de Testes (template), Roteiro de Testes (template) e os seus Casos de Testes (template), anexos.

Entradas

Saídas

Documento de Regras de Negócio Modelo de Processo de Negócio (BPM/BPMS) Perfis de Interface Perfil do Serviço Plano de Testes (referencial) Modelo de Informação Roteiro de Testes

Perfis Participantes

R

A

Analista de Processos de Negócio Analista de Testes

C

I

X X

Analista SOA

X X

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

X

Gerente de Projeto Área de Negócio / Área Gestora

X X

X

174

O planejamento dos testes de integração segue os ritos das atividades inerentes ao planejamento dos testes unitários, usando-se até mesmo dos mesmos documentos para sua realização (entrada) e suas evidenciações (saída).

Descrição das Atividades

Porém, para cada iteração de testes (cada fluxo de processo de negócio BPM/BPEL), são elaborados Roteiros de Testes que são a descrição dos casos de testes (cenários) a serem realizados, e é composto por um conjunto de condições usadas para testes dos processos, principalmente com o foco na descrição de condições particulares a serem testadas (até mesmo regras de restrições nas interfaces). A criação dos casos de teste pode, ainda, contribuir na identificação de alternativas de melhor uso das interfaces na forma de MANUTENÇÂO ADAPTATIVA.

175

Realizar Testes de Integração Realizar Testes de Integração

Finalidade

Os testes de integração referem-se à interligação / composição / integração de serviços sob fluxos dos processos de negócio na forma de coreografias entre os serviços elementares, composições e atividades humanas (interfaces). Assim, testes de integração são testes de caixa preta, e que são realizados após a etapa de testes de serviços, e visam validar a conformidade da solução quando a comunicação entre/com outros serviços.

Entradas

Documento de Regras de Negócio Modelo de Processo de Negócio (BPM/BPMS) Perfis de Interface Perfil do Serviço Plano de Testes (referencial) Roteiro de Teste Modelo de Informação

Saídas

Resultado dos testes para posterior registro / documentação.

Perfis Participantes

R

A

Analista de Processos de Negócio Analista de Testes

C

I

X X

X

Analista SOA

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

X

Gerente de Projeto Área de Negócio / Área Gestora

Descrição das Atividades

X X

X Os testes de integração são testes de mais alto nível e somente fazem sentido após os testes unitários dos elementos que compõem cada fluxo de negócio. Admitemse passos antecipados de testes de apenas pequenos grupos de tarefa de fluxo (subtarefas) antes que todos os serviços terem sidos testados (obviamente que os serviços elementares usados nesse grupo já deverão estar testados).

176

Assim, de posse do documento de Modelagem de Negócio, Regras de Negócio, Perfis de Interface e Perfis de Serviços, o teste se dá pela execução total ou parcial de fluxo de processos de negócio usando as interfaces devidamente conectadas e já construídas antecipadamente. Alguns princípios de facilidade de uso podem modificar requisitos iniciais de interface e funcionamento, que podem causar impacto nos desenvolvimentos já realizados, na forma de uma MANUTENÇÃO ADAPTATIVA.

177

Realizar Testes de Desempenho em Carga

Esses testes visam garantir que, em ambiente com carga compatível com a carga real do sistema, os processos de negócio serão executados em um tempo de execução mínimo aceitável (SLA).

Finalidade

Idealmente esses testes ocorrem em ambiente de homologação, com dados compatíveis em volume e dispersão (“em Carga”) ao ambiente de produção. Dependendo de seu resultado, pode envolver a completa ou parcial refatoração do serviço ou aplicação de padrões de projeto SOA que possibilitem o atingimento de princípios de escalabilidade, disponibilidade e previsibilidade computacional.

Entradas

Documento de Regras de Negócio Modelo de Processo de Negócio (BPM/BPMS) Perfis de Interface Perfil do Serviço Plano de Testes (referencial) Roteiro de Testes

Saídas

Resultados dos testes mínimos de carga e desempenho realizados

Perfis Participantes

R

A

Analista de Testes

C

I

X

X

Analista SOA

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

Analista de Testes

X

X

Gerente de Projeto

X

Área de Negócio / Área Gestora

Descrição das Atividades

X

X

Esta etapa envolve a execução do processo de negócio (integrado) sem o foco no seu correto funcionamento, mas sim no atendimento de seleções e transporte de um volume de dados massivo (e.g. escolher situações aonde irão ser tratados o maior volume de dados possível). Um tempo excessivo de processamento de dados pode gerar a necessidade de implementação de melhorias ou otimizações nos processos sistêmicos testados.

178

Desta forma, se os tempos de respostas nessas situações são considerados “intratáveis”, isto pode resultar na necessidade de aplicação de princípios de MANUTENÇÂO CORRETIVA. Se os tempos são considerados “razoáveis”, isto pode implicar no apontamento da necessidade da execução de princípios de MANUTENÇÂO ADAPTATIVA.

179

Validar e Documentar os Resultados de Testes de Integração

Finalidade

Esta atividade tem como objetivo dar clareza aos desenvolvedores dos resultados obtidos a cerca dos testes de integração, com o apontamento de medidas que visem a boa execução dos testes de aceitação / homologação.

Entradas

Resultados dos testes

Saídas

Relatório de Execução dos Testes (template)

Perfis Participantes

R

A

Analista de Processos de Negócio Analista de Testes

C

I

X X

Analista SOA

X X

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X X

Área de Negócio / Área Gestora

X

Esta atividade tem como ponto focal a documentação com a devida evidenciação (e.g. telas de erro, registro de tempo decorrido / timeout, etc) dos erros encontrados bem como a sua quantificação para avaliação dos retrabalhos / esforços adicionais necessários. Descrição das Atividades

Tem por função suportar a realimentação das atividades inerentes ao desenvolvimento do produto na correção das falhas e /ou identificação de requisitos não cumpridos, isto é, atender aos princípios de MANUTENÇÃO CORRETIVA. Em determinadas situações, que envolvam uma revisão intempestiva de regras de negócio, podem atender também os princípios de MANUTENÇÃO ADAPTATIVA.

180

Realizar Teste de Aceitação / Homologação

Realizar Testes de Aceitação / Homologação

Finalidade

Permitir ao usuário de negócio avaliar se solução atende aos requisitos de negócio definidos durante todo ciclo de vida de desenvolvimento da solução.

Entradas

Solução implantada em Ambiente de Homologação Modelos de Processos de Negócio (BPM/BPMS) Documento de Regras de Negócio Perfis de Interface

Saídas

Relatório de Testes. Termo de Aceite emitido pelo usuário de negócio

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

X

X

Analista SOA

X

X

X

Analista de Testes

X

X

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora Administrador de Dados

Descrição Atividades

das

X

X

X X

O objetivo do Teste de Aceitação / Homologação é garantir que todos os requisitos funcionais e não funcionais estão sendo atendidos pelo sistema, bem como a correta realização junto aos registros na infraestrutura (banco de dados, envio de e-mail). Essa correção deve atender aos requisitos como identificados junto ao levantamento do negócio (documento de Modelagem de Negócio e Regras de Negócio). A execução do Teste de Aceitação/Homologação é responsabilidade e propriedade do cliente ou usuário de negócio. O teste de aceitação tem início após concluídos os testes unitários e de integração e quando todos os resultados de testes tiverem sido validados/aprovados (na completa corretude de execução) e quando quaisquer ajustes adicionais ou erros de interface de usuário identificados em fases de testes anteriores já tiverem sido corrigidos. 181

De maneira geral, um teste de aceite é um encerramento no processo de entrega do produto (podendo, porém, apontar novas necessidades de ajuste), sendo a solução ou processo de negócio considerado como validado com sucesso quando funciona conforme esperado pelo usuário e apresenta conformidade com os requisitos de negócio.

182

Figura 25 - Testes de Integração

183

Preparar Testes de Integração

Finalidade

Avaliar e dar integridade as necessidades de dados e de serviços de infraestrutura suplementares, de forma ser possível realizar os testes de integração

Entradas

Solução implantada em Ambiente de Homologação Modelos de Processos de Negócio (BPM/BPMS) Documento de Regras de Negócio Perfis de Interface Roteiro de Teste Perfis de Serviço

Saídas

Checklist informal do estabelecimento das necessidades de todos os recursos (e.g., de infraestrutura, de dados, etc) para realização dos testes de integração.

Perfis Participantes

R

A

C

Administrador de Dados Analista de Testes

I X

X

X

Analista SOA

X

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Desenvolvedor SOA

X

Gerente de Projeto

X

X

Administrador de Dados

X

X

Descrição das Atividades

X

X

Nesta atividade todos os papéis responsáveis pela execução completa da solução ou de um processo de negócio são responsáveis por prover as necessidades mínimas para realização completa e integral dos testes de integração. Em adição, roda essa preparação irá preparar o ambiente para a realização dos Testes de Aceitação / Homologação

Testes de Atividades de Serviço (Caminhos das mensagens)

Finalidade

Realiza os testes de todos os caminhos possíveis a serem realizados pelo fluxo de processos de negócio / da solução

Entradas

Fluxos BPM Documento de Regras de Negócio Perfil de Interfaces Perfil de Serviços Roteiro de Testes

Saídas

Relatório de Execução de Testes (template)

Perfis Participantes

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Auditor SOA

X

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

X

Área de Negócio / Área Gestora

X

X

Administrador de Dados

X

X

Analista de Testes

Descrição das Atividades

R

X

A

X

Essa atividade compreende a execução de todas as rotas possíveis do fluxo de processo / solução. "A cadeia de troca de mensagens realizada em suporte à execução de tarefas específicas (ou processos de negócio) é referida como uma atividade de serviço. Uma atividade de serviço representa apenas a troca de dados em mensagens com/entre serviços. Esse nível de abstração limita a consciência acerca da natureza do processamento subjacente de serviços participantes em composições (serviços e composições tratados junto aos testes unitários)." (SOAGlossary.com). Neste sentido, em relação à uma composição, uma atividade de serviço representa os cenários de execução que ocorrem entre serviços compostos e/ou complexos (e.g. um processo de negócio ou uma solução).

185

Uma atividade de serviço representa essencialmente "o que acontece" quando uma instância de uma composição de serviços (ou processo de negócio) está em execução. Uma parte fundamental do projeto SOA é o mapeamento de diferentes cenários de execução de atividades de serviços possíveis. (T. Erl., Módulo 3 – Certificação SOASchool) Neste sentido, os fluxos idealizados são avaliados no que se refere a troca de mensagens entre os mesmos. São então “ignorados” os processamentos realizados na lógica de cada serviço e tratado se os serviços se interagem plenamente. Um dos pontos fundamentais dessa atividade é validar as respectivas interações entre processos sistêmicos e as respostas apresentadas nas interfaces.

186

Testes de Casos-Limites e Notificações (Regras de Negócio)

Finalidade

Realiza os testes das situações de interfaces e processos que o sistema deve tratar e das corretas notificações ao usuário que uma atividade sistêmica do mesmo afeta diretamente uma ou mais Regras de Negócio.

Entradas

Fluxos BPM Documento de Regras de Negócio Perfil de Interfaces Perfil de Serviços Roteiro de Testes

Saídas

Relatório de Execução de Testes (integração)

Perfis Participantes

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Auditor SOA

X

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

X

Área de Negócio / Área Gestora

X

X

Administrador de Dados

X

X

Analista de Testes

R

X

A

X

Essa atividade compreende a execução de testes sobre as situações ao qual o usuário deve ser corretamente informado que está “ferindo” alguma Regra de Negócio (e.g. Alocar um Magistrado que se encontra no seu período de férias). Descrição das Atividades

Em diversas situações sistêmicas, os impeditivos oriundos de Regras de Negócio devem ser tratados antecipadamente, porém, nem sempre a solução é possível. Assim, o usuário deve ser corretamente informado do impeditivo, evitando que o sistema registre o evento.

187

Testes de Usabilidade (Regras de Negócio e Interface)

Finalidade

Realiza os testes de forma a garantir que a usabilidade do sistema ou processo de negócio está adequada as condições impostas pelos diversos usuários do sistema.

Entradas

Fluxos BPM Documento de Regras de Negócio Perfil de Interfaces Perfil de Serviços Roteiro de Testes

Saídas

Relatório de Execução de Testes (integração)

Perfis Participantes

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Auditor SOA

X

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

X

Área de Negócio / Área Gestora

X

X

Administrador de Dados

X

X

Analista de Testes

R

X

A

X

Essa atividade compreende a validação dos requisitos de interface segundo facilidades apresentadas aos Área de Negócio / Área Gestora durante a fase de prototipação. Descrição das Atividades

Assim, esta atividade compreende a avaliação cumprimento de compromissos assumidos consistência entre as ações sistêmicas e realizações efetivas da solução / processo negócio.

do de as de

188

Testes em Pesquisas / Filtros (Contextos)

Finalidade

Realiza testes de forma a garantir que todo filtro ou pesquisa de seleção de registros funcionem adequadamente conforme seleções realizadas pelo usuário.

Entradas

Fluxos BPM Documento de Regras de Negócio Perfil de Interfaces Perfil de Serviços Roteiro de Testes

Saídas

Relatório de Execução de Testes (integração)

Perfis Participantes

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Auditor SOA

X

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

X

Área de Negócio / Área Gestora

X

X

Administrador de Dados

X

X

Analista de Testes

R

X

A

X

Em diversas situações de sistemas de processamento de dados ou de sistemas de informações gerenciais, filtros de pesquisa/seleção de dados ocorrem naturalmente nessas soluções.

Descrição das Atividades

Esta atividade visa garantir que em qualquer atividade de filtro / seleção de dados, os mesmos resultem na apresentação de conjuntos de dados compatíveis com a seleção / filtro realizado. Isto irá impedir um mau uso do sistema / processo de negócio pelo usuário e irá prover ao mesmo o que foi efetivamente selecionado.

189

Testes de Uso Compartilhado (Acesso multiusuário)

Finalidade

Realiza testes de forma a garantir o uso da solução ou processo de negócio por diversos usuários simultaneamente, garantindo a independência de ações entre esses (tal qual provido por modelo multiinquiinos).

Entradas

Fluxos BPM Documento de Regras de Negócio Perfil de Interfaces Perfil de Serviços Roteiro de Testes

Saídas

Relatório de Execução de Testes (integração)

Perfis Participantes

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Auditor SOA

X

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

X

Área de Negócio / Área Gestora

X

X

Administrador de Dados

X

X

Analista de Testes

Descrição das Atividades

R

X

A

X

Em diversas situações sistêmicas de processos de execução em ambientes multiusuários é comum que exista um tratamento que dê garantia que a ação simultânea de um usuário não irá gerar inconsistências na execução de tarefas de negócio. Essa atividade é executada através da realização de testes por múltiplos usuários simultâneos. Ema quaisquer casos adversos a implementação desses recursos, o sistema deverá impedir a ação de usuários simultâneos.

190

Testes de Processamento em Lote (Processos sem interface)

Finalidade

Realiza testes de forma a garantir que processos sistêmicos excepcionais que não proveem interfaces (e.g. um processamento mensal de geração de Portarias) seja executado em sua completude sem erros. Essa atividade somente é aplicável em processamentos em lote sem a intervenção do usuário (inexistência de interfaces)

Entradas

Fluxos BPM Documento de Regras de Negócio Perfil de Serviços Roteiro de Testes

Saídas

Relatório de Execução de Testes (integração)

Perfis Participantes

C

I

Administrador de Dados

X

X

Analista de Processos de Negócio

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Arquiteto de Software

X

X

Auditor SOA

X

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

X

Área de Negócio / Área Gestora

X

X

Administrador de Dados

X

X

Analista de Testes

Descrição das Atividades

R

X

A

X

Algumas tarefas sistêmicas SOA são de execução automática e sem a intervenção do usuário. Essa atividade visa dar garantia da realização completa e correta de processos sistêmicos que atendem a este fim.

191

10.3 Teste de Aceitação A Figura 26 apresenta o modelo de processo para execução de testes de aceitação/ homologação, e suas atividades são descritas a seguir.

Figura 26 - Teste de Aceitação

192

Testar Solução em ambiente de Homologação

Finalidade

Validação da solução pelo Cliente em ambiente de homologação.

Entradas

Regras de Negócio Perfil de Interface Documento de Regras de Negócio

Saídas

Relatório de Testes (Aceitação ou Erros Identificados)

Perfis Participantes

R

Área de Negócio / Cliente

X

Analista de Testes

X

A X

C

I

X

X

X

X

Analista SOA

X

Arquiteto SOA

X

Descrição das Atividades

Após concluído os testes de integração, solução é disponibilizada em ambiente de homologação para validação pelo cliente. Os testes devem ser realizados com base no Documento de Modelo de processos de Negócio, documento de Regras de Negócio, Perfil de Interface, casos de teste e roteiro de teste.

193

Elaborar Relatório de Aceitação

Finalidade

Documentar Resultado da Homologação

Entradas

Resultado Testes de Homologação (Aceitação)

Saídas

Relatório de Execução de testes (template) Documento de Aceitação / Homologação

Perfis Participantes

R

A

Área de Negócio

X

X

Analista de Testes

X

C

I

X

X

Analista SOA

X

Arquiteto SOA

X

Descrição das Atividades

Após concluídos os testes em ambiente de homologação, a área de Negócio deve documentar o resultado da homologação em um Relatório de testes. O relatório tem por objetivo oficializar a aceitação ou não da solução implementada. Relatórios parciais podem ser gerados durante o processo de homologação para registro de evidências e criação de demanda para correção das possíveis falhas identificadas pelo cliente.

194

Manter Serviços

Manter Serviços

Finalidade

Realizar a Manutenção de Serviços

Entradas

Relatório de Aceitação

Saídas

Manutenção de Serviço realizada

Perfis Participantes

R

A

Administrador de Dados

C

I

X

Analista de Processos de Negócio

X

X

Analista de Testes

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Desenvolvedor

X

X

Designer de Interface de Usuário

X

X

Descrição das Atividades

As atividades devem ser executadas conforme descrito na seção 12.3

195

Realizar Testes de Integração

Realizar Testes de Integração

Finalidade

Realizar testes de integração em manutenção realizada

Entradas

Perfil de Serviço Perfil de Interface Relatório de Aceitação

Saídas

Testes de Integração realizados

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio Analista de Testes

X X

X

Analista SOA

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

X

Gerente de Projeto

X

Área de Negócio / Área Gestora Descrição Atividades

X

das

X

As atividades devem ser executadas conforme descrito na seção 10.2

196

11 IMPLANTAÇÃO Esse processo visa transferir todos os recursos para execução de serviços SOA (de tarefas orquestradas, de tarefas, de entidade, utilitários, bem como de recursos agregados como transformações, arquivos de políticas, etc) de um ambiente de desenvolvimento local – baseado na MDS Local – para os devidos ambientes de homologação e produção, com foco na publicação de contratos dentro dos ambientes de MDS da homologação ou produção. Muito do conhecimento dos recursos e tecnologias envolvidas na implantação de serviços podem ser compreendidos na leitura antecipada da Arquitetura de Referência SOA no capítulo 8, principalmente no que se refere à seção 8.4 (com adicionais nas seções, 8.5, 8.6 e 8.7). Nota: o conhecimento dos tópicos e conteúdo sobre a implantação de serviços presentes nas seções apontadas da Arquitetura de Referência SOA são considerados importantes e mandatórios. A implantação está dividida em dois processos, que são normalmente executados em paralelo: Implantar Serviço (executado para cada serviço) e Implantar de Solução.

11.1 Implantar Serviço O processo de implantação de serviço depende da tecnologia de implementação utilizada (vide AR-SOA) e que, normalmente, vem acompanhada de suas melhores práticas específicas. De maneira geral, esta metodologia deve ser distinta e permanecer independente da tecnologia, entretanto, a Arquitetura de Referência, mais especificamente em sua Visão Física (Implantação), provê e define alguns padrões tecnológicos de referência à serem adotados (tais como o uso de MDS Local para os desenvolvedores e ambientes de MDS centralizados específicos para cada ambiente (desenvolvimento, homologação e produção). O processo é apresentado na Figura 7 e suas atividades são descritas a seguir. Finalidade

Implantar serviços agnósticos, não agnósticos e proxy.

Entradas

Arquitetura Tecnológica Corporativa Arquitetura de Referência SOA Artefatos de Governança de Serviços Projeto (IDE - código fonte)

Saídas

Implantação de Serviço

Perfis Participantes

R

Arquiteto SOA

A

C

X

Auditor SOA Especialista em Governança SOA Especialista em Infraestrutura SOA Gerente de Projeto

I X

X X

X X

197

Figura 27 - Implantar Serviço

198

Implantar Serviços

Finalidade

Implantação de Serviço (em ambiente de homologação e/ou produção).

Entradas

Projeto IDE Serviço (desenvolvidos ou homologado)

Saídas

Serviço Implantado

Perfis Participantes

R

Arquiteto SOA

X

A

Auditor SOA Especialista em Governança SOA

Gerente de Projeto

Descrição das Atividades

I

X

X

X

X

X

Especialista em Infraestrutura SOA Desenvolvedor

C

X X

X

X X

X

X

X

Realizar a implantação dos serviços e seus elementos em ambiente de produção. Neste sentido, existem regras na sequência de implantação de serviços como descritos na Arquitetura de Referência SOA que devem ser de conhecimento antecipado (AR-SOA seções 8.4, 8.5, 8.6 e 8.7)

199

Verificar e Corrigir Erros de Implantação

Finalidade

Verificar e Corrigir Erros de Implantação

Entradas

Perfil de Serviço Implantação de Serviço

Saídas

Serviço Implantado (corrigido)

Perfis Participantes

R

A

Arquiteto SOA

C X

Auditor SOA

X

Especialista em Governança SOA

X

Especialista em Infraestrutura SOA Desenvolvedor Gerente de Projeto Descrição das Atividades

I

X X

X

X X X

Mapear possíveis erros provenientes dos testes de implantação e realizar as correções necessárias, principalmente no que se refere ao acesso a datasources, e namespaces.

200

Apoiar Implantação Nota: essa atividade é válida tanto para Especialistas de Infraestrutura SOA como para Arquitetos SOA. Como a atividade é conjunta, apenas uma atividade é descrita. Finalidade

Apoiar a implantação

Entradas

Perfil de Serviço Implantação de Serviço

Saídas

Suporte ao desenvolvedor / Governança

Perfis Participantes

R

Arquiteto SOA

C

I

X

X

X

Especialista em Infraestrutura SOA

X

X

X

Desenvolvedor

X

X

X

Gerente de Projetos

Descrição das Atividades

A

X

Garantir o suporte a erros na implantação dos serviços, principalmente no que se refere ao acesso a datasources, e namespaces. Assim, especialistas de Infraestrutura e Arquitetos SOA podem ser acionados, quando necessário, para apoiar a identificação de erros não previstos que venham a ocorrer durante a implantação de um serviço.

201

Publicar e Catalogar Serviço

Finalidade

Disponibilizar serviços no portfólio de serviços da organização.

Entradas

Serviço

Saídas

Serviços publicados

Perfis Participantes

R

A

Auditor SOA

C

I X

Especialista em Governança SOA

X

X

Especialista em Infraestrutura SOA

X

Desenvolvedor

X

Gerente de Projeto

X

Descrição das Atividades

Impor que os serviços implantados estejam disponíveis para consumo no portfólio de serviços coorporativos seguindo os padrões estabelecidos pela Arquitetura de Referência. As atividades devem ser executadas conforme descrito no tópico 12.1 - Exposição de Serviços do Inventário desta MDS.

202

11.2 Implantar Solução Esse processo visa transferir todos os recursos necessários para execução de processos de negócio (e,g, recursos de interfaces, fluxos BPMS) de um ambiente de desenvolvimento local para os devidos ambientes de homologação e produção. Muito do conhecimento dos recursos e tecnologias envolvidas na implantação de soluções podem ser compreendidos na leitura antecipada da Arquitetura de Referência SOA no capítulo 8 dessa, principalmente no que se refere às suas seções 8.5, 8.6 e 8.7. Nota: o conhecimento dos tópicos e conteúdo sobre a implantação de soluções presentes nas seções apontadas da Arquitetura de Referência SOA são considerados importantes e mandatórios. A implantação está dividida em dois processos, que são normalmente executados em paralelo: Implantar Serviço (executado para cada serviço) e Implantar de Solução. Cabe-se apontar que alguns referenciais sobre a implantação de serviços e soluções encontram-se detalhados junto a Arquitetura de Referência SOA. O processo é apresentado na Figura 28 e suas atividades são descritas a seguir. Finalidade

Implantar solução de automação completa.

Entradas

Arquitetura Tecnológica Corporativa Arquitetura de Referência SOA Artefatos de Governança de Serviços Arquitetura da Solução Projeto IDE (código fonte)

Saídas

Implantação de Serviço

Perfis Participantes

R

Arquiteto SOA

A

C

I

X

Auditor SOA

X

Especialista em Governança SOA

X

Especialista em Infraestrutura SOA Gerente de Projeto

X X

203

Figura 25 - Implantar Solução

204

Verificar se a implantação de serviços necessários está correta

Finalidade

Verificar os componentes já implantados (implantação de serviços) e os a serem implantados (implantação da solução).

Entradas

Elementos de Interface e fluxo BPMS

Saídas

Lista de componentes a serem implantados

Perfis Participantes

R

A

Arquiteto SOA

C X

Auditor SOA

X

Especialista em Governança SOA

X

Especialista em Infraestrutura SOA

X

X

Desenvolvedor

X

Design de Interfaces

X

Gerente de Projeto

Descrição das Atividades

I

X Identificar o conjunto de elementos que compõem a solução. Neste sentido é analisado se os componentes da solução (serviços de tarefa, entidade e utilitários) estão corretamente instalados. Caso não estejam, reporta a Governança a necessidade de que seja verificada a atividade de “Implantar Serviços” até que a implantação dos mesmos esteja adequada. Em seguida, prossegue na verificação da realização correta do processo de “Implantar solução”.

205

Implantar Fluxos (BPMS)

Finalidade

Implantar os modelos de fluxos de processos de negócio

Entradas

Fluxo BPMS

Saídas

Fluxos Implantados

Perfis Participantes

R

A

Arquiteto SOA

C X

Auditor SOA

X

Especialista em Governança SOA

X

Especialista em Infraestrutura SOA

X

X

Desenvolvedor

X

Design de Interfaces

X

Gerente de Projeto Descrição das Atividades

I

X Implantar e disponibilizar em ambiente de homologação e de produção os fluxos de processo de negócio.

206

Implantar Interfaces

Finalidade

Implantação da Camada de Apresentação

Entradas

Camada de apresentação (IU)

Saídas

Camada de apresentação (IU) disponibilizada

Perfis Participantes

R

A

Arquiteto SOA

C

I

X

Auditor SOA

X

Desenvolvedor

X

Design de Interfaces

X

Especialista de Infraestrutura SOA Especialista em Governança SOA Gerente de Projetos

Descrição das Atividades

X X

X X

Implantar e disponibilizar em ambiente de homologação e de produção camada de Apresentação (UI). Refere-se a publicação junto ao repositório JBoss associado à camada de interface aonde consta toda os códigos referentes ao framework de interface AngularJS denominado FW3. Para realizar o processo de deploy de interface de usuário, seus artefatos (arquivos html, css e javascript e etc) são atualizados no repositório que contém o código fonte de desenvolvimento (SVN), e, em seguida, scripts internos detectam as alterações e iniciam o processo de build (Jenkins).

207

Implantar Recursos de Infraestrutura

Finalidade

Implantação de recursos de infraestrutura necessários, fundamentalmente de objetos de Banco de Dados. Outros recursos de infraestrutura (e.g. como servidores de e-mail), devem ser configurados caso sejam necessários.

Entradas

Script de Banco de Dados e configurações de outros recursos

Saídas

Banco de dados disponível para utilização, e acesso a outros recursos endereçados (configurados e resolvidos).

Perfis Participantes

R

A

Arquiteto SOA

X

Especialista de Infraestrutura SOA

X

Especialista em Governança SOA

X

Desenvolvedor

X

Design de Interfaces

X

Administrador de Banco de Dados

X

Descrição das Atividades

I

X

Auditor SOA

Gerente de Projetos

C

X

X Implantar e disponibilizar em ambiente de homologação e/ou produção quaisquer recursos de infraestrutura (e.g. a camada de persistência de dados). Como exemplo, pode ser necessária a criação/alteração de objetos de Banco de Dados como tabelas, views, pacotes, funções, entre outros. A implantação será realizada conforme regras internas de implantação e configuração de infraestrutura subjacente estabelecidas.

208

Verificar e Corrigir Erros de Implantação

Finalidade

Validar Implantação da solução como um todo

Entradas

Implantação de Solução

Saídas

Implantação de Solução

Perfis Participantes

R

A

Arquiteto SOA

C X

Auditor SOA

X

Desenvolvedor

X

Design de Interfaces

X

Especialista de Infraestrutura SOA

X

Especialista em Governança SOA

X

Gerente de Projetos Descrição das Atividades

I

X X X

A implantação da solução deve ser validada através dos testes possíveis de serem realizados em ambiente de produção. Normalmente são realizados testes funcionais em operações somente de leitura.

209

Apoiar Implantação Nota: essa atividade é válida tanto para Especialistas de Infraestrutura SOA como pata Arquitetos SOA. Como a atividade é conjunta, apenas uma atividade é descrita. Finalidade

Apoiar a implantação de solução

Entradas

Pacotes de solução de interfaces Fluxos BPMS Documentação adicional de outros recursos de infraestrutura

Saídas

Suporte ao desenvolvedor / Governança

Perfis Participantes

R

Arquiteto SOA

C

I

X

X

X

Especialista em Infraestrutura SOA

X

X

X

Desenvolvedor

X

X

X

Gerente de Projetos

Descrição das Atividades

A

X

Garantir o suporte a erros na implantação de soluções (fluxos BPMS, elementos de interfaces – UI e outros recursos de infraestrutura. Assim, especialistas de Infraestrutura e Arquitetos SOA podem ser acionados, quando necessário, para apoiar a identificação de erros não previstos que venham a ocorrer durante a implantação de soluções.

210

Liberar Solução

Finalidade

Disponibilizar a solução implantada

Entradas

Implantação de Solução

Saídas

Implantação de Solução

Perfis Participantes

R

A

Especialista de Infraestrutura SOA Especialista em Governança SOA Gerente de Projetos

Descrição das Atividades

C

I X

X

X X

Envolve uma garantia antecipada de que todos os serviços e recursos necessários para testes de soluções e, eventualmente para o Teste de Aceitação / Homologação, estejam realizados.

211

11.2.1 Visibilidade do Processo de Desenvolvimento A Figura 29 apresenta a visão dos artefatos de entrada e saída para este processo.

Figura 26 - Entradas e Saídas da fase Implantar Solução

212

12 VITALIDADE DE SERVIÇOS 12.1 Exposição de Serviços do Inventário Finalidade

Publicar serviços do inventário em repositório corporativo de serviços.

Entradas

Contrato de Serviço Perfil de Serviço

Saídas

Repositório de Serviços (atualizado)

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA

A

C

X

X

I

X

213

Figura 27 - Exposição de Serviços do Inventário

214

Criar catálogo de serviço

Finalidade

Criar catálogo desserviços

Entradas Saídas

Catálogo de inventário criado

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA Descrição das Atividades

A

C

X

X

I

X O ambiente para gerenciamento de configurações de catálogo de inventário é instalado e configurado

215

Consumir/ Desenvolver Serviços

Finalidade

Consumir e Desenvolver novos Serviços a serem gerenciados no inventário

Entradas

Serviços

Saídas

Gerenciar Serviços como ativos de TI

Perfis Participantes

R

A

Arquiteto SOA

X

X

Desenvolvedor

Descrição das Atividades

C

I

X

X

Uma vez configurado o repositório de serviços, ao se construir um novo serviço, informações que ajudem na sua gestão de ciclo de vida podem ser populadas, vinculando-se o serviço como um ativo da empresa. Quando da existência de um catálogo de serviços, usuários podem consumir serviços existentes através da busca taxonômica, o que favorecerá que se evite a sobreposição de contexto funcional na criação de novos serviços, favorecendo o retorno de investimento.

216

Identificar ativos a serem governados

Finalidade

Identificar os ativos de TI que serão governados pela equipe de negócio

Entradas

Serviços

Saídas

Ativos de TI

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA Descrição das Atividades

A

C

X

X

I

X Uma vez instalado e configurado o ambiente que dará suporte à descoberta de serviços, é importante definir os ativos que serão governados pela empresa.

217

Definir metadados associados a ativos

Finalidade

Definir metadados associados a ativos de TI

Entradas

Ativos de TI

Saídas

Definição de Metadados de ativos de TI

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA

Descrição das Atividades

A

C

X

X

I

X Os metadados são informações a respeito de um dado ativo utilizadas como auxílio na descoberta dos mesmos. Através da utilização de metadados é possível descobrir serviços já implementados através de informações que o classifiquem, sendo um facilitador para se evitar a sobreposição de contextos funcionais, dentre outros.

218

Criar taxonomia para organização de ativos

Finalidade

Criar taxonomia para organização de Ativos de TI

Entradas

Ativos de TI

Saídas

Taxonomia de Ativos de TI definida

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA

Descrição das Atividades

A

C

X

X

I

X Taxonomia pode ser entendida como uma estrutura para classificação de forma hierárquica, facilitando a identificação e localização dos mesmos. Um dos principais objetivos de tal classificação é facilitar o acesso a informação, melhorando a comunicação entre os diversos usuários e mantenedores do sistema.

219

Popular repositório com ativos e metadados

Finalidade

Popular repositório com Ativos de TI e metadados

Entradas

Ativos de TI

Saídas

Repositório populado

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA

Descrição das Atividades

A

C

X

X

I

X Nesta etapa, o repositório anteriormente criado deve ser populado com ativos e metadados, a fim de fomentarem carga não só para descobertas de serviços como para geração de relatórios de acompanhamento. Os benefícios da população de repositório com tais ativos são: • • •

Mais serviços podem ser definidos em um catálogo de ativos que crescem constantemente; Menor custo para popular o inventário de serviços; Maior entendimento de como e quando gerenciar um dado ativo.

220

Gerenciar o ciclo de vida dos ativos

Finalidade

Gerenciar o ciclo de vida dos ativos

Entradas

Ativos de TI

Saídas

Ativos de TI gerenciados

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA Descrição das Atividades

A

C

X

X

I

X O processo de fluxo de ciclo de vida de um ativo se torna a base para o processo de automação. Tal gerenciamento permite o alinhamento do ciclo de vida do ativo com o ciclo de vida do desenvolvimento de software, podendo-se definir ou modificar papéis associados a usuários e responsabilidades.

221

Gerenciar alterações

Finalidade

Gerenciar alterações de Ativos de TI

Entradas

Ativos de TI

Saídas

Ativos de TI gerenciados

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA

Descrição das Atividades

A

C

X

X

I

X O gerenciamento de ativos impacta não somente em um maior entendimento do negócio, como também na compreensão dos impactos decorrentes das alterações propostas nos ativos catalogados. Mecanismos como subscrição e notificação podem ser utilizados para facilitar a organização da empresa. Dentre os principais benefícios desta abordagem pode-se citar: • •

Redução de riscos dado entendimento do impacto proposto pelas alterações; Aumento de visibilidade e comunicação em caso de alterações.

222

Monitorar progresso com relatórios

Finalidade

Monitorar progresso com relatórios

Entradas

Ativos de TI

Saídas

Relatório de Ativos de TI

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA

A

C

X

X

I

X A equipe de negócio pode revisar relatórios de documentação e reuso de ativos catalogados, sendo possível definir formulas para mensurar cada serviço, o que permite dentre outras coisas:

Descrição das Atividades

• • •

Capacidade de demonstrar o retorno de investimento; Habilidade de monitorar tendências e progresso de cada serviço; Consistência e uniformidade no valor de serviço.

223

Monitorar Performance em tempo de execução

Finalidade

Monitorar Performance de Ativos de TI em tempo de execução

Entradas

Ativos de TI

Saídas

Monitoramento de performance em tempo de execução de Ativos de TI

Perfis Participantes

R

Especialista de Governança SOA Arquiteto SOA

A

C

X

X

I

X A equipe de negócio pode revisar a performance das métricas em tempo de execução de serviços implantados. Essas métricas podem ajudar a avaliação de ajustes a serem desenvolvidos na solução. Dentre os principais benefícios desta etapa estão:

Descrição das Atividades





Capacidade de visualizar métricas definidas, e gerar maior credibilidade em nível de negócio para os ganhos obtidos com os serviços; Automação de processos de geração de métricas se torna benéfico por facilitar a criação e acompanhamento de novas métricas.

224

12.2 Gerenciar Configuração e Versionamento O processo de versionamento é uma etapa transversal ao desenvolvimento da solução como um todo. Problemas como a versão oficial a ser implantada em ambientes de desenvolvimento, homologação e produção, bem como o controle de acesso concorrente a arquivos, o que poderia gerar uma constante alteração e sobrescrita de arquivos que dois ou mais usuário desejem alterar ao mesmo tempo são problemas recorrentes dessa abordagem. Atualmente existem vários mecanismos para o controle de versionamento de arquivos no mercado. A Arquitetura de Referência e o processo de Governança SOA deverão definir os sistemas e padronizações de gerenciamento de versões e configuração. O processo é apresentado na Figura 28 e suas atividades são descritas a seguir. Finalidade

Gerenciamento de versões e configuração de software.

Entradas

TBD

Saídas

TBD

Perfis Participantes

R

Arquiteto SOA

C

I

X

Auditor SOA Desenvolvedor

A

X X

Especialista em Governança SOA

X

Gerente de Projeto

X

225

Figura 28 – Gerenciar Configuração e Versionamento

226

Criar repositório remoto

Finalidade

Criação de repositório remoto

Entradas

Arquivos iniciais de versionamento

Saídas

Repositório remoto definido e disponível

Perfis Participantes

R

A

C

Analista de Processos de Negócio

I X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA Desenvolvedor Gerente de Projeto

Descrição das Atividades

X

X X

Nesta primeira etapa um repositório remoto é criado contendo as definições iniciais a serem versionadas e disponibilizas quando da sincronização de tal repositório. É importante não só criar o repositório e disponibilizá-lo, quanto adicionar permissões de manipulação dos diretórios e arquivos do mesmo, sendo criados usuários e grupos de usuários que irão ter perfis focados em tais manipulações no repositório remoto.

227

Criar repositório local

Finalidade

Criação de repositório local

Entradas

Dados a serem versionados

Saídas

Repositório local

Perfis Participantes

R

A

C

Analista de Processos de Negócio

I X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA Desenvolvedor Gerente de Projeto

Descrição das Atividades

X

X X

Nesta etapa é criado localmente um repositório na máquina das pessoas que irão interagir com as configurações existentes no repositório remoto. O repositório local é o repositório em que as alterações de cada pessoa são testadas inicialmente e, posteriormente sincronizadas novamente com o repositório remoto a fim de disponibilizar tais alterações a todos os usuários que estão trabalhando em equipe no repositório remoto. O repositório local nada mais é que uma estrutura de diretórios utilizada para se comunicar com a estrutura dos diretórios do repositório remoto.

228

Vincular repositório local a repositório remoto

Finalidade

Sincronizar repositório local a remoto para futuras transferências de arquivos

Entradas

Repositório remoto Repositório local

Saídas

Sincronização de repositório remoto e local

Perfis Participantes

R

A

C

Analista de Processos de Negócio

I X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA Desenvolvedor Gerente de Projeto

Descrição das Atividades

X

X X

Nesta etapa o repositório local será vinculado ao repositório remoto, o que permitirá a transferência de dados do repositório local para o remoto a fim de disponibilizar alterações a outros usuários do mesmo repositório, bem como a obtenção de alterações disponibilizadas por outros usuários. O acesso ao repositório remoto se dá por login e senha, que são dados intransferíveis, capazes de identificar as alterações que cada usuário executou quando da sincronização com o repositório remoto.

229

Adicionar/ Altera arquivos

Finalidade

Adicionar arquivos ao repositório local

Entradas

Arquivos a serem adicionados ou alterados ao repositório local

Saídas

Arquivos adicionados

Perfis Participantes

R

A

C

Analista de Processos de Negócio

I X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA Desenvolvedor Gerente de Projeto

Descrição das Atividades

X

X X

Nesta etapa o usuário adiciona ou altera arquivos em seu repositório local que interagirão com os outros arquivos do repositório. É importante ressaltar que as alterações contidas nesses arquivos se dão ainda em repositório local, onde o usuário terá um ambiente controlado para testá-las antes de submetê-las ao repositório remoto, e deixar tais alterações passíveis de acesso a todos os demais usuários. Em ambiente local, o usuário pode testar o impacto de suas alterações na solução presente, e em demais soluções que interage com os arquivos alterados ou adicionados.

230

Publicar arquivos adicionados/ alterados

Finalidade

Submeter alterações propostas em repositório local a repositório remoto

Entradas

Arquivos adicionados/ atualizados

Saídas

Arquivos submetidos a repositório remoto

Perfis Participantes

R

A

C

Analista de Processos de Negócio

I X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA Desenvolvedor Gerente de Projeto Descrição das Atividades

X

X X

Nesta etapa ocorre a sincronização de arquivos presentes no repositório remoto com arquivos do repositório local. As adições e alterações propostas anteriormente são agora sincronizadas com as alterações já existentes no repositório remoto.

231

Solucionar conflitos entre arquivos

Finalidade

Corrigir conflitos existentes entre os arquivos dos repositórios local e remoto

Entradas

Arquivos em conflito

Saídas

Conflito de arquivos solucionado

Perfis Participantes

R

A

C

Analista de Processos de Negócio

I X

Analista SOA

X

Arquiteto SOA

X

Auditor SOA Desenvolvedor Gerente de Projeto

Descrição das Atividades

X

X X

Dado acesso concorrente ao repositório remoto, não raras as vezes, dois usuários podem alterar o mesmo arquivo. O primeiro usuário a submeter as alterações terá alterado o repositório remoto, e quando o segundo usuário tentar submeter suas alterações será notificado que a versão do arquivo que este deseja alterar já se encontra em uma versão diferente de quando ele havia sincronizado os arquivos com o repositório. Neste caso, cabe ao segundo usuário comparar os pontos de conflito e corrigir os problemas da junção dos arquivos que foram submetidos anteriormente, enviando então ao servidor remoto uma nova versão do arquivo contendo não só suas alterações como as alterações do primeiro usuário.

232

12.3 Manutenção de Serviço Tradicionalmente, a manutenção de serviço é um processo que ocorre quando na realização de testes são verificadas necessidades de alterações a serem realizadas durante o Ciclo de Vida de Desenvolvimento SOA (correção de erros e bugs). Porém, este processo não está associado exclusivamente a manutenções oriundas de erros e bugs. Ocorrem, ainda, em cenários no qual mudanças de leis, normas e processo, entre outros, acarretarem evoluções do processo já existente. O processo é apresentado na Figura 32 e suas atividades são descritas a seguir. Finalidade

Manutenção de serviços existentes

Entradas

Documento de Manutenção

Saídas

Documento de Manutenção Ordem de Serviço

Perfis Participantes

R

A

Administrador de Dados Analista de Processos de Negócio

C

I

X X

X

Analista de Testes

X

X

Analista SOA

X

X

Arquiteto SOA

X

X

Desenvolvedor

X

X

Designer de Interface de Usuário

X

X

233

Figura 29 - Manutenção de Serviço

234

Elaborar Demanda

Finalidade

Formalizar solicitação de manutenção em solução SOA.

Entradas

Identificação da necessidade de manutenção.

Saídas

Demanda Registrada

Perfis Participantes

R

A

C

I

X

X

X

X

X

X

Administrador de Dados Analista de Processos de Negócio

X

Analista de Testes Analista SOA Arquiteto SOA Desenvolvedor Designer de Interface de Usuário Governança SOA Descrição das Atividades

X

X

Da análise de Relatórios de Execução de Testes, a Área de Negócio ou Governança SOA pode identificar a necessidade de manutenções (corretiva, adaptativa ou evolutiva), e deve registrar demanda para formalização da solicitação de manutenção.

235

Classificar, Priorizar e Aprovar Demanda

Finalidade

Aprovar, priorizar e classificar demanda de acordo com sua natureza em adaptativa, corretiva ou evolutiva.

Entradas

Demanda Registrada.

Saídas

Demanda Aprovada e Classificada, ou Demanda Reprovada.

Perfis Participantes

R

A

C

I

X

X

X

X

Administrador de Dados Analista de Processos de Negócio

X

Analista de Testes Analista SOA Arquiteto SOA Desenvolvedor Designer de Interface de Usuário Governança SOA

X

X

A demanda deve ser analisada sendo, então, aprovada ou arquivada (reprovada). Se aprovada, deve ser priorizada e classificada de acordo com sua natureza:

Descrição das Atividades



Manutenção Corretiva: Manutenção reativa realizada durante qualquer etapa do Ciclo de Desenvolvimento de Soluções Orientadas a Serviço. Tem por função suportar a realimentação das atividades inerentes ao desenvolvimento do produto na correção das falhas e /ou identificação de requisitos não cumpridos.



Manutenção Adaptativa: É recorrente de situações que envolvam uma revisão intempestiva de regras de negócio ou adequação de nova infraestrutura.



Manutenção Evolutiva: Ocorre quando é entendido que um produto deva ser reanalisado e/ou reprojetado de forma a atender novas necessidades ou novos requisitos de negócio ou tecnológicos. Envolve, em geral, a implementação de novos requisitos do usuário ou alterações relacionadas a melhorias referentes aos requisitos funcionais da solução.

Nota: ainda, da descrição desses três tipos, observa-se que as manutenções adaptativas e evolutivas são compatíveis, e que podem se reportar a revisão desde a Modelagem do Negócio (Desenvolvimento de Soluções Orientadas a Serviços).

236

Arquivar Demanda

Finalidade

Arquivar demanda não aprovadas após avaliação da Governança SOA.

Entradas

Demanda Reprovada

Saídas

Demanda Arquivada

Perfis Participantes

R

A

C

I

X

X

X

X

Administrador de Dados Analista de Processos de Negócio

X

Analista de Testes Analista SOA Arquiteto SOA Desenvolvedor

X

Designer de Interface de Usuário

X

Governança SOA Descrição das Atividades

X

X

X

X

Em alguns cenários, demandas evolutivas e/ou adaptativas podem ser classificadas como inviáveis (e.g. um alto custo ou altíssima complexidade para implementação, entre outros casos). Na ocorrência destes cenários, a demanda pode ser arquivada.

237

Analisar Solicitação

Finalidade

Analisar Solicitação de Manutenção para encaminhamento para atividade de implementação.

Entradas

Documento de Manutenção

Saídas

Documento de Manutenção (atualização)

Perfis Participantes

R

A

Analista de Processos de Negócio

X

X

Analista de Testes

X

C

I

X

X

Administrador de Dados

Analista SOA Arquiteto SOA

X

Desenvolvedor

X

Designer de Interface de Usuário

X

Descrição das Atividades

Nesta etapa considerações referentes a solução a ser adotada são analisadas de acordo com Metodologia de Desenvolvimento e Arquitetura de Referência SOA. Em Manutenções corretivas não é necessária a análise prévia de viabilidade de manutenção, uma vez que a não aplicação da correção impacta diretamente no funcionamento da solução.

238

Analisar Viabilidade de Manutenção

Finalidade

Analisar Viabilidade de Manutenção proposta

Entradas

Documento de Manutenção

Saídas

Documento de Manutenção (atualização)

Perfis Participantes

R

A

Analista de Processos de Negócio

X

X

Analista de Testes

X

C

I

X

X

Administrador de Dados

Analista SOA Arquiteto SOA

X

Desenvolvedor

X

Designer de Interface de Usuário

X

Descrição das Atividades

Em caso de manutenções adaptativas ou evolutivas uma avaliação prévia deve ser realizada com o objetivo de definir a viabilidade ou não de implementação da solicitação. Se a solicitação é considerada inviável, a demanda e arquivada. Caso contrário, é encaminhada para implementação.

239

Implementação (Fluxo Principal)

Finalidade

Executar os subprocesso “Implementar Serviço” e “Implementar Solução”, parte da etapa do subprocesso “Implementação” definida no modelo geral desta metodologia SOA.

Entradas

Demanda para solicitação de manutenção Corretiva

Saídas

Manutenção corretiva realizada

Perfis Participantes

R

A

C

I

Administrador de Dados Analista de Processos de Negócio

X

Analista de Testes Analista SOA

X

Arquiteto SOA

X

Desenvolvedor

X

Designer de Interface de Usuário

Descrição das Atividades

X X

Manutenções corretivas são enviadas diretamente para correção para a equipe de desenvolvimento, uma vez que são consideradas demandas cujo objetivo é correção de erros em códigos, fluxos e/ou em outros elementos desenvolvidos, e que estão implementados e disponibilizados para utilização do usuário. As atividades devem ser executadas conforme descrito nas seções 9.1, 9.2 e 9.3.

240

Desenvolvimento de Soluções Orientadas a Serviço

Finalidade

Executar o processo de “Desenvolvimento de Soluções Orientadas a Serviço”, definida no modelo geral desta metodologia SOA (processo global).

Entradas Saídas Perfis Participantes

R

A

C

I

Administrador de Dados Analista de Processos de Negócio Analista de Testes Analista SOA Arquiteto SOA Desenvolvedor Designer de Interface de Usuário

Descrição das Atividades

Manutenções adaptativas e evolutivas, cuja viabilidade é determinada e aceita, essas manutenção podem envolver incorporação/alteração de serviços, composições, fluxos, etc, que podem até mesmo já existir junto ao Inventário de Serviços. Assim entende-se que manutenções evolutivas e adaptativas requerem que o processo metodológico para sua realização siga todas as etapas do Ciclo de Vida de Desenvolvimento SOA, mesmo que alguns passos possam ser ignorados por ser considerados já completos (e.g. se a manutenção evolutiva ou adaptativa não impacta em nenhum esforço de Análise SOA, todo processo de Análise pode ser ignorado). Nota: Considera-se que esta etapa pode ser suportada por toda documentação metodológica da solução ora implantada para consulta durante as atividades de Análise e Projeto de Soluções Orientadas a Servço.

241

Disponibilizar Alteração para Validação

Finalidade

Disponibilizar solução com alterações solicitadas para validação da equipe de Governança e SOA, e posteriormente área de negócio.

Entradas

Solicitação de manutenção concluída

Saídas

Solicitação de manutenção concluída e disponível para implantação

Perfis Participantes

R

Administrador de Dados

X

A

C

I

X

X

Analista de Processos de Negócio Analista de Testes

X X

Analista SOA

X

X

Arquiteto SOA

X

X

Desenvolvedor

X

X

X

Designer de Interface de Usuário

X

X

X

Governança SOA

X

Descrição das Atividades

X

Refere-se as atividades inerente dos Desenvolvedores e/ou dos Designers de Interface de Usuário de empacotamento dos serviços em geral e/ou fluxos observada as atividades inerentes de Governança associada, tais como a atividade de "Gerenciar Configuração e Versionamento" conforme descrito na seção 12.2.

242

Implantar Solução em Ambiente de Homologação

Finalidade

Implantar solução em ambiente de homologação para posterior validação do usuário da solicitação de manutenção solicitada.

Entradas

Solicitação de Manutenção Concluída

Saídas

Solicitação de Manutenção disponível em ambiente de homologação.

Perfis Participantes

R

Administrador de Dados

A

C

I

X

Analista de Processos de Negócio

X

Analista de Testes

X

Analista SOA Arquiteto SOA Desenvolvedor

X

Designer de Interface de Usuário

X

Analista de Infraestrutura Descrição das Atividades

X As atividades devem ser executadas conforme descrito nas seções 11.1 e 11.2. Além disso, deve ser realizada a atividade para a “Exposição de Serviços do Inventário" conforme descrito na seção 12.1.

243

Implantar Solução em Ambiente de Produção

Finalidade

Implantar solução em ambiente de produção para finalização do processo de manutenção.

Entradas

Relatório de Execução de Testes (Testes de Aceitação / Homologação)

Saídas

Solução instalada

Perfis Participantes

R

Administrador de Dados

X

A

C

I

X

X

Analista de Processos de Negócio Analista de Testes

X X

Analista SOA

X

X

X

Arquiteto SOA

X

Desenvolvedor

X

X

X

Designer de Interface de Usuário

X

X

X

Descrição das Atividades

X

X

As atividades devem ser executadas conforme descrito nas seções 11.1 e 11.2. Além disso, deve ser realizada a atividade para a “Exposição de Serviços do Inventário" conforme descrito na seção 12.1.

244

Teste de Aceitação

Finalidade

Validação pela área de negócio da manutenção de serviço solicitada.

Entradas

Manutenção disponibilizada em ambiente de homologação.

Saídas

Manutenção Aprovada ou Reprovada (Devolvida)

Perfis Participantes

R

A

C

Administrador de Dados

I X

Analista de Processos de Negócio

X

X

X

Analista SOA

X

X

X

Analista de Testes

X

X

X

Arquiteto SOA

X

Arquiteto de Software

X

Auditor SOA

X

Desenvolvedor SOA

X

Gerente de Projeto

X

Área de Negócio / Área Gestora Descrição das Atividades

X

X

X

As atividades devem ser executadas conforme descrito na seção 10.3.

245

APÊNDICE A: REFERÊNCIAS BIBLIOGRÁFICAS ABPMP. (2015). BPM CBOK (3ª ed.). Erl, T. (2008). SOA: Principles of Service Design. Crawfordsville, Indiana, EUA: Prentice Hall. Erl, T. (2009). SOA Design Patterns. Crawfordsville, Indiana, EUA: Prentice Hall. Hewitt, E. (2009). Java SOA Cookbook. O'Reilly Media, Incorporated. Josuttis, N. M. (2007). SOA in Practice. Sebastopol, Califórnia, EUA: O'Reilly. Portier, B. (2007). Building SOA Solutions Using the Rational SDP. IBM. SOA Patterns. (s.d.). Fonte: http://www.soapatterns.org van den Heuvel, W.-J., Zimmermann, O., Leymann, F., Lago, P., Schieferdecker, I., Zdun, U., et al. (05 de 2009). Software Service Engineering. PESOS’09, pp. 26-33. SCOTT, Kendall. O Processo Unificado Explicado. 1ª ed. São Paulo: Bookman, 2003. PRESSMAN, RS. Engenharia de software. ... Gerenciamento de Projetos. 7 edição. Rio de Janeiro: Brasport, 2009. Certified Tester Foundation Level Syllabus, Versão 2011br. Tradução realizada pela TAG01 Documentação do BSTQB baseada na versão 2011 do Certified Tester Foundation Level Syllabus do ISTQB.

246

APÊNDICE B: GLOSSÁRIO AGENTE DE SERVIÇO: é um programa direcionado por eventos, capaz de interceptar de forma transparente e processar mensagens enviadas ou recebidas por serviços. Dependendo da plataforma de SOA adotada, agentes de serviços podem ser chamados de “mediadores”, “escutas (listeners)”, “interceptadores”, “manipuladores (handlers)”. A maioria das plataformas de SOA modernas prove um conjunto de agentes de serviços de sistema, mas agentes de serviço podem ser também desenvolvidos. Agentes de serviço não têm uma interface técnica (ou contrato) e, portanto, não são explicitamente invocados. Eles geralmente provêm lógicas altamente reutilizáveis; cada agente é usualmente reusado por muitos serviços e composições de serviços. De uma perspectiva de composição de serviços ou atividade de serviços, agentes de serviço são quase sempre classificados como intermediários. Funções comuns executadas por agentes de serviço incluem roteamento, registro de eventos (logging), validação e processamento relacionado com segurança. Agentes de serviço podem ser parte de uma arquitetura de serviço e podem residir entre arquiteturas de serviço como parte de arquiteturas de composições e inventário. Podem ter eles mesmos sua própria especificação de arquitetura, que podem ser referenciadas pela arquitetura de serviço. Durante o projeto de uma SOA (de qualquer tipo), é preciso determinar a extensão em que os serviços dependerão de agentes de serviços. É possível transferir funções utilitárias comuns para agentes de serviços. Seu uso pode resultar em redução do tamanho de composição de serviços (usualmente pela redução da quantidade de serviços utilitários). AMBIENTE DE DESENVOLVIMENTO: ambiente utilizado por desenvolvedores para a criação do software. O propósito desse ambiente é o desenvolvimento inicial de funcionalidades a serem validadas posteriormente por especialistas que mensurarão se a solução desenvolvida se encontra alinhada com a solução esperada, para depois serem feitos testes no ambiente do usuário final. AMBIENTE DE HOMOLOGAÇÃO: ambiente intermediário entre os ambientes de desenvolvimento e produção. O propósito desse ambiente é a validação da solução proposta em ambiente de desenvolvimento, a fim de evitar inconsistência quando da produção em ambiente de produção. AMBIENTE DE PRODUÇÃO: ambiente final de aplicação, destinado aos usuários finais da mesma. A separação de camadas para implantação da aplicação de solução tem por finalidade o aumento de confiabilidade quando da implantação da solução em ambiente de produção, evitando-se erros e bugs descobertos anteriormente em outros ambientes. ANÁLISE DE PROCESSO: conjunto de atividades que buscam entender e identificar oportunidades de melhoria no processo mapeado/diagramado/modelado. ANÁLISE DE SERVIÇOS CANDIDATOS: etapa da metodologia SOA onde é realizada a concepção global prévia dos serviços a serem criados e dos serviços existentes, a fim de se propor um conjunto de serviços capazes de solucionar um dado cenário proposto. O foco dessa etapa não

247

está na definição precisa dos serviços a serem criados, mas sim em uma proposta inicial a ser validada em etapas posteriores. ANÁLISE DE INVENTÁRIO DE SERVIÇOS: etapa da metodologia SOA focada principalmente na avaliação da necessidade de criação de um serviço. Antes de se criar um serviço é importante constatar se este já existe ou se não sobrepõe o contexto funcional de outro serviço já publicado. Para tanto, consultas no inventário devem ser efetuadas. APLICAÇÕES COMPOSTAS: são soluções de software SOA que realizam os padrões de projeto de abstração e centralização de processos, implementando composições coordenadas de serviço com uso de tecnologia de orquestração e mediação de serviços. Aplicações compostas frequentemente enfatizam o reuso de serviços existentes no inventário de serviços e são implementadas com modelos de processos BPMN 2.0 (Business Process Modeling 2.0) e BPEL (Business Process Execution Language) executados diretamente na Plataforma de SOA e no BPMS (Business Process Management System). ARTEFATO: subproduto concreto produzido e/ou utilizado durante o desenvolvimento de software. Alguns artefatos descrevem a função, a arquitetura e/ou o design do software (ex. contrato de serviço, especificação técnica de serviço, documento de arquitetura de serviço, manual de usuário, código fonte, código executável etc.). Outros estão relacionados com o próprio processo de desenvolvimento (ex. plano de projeto, documento de visão, súmula de reunião etc.). AS-IS: forma informal de se referir ao processo no momento da sua modelagem. Faz referência ao estado “como está” sendo executado o processo pela organização ou estado atual. ATIVIDADES: conjunto de tarefas realizado pelo ator do processo que, em conjunto com as tomadas de decisão e eventos próprios, compõem o processo. ATOR: recurso humano que executa determinada tarefa ou processo. Atores são instâncias de um perfil profissional requerido em determinada parte do processo. AUTOMATIZAÇÃO DE PROCESSO: atitude de tornar o processo automatizado com a utilização da tecnologia, eliminando a interação com os recursos humanos e otimizando o desempenho do mesmo. BPM (GERENCIAMENTO DE PROCESSOS DE NEGÓCIO): disciplina gerencial que integra estratégias e objetivos de uma organização com expectativas e necessidades de clientes, focando em processos ponta a ponta. Engloba estratégias, objetivos, cultura, estruturas organizacionais, papéis, políticas, métodos e tecnologias para analisar, desenhar, implementar, gerenciar desempenho, transformar e estabelecer a governança de processos. BPMN (BUSINESS PROCESS MODEL AND NOTATION): é um padrão aberto internacional de notação gráfica para modelar e desenhar processos de negócios. CAPACIDADE DE SERVIÇO: cada serviço possui seu contexto funcional próprio e distinto, que é constituído de um conjunto de funcionalidades relacionadas ao seu contexto. Essas funcionalidades são referidas como capacidades do serviço. Assim, como serviços são coleções de capacidades relacionadas a um contexto funcional, são as capacidades que resolvem interesses individuais. Um serviço pode ter uma ou mais capacidades. Capacidades associadas ao contexto de um serviço são posicionadas dentro daquele serviço. Capacidades de serviço 248

podem ser expressas em um contrato de serviço. Logo, cada solução orientada a serviço pode ser modelada a partir de ou decomposta em uma coleção lógica com seguintes elementos básicos: • • • •

Capacidades: unidades de trabalho. Serviços: coleção de unidades de trabalho. Processos: agregação coordenada de unidades de trabalho. Mensagens: unidades de comunicação responsável por envolver unidades de trabalho.

Um consumidor de serviço frequentemente invocará uma capacidade específica, ou seja, ele invocará apenas um subconjunto das funcionalidades que um serviço tem para oferecer, e essa funcionalidade associada com uma capacidade pode variar em escopo. CAPACIDADE PROFISSIONAL: define um conjunto de habilidades e competências que serão demandas em um determinado perfil. Essas podem ser recomendadas (capacidades normalmente requeridas para o desempenho da atividade profissional associada ao perfil) ou desejáveis (capacidades complementares que agregam valor à atividade profissional do perfil). CLIENTE: no contexto de Gerenciamento de Processos de Negócio, cliente é a quem são direcionadas as atividades do processo, sendo por elas beneficiado. Pode ser externos ou internos à organização, sendo o foco de uma tarefa, de uma atividade, de um subprocesso, de um processo ou de um macroprocesso. COMPOSIÇÃO DE SERVIÇO: é um agregado de serviços coletivamente composto para automatizar uma tarefa ou processo de negócio em particular. Para qualificar uma composição, pelo menos dois serviços participantes e um iniciador da composição devem estar presentes, senão a interação de serviço representa apenas uma troca ponto a ponto. A composição de serviços depende da habilidade de serviços consumirem-se uns aos outros sem a perda da autonomia de seus contratos e ocultando a lógica dos serviços subsequentes. Todos os princípios de projeto de orientação a serviço são direcionados a suportar serviços como membros de composições complexas. No topo da composição encontramos serviços caracterizados como os controladores de composição (frequentemente referido apenas como "controlador“ ou “mediador”). O projeto do controlador de composição gira em torno da definição de interações efetivas de serviços e da lógica de composição, integrada ao gerenciamento do estado da atividade. COMPOSITE APPLICATIONS: ver Aplicações Compostas. CONTRATO DE SERVIÇO: expressa as meta-informações sobre um serviço e estabelece os termos para seu uso (requisitos para invocar e interagir com o serviço). Para um consumidor de serviço acessar e interagir com um serviço, este deve estar ciente e em conformidade com os requisitos estabelecidos no contrato do serviço. A parte fundamental de um Contrato de Serviço é sua interface técnica, que constitui o contrato técnico do serviço (WSDL + Esquemas de Dados + Políticas). Ele pode (e deve) ser composto ainda de outras informações adicionais, tal como um Acordo de Nível de Serviço (SLA), que descreve características de qualidade de serviço, seus comportamentos e limitações.

249

Em orientação a serviço, o projeto e padronização de contratos de serviço são de fundamental importância, de tal maneira que o princípio de projeto de Padronização de Contrato de Serviço é dedicado à definição padronizada de contratos de serviço. COREOGRAFIA: formaliza a coordenação das interações entre os participantes (entidades envolvidas). Tem natureza colaborativa, onde cada participante envolvido descreve a parte que ele desempenha na interação, não prevalecendo, portanto, a primazia individual. CULTURA ORGANIZACIONAL (CULTURA DA ORGANIZAÇÃO): conjunto de valores, capacidades e/ou conhecimentos internos à organização, que, de forma consciente ou inconsciente, agem no modo com que as atividades são realizadas. DESENHO (DE PROCESSO): no contexto de Gerenciamento de Processos de Negócio, consiste no conjunto de atividades que definem como o processo será realizado após a sua modelagem e análise. DIAGRAMA (DE PROCESSO): representação dos fluxos de atividades que compõem os Processos de Negócios em um nível mais baixo de detalhamento, ilustrando apenas as principais atividades do fluxo e omitindo informações mais detalhadas do fluxo de trabalho. DISCIPLINA: define um conjunto de atividades que podem ser associadas a um corpo de conhecimento em desenvolvimento de software ou em gerenciamento de projeto. ENTRADAS DE PROCESSO: são os artefatos usados pelas atividades do processo, podendo ter uso direto ou indireto. Entradas diretas são aquelas que serão usadas diretamente nas atividades, sem as quais o processo não pode completar. Entradas indiretas fornecem estrutura, informações complementares e restrições. Essas estão normalmente ligadas à forma como o trabalho deve ser realizado e à sua gestão (i.e. escopo, tempo, custo, qualidade, riscos etc.). Para o caso de processos de projetos de soluções orientadas a serviço, a Metodologia de Desenvolvimento de Solução Orientada a Serviço e a Arquitetura de Referência SOA são sempre entradas indiretas de processo. EQUIPE: conjunto de perfis profissionais que compõem o time técnico da Unidade Funcional, conforme as responsabilidades definidas para cada unidade. Inclui o responsável pela Unidade Funcional. EQUIPE DE PROJETO: conjunto de atores que atuam em um determinado projeto. ETAPA: define um conjunto de processos relacionados que atendem, parcialmente ou totalmente, uma disciplina da metodologia. Essas etapas podem ser vistas ainda sob a ótica de gerenciamento de projeto, onde são utilizadas as etapas clássicas de iniciação, execução, monitoração e controle e encerramento. FLUXO DE ATIVIDADES: forma ordenada de se representar uma sequência lógica de atividades, tomadas de decisão e eventos. FORNECEDOR: ator que fornece os insumos para o processo ou atividade. Pode ser interno ou externo à organização.

250

HAND-OFFS: momentos em que as atividades no processo mudam de lane (raia) e, consequentemente, de executor, aumentando a possibilidade de haver perda na eficiência global do processo. HEURÍSTICAS: O uso de heurísticas estabelece um conjunto de considerações práticas para aplicação dos princípios de orientação a serviço que devem ser consideradas pelo analista/arquiteto ao executar tarefas em um projeto de desenvolvimento SOA. INSUMOS: são quaisquer informações, documentos, matérias-primas ou qualquer outro tipo de entrada utilizada pelo processo ou atividade que terá o seu valor incrementado na saída. INVENTÁRIO DE SERVIÇOS: Inventário de Serviços é uma coleção de serviços complementares independentemente padronizados e governados dentro de uma fronteira que representa uma corporação ou um segmento significativo de uma corporação. Quando uma organização tem múltiplos inventários de serviços, este termo é qualificado adicionalmente como Inventário de Serviços de Domínio. A dinâmica fundamental que um inventário de serviços deve suportar com sucesso é a composição e recomposição de serviços. Para atingir isso, o próprio inventário deve ser suportado por tecnologias, plataformas e infraestrutura com capacidade adequada. LANE (RAIA): estrutura visual que delimita as atividades que serão realizadas pelos diferentes atores dos processos. M ACROPROCESSO: composição de um conjunto de processos que entrega um produto importante na organização. M APA (DE PROCESSO): representação do fluxo de atividades do processo com nível de detalhamento intermediário, maior que o diagrama e menor que o modelo, fornecendo uma visão abrangente dos principais componentes do processo. Agrega maior detalhe acerca do processo e de alguns dos relacionamentos mais importantes com outros elementos, tais como atores, eventos e resultados. MIDDLEWARE SOA: Plataforma de SOA ou Middleware SOA é um conjunto de sistemas operativos que implementam diversos autômatos, agentes de serviços (mediadores) e serviços utilitários relacionados com a execução de tarefas comuns em SOA. Esses componentes de tempo de implantação e execução permitem que diversas partes da lógica de solução sejam centralizadas na plataforma, evitando que estas sejam desenvolvidas explicitamente durante o projeto e construção de serviços. Uma plataforma de SOA pode conter diversos módulos funcionais, que implementam diferentes padrões de projeto de SOA. Dentre estes, os mais comuns são: •

Barramento Corporativo de Serviços (Enterprise Service Bus – ESB): Middleware de processamento de mensageira e mediação de composições entre serviços, que implementa, entre outros, os seguintes padrões de projeto: o Transformação de Modelos de Dados; o Transformação de Formatos de Dados; o Conversão de Protocolo; o Roteamento Intermediário; o Enfileiramento Assíncrono; 251





o Balanceamento de Carga; o Mensageria Confiável; o Centralização de Políticas; o Centralização de Regras; e o Mensageria Direcionada por Eventos. Orquestrador ou Motor de Processos de Negócio: Middleware para orquestração de serviços, que implementa, entre outros, os seguintes padrões de projeto: o Abstração de Processo; o Centralização de Processo; o Centralização de Regras (Business Rules); o Processamento de Eventos Complexos (CEP); o Repositório de Estado; o Compensação de Transação com Serviços; e o Transação Atômica com Serviços. Diretório de Serviços (Service Registry): Middleware para disponibilização de contratos e demais metadados comunicativos de serviços. Normalmente associado à realização do padrão centralização de contratos e à implementação de registry, conforme o modelo UDDI.

MODELAGEM (DE PROCESSO): ato de criar um modelo de processo. MODELO (DE PROCESSO): representação de um determinado estado do negócio e dos respectivos recursos envolvidos, tais como pessoas, informação, instalações, automatização, finanças e insumos. MODELO DE ESTRUTURA DA INFORMAÇÃO: formato padrão de estrutura da informação, capaz de organizar de forma clara e concisa uma sequencia de níveis. MODELO DE NEGÓCIO: conjunto de informações que estruturam o negócio da empresa, isto é, o conjunto de atividades que buscam levar um valor específico ao cliente. OMG (OBJECT M ANAGEMENT GROUP): é uma organização internacional que define padrões abertos para aplicações orientadas a objetos e de modelagem (programas, sistemas e processos de negócio). ORIENTAÇÃO A SERVIÇOS: Orientação a Serviço é um paradigma de projeto que tem por objetivo a criação de unidades de lógica de solução individualmente projetadas que permitem sua utilização coletiva e reutilizável, em suporte à realização de um conjunto específico de objetivos estratégicos e benefícios associados com SOA e a Computação Orientada a Serviço. A lógica de solução projetada, em acordo com os princípios de orientação a serviço, pode ser qualificada com ‘orientada a serviço’ e unidades de lógica de solução orientadas a serviços são chamadas de serviços. A Orientação a Serviços é composta de uma série de princípios de projeto que coletivamente estabelecem essas características. ORQUESTRAÇÃO: Descreve as interações ocorridas no serviço no nível de mensagem, incluindo a lógica de negócio e a ordem de execução. A orquestração refere-se a um processo executável, onde este processo é sempre controlado a partir da perspectiva de um dos participantes. Diferentemente da coreografia, na orquestração há uma primazia de condução por parte de um dos participantes.

252

PADRÕES DE PROJETO: A aplicação sistemática de padrões de projeto (design patterns) de SOA resulta em melhores soluções orientadas a serviço. Recomenda-se que se desenvolva e mantenha um catálogo de padrões (design patterns catalog) com documentação acessível e regras de aplicação claramente estabelecidas. O desenvolvimento deste catálogo é igualmente indicado na Arquitetura de Referência SOA da Fábrica de Serviços, mas sua construção não faz parte do escopo desta metodologia. Esse catálogo deverá estar sob responsabilidade e gestão do Núcleo de Governança SOA. PAYLOAD: em computação, se refere à carga de uma transmissão de dados. Em SOA está comumente associado ao conteúdo de mensagens de entrada e saída enviadas quando da execução de uma capacidade de serviço. PERFIL ENVOLVIDO: Perfil que participa de determinada tarefa. PERFIL EXECUTOR: Perfil Responsável pela efetiva execução de determinada tarefa. PERFIL PROFISSIONAL: define um tipo de profissional, com suas respectivas capacidades profissionais associadas a um conjunto de atividades da unidade funcional (para unidades funcionais, a metodologia não define atores). PROCESSO: descreve um conjunto de atividades previamente estabelecidas com objetivo de determinar como o trabalho será realizado. Um processo possui é constituído de tarefas relacionadas entre si de forma lógica e coerente. Para cada processo, é apresentado um modelo de processo que define essa organização lógica, na forma de um fluxo de trabalho. Um processo possui um conjunto de entradas (de processo) e produz um conjunto de saídas (de processo) que geram valor à organização. Um processo ou uma tarefa complexa podem ser decompostos em subprocessos. PROCESSOS FINALÍSTICOS: também chamados de processos primários, são os processos relacionados às atividades fim da organização. PRODUTO: objeto entregue pela atividade ou processo realizado completamente. Nesse documento, pode ser considerado como algo tangível ou não. PROVEDOR: • •

Definição do W3C: Pessoa ou organização que está provendo o serviço; Definição do OMG: É a entidade que modela o tipo de provimento do serviço em uma relação consumidor/provedor. O provedor é o participante que entrega o resultado de uma interação com o serviço.

RECURSOS: meios utilizados para se realizar uma tarefa, atividade ou processo. Podem ser físicos, humanos, de conhecimento, informacionais ou outros. REGRAS DE NEGÓCIO: conjunto de diretrizes que orientam o executor do processo, seja ele humano ou máquina, a tomar decisões que estejam alinhadas ao Modelo de Negócio adotado. REQUISITANTE: •

Definição do W3C: Pessoa ou organização que deseja usar o serviço de um provedor;

253



Definição do OMG: Representa uma capacidade de um participante que é o consumidor de um serviço.

RESPONSABILIDADE: define atribuições específicas de uma unidade funcional no projeto de desenvolvimento de soluções orientadas a serviço. RESPONSÁVEL: perfil profissional que responde pela Unidade Funcional. REST (REPRESENTATIONAL STATE TRANFER): É um estilo (uma abordagem) alternativo para a construção de Web Services. SAÍDAS DE PROCESSO: artefatos gerados pelo processo. Muitos dos artefatos possuem templates definidos na metodologia. SERVIÇO (WEB): É a abstração do trabalho a ser provido em uma relação específica entre a entidade provedora e a requisitante. •



Definição do W3C: É um recurso abstrato que representa uma capacidade de efetuar tarefas que representam uma funcionalidade coerente do ponto de vista de entidades provedora e requisitante. Para ser usado, um serviço deve ser realizado por um agente provedor concreto; Definição do OMG: Representa uma capacidade de um participante que é a oferta de um serviço de um participante para outro, usando bem definidos termos, condições e interfaces.

Serviços são os elementos constitutivos básicos de uma SOA. Encapsulam capacidades (equivalente aos métodos) de forma discreta e autônoma e as expõem ao consumidor por uma ou mais interface definidas no Contrato de Serviço. Serviços são projetados de uma maneira bastante específica, aplicando-se a abordagem de projeto orientado a serviço, e são disponibilizados através de um ciclo de vida. Assim, no contexto de SOA e de orientação a serviço, o termo "serviço" tem conotações específicas relacionadas com uma única combinação de qualidades de projeto. Exemplos dessas qualidades incluem: independência, diferenciação, multi-propósito, compatibilidade, previsibilidade. Por definição, serviços são unidades de lógica de solução orientada a serviço. Uma lógica é considerada orientada a serviço quando orientação a serviço foi aplicada em seu projeto em uma extensão significativa. A criação e definição de serviços resultam de um processo de decomposição baseado na teoria da separação de interesses. Assim como em orientação a objetos, orientação a serviço tem sua própria abordagem para realizar a separação de interesses. SOA (SERVICE ORIENTED ARCHITECTURE): É um estilo de arquitetura de software cujo princípio fundamental estabelece que as funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços e descreve a disposição e os princípios que regem os elementos para provisão e intercâmbio de serviços entre entidades provedoras e requisitantes. A arquitetura SOA é fundamentada nos princípios da computação distribuída e utiliza o paradigma request/reply para estabelecer a comunicação entre as aplicações consumidoras e as aplicações que implementam os serviços. A Arquitetura Orientada a Serviço representa um modelo arquitetural que tem por objetivo melhorar a agilidade e a efetividade de custos de uma corporação enquanto reduz a peso da TI 254

na organização. SOA realiza isso posicionando serviços como meios primários de representação da lógica de solução e suporta Orientação a Serviço na realização de objetivos estratégicos associados com computação orientada a serviço. SOA é um modelo de arquitetura tecnológica para aplicações distribuídas com características próprias para suportar a realização de orientação a serviço. As características fundamentais de SOA são: ser direcionada pelo negócio, ser centrada na corporação e ser centrada na composição. SOAP (SIMPLE OBJECT ACCESS PROTOCOL): É um protocolo baseado em XML, destinado à troca de informação estruturada em ambiente distribuído. Ele pode operar sobre diversos protocolos, especialmente o HTTP, quando se trata de trocas de mensagem em Web Services. SQL (STRUCTURED QUERY LANGUAGE): É uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. SUBPROCESSO: são processos menores, que compõem outros processos de maior complexidade. TAREFA: descreve um trabalho que deve ser executado por um determinado conjunto de atores (em determinado prazo e com determinado esforço/custo). TEMPLATE: modelo de artefato de software. TO-BE: forma informal de se referir ao processo no momento do desenho. Faz referência ao estado futuro, de “como será” executado o processo pela organização. UNIDADE FUNCIONAL: agrupamentos lógicos de atividades e responsabilidades relacionadas ao processo de desenvolvimento de soluções orientadas a serviço. Unidades funcionais são classificadas ainda em dedicadas (aquelas que existem exclusivamente no contexto de atividades de desenvolvimento de soluções orientadas a serviço) e corporativas (aquelas cujas atividades se estendem a outros domínios funcionais, não exclusivos ao desenvolvimento de soluções orientadas a serviço). W3C (WORLD WIDE WEB CONSORTIUM): É a principal organização de padronização da World Wide Web. Consiste em um consórcio internacional, agregando empresas, órgãos governamentais e organizações independentes com a finalidade de estabelecer padrões para a criação e a interpretação de conteúdos para a Web. WEB SERVICES: Tecnologia que permite a interoperabilidade entre diferentes sistemas, independente de plataforma e linguagem de programação. WSDL (WEB SERVICES DESCRIPTION LANGUAGE): É uma linguagem baseada em XML utilizada para descrever Web Services funcionando como um contrato do serviço. Trata-se de um documento escrito em XML que além de descrever o serviço, especifica como acessá-lo e quais as operações ou métodos disponíveis. XML (EXTENSIBLE MARKUP LANGUAGE): É uma linguagem de marcação recomendada pela W3C para a criação de documentos com dados organizados hierarquicamente, tais como textos, banco de dados, etc. O XML traz uma sintaxe básica que pode ser utilizada para compartilhar informações entre diferentes computadores e aplicações.

255

13 ANEXO A: TEMPLATES

256

More Documents from "Murilo Vidigal"

S08_44si.pdf
November 2019 7
Seme-100-q
October 2019 9
August 2019 7
April 2020 4