SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Trilha – Android University
          Inael Rodrigues de Oliveira Neto
      Último período em Engenharia de Software UFG
Aluno Especial no Mestrado em Ciência da Computação UFG
            Programador Java, Groovy, C# .Net


                                               Globalcode – Open4education
Integração de Aplicação
Web com Mobile




                          Globalcode – Open4education
Agenda

● Introdução
● EAI
● SOA
● Web Service
● REST
    ● RESTFul
● Integrando Android com Serviços




                                    Globalcode – Open4education
Introdução

● No ínicio a informação era processada em sistemas
  centralizados.
● A demanda de integração era em ambientes mais
  homogênos.
● Com as novas plataformas e tecnologias o ambiente
  tornou-se heterogêneo
● Sistemas legados acabaram se tornando ilhas de
  informação.
● Nesse cenário complexo,
  a web é a ponte que conecta
  as ilhas.


                                           Globalcode – Open4education
Introdução

• Necessidade de Integração
  • Software de diferentes fabricantes;
  • Software desenvolvido com tecnologias diferentes;
  • Software desenvolvido com necessidades governamentais ou legais.




                                                         Globalcode – Open4education
Enterprise Application Integration(EAI)




São procedimentos e ferramentas que viabiliza
interação entre sistemas heterogêneos
 ● Métodos de Integração

    ○   Integração Ponto a Ponto (File Transfer)
        ■   troca de arquivos geralmente no formato TXT ou CSV
    ○   Integrações via Banco de Dados (Shared Database)
    ○   Integrações Multipontos via Middleware (Messaging e
        remote procedure invocation).
    ○   Integração Orientada a Mensagens(Messaging)



                                                     Globalcode – Open4education
Service Oriented Architecture(SOA)


É estilo arquitetural que disponibiliza funcionalidades na
forma de serviços

●   Geralmente são conectados através de um barramento de
    serviço que disponibiliza interfaces




                                                Globalcode – Open4education
Service Oriented Architecture(SOA)




                                     Globalcode – Open4education
Service Oriented Architecture(SOA)




                                     Globalcode – Open4education
Service Oriented Architecture(SOA)




                                     Globalcode – Open4education
Service Oriented Architecture(SOA)


Normalmente, a comunicação entre o sistema cliente
e aquele que disponibiliza o serviço é realizada
através de web services.




                                      Globalcode – Open4education
Web Service

● Interoperabilidade entre aplicações rodando em
  diferentes plataformas.

● Basea-se em um protocolo que encapsula as
(SOAP – Simple Object Access Protocol)

● Basea-se em uma linguagem que descreve as
  interfaces dos serviços, conhecida como WSDL
  (Web Services Description Language).


                                      Globalcode – Open4education
Web Service


              WSDL




              Globalcode – Open4education
Web Service




              Globalcode – Open4education
Representational State Transfer(REST)


●   Criado em 2000 por um cientista da computação
    norte-americano e um dos principais criadores da
    especificação HTTP, Roy Fielding.

●   REST surgiu a partir da
    combinação de outros estilos
    arquiteturais.




                                        Globalcode – Open4education
REST - RESTful

●   WebServices que seguem os princípios REST são
    freqüentemente chamados de RESTful.

●   As principais características:
     ○ Separação de responsabilidades entre as camadas
       cliente e servidor;
     ○ Comunicações independentes (stateless);
     ○ Uso de cache (para eliminar algumas interações
       desnecessárias entre cliente e servidor);
     ○ Utilização de uma interface uniforme entre os
       componentes
●



                                            Globalcode – Open4education
REST - RESTful




                 Globalcode – Open4education
REST - RESTful




                 Globalcode – Open4education
Integrando Android com
Serviços
●   A Integração pode ser realizada por
    ○   Sockets -
        ■   java.net.Socket
    ○   HTTP -
        ■   Simples: java.net.HttpUrlConnection
        ■   Complexa: HttpClient Jakarta Commons(http://hc.apach.org)
             ●   Ex. Autenticar em servidor seguro.
    ○   Web Services
        ■   org.ksoap2.SoapEnvelop
        ■   org.ksoap2.serialization.SoapObject
        ■   org.ksoap2.serialization.SoapSerializationEnvelope
        ■   org.ksoap2.transport.HttpTransportSE




                                                        Globalcode – Open4education
Integrando Android com
Serviços: WebService
         public class WSConnection {
          private static final String URL = "http://www.maniezo.com.br/webservice/soap-server.php";
          private static final String OPERATION = "traz_cep";
          private static final String NAMESPACE = "http://www.maniezo.com.br/soap-server.php";
          private static final String USERNAME = "ramonrabello";
          private static final String PASSWORD = "trip22";

          public static Object pesquisarCEP(String cep) {

           SoapObject request = new SoapObject("http://localhost:8080/soap-server.php","traz_cep");
           SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
             SoapEnvelope.VER11);
           envelope.setOutputSoapObject(request);

           StringBuffer params = new StringBuffer();
           params.append(cep.concat("#"));
           params.append(USERNAME.concat("#"));
           params.append(PASSWORD.concat("#"));

           request.addProperty("dados_cep", params.toString());
           HttpTransportSE httpTransport = new HttpTransportSE(URL);

           try {
             httpTransport.call("", envelope);
             String response = (String) envelope.getResponse()...




                                                                                       Globalcode – Open4education
Integrando Android com Serviços: HTTP




                                        Globalcode – Open4education
Android Developers
http://developer.android.com




                               Globalcode – Open4education
Obrigado
           Globalcode – Open4education
Bibliografia




               Globalcode – Open4education

Contenu connexe

Tendances

TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1WSO2
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
 
Node.js Streams - TDC SP
Node.js Streams - TDC SPNode.js Streams - TDC SP
Node.js Streams - TDC SPRoberto Alves
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJSEmmanuel Neri
 

Tendances (7)

TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
 
Node.js Streams - TDC SP
Node.js Streams - TDC SPNode.js Streams - TDC SP
Node.js Streams - TDC SP
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
 

Similaire à TDC 2012 Trilha – Android University

JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingEder Magalhães
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...tdc-globalcode
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouJose Wilker
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começouJose Wilker
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaSEder Magalhães
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIsRafael de Paula Souza
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2Eric Lemes
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Escalabilidade em servidores REST - TDC 2017
Escalabilidade em servidores REST - TDC 2017Escalabilidade em servidores REST - TDC 2017
Escalabilidade em servidores REST - TDC 2017Matheus Hunsche
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APIWaldyr Felix
 
TDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDITDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDIRodrigo Cândido da Silva
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMAlisson Solitto
 

Similaire à TDC 2012 Trilha – Android University (20)

JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIs
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Escalabilidade em servidores REST - TDC 2017
Escalabilidade em servidores REST - TDC 2017Escalabilidade em servidores REST - TDC 2017
Escalabilidade em servidores REST - TDC 2017
 
DotNet vs. Java
DotNet vs. JavaDotNet vs. Java
DotNet vs. Java
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Minicurso Node-RED.pdf
Minicurso Node-RED.pdfMinicurso Node-RED.pdf
Minicurso Node-RED.pdf
 
TDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDITDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDI
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 

Plus de Inael Rodrigues

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemInael Rodrigues
 
Arquiteturas de sistemas reais
Arquiteturas de sistemas reaisArquiteturas de sistemas reais
Arquiteturas de sistemas reaisInael Rodrigues
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2Inael Rodrigues
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: ComentáriosInael Rodrigues
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3Inael Rodrigues
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Inael Rodrigues
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Inael Rodrigues
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Inael Rodrigues
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: ClassesInael Rodrigues
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiInael Rodrigues
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android Inael Rodrigues
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilInael Rodrigues
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Inael Rodrigues
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1Inael Rodrigues
 

Plus de Inael Rodrigues (18)

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de Pastagem
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Arquiteturas de sistemas reais
Arquiteturas de sistemas reaisArquiteturas de sistemas reais
Arquiteturas de sistemas reais
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
 
Código limpo: Limites
Código limpo: LimitesCódigo limpo: Limites
Código limpo: Limites
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: Comentários
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: Classes
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta Jabuti
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento Ágil
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1
 

TDC 2012 Trilha – Android University

  • 1. Trilha – Android University Inael Rodrigues de Oliveira Neto Último período em Engenharia de Software UFG Aluno Especial no Mestrado em Ciência da Computação UFG Programador Java, Groovy, C# .Net Globalcode – Open4education
  • 2. Integração de Aplicação Web com Mobile Globalcode – Open4education
  • 3. Agenda ● Introdução ● EAI ● SOA ● Web Service ● REST ● RESTFul ● Integrando Android com Serviços Globalcode – Open4education
  • 4. Introdução ● No ínicio a informação era processada em sistemas centralizados. ● A demanda de integração era em ambientes mais homogênos. ● Com as novas plataformas e tecnologias o ambiente tornou-se heterogêneo ● Sistemas legados acabaram se tornando ilhas de informação. ● Nesse cenário complexo, a web é a ponte que conecta as ilhas. Globalcode – Open4education
  • 5. Introdução • Necessidade de Integração • Software de diferentes fabricantes; • Software desenvolvido com tecnologias diferentes; • Software desenvolvido com necessidades governamentais ou legais. Globalcode – Open4education
  • 6. Enterprise Application Integration(EAI) São procedimentos e ferramentas que viabiliza interação entre sistemas heterogêneos ● Métodos de Integração ○ Integração Ponto a Ponto (File Transfer) ■ troca de arquivos geralmente no formato TXT ou CSV ○ Integrações via Banco de Dados (Shared Database) ○ Integrações Multipontos via Middleware (Messaging e remote procedure invocation). ○ Integração Orientada a Mensagens(Messaging) Globalcode – Open4education
  • 7. Service Oriented Architecture(SOA) É estilo arquitetural que disponibiliza funcionalidades na forma de serviços ● Geralmente são conectados através de um barramento de serviço que disponibiliza interfaces Globalcode – Open4education
  • 8. Service Oriented Architecture(SOA) Globalcode – Open4education
  • 9. Service Oriented Architecture(SOA) Globalcode – Open4education
  • 10. Service Oriented Architecture(SOA) Globalcode – Open4education
  • 11. Service Oriented Architecture(SOA) Normalmente, a comunicação entre o sistema cliente e aquele que disponibiliza o serviço é realizada através de web services. Globalcode – Open4education
  • 12. Web Service ● Interoperabilidade entre aplicações rodando em diferentes plataformas. ● Basea-se em um protocolo que encapsula as (SOAP – Simple Object Access Protocol) ● Basea-se em uma linguagem que descreve as interfaces dos serviços, conhecida como WSDL (Web Services Description Language). Globalcode – Open4education
  • 13. Web Service WSDL Globalcode – Open4education
  • 14. Web Service Globalcode – Open4education
  • 15. Representational State Transfer(REST) ● Criado em 2000 por um cientista da computação norte-americano e um dos principais criadores da especificação HTTP, Roy Fielding. ● REST surgiu a partir da combinação de outros estilos arquiteturais. Globalcode – Open4education
  • 16. REST - RESTful ● WebServices que seguem os princípios REST são freqüentemente chamados de RESTful. ● As principais características: ○ Separação de responsabilidades entre as camadas cliente e servidor; ○ Comunicações independentes (stateless); ○ Uso de cache (para eliminar algumas interações desnecessárias entre cliente e servidor); ○ Utilização de uma interface uniforme entre os componentes ● Globalcode – Open4education
  • 17. REST - RESTful Globalcode – Open4education
  • 18. REST - RESTful Globalcode – Open4education
  • 19. Integrando Android com Serviços ● A Integração pode ser realizada por ○ Sockets - ■ java.net.Socket ○ HTTP - ■ Simples: java.net.HttpUrlConnection ■ Complexa: HttpClient Jakarta Commons(http://hc.apach.org) ● Ex. Autenticar em servidor seguro. ○ Web Services ■ org.ksoap2.SoapEnvelop ■ org.ksoap2.serialization.SoapObject ■ org.ksoap2.serialization.SoapSerializationEnvelope ■ org.ksoap2.transport.HttpTransportSE Globalcode – Open4education
  • 20. Integrando Android com Serviços: WebService public class WSConnection { private static final String URL = "http://www.maniezo.com.br/webservice/soap-server.php"; private static final String OPERATION = "traz_cep"; private static final String NAMESPACE = "http://www.maniezo.com.br/soap-server.php"; private static final String USERNAME = "ramonrabello"; private static final String PASSWORD = "trip22"; public static Object pesquisarCEP(String cep) { SoapObject request = new SoapObject("http://localhost:8080/soap-server.php","traz_cep"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.setOutputSoapObject(request); StringBuffer params = new StringBuffer(); params.append(cep.concat("#")); params.append(USERNAME.concat("#")); params.append(PASSWORD.concat("#")); request.addProperty("dados_cep", params.toString()); HttpTransportSE httpTransport = new HttpTransportSE(URL); try { httpTransport.call("", envelope); String response = (String) envelope.getResponse()... Globalcode – Open4education
  • 21. Integrando Android com Serviços: HTTP Globalcode – Open4education
  • 22. Android Developers http://developer.android.com Globalcode – Open4education
  • 23. Obrigado Globalcode – Open4education
  • 24. Bibliografia Globalcode – Open4education