jueves, 20 de noviembre de 2014

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."

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. Este modelo es más eficiente y está muy evolucionado respecto al anterior pero aún se puede ir más allá.



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:



En este modelo existe una gran variedad de componentes especializados en tareas específicas como la validación de datos, la autenticación y seguridad o el acceso a datos. Dichos componentes deben trabajar unos con otros como piezas de un mecanismo, gestionando la información que circula entre el usuario y el servidor de dato

Comunicación entre componentes

Entre éstas están la comunicación entre las distintas capas y componentes que constituyen la aplicación, la gestión de peticiones y el balanceado de carga entre servidores cuando un mismo componente reside en varios de ellos (para aplicaciones muy grandes con muchos clientes), la gestión de transacciones entre componentes y algunas otras cosas más.



 Para responder a estas necesidades de los programadores, diversos fabricantes y asociaciones de la industria crearon servicios y protocolos específicos orientados a la interacción distribuida de componentes. Aunque existe una gran variedad, de todos ellos los más importantes sin duda son:


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). Existen diversas implementaciones de distintos fabricantes.

Practica de como crear un web service

miércoles, 19 de noviembre de 2014

Servicios web XML




Los web services son similares a componentes, pero accesibles a través de internet por medio de protocolos estándar, y sin pasar por las dificultades que puede poner un FIREWALL, ya que todo viaja a través del protocolo HTTP, en formato XML.
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.
 Caracteristicas de lenguaje XML
•Es fácil representarla.

•Permite comunicar e integrar aplicaciones heterogéneas, al establecen un lenguaje común para expresar los datos.

•Es fácil transmisión por internet mediante protocolos como HTTP, que están diseñados para transferir texto.

•Como los servicios corren sobre protocolo HTTP, no hay problemas para saltar firewalls, ya que todo esta montado sobre el puerto 80.

Tecnologia Subyacente - SOAP
 SOAP, o Simple Object Access Protocolo, no es mas que un lenguaje basado en XML, diseñado específicamente para trabajar con objetos remotamente, usandoS 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.
 Tecnologia Subyacente -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.
 Tecnologia Subyacente - 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.


Aqui podran ver el codigo que se agrega al ejercicio


 

COM (Component Object Model)


El 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.
Las interfaces se escriben por medio de un Lenguaje de Definición de Interfaz (IDL por Interface Definition Language). Algunas características de la programación orientada a objetos tales como la encapsulación, el polimorfismo y la herencia simple están presentes en el IDL. Por convención, el nombre de una interfaz siempre comienza con una “I”.

La encapsulación de la funcionalidad en objetos que se acceden a través de interfaces convierte a COM en un sistema abierto y extensible. Es abierto en el sentido de que cualquiera puede proveer una implementación de una interfaz definida y cualquiera puede desarrollar una aplicación que utilice tales interfaces. Es extensible en el sentido de que las interfaces nuevas o ampliadas pueden definirse sin cambios en las aplicaciones existentes y las aplicaciones pueden explotar las interfaces nuevas al mismo tiempo que continúan interoperando con aplicaciones anteriores a través de las interfaces anteriores.

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.

Cliente 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.

COM 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.

 Tipos de componetes 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 (Distributed COM)
 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

COM/DCOM
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.

Aquí se muestra un ejemplo donde se utiliza el COM Object


Con esta liga podrán descargar el  cbuilde embarcadero el cual se utiliza en la practica del video. 


Aqui puede checar el codigo que se agra en embarcadero y en vVsual Studio 2010

https://www.dropbox.com/sh/uhs0gc55ceb45j9/AAAVX9QkwpfHLF4WYEaGjtjQa?dl=0
 

RMI (Remote Method Invocation)


Es un mecanismo ofrecido por Java para invocar un método de manera remota.
Caracteristicas:
  •      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.
Encapsulacion :
1)Encapsulado  de los parámetros.
2)Invocación del método (del cliente con el servidor). El invocador se queda esperando una respuesta.
3)Al terminar la ejecución, el servidor serializa el valor de retorno y lo envía al cliente.
4)El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.
Arquitectura:
La arquitectura RMI puede verse como un modelo de cuatro capas.

Primera capa: es la de aplicación y se corresponde con la implementación real de las aplicaciones cliente y servidor. Aquí tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos.

Segunda capa: es la capa proxy, o capa stub-skeleton. Esta capa es la que interactúa directamente con la capa de aplicación. Todas las llamadas a objetos remotos y acciones junto con sus parámetros y retorno de objetos tienen lugar en esta capa.

Tercera capa: es la de referencia remota, y es responsable del manejo de la parte semántica de las invocaciones remotas. También es responsable de la gestión de la replicación de objetos y realización de tareas específicas de la implementación con los objetos remotos.

Cuarta Capa: es la de transporte. Es la responsable de realizar las 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.

 API de Java

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

  Es un servidor simple que permite que una aplicación vea los objetos lo cuales están siendo importados por un RMI. 


Caracteristicas: 
  •      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.

 


  aqui se muestra un poco de codigos de la practica del video

https://www.dropbox.com/sh/vx1u7k13jswxezv/AACKfIulcflxdMxvAHe5QEeha?dl=0