Arquitetura Orientada a Serviços (SOA)
Visão Geral e-coree Estabelecida em 1999 Escritórios rios no Brasil e EUA Aproximadamente 100 profissionais Atua em prestação de serviços offshore desde 2004
Roteiro O que é SOA Conceitos de Arquitetura Elementos da Arquitetura SOA Orientação a Serviços Web Services e SOA Gerações e evolução de SOA Comparação OO vs SO O que não é SOA Vantagens de SOA Conclusão 3
O que é SOA? SOA = solução para tudo? Nova moda, nova tecnologia Reduzir custos, diminuir tempo de desenvolvimento 4
Modelo Tradicional de Desenvolvimento Vida antes de SOA 1. Análise de Negócio 2. Envio de requerimentos para a área de TI 3. Análise de TI, arquitetura 4. Desenvolvimento da aplicação 5
Modelo tradicional de Desenvolvimento Problemas Excesso de lógica de negócio duplicada Problemas na integração 6
Modelo tradicional de Desenvolvimento Custo desenvolvendo Silos (ROI) Diversidade de tecnologias 7
Modelo SOA Novo modelo: Reuso de lógica existente * Inventário de Serviços Criar o restante da lógica 8
Conceitos de Arquitetura 1. Característica de desenho 2. Princípios de desenho 3. Paradigma de desenho 4. Padrão de desenho 5. Linguagem de padrões de desenho 6. Standard de desenho 7. Melhores práticas 8. Framework 9
Arquitetura SOA SOA Combinação de Tecnologias Produtos APIs Plataformas Extensões 10
Arquitetura SOA (IBM) 11
O que é um serviço? Orientação a Serviços Uma pessoa pode proporcionar um serviço Um grupo de pessoas também pode proporcionar um serviço 12
Orientação a Serviços Um serviço em software 13
14 Orientação a Serviços Paradigma de orientação a serviços contem os principios: - Contrato standard de serviço - Baixo Acoplamento - Abstração do serviço - Reuso - Autonomia - Falta ou delegação de estado (statelessness) - Facilidade de descoberta - Composição - Interoperabilidade
Orientação a Serviços 15
Contrato de Serviço Standard Forma em que o serviço expressa a funcionalidade: - Natureza da informação de entrada e saida - Quantidade de conteúdo - Modelos de dados - Políticas 16
Baixo Acoplamento Acoplamento = Relacionamento entre 2 coisas - Vários tipos de acoplamento 1) Tecnologia - Contrato 2) Lógica Contrato 3) Funcionalidade Contrato (Processo pai) - Vários níveis de acoplamento 17
Baixo Acoplamento 18
Abstração Esconder os detalhes do serviço - Só informação essencial - Limitar com o contrato - Esconder tecnologia - Esconder lógica + Contrato é uma parte importante 19
Reuso - Serviços Agnósticos (sem conhecimento) ao negócio - Serviços Utilitários - Granularidade + Perder controle + Limitar opções 20
Autonomia - Nível de controle no ambiente de execução 1) Confiabilidade 2) Previsível Especialmente quando usado em composições 21
Falta ou delegação de estado (Statelessness) Gerenciamento de estado - Incrementa tempo de processamento - Limita escalabilidade - Problemas de Concorrência - Limita composição + Delegar gerenciamento de estado (Sessão, Contexto, negócio) 22
Facilidade de Descoberta - Informação de recursos +Propósito +Capacidade +Limitações Evitar redundância Facilitar composição 23
Composição Dividir um problema em partes para facilitar a solução Requerimentos: -Ambiente de execução eficiente -Contrato flexível 24
Interoperabilidade Facilidade de comunicação e funcionamento com outros serviços. Todos os principios contribuem para a interoperabilidade. 25
Serviços como Web Services Opções para Representar um Serviço no mundo Real de TI SCA, WebServices 26
1ª Geração SOA (Web Services) SOAP, WSDL, UDDI Vantagens: HTTP, XML 27
XML -Indiferente à tecnologia usada. -Facilidade de descrever novos dados -Impulso das maiores Empresas (IBM, Oracle, Sun, etc) 28
Contrato do Serviço WSDL (Web Services Description Language) - Capacidades do serviço - Natureza da informação - Tipos de dados - Granularidade +Evitar transformações +Modelos duplicados 29 Abstração do serviço
Serviço como Web Service 30
WSDL (Contrato) UDDI (Facilidade de Descoberta) 31
SOAP (Mensagens WS-I Basic Profile) 32
2ª Geração SOA (WS-) 33
SOA (WS-) 34
Arquitetura SOA (IBM) 35
Problema (Communicação) Comunicação Ponto a Ponto 36 Padrão de desenho: Enterprise Service Bus (ESB)
Broker: - Traduzir tipos de dados - Interpretar mensagens Intermediate Routing: - Evitar ponto a ponto - Direcionar mensagens Asynchronous Queuing: - Garantia de mensagens - Escalabilidade Enterprise Server Bus 37
Arquitetura SOA (IBM) 38
Conceitos de Arquitetura para o negócio 39
Camadas de serviços Varios tipos de serviço dependendo da granularidade: - Tarefas de negócio (autorização, revisão, etc) - Serviço de Entidade (comprador, fatura, artigo, etc) - Serviços de utilidade (email, transformação de dados) 40
Tipos de Serviços 41
WS-BPEL,BPEL4WS (Composição) Fomentar o reuso de serviços autônomos 42
BPEL (Oracle) 43
Outras especificações (extensões): Transações: WS-Coordination, WS-Transaction, WS-AtomicTransaction, WS-BusinessActivity Política: WS-Policy, WS-PolicyAssertions Segurança: WS-Security, WS-Federation, WS-SecureConversation Extras: WS-CDL (Choreography Description Language) 44
Desenvolvendo SOA -Colaboração importante negócio e TI -Metodologia ágil não é tão recomendada 45
- Processo cíclico 46 Metodologia SOA 1) Definir processos do negócio 2) Examinar soluções existentes (bottom-up) 1) Criar inventário de serviços 2) Implementar serviços de acordo com a necessidade (top-down) + Evitar criar SOA a partir de zero + Sempre alinhar TI com o negócio
Arquitetura SOA (IBM) 47
SOA Governance 48
Comparação SOAD vs OOAD -Orientação a objetos é aplicado em segmentos da empresa. Para integrar aplicativos em OO, EAI era usado. (Contexto) -OO, EAI são influencias diretas de SOA: Reuso, Composição, etc. -SOA visa incrementar os benefícios de negócio (agilidade de processos), diversificar as opções de provedores e tecnologias, facilitar a integração. -Classes e objetos: Atributos e métodos. SOA tenta não utilizar estados (statelessness) -Mensagens. OOAD normalmente RPC ou similar. SOAD usa mensagens asíncronos e síncronos. -Maior parte dos serviços em SOA têm implementações com OO. 49
O que não é SOA -Conjunto de Web Services oferecendo acesso a código existente (Lembrar principios de desenho) -Solucão para qualquer tipo de problema. Tem que avaliar questões de negócio, benefícios, etc. -Conjunto de aplicações Silos integradas. (EAI) -SOA não é uma tecnologia totalmente nova: + OOD + AOD + EAI 50
Vantagens de SOA -Interoperabilidade: Facilidade de usar várias tecnologias e provedores -Facilitar o reuso: Inventário de serviços -Alinhar TI com negócio -Aumento de retorno do investimento (não nas primeiras iterações, e sim com inventario de serviços) -Agilidade na organização -Reduzir os custos de TI -Multicore, Cloud computing 51
Vantagens de SOA 52
Conclusão SOA é um modelo de arquitetura que visa melhorar a eficiência, agilidade e produtividade das empresas ou negócios. Objetivos de negócio alinhados ao paradigma de desenvolvimento orientado a serviços. Combinação de tecnologias, produtos, provedores, infraestruturas de suporte, extensões. 53
Referências Web -www.whatissoa.com -www.soaprinciples.com -www.soapatterns.org -www.soaspecs.com Thomas Erl. -www.ibm.com/developerworks/library/ar-soapit/ -www-01.ibm.com/software/solutions/soa/?pgel=ibmhzn&cm_re=masthead-_- business-_-soa -www.osoa.org (SCA, SDO) REST, Restlet, JSON 54