29
Let’s talk about SOA Paulo Vasconcellos [email protected]

Lets talk about SOA Paulo Vasconcellos [email protected]

Embed Size (px)

Citation preview

Page 1: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

Let’s talk about SOAPaulo Vasconcellos

[email protected]

Page 2: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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)

Page 3: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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)

Page 4: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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.

Page 5: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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.

Page 6: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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.

Page 7: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 8: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 9: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 10: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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]

Page 11: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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.

Page 12: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 13: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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.

Page 14: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 15: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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)

Page 16: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 17: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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)

Page 18: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 19: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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”

Page 20: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 21: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

Processo de Gestão e Desenvolvimento

Referências:

•Enterprise Unified Process (EUP)•Scrum•eXtreme Programming

•Scott Berkun

Scrum!

Page 22: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

Scrum - Overview

Características:

•Iterativo•Incremental

•Cooperativo•Direto•Adaptável

•Escalável•Orientado pela Arquitetura•Incentivador do Reuso de Ativos

Page 23: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 24: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 25: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.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

Page 26: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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

Page 27: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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)

Page 28: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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”!

Page 29: Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

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