You are on page 1of 6

Contenido

Evolución de los Sistemas l Evolución de las Aplicaciones Distribuidas

Distribuidos l

l
Soluciones propuestas para Interoperabilidad
Modelo de Aplicaciones Web
l Que son los Servicios Web
l Cuales son los protocolos y tecnologías relacionados con
los Servicios Web
Universidad EAFIT l Algunas aplicaciones claves de los Servicios Web
Departamento de Informática y Sistemas
l Conclusiones
Sistemas Distribuidos

Antecedentes (1/2) Antecedentes (2/2)

• La idea general alrededor de Web Services no es algo • Evolución tecnológica:


nuevo. Código libre
Programación estructurada
• Antecesores en el tema de computación distribuida Programación orientada a objetos
han existido y funcionado: Objetos distribuidos - Componentes
RPC, EDI, CORBA, COM, APPC
• Evolución de integración de aplicaciones:
• La diferencia se encuentra en el alto nivel de Computación por departamentos
encapsulación e independencia entre las aplicaciones. Interfaces punto a punto (“spaguetti code“)
• El gestor de la iniciativa es W3C, garante de evolución Sistemas ERP
y futuro. Soluciones de “middleware”

• “Programa a usuario” à Semantic Web • Necesidad de establecer conexiónes tanto entre


aplicaciones internas como B2B.

HISTORY OF DISTRIBUTED Evolución de las Aplicaciones


COMPUTING Distribuidas (1)
l Sistema Distribuido: “Colección de máquinas/procesos que
colaborar para cumplir un objetivo”
l Inicio con Aplicaciones Centralizadas. Todo lo hacia un
mismo equipo.
l Primer servicio telemático: Emulación de Terminal
• Hay distribución, pero todo lo sigue haciendo el Servidor.
• Este modelo no es malo, como se critico en su momento, de hecho
el mismo Web simula esta situación
• Ej: telnet, Xwindows, Windows Terminal, VNC, etc.

Cliente Servidor
(presentación) (Aplicación +
Datos)
RED

1
Evolución de las Aplicaciones Evolución de las Aplicaciones
Distribuidas (2) Distribuidas (3)
Cliente/Servidor con Bases de Datos l Cliente/Servidor con bases de datos
Cliente Servidor
l Modelo de 2 niveles (presentación (Datos + SP)
l Aparición de n-lógicas + lógica)
RED
• Presentación
• Comunicaciones
• Lógica del Negocio Select * from empleados
• Datos
Pedro, Juan, Camilo, …
l En el Cliente se haya la Presentación y la Lógica del Negocio
l En el Servidor se hayan los Datos (Bases de Datos) Trans. Fondos Consulta cuenta 1
l Se supone que las entidades intercambian sentencias SQL Consulta cuenta 2
l NO orientado a transacciones Actualización cuenta1
l Muy orientado a 4GL Actualizacion cuenta2
l Procedimientos almacenados. Lógica del negocio en la base de Adicionar movimientos
datos. Dependiente.

Evolución de las Aplicaciones


Distribuidas (4) Objetos Distribuidos
l Procesadores de Transacciones: l Primeros pasos en RPC’s
• Orientado a transacciones l A finales de los 80’s emergió DCE (Distributed Computing
Environment) como una iniciativa para estandarizar las diferentes
• 3 niveles
tecnologías de RPC. No considera tecnologías de Mensajería.
• OLTP l Éxito del modelo Orientado a Objetos tanto en Análisis/Diseño como
en Desarrollo.
Procesador
Transacciones l Por qué no extender este modelo a un ambiente distribuido
SQL
(Lógica) l Un cliente en cualquier parte de la red, invoca un método de un
T
objeto remoto.
Cliente Servidor l Adecuados en comunicaciones:
(presentación (Datos + SP) • Cliente a Servidor
lóg cliente)
RED • Servidor a Servidor

Objetos Distribuidos Objetos Distribuidos


Arquitecturas propuestas
• RMI (Invocación Remota de Métodos)
• Independiente del sistema operativo
• Solo un lenguaje: JAVA
• DCOM de Microsoft
• Un solo sistema operativo: Familia Microsoft
• Varios Lenguajes: Visual Basic, C++, C
• CORBA de la OMG
• Independiente del Sistema Operativo
• Varios lenguajes: Java, c, c++, ada, cobol, vb, …

CORBA/RMI/DCOM
CLIENTE RMI/DCOM/CORBA SERVIDOR RMI/DCOM/CORBA SERVIDOR

2
HTTP
Request
World Wide Web
l Llegada del Web
• Diseñado originalmente para acceder a recursos compartidos HTTP Proxy Server
• Protocolo de comunicación HTTP Request HTTP
• Protocolo sin estado (stateless) Response
• Browser – Servidor Web: GET recursos
• Servidor Web – Browser: recurso estático (html, imágenes, …) HTTP Response
• Formateo de datos
http://www.cs.huji.ac.il/~dbi
• HTML, sintaxis y semántica de visualización
• Diferentes tipos de recursos Web Server www.cs.huji.ac.il:80
• MIME (texto, html, imágenes, binarios, videos, etc)
• Navegación y localización NO lineal
• Hipertexto
• Hipermedia
File System

Web como plataforma para


Aplicaciones Distribuidas HTTP/CGI
l Aplicaciones Web (Web Applications) l Web Form es una página HTML con uno o más campos de
l HTTP/HTML fue diseñado originalmente para acceder a entrada y un boton obligatorio “Submit”
recursos compartidos, NO para ejecución de aplicaciones l Una vez “click” sobre el boton “Submit” el browser envia el
remotas contenido de los campos de entrada hacia el servidor.
• Recursos estáticos l Arma un mensaje HTTP para enviar el requerimiento y luego
l Porqué no permitir solicitar datos al usuario y ejecutar invoke un método GET o POST en el lado del servidor.
aplicaciones vía web? l El servidor pasa el requerimiento y sus parametros a otro
• Como capturar entrada del usuario? programa usando un protocolo llamado CGI
• FORMAS: <FORM …> <INPUT…> … </INPUT> … </FORM>
• El recurso es el nombre de una aplicación

Ejecución programa CGI


3-Tier Client/Server, Web-Style
Web Web Variables
Web Server HTML docs Browser Server Ambiente
Web Browser submit
Submit 2 POST 3
1 Write 4
HTML & Form Envirtonment
HTTP Internet HTTP Programa
Web Client TP Mon Ejecutar 5
CGI
TCP/IP CGI

Legacy 6 Read
App| Envirtonment
Apps
DBMS 7
Standard Input
8
9 Standard Output BD
Tier-1 Return HTML
Tier-2 Tier-3 10 File

3
Integración de Aplicaciones Web
con Objetos Distribuidos Componentes Distribuidos
l Evolución de los Objetos Distribuidos
l Bloques de construcción de aplicaciones llamados
HTTP/HTML
BROWSER
Web COMPONENTES
estático Server
HT l Conceptos de CONTENEDORES
TP
/HT l Servicios disponibles para los Componentes ofrecidos por el
diná ML
mic Contenedor
o
Web • Comunicaciones
App • Transacciones
Server • Ejecución
• Ciclo de Vida
• Persistencia
App App • …
Server CORBA/RMI/DCOM Server l Plataformas más representativas
• J2EE, con JSP/Servlets como tecnologías de Web Application
• DNA, con ASP como tecnología Web Application

Arquitectura J2EE Aplicación N-Niveles en Java

ARQUITECTURAS DE COMPONENTES ARQUITECTURAS DE COMPONENTES


J2EE Microsoft .NET

Sistema Applets / Browsers PDA’s Sistema Formas de Browsers Dispositivos


Remoto Java Apps Remoto Windows inalámbricos

Web Services IIOP HTTP HTTP Web Services HTTP HTTP

Servlets Servlets / JSP ASP.NET

Componentes EJB’s Componentes .NET

Conectores Host Integration Server

Propietario JDBC Propietario Web Services Web Services ADO.NET Propietario Web Services

Repositiorio Bases de ERP, Legacy, Sistemas de Repositiorio de Bases de Datos ERP, Legacy, Sistemas de
de Contexto Datos Mainframe socios Contexto Mainframe socios

4
INTRODUCCIÓN A WEB SERVICES Qué son los Web Services?
l Los Web Services son una arquitectura de l Semánticamente encapsula funcionalidades discretas.
computación distribuida en evolución que usan l Sistemas Debilmente-Acoplados, Componentes
sus propias interfaces programa-programa, Reutilizables
protocolos y servicios de registro de tal manera l Accesibles programaticamente
que posibilitan que aplicaciones de diferentes
plataformas tecnológicas puedan utilizar l Distribuido Sobre Internet
“servicios” de otras aplicaciones. l Dado que todas las comunicaciones se realizan en
XML los Web Services no dependen de sistemas
l Un Web Service se aprovecha de la operativos específicos
especificación de XML para definir tanto su l De acuerdo a esto, Java puede hablar con Perl,
descripción, como los mensajes que recibe y Windows con Unix.
produce al igual que en los servicios de registro
del servicio.

INTRODUCCIÓN A WEB SERVICES


Actores, Objetos y Operaciones
Cont.
l De la definición anterior se desprende que los Web Services
Descripción del
tienen dos propiedades adicionales: servicio
1) Deben tener una interfaz pública definida en una gramática
Registro del
común en XML, la interfase describe todos los METODOS servicio
disponibles a los clientes y especifica la firma para cada método
FIND PUBLISH
WDSL + UDDI WDSL + UDDI
La definición de esta interfaz se hace con el lenguaje WSDL (Web
Service Description Language) Servicio

2) Si usted crea un servicio Web, debe tener una forma de publicarlo,


Solicitante del Proveedor del
debe existir una forma de localizar el servicio y localizar su servicio Servicio
interfase pública, esto se hace con UDDI (Universal Description, BIND Descripción del
Discovery, and Integration) servicio

INTRODUCCIÓN A WEB SERVICES Componentes de Web Services


Stack de Componentes

• UDDI: “Universal Description, Discovery and Integration”.


WSFL(**) Flujo de servicios
Permite que las aplicaciones puedan ser listadas y
localizadas de manera ágil y eficaz. (No es un estándar
UDDI (*) Descubrimiento de servicios
CALIDAD DE SERVICIO

actualmente).
Publicación de servicios • WDSL: “Web Services Description Language”.
ADMINISTRACIÓN

UDDI (*)
Es una plantilla o interfaz que permite a las aplicaciones el
Descripción de Servicios describirle a otras aplicaciones, las reglas para interactuar
SEGURIDAD

WSDL
entre sí.
SOAP Mensajería basada en XML
• SOAP: “Simple Object Access Protocol”
HTTP, FTP, SMTP,
Servicios de Red
Provee los mecanismos para la ejecución de llamadas
MQSeries, IIOP a procedimientos remotos entre programas, de tal manera
(*) No es un estándar de la industria, ha sido propuesto que se puedan establecer de manera eficiente las
por Microsoft e IBM entre otros. comunicaciones de tipo “programa a programa”.
(**) Es una propuesta de IBM

5
MODELO WEB-SERVICES Algunas de las Principales
Aplicaciones de los Web Services
l Interoperabilidad entre ambientes de desarrollo
• Tradicionalmente, antes de los Web Services una empresa debía
decidir en que ambiente de desarrollo trabajar
• “Me voy por JAVA”
• “Me voy por Microsoft”
• “Me voy por Oracle”
• Una vez se decidía el Ambiente de Desarrollo, queda uno
“Cazado” con dicha platarma.
• Con Web Services, desarrolle sus aplicaciones en lo que más le
guste e integrelas con Web Services.
• Una aplicación que parecía Irreal:
• Llamar desde una aplicación hecha en Java y servicio hecho en
ambiente Microsoft.
• Esto es posible gracias a los Web Services.

Ebussines y Agentes Inteligentes Ebussines y Agentes Inteligentes


l Antes de los Web Services l Con los web services
• La mayoria de los sistemas de Comerio Electrónico (Customer to • Se instala en Internet, una Agencia de Viajes Virtual
Business, C2B) se realizaron con APLICACIONES WEB • Su función es principalmente como Broker
• Las comunicaciones entre los servidores de aplicaciones • Deseo realizar un viaje, en el cual obviamente necesito:
involucrados eran Propietarios y alguna de las partes colocaba las • Tiquetes Aereos
condiciones. • Hotel
• Ej: Los primeros pasos al Comercio Electrónico en Colombia, los • Auto en la ciudad destino
Bancos determinaban los formatos, tecnologías, … para
comunicarse con ellos.
• Inicio una transacción en Internet para realizar mi viaje entre una
fecha 1 y fecha 2 con algún nivel de holgura.
• Todas las Interacciones a nivel de servicio son entre Cliente y
• Dicha transacción es atendida por un Agente Inteligente de
Proveedor.
Software que realizará en mi nombre la transacción.
• El Agente tiene toda la información para llevar a cabo la
transacción así como el manejo de restricciones y flujo de
procesos.

Ebussines y Agentes Inteligentes


C2B
BANCO

Browser
Aerolinea
(Clientes)
Agencia
Virtual
Browser de Viajes
Browser
Cliente WEB SERVICES Hotel
(Clientes)
A B2B

A A Browser
Car Rental
(Clientes)

You might also like