29.01.2014 Views

Arquitetura SOA

Arquitetura SOA

Arquitetura SOA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Arquitetura</strong> Orientada<br />

a Serviços (<strong>SOA</strong>)<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Visão Geral e-Coree<br />

Estabelecida em 1999<br />

<br />

Escritórios rios no Brasil e EUA<br />

<br />

Aproximadamente 100 profissionais<br />

<br />

Atua em prestação de serviços offshore desde<br />

2004


Roteiro<br />

• O que é <strong>SOA</strong><br />

• Conceitos de <strong>Arquitetura</strong><br />

• Elementos da <strong>Arquitetura</strong> <strong>SOA</strong><br />

• Orientação a Serviços<br />

• Web Services e <strong>SOA</strong><br />

• Gerações e evolução de <strong>SOA</strong><br />

• Comparação OO vs SO<br />

• O que não é <strong>SOA</strong><br />

• Vantagens de <strong>SOA</strong><br />

• Conclusão<br />

3<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


O que é <strong>SOA</strong>?<br />

<strong>SOA</strong> = solução para tudo?<br />

Nova moda, nova tecnologia<br />

Reduzir custos, diminuir tempo<br />

de desenvolvimento<br />

4<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Modelo Tradicional de Desenvolvimento<br />

Vida antes de <strong>SOA</strong><br />

1. Análise de Negócio<br />

2. Envio de requerimentos<br />

para a área de TI<br />

3. Análise de TI,<br />

arquitetura<br />

4. Desenvolvimento da<br />

aplicação<br />

5<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Modelo tradicional de Desenvolvimento<br />

Problemas<br />

Excesso de lógica de<br />

negócio duplicada<br />

Problemas na integração<br />

6<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Modelo tradicional de Desenvolvimento<br />

Custo desenvolvendo Silos<br />

(ROI)<br />

Diversidade de tecnologias<br />

7<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Modelo <strong>SOA</strong><br />

Novo modelo:<br />

Reuso de lógica existente<br />

* Inventário de Serviços<br />

Criar o restante da lógica<br />

8<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Conceitos de <strong>Arquitetura</strong><br />

1. Característica de desenho<br />

2. Princípios de desenho<br />

3. Paradigma de desenho<br />

4. Padrão de desenho<br />

5. Linguagem de padrões<br />

de desenho<br />

6. Standard de desenho<br />

7. Melhores práticas<br />

8. Framework<br />

9<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>Arquitetura</strong> <strong>SOA</strong><br />

<strong>SOA</strong><br />

Combinação de<br />

Tecnologias<br />

Produtos<br />

APIs<br />

Plataformas<br />

Extensões<br />

10<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>Arquitetura</strong> <strong>SOA</strong> (IBM)<br />

11<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


O que é um serviço?<br />

Orientação a Serviços<br />

Uma pessoa pode proporcionar um serviço<br />

Um grupo de pessoas também pode proporcionar<br />

um serviço<br />

12<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Orientação a Serviços<br />

Um serviço em software<br />

13<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


14<br />

Orientação a Serviços<br />

Paradigma de orientação a serviços contem os principios:<br />

- Contrato standard de serviço<br />

- Baixo Acoplamento<br />

- Abstração do serviço<br />

- Reuso<br />

- Autonomia<br />

- Falta ou delegação de estado (statelessness)<br />

- Facilidade de descoberta<br />

- Composição<br />

- Interoperabilidade<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Orientação a<br />

Serviços<br />

15<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Contrato de Serviço Standard<br />

Forma em que o serviço expressa a funcionalidade:<br />

- Natureza da informação de entrada e saida<br />

- Quantidade de conteúdo<br />

- Modelos de dados<br />

- Políticas<br />

16<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Baixo Acoplamento<br />

Acoplamento = Relacionamento entre 2 coisas<br />

- Vários tipos de acoplamento<br />

1) Tecnologia - Contrato<br />

2) Lógica – Contrato<br />

3) Funcionalidade – Contrato (Processo pai)<br />

- Vários níveis de acoplamento<br />

17<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Baixo<br />

Acoplamento<br />

18<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Abstração<br />

Esconder os detalhes do serviço<br />

- Só informação essencial<br />

- Limitar com o contrato<br />

- Esconder tecnologia<br />

- Esconder lógica<br />

+ Contrato é uma parte<br />

importante<br />

19<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Reuso<br />

- Serviços Agnósticos<br />

(sem conhecimento)<br />

ao negócio<br />

- Serviços Utilitários<br />

- Granularidade<br />

+ Perder controle<br />

+ Limitar opções<br />

20<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Autonomia<br />

- Nível de controle<br />

no ambiente de execução<br />

1) Confiabilidade<br />

2) Previsível<br />

Especialmente quando<br />

usado em composições<br />

21<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Falta ou delegação de estado<br />

(Statelessness)<br />

Gerenciamento de estado<br />

- Incrementa<br />

tempo de processamento<br />

- Limita escalabilidade<br />

- Problemas de<br />

Concorrência<br />

- Limita composição<br />

+ Delegar gerenciamento de estado (Sessão,<br />

Contexto, negócio)<br />

22<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Facilidade de Descoberta<br />

- Informação de recursos<br />

+Propósito<br />

+Capacidade<br />

+Limitações<br />

Evitar redundância<br />

Facilitar composição<br />

23<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Composição<br />

Dividir um problema<br />

em partes para facilitar<br />

a solução<br />

Requerimentos:<br />

-Ambiente de execução<br />

eficiente<br />

-Contrato flexível<br />

24<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Interoperabilidade<br />

Facilidade de comunicação e funcionamento com<br />

outros serviços.<br />

Todos os principios contribuem para a<br />

interoperabilidade.<br />

25<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Serviços como Web Services<br />

Opções para<br />

Representar um<br />

Serviço no mundo<br />

Real de TI<br />

SCA, WebServices<br />

26<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


1ª Geração <strong>SOA</strong> (Web Services)<br />

<strong>SOA</strong>P, WSDL, UDDI<br />

Vantagens: HTTP, XML<br />

27<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


XML<br />

-Indiferente à tecnologia<br />

usada.<br />

-Facilidade de descrever<br />

novos dados<br />

-Impulso das maiores<br />

Empresas<br />

(IBM, Oracle, Sun, etc)<br />

28<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Contrato do Serviço – WSDL<br />

(Web Services Description Language)<br />

- Capacidades do serviço<br />

- Natureza da informação<br />

- Tipos de dados<br />

- Granularidade<br />

+Evitar transformações<br />

+Modelos duplicados<br />

29<br />

Abstração do<br />

serviço<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Serviço como Web Service<br />

30<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


WSDL (Contrato)<br />

UDDI (Facilidade de Descoberta)<br />

31<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>SOA</strong>P (Mensagens WS-I Basic Profile)<br />

32<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


2ª Geração <strong>SOA</strong> (WS-)<br />

33<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>SOA</strong> (WS-)<br />

34<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>Arquitetura</strong> <strong>SOA</strong> (IBM)<br />

35<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Problema (Communicação)<br />

Comunicação Ponto a Ponto<br />

36<br />

Padrão de desenho: Enterprise Service Bus (ESB)<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Broker:<br />

- Traduzir tipos de dados<br />

- Interpretar mensagens<br />

Intermediate Routing:<br />

- Evitar ponto a ponto<br />

- Direcionar mensagens<br />

Asynchronous Queuing:<br />

- Garantia de mensagens<br />

- Escalabilidade<br />

Enterprise Server Bus<br />

37<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>Arquitetura</strong> <strong>SOA</strong> (IBM)<br />

38<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Conceitos de <strong>Arquitetura</strong><br />

para o negócio<br />

39<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Camadas de serviços<br />

Varios tipos de serviço dependendo da<br />

granularidade:<br />

- Tarefas de negócio (autorização, revisão, etc)<br />

- Serviço de Entidade (comprador, fatura, artigo,<br />

etc)<br />

- Serviços de utilidade (email, transformação de<br />

dados)<br />

40<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Tipos de Serviços<br />

41<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


WS-BPEL,BPEL4WS (Composição)<br />

Fomentar o reuso<br />

de serviços autônomos<br />

42<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


BPEL (Oracle)<br />

43<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Outras especificações (extensões):<br />

Transações:<br />

WS-Coordination, WS-Transaction,<br />

WS-AtomicTransaction, WS-BusinessActivity<br />

Política:<br />

WS-Policy, WS-PolicyAssertions<br />

Segurança:<br />

WS-Security, WS-Federation, WS-SecureConversation<br />

Extras:<br />

WS-CDL (Choreography Description Language)<br />

44<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Desenvolvendo <strong>SOA</strong><br />

-Colaboração importante negócio e TI<br />

-Metodologia ágil não é tão recomendada<br />

45<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


- Processo cíclico<br />

46<br />

Metodologia <strong>SOA</strong><br />

1) Definir processos do negócio<br />

2) Examinar soluções existentes<br />

(bottom-up)<br />

1) Criar inventário de serviços<br />

2) Implementar serviços de<br />

acordo com a necessidade<br />

(top-down)<br />

+ Evitar criar <strong>SOA</strong> a partir de zero<br />

+ Sempre alinhar TI com o negócio<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>Arquitetura</strong> <strong>SOA</strong> (IBM)<br />

47<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


<strong>SOA</strong> Governance<br />

48<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Comparação <strong>SOA</strong>D vs OOAD<br />

-Orientação a objetos é aplicado em segmentos da empresa. Para<br />

integrar aplicativos em OO, EAI era usado. (Contexto)<br />

-OO, EAI são influencias diretas de <strong>SOA</strong>: Reuso, Composição, etc.<br />

-<strong>SOA</strong> visa incrementar os benefícios de negócio (agilidade de<br />

processos), diversificar as opções de provedores e tecnologias,<br />

facilitar a integração.<br />

-Classes e objetos: Atributos e métodos. <strong>SOA</strong> tenta não utilizar<br />

estados (statelessness)<br />

-Mensagens. OOAD normalmente RPC ou similar. <strong>SOA</strong>D usa<br />

mensagens asíncronos e síncronos.<br />

-Maior parte dos serviços em <strong>SOA</strong> têm implementações com OO.<br />

49<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


O que não é <strong>SOA</strong><br />

-Conjunto de Web Services oferecendo acesso a código existente<br />

(Lembrar principios de desenho)<br />

-Solucão para qualquer tipo de problema. Tem que avaliar<br />

questões de negócio, benefícios, etc.<br />

-Conjunto de aplicações Silos integradas. (EAI)<br />

-<strong>SOA</strong> não é uma tecnologia<br />

totalmente nova:<br />

+ OOD<br />

+ AOD<br />

+ EAI<br />

50<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Vantagens de <strong>SOA</strong><br />

-Interoperabilidade: Facilidade de usar várias tecnologias e<br />

provedores<br />

-Facilitar o reuso: Inventário de serviços<br />

-Alinhar TI com negócio<br />

-Aumento de retorno do investimento (não nas primeiras<br />

iterações, e sim com inventario de serviços)<br />

-Agilidade na organização<br />

-Reduzir os custos de TI<br />

-Multicore, Cloud computing<br />

51<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Vantagens de <strong>SOA</strong><br />

52<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Conclusão<br />

<strong>SOA</strong> é um modelo de arquitetura que visa melhorar<br />

a eficiência, agilidade e produtividade das<br />

empresas ou negócios.<br />

Objetivos de negócio alinhados ao paradigma de<br />

desenvolvimento orientado a serviços.<br />

Combinação de tecnologias, produtos, provedores,<br />

infraestruturas de suporte, extensões.<br />

53<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.


Referências<br />

Web<br />

-www.whatissoa.com<br />

-www.soaprinciples.com<br />

-www.soapatterns.org<br />

-www.soaspecs.com<br />

Thomas Erl.<br />

-www.ibm.com/developerworks/library/ar-soapit/<br />

-www-01.ibm.com/software/solutions/soa/?pgel=ibmhzn&cm_re=masthead-_-<br />

business-_-soa<br />

-www.osoa.org (SCA, SDO)<br />

REST, Restlet, JSON<br />

54<br />

Copyright © e-Core LTDA, 2010. Todos os direitos reservados.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!