lets talk about soa paulo vasconcellos [email protected]
TRANSCRIPT
Let’s talk about SOAPaulo Vasconcellos
Agenda
Motivação Conceitos Básicos O Programa SOA
Comitê Gestor Processos e Ferramentas
Projetos SOA Equipes Processo de Gestão e
Desenvolvimento Primeiros Passos Debate!
Fact Sheet:
Objetivos:•Apresentar SOA•Debater SOA•Trocar Dicas
Duração: 90’ – Apresentação
∞’ – Debate
Censura: Livre
Contra-indicações:•Fundamentalistas•Disléxicos (s/ note)•Enxadristas (c/ cel)
Motivações (aka ‘Promessas’)
Alinhamento Estratégico com o Negócio Agilidade na Implementação de
Mudanças Redução de Custos Clareza = Simplicidade
Simplificação das Estruturas de TI Valorização dos Ativos Existentes Independência de Tecnologias.. ..e Fornecedores
Alinhamento:
TI agrega real valor ao plano de negócios;
Não resiste às mudanças;
Combate a resistência às mudanças; e
É planejado.
The Squandred ComputerPaul StrassmannIEP (1997)
Breve História do Spaghetti
Spaghetti:
China, 400 A.C.
Marco Polo trouxe para o ocidente.
Imigrantes italianos trouxeram para Sampa.
TI levou para as empresas.
SOA – Service-Oriented Architecture
Processo de Negócio
Meta-AplicaçõesMeta-Aplicações
Serviços
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 de forma direta. 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.
SOA – Elementos Básicos
SOA
ESB (Enterprise Service Bus)
Repositório
ServiçoServiço ServiçoServiço ServiçoServiço
Front-EndFront-End
Meta-AplicaçõesMeta-Aplicações
Características:
•Acoplamento fraco dos serviços;•Independência de tecnologia e protocolos;•Uso irrestrito de padrões; e•Incentivo à reutilização de ativos.
ESB – Enterprise Service Bus
ESB (Enterprise Service Bus)
MainframeCICS
MainframeCICS
Servidor deAplicaçõesJavaEE
Servidor deAplicaçõesJavaEE
Servidor deAplicações
.Net
Servidor deAplicações
.Net
MQ SeriesMQ Series
HTTP/SOAPHTTP/SOAP
Função:
Interconectar todos os participantes de uma SOA, abstraindo a complexidade técnica que existe nas camadas inferiores.
ERPCRMERPCRM
JCAJCA
BizTalkBizTalk
ServiçoServiço ServiçoServiço ServiçoServiço
Front-EndFront-End
Meta-AplicaçõesMeta-Aplicações
Repositório de Serviços
Repositório
Contratosde ServiçosContratos
de Serviços
ServiçoServiço ServiçoServiço ServiçoServiço
Front-EndFront-End
Meta-AplicaçõesMeta-Aplicações
Função:
Armazenar todos os Contratos de Serviços disponíveis, o que o torna o ponto de partida para utilização destes.
Outras informações:•Localização•Restrições•Níveis de Serviço•Condições Comerciais
WSDL – Web Services Description LanguageWSDL – Web Services Description Language
WS-PolicyWS-Policy
WS-SecurityWS-Security
WS-BPEL – Business Process Execution LanguageWS-BPEL – Business Process Execution Language
WS-CDL – Choreography Description LanguageWS-CDL – Choreography Description Language
WSLA – Web Service Level AgreementsWSLA – Web Service Level Agreements
Serviços
SOA
Descriçã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.
ESB
Repositório
ServiçoServiço
InterfaceInterface
ContratoContrato
Lógica Dados
Relacionamento entre Elementos Básicos
SOAESB
Repositório
ServiçoServiço
InterfaceInterface
ContratoContrato
Lógica Dados
Usuário
Busc
aMeta-AplicaçãoMeta-Aplicação
Cham
a
Representa
Baseia-se
Descreve
Satisfaz
Racional:
ACOPLAMENTOFRACO ![Loosely Coupled]
Tipos de Serviços
Negócio Serviços
Sub-ProcessosSub-Processos
Processo de Negócio
AtividadeAtividade
Tarefas
Processo(Público)
Processo(Público)
IntermediárioIntermediário
BásicoBásico
Tipos:
Processo: representa de forma direta uma Atividade ou Processo de Negócio. É Público quando ultrapassa as fronteiras da empresa.
Intermediário: Pontes, conversores ou funcionalidades adicionais (tecnologia).
Básico: representa elementos básicos como Entidades e Tarefas de Negócio.
O Programa SOA
SOA é uma iniciativa de longo prazo (3 – 5 anos);
Que 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.
Agenda:
•Motivação•Conceitos Básicos•O Programa SOA•Projetos SOA•Primeiros Passos•Debate
O Comitê Gestor
Gestor da Infra-estrutura Tecnológica
Engenheiro do Processo
ArquitetoFront-Ends
ArquitetoServiços
Arquitetode
Negócio
Gestor da Biblioteca de Ativos
Arquiteto SOA
Gestor do Programa
Atribuições:
•Desenho da Arquitetura Padrão;•Implantação e revisão das Estruturas, Processos e Padrões;•Acompanhamento de todos os Projetos;•Manutenção do Plano Estratégico e Foco;•Evangelização;•Garantia do apoio e participação das áreas de negócio.
Processos & Ferramentas
Gestão: Meta-Scrum
Administração do Portfólio: Mapas Estratégicos
Gestão de Ativos: Reusable Asset Specification (RAS)
Desenho da Arquitetura: Model Driven Architecture (MDA)
Requisitos:
•Promover Agilidade
•Absorver Mudanças
•Respeitar Arquitetura
•Incentivar o Reuso
•Facilitar a
Comunicação
Mapas Estratégicos
Iniciativas Estratégic
asDescrição Descrição Descrição Descrição
BásicosAtivo[Nota]
Ativo[Nota]
Ativo[Nota]
Ativo[Nota]
Intermediários
Ativo[Nota]
Ativo[Nota]
Ativo[Nota]
Ativo[Nota]
ProcessosAtivo[Nota]
Ativo[Nota]
Ativo[Nota]
Ativo[Nota]
PúblicosAtivo[Nota]
Ativo[Nota]
Ativo[Nota]
Ativo *[Nota]
ServiçoProcesso de Negócio
Atividade Atividade
XXXX ????
Referência:
Mapas EstratégicosKaplan & NortonEditora Campus (2004)
Classificação de Ativos (Legado)
Potencial de ReusoCu
sto T
ota
l d
e P
rop
ried
ad
e (
TC
O)
Tolerar
Aposentar Abstrair [SOA]
Abstrair [SOA]
Outros Fatores:
•Idade do Ativo•Tecnologia•Relevância Estratégica•Prontidão (Mapas Estratégicos)•Custo da Troca
Model Driven Architecture (MDA)
Mapas dos Processos
De Negócio
Mapas dos Processos
De Negócio
ComputationIndependentModel (CIM)
ComputationIndependentModel (CIM)
PlatformIndependentModel (PIM)
PlatformIndependentModel (PIM)
PlatformSpecific
Model (PSM)
PlatformSpecific
Model (PSM)
Referência:
“MDA Guide V1.0” OMG – (2003). (http://www.omg.org/mda)
PlatformModel (PM)Platform
Model (PM)
Os 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;
E a Agilidade da Equipe e dos Processos de Gestão e Desenvolvimento.
Desafios:
•Agilidade•“Meet in the Middle”•Concorrência•Inter-dependência
Formação de Equipes
Coordenador do Projeto
DesenvolvedorFront-Ends
DesenvolvedorServiços
Analistade
Negócio
Apoio + CQ
Arquiteto[Dono do Serviço]
Equipe “Scrum”:
•Analogia “Rally”•Arquiteto=Navegador•CP=Piloto
•CP=“Limpa Trilhos”
Help Wanted :: Architects
Domínio de Arquiteturas Corporativas, SOA, JavaEE e/ou Microsoft .Net;
Experiência em todo o ciclo de vida de implementação (requerimentos, modelagem, codificação, integração e testes);
Experiência no projeto e implantação de arquiteturas n-camadas;
Fluência em padrões, tecnologias e ferramentas web services (XML, SOAP, WSDL, UDDI, BPEL etc);
Forte background em computação distribuída (CORBA, RPC, DCOM, RMI);
Familiaridade com sistemas de mensagens é um plus (Tibco, MQ, SeeBeyond, BizTalk);
Conhecimento de padrões WS-*.
Outros Requisitos: Pensamento Estratégico; Comunicação Verbal e Escrita; Um mínimo de 10 anos de experiência em desenvolvimento de sistemas.
Oportunidades:
•Arquiteto SOA•Arquiteto Serviços•GBA•Arquiteto Info•Arquiteto ESB•Coreógrafo (?!?)
•CP Scrum
Processo de Gestão e Desenvolvimento
Referências:
•Enterprise Unified Process (EUP)•Scrum•eXtreme Programming
•Scott Berkun
Scrum!
Scrum - Overview
Características:
•Iterativo•Incremental
•Cooperativo•Direto•Adaptável
•Escalável•Orientado pela Arquitetura•Incentivador do Reuso de Ativos
Scrum 4 SOA Projects
Iniciação / ElaboraçãoIniciação / Elaboração ConstruçãoConstrução TransiçãoTransição
PlanejamentoPlanejamento
ContratoContrato
Backlogdo
Serviço
Backlogdo
Serviço
Padrões SOAPadrões SOA
PrioridadesEstimativas
Backlogdo
Sprint
Backlogdo
Sprint
Metas do Sprint
CertificaçãoCertificação
Testes doServiço
Testes doServiço
Testes deIntegraçãoTestes deIntegração
PublicaçãoPublicação
>> Sprint >>>> Sprint >>
Contrato:
Em tempo de Desenvolvimento:
•Estimativas•Plano de Desenv.•Plano das Iterações•Paralelismo (Dependências)•Plano de Testes•Plano de Publicação
Sprint
Integra Testa Analisa Planeja Define
Gera ‘Serviço’ para testes
Implementa aaplicação
Testa a aplicação
Libera
Gera ‘Cliente’ para testes
Implementa oServiço
Testa o Serviço
Libera
Front-End
Serviço
Referências:
jeffsutherland.com
controlchaos.com
SOAD – Service-Oriented Analysis and Design
Classificação e Agregação de Serviços
Questões “Contratuais” (WS-*) Processo “Meet-in-the-Middle” “Descoberta” de Serviços Questões Semânticas
(significado dos parâmetros “contratuais”)
BPM (Business Process Modeling) Coreografia de Serviços
OOAD:
•Encapsulamento•Polimorfismo•UML
Primeiros Erros
1. Discutir uma “Definição” de SOA
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 “waterfall”
7. Tornar SOA um “bicho de 7 cabeças”
Fonte: ZAPFLASH-200531 (www.zapthink.com)
Agenda:
•Motivação•Conceitos Básicos•O Programa SOA•Projetos SOA•Primeiros Passos•Debate
Primeiros Passos [Profissional]
• Arquiteto– Arquitetura de Sistemas– SOA, MDA, SOAD, ...
• Desenvolvedor– SOAP, WS-*, UDDI, ...
• Coordenador– Processos Ágeis
• Bibliotecário (GBA)– RAS– Reuso Estratégico de Ativos de
Software• Coreógrafo
– BPM, BPM, BPEL, WS-BPEL, ...
Referência:
Enterprise SOADirk Krafzig et alPrentice-Hall (2005)
Primeiros Passos [Empresa]
• 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!)• 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”• Definir um “Rabisco de Processo”
• Bancar o primeiro “Projeto SOA”!
SO?Contato:
Paulo [email protected]
Trabalho liberado sob Licença Creative Commons.Trabalho liberado sob Licença Creative Commons.Você pode:Você pode:• Copiá-lo, Distribuí-lo, Exibí-lo e Trabalhar com ele; eCopiá-lo, Distribuí-lo, Exibí-lo e Trabalhar com ele; e• Criar outros trabalhos à partir deste.Criar outros trabalhos à partir deste.Sob as seguintes condições:Sob as seguintes condições:
Creditar o autor original.Creditar o autor original.
Não utilizá-lo com fins comerciais.Não utilizá-lo com fins comerciais.
Se alterá-lo ou extendê-lo, tornar disponível sob estas mesmas condições.Se alterá-lo ou extendê-lo, tornar disponível sob estas mesmas condições.
•finito-log.blogspot.com [ Finito ]•pfvasconcellos.blogspot.com [ Graffiti ] Agradecimen
tos:
•Brás & Figueiredo
•Alessandro Almeida•Adilson Somensari•Anhembi-Morumbi•UniFIEO•Uniban
•Guz Vasconcellos•Anderson Pontes•Luis Felipe Braga•Djalma Gomes•Renato Ferracini•Grupo CMM-Brasil•Ivo Michalick