Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones...
-
Upload
boydxd-hacksoft -
Category
Documents
-
view
20 -
download
0
Transcript of Guia de Laboratorio Comunicaciones Tema Comunicacion a Traves Servicios Web Soap XML en Aplicaciones...
GUIA DE LABORATORIO
DESARROLLO DE APLICACIONES
ANDROID QUE CONSUMEN
SERVICIOS WEB(SOAP-XML) EN PHP
ING.IVAN PETRLIK AZABACHE
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.
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
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
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
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 .
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
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
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
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
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
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
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
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 )
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
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
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
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
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
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