RSS
Con tecnología de Blogger.

Servicios Web XML

¿Qué  es  un  servicio  web XML?
El significado de esta sigla es eXtensible Markup  Language, que es un lenguaje para presentar datos estructurados en forma de texto simple, y además es autodescriptivo.
Un servicio Web XML es una entidad programable que proporciona un elemento determinado de funcionalidad, como lógica de la aplicación y es accesible por diversos sistemas potencialmente dispares usando los estándares de Internet , como XML y HTTP.
Un servicio web XML puede usarse internamente por una sola aplicación o exponerse externamente a través de Internet para su uso por diversas aplicaciones. Puesto que es accesible a través de una interfaz estándar, un servicio web XML permite a sistemas heterogéneos funcionar juntos como una sencilla web de cálculo.

En lugar de seguir las funciones genéricas de portabilidad de código, los servicios web XML proporcionan una solución viable para habilitar los datos y la interoperabilidad del sistema. Los servicios web XML usan la mensajería basada en XML como un medio fundamental para la comunicación de datos y ayudar a salvar las diferencias que existen entre los sistemas que usan modelos de componentes, sistemas operativos y lenguajes de programación incongruentes. Los programadores pueden crear aplicaciones que desarrollen juntas servicios web XML de varios orígenes de la misma manera que usan tradicionalmente los componentes para crear una aplicación distribuida.

Una de las características básicas de un servicio web XML es el alto grado de abstracción que existe entre la implementación y el uso de un servicio.




TECNOLOGIAS SUBYACENTES


Tecnologías subyacentes - SOAP
El XML tiene la particularidad de que es posible  definir “SUBLENGUAJES” sobre la base de este. Es decir, estableciendo que TAGS vamos a usar y como, podemos definir un nuevo lenguaje, basado en XML. 

SOAP o Simple Object Access Protocolo, no es mas que un lenguaje basado en XML, diseñado específicamente para trabajar con objetos remotamente, usando XML como lenguaje y HTTP como medio de transporte. Los servicios web usan el protocolo SOAP como estándar para definir el lenguaje XML mediante el cual se comunican el consumidor y el servicio. Para nosotros, esto será transparente.

Tecnologías subyacentes - WSDL.
WSDL es la sigla de Web Service Description Language, un lenguaje creado en XML para informar a un cliente sobre los servicios disponibles en un servidor y las operaciones definidas en cada uno. Cuando un cliente se va a conectar a un servicio, recibe estos datos y genera un archivo local con extensión WSDL, para saber que operaciones  están disponibles y como tienen que utilizarlas.

Tecnologías subyacentes - UDDI.
UDDI es la sigla de Universal Description Discovery and Integration, y es un directorio donde se publican web services de distintas empresas. Son como las páginas amarillas de web services en internet.

Infraestructura de servicios web XML







Servicios Web

read comments Read User's Comments

web XML

read comments Read User's Comments

RMI (Remote Method Invocation)

RMI (Java Remote Invocation)

Es un mecanismo ofrecido por Java para invocar un método de manera remota. Proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java.
Algunas de sus principales características son:

  •   Facilidad de uso en la programación, por estar específicamente diseñado para java.
  •     Proporciona paso de objetos por referencia.
  •        Recolección de basura distribuida.
  •        Paso de tipos arbitrarios.

    Arquitectura (4 capas)

    Primer Capa: Capa de aplicación, corresponde con la implementación real de las aplicaciones cliente y servidor.
    Segunda Capa: Es la que interactúa directamente con la capa de aplicación.  Se encuentran las llamadas a objetos remotos y acciones junto con sus parámetros y retornos de objetos.
    Tercer Capa: Es la de referencia remota, y es responsable del manejo de la parte semántica de las invocaciones remotas. Es la responsable de la replicación de objetos.
    Cuarta Capa: Es la de transporte, es la responsable de realizar conexiones necesarias y manejo del transporte de los datos de una máquina a otra.
    Skeleton y Stub: Dota a clientes y servidores de una interfaz que les permite localizar objetos remotos para invocar sus métodos como si fueran locales.



















Skeleton y Stub:
}  Dota a clientes y servidores de una interfaz que les permite localizar objetos remotos para invocar sus métodos como si fueran locales.
API de java RMI

}  Es una interfaz de programación de aplicaciones provistas por los creadores del lenguaje java, y que da a los programadores los medios para desarrollar aplicaciones Java.
}  LA API de Java provee un conjunto de clases utilitarias para efectuar toda clase de tareas dentro de un programa.
Sistema de Nombrado Registry
Definición
}  Es un servidor simple que permite que una aplicación vea los objetos lo cuales están siendo importados por un RMI.
}  Una vez que se tiene un objeto que está siendo exportado por un servidor que utiliza métodos de RMI, la comunicación es entonces como una simple llamada a métodos de un objeto que puede existir en una máquina diferente.
Características:
}  Este  setup requiere algunos parámetros de localización de los objetos remotos.
}  Es fácil llamar a objetos remotos si  se tiene su ubicación.
}  Una vez que el objeto ha sido localizado, usarlo de manera remota es relativamente fácil.
}  Para poder inicializar  objetos remotos, hay que utilizar los servicios de registry.

Componentes de aplicaciones distribuidas
}  Clientes: Conducen el flujo de la aplicación. Localizan e invocan métodos ofertados como remotos por los servidores.
} Servidores: Conjunto de objetos de ofrecen interfaces remotas públicas cuyos métodos pueden ser invocados por clientes de cualquier procesador de la plataforma.
}  Registro: Servicio estático que se establece en cada nudo, en el que se registran los servidores con un nombre, y donde los clientes los localizan.





RMI Ejemplo con objetos y con datos primitivos

read comments Read User's Comments

RMI Ejemplo con objetos y con datos primitivos

read comments Read User's Comments

COM/DCOM




COM (Component Object Model)
Es una arquitectura de componentes de software que permite que las aplicaciones y sistemas se construyan a partir de componentes producidos por distintos proveedores de software.
Está diseñado para permitir que los clientes se comuniquen con otros objetos en forma transparente independientemente del lugar donde se estén ejecutando, ya sea en el mismo proceso, la misma computadora o una computadora diferente.
Provee acceso transparente a los servidores locales y remotos a través de objetos proxy y stub.


  • Servidores COM
Los objetos “servidores” son aquellas instancias de las clases que contienen los métodos que resuelven el problema del que se ocupa el sistema.
  • Clientes COM
Los objetos “clientes” son aquellas instancias de las clases que contengan la interfaz del sistema con el usuario, que implementan los textos de ayuda del sistema, los cuadros de dialogo para introducir información al sistema o bien para mostrar resultados.


Tipos de componentes COM

  • In-Process ,se cargan en el mismo espacio de procesos que la aplicación cliente
  • Locales, se ejecutan en un proceso separado en el mismo computador.
  • Remotos, se ejecutan en otro computador
DCOM

DCOM es la extensión del Component Object Model a los ambientes distribuidos, que define los mecanismos de conexión y el protocolo de red necesario para hacer llamadas a procedimientos remotos orientadas a objetos, a nivel de aplicación, que lo vuelven útil para sistemas distribuidos de todo tipo basados en componentes.



Los servidores COM/DCOM se crean como ATL Object, que producen archivos.DLL o .EXE, según el tipo de servidor que se requiera, mientras que los clientes se crean como proyectos normales de aplicaciones Windows, y que hacen referencia a las clases contenidas en la parte servidor mediante los punteros de interfaz a objetos COM/DCOM.









read comments Read User's Comments

practicas de c++ en embarcadero

read comments Read User's Comments

Servicio Web


"Un servicio Web XML es una entidad programable que proporciona un elemento de funcionalidad determinado, como lógica de aplicación, al que se puede tener acceso desde diversos sistemas potencialmente distintos mediante estándares de Internet muy extendidos, como XML y HTTP."

"Un servicio Web XML puede ser utilizado internamente por una aplicación o bien ser expuesto de forma externa en Internet por varias aplicaciones. Dado que a través de una interfaz estándar es posible el acceso a un servicio Web XML, éste permite el funcionamiento de una serie de sistemas heterogéneos como un conjunto integrado."
Modelos de desarrollo
El hecho de poder comunicar componentes de software entre sí tiene una enorme importancia. Hasta no hace tantos años era muy típico hacer aplicaciones de una sola pieza, "monolíticas":

Estos programas podían acceder a un sistema gestor de datos a través de la red, pero toda la lógica del flujo de datos, la seguridad y las interacciones con las personas se encontraban en el ordenador del usuario en forma de un gran ejecutable
Una metodología de desarrollo mucho mejor aunque más laboriosa a la hora de programar es el modelo Cliente-Servidor en tres capas:



En este modelo toda la lógica de los datos, su validación, los permisos, etc., residen en un servidor intermedio y son utilizados por todos los clientes a través de una red. En este caso en el ordenador del usuario lo único que hay es una capa de presentación que se ocupa básicamente de recoger y recibir datos, es decir, actúa de intermediario entre el usuario y las reglas de negocio residentes en la capa intermedia.
La arquitectura de desarrollo en n-capas (n-tier que dicen los anglosajones) lleva el concepto cliente-servidor un paso hacia adelante, dividiendo la capa intermedia en muchas otras capas especializadas cada una de las cuales puede residir en un servidor diferente:


Arquitectura de desarrollo basada en componentes


La belleza de este modelo radica en que cada uno de ellos (o cada grupo de ellos) puede residir en un servidor diferente, siendo transparente su ubicación para los clientes que los utilizan. 

El concepto de Arquitectura Orientada a Servicios o SOA se basa en el uso de este tipo de componentes que suplen las necesidades de una o varias aplicaciones, son independientes entre sí y trabajan independientemente del sistema operativo o la plataforma.


Comunicación entre componentes


 DCOM (Distributed Common Object Model), la propuesta de Microsoft, ligada a sus sistemas Windows. Se trata de algo más que un protocolo de invocación remota de procedimientos (RPC) ya que su última encarnación, COM+, incluye servicios avanzados para balanceado de carga, gestión de transacciones o llamadas asíncronas. Los parámetros son transmitidos a través de la red mediante un formato binario propio llamado NDR (Network Data Representation).


 RMI (Remote Method Invocation), es la metodología de llamada remota a procedimientos de Java. No se centra en la definición de interfaces para compatibilidad binaria de componentes, ni en otros conceptos avanzados, y se basa en la existencia de un cliente y un servidor que actúan de intermediarios entre los componentes que se quieren comunicar. Es una tecnología bastante simple que es fácil de utilizar para aplicaciones básicas.


.CORBA (Common Object Request Broker Architecture). Se trata de una serie de convenciones que describen cómo deben comunicarse los distintos componentes, cómo deben transferir los datos de las llamadas y sus resultados o cómo se describen las interfaces de programación de los componentes para que los demás sepan cómo utilizarlos. Fue desarrollado por el OMG (Object Management Group) en la segunda mitad de la década de los '90 y es el modelo que más éxito ha tenido en el mundo UNIX. Su método de empaquetado y transmisión de datos a través de la red se llama CDR (Common Data representation).

.SOAP
Gracias a los Servicios Web se derriban las antiguas divisiones resultantes de los modelos de componentes descritos, y la integración de las aplicaciones, la ubicuidad de sus componentes y su reutilización a través de la red se convierten en una realidad.
La tecnología que está detrás de todo ello se llama SOAP (Simple Object Access Protocol) describe un concepto tecnológico basado en la sencillez y la flexibilidad que hace uso de tecnologías y estándares comunes para conseguir las promesas de la ubicuidad de los servicios, la transparencia de los datos y la independencia de la plataforma que según hemos visto, se hacen necesarios en las aplicaciones actuales.










read comments Read User's Comments