Programación Web Tema 1: Arquitectura C /...

13
1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso Programación Web Tema 1: Arquitectura C / S Miguel Ángel Manso Emerson Castañeda ETSI en Topografía, Geodesia y Cartografía - UPM Basado en la presentación de: Patricio Martínez Barco y Armando Suárez Cueto Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso Filosofía Cliente/Servidor Definición : Sistema distribuido entre múltiples procesadores en el que existen clientes que demandan servicios y servidores que los proporcionan Separa los servicios situando cada uno de ellos en la plataforma más adecuada

Transcript of Programación Web Tema 1: Arquitectura C /...

Page 1: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

1

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Programación Web Tema 1: Arquitectura C / S

Miguel Ángel Manso Emerson Castañeda

ETSI en Topografía, Geodesia y Cartografía - UPM

Basado en la presentación de: Patricio Martínez Barco y Armando Suárez Cueto

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Filosofía Cliente/Servidor

Definición: Sistema distribuido entre múltiples procesadores en el que existen clientes que demandan servicios y servidores que los proporcionan

Separa los servicios situando cada uno de ellos en la plataforma más adecuada

Page 2: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

2

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Objetivos de C/S

• Localización transparente

• Recursos compartidos

• Escalabilidad:

– Horizontal: > nº estaciones

– Vertical: migración a otras plataformas

• Interoperatividad entre distintos Hw y Sw

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Evolución

• 1ª ÉPOCA: – LAN

– LAN con MAINFRAMES

– Comunicaciones homogéneas (LU, SNA, APPC)

• 2ª ÉPOCA: – Herramientas de desarrollo C/S

– Proveedores DBMS con C/S

– Reestructuración/rediseño: migración a PCs

– S.O. de red con servidores de servicios

Page 3: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

3

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Evolución (II)

• 3ª ÉPOCA: ACTUAL – PWS: Estaciones de trabajo programables gráficamente

– GUI: Interfaz gráfico de usuario. Alta resolución

– Nuevas tecnologías: Ratón, lápiz óptico, scanner, multimedia

– Tecnología de componentes: DDE y OLE

– Conectividad de BDs: ODBC, JDBC

– Objetos Distribuidos: CORBA, COM, COM+, DCOM

– Internet: HTML, CGI, Applet, ActiveX, JAVA, JAVASCRIPT, AJAX

– Arquitecturas C/S de 2 y 3 niveles

– Middleware

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Tecnología de componentes: DDE y OLE

• DDE: (Dynamic Data Exchange) (Microsoft)

– Enlaces de datos dinámicos

– Información automáticamente actualizada entre aplicaciones

• OLE: (Object Linking and Embeding) (Microsoft)

– Objetos enlazados y embebidos • Enlazado: Guardando una referencia

• Embebido: Insertando un documento

Page 4: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

4

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Conectividad de BDs

• ODBC: (Open DataBase Conectivity) (Microsoft)

– Conectividad abierta entre BDs

– Interfaz de conexión entre BDs (especialmente Microsoft)

• JDBC: (Java DataBase Conectivity) (Java)

– Conectividad abierta entre BDs versión Java

– Abierto

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Objetos Distribuidos

• CORBA (Common Object Request Broker Architecture) (Object

Management Group): Estándar de programación distribuida basada en objetos

• COM (Microsoft): Interface estándar para objetos (no importa cómo

están programados)

• COM+ (Microsoft): Extensión de COM en el que se añade un modelo

para la programación de objetos

• DCOM (Microsoft): Extensión de COM que permiten crear objetos

clientes y servidores utilizando COM aunque creando transparencia sobre la localización física del objeto (es decir que puede encontrarse en otra máquina). La gestión de la comunicación está embebida

Page 5: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

5

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

INTERNET • HTML (HyperText Markup Language): Lenguaje basado en el estándar SGML, de

etiquetado, para la creación de páginas web en el servidor visibles desde un cliente remoto con su propio visor

• CGI (Common Gateway Interface): Interface para el tratamiento de ejecutables en el servidor (remoto) a petición de clientes. Rápido y muy modular

• ActiveX (Microsoft): Objetos visuales de control (desde botones hasta mini-aplicaciones) embebidos en un documento (o página web) que se descargan y se ejecutan en el visor del cliente

• JAVA (Sun Microsystems): Lenguaje de programación específico para C/S en internet. Lento, con aplicaciones mayores

• APPLET: Objetos visuales embebidos en una página web (versión abierta de ActiveX)

• JAVABEANS (Sun Microsystems): Modelo de componentes diseñado para Java

• JAVASCRIPT (Netscape): Lenguaje de programación interpretado dinámico ampliamente usado junto al HTML

• AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML)

• Flash (lenguaje ActionScript)

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Evolución (III)

• EL FUTURO

– Facilidad de uso de las aplicaciones

– Accesos a datos distribuidos en cualquier lugar del mundo (y del espacio)

Page 6: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

6

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

MIDDLEWARE

• Conecta procesos para construir la aplicación

• Conjunto de funciones + servicios

• Actúa en el nivel bajo del Sistema Distribuido:

– Comunicación

– Directorios

– Integridad

• Define la plataforma de transparencia de localización

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Características C/S

• Flexibilidad: – Middleware

– Separación de funciones: • Lógica de presentación

• Lógica de negocio

• Lógica de datos

– Encapsulación de servicios

– Portabilidad - reubicación

– Operación síncrona - asíncrona

Page 7: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

7

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Características C/S (II)

• El entorno de aplicaciones incremental facilita:

– Añadir un nuevo servidor

– Añadir un nuevo cliente

– Modificar un cliente para usar un nuevo servidor

• Integración de las aplicaciones en la GUI del cliente

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Modelos C/S

• Presentación distribuida

– Proporciona un API que separa la programación de ventanas del resto

– Ejemplo: X-Windows System en UNIX o Windows95 y NT

Presentación Negocio Datos

C S

Page 8: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

8

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Modelos C/S (II)

• Funcionalidad (Negocio) distribuida:

– Máxima flexibilidad

– Lógicas de negocio separadas

Presentación Negocio Datos Negocio

C S

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Modelos C/S (III)

• Datos distribuidos

– Ficheros distribuidos

– Bases de datos distribuidas

Presentación Negocio Datos

C S

Page 9: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

9

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Aplicaciones de 2 niveles

• 2 niveles:

– Generalmente usa los modelos de Funcionalidad distribuida o Datos distribuidos

– Muy productivo

– Distribución no es muy flexible

– Dependiente del suministrador

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Aplicaciones de 3 niveles • 3 niveles:

– Modelo Presentación-Negocio-Datos

– Distribución flexible

– Sistema abierto, sin dependencias

C

C

C

Negocio

Page 10: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

10

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Sistemas abiertos

• Definición según IEEE: “Un conjunto completo y consistente de estándares internacionales de

tecnología de información y de estándares funcionales, que especifica interfaces, servicios y formatos de soporte para conseguir la interoperabidad y portabilidad de aplicaciones, datos y personas”

• Definición según ISO: “Todo el conjunto de interfaces, servicios y formatos de soporte, además de

otros aspectos de usuarios, para la interoperabilidad o la portabilidad de aplicaciones, datos o personas, según se especifica en los estándares y perfiles de tecnología informática”

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Sistemas Abiertos: Características

• Elección libre de plataforma gracias a la portabilidad e interoperabilidad

• Protección de la inversión empresarial

• Libertad de elección del modelo de distribución:

– presentación

– función o datos distribuidos

• Explotación de aplicaciones estándar

Page 11: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

11

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Estándares

• Definición: “Conjunto de reglas, definiciones y propiedades mutuamente aceptadas que permite la cooperación de objetos heterogéneos y su utilización”

• Clasificación: – Por su lugar de publicación:

• Internacional

• Regional (CEE)

• Nacional

– Por autor: • De Iure: por comité

• De facto: por fabricante

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Sistemas abiertos vs propietarios

• Tiempo de implantación mayor en abiertos:

– Estándar 10 años

– Alianzas y consorcios (no oficial): medio plazo

– Tecnologías propietarias portables: corto plazo

– Tecnologías propietarias: Rápidas. No abiertas

• Diferenciador de producto:

– Estándar industrial + algo propio

– Ejemplo: un DBMS con SQL estándar + 4GL propio

• Arquitecturas de proveedores importantes

Page 12: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

12

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Sistemas Abiertos: Factores de éxito

• Independencia del suministrador

• Elección de herramientas:

– Interoperabilidad: Estándares

– Portables: Estándar o propietario

• Arquitectura de la aplicación:

– Buen diseño C/S

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Plataf. operativas: Gestores de recursos

• Definición: ”Programas informáticos que acceden a recursos (dispositivos, ficheros, bases de datos, programas, objetos, etc.) y proporcionan un API”

• Tipos:

– Local: servicio en S.O. local

– Remoto: con C/S

– Distribuido: en varios lugares

Page 13: Programación Web Tema 1: Arquitectura C / Spdi.topografia.upm.es/m.manso/docencia/PW2012/1.2.-Introducción_Arquitectura_Cliente...1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel

13

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

Plataformas operativas: Middleware

• Función de intermediario entre clientes y servidores

• Otros servicios:

– Directorio de recursos: información sobre ellos

– Nominación de recursos

– Comunicaciones:

• Conversacional (SINC)

• RPC: (SINC)

• Cola de mensajes: (ASINC)

– Seguridad: Identificación única

– Gestión de transacciones: única para todos los recursos

Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso

La selección del Software C/S = f()

• Sistema operativo

• Múltiples modelos de distribución C/S

• Nuevas tecnologías (POO)

• Apertura

• Integración con SW estándar

• Operación C/S (síncrona y asíncrona)

• Herramientas de desarrollo potentes