La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación de clientes

Presentaciones similares


Presentación del tema: "Programación de clientes"— Transcripción de la presentación:

1 Programación de clientes
Especialidad en Base de Datos Programación de clientes .

2 Objetivos El objetivo del curso es familiarizar al alumno con los conceptos y terminología “Cliente/Servidor”. Al finalizar del curso, el alumno estará familiarizado con los siguientes modelos cliente/servidor: NOS, Base de datos SQL, TP Monitors, Groupware, Web y brokers de objetos distribuidos. Igualmente, adquirirá un modelo conceptual que le ayudará a comprender las diciplinas relacionadas con el tema.

3 Temas CLIENTES, SERVIDORES Y SISTEMAS OPERATIVOS.
1.1 Definiciones. 1.2 Opciones en el mercado MIDDLEWARE BASE: STACKS Y SISTEMAS OPERATIVOS DE RED 2.1 Definiciones 2.2 RPC 2.3 Messaging. 2.4 Peer to Peer. 2.5 Opciones en el mercado. SERVIDORES DE BASES DE DATOS SQL 3.1 Definiciones 3.2 Servidores de base de datos 3.3 SQL middleware 3.4 Base de datos federadas 3.5 Datawarehouses 3.6 EIS/DSS 3.7 Opciones en el mercado

4 Temas PROCESAMIENTO DE TRANSACCIONES EN CLIENTE/SERVIDOR
4.1 Definiciones 4.2 Transacciones 4.3 Administración de transacciones 4.4 Monitoreo de transacciones 4.5 Opciones en el mercado CLIENT/SERVER GROUPWARE. 5.1 Definiciones. 5.2 Opciones en el mercado CLIENT/SERVER CON OBJETOS DISTRIBUIDOS 6.1 Definiciones 6.2 Opciones en el mercado

5 Temas CLIENT/SERVER E INTERNET 7.1 Objetos y componentes distribuidos
7.2 CORBA 7.3 COM+ 7.4 Base de datos de objetos ADMINISTRACIÓN DE SISTEMAS DISTRIBUIDOS 7.1 Administración de sistemas distribuidos 7.2 Estándares APLICACIÓN DE CONCEPTOS 9.1 Desarrollo de aplicaciones con herramientas cliente/servidor 9.2 Opciones cliente/servidor

6 Elementos principales
“Los elementos principales de la arquitectura cliente servidor son justamente el elemento llamado cliente y el otro elemento llamado servidor”. Por ejemplo dentro de un ambiente multimedia, el elemento cliente seria el dispositivo que puede observar el vídeo, cuadros y texto, o reproduce el audio distribuido por el elemento servidor. .

7 Un sistema aislado

8 En resumen C/S es una relación entre procesos corriendo en máquinas separadas El servidor (S) es un proveedor de servicios. El cliente (C) es un consumidor de servicios. C y S Interactúan por un mecanismo de pasaje de mensajes: Pedido de servicio. Respuesta

9 Algunos antecedentes El principal motivo es la necesidad que tienen las organizaciones (empresas o instituciones públicas o privadas), de realizar sus operaciones más ágil y eficientemente, debido a la creciente presión competitiva a la que están sometidas, lo cual se traduce en la necesidad de que su personal sea mas productivo, que se reduzcan los costos y gastos de operación, al mismo tiempo que se generan productos y servicios más rápidamente y con mejor calidad

10 C/S como infraestructura
En este contexto, es necesario establecer una infraestructura de procesamiento de información, que cuente con los elementos requeridos para proveer información adecuada, exacta y oportuna en la toma de decisiones y para proporcionar un mejor servicio.

11 Evolución de la arquitectura
Cliente - Servidor

12 Era de la computadora central
“Desde sus inicios el modelo de administración de datos a través de computadoras se basaba en el uso de terminales remotas, que se conectaban de manera directa a una computadora central”. Dicha computadora central se encargaba de prestar servicios caracterizados por que cada servicio se prestaba solo a un grupo exclusivo de usuarios.

13 Era de las computadoras dedicadas
Esta es la era en la que cada servicio empleaba su propia computadora que permitía que los usuarios de ese servicio se conectaran directamente. Esto es consecuencia de la aparición de computadoras pequeñas, de fácil uso, más baratas y más poderosas de las convencionales

14 Era de la conexión libre
Cuando aparecieron las computadoras de escritorio, permitió que parte apreciable de la carga de trabajo de cómputo tanto en el ámbito de cálculo como en el ámbito de la presentación se llevaran a cabo desde el escritorio del usuario. En muchos de los casos el usuario obtiene la información que necesita de alguna computadora de servicio, conectados empleando un software tipo terminal En otros de los casos se les transfiere la información haciendo uso de recursos magnéticos o por trascripción.

15 Era del cómputo a través de las redes
Esta es la era que esta basada en el concepto de redes de computadoras, en la que la información reside en una o varias computadoras, los usuarios de esta información hacen uso de computadoras para laborar y todas ellas se encuentran conectadas entre si. Esto brinda la posibilidad de que todos los usuarios puedan acceder a la información de todas las computadoras y a la vez que los diversos sistemas intercambien información.

16 Era de arq. Cliente - Servidor
En esta arquitectura la computadora de cada uno de los usuarios, llamada cliente, produce una demanda de información a cualquiera de las computadoras que proporcionan información, conocidas como servidores”estos últimos responden a la demanda del cliente que la produjo. Los clientes y los servidores pueden estar conectados a una red local o una red amplia, como la que se puede implementar en una empresa o a una red mundial como lo es la Internet.

17 ¿Qué es una arquitectura?
Una arquitectura es un entramado de componentes funcionales que aprovechando diferentes estándares, convenciones, reglas y procesos, permite integrar una amplia gama de productos y servicios informáticos, de manera que pueden ser utilizados eficazmente dentro de la organización.

18 ¿Qué es un cliente? Es el que inicia un requerimiento de servicio. El requerimiento inicial puede convertirse en múltiples requerimientos de trabajo a través de redes LAN o WAN. La ubicación de los datos o de las aplicaciones es totalmente transparente para el cliente

19 ¿Qué es un servidor? Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los servidores pueden estar conectados a los clientes a través de redes LANs o WANs, para proveer de múltiples servicios a los clientes y ciudadanos tales como impresión, acceso a bases de datos, fax, procesamiento de imágenes, etc.

20 Ejemplo

21 Elementos de la arquitectura C/S
Una arquitectura Cliente/Servidor, debemos identificar los componentes que permitan articular dicha arquitectura, considerando que toda aplicación de un sistema de información está caracterizada por tres componentes básicos: Presentación/Captación de Información Procesos Almacenamiento de la Información

22 Aplicaciones cliente-servidor

23 Puesto de trabajo o Cliente
Una Estación de trabajo o microcomputador (PC: Computador Personal) conectado a una red, que le permite acceder y gestionar una serie de recursos» el cual se perfila como un puesto de trabajo universal. Nos referimos a un microcomputador conectado al sistema de información y en el que se realiza una parte mayoritaria de los procesos. También se llama cliente, a un proceso que consume un servicio prestado por un servidor

24 Los Servidores Una máquina que suministra una serie de servicios como Bases de Datos, Archivos, Comunicaciones,...). Los Servidores, según la especialización y los requerimientos de los servicios que debe suministrar pueden ser: Mainframes Miniordenadores Especializados (Dispositivos de Red, Imagen, etc.)

25 Las comunicaciones En sus dos vertientes: Infraestructura de redes
Componentes Hardware y Software que garantizan la conexión física y la transferencia de datos entre los distintos equipos de la red. Infraestructura de comunicaciones Componentes Hardware y Software que permiten la comunicación y su gestión, entre los clientes y los servidores.

26 Integración de Mainframes y PC’s
La arquitectura Cliente/Servidor es el resultado de la integración de dos culturas. Por un lado, la del Mainframe que aporta capacidad de almacenamiento, integridad y acceso a la información y, por el otro, la del computador que aporta facilidad de uso (cultura de PC), bajo costo, presentación atractiva y una amplia oferta en productos y aplicaciones.

27 Ejemplo del modelo C/S

28 Características del Modelo C/S
El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma. Un servidor da servicio a múltiples clientes en forma concurrente

29 Características del Modelo C/S (2)
Cada plataforma puede ser escalable independientemente. Un sistema de servidores realiza múltiples funciones al mismo tiempo que presenta una imagen de un solo sistema a las estaciones Clientes. Se constituye como el nexo de unión mas adecuado para reconciliar los sistemas de información basados en mainframes o minicomputadores, con entornos informáticos pequeños y estaciones de trabajo.

30 Conclusión Cliente/Servidor puede incluir múltiples plataformas, bases de datos, redes y sistemas operativos. Estos pueden ser de distintos proveedores, en arquitecturas propietarias y no propietarias y funcionando todos al mismo tiempo. Su implantación puede involucrar diferentes tipos de estándares: APPC, TCP/IP, OSI, NFS, DRDA corriendo sobre DOS, OS/2, Windows o PC UNIX, en Token­Ring, Ethernet, FDDI, Fibra Canal, sólo por mencionar algunas de las posibilidades

31 Tipos de Clientes Thin Client (Cliente Delgado)
Servidor rápidamente saturado. Gran circulación de datos de interfase en la red. Fat Client (Cliente Gordo) Casi todo el trabajo en el cliente. No hay centralización de la gestión de la BD. Gran circulación de datos inútiles en la red.

32 Balance Thin y Fat Clients

33 Tipos de servidores Servidores de archivos
Servidor donde se almacena archivos y aplicaciones de productividad. Servidores de bases de datos Servidor donde se almacenan las bases de datos, tablas, índices. Servidores de transacciones Servidor que cumple o procesa todas las transacciones. Valida primero y recién genera un pedido al servidor de bases de datos. Servidores de Groupware Servidor utilizado para el seguimiento de operaciones dentro de la re Servidores Web Se usan como una forma inteligente para comunicación entre empresas a través de Internet. Este servidor permite transacciones con el acondicionamiento de un browser específico.

34 Estilos del Modelo Cliente-Servidor
Presentación Distribuida Presentación Remota Lógica Distribuida Administración remota de Datos Base de Datos Distribuída

35 Presentación Distribuida
Se distribuye la interfaz entre el cliente y la plataforma servidora. La aplicación y los datos están ambos en el servidor. Similar a la arquitectura tradicional de un Host y Terminales. El PC se aprovecha solo para mejorar la interfaz gráfica del usuario. Ventajas Revitaliza los sistemas antiguos. Bajo costo de desarrollo. No hay cambios en los sistemas existentes. Desventajas El sistema sigue en el Host. No se aprovecha la GUI y/o LAN. La interfaz del usuario se mantiene en muchas plataformas.

36 Presentación Remota La interfaz para el usuario esta completamente en el cliente. La aplicación y los datos están en el servidor. Ventajas La interfaz del usuario aprovecha bien la GUI y la LAN. La aplicación aprovecha el Host. Adecuado para algunos tipos de aplicaciones de apoyo a la toma de decisiones. Desventajas Las aplicaciones pueden ser complejas de desarrollar. Los programas de la aplicación siguen en el Host. El alto volumen de tráfico en la red puede hacer difícil la operación de aplicaciones muy pesadas.

37 Lógica Distribuida La interfaz esta en el cliente.
La base de datos esta en el servidor. La lógica de la aplicación esta distribuida entre el cliente y el servidor. Ventajas Arquitectura mas corriente que puede manejar todo tipo de aplicaciones. Los programas del sistema pueden distribuirse al nodo mas apropiado. Pueden utilizarse con sistemas existentes. Desventajas Es difícil de diseñar. Difícil prueba y mantenimiento si los programas del cliente y el servidor están hechos en distintos lenguajes de programación. No son manejados por la GUI 4GL.

38 Administración de Datos Remota
En el cliente residen tanto la interfaz como los procesos de la aplicación. Las bases de datos están en el servidor. Es lo que comúnmente imaginamos como aplicación cliente servidor Ventajas Configuración típica de la herramienta GUI 4GL. Muy adecuada para las aplicaciones de apoyo a las decisiones del usuario final. Fácil de desarrollar ya que los programas de aplicación no están distribuidos. Se descargan los programas del Host. Desventajas No maneja aplicaciones pesadas eficientemente. La totalidad de los datos viaja por la red, ya que no hay procesamiento que realice el Host.

39 Base de Datos Distribuida
La interfaz, los procesos de la aplicación, y , parte de los datos de la base de datos están en cliente. El resto de los datos están en el servidor. Ventajas Configuración soportada por herramientas GUI 4GL. Adecuada para las aplicaciones de apoyo al usuario final. Apoya acceso a datos almacenados en ambientes heterogéneos. Ubicación de los datos es transparente para la aplicación. Desventajas No maneja aplicaciones grandes eficientemente. El acceso a la base de datos distribuida es dependiente del proveedor del software administrador de bases de datos

40 Definición de Middleware
“Es un termino que abarca a todo el software distribuido necesario para el soporte de interacciones entre Clientes y Servidores”. Es el enlace que permite que un cliente obtenga un servicio de un servidor. Este se inicia en el modulo de API de la parte del cliente que se emplea para invocar un servicio real; esto pertenece a los dominios del servidor. Tampoco a la interfaz del usuario ni la a la lógica de la aplicación en los dominios del cliente.

41 Definición de middleware.org
What is middleware? Common definition are that middleware is the "glue" between software components or between software and the network or it is the slash in Client/Server. We generally refer to the use of this type of middleware as Enterprise Application Integration or EAI. EAI middleware mediates between applications in a number of ways, but most commonly we think in terms of the transformation and routing of data and the orchestration of business process flows. There is the implication here that these applications reside in a heterogeneous world--different operating platforms, disparate data models and data stores, and heterogeneous network and communications protocols..

42 Tipos de Middleware Existen dos tipos de middleware:
Middleware general Este tipo permite la impresión de documentos remotos, manejos de transacciones, autenticación de usuarios, etc. Middleware de servicios específicos Generalmente trabajan orientados a mensajes. Trabaja uno sola transacción a la vez.

43 Clasificación de middleware.org
MOM – Message Oriented Middleware Object Middleware DataBase RPC Transaction Portal Metadata

44 Funciones de un programa servidor
Espera las solicitudes de los clientes. Ejecuta muchas solicitudes al mismo tiempo. Atiende primero a los clientes VIP. Emprende y opera actividades de tareas en segundo plano. Se mantiene activa en forma permanente.

45 Sistemas Operativos Características

46 Sistemas operativos por lotes
Procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Cuando estos sistema son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los sistemas operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos. Algunas características de los sistemas operativos por lotes son las siguientes: Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote Permiten poca o ninguna interacción con el usuario Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios. Conveniente para programas de largos tiempos de ejecución

47 Sistemas operativos de tiempo real
Los sistemas operativos de tiempo real son aquellos en donde no tiene importancia el usuario, sino los procesos. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. Son construidos para aplicaciones muy específicas, tales como: tráfico aéreo, bolsas de valores, etc. Algunos campos de aplicación son los siguientes: Control de trenes, Telecomunicaciones Sistemas de fabricación integrada, Control de edificios, etc. Algunas características de los sistemas operativos de tiempo real son: Su objetivo es proporcionar rápidos tiempos de respuesta Procesa ráfagas de miles de interrupciones por segundo sin perder algún proceso Poco movimiento de programas entre almacenamiento secundario y memoria Proceso de mayor prioridad expropia recursos

48 Sistemas operativos de multiprogramación o multitarea
Soporta la ejecución de dos o más trabajos activos al mismo tiempo. Su objetivo es tener varias tareas en la memoria principal. Las características de un Sistema operativo de multiprogramación son las siguientes: Mejora productividad del sistema y utilización de recursos Multiplexa recursos entre varios programas Soporta múltiples usuarios Requiere validación de usuario para seguridad y protección Estos sistemas operativos se caracterizan por tener múltiples programas activos, compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.

49 Sistemas operativos de tiempo compartido
Estos sistemas permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S; son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Las características de los sistemas operativos de tiempo compartido son: Dan la ilusión de que cada usuario tiene una máquina para sí La mayoría utilizan algoritmo de reparto circular Los programas se ejecutan con prioridad rotatoria que se incrementan con la espera y disminuye después de concedido el servicio Gestión de memoria proporciona protección a programas residentes

50 Sistemas operativos distribuidos
Estos sistemas permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores; este conjunto de procesadores puede estar en un equipo o en diferentes, en este caso es transparente para el usuario. Sus características de los sistemas operativos distribuidos son: Colocación de sistemas autónomos capaces de comunicación y cooperación mediante el hardware y software Proporcionan medios para la compartición global de recurso Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos.

51 Sistemas operativos de red
Son aquellos que mantienen a dos o más computadoras unidas a través de algún medio de comunicación, con el objetivo de poder compartir los diferentes recursos y la información del sistema. Por lo regular son utilizados en: Novell Netware, Personal Netware, Lan Manager, etc.

52 Sistemas operativos paralelos
En estos sistemas se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo. Así, en lugar de esperar a que el proceso termine de ejecutarse, regresa a atender al usuario inmediatamente

53 Consideraciones de Diseño Compartir Archivos vs Arq. C/S
El compartir archivos y el modelo cliente/servido proveen procesamiento distribuido, permitiendo que máquinas cliente puedan compartir información. En el modelo de compartición de archivos, las PCs pueden compartir software de aplicación y bases de datos almacenadas en un servidor de archivos de una LAN. En el modelo de arquitectura cliente/servidor parte el proceso entre el front end, que maneja la interfaz con el usuario e interacción y el back end, que procesa los requerimientos de información.

54 Modelo de compartición de archivos

55 Modelo de arquitectura cliente-servidor

56 Ventajas / Desventajas
En el modelo de compartición de archivos, la tabla se transfiere desde el servidor de archivos hacia el cliente, busca los registros que cumplan un cierto criterio y entonces guarda e imprime los registros apropiados. Si estuviera utilizando una arquitectura cliente/servidor, el servidor de base de datos enviaría a través de la red, únicamente la información que cumple con lo solicitado; nunca enviaría todo el archivo. Esto minimiza el tráfico en la red y optimiza el uso de los recursos.

57 Consideraciones de diseño
Para desarrollar de manera correcta una aplicación distribuida, es necesario tomar en cuenta ciertos aspectos importantes: Funcionalidad Seguridad Soporte heterogéneo Performance Administración de entradas /salidas Protocolos Recuperación de errores Depuración de aplicaciones

58 Funcionalidad Es muy fácil decidirse por una metodología que se cree correcta y aplicable a la tarea a resolver sin tener un conocimiento correcto del problema. Una definición correcta del objetivo del sistema, ayudará grandemente a determinar si la arquitectura cliente/servidor permitirá mejorar la funcionalidad deseada de la aplicación.

59 Seguridad Si es necesario, se puede implementar una capa de seguridad en su aplicación. Normalmente, los argumentos de llamada y resultados de su aplicación, son visibles para cualquier persona que se encuentre monitoreando las comunicaciones entre cliente y servidor. Para prevenir esto, será necesario encriptar los argumentos y resultados antes de enviarlos a través de la red. Además, puede ser necesario que el cliente verifique que está comunicándose con el servidor correcto, o el servidor puede necesitar saber si está siendo contactado por clientes autorizados. Esto se denomina “Autenticación”

60 Soporte heterogéneo El soporte para ambientes heterogéneos es importante en las redes utilizadas actualmente. Debe de considerarse distintos tipos de heterogeneidad: Independencia de la arquitectura de la máquina. Independencia del sistema operativo Independencia del transporte de la red Independencia del lenguaje Independencia del proveedor.

61 Transporte en ambientes heterogéneos
Las aplicaciones en la arquitectura cliente / servidor, pueden optar por usar dos tipos de transporte: connectionless y connection-oriented. El transporte connection-oriented es confiable. Visualizado como una tubería bidireccional que conecta al cliente y al servidor, garantiza que los datos no se pierdan en ningún momento. El único error posible es una conexión o tubería rota. El transporte connectionless es lo opuesto de una conexión confiable. Los paquetes de datos son enviados independientemente a través de la red. La recepción de los paquetes no está garantizada y no existe ningún control de flujo. Esto permite que se pierdan o dupliquen los paquetes.

62 Transportes en Unix y Windows
En UNIX, TCP (Transmission Control Protocol), representa al transporte confiable y el UDP (User Datagram Protocol), representa al transporte connectionless. Bajo Windows/NetBIOS, Session representa al transporte confiable y Datagram representa al transporte connectionless

63 Idempotencia y ejecución única
Estos conceptos son importantes para la arquitectura C/S. Idempotencia significa básicamente “repetibilidad”: esto quiere decir, que cuando se ejecuta un comando en un servidor idempotente muchas veces, se obtiene los mismos resultados. Ejecución Única, se refiere a servidores que garantizan que cierta operación será ejecutada como máximo una vez por cada llamada del cliente.

64 Recuperación de errores
Este es un criterio importante de diseño. La forma de recuperación de errores, son soluciones específicas y dependientes de la aplicación. Por ejemplo, no es lo mismo implementar una recuperación de error en una transmisión de tipo connectionless que una connection-oriented

65 Performance (desempeño)
Los factores que más afectan al performance son: El manejo del estado de la aplicación El transporte utilizado El diseño del protocolo a usar. Reducción en el número de llamadas al servidor Selección de valores de timeout Si existen muchos clientes, esto puede afectar en gran medida al performance de un servidor, cuando éste debe realizar gran cantidad de procesamiento para cada transacción. Por lo tanto, se debe de tratar que las transacciones sean cortas y minimicen el trabajo del servidor

66 Timeouts En una red ideal, los time-outs no son necesarios, puesto que cada mensaje enviado llega a su destino. Sin embargo, ese no es el caso; el manejo de time-outs, es necesario tenerlo en cuenta en todas las aplicaciones de arquitectura cliente – servidor. Es muy probable que los servidores tomen tiempos variables para producir una respuesta, dependiendo en factores como la carga del sistema, ruteo de la red y congestión de la red. El cliente tiene que estar preparado para variaciones en los tiempos de respuesta y no hacer time-outs falsos. El cliente no debe contribuir a congestionar la red enviando transacciones que no han recibido contestación.

67 Modelo de software cliente servidor

68 Modelo Cliente – Servidor en Internet


Descargar ppt "Programación de clientes"

Presentaciones similares


Anuncios Google