Tema IV Arquitectura Cliente/Servidor 1 Justificación Cliente/Servidor ANTES AVANCE Rigidez. TECNOLÓGICO No redistribución. Vinculación al sistema. Solapamiento, duplicación y redundancia. EXIGENCIAS Producción masiva. Tareas simples. DE LA Repetitivas. EMPRESA Desmotivación. Usuario operador. Adaptación a la ENTORNO capacidad del GENERAL ordenador. Ordenadores caros. Usuarios asustadizos. AHORA Múltiples procesadores Portabilidad entre procesadores. Migrabilidad entre plataformas. Competencia. Renovación. Factor tiempo crítico. Autonomía. Usuario analista. Software a medida. Ordenadores accesibles. Domesticación de la informática. 2 Nuevas Tareas del Dpto. de Sistemas de Información • • Soporte a la gestión empresarial. Apoyo a los objetivos. Selección de Estándares: – Compatibiliza. – Facilita al usuario. • Infraestructura C/S: – – – – Plataforma operativa. Entorno de desarrollo. Gestión del SID. Arquitectura de la aplicación: • Portabilidad. • Interoperatividad. • Distribuida. • • Desarrollo corporativo (no departamental). Integración de aplicaciones propias con estándar. 3 Implicaciones del modelo Cliente/Servidor Necesidades comerciales en continua evolución Nuevos roles de Sistemas de Información y de los usuarios Infraestructura Abierta Cliente/Servidor Nuevas herramientas de desarrollo: Prototipos Nuevo proceso de desarrollo 4 ¿Cuándo implantar C/S? • • • • Cambios estructurales y organizativos. Cambios en organigramas. Respuesta dinámica de mercado. Cambio en procesos de negocio. 5 ¿Qué ayuda a la implantación? • La demanda de sistemas fáciles. • Precio/rendimiento de estaciones y servidores. • Creciente acceso a la información para decisiones: Separación datos-programas. Programas flexibles. • Nuevas tecnologías de alta productividad. 6 Cliente/Servidor Definición: Sistema distribuido entre múltiples procesadores donde hay clientes que solicitan servicios y servidores que los proporcionan. Separa los servicios situando cada uno en su plataforma más adecuada. 7 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. 8 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. Downsizing: migración a PCs. S.O. De red con servidores de servicios. 9 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 Arquitecturas C/S de 2 y 3 niveles. Middleware. 10 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. 11 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. 12 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. 13 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 miniaplicaciones) 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): Especificación para objetos en Java. • JAVASCRIPT (Netscape): Lenguaje de utilidades para HTML. 14 Evolución (III) • EL FUTURO. – Facilidad de uso de las aplicaciones. – Accesos a datos distribuidos en cualquier lugar del mundo (y del espacio). 15 MIDDLEWARE • Conecta procesos para constituir aplicación. • Conjunto de funciones + servicios. • Actúa en el bajo nivel del SID: – Comunicación. – Directorios. – Integridad. • Define la plataforma de transparencia de localización. 16 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 sincrono - asíncrono. 17 Características C/S (II). • Entorno de aplicaciones incremental. – Añadir un nuevo servidor. – Añadir un nuevo cliente. – Modificar un cliente para usar un nuevo servidor. • Integración: por la GUI. 18 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 C Negocio Datos S 19 Modelos C/S (II) • Función distribuida – Máxima flexibilidad. – Lógicas de negocio separadas. Presentación Negocio C Negocio Datos S 20 Modelos C/S (III) • Datos distribuidos – Ficheros distribuidos. – Bases de datos distribuidas. Presentación C Negocio Datos S 21 Aplicaciones de 2 y 3 niveles • 2 niveles: – Generalmente usa los modelos de función distribuida o datos distribuidos. – Muy productivo. – Distribución no flexible. – Dependiente del suministrador. 22 Aplicaciones de 2 y 3 niveles (II) • 3 niveles: – Modelo presentación-negocio-datos – Distribución flexible. – Sistema abierto. No dependiente. C C Negocio C 23 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 interoperatividad 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 interoperativilidad o la portabilidad de aplicaciones, datos o personas, según se especifica en los estándares y perfiles de tecnología informática” 24 Sistemas Abiertos: Características. • Elección libre de plataforma gracias a la portabilidad e interoperatividad. • 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. 25 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. 26 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. 27 Sistemas Abiertos: Factores de éxito. • Independencia del suministrador. • Elección de herramientas: – Interoperativas: Estándares. – Portables: Estándar o propietario. • Arquitectura de la aplicación: – Buen diseño C/S. 28 Plataformas operativas: Gestores de recursos • Definición: ”Programas software 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. 29 Plataformas operativas: Middleware • Función de intermediario entre clientes y servidores. • Otros servicios: – Directorio de recursos: info. sobre ellos. – Nominación de recursos. – Comunicaciones: • Conversacional (SINC) • RPC: (SINC) • Cola de mensajes: (ASINC) – Seguridad: Login único. – Gestión de transacciones: única para todos los recursos. 30 Selección de sw C/S • • • • • • • 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. 31