Architecting cloud-enabled
               applications using Spring-
                    Integration 2.x
                                 Edson Yanaga
                             Desenvolvedor e Consultor
                              www.yanaga.com.br
                             edson@yanaga.com.br
                                @edsonyanaga


Wednesday, December 14, 11
Edson Yanaga
                 •      Bacharel em Ciência da Computação/UEM
                 •      Mestre em Engenharia Elétrica/UTFPR
                 •      Desenvolvedor Java desde 1997
                 •      Administrador Unix desde 1999
                 •      Oracle Certified Professional, Java Platform, Enterprise
                        Edition 6 Enterprise JavaBeans Developer
                 •      Certified ScrumMaster
                 •      Sun Certified Developer for Java Web Services 5
                 •      Sun Certified Specialist for NetBeans IDE
                 •      Sun Certified Web Component Developer for J2EE 1.4
                 •      Sun Certified Programmer for Java 2 Platform 1.4


Wednesday, December 14, 11
O que é
       Enterprise
      Integration?
         Tarefa de fazer com
           que aplicações
        separadas trabalhem
        juntas para fornecer
         uma funcionalidade



Wednesday, December 14, 11
Critérios de integração
                 • Acoplamento
                 • Simplicidade
                 • Tecnologia
                 • Formato dos dados
                 • Sazonalidade dos dados
                 • Assincronicidade

Wednesday, December 14, 11
Opções de integração
Wednesday, December 14, 11
Cloud
           Computing
            Integração e
          portabilidade de
             aplicações



Wednesday, December 14, 11
“O Livro”
Wednesday, December 14, 11
Aplicação




Wednesday, December 14, 11
Aplicação        Splitter   Router




Wednesday, December 14, 11
Aplicação        Splitter   Router




Wednesday, December 14, 11
Aplicação        Splitter   Router




Wednesday, December 14, 11
Aplicação        Splitter   Router




Wednesday, December 14, 11
Aplicação        Splitter   Router




Wednesday, December 14, 11
Splitter               Router




Wednesday, December 14, 11
Splitter               Router




Wednesday, December 14, 11
Splitter               Router




Wednesday, December 14, 11
Splitter               Router




Wednesday, December 14, 11
Splitter               Router




Wednesday, December 14, 11
Splitter               Router




Wednesday, December 14, 11
Splitter               Router




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Router                      Aggregator




Wednesday, December 14, 11
Outros Endpoints

                 • Filter: decide se a mensagem continua ou não
                 • Transformer: transforma o conteúdo de uma
                        mensagem de um formato para outro formato

                 • Delayer: atrasa a entrega da mensagem
                 • ...



Wednesday, December 14, 11
Spring Integration


                 • É a implementação
                      dos Enterprise
                      Integration Patterns
                      fornecida pela
                      SpringSource




Wednesday, December 14, 11
<XML/>
           Configuração
          através de XML




Wednesday, December 14, 11
XML na dose
       certa
      Quanto uma criança
      ganha um martelo,
        o mundo inteiro
       torna-se pregos...



Wednesday, December 14, 11
AWS
        Plataforma de
       cloud computing
      (IaaS) da Amazon



Wednesday, December 14, 11
Principais Serviços


                 • S3 (Simple Storage Service)
                 • EC2 (Elastic Compute Cloud)
                 • SQS (Simple Queue Service)
                 • ...



Wednesday, December 14, 11
DEMO



Wednesday, December 14, 11
#javaonebrasil




Wednesday, December 14, 11
Transformer
     #javaonebrasil
                             (JSON -> POJO)




Wednesday, December 14, 11
Transformer     Splitter
                     (JSON -> POJO)    (urls)




Wednesday, December 14, 11
Splitter       Filter
                   (urls)    (idempotente)




Wednesday, December 14, 11
Filter         ServiceActivator
          (idempotente)           (SQS)




Wednesday, December 14, 11
ServiceActivator
                                   (S3)




Wednesday, December 14, 11
Let the code begin...



Wednesday, December 14, 11

Architecting cloud-enabled applications using Spring-Integration 2.x

  • 1.
    Architecting cloud-enabled applications using Spring- Integration 2.x Edson Yanaga Desenvolvedor e Consultor www.yanaga.com.br edson@yanaga.com.br @edsonyanaga Wednesday, December 14, 11
  • 2.
    Edson Yanaga • Bacharel em Ciência da Computação/UEM • Mestre em Engenharia Elétrica/UTFPR • Desenvolvedor Java desde 1997 • Administrador Unix desde 1999 • Oracle Certified Professional, Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer • Certified ScrumMaster • Sun Certified Developer for Java Web Services 5 • Sun Certified Specialist for NetBeans IDE • Sun Certified Web Component Developer for J2EE 1.4 • Sun Certified Programmer for Java 2 Platform 1.4 Wednesday, December 14, 11
  • 3.
    O que é Enterprise Integration? Tarefa de fazer com que aplicações separadas trabalhem juntas para fornecer uma funcionalidade Wednesday, December 14, 11
  • 4.
    Critérios de integração • Acoplamento • Simplicidade • Tecnologia • Formato dos dados • Sazonalidade dos dados • Assincronicidade Wednesday, December 14, 11
  • 5.
  • 6.
    Cloud Computing Integração e portabilidade de aplicações Wednesday, December 14, 11
  • 7.
  • 8.
  • 9.
    Aplicação Splitter Router Wednesday, December 14, 11
  • 10.
    Aplicação Splitter Router Wednesday, December 14, 11
  • 11.
    Aplicação Splitter Router Wednesday, December 14, 11
  • 12.
    Aplicação Splitter Router Wednesday, December 14, 11
  • 13.
    Aplicação Splitter Router Wednesday, December 14, 11
  • 14.
    Splitter Router Wednesday, December 14, 11
  • 15.
    Splitter Router Wednesday, December 14, 11
  • 16.
    Splitter Router Wednesday, December 14, 11
  • 17.
    Splitter Router Wednesday, December 14, 11
  • 18.
    Splitter Router Wednesday, December 14, 11
  • 19.
    Splitter Router Wednesday, December 14, 11
  • 20.
    Splitter Router Wednesday, December 14, 11
  • 21.
    Router Aggregator Wednesday, December 14, 11
  • 22.
    Router Aggregator Wednesday, December 14, 11
  • 23.
    Router Aggregator Wednesday, December 14, 11
  • 24.
    Router Aggregator Wednesday, December 14, 11
  • 25.
    Router Aggregator Wednesday, December 14, 11
  • 26.
    Router Aggregator Wednesday, December 14, 11
  • 27.
    Router Aggregator Wednesday, December 14, 11
  • 28.
    Router Aggregator Wednesday, December 14, 11
  • 29.
    Router Aggregator Wednesday, December 14, 11
  • 30.
    Outros Endpoints • Filter: decide se a mensagem continua ou não • Transformer: transforma o conteúdo de uma mensagem de um formato para outro formato • Delayer: atrasa a entrega da mensagem • ... Wednesday, December 14, 11
  • 31.
    Spring Integration • É a implementação dos Enterprise Integration Patterns fornecida pela SpringSource Wednesday, December 14, 11
  • 32.
    <XML/> Configuração através de XML Wednesday, December 14, 11
  • 33.
    XML na dose certa Quanto uma criança ganha um martelo, o mundo inteiro torna-se pregos... Wednesday, December 14, 11
  • 34.
    AWS Plataforma de cloud computing (IaaS) da Amazon Wednesday, December 14, 11
  • 35.
    Principais Serviços • S3 (Simple Storage Service) • EC2 (Elastic Compute Cloud) • SQS (Simple Queue Service) • ... Wednesday, December 14, 11
  • 36.
  • 37.
  • 38.
    Transformer #javaonebrasil (JSON -> POJO) Wednesday, December 14, 11
  • 39.
    Transformer Splitter (JSON -> POJO) (urls) Wednesday, December 14, 11
  • 40.
    Splitter Filter (urls) (idempotente) Wednesday, December 14, 11
  • 41.
    Filter ServiceActivator (idempotente) (SQS) Wednesday, December 14, 11
  • 42.
    ServiceActivator (S3) Wednesday, December 14, 11
  • 43.
    Let the codebegin... Wednesday, December 14, 11