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

TDC 2012 Trilha – Android University

  • 1.
    Trilha – AndroidUniversity 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 Webcom Mobile Globalcode – Open4education
  • 3.
    Agenda ● Introdução ● EAI ●SOA ● Web Service ● REST ● RESTFul ● Integrando Android com Serviços Globalcode – Open4education
  • 4.
    Introdução ● No ínicioa 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 deIntegraçã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ãoprocedimentos 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 ● Interoperabilidadeentre 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 comServiços: HTTP Globalcode – Open4education
  • 22.
  • 23.
    Obrigado Globalcode – Open4education
  • 24.
    Bibliografia Globalcode – Open4education