guia de laboratorio comunicaciones tema comunicacion a traves servicios web soap xml en aplicaciones...

20
GUIA DE LABORATORIO DESARROLLO DE APLICACIONES ANDROID QUE CONSUMEN SERVICIOS WEB(SOAP-XML) EN PHP ING.IVAN PETRLIK AZABACHE

Upload: boydxd-hacksoft

Post on 08-Apr-2016

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

GUIA DE LABORATORIO

DESARROLLO DE APLICACIONES

ANDROID QUE CONSUMEN

SERVICIOS WEB(SOAP-XML) EN PHP

ING.IVAN PETRLIK AZABACHE

Page 2: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

SERVICIOS WEB

Un servicio web es una tecnología que utiliza un conjunto de protocolos y estándares que sirven

para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en

lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los

servicios web para intercambiar datos en redes de ordenadores como Internet.

La interoperabilidad se consigue mediante la adopción de estándares abiertos Las

organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación

de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de

servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para

definir de manera más exhaustiva estos estándares. Es una máquina que atiende las peticiones de

los clientes web y les envía los recursos solicitados.

Estándares Empleados

Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los

servicios Web.

XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a

intercambiar.

SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call):

Protocolos sobre los que se establece el intercambio.

Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra

mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer

Protocol), o SMTP (Simple Mail Transfer Protocol).

WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los

servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios

para establecer una comunicación con los servicios Web.

UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la

información de los servicios Web. Permite comprobar qué servicios web están disponibles.

WS-Security (Web Service Security): Protocolo de seguridad aceptado como estándar

por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza

la autenticación de los actores y la confidencialidad de los mensajes enviados.

Ventajas de los Servicios Web

Aportan interoperabilidad entre aplicaciones de software independientemente de sus

propiedades o de las plataformas sobre las que se instalen.

Page 3: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más

fácil acceder a su contenido y entender su funcionamiento.

Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares

geográficos puedan ser combinados fácilmente para proveer servicios integrados.

Razones para crear Servicios Web

La principal razón para usar servicios Web es que se pueden utilizar con HTTP sobre TCP

(Transmission Control Protocol) en el puerto 80. Dado que las organizaciones protegen sus redes

mediante firewalls -que filtran y bloquean gran parte del tráfico de Internet-, cierran casi todos los

puertos TCP salvo el 80, que es, precisamente, el que usan los navegadores. Los servicios Web

utilizan este puerto, por la simple razón de que no resultan bloqueados. Es importante señalar que

los servicios web se pueden utilizar sobre cualquier protocolo, sin embargo, TCP es el más común.

Otra razón es que, antes de que existiera SOAP, no había buenas interfaces para acceder a las

funcionalidades de otros ordenadores en red. Las que había eran ad hoc y poco conocidas, tales

como EDI (Electronic Data Interchange), RPC (Remote Procedure Call), u otras APIs

Una tercera razón por la que los servicios Web son muy prácticos es que pueden aportar gran

independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma, los

cambios a lo largo del tiempo en uno no deben afectar al otro. Esta flexibilidad será cada vez más

importante, dado que la tendencia a construir grandes aplicaciones a partir de componentes

distribuidos más pequeños es cada día más utilizada.

Se espera que para los próximos años mejoren la calidad y cantidad de servicios ofrecidos

basados en los nuevos estándares.

Implementando un Servicio Web (Soap) XML en PHP

Para empezar a desarrollar un servicio web en PHP primero tenemos que tener instalado el

Netbeans 7.2 (IDE), el WampServer que proporciona un servidor de aplicaciones Apache y el

mismo PHP.

Primeramente tenemos que levantar el servicio del Apache a través del programa WampServer

que en nuestra pc se encuentra el icono de ejecución dentro de

Inicio/Programas/WampServer/start WampServer , que a continuación vamos a mostrar:

Ejecutando el programa

WampServer que por

defecto levanta todos los

servicios

Page 4: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Para poder verificar que los servicio estén activos (Apache,Mysql) el WampServer tiene un panel

de control , este se puede encontrar sin ningún tipo de problema en la parte de abajo del escritorio

, al costado del reloj.

Ahora que hemos conocido el entorno del programa WampServer que me permite administrar los

servicios del Apache, Mysql y el Php para la respectiva configuración, entonces ya estamos en la

condiciones necesarias para empezar a programar en php y para esto tenemos que estar seguros

que el servidor apache este levantado .

A continuación vamos a abrir el netbeans 7.2 para empezar a programar en php.

1) Cliquear el icono

correspondiente

Dar clic en el

correspondiente icono

3)se muestra este menú que

proporciona todas las opciones de

configuración y servicios

Page 5: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando el IDE Netbeans ha sido abierto a continuación vamos a crear un proyecto en Php, de la

siguiente manera:

Aparece una ventana en la cual tenemos que seleccionar en categorías la opción PHP y el Projects

la opción PHP Application.

Seleccionar la opción

File

Elegir la opción New Project

Elegir la opción PHP Seleccionar la opción PHP

Application

Presionar el botón Next

Page 6: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando ya hemos presionado el botón Next, nos muestra otra pantalla que solicita que coloque

el nombre del proyecto y además se debe de ubicar este mismo en la carpeta de instalación

wamp /www .

Cuando hemos presionado el botón Browse entonces aparece una ventana que me permite la

ubicación del proyecto en PHP.

El nombre de la carpeta que estamos creando tiene que tener el mismo nombre del proyecto.

1) Colocar el nombre

del proyecto

2) Presionar el botón

Browse para la respectiva

ubicación del proyecto

1) Seleccionamos y

lo ubicamos en la

siguiente ruta :

C:/wamp/www/

2) Luego Presionamos este icono

de carpeta nueva

3) aquí la carpeta se está creando

y colocando el mismo nombre del

proyecto .

Page 7: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando ya hemos definido la ruta donde se encontrara el proyecto y además hemos

presionado el boton Next

Cuando hemos presionado el botón Finish entonces ya hemos terminado con el proceso de

creación del proyecto.

1) Este sería la ruta donde se va a

encontrar el proyecto en PHP

2) Presionamos el botón Next

Esta es la ruta en la cual vamos

a cargar la página de nuestro

proyecto.

Presionar el botón Finist

Page 8: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Aquí mostramos el proyecto en PHP debidamente creado.

Creamos un PHP File de nombre Servidor.php

Cuando ya hemos seleccionado la opción PHP File Ahora aparece una ventana solicitando que

coloque el nombre de la página.

Proyecto creado

satisfactoriamente

Seleccionamos la carpeta de nombre

Source Files y le damos clic derecho,

aparece un menú contextual

Seleccionamos la opción New

Seleccionamos la opción PHP File

Colocando el nombre de la

página

Presionar el botón Finish

Page 9: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

A continuación mostramos el proyecto con la página Servidor.php debidamente creado.

A continuación vamos a descargar una librería de nombre nusoap.php que me permite la

creación de Servicios Web (Soap-XML) en PHP, la ruta para la respectiva descarga es:

https://www.dropbox.com/s/ewd8f9ogdy4i002/nusoap.php

Cuando ya hemos descargado la página nusoap.php entonces debemos de copiar para que luego

pegarlo en la carpeta Source Files de nuestro proyecto en PHP.

Página creada

satisfactoriamente

Seleccionamos la carpeta

Source Files y le damos clic

derecho

Pegar el archivo

nusoap.php que se copió

en el momento que

termino de descargar

Page 10: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Aquí ya tenemos el archivo nusoap.php implementado en el respectivo proyecto.

Ahora vamos a empezar a codificar en la página Servidor.php

Aquí tenemos el archivo

nusoap.php debidamente

implementado

Aquí

Este es el código fuente que tenemos que implementar

Page 11: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Aquí vamos a mostrar a mayor amplitud el código que permite implementar el método a la cual

se va a consumir a través de una aplicación que se ejecuta en el lado del cliente, en nuestro caso

la aplicación que utilizara este método será una aplicación en Android.

Ahora vamos a ejecutar el Servicio Web (Soap)

El Servicio Web al ser ejecutado nos muestra la siguiente página

Método del Servicio Web que se va a

consumir a través de una aplicación móvil

en Android.

Elegir y darle clic

derecho, aparece

un menú

contextual

Seleccionar la opción

run

Page 12: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando elegimos la opción WSDL, aparece una página en formato XML.

Este formato que estamos viendo contiene todas las reglas de cómo esta implementado el

método remoto y las entradas y salidas de los datos y algunas otras cosas más.

Elegir esta opción

Page 13: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Implementando una Aplicación Móvil en Android que consuma el Servicio Web.

Para empezar a implementar la aplicación móvil en Android , tenemos primeramente tener

instalado el IDE Eclipse y el SDk android debidamente configurado, A continuación vamos a

crear un proyecto Android en el IDE Eclipse.

Cuando el proyecto ha sido creado satisfactoriamente , ahora vamos a empezar a realizar el diseño básico respectivo , para eso tenemos que seleccionar el archivo main.xml dándole doble clic , aparece el área de diseño que se ubica ella parte derecha.

Proyecto creado

satisfactoriamente

Page 14: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Este es el detalle del diseño que se está haciendo.

main.xml

Hemos logrado

realizar el

siguiente diseño.

LBLETIQUETA ( TextViev )

BTNINVOCAR

(Button)

TXTAREA ( EditText )

Page 15: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando hemos logrado acabar el diseño, entonces vamos a descargar una librería (jar) de nombre

ksoap2-android-assembly-2.6.0-jar-with-dependencies que me permite utilizar clases para la

invocación del método remoto y lo cual podamos consumirlo.

El lugar donde podemos descargar esta librería: ksoap2-android-assembly-2.6.0-jar-with-

dependencies se encuentra en la siguiente dirección electrónica:

https://www.dropbox.com/s/h0eig2ni339opqq/ksoap2-android-assembly-2.6.0-jar-with-

dependencies.jar

Cuando terminemos de descargar, automáticamente se tiene que crear una carpeta de nombre lib

en el proyecto Android y copiar la librería descargada dentro de esta carpeta.

A continuación vamos a configurar el Build Path para que la librería sea reconocida en el

proyecto, simplemente seleccionamos la librería, le damos clic derecho y aparece un menú

contextual en la cual debemos de seleccionar la opción: Build Path / configure Build Path

Creamos la carpeta lib y copiamos

la librería (jar) que se ha descargado

de una página proporcionada

Seleccionar la librería y

darle clic derecho,

aparece un menú

contextual

Seleccionar

Build Path

Seleccionar y

ejecutar esta opcion

Page 16: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando ya hemos configurado el build path, la librería ya está en la condiciones de ser

reconocido por el proyecto.

Ahora vamos a empezar a implementar código java a través de la clase activity(ClienteWS).

Ahora empezamos a mapear el control TextView que me permita el resultado del método

remoto implementado en el archivo main.xml.

Ir a la clase

clienteWS

Este es la clase Activity

que vamos a

implementar código

java

Declarando una referencia

de EditText

La etiqueta de la clase Textview

está siendo mapeado

Método implementado para ser invocado por el

respectivo botón

Page 17: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Ahora vamos a implementar el evento del botón a través de los siguientes pasos:

Cuando ya ha suido copiado el nombre del método a continuación vamos al diseño a través del

archivo main.xml de la siguiente manera.

Seleccionamos nombre del

método

En el menú contextual

seleccionamos la opción

Copy

Seleccionar el botón y dar clic

derecho, aparece un menú

contextual.

Seleccionar la opción Other

Properties

Seleccionar la opción All By Name

Seleccionar la opción

All By Name

Seleccionamos

la opción

Onclick

Page 18: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando hemos seleccionado la opción Onclick, aparece una ventana en la cual debemos de

pegar el nombre del método que hemos copiado.

Ahora vamos a implementar dentro de la clase ClienteWS(Activity) las siguientes variables que

me permiten apuntar al Servicio Web (Soap) XML.

Vamos a explicar al detalle estas rutas respectivas para la debida conectividad del cliente

consumidor al Servicio Web (Soap) XML en la tecnología PHP

Pegamos el nombre que

inicialmente hemos copiado Presionamos el botón Ok

Aquí estamos declarando una seria de variables que me permiten

almacenar una serie de rutas para apuntar al Servicio Web que hemos

logrado desarrollar anteriormente.

Nombre del espacio que alberga al

Servicio web

La ruta principal en XML

La ruta donde está

el método remoto

Simplemente el nombre del

método Remoto

Page 19: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Cuando hemos terminado de dar el evento del botón y de declarar las rutas que apuntan al

Servicio Web (Soap) XML, a continuación vamos a desarrollar el método

InvocarMetodoRemoto().

Ahora tenemos que agregarle un permiso para que pueda salir por Internet dicha aplicación en el

momento que se haga la conectividad con el Servicio Web a través del archivo

AndroidManifest.xml.

Aquí tenemos que

agregar el permiso

Agregando el siguiente permiso para

la salida respectiva a Internet

Page 20: Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones Moviles Android y Web Actualizado Al 22 de Junio Del 2014

Ejecutando el proyecto

Servicio Web (Soap) XML

Cliente

Servidor

Cuando ejecutamos el proyecto Móvil en android se debe de haber levantado el emulador pero

para ese entonces, el Servicio Web (Soap) XML ya debe de estar levantando, en el lado del

cliente que en es en este cabo la aplicación que consume , de debe de presionar el botón “

Método Remoto” y automáticamente debe de invocar remotamente al método HelloWorld() que

automáticamente devolverá en el lado del cliente un mensaje de la siguiente manera : “Hola a

todos ”

Presionar el botón Método

Remoto

Aquí aparece el mensaje

que devuelve el método

remoto