Programación de clientes

Slides:



Advertisements
Presentaciones similares
Arquitecturas de administración de redes y sus submodelos
Advertisements

Arquitectura Cliente Servidor
Hardware y Software de servidor
UNIX COMP 240.
LAN de computadores personales El objetivo de las LAN de computadores personales es el compartir recursos dentro de un entorno reducido, específicamente.
Noveno Semestre UNIDEC
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Aplicaciones Cliente-Servidor
Carlos Rojas Kramer Universidad Cristóbal Colón
ARQUITECTURA CLIENTE-SERVIDOR
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Estructura de un Sistema Operativo
Término que se le da al conjunto de equipos de cómputo que se encuentran conectados entre si por medio de dispositivos físicos que envían y reciben -
Introducción al software
HISTORIA Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
Tecnología Cliente Servidor
 Una red de computadoras es un conjunto de conexiones físicas y programas de protocolo, empleados para conectar dos o más computadoras.  Aunque hace.
MODELO TCP/IP Conectividad de extremo a extremo especificando como los datos deberian ser formateados,direccionados,transmitidos,enrutados y recibidos.
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
TIPOS DE SERVIDORES 4/2/2017 3:29 PM
Clasificación de SO por usuarios
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
CLASIFICACIÓN DEL SISTEMA OPERATIVO POR APLICACIÓN
Presentación Elaborada Por LENID SUAREZ POSADA CAMILO RAMIREZ CARDONA Presentado A Ing. Carlos E. Molina En Su Materia REDES II.
Arquitectura de una aplicación
DATA WAREHOUSE Equipo 9.
Programación I MC José Andrés Vázquez Flores
SISTEMAS OPERATIVOS →¿Qué es un sistema operativo?
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
EL SISTEMA OPERATIVO.
Desarrollo de aplicaciones para ambientes distribuidos
Características de un sistema operativo
Sistema operativo de red Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo.
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
SISTEMAS OPERATIVOS.
Servidores Conceptos Generales.
Ing. Cristhian Quezada Asenjo
INTRODUCCIÓN. Motivación “Procesamiento distribuido significa dividir una aplicación en tareas y poner cada tarea en la plataforma donde pueda ser manejada.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
RESUMEN CAPITULO 6.
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
COLEGIO DE CIENCIAS Y HUMANIDADES PLANTEL NAUCALPAN
SISTEMAS OPERATIVOS 1.4 CLASIFICACIÓN DE LOS S.O
Sistemas Distribuidos
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Servidor de la Base de Datos E.I. L.E. Prof. Ramón Castro Liceaga SEMINARIO.
TEMA 2 SISTEMAS OPERATIVOS Beatriz Prada.
1 Ana Mercedes Cáceres Instructor: Raúl Aguilar Año 2006 [Parte I ]
Modelo de 3 capas.
TEMA 2 SISTEMAS OPERATIVOS Beatriz Prada.
Protocolos del modelo TCP/IP
Ing. Elizabeth Guerrero V.
Sistemas Operativos De Red
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Ing. Elizabeth Guerrero V.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Tecnologías Cliente / Servidor
BASE DE DATOS DISTRIBUIDAS
Arquitectura Cliente Servidor
Servidores. ¿Qué es un servidor? Servidor de Aplicación Servidor de impresión Servidor de base de datos Servidor de correo Servidor de Internet Servidor.
DOCENTE: DAISY KATERINE RODRÍGUEZ DURÁN. CONTENIDO TEMÁTICO SISTEMAS OPERATIVOS PAQUETES INTEGRADOS DE OFICINA PROCESOS Y PROCEDIMIIENTOS DE UNIDAD ADMINISTRATIVA.
Instituto Tecnológico de puebla Materia Desarrollo de aplicaciones para ambientes distribuidos Catedrático Dr. José Bernardo Parra Alumnos Cesar Mauricio.
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
QUÉ ES UN SERVIDOR WEB?. Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones.
MODELO TCP/IP.
Conociendo el modelo Cliente-Servidor
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
HISTORIA DE LA COMPUTACION ALGORITMOS Y LENGUAJES DE PROGRAMACION CARRERA: ING. INDUSTRIAL.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Transcripción de la presentación:

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

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.

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

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

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

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

Un sistema aislado

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

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

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.

Evolución de la arquitectura Cliente - Servidor

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.

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

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.

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.

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.

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

¿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

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

Ejemplo

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

Aplicaciones cliente-servidor

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

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

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.

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.

Ejemplo del modelo C/S

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

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.

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

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.

Balance Thin y Fat Clients

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.

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

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.

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.

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.

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.

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

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.

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

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.

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

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.

Sistemas Operativos Características

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

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

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.

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

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.

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.

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

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.

Modelo de compartición de archivos

Modelo de arquitectura cliente-servidor

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.

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

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.

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”

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.

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.

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

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.

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

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

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.

Modelo de software cliente servidor

Modelo Cliente – Servidor en Internet