Apr 21, 2015
Desmistificando SOA Desmistificando SOA SERVICE-ORIENTED ARCHITECTURESERVICE-ORIENTED ARCHITECTURE
Patrick de Faria – [email protected] de Faria – [email protected]
Desmistificando SOA Desmistificando SOA
Módulo 1 – Primeiro os NegóciosMódulo 1 – Primeiro os Negócios
Ambiente Competitivo Atual
Módulo 1 – Primeiro os Negócios
• Hiper-Competição
• Clientes:• Cada vez compram menos• Cada vez mais exigentes• Cada vez menos fiéis
• Rápidos ciclos de produtos
• Empresas precisam ser capazes de responder rapidamente a competição, as demandas dos consumidores e as mudanças do mercado
• Empresas precisam ser ágeis e flexíveis
Hiper-Competição:
Significa estar o tempo todo criando estratégias para conseguir vantagens e eliminar as da concorrência
Dismistificando SOA
O Valor do Tempo de Resposta
Módulo 1 – Primeiro os Negócios
Time to Market:
Tempo entre conceber e lançar determinado produto ou serviço
Dismistificando SOA
Agilidade = Diferencial Competitivo
Surgem as Perguntas…
Módulo 1 – Primeiro os Negócios
• Como se tornar mais competitivo ? • Como aumentar a agilidade para mudança e inovação ?
• Como responder rapidamente ?
• Como ser flexível o suficiente para reduzir time to market ?
E como fazer tudo isso...
• Tendo o que reduzir custos e
• Conviver com ambientes de TI heterogêneos e cada vez mais complexos
Dismistificando SOA
Cabo de Guerra
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Negócios:
•Aumentando nível e volume de mudanças e inovação•Pressionando por rapidez•Virtualizando
TI:
•Reduzir Custos• Lidar com Ambientes Heterogêneos•Maximizar os ativos de TI
Olhando para o Passado Recente
Módulo 1 – Primeiro os Negócios
• Empresas nos últimos anos aplicaram dezenas de teorias para aumentarem sua competitividade
• TQM• Six-Sigma• ISO• Re-engenharia• Outsourcing• Rightsourcing• ...
• Levando a competição para trincheiras da:
• Produtividade• Menor Custo
Dismistificando SOA
Resultado
Módulo 1 – Primeiro os Negócios
• Eficiência Operacional• Redução de Custos• Aumento da Satisfação do Cliente
Entretanto:
• Fácil de copiar • Não garante tradução sustentável de ganhos • Soma Zero a longo prazo • Pressão sobre os custos e sobre os preços • Competição baseada em Eficiência Operacional normalmente são mutuamente destrutivas
Dismistificando SOA
Eficiência Operacional:
Executar atividades similares melhor que o concorrente
Fronteira da Produtividade
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Fronteira da Produtividade:
É o somatório de todas as melhores práticas existentes em um dado momento ou o máximo valor que uma empresa pode criar para um dado custo usando a melhor tecnologia, habilidades, técnicas de gerenciamento e ferramentas.
Porter, HBR, 1996
Soma Zero
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Concorrentes Margens$
EMPRESA
Exigências
Ontem
Concorrentes Margens$
EMPRESA
Exigências
Amanhã
Concorrentes Margens$
EMPRESA
Exigências
Ontem
Concorrentes Margens$
EMPRESA
Exigências
Margens$
EMPRESA
Exigências
$
EMPRESA
Exigências
Ontem
Concorrentes Margens$
EMPRESA
Exigências
Amanhã
Eficiência Operacional é importante mas não é suficiente!
Segundo Michael Porter: “ A concorrência moderna tornou muito difícil manter vantagens em relação aos seus concorrentes. A empresas passaram a imitar umas às outras, em ritmo acelerado. Restam apenas dois caminhos:
• Diferenciação
• Preço Baixo
Concluindo
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Michael Porter:
Michael Porter é considerado a maior autoridade mundial em estratégia competitiva. É autor dos maiores best-sellers internacionais na área, entre os quais se destacam: Vantagem competitiva e Estratégia competitiva
Sabemos que há um limite para compressão dos preços sem prejuízo a saúde financeira das empresas e/ou a qualidade do serviço ou produto.
Logo pedimos licença a Michael Porter para afirmar:
Só existe o caminho, o da diferenciação.
Portanto, seja Distinto ou seja Extinto!
Apenas um Caminho
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Empresas só podem superar rivais, conquistar mercados e manter clientes se puderem estabelecer uma diferença ou singularidade que possa preservar .
Existente duas maneiras de se diferenciar:
• Diferenciação por Custos – Eficiência Operacional
• Diferenciação por Atividade – Posicionamento Estratégico
• INOVAR e INOVAR
Apenas um Caminho
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Posicionamento Estratégico:
Executar atividades diferentes dos rivais ou executar atividades similares de diferentes meios ou maneiras.
Posicionamento Estratégico tem haver com TI
Desalinhamento é :
A diferença de velocidade entre TI e Negócios é a principal causa do fraco alinhamento entre estas duas áreas.
• Existem casos em que o negócio tem sido guiado pelas restrições de TI
• “Você sabe quanto tempo vai demorar para fazer isso ?”
Desalinhamento
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Alinhameno:
• TI agrega real valor ao plano de negócios;•Não resiste às mudanças;•Combate a resistência às mudanças; e•É planejado•Dinâmico
The Squandred ComputerPaul StrassmannIEP (1997)
Atualmente empresas sofrem de ineficiência e falta de agilidade. Isso significa que elas não são capazes de atender rápido o suficiente as requisições de negócio
através de sua infra-estrutura de TI, efetivamente limitando a capacidade de reação para as demandas crescentes e
constantes do mercado.
Juntando Tudo
Módulo 1 – Primeiro os NegóciosDismistificando SOA
O Fenômeno das Solicitações de Mudanças
Módulo 1 – Primeiro os NegóciosDismistificando SOA
• Dificuldades de realizar mudanças estruturais
• O gerente de projeto e os participantes chaves foram para outros projetos
• A manutenção é realizadas por profissionais menos qualificados
• Perde-se o lobby interno e apoio em função de projetos mais prioritários
• Orçamentos apertados para consertos e manutenções
• Raramente existe orçamento para fazer refactoring
O Fenômeno das Solicitações de Mudanças
Módulo 1 – Primeiro os NegóciosDismistificando SOA
Refactoring:
Reestruturar um software aplicando mudanças em seu desenho,sem alterar o comportamento externo ou observável
Desmistificando SOA Desmistificando SOA
Módulo 2 – Os FundamentosMódulo 2 – Os Fundamentos
• Componentes de software que representam um processo, atividade ou tarefa de negócio.
• São componentes de alto nível, orientados ao negócio.
• Tecnicamente falando:
• Um Serviço é módulo de aplicação alto-contido• Acessível Remotamente
• Frequentemente os termos “Client” e “Server” são usados como sinônimos para “Service Consumer” e “Service Provider” repectivamente
O Conceito de Serviço
Módulo 2 – Os FundamentosDismistificando SOA
• Provém funcionalidades que podem ser re-usadas em diferentes aplicações
• Serviços são destinados para uso público e não de um específico Cliente
• Serviços encapsula alguma atividade de uma determinada complexidade
• Serviços deixam o mundo mais convenientes para o “Service Consumer”
• Um apropriado padrão de interação e comunicação deve existe entre “Service Provider” e “Service Consumer”
O Conceito de Serviço
Módulo 2 – Os FundamentosDismistificando SOA
• O Fator crucial no desenvolvimento de serviços é a questão do Grau de Abstração
• Podem existir vários tipos de Serviços
• Serviços Básicos ( Log, Pegar Informação do Cliente )• Serviços de Intermediários ( Gateways, Facades, Adapters )• Serviços de Transações ( Abrir Conta ) • Serviços de Negócios ( Processar Pedido )
O Conceito de Serviço
Módulo 2 – Os FundamentosDismistificando SOA
Fraco Acoplamento ( Loosing Coupled )
Módulo 2 – Os FundamentosDismistificando SOA
• Um Consumidor “chama” um provedor de serviço sem se importar como sua Localização, a Plataforma onde ele se encontra, a linguagem em que foi desenvolvido ou mesmo o protocolo de comunicação que ele utiliza
• Serviços são componentes de softwares desenvolvidos de maneira fracamente acoplada
Exemplos de Serviços
Módulo 2 – Os FundamentosDismistificando SOA
Caso do Cliente Inativo. Possíveis Serviços: • ConsultaCliente()• ClienteEstaCadastrado()• VerificaPosiçãoFInanceira() • ConsultaCPFSERASA()
Um Web Service é uma peça de software que está em conformidade com um conjunto de padrões abertos para
interoperabilidade. Esses padrões permitem que programas de computador troquem informação através de
mensagens, sem se importar com a plataforma de hardware, sistema operacional, infra-estrutura de rede ou
linguagem de programação.
Web Services
Módulo 2 – Os FundamentosDismistificando SOA
Web Services e suas Tecnologias
Módulo 2 – Os FundamentosDismistificando SOA
Web Services dependem de três tecnologias inter-relacionadas, baseadas no padrão XML:
• Simple Object Access Protocol (SOAP) — Protocolo para a troca de mensagens • Web Services Description Language (WSDL) — O documento que descreve exatamente o que o web service faz e como invoca-lo
• Universal Discovery, Description, and Integration (UDDI) — O diretório de web services que estão disponíveis para o uso
Web Services
Módulo 2 – Os FundamentosDismistificando SOA
Sem Web Services:
• Interface proprietária• Interface para envio e recebimento
Com Web Services:
• Interface universalmente aceitas• XML e SOAP• Ambos computadores entendem SOAP• Tráfego através de HTTP• JMS, FTP, SMTP ....
Web Services
Módulo 2 – Os FundamentosDismistificando SOA
Em ambientes de computação distribuídas utilização de SOAP sobre protocolos de internet tornam Web Services universais
• Operações em Web Services tipicamente envolvem Requisição e Resposta
• Existe no mínimo um Consumidor e um Provedor para cada transação
• Um Provedor pode servir a centenas de consumidores em diferentes computadores
Web Services e suas Tecnologias
Módulo 2 – Os FundamentosDismistificando SOA
Web Services - SOAP
Módulo 2 – Os FundamentosDismistificando SOA
• SOAP é a “língua franca” dos web services, • Documento estruturado em XML na qual as mensagens dos web services são construídas
Web Services - WSDL
Módulo 2 – Os FundamentosDismistificando SOA
• O WSDL é um documento estruturado em XML que descreve exatamente como um web service específico trabalha
• Mensagens SOAP podem ser geradas automaticamente a partir do documento WSDL
• Web services são conhecidos como “self-describing” em função das propriedades do WSDL
Web Services - UDDI
Módulo 2 – Os FundamentosDismistificando SOA
• UDDI oferece um mecanismo para clientes procurarem web services
• Usando UDDI clientes podem dinamicamente pesquisar e descobrir serviços oferecidos por um provedor de serviços
• UDDI funciona como uma espécie de “páginas amarelas”. Se precisar de serviço procure no UDDI
• Clientes podem encontrar serviços usando diferentes tipos de categorização
O que Web Services podem fazer
Módulo 2 – Os FundamentosDismistificando SOA
Comunicação entre sistemas de fornecedores diferentes ( Loose Coupling )
Limites dos Web Services
Módulo 2 – Os FundamentosDismistificando SOA
• Latência
• XML são considerados lentos• Web Services devem ser concebidos para função de alto nível
• Segurança
• Expor dados via padrões abertos pode ser perigoso• Não foram concebidos com essa preocupação
• Gerenciamento
• Integrações ponto-a-ponto• Monitoramento de performancee e disponibilidade• Controle de Versão
Desmistificando SOA Desmistificando SOA
Módulo 3 – Bem-Vindo a SOAMódulo 3 – Bem-Vindo a SOA
Empresas em Direção a SOA
Módulo 3 – Bem-vindo ao SOADismistificando SOA
Definição do Conceito
Módulo 3 – Bem-vindo ao SOADismistificando SOA
É uma estratégia que propõe a organização dos ativos de software de forma que eles possam representar
Processos, Atividades ou Tarefas de Negócio. Tais representações são chamadas de Serviços, que devem ser
baseados em padrões e facilmente combinados e reutilizados visando a satisfação dos requerimentos do
negócio.
Mais uma definição…
Módulo 3 – Bem-vindo ao SOADismistificando SOA
SOA é a implementação de uma plataforma de serviços, que significa elementos de processo de negócios, que podem ser combinados a recombinados em diferentes
soluções e cenários, como determinado pelas necessidades dos negócios. A capacidade de integrar e
recombinar serviços prover uma maior aproximação entre o negócios e TI bem como maior flexibilidade para
resolver novas situações.
Sobre SOA
Módulo 3 – Bem-vindo ao SOADismistificando SOA
• SOA (Service Oriented Architeture) significa Arquitetura orientada a serviços [1970].
• SOA não é orientado a objetos [1980]. Muito menos implementar web services
• Bons desenvolvedores estruturados implementam as características de código do SOA (dados só acessíveis via rotinas específicas, rotinas de cálculo comuns, etc).
• A diferença é a fatoração. É o olhar que damos a estrutura e volatilidade das rotinas em relação ao ciclo de vida do negócio.
Sobre SOA
Módulo 3 – Bem-vindo ao SOADismistificando SOA
• Dar ao software um ciclo de vida igual ao do negócio é uma vantagem sensível.
• Fraco acoplamento ( loose-coupled) dos serviços;
• Independência de tecnologia e protocolos;
• Uso irrestrito de padrões
• Incentivo à reutilização de ativos
• SOA não é aplicação N-TIER
SOA Permite
Módulo 3 – Bem-vindo ao SOADismistificando SOA
INTERFACESINTERFACES
FLUXO DO FLUXO DO PROCESSOPROCESSO
REGRAS DE REGRAS DE NEGÓCIONEGÓCIO
IMPLEMENTAÇÃOIMPLEMENTAÇÃO
INTEGRAÇÃOINTEGRAÇÃO
Aplicação MonolíticaAplicação Monolítica
Forte AcoplamentoForte Acoplamento
INTERFACESINTERFACES
Aplicação SOAAplicação SOA
Fraco AcoplamentoFraco Acoplamento
SERVIÇOSERVIÇO
FLUXO DE FLUXO DE CONTROLECONTROLE
SERVIÇOSERVIÇOSERVIÇOSERVIÇO
SERVIÇOSERVIÇOSERVIÇOSERVIÇO
SERVIÇOSERVIÇO
SERVIÇOSERVIÇOSERVIÇOSERVIÇO
SERVIÇOSERVIÇO
SERVIÇOSERVIÇOSERVIÇOSERVIÇO
SERVIÇOSERVIÇO
SOA Permite
Módulo 3 – Bem-vindo ao SOADismistificando SOA
• Desenvolvimento novos relacionamento com consumidores, parceiros e fornecedores
• Melhoramento do time to market • Criar soluções diferenciadas com alto valor para clientes e parceiros em tempo
• Redução de custos operacionais
• Justificativa de investimentos de TI de maneira mais clara
• Economia de tempo e dinheiro através da re-utilização
Camadas do SOA
Módulo 3 – Bem-vindo ao SOADismistificando SOA
O Paradigma Muda
Módulo 3 – Bem-vindo ao SOADismistificando SOA
Exemplo de Serviços II
Módulo 3 – Bem-vindo ao SOADismistificando SOA
Antes e Depois
Módulo 4 – Planejando e ModelandoDismistificando SOA
Componentes do SOA
Módulo 3 – Bem-vindo ao SOADismistificando SOA
SOASOA
AplicativosAplicativos ServiçosServiçosRepositório de Repositório de
ServiçosServiços
Barramento deBarramento de
ServiçosServiços
Componentes do SOA
Módulo 3 – Bem-vindo ao SOADismistificando SOA
APPLICATION FRONTENDS ( Aplicativos )
• Inicializam e controlam todas as atividades da empresa
• Existem diferentes tipo: com Interface gráfica, Aplicações WEB, …
• Podem ser agentes ou programas Batch
SERVICES ( Serviços )
• Componentes de software que representam um processo, atividade ou tarefa de negócio
• São componentes de alto nível, orientados ao negócio
• São compostos por lógica, dados, contrato e interfaces
Componentes do SOA
Módulo 3 – Bem-vindo ao SOADismistificando SOA
SERVICE REPOSITORY ( Repositório de Serviços )
• Um repositório de serviços que oferece facilidades para descobrir e obter informações sobre serviços
SERVICE BUS ( Barramento de Serviços )
• Interconecta todos os participantes de uma SOA, abstraindo a complexidade técnica que existe nas camadas inferiores.
Desmistificando SOA Desmistificando SOA
Módulo 4 – Planejando e ModelandoMódulo 4 – Planejando e Modelando
SOA e BPM
Módulo 4 – Planejando e ModelandoDismistificando SOA
• BPM ( Business Process Management ) - É um conceito de gerência geral que foca nos aspectos estratégicos e operacionais do mapeamento, análise e otimização de processos de negócio de uma empresa.
• BPM introduz o conceito de “process processing”
• BPMS (Business Process Management System) – Oferece plataforma técnica para realizar as inciativas propostas pelo BPM.
• BPMN é a notação usada pelas BPMS
• Implementam extensivamenteLinguagens de composição ( BPEL,...)
Evolução das linguagens de Composição
Módulo 4 – Planejando e ModelandoDismistificando SOA
Orquestrar X Coerografar
Módulo 4 – Planejando e ModelandoDismistificando SOA
Orquestrar
• Coordenação central• Os componentes não sabem quem esta envolvido
Coreografar
• Sem coordenação Central• Cada componente sabe exatamente quando executar sua operação
BPEL
Módulo 4 – Planejando e ModelandoDismistificando SOA
• BPEL ( Business Process Execution Language ) – Padrão de como especificar a orquestração de processos de negócios
• Baseado em XML
BPM, SOA e BPEL
Módulo 4 – Planejando e ModelandoDismistificando SOA
BPM, SOA e BPEL na prática
Módulo 4 – Planejando e ModelandoDismistificando SOA
Um gráfico vale mais que mil palavras
Módulo 3 – Bem-vindo ao SOADismistificando SOA
Processos de Negócios
( BPEL )
Serviços( WS )
Legado
Componentes
Ativ
os
Ativ
os
Entendendo o ESB
Módulo 4 – Planejando e ModelandoDismistificando SOA
• É um termo criado pelo Gartner Group.
• Seu conceito é de uma camada de desacoplamento entre aplicações (e não sistemas) já existentes.
• É implementado através de uma solução de mensageria de interface rica. •A função primária do ESB é conectividade, inter-conectar os participantes de um SOA • Facilita aplicações e serviços invocarem serviços
• ESB é uma abordagem para promover integração entre softwares já existentes através de uma coleção de midlewares diferentes
Entendendo o ESB
Módulo 4 – Planejando e ModelandoDismistificando SOA
Principais funcionalidades
• Heterogenia de Tecnologias – O ESB deve conectar uma variedade de diferentes tecnologias possibilitando a comunicação de participantes baseados em diferentes linguagens de programação, sistemas operacionais
Heterogenia de Comunicação – O ESB deve oferecer uma variedade de conceitos de comunicação permitindo diferentes modos de comunicação entre os participantes.
• Serviços Técnicos – O ESB pode prover serviços como LOG, Auditoria, Segurança e Transformação.
• ou pela definição da IBM – Transporte, Mediação e Qualidade do Serviço ( Quality of Service - QoS ) e Web Service Gateway
Entendendo o ESB
Módulo 4 – Planejando e ModelandoDismistificando SOA
Entendendo ESB II
Módulo 3 – Bem-vindo ao SOADismistificando SOA
Entendendo ESB III
Módulo 3 – Bem-vindo ao SOADismistificando SOA
Entendendo ESB IV
Módulo 3 – Bem-vindo ao SOADismistificando SOA
O Programa SOA
Módulo 4 – Planejando e ModelandoDismistificando SOA
• SOA é uma iniciativa de longo prazo (3 – 5 anos)
• Compreende a execução de dezenas ou centenas de projetos
• Projetos que devem respeitar Estruturas, Processos e Padrões
• Além (ou apesar) de adotarem integralmente o conceito de “Acoplamento Fraco” que caracteriza os Serviços
Programa:
Segundo PMI-PMBOK, um programa consiste em um conjunto de projetos
Projetos SOA
Módulo 4 – Planejando e ModelandoDismistificando SOA
• Projetos são de pequeno porte (2 – 8 semanas);
• Exceto o projeto de implementação do ESB, que deve evoluir gradualmente e pode durar meses;
• Proximidade com as áreas de negócio é fundamental para o sucesso assim como a aderência aos padrões;
Enganos comuns
Módulo 4 – Planejando e ModelandoDismistificando SOA
1. Argumentar sobre o conceito ao invés sobre o como fazer
2. Confundir Web Services com SOA
3. Deixar SOA exclusivamente nas mãos de TI
4. Achar que se pode comprar SOA de um fornecedor
5. Construir SOA “do zero”
6. Usar um processo Cascata ( “waterfall” )
7. Tornar SOA muito complicado
Primeiros Passos
Módulo 4 – Planejando e ModelandoDismistificando SOA
• Identificar 1 (um!) processo de negócio que:- Componha o ‘core business’
- Seja ‘nervoso’ (volátil)- Tenha relevância na cadeia de valor- Esteja ‘mal-atendido’ por TI (e esteja no backlog de manutenção!)
• Definir um “Rabisco de Processo”• Identificar e Classificar todos os prováveis Serviços• Aferir capacidade de reuso dos prováveis Serviços
• Avaliar:- Projeto SOA (overhead reuso) X Tradicional
- Redução do Custo de Propriedade
• Rabiscar um “Plano Arquitetônico”• Bancar o primeiro “Projeto SOA”!
Desmistificando SOA Desmistificando SOA
Módulo 5 – SOA em AçãoMódulo 5 – SOA em Ação
SOA em B2B
Módulo 5 – SOA em AçãoDismistificando SOA
Aumentando o potencial :
• Facilidade para novas soluções• Facilidade para novos negócios
Construindo HUBs
Módulo 5 – SOA em AçãoDismistificando SOA
HUBs Corporativos: • Facilita o gerenciamento• Facilita a segurança
Interação entre Parceiros
Módulo 5 – SOA em AçãoDismistificando SOA
Interação entre Parceiros
Módulo 5 – SOA em AçãoDismistificando SOA
Motivação e Benefícios
Módulo 3 – Bem-vindo ao SOADismistificando SOA
Re-Uso:
Segundo Barry,1999 alguns aspectos que
tendem a influenciar
diretamente a produtividade do
desenvolvimento e no impacto sobre
custos é descrito da seguinte forma:
• Trabalhando mais rápido (ex.: automação,
ferramentas e ambientes): 8% de
ganho.
• Trabalhando de forma mais
inteligente (ex.: melhoria dos
processos): 17% de ganho.
• Evitando o trabalho
desnecessário (ex.: reuso dos artefatos de projeto): 47% de
ganho.
Dismistificando SOA
Obrigado !
Dismistificando SOA
Bibiliografia / Referências
Enterprise SOADirk Krafzig et alPrentice-Hall (2005)
Understanding Enterprise SOAEric PulerManning (2006)
Service-Oriented Architecture ( SOA ) CompassNobert B., Sajay BIBM Press (2006)
Let´s Talk About SOA – Creative Commons
www.zapthink.com
www.hbr.com
www.bpmi.org
Advantage CompetitiveMichael PorterFree Press( 1987 )