Lets talk about SOA Paulo Vasconcellos pfvasconcellos@gmail.com

Preview:

Citation preview

Let’s talk about SOAPaulo 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)

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 Vasconcellospfvasconcellos@gmail.com

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