Desmistificando SOA
SERVICE-ORIENTED ARCHITECTURE
Patrick de Faria – [email protected]
Desmistificando SOA
Módulo 1 – Primeiro os Negócios
Ambiente Competitivo Atual
Hiper-Competição:
• Hiper-Competição
• Clientes:
• Cada vez compram menos
• Cada vez mais exigentes
• Cada vez menos fiéis
Significa estar o
tempo todo criando
estratégias para
conseguir vantagens e
eliminar as da
concorrência
• 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
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
O Valor do Tempo de Resposta
Time to Market:
Tempo entre conceber
e lançar determinado
produto ou serviço
Agilidade = Diferencial Competitivo
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
Surgem as Perguntas…
• 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
Módulo 1 – Primeiro os Negócios
Cabo de Guerra
Negócios:
TI:
•Aumentando nível e
volume de mudanças e
inovação
•Pressionando por
rapidez
•Virtualizando
•Reduzir Custos
• Lidar com Ambientes
Heterogêneos
•Maximizar os ativos de
TI
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
Olhando para o Passado Recente
• 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
Módulo 1 – Primeiro os Negócios
Resultado
• Eficiência Operacional
• Redução de Custos
• Aumento da Satisfação do Cliente
Eficiência
Operacional:
Executar atividades
similares melhor que o
concorrente
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
Módulo 1 – Primeiro os Negócios
Fronteira da Produtividade
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
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
Soma Zero
Ontem
Concorrentes
Amanhã
Exigências
Exigências
EMPRESA
EMPRESA
$
Margens
Concorrentes
Dismistificando SOA
$
Margens
Módulo 1 – Primeiro os Negócios
Concluindo
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
Michael Porter:
Michael Porter é
considerado a maior
autoridade mundial em
estratégia
competitiva. É autor
dos maiores bestsellers internacionais
na área, entre os quais
se destacam:
Vantagem competitiva
e Estratégia
competitiva
• Preço Baixo
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
Apenas um Caminho
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!
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
Apenas um Caminho
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
Posicionamento
Estratégico:
Executar atividades
diferentes dos rivais
ou executar atividades
similares de diferentes
meios ou maneiras.
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
Desalinhamento
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 ?”
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 Computer
Paul Strassmann
IEP (1997)
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
Juntando Tudo
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.
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
O Fenômeno das Solicitações de Mudanças
Dismistificando SOA
Módulo 1 – Primeiro os Negócios
O Fenômeno das Solicitações de Mudanças
• 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
Dismistificando SOA
Refactoring:
Reestruturar um software
aplicando mudanças em
seu desenho,
sem alterar o
comportamento externo
ou observável
Módulo 1 – Primeiro os Negócios
Desmistificando SOA
Módulo 2 – Os Fundamentos
O Conceito de Serviço
• 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
Dismistificando SOA
Módulo 2 – Os Fundamentos
O Conceito de Serviço
• 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”
Dismistificando SOA
Módulo 2 – Os Fundamentos
O Conceito de Serviço
• 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 )
Dismistificando SOA
Módulo 2 – Os Fundamentos
Fraco Acoplamento ( Loosing Coupled )
• 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
Dismistificando SOA
Módulo 2 – Os Fundamentos
Exemplos de Serviços
Caso do Cliente Inativo. Possíveis
Serviços:
• ConsultaCliente()
• ClienteEstaCadastrado()
• VerificaPosiçãoFInanceira()
• ConsultaCPFSERASA()
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services
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.
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services e suas Tecnologias
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
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services
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 ....
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services
• 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
Em ambientes de
computação distribuídas
utilização de SOAP sobre
protocolos de internet
tornam Web Services
universais
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services e suas Tecnologias
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services - SOAP
•
SOAP é a “língua franca” dos web services,
• Documento estruturado em XML na qual as mensagens dos web
services são construídas
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services - WSDL
• 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
Dismistificando SOA
Módulo 2 – Os Fundamentos
Web Services - UDDI
• 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
Dismistificando SOA
Módulo 2 – Os Fundamentos
O que Web Services podem fazer
Comunicação entre sistemas
de fornecedores diferentes ( Loose Coupling )
Dismistificando SOA
Módulo 2 – Os Fundamentos
Limites dos Web Services
• 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
Dismistificando SOA
Módulo 2 – Os Fundamentos
Desmistificando SOA
Módulo 3 – Bem-Vindo a SOA
Empresas em Direção a SOA
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Definição do Conceito
É 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.
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Mais uma definição…
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.
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Sobre 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.
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Sobre 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
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
SOA Permite
INTERFACES
INTERFACES
FLUXO DE
CONTROLE
FLUXO DO
PROCESSO
REGRAS DE
NEGÓCIO
SERVIÇO
SERVIÇO
SERVIÇO
IMPLEMENTAÇÃO
SERVIÇO
SERVIÇO
SERVIÇO
SERVIÇO
SERVIÇO
SERVIÇO
SERVIÇO
SERVIÇO
SERVIÇO
INTEGRAÇÃO
Aplicação Monolítica
Aplicação SOA
Forte Acoplamento
Fraco Acoplamento
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
SOA Permite
• 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
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Camadas do SOA
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
O Paradigma Muda
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Exemplo de Serviços II
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Antes e Depois
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Componentes do SOA
SOA
Aplicativos
Serviços
Repositório de
Barramento de
Serviços
Serviços
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Componentes do 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
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Componentes do 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.
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Desmistificando SOA
Módulo 4 – Planejando e Modelando
SOA e BPM
• 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 extensivamente
Linguagens de composição ( BPEL,...)
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Evolução das linguagens de Composição
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Orquestrar X Coerografar
Orquestrar
Coreografar
• Coordenação central
• Os componentes não sabem
quem esta envolvido
• Sem coordenação Central
• Cada componente sabe
exatamente quando executar sua
operação
Dismistificando SOA
Módulo 4 – Planejando e Modelando
BPEL
• BPEL ( Business Process Execution Language ) – Padrão de como
especificar a orquestração de processos de negócios
• Baseado em XML
Dismistificando SOA
Módulo 4 – Planejando e Modelando
BPM, SOA e BPEL
Dismistificando SOA
Módulo 4 – Planejando e Modelando
BPM, SOA e BPEL na prática
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Um gráfico vale mais que mil palavras
Processos
de Negócios
( BPEL )
Ativos
Serviços
( WS )
Componentes
Legado
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Entendendo o ESB
• É 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
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Entendendo o ESB
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
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Entendendo o ESB
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Entendendo ESB II
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Entendendo ESB III
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
Entendendo ESB IV
Dismistificando SOA
Módulo 3 – Bem-vindo ao SOA
O Programa 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
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Projetos 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;
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Enganos comuns
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
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Primeiros Passos
•
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”!
Dismistificando SOA
Módulo 4 – Planejando e Modelando
Desmistificando SOA
Módulo 5 – SOA em Ação
SOA em B2B
Aumentando o potencial :
• Facilidade para novas soluções
• Facilidade para novos negócios
Dismistificando SOA
Módulo 5 – SOA em Ação
Construindo HUBs
HUBs Corporativos:
• Facilita o gerenciamento
• Facilita a segurança
Dismistificando SOA
Módulo 5 – SOA em Ação
Interação entre Parceiros
Dismistificando SOA
Módulo 5 – SOA em Ação
Interação entre Parceiros
Dismistificando SOA
Módulo 5 – SOA em Ação
Motivação e Benefícios
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
Módulo 3 – Bem-vindo ao SOA
Obrigado !
Dismistificando SOA
Bibiliografia / Referências
Let´s Talk About SOA –
Creative Commons
Enterprise SOA
Dirk Krafzig et al
Prentice-Hall (2005)
www.zapthink.com
www.hbr.com
Understanding
Enterprise
SOA
Eric Puler
Manning (2006)
www.bpmi.org
Advantage Competitive
Michael Porter
Free Press( 1987 )
Service-Oriented
Architecture ( SOA )
Compass
Nobert B., Sajay B
IBM Press (2006)
Dismistificando SOA
Download

Serviços