SOA: Service-oriented architecture



Documentos relacionados
Service Oriented Architecture (SOA)

Governança de TI. ITIL v.2&3. parte 1

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

MBA: Master in Project Management

Processos Técnicos - Aulas 4 e 5

Fábrica de Software 29/04/2015

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Abstraindo as Camadas de SOA & Aplicações Compostas

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos

Distribuidor de Mobilidade GUIA OUTSOURCING

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Governança Corporativa. A importância da Governança de TI e Segurança da Informação na estratégia empresarial.

3. Processos, o que é isto? Encontramos vários conceitos de processos, conforme observarmos abaixo:

SISTEMAS DISTRIBUÍDOS

MECANISMOS PARA GOVERNANÇA DE T.I. IMPLEMENTAÇÃO DA. Prof. Angelo Augusto Frozza, M.Sc.

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

2 Conceitos relativos a Web services e sua composição

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Engenharia de Requisitos

Fase 1: Engenharia de Produto

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

Gerenciamento de Níveis de Serviço

Introdução ao Modelos de Duas Camadas Cliente Servidor

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

APOO Análise e Projeto Orientado a Objetos. Requisitos

Engenharia de Software III

Proposta de Avaliação de Empresas para o uso do SAAS

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Ferramentas unificadas de SOA alinham negócios e TI IDG Research aponta grandes ganhos potenciais a partir de uma solução integrada

UFG - Instituto de Informática

TECNOLOGIA DA INFORMAÇÃO. Prof. Leandro Schunk

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

IBM Software Demos The Front-End to SOA

Implantação. Prof. Eduardo H. S. Oliveira

15/09/2015. Gestão e Governança de TI. Modelo de Governança em TI. A entrega de valor. A entrega de valor. A entrega de valor. A entrega de valor

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Especificações da oferta Gerenciamento de dispositivos distribuídos: Gerenciamento de ativos

Universidade Paulista

Projeto de Monitoração e Melhoria Contínua com Six-Sigma, IoT e Big Data

SOA 2.0 ou Event-Driven SOA

Registro e Acompanhamento de Chamados

Fundamentos de Sistemas Operacionais

Web Services. (Introdução)

Tecnologia da Informação: Otimizando Produtividade e Manutenção Industrial

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Obtendo Qualidade com SOA

Arquitetura dos Sistemas de Informação Distribuídos

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Exame de Fundamentos da ITIL

TRIBUNAL REGIONAL FEDERAL DA 2ª REGIÃO Secretaria de Tecnologia da Informação

Engª de Produção Prof.: Jesiel Brito. Sistemas Integrados de Produção ERP. Enterprise Resources Planning

PMONow! Serviço de Implantação de um Escritório de Projetos

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Governança AMIGA. Para baixar o modelo de como fazer PDTI:

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

UFG - Instituto de Informática

ARQUITETURA DE SOFTWARE

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

O que é Gerenciamento de Redes de Computadores? A gerência de redes de computadores consiste no desenvolvimento, integração e coordenação do

Sistemas Distribuídos

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

ERP Enterprise Resource Planning

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Estratégia de TI. Posicionamento Estratégico da TI: como atingir o alinhamento com o negócio. Conhecimento em Tecnologia da Informação

Módulo 2. Estrutura da norma ISO 9001:2008 Sistemas de Gestão da Qualidade Requisitos 0, 1, 2, 3 e 4/4, Exercícios

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

3 SCS: Sistema de Componentes de Software

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Sistemas de Informação

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Material de Apoio. Sistema de Informação Gerencial (SIG)

Padrões. Projeto (Design) de Software

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

SAM GERENCIAMENTO DE ATIVOS DE SOFTWARE

[ Empowering Business, Architecting IT. ]

Conceitos de Banco de Dados

O QUE VOCÊ PRECISA SABER SOBRE A EVOLUÇÃO DO AMBIENTE DE TRABALHO Adaptando-se às Novas e Avançadas Tecnologias de Comunicações

Wesley Vaz, MSc., CISA

BPM E SOA MODELO PARA O DESENVOLVIMENTO CORPORATIVO

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Transcrição:

SOA: Service-oriented architecture

Roteiro Breve História O que é Arquitetura de Software? O que é SOA? Serviços Infraestrutura Composição Sua empresa está preparada para SOA?

Breve História Uma empresa de Seguros vendia apólices para as outras empresas; Ao passar dos anos, houve a necessidade de adquirir/elaborar softwares para gerencia: Os contratos dos clientes; O financeiro; Entre outros setores; Até meados de 1990, os sistemas atendiam todas necessidades da empresa;

Breve História Ao passar dos anos, este empresa teve que comprar outras; Problema, os sistemas das outras empresas não eram compatíveis com a da atual; A pessoal de TI necessita de tempo (2 anos) para integrar os sistemas; O custo é elevado e a empresa pode decidir novos rumos durante esse tempo (levando mais tempo para se adequar); Deste modo, há um conflito entre as partes e demora para na integração dos sistemas;

Breve História Gerentes Não entendem ( e nem devem ) das limitações dos hardware e software da empresa; São focados em decidir o rumo negócio, e; Determinar as funções de negócio (as atividades); Pessoal de TI Não entendem completamente as funções de negócio; Sabem das restrições das tecnologias usadas dentro da empresa; Qualquer alteração do sistema, necessita de tempo para projetar e colocar em prática;

Breve História A solução para este problema é a utilização de SOA, pois: Por utilizar padrões de integração de sistema; Substitui, gradativamente, os sistemas legados por serviços; Serviços podem ser reutilização por outros serviços; O pessoal de TI e os Gerentes podem ter uma visão uniforme do sistema por utiliza uma linguagem de alto nível

Breve História Gerentes e Pessoal de TI Antes eram separados, agora podem se unir para determinarem juntos a melhor solução; Eles tem visão uniforme sobre o negócio e tecnologia; As limitações de software e hardware continuam, no entanto, os gerentes podem avaliar melhor o impacto sobre o seu negócio;

O que é Arquitetura de Software? Def 1: Uma arquitetura é um conjunto de decisões importantes sobre a organização do software [Booch, Rumbaugh e Jacobson] Def 2: Arquitetura de software é a estrutura do software que incluie lementos de software, suas propriedades visíveis externamente e o relacionamento entre eles [Brass, Clements e Kazman] Def 3: Arquitetura de software é a estrutura organizacional de um sistema [IEEE Standard 610.12] Def 4: Arquitetura de software é um conjunto de statements que descrevem componentes de software e associam a funcionalidade do sistema a estes componentes. Ela descreve a estrutura técnica, restrições, e características dos componentes e as interfaces entre eles. A arquitetura é uma visão inicial do sistema que funciona como uma plano em alto nível para a sua construção [Krazig, Banke, Slama]

O que é SOA? SOA é o acrônimo de Service-Oriented Architecture (Arquitetura orientada a Serviço); SOA pode se entender como: uma filosofia, concepção, representação ou um paradigma; SOA não é uma ferramenta, não dá para comprar; As funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços; também se relaciona com determinadas políticas e conjuntos de "boas práticas"; facilitar a tarefa de encontrar, definir e gerenciar os serviços disponibilizados;

O que é SOA? Palavra chave para utilizar SOA: flexibilidade e reutilização Pode utilizar qualquer sistema de forma fácil e rápida Pode reutilizar um sistema para outra finalidade sem haver a necessidade alterar o código SOA tem 3 bases fundamentais: Serviço: unidade básica de um sistema distribuído; Enterprise Service Bus (ESB): infraestrutura para a comunicação entre serviço que suporta diversas tecnologias e plataformas; Fraco Acoplamento: reduzir a dependência entre serviço, deste modo, poder reutilizar um serviço sem ter a necessidade alterá-lo;

O que é SOA?

O que é SOA? Application Front-End Aplicação responsável por interagir com os usuários ou realizar alguma tarefa periodicamente; GUI (ex. Aplicação Web) Batch (executa periodicamente uma atividade) Repassa os dados para os serviços correspondentes;

O que é SOA? Serviço Encapsulam um conceito de alto nível do negócio; É uma caixa-preta (esconde as complexidades); Possui 3 componentes: Contrato Interface Implementação

O que é SOA? Serviço Serviço A Interface A - Operação 1 - Operação 2 - Operação 3 Contrato Implementação Interface B - Operação 1 - Operação 2 - Operação 3 Lógica Dado

O que é SOA? Serviço - Contrato Especificação informal da finalidade, funcionalidade, restrições e uso do serviço Pode (não é obrigatório) incluir a definição da interface através de linguagens como IDL (Interface Definition Language) (ex. WSDL); Pode conter questões da qualidade de serviço (QoS); Ou até SLA; Contrato possui mais informação do que a interface.

O que é SOA? Serviço - Interface Defini um conjunto de operações oferecidas pelo serviço; Da interface são gerados os Stubs e Skeletons;

O que é SOA? Serviço - Implementação O código do serviço; Realização técnica que atende ao contrato Consiste de um+ programas, configurações e base de dados

O que é SOA? Serviço - Implementação Consiste em duas partes: Na lógica do negócio; Dados (ou recursos de máquina);

O que é SOA? Repositório de Serviços Também um serviço, no entanto, com função especial de armazena os contratos/referencias dos demais serviços oferecidos; Permite a descrição, publicação, busca e binding de serviços;

O que é SOA? Service Bus (canal de comunicação) Também um serviço, no entanto, com função especial de armazena os contratos/referencias dos demais serviços oferecidos; Permite a descrição, publicação, busca e binding de serviços;

O que é SOA? Service Bus (canal de comunicação) A infraestrutura é a que conecta os serviços; Fornece múltiplos canais para acessar o serviço (eg., via dispositivo moveis) sobre varias redes (eg., bluetooth); Elemento chave: Entrepise Service Bus (ESB)

Entrepise Service Bus

Entrepise Service Bus permite a implementação, implantação e gerenciamento de aplicações distribuídas conjunto de funcionalidades implementadas por um middleware facilita o desenvolvimento de aplicações executando em ambientes heterogêneos e usando formato de dados distintos

Entrepise Service Bus fornece interoperabilidade entre aplicações adotando adaptadores e interfaces baseadas em padrões funciona como um meio de transporte evolução dos mecanismos de store-and-forward encontrados em middleware (e.g., JMS) aplicações vistas como serviços fornece controle de mensagem, segurança, políticas, e confiabilidade

Entrepise Service Bus ESB baseados em container Serviço vive dentro de um container que expõe a funcionalidade/não-funcionalidade do serviço para o mundo exterior Funções básicas Conectividade / padrões de troca de mensagens Provê facilidades de transação, segurança, métricas de desempenho Suporte a Configuração dinâmica Monitoramento do comportamento/estado do serviços Conversão de protocolo/dados Descoberta de serviço

Dá para adaptar um software legado para SOA? Sim. Há vários maneiras de oferecer um software como serviço.

Tipos de Serviço em SOA Básico serviços simples em SOA (base); Tipos: Data-centric e Logic-centric Intermediários Funcionam como mediadores (stateless) e ajudam a resolver gaps tecnológicos ou conceituais da arquitetura Tipos (mais utilizados): Gateway e Adaptador

Tipos de Serviço em SOA Básico - Logic-Centric Encapsulam algoritmos ou regras de negócio Em aplicações tradicionais isto é encapsulado em bibliotecas ou frameworks

Tipos de Serviço em SOA Básico - Logic-Centric Encapsula seus dados, escondendo onde e como está sendo salvo; Trata dados persistentes: armazenamento, recuperação, mecanismos de lock e gerenciamento de transação;

Tipos de Serviço em SOA Intermediário - Gateway Funcionam como proxies para os serviços básicos (negócio) Representam a funcionalidade de serviços básicos em um ambiente que é tecnologicamente diferente do ambiente onde este serviço executa

Tipos de Serviço em SOA Intermediário - Adaptador Mapeia as assinaturas/formatos de mensagens para uma necessidade dos clientes e.g., fusão da empresa A e empresa B, ambas já fornecem serviços, dados dos clientes

Qual a vantagem de trabalhar com serviço? Pode elaborar composição de serviço.

Composição de Serviço Quando um serviço é composto apenas por operações oferecidas por outros serviços, dizemos que este serviço é uma composição de outros Serviços mais complexos são formados por serviços mais simples Uma composição de serviços também é oferecida como serviços Há duas formas de composição: Orquestração Coreografia

Composição de Serviço Orquestração O controle da composição é centralizada Refere-se a execução (imperativo) ex. WS-BPEL (com uma engine de BPEL) Serviço B Serviço A Serviço C Serviço D

Composição de Serviço Orquestração

Não há um controle centralizado da composição; Refere-se a observação (declarativo); e.g., WS-CDL Composição de Serviço Coreografia Serviço B Serviço A Serviço C Serviço D

Composição de Serviço Exemplo Exemplo: Sinal de Trânsito: representa uma orquestração, onde os eventos são controlados de forma centralizada pelo sinal. Giradouro: representa uma coreografia, onde cada carro segue regras pré-definidas

Mas, como um gerente de negócio pode planejar melhor um serviço? Através de linguagens gráficas, como BPM.

Business Process Management BPM visa o mapeamento e a simulação de um processo; Podendo planejar melhor as ações da empresa; Está na categoria de automação dos negócio; Visualmente, é possível planejar um serviço; São utilizados métodos, técnicas e ferramentas para analisar, modelar, publicar, otimizar e controlar processos; Em SOA, processo são, podem ser entendidos, os serviço; recomendo: www.soainstitute.org/articles/article/article/bringing-bpm-and-soatogether-for-maximum-business-value.html

Business Process Management

Business Process Management

Teste: a empresa (cliente, onde você trabalha ) está pronta para SOA?

Teste: a empresa está pronta para SOA? Antes de implantar SOA, é necessário saber se a empresa necessita, ou não, de mudança; Para isto, foram elaborados 10 perguntas (apresentadas a seguir); As pergunta tem peso diferentes, pois tem assunto que são mais importantes do que outros; As respostas devem ser de 1 a 10 1: se a realidade da empresa não está próxima a descrição da questão; 10: muito próxima da realidade da empresa;

Teste: a empresa está pronta para SOA? 1 Questão O ecossistema de negócio é amplo e complexo? Ecossistema de negócio: empresas compram de fornecedores, contratam terceirizados, e vendem para clientes; Vamos tomar como exemplo um Pet shop; 1 caso loja simples, sem filiais e que tem poucos fornecedores; Não a necessidade de diversos software para gerenciar a empresa; Caso a empresa se assemelha a esse cenário, o valor está próximo de 1; 2 caso uma rede de loja, vários fornecedores e possui parceiros de venda; Tem diversos software para gerenciar adequadamente os setores da empresa; Caso a empresa se assemelha a esse cenário, o valor está próximo de

Teste: a empresa está pronta para SOA? 2 Questão A área de atuação da empresa muda rapidamente? SOA exige um investimento de tempo e esforço; Se os sistemas atuais atendem a demanda, talvez não seja preciso mudá-los; 1 caso: cimento A poucos fornecedores de cimentos existentes (pouca alteração de preço); Os software existentes pode atender a demanda atual da empresa; Caso a empresa se assemelha a esse cenário, o valor está próximo de 1; 2 caso: mídia para Internet Areá muito dinâmica; Sempre há uma novidade que os sistemas devem dá suporte; Caso a empresa se assemelha a esse cenário, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? 3 Questão Foi desenvolvido algum software proprietário com algum código especial que é utilizado até hoje? Código importantes que representam a alma da companhia; Exemplo, o anexador de páginas do Google e bancos; Geralmente, essas joias da coroa da companhia não podem ser alteradas facilmente; Se a empresa não tem tantas joias da coroa, o valor está próximo de 1; Se a empresa tem várias técnicas proprietárias, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? 4 Questão Os sistemas da empresa são flexíveis? Os sistemas tem uma arquitetura modular (plugável)? É possível adicionar/remover partes do sistema de forma rápida? Segue algum padrão de projeto? Se a maioria das respostas forem NÃO, o valor está próximo de 1; Se foi SIM, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? 5 Questão A empresa está preparada para adotar mudanças? Há o interesse de compartilhar aplicações (código, documento e processos) em comum entre setores distintos? O controle de TI é centralizado? Se a maioria das respostas forem NÃO, o valor está próximo de 1; Se foi SIM, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? 6 Questão Os serviços oferecidos pelo TI estão com um bom desempenho e atendem a expectativa da empresa? Uma infraestrutura de TI de fraca performance vai diminuir o desempenho do negócio quando mover para SOA; Como SOA presa a reutilização, caso haja um erro em um serviço, afetará outros sistemas; Caso o desempenho dos sistemas NÃO atendem o interesse da empresa, o valor está próximo de 1; Se foi SIM, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? 7 Questão A tecnologia da empresa pode suportar padrões corporativos e governança de TI? Há alguma regra de acesso ao sistema? A empresa consegue certificar que apenas as pessoas certas estão tendo acesso aos sistemas? O pessoal de TI segue algum padrão de governança? Caso a maioria das respostas sejam NÃO, o valor está próximo de 1; Se foi SIM, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? 8 Questão A empresa sabe onde estão as suas regras de negócios? Regras de negócios: condições, fluxo de dados e etc; Exemplo: porcentagem de comissão dos vendedores; Uma regra de negócio pode ser utilizada por todos os sistemas? Qual é a regra de negócio vigente? Caso NÃO saibam definir as regras, o valor está próximo de 1; Se foi SIM, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? 9 Questão Os seus dados corporativos são flexíveis e você confia na qualidade deles? Não entendi.

Teste: a empresa está pronta para SOA? 10 Questão Você pode conectar as implementações do software da empresa a entidades fora da empresa? Seus parceiros e fornecedores possuem softwares, você consegue se comunicar com eles? Há um planejamento de interagir com softwares fora da empresa? Caso NÃO tenha a necessidade de integrar com os outros sistemas, o valor está próximo de 1; Se TEM, o valor está próximo de 10;

Teste: a empresa está pronta para SOA? Pontuação 1 Questão: Se a resposta foi 3 ou maior, adicione 5 pontos 2 Questão: Se a resposta foi 3 ou maior, adicione 6 pontos 3 Questão: Se a resposta foi 3 ou maior, adicione 5 pontos 4 Questão: Se a resposta foi 5 ou maior, adicione 3 pontos 5 Questão: Se a resposta foi 5 ou maior, adicione 10 pontos 6 Questão: Se a resposta foi 5 ou maior, adicione 5 pontos 7 Questão: Se a resposta foi 5 ou maior, adicione 10 pontos 8 Questão: Se a resposta foi 4 ou maior, adicione 10 pontos 9 Questão: Se a resposta foi 5 ou maior, adicione 15 pontos 10 Questão: Se a resposta foi 4 ou maior, adicione 5 pontos

Teste: a empresa está pronta para SOA? Resultado X < 11: SOA não pode ser a abordagem ideal para a empresa; X < 34: A empresa ainda não está pronta para implantar SOA; 34 < X < 117: A um bom encaixe entre SOA e a empresa; X => 117: A empresa tem uma boa posição para começar SOA; 117 < X < 150: Pode começar a planejar SOA para a empresa; X > 150: SOA é uma tecnologia ideal para a empresa; nota: é sempre bom revisar as questões com nota baixa para entender melhor a empresa.