jueves, 29 de octubre de 2009

Introducción a los Servicios Web y XML.

1 Introducción a los Servicios Web y XML
1.1 Introduccion


Los Web Services representa un servicio que se puede acceder a través de una dirección http al igual que se accede a una pagina Web pero sin interfaz grafica. Los servicios Web son para poder ser implementados dentro de un proyecto Web o cliente, ofrece los mismos servicios de transmisión de información, dependiendo de los métodos publicados por el servicio Web.


Ahora con esta innovación tecnológica nacen nuevas formas de hacer negocio, las aplicaciones que interactúan en un sistema se convierten en usuarios que se involucran dentro de ellos los servicios Web procedentes de diferentes proveedores de servicio, asimismo abre nuevas formas de hacer negocio por el uso de servicios.





1.2 Crear servicios Web.
El desarrollo de aplicaciones de la plataforma .NET a revolucionado e innovado el mundo tecnológico para el uso de servidores y las herramientas de desarrollo.


La creación de servicios como su propio nombre lo indica es un componente programable que proporciona métodos accesibles por Internet, pueden funcionar en forma independiente o conectados entre si para brindar mayor funcionalidad, la tecnología de un Web Services es independiente de la plataforma a usarse, podemos involucrarnos con Web Services desarrolladas en otro tipo de lenguaje, pero si deberemos tener en cuenta que nos devuelve dicho método y así buscar en tipo de dato coherente con el que vamos a recibir.


En resumen podríamos decir:
-Son componentes que nos permiten crear aplicaciones independientes de la plataforma.
-Se pueden usar servicios Web para integrar aplicaciones escritas en lenguajes diferentes


Un servicio Web consta de los siguientes 3 elementos:


El Servicio:
Se define como software que realiza el procesamiento de documentos XML bien definidos y formados, recibidos mediante alguna combinación de protocolos de transporte y de aplicación.


El Documento XML:
Archivo que contiene toda la información especificada de la aplicación que el consumidor del servicio envía al servicio para procesar.


La Dirección:
Es una dirección de red junto con un binding de protocolo que pueden utilizarse para acceder al servicio


En la práctica, hace falta un cuarto elemento:


La Envoltura:
Es el protocolo de encapsulación de mensajes que separa el documento UML de la otra información que se quiere intercambiar


Herramientas de desarrollo para un Web Services:
Usando desde un editor de textos o WebMatrix.
Usando Visual Studio .NET


1.3 Comportamiento de una Aplicación Web
El uso de servicios Web dentro de aplicaciones Web, son aquellas en donde los usuarios se conectan a través de un servidor Web mediante una Intranet o Internet, los servicios Web pueden involucrarse dentro de ella haciendo referencia al servidor de servicios Web mediante una referencia Web.





1.4 Comportamiento de una aplicación Windows
El uso de servicios Web dentro de aplicaciones cliente pueden hacer también referencias a un servicio Web, ya que poseen la opción de hacer referencia Web que cargara todas las funcionalidades que nos proporcionan, al igual que hacer una referencia a un componente de bibliotecas de clase.





1.5 Creando un Web Services con VS 2005
Primero tenemos que agregar un nuevo proyecto de Web Services, para esto desde menú archivo seleccionamos agregar nuevo proyecto Web.





La siguiente pantalla escogeremos el proyecto tipo “ASP.NET Web Services” como indica en la figura siguiente.





Al dar aceptar dentro de nuestro explorador de soluciones, quedara agregado el proyecto como sigue:





La primera clase que aparecerá será una clase llamada Service.asmx, y esta muestra como por ejemplo por default la función “HelloWord





Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

"http://tempuri.org/")> _
_
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class Service
     Inherits System.Web.Services.WebService

    _
    Public Function HelloWorld() As String
        Return "Hello World"
    End Function
End Class



Al ejecutar nuestro Web Services, veremos la muestra de nuestra función por default HelloWord, como se muestra aquí:



Al seleccionar la función tendremos nuevamente la descripción del SOAP a enviarse vía HTTP, el cual nos proporciona el evento para ser invocado “Invoke”.









*        Al seleccionar la ejecución de la función HelloWord, este aparecerá descripta vía XML, para ser enviada vía http, como se muestra en la figura:


xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">Hello Worldstring>





Creando métodos en un Web Services.



*        Para crear métodos que se basen en Web Services, se debe agregar el atributo , que indica al sistema de tiempo de ejecución que es un método llamado a través de HTTP. No todos los métodos tienen que ser WebMethods.

Por ejemplo, dentro de la clase Service agreguemos la siguiente función:





    Private Usuario As String = "admin"
    Private Clave As String = "admin"

    _
    Public Function Login(ByVal sUsuario As String, ByVal sClave As String) As Boolean
        If Usuario = sUsuario And sClave = Clave Then
            Return True
        Else
            Return False
        End If
    End Function








*        Al compilar y ejecutar el Web Services este mostrara las dos funciones, si agregamos una nueva función sin el atributo WebMethods este no será visible como estas dos que aparecen:

















*        Ahora como bien hemos visto la función creada Login  necesita el envió de parámetros, por lo tanto al seleccionar esta función veremos que nos solicita las variables necesarias para la ejecución:




 Al invocar a esta función veremos la respuesta enviada como se muestra aquí:






  xml version="1.0" encoding="utf-8" ?>
  <boolean xmlns="http://tempuri.org/">falseboolean>



1.6 Consumiendo un Web Services con VS 2005
Para consumir un servicio Web este debe ser agregado a nuestro proyecto de donde queremos utilizarlo, para esto desde el explorador de soluciones debemos seleccionar el proyecto, Click derecho y escogemos “Agregar referencia Web”, como se muestra en la figura:



 
Ahora prestemos atención, cuando ejecutamos el proyecto de Web Services, nos salio una ruta en el explorador, esta ruta que aparece la copiaremos para agregarlo en la referencia Web.




Esta dirección guardada la colocamos en la pantalla que nos muestra al agregar la referencia Web:






Al seleccionar en el botón “Ir”, veremos nuestro servicio creado, cargado en nuestra referencia Web, al cual a nuestra referencia la llamaremos servClase5.







Finalmente en nuestro proyecto se creara la siguiente referencia Web con el nombre que colocamos anteriormente:





Bien hasta aquí en nuestro proyecto ya creamos la referencia Web, ahora crearemos un formulario con el nombre frmServicio, el cual debe quedar con el siguiente diseño.









*        Dentro de el crearemos una variable con ámbito global:
    Dim _Service As New ServClase5.Service


*        Ahora en el botón aceptar usaremos este servicio de la forma siguiente:


        If _Service.Login(Me.txtUsuario.Text, Me.txtClave.Text) Then
            MessageBox.Show("Bienvenido a mi Servicio Web", _
            "Aviso de Sistemas", _
            MessageBoxButtons.OK, _
            MessageBoxIcon.Information)
        Else
            MessageBox.Show("Ud. No tiene acceso al Servicio Web", _
            "Aviso de Sistemas", _
            MessageBoxButtons.OK, _
            MessageBoxIcon.Error)
        End If



Finalmente ejecutemos el formulario, y se vera lo siguiente:



 
2 Trabajando con XML.
2.1 Usando XML
Acrónimo de la definición de “Lenguaje de Marcas Extensible”, es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Que representa una simplificación y adaptación del SGML que permite definir la gramática de lenguajes específicos. Por ende XML no es realmente un lenguaje en particular, sino es una forma de definir lenguajes.


Los documentos XML tienen por definición “Lenguaje de Marcas Extensible”, el contenido de un documento XML esta basado en metalenguajes de etiquetas definidas en el World Wide Web Consortium (W3C). que es una simplificación de lo normado en SGML, el cual con esto permite definir la gramática de lenguaje específicos. Por lo tanto un archivo se puede definir con etiquetas propias que puedan representar jerárquicamente cierta información.



 
Los archivos XML no solo es valido su para aplicaciones en Internet, sino que propone ser como un estándar para el intercambio de información estructurada entre diferentes plataformas y así dejar de archivos de texto con los problemas que traía al ser procesados. Los archivos XML se puede usar tanto a nivel de bases de datos, editores de texto, hojas de cálculo, etc.
 






 
Sobre los elementos:
Los elementos XML pueden tener contenido (más elementos, caracteres o ambos) como la estructura de un árbol con contenido, o también tener elementos vacíos.


Atributos
Los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento XML.


Entidades predefinidas
Entidades para representar caracteres especiales para que no sean interpretados como marcado en el procesador XML, es decir para representar los símbolos Mayor o Menor y no se confunda con el abrir de una etiqueta o cierre.


Secciones CDATA
Es una construcción en XML para especificar datos utilizando cualquier carácter sin que se interprete como marcado XML, es decir realizar comentarios dentro de un archivo XML.


XML complementado con otras tecnologías ofrecen mayores posibilidades de desarrollos de aplicaciones ricas en accesos a datos, y tratamiento de información. En la actualidad permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y de fácil acceso.





Los usos que se han desarrollado para los documentos XML con otros lenguajes no solo es útil para describir nuevos formatos de documentos Web, sino que también es usado para la descripción de datos debidamente estructurados con sus archivos de validación que acepte que esta bien definido.


Los datos estructurados son habitualmente lo que contienen las hojas de cálculo, los archivos de configuración de programas y los protocolos de red.


Los documentos XML en primer lugar a diferencia del lenguaje HTML no tienen un vocabulario fijo, por el contrario, se puede definir vocabularios específicos (Etiquetas) para determinadas aplicaciones que utilicen XML.

Las aplicaciones que realizan procesos con documentos XML, mantienen mejor los cambios de la estructura de XML que se les proporciona a las aplicaciones que utilizan otros formatos, siempre que tales cambios sea respetando la estructura del XML. Asimismo los archivo XML pueden ir acompañado de otros archivos para validación de estos, el cual se le dirá que son documentos bien formados, pueden ser para ser transformaciones y poder ser visualizados en formato HTML, en Visual Studio .NET se han desarrollado clase para el manejo de archivos XML, incluso en el detalle de crear para archivos XML con gran información como para aquellos con poca información.

Creando un archivo XML.
Para esto seleccionemos agregar nuevo elemento y seleccionamos Archivo XML.



Luego nos mostrara la siguiente pantalla, para poder agregar elementos al XML:






Que al finalizar de agregar elementos tendríamos lo siguiente:




<Empleados>
  <empleado>
    <nombres>Omar Jhonnombres>
    <apellidos>Rojas Salasapellidos>
    <area>Ventasarea>
    <codigo>V01125codigo>
  empleado>
  <empleado>
    <nombres>Carlos Albertonombres>
    <apellidos>Tomas perezapellidos>
    <area>Ventasarea>
    <codigo>V01134codigo>
  empleado>
Empleados>


2.2 Definiendo un XML
Al realizar la validación de un XML se utiliza un archivo llamado Esquema (.xsd) que se utiliza para describir la estructura y el contenido de un documento XML. Además se puede utilizar un esquema para especificar un documento que consta de uno o más elementos cada uno de los cuales contiene otros elementos secundarios.

Cuando se realiza el intercambio de documentos XML, lo que se realiza con el esquema es un mutuo acuerdo entre el productor y el consumidor del XML, ya que se tiene que validar que es lo que uno debe enviar y que es lo que uno debe recibir valido para las dos partes.

Aunque existen varios lenguajes de esquemas para los archivos XML, desde un DTD hasta XDR, el que actualmente goza de mayor popularidad es el lenguaje de definición de esquemas XML del W3C, que se suele abreviar con la extensión xsd, por ejemplo el esquema del XML anterior quedaría definido como sigue:




xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Empleados">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="empleado">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="nombres" type="xs:string" />
              <xs:element name="apellidos" type="xs:string" />
              <xs:element name="area" type="xs:string" />
              <xs:element name="codigo" type="xs:string" />
            xs:sequence>
          xs:complexType>
        xs:element>
      xs:sequence>
    xs:complexType>
  xs:element>
xs:schema>

Visual Estudio 2005 nos proporcionar una forma de ver el esquema gráficamente, el cual nos ayuda ver el esquema como esta estructurado.






2.3 Lectura y Escritura de XML con DataSet.
El DataSet nos proporciona métodos para el trabajo con XML, estos lo podemos definir tanto para lectura como para escritura, a nivel de XML como de sus respectivos esquemas.

DataSet.ReadXml (Path)
Lee los datos XML del DataSet mediante la ruta del archivo especificado, el método ReadXml ofrece una forma de leer sólo los datos o los datos de un documento XML.
        Dim Ds As New DataSet



        Ds.ReadXml("xmlEmpleados.xml"


 DataSet.ReadXmlSchema(Path)  
Lee un esquema XML en el DataSet, del archivo especificado. Se debe de usar el método ReadXmlSchema para leer el esquema para un DataSet y ser mostrado el cual incluye definiciones de tablas, relaciones y restricciones.




  Dim Ds As New DataSet
  Ds.ReadXmlSchema("xmlEmpleados.xsd")

DataSet.WriteXml (Path)
Escribe los datos actuales mostrados desde el DataSet en el archivo indicado. El método WriteXml ofrece solo de escribir sólo los datos, de un DataSet con todas las DataTables incluidos, en un documento XML.
             Dim Ds As New DataSet



         Ds.WriteXml("xmlEmpleados.xml")

DataSet.WriteXmlSchema (Path)
Escribe la estructura del DataSet como un esquema XML dentro de la ruta indicada. Se debe utilizar este método WriteXmlSchema para escribir el esquema para un DataSet en un documento XML. El esquema XML se escribe mediante el estándar XSD.




  Dim Ds As New DataSet
         Ds.WriteXmlSchema("xmlEmpleados.xsd")



Laboratorio 06
I.- Crear un XML con el nombre Productos y su esquema dentro del Servicio Web creado, el XML debe tener la siguiente estructura:




<Productos>
  <item>
    <nombre>Limpiador de Cocinanombre>
    <coodigo>L520coodigo>
    <stock>32stock>
    <precioxunidad>5.85precioxunidad>
    <precioxmayor>5.20precioxmayor>
  item>
  <item>
    <nombre>Secador de Bañonombre>
    <coodigo>SJ780coodigo>
    <stock>22stock>
    <precioxunidad>3.55precioxunidad>
    <precioxmayor>2.90precioxmayor>
  item>
  <item>
    <nombre>Papel Boldnombre>
    <coodigo>PO820coodigo>
    <stock>122stock>
    <precioxunidad>11.55precioxunidad>
    <precioxmayor>11.00precioxmayor>
  item>
Productos>

Mínimo, agregar unos 8 productos

II.- En el proyecto de Web Services crear un nuevo servicio llamado servProductos, en el cual crearemos el siguiente método. 





     _
    Public Function ProductosDet() As DataSet
        Dim ds As New DataSet
        Dim ArchivoXml As String = Server.MapPath("~") + "\Productos.xml"

        ds.ReadXml(ArchivoXml)
        Return ds

    End Function


III.- Al ejecutar nos debe mostrar las siguientes pantallas.







Así como la pantalla que invoca el método:





Finalmente analizar y revisar la información mostrada:





V.- Repetir los pasos anteriores, para mostrar mediante un método la información de los servicios de las empresas siguientes (Debes completar mínimo 10 empresas):





Así como en el punto III, este método se debe llamar ServiciosDet y se debe crear un XML con la estructura indicada.


VI.- EL formulario frmMDI, se debe modificar para agregar el siguiente ítem como muestra la figura:





VII.- Esta nueva opción primero debe levantar la opción de acceso al servicio Web configurado anteriormente frmServicio, si el usuario es valido debe mostrar el siguiente formulario llamado frmProveedores, en el cual el diseño será el siguiente:





VIII.- Dentro del botón de productos colocamos lo siguiente:


        Me.dgProveedor.DataSource = Nothing




        Dim _Servicio As New servProveedores.servProductos
        Dim ds As DataSet
        ds = _Servicio.ProductosDet
        Me.dgProveedor.DataSource = ds.Tables(0)



IX.- Asimismo configurar para el botón de servicios, y en el botón guardar se debe guardar la información con los siguientes nombres:




            Para los Productos:     xmlProductosDDMMYYYY  (Formato de Fecha actual)
            Para los Servicios:       xmlServiciosDDMMYYYY  (Formato de Fecha actual)



Concatenar con las funciones:
Now.Date.Day.ToString, Now.Date.Month.ToString y Now.Date.Year.ToString





No hay comentarios:

Publicar un comentario