• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Service Component Architecture
 

Service Component Architecture

on

  • 2,190 views

Apresentação em português realizada no evento JustJava08 por Felipe Olivelra (Kenobi), instrutor da SOAExpert.

Apresentação em português realizada no evento JustJava08 por Felipe Olivelra (Kenobi), instrutor da SOAExpert.

Statistics

Views

Total Views
2,190
Views on SlideShare
2,163
Embed Views
27

Actions

Likes
2
Downloads
54
Comments
0

3 Embeds 27

http://www.slideshare.net 15
http://www.linkedin.com 7
https://twitter.com 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Não apenas XML era usadno para representar data, mas o XSD – Schema Definition Language e transformações XSL – ( XSTL) também faziam parte do conjunto da tecnologia XML.
  • - A especificação SOAP veio originalmente desenhada para refazer as comunicações proprietárias RPC. A idéia era trafegar dados parametrizados e serializados entre componentes , em XML de deserializados novamente em formato nativo.
  • Universal Description Discovery and integration.
  • Testando notas
  • Lembrar do DNS Soluções mais robustas possuem uma camada de mediação entre produtores e clientes, como por exemplo um cliente que invoca um serviço através de HTTP e num nível mais baixo você infoca através de JMS.
  • Inclua ou retire serviços sem necessidade de recompilar seus clients.
  • Analogia do Telefone
  • Em qualuer aplicação, mesmo java pra java, integrando através de interfaces, ou expandindo para WebServices, consumo numa aplicação java Sempre existe um problema a ser resolvido, descrever como essas peças isoladas interagem uma com as outras. No pensamento SOA essas interações podem ser descritas como serviços , separando claramente a tecnologia da função provisionada. SCA define uma maneira geral e especifica como esses componentes podem ser combinadas numa estrutura maior, chamada Composites.
  • Em qualuer aplicação, mesmo java pra java, integrando através de interfaces, ou expandindo para WebServices, consumo numa aplicação java Sempre existe um problema a ser resolvido, descrever como essas peças isoladas interagem uma com as outras. No pensamento SOA essas interações podem ser descritas como serviços , separando claramente a tecnologia da função provisionada. SCA define uma maneira geral e especifica como esses componentes podem ser combinadas numa estrutura maior, chamada Composites.
  • Pronunciado skiddle. Components e composits são peças fundamentais para cada SCA Application. Ambos são partes para formar uma construção maior chamada de domínio.
  • Qual a diferença lógica entre Composite e Domain ? O composite precisa rodar num único vendor runtime
  • Cada componente é uma implementação de uma lógica. Falando em Java, pode ser a implementação de uma interface ou BPEL – WSDL. Um ponto a destacar são as referências, usadas anteriormente nos anos 90, quando falamos em aplicações distribuídas. legal, é que a referência pode nos indicar de maneira clara a dependência do componente sobre outros, para descobertas automáticas, criando tipos de Injeção de dependência. Propriedade dos componentes servem para parametrizar o comportamento dos mesmos, como um componente de região, você quer customizar por país.
  • Services e references dizem que um componente se comunica com o outro, entretanto, eles não dizem como essa comunicação é feita. Isso fica a cargo dos binds.
  • Bindings podem ser assinalados para serviços e para referência e cada um especifica um protocolo particular.
  • @Scope uma coisa interessante é que o atributo só pode ser utilizado com protocolos que propagam sessão, como SOAP.

Service Component Architecture Service Component Architecture Presentation Transcript

  • ENTERPRISE MASHUPS SOA 2.0 SoaExpert.com.br - Felipe Kenobi
  • Agenda
    • - SOA TimeLine
    • - Enterprise Service Bus
    • - SCA – Service Component Architecture (Mashups)
    • - Demo ( 10 min)
  • Do XML para WebServices ao SOA
    • XML uma derivação do SGML – Standard Generalized Markup Language, anos 60.
    • XML ganha popularidade nos anos 90 , movimento e-business.
    • Schema Definition Language (XSD) e XSL-XSLT ( Transformation Language), são pontos chave da tecnologia XML.
  • WebServices – breve histórico
    • Em 2000 o W3C recebeu uma submissão do SOAP – Simple Object Protocol.
    • Muitas companhias viram o potencial para avançar o estado da tecnologia de e-business, criando uma forma de se comunicar através da internet.
    • A peça central do conceito é a Interface Pública, que permite sua invocação através de assinatura e identificação – WSDL ( Web Service Description Language) – 2001.
  • WebServices – breve histórico
    • Outros formatos como XML-RPC foram considerados, mas a indútria acabou adotando o SOAP como padrão.
    • Primeira geração trazia ainda a especificação UDDI , originalmente desenvolvida pela UDDI.org
    • Início das plataformas de produtos MOMS – Messaging Oriented Middleware.
    • WebServices começam de fato a facilitar a troca de informações em sistemas B2B e segue como alternativa ao EDI – Eletronic Data Interchange.
  • SOA – O início
    • Utilizar a estrutura de WebServices para desacoplar a arquitetura.
    • Frequentemente classificado de diferentes maneiras, dependendo da implementação tecnológica utilizada.
    • O modelo inicial , mais inspirado no conjunto de definções padrão dos WebServices, definiam uma arquitetura com 3 componentes básicos:
  • SOA – O início Service registry Discover and retrieve WSDL Publish WSDL Exchange SOAP Messages Service requestor Service provider
  • SOA – O início
    • O modelo primitivo é facilmente atingido hoje em dia.
    • Diversos players do mercado começam a manifestar interesse em evoluir o conceito
    • SOA Conteporânio começa a ser desenhado colaborativamente e uma série de extensões começam a surgir sobre a primeira geração de WebServices - Segunda geração ( WS-*)
  • SOA Contemporânio
    • WS-Addressing
    • WS-RealiableMessaging
    • WS-Policy Framework( WS-Policy Attachment e WS-Policy Assertions)
    • WS-MetadaExchange
    • WS-Security(XML-Encryption, XML-Signature e SAML)
    • WS-Notification Framework (WS-BaseNotification, WS-Topics, WS-BrokeredNotification)
    • WS-Eventing
  • Banquete Completo
  • Hub and Spoke & ESB
    • Hub and Spoke : Ponto central para serviços como transformação, roteamento e controle de transações.
    • Hub ( usualmente um Message Broker) é uma peça monolítica de software.
    • Hub – providencia a lógica do serviço de integração centralizada ex. Integregation Server, Process Manager, Database …
  • Enterprise Service Bus
    • Bus – Um Hub que suporta uma implementação distribuída ou federada.
    • ESB – Um conjunto de Bus, integrado com seus diferentes protocolos-adaptadores, conectando diferentes formatos, utilizados em cada Bus.
  • ESB – Surgimento Early Version
    • O nome ESB era ligado somente ao “service enabling”.
    • Não existia padrões estipulados pelo mercado – indústria.
  • Por que utilizar um ESB ?
    • Arquitetura desacoplada – “Lose Coupling”
    • Localização Transparente de serviços
    • Mediação
    • Schema Transformation
    • Service Aggregation
    • Load Balance
    • Reforço de segurança
    • Monitoria
    • Configuração vs codificação
  • Tight Couple – EJB Model
  • Visão Point-to-Point
  • Expandindo apenas um bit…
  • Loose Coupling
    • WebServices podem proporcionar desacoplamento entre sistemas ?
  • Location Transparency
    • Uma estratégia para esconder os endpoints do service client .
    • Aumenta a flexibilidade para administrar seus serviços.
  • Mediation
    • O ESB de fato é uma camada de mediação, residindo entre o service client e service provider.
    • Capacidade de realizar múltiplas operações, como transformação de estrutura de dados, ou schema de mensagens.
    • Direciona a rota das mensagens, para o serviço apropriado de acordo com o conteúdo.
  • Schema Transformation
    • Um serviço publicado utiliza um outro schema.
    • Habilidade de transformar dados de um schema para um outro.
    • Algumas tecnologias correlatas: XSLT, Xquery e Xpath.
  • Service Aggregation
    • ESB pode atuar como um façade e realizar uma série de chamadas como um serviço único.
    • Service Aggregation é aderente ao pattern.
    • Realiza múltiplas chamadas encapsulada num único proxy e retorna um único resultado.
    • Similar à service orchestration, entretanto inclui alguma lógica.
  • Load Balance
    • ESBs podem distribuir os requests através de múltiplos service endpoints.
    • Permite ao admistrador acrescer ou retirar endpoints sem necessidade de reiniciar o serviço.
  • Enforcing Security
    • Centraliza a administração.
    • Permite um maior nível de controle sobre falhas e exposições dos serviços.
    • Dirigida através frameworks de segurança – Policy-driven.
    • A utilização de policies padroniza um método para criação de cada webservice individual.
  • Monitoring
    • Permite os admistradores saberem o status de cada serviço para agirem reativamente ou pró-ativamente.
    • Pró-ativamente, permite um admistrador realizar performance-tune sobre os serviços a fim de melhorar performance por exemplo.
    • Reativamente, permite definir uma série de alertas à condições específicas.
    • Definição de métricas e políticas de SLA.
  • Configuration vs Coding
    • ESBs modernos são baseados em configuração e não programação.
    • Ciclo de desenvolvimento simplificado, basta alterara algo e esta é imediatamente refletido no comportamento do serviço.
  • Enterprise Integration Patterns
    • Tem coisas, que só o ESB faz por você  .
  • Demo – Enterprise Service Bus
    • Estou num mac, se estiver lento a culpa é do Ruindows ou da VMWare :-P
  • Service Component Architecture (SCA)
    • O que é uma aplicação ?
    • Um conjunto de componentes de software trabalhando em conjunto, harmonia(rs).
    • Componentes podem ou não utilizar a mesma tecnologia, estar ou não na mesma máquina….
  • Components e Composites (SCA)
    • Composite é uma composição lógica, que pode rodar num simples processo numa máquina ou distribuída.
    • Uma aplicação completa pode ser construída por um único composite, ou combinar uma série deles.
  • Components e Composites (SCA)
  • Components e Composites (SCA)
    • Um SCA Composite é tipicamente descrito e associado a um arquivo de configuração XML chamado – Service Component Definition Language (SCDL).
  • Domains (SCA)
    • Domínio é um agrupamento lógico de composites , contendo um ou mais.
    • Os composites não precisam estar necessariamente na mesma máquina ou sob o mesmo player .
    • Domínios são conceitos importantes quando pensamos em aplicações distribuídas.
  • Domain (SCA)
  • Domain (SCA)
  • Entendimento sobre Componentes
    • Componentes são como átomos de uma aplicação baseada em SCA.
    • Os átomos podem ser reagrupados de maneira consitente formando outras variçãoes de configuração.
    • Componente também pode ser entendido como uma instância de uma implementação.
    • A configuração expressada em SCDL define como os componentes interagem fora do seu mundo.
  • Services, References and Properties
  • Bindings
  • Já que estamos num evento Java…
    • Os conceitos fundamentais sobre componentes SCA são simples: services, references properties e algumas vezes bindings.
    • Algumas tecnologias hoje no mundo java fazem muito bem esse tipo de abstração – SpringFramework, que provisiona suporte explícito para serviços, referências e propriedades.
    • Algumas tecnologias anteriores como EJB, sãodesenhadas para encapsular a lógica de negócias, mas não enxergam os serviços como fundamentais.
    • Uma arquitetura java SCA-based pode suportar diversas formas de comunicação de maneira transparente.
    • Por essas e outras, acredito que o formato SCA deve simplificar bastante a vida do desenvolvedor Java 
  • Defining Services / SCA-java
  • Defining References
    • MonitorService é uma interface e para invocá-la usamos o método usageCount(x);
    • Em tempo de execução a responsabilidade de localizar a instância é passada e o serviço correto é invocado via IoC .
  • Defining Properties
    • Assim como as references e remote services, properties são identificadas usando uma anotação.
    • Esta propriedade pode estar assinalada em um atributo ou método e indica que o valor deve ser lido do arquivo de configuração SCDL do composite o qual o componente pertence.
  • Defining Bindings
  • Defining Bindings
    • A versão 1.0 do SCA Java component model não define um meio do desenvolvedor especificar um binding diretamente em java.
    • A escolha dos bindings de um service ou uma reference são escolhidos em rutime por uma comunicação intra-domain ou explicitados no SCDL.
  • Defining Other Aspects of a Component
    • @OneWay, especifica que uma operação não retorna resposta.
    • @Scope, controla o ciclo de vida do componente – Conversational ou Stateless.
    • @Callback, permite que uma interface da callback seja definida. Suporta comunicação two-way, entre componentes usando bi-directional interfaces.
  • Configuring a Component
  • Configuring a composite
  • Wires and Promotion
  • Using Policy
    • SCA possui um policy framework que define praticamente duas categorias:
    • - Interaction policies: Modifica como um componente interage com outros componentes. (segurança).
    • - Implementation policies: Modifica o comportamento local. Ex. Como um componente se comporta dentro de uma transacação.
  • Juntando tudo
  • Projetos SCA
    • Apache Tuscany - http://tuscany.apache.org
    • Fabric3 - http://fabric3.codehaus.org
    • Newton* http://newton.codecauldron.org
  • Questions & Answers
    • Felipe “Kenobi” / [email_address]
    • Em breve > www.soaexpert.com.br
    • Obrigado pela paciência e Acordem!! A palestra da Yara e Alberto vai ser muito menos chata, I hope  .