Está en la página 1de 32

Programación Avanzada

Programación Avanzada
Arquitectura C/S

Esp. Ing. César Aranda


unidatos@gmail.com

Licenciatura en Informática y Desarrollo de Software


v.2014

Infraestructura Informática
Dentro de las Organizaciones, se ha dividido
históricamente en dos tipos de arquitecturas, en
extremos opuestos:

 Arquitectura centralizada
 en la que existen un servidor central, en el que residen todos los
datos y tratamientos de los mismos.

 Arquitectura distribuida
 en la que la inteligencia está distribuida en diferentes máquinas y
los datos pueden estar centralizados en diferentes servidores.

Ing. César Omar Aranda - Lic. Enrique Ruiz 2

1
Programación Avanzada

Arquitectura Centralizada
 Nace en torno a una concepción tradicional de la
Organización, con estructura centralizada y jerárquica,
dividida en departamentos
 La Computadora Central es la única de la Organización.
 Ella contiene todos los datos y es la responsable de la
consolidación de la información. Gran base de datos.
 Desde la computadora central se controla el acceso a
múltiples terminales conectadas a través de productos
integrados en la arquitectura de red del proveedor.
 Las terminales funcionan como "esclavos" de la
computadora central.
 Cada usuario tiene una identificación asignada, y unos
derechos y prioridades de ejecución en la máquina de
sus programas o peticiones.
Ing. César Omar Aranda - Lic. Enrique Ruiz 3

Mainframes

Ing. César Omar Aranda - Lic. Enrique Ruiz 4

2
Programación Avanzada

Ventajas
 Alto rendimiento transaccional.

 Alta disponibilidad y nivel de seguridad.

 Entorno probado y personal experimentado.

 Control total del ordenador, al ser éste único y residente


en un único Centro de Proceso de Datos.

 Concentración de todo el personal de explotación y


administración del sistema en un único Centro de
Proceso de Datos.

Ing. César Omar Aranda - Lic. Enrique Ruiz 5

Inconvenientes
 Alto precio del ordenador, al requerirse mucha potencia
de tratamiento para dar servicio a todos los usuarios que
estén conectados y gran espacio en disco para albergar
todos los datos del organismo.

 Alta dependencia de las comunicaciones, si existen. En


caso de caída de una línea, todos los puestos de trabajo
dependientes de dicha línea quedan inoperantes.

 Interfaces de usuario generalmente poco amigables.

 Arquitecturas propietarias.

Ing. César Omar Aranda - Lic. Enrique Ruiz 6

3
Programación Avanzada

Arquitectura Distribuida
 Surge con los nuevos modelos organizativos, en los que
la empresa se divide en unidades más o menos
autónomas que establecen relaciones más definidas y
directas entre sí.
 Aparecen ambientes informáticos por departamento
adecuados a las necesidades de cada uno en concreto.
 Cada usuario trabaja con su terminal local “inteligente”,
con lo que obtiene mejores tiempo de respuesta.
 Los recursos necesarios que no estén disponibles sobre
el terminal local (computadora personal o estación de
trabajo) pueden tomarse de la computadora central a
través de la red de telecomunicaciones.
Ing. César Omar Aranda - Lic. Enrique Ruiz 7

Ventajas
 Funcionamiento autónomo de los sistemas locales, lo
que origina un buen tiempo de respuesta.

 Los sistemas de información llegan a todos los


departamentos de la empresa.

 Abre posibilidades de trabajo mucho más flexibles y


potentes

Ing. César Omar Aranda - Lic. Enrique Ruiz 8

4
Programación Avanzada

Inconvenientes
 Requiere un intenso flujo de información (muchas veces
no útiles, como pantallas y datos incorrectos) dentro de
la red, lo que puede elevar los costes de comunicación.

 Supone una mayor complejidad.

 Si los sistemas no están integrados, pueden producirse


problemas de inconsistencia de datos.

Ing. César Omar Aranda - Lic. Enrique Ruiz 9

¿ Qué motiva al modelo C/S ?


 Entornos cambiantes y competitivos.
 Exigencia de renovación de productos y servicios.
 Nuevas formas de negocios.
 Efecto de Globalización.
 Nuevas tecnologías habilitadoras.
 Integración de los sistemas de información.
 Agilidad en el tratamiento de información.
 Flexibilidad y usabilidad de las aplicaciones.
 Interoperabilidad entre los sistemas.

Ing. César Omar Aranda - Lic. Enrique Ruiz 10

5
Programación Avanzada

¿ Qué motiva al modelo C/S ? (2)


 Clientes con más expectativas.
 Interfaces en modo texto obsoletas.
 Menores tiempos y costos de desarrollo, instalación,
operación y mantenimiento.
 Sistemas de información, un activo más.
 Alineación de las TICs con los negocios.
 S.I. para la toma de decisiones.
 Proliferación de herramientas
 Disminución de costos. Mayores capacidades.
 S.I. no sólo para grandes empresas.

Ing. César Omar Aranda - Lic. Enrique Ruiz 11

Evolución

Ing. César Omar Aranda - Lic. Enrique Ruiz 12

6
Programación Avanzada

Arquitectura C/S: Definiciones


 Es un Modelo de sistemas de información, que se basa
en la idea de repartir el tratamiento de la información y
los datos por todo el sistema informático.
 Es una Arquitectura de Procesamiento Cooperativo
donde uno de los componentes (Cliente) pide servicios a
otro (Servidor), pudiendo encontrarse estos en la misma
o diferentes computadoras conectadas a una red.
 Según IBM: “Es la Tecnología que proporciona al
usuario final el acceso transparente a las aplicaciones,
datos, servicios de cómputo o cualquier otro recurso del
grupo de trabajo y/o, a través de la organización, en
múltiples plataformas. El modelo soporta un medio
ambiente distribuido en el cual los requerimientos de
servicio hechos por estaciones de trabajo inteligentes o
Clientes, resultan en un trabajo realizado por otros
computadores llamados Servidores".
Ing. César Omar Aranda - Lic. Enrique Ruiz 13

Arquitectura C/S

??

Ing. César Omar Aranda - Lic. Enrique Ruiz 14

7
Programación Avanzada

Componentes y Funciones Básicas


 Clientes
 Manejo de la interfaz de usuario.
 Captura y validación de los datos de entrada.
 Generación de consultas e informes sobre las bases de datos.
 Es quien inicia un requerimiento de servicio.
 Generalmente, la ubicación de los datos o de las aplicaciones es
totalmente transparente para el cliente.
 Servidores
 Gestión de periféricos compartidos.
 Control de accesos concurrentes a bases de datos compartidas.
 Enlaces de comunicaciones con otras redes de área local o extensa.
 Es cualquier recurso de cómputo dedicado a responder a los
requerimientos del cliente (prestar servicios)
 Infraestructura de comunicaciones
 Mecanismos básicos de direccionamiento y transporte 15
Ing. César Omar Aranda - Lic. Enrique Ruiz

Servidores según Servicio


 Servidor de Archivos
 Servidor de Impresión
 Servidor de Base de Datos
 Servidor de Transacciones
 Servidores de Aplicaciones
 Servidor de Objetos
 Servidor de Grupos de Trabajo
 Servidor Web
 Servidor de Correo
 Servidor de Licencias
 …

Ing. César Omar Aranda - Lic. Enrique Ruiz 16

8
Programación Avanzada

Ventajas
 El servidor presenta a todos sus clientes una interfaz
única y bien definida.
 El cliente no necesita conocer la lógica del servidor, sólo
su interfaz externa.
 El cliente no depende de la ubicación física del servidor,
ni del tipo de equipo físico en el que se encuentra, ni de
su sistema operativo.
 Cada plataforma puede ser escalable
independientemente.
 El Cliente y el Servidor pueden actuar como una sola
entidad o como entidades separadas, realizando
actividades o tareas independientes.

Ing. César Omar Aranda - Lic. Enrique Ruiz 17

C/S según la Distribución de Procesos

 Básicamente: C/S es una arquitectura de 2 capas


 Modelo de Servidor Obeso (o de Cliente Delgado)
 Más funciones o procesos en el servidor como un groupware,
manejo de transacciones o servidor web
 Modelo de Cliente Obeso
 Más funciones o procesos colocados en el cliente como en
servidores de datos o de archivos

¿Qué ocurre
cuando se tienen
Objetos
Distribuidos?

Ing. César Omar Aranda - Lic. Enrique Ruiz 18

9
Programación Avanzada

Cliente Obeso
 También llamado cliente pesado (fat, thick or rich)
 Se refiere a una aplicación gráfica de cliente que se
ejecuta en el sistema operativo del usuario,
generalmente con una interfaz gráfica sofisticada.
 Suele aparecer como una mezcla de lógica de
presentación con lógica de la aplicación y, en muchos
casos, gestión de datos.
 Generalmente instalada en la estación de trabajo y
sobre el sistema operativo del usuario.
 Ventajas: trabajo offline (según diseño), mayor potencia,
mejor velocidad de respuesta, mejor rendimiento
multimedio
 Desventajas: exige un esfuerzo de desarrollo adicional y
tener que reinstalar en cada nueva versión

Ing. César Omar Aranda - Lic. Enrique Ruiz 19

Cliente Delgado
 También llamado cliente liviano (thin, light)
 Se refiere a una aplicación accedida mediante una
interfaz Web (en HTML) sobre un navegador Web donde
toda la lógica de negocio se hace del lado del servidor.
 El navegador, a veces, se denomina cliente universal.
 El origen del término se debe a las prestaciones del
lenguaje usado. Con interfaces de relativamente poca
interactividad. Mejorado mediante lenguaje javascript.
 El procesamiento fundamental ocurre del lado servidor.
 El producto obtenido es muy flexible al momento de
realizar actualizaciones.
 Algunas desventajas: la aplicación debe observar las
diferencias entre navegadores a la hora de interpretar el
código HTML generado. La ergonomía es limitada.

Ing. César Omar Aranda - Lic. Enrique Ruiz 20

10
Programación Avanzada

Cliente Enriquecido
 Término medio entre cliente liviano y cliente pesado.
 Objetivo básico: proporcionar una interfaz gráfica
basada en un estándar, que brinde funcionalidades
similares a las del cliente pesado (arrastrar y soltar,
pestañas, ventanas múltiples, menús desplegables).
 Objetivo ampliado: hace uso de procesamiento del lado
servidor. Recibe e interpreta los datos enviados en un
formato de intercambio estándar.
 Estándares que definen una aplicación rica:
 XAML (Lenguaje Extensible de Marcado para Aplicaciones):
estándar XML de Microsoft, Utilizado en aplicaciones de
framework .NET
 XUL: estándar XML de Mozilla. Usado en el cliente Thunderbird
o en el navegador Firefox.
 Flex: estándar XML de Macromedia.
Ing. César Omar Aranda - Lic. Enrique Ruiz 21

Otros Clientes Delgados

 Cliente Ultra-Delgado
 También llamado Cliente zero
 No ejecuta un sistema operativo completo
 Un kernel inicializa el sistema, inicializa la red, realiza las
comunicaciones mediante protocolos de red y gestiona las
presentaciones enviadas desde el servidor.

 Cliente Delgado Web


 Ejecuta un Sistema Operativo Web, y opera sólo software
basado en Web.
 Requiere de un servidor Web donde conectarse (a los efectos de
hacer uso de las diferentes aplicaciones y al almacenamiento de
datos).
 Presenta un único punto de fallo: cuando es incapaz de
conectarse a Internet.
Ing. César Omar Aranda - Lic. Enrique Ruiz 22

11
Programación Avanzada

Tecnologías Disponibles

 Clientes Obesos  Protocolos en Clientes Delgados


 Delphi  Appliance Link Protocol
 Citrix ICA
 .NET Framework
 Remote Desktop Protocol (Microsoft)
 Java  Secure Shell (ssh), como reemplazo
 Visual Studio encriptado de telnet.
 ……  Computación de Red Virtual (VNC)
 X11 (o Sistema X-Window)
 XML, HTML, o JSON sobre HTTP (Ajax)
 Clientes Delgados  NFS
 HTML  …
 JavaScript/AJAX (automatización del lado cliente)

 ASP, JSP, PHP

 Ruby on Rails, Python's Django

 Flash, Flex, Silverlight

 …… 23
Ing. César Omar Aranda - Lic. Enrique Ruiz

Tendencia
Moverse desde:
 las arquitecturas mixtas (centralizada/distribuida)
existentes

Hacia:
 Arquitecturas distribuidas e integradas

 Fundamentalmente basadas en:

 Sistemas Cliente / Servidor

 Tecnología para Trabajo en Grupo.

 Mejora y extensión del Middleware

Ing. César Omar Aranda - Lic. Enrique Ruiz 24

12
Programación Avanzada

Middleware/ Entornos distribuidos


Aplicaciones
Lenguajes de programación
Middleware
Sistema operativo Sistema operativo
Hardware Hardware

Red de interconexión

 Servicios y protocolos estandarizados


 Ofrecen servicios no incluidos en el SO
 Como servicios de ficheros distribuidos o de nombres
 Facilitan el desarrollo de aplicaciones distribuidas.
 Independientes del HW y del SO subyacente.
 Conjunto de Canales y Plataformas bajo C/S
Ing. César Aranda 25

Arquitectura C/S: Middleware


De servicios específicos
Objetos
ODBC TxRCP ORB
Navegador Web
DSM
SNMP Tivoli CMIP Monitor TP
GUI / OOUI
NOS
Groupware
Direct. Segur. NFS

DSM RCP Mensaj P2P


DBMS

SO Pila de transporte
DSM
NetBIOS TCP/IP SNA
SO
Cliente
Middleware
DSM=Distributed System Management
Servidor
Ing. César Omar Aranda - Lic. Enrique Ruiz 26

13
Programación Avanzada

Evolución de los sistemas C/S

Ing. César Omar Aranda - Lic. Enrique Ruiz 27

Modelo Físico de 1 Nivel

Ing. César Omar Aranda - Lic. Enrique Ruiz 28

14
Programación Avanzada

Modelo Físico C/S de 2 Niveles

Ing. César Omar Aranda - Lic. Enrique Ruiz 29

Modelo Físico C/S de 3 Niveles

Ing. César Omar Aranda - Lic. Enrique Ruiz 30

15
Programación Avanzada

Modelo Físico C/S de 3 Niveles

Ing. César Omar Aranda - Lic. Enrique Ruiz 31

Modelo Físico C/S: n Niveles

Ing. César Omar Aranda - Lic. Enrique Ruiz 32

16
Programación Avanzada

Modelo Lógico C/S = Layers


 Layers
 Gestor de Presentación (presentation manager)
Muestra la interface de usuario.
 Lógica de Presentación (presentation logic)
Establece que se debe mostrar al usuario.
 Lógica de la Aplicación (appplication logic)
Funcionalidad de la aplicación.
 Lógica del Negocio (business logic)
Funcionalidad de la empresa, común para todas las aplicaciones.
 Lógica de los Datos (data logic)
Definición lógica de los datos (tablas, vistas, tipos de datos, claves,
etc.)
 Gestor de Datos (data manager)
Encargada de escribir y acceder a la base de datos.

Ing. César Omar Aranda - Lic. Enrique Ruiz 33

Capas Genéricas de una Aplicación

Ing. César Omar Aranda - Lic. Enrique Ruiz 34

17
Programación Avanzada

Distribución de Layers en 2 Tiers

Ing. César Omar Aranda - Lic. Enrique Ruiz 35

Estrategias Genéricas en 2 Tiers

Ing. César Omar Aranda - Lic. Enrique Ruiz 36

18
Programación Avanzada

Distribución de Layers en 3 Tiers

Ing. César Omar Aranda - Lic. Enrique Ruiz 37

Arquitectura C/S: Tendencias Actuales

 Modelo base:
 3 Niveles (tiers)
 n capas (layers)

 Basado en Objetos
 Clientes: Aplicaciones propias
 Lógica de Negocio y de Datos: Objetos distribuidos

 Basado en la WEB
 Clientes: Navegadores (browsers)
 Lógica de Negocio y de Datos: Generación dinámica de
contenidos en lenguaje HTML, XML, xHTML.

Ing. César Omar Aranda - Lic. Enrique Ruiz 38

19
Programación Avanzada

Plataformas Desarrollo
 Requerimientos:
 Heterogénea: Admitir múltiples plataformas, sistemas operativos y
lenguajes de desarrollo.
 Fiable: Dar la confianza de que cumplir su cometido.
 Segura: Controlar el acceso, la autorización y el transporte.
 Robusta: Debe ser tolerante a fallos.
 Escalable: Facilitar la ampliación y modificación.
 Alta disponibilidad: Debe ser fácil su adquisición, formación y
actualización.
 Fácil mantenimiento: Debe ser fácil mantener el sistema mediante
la actualización de sus componentes.

 Alternativas:
 CORBA (Common Object Request Broker Architecture )
 .NET (dot NET)
 Java Platform Enterprise Edition (Java EE)
Ing. César Omar Aranda - Lic. Enrique Ruiz 39

CORBA

Ing. César Omar Aranda - Lic. Enrique Ruiz 40

20
Programación Avanzada

.NET

Ing. César Omar Aranda - Lic. Enrique Ruiz 41

J2EE o JEE

Ing. César Omar Aranda - Lic. Enrique Ruiz 42

21
Programación Avanzada

¿ Qué es Java EE ?
 Java Platform, Enterprise Edition (antes J2EE, ahora Java
EE) es un estándar para el desarrollo de aplicaciones
empresariales (portables, robustas, escalables y seguras)
usando tecnologÌa Java.
 Java EE es una especificación, no un producto.
 Los productos que cumplen con la especificación son
realizados por terceras empresas u organizaciones.

 SUN libera en el Java EE:


 Especificaciones de cada tecnología incluida.
 Test de compatibilidad (Compatibility Test Suite)
 Implementación de referencia. Para desarrollo de aplicaciones,
pero de uso no libre. (Sun Java System Application Server
Platform Edition)
Ing. César Omar Aranda - Lic. Enrique Ruiz 43

Plataformas Java

Ing. César Omar Aranda - Lic. Enrique Ruiz 44

22
Programación Avanzada

Plataforma J2SE

Ing. César Omar Aranda - Lic. Enrique Ruiz 45

Tecnologías/Estándares Java
 Aplicaciones de escritorio
 Applet
 Servlets
 Midlets
 JSP (Java Server Pages)
 JDBC (Java DataBase Connectivity), JDO (Java Data Object)
 JPA (Java Persistence API)
 JTA (Java Transaction API)
 JMS (Java Message Service)
 JSF (Java Server Faces)
 JNDI (Java Naming and Directory Interface)
 Web Services (XML, UDDI, WSDL, …)
 Servidores/Contenedores
 …

Ing. César Omar Aranda - Lic. Enrique Ruiz 46

23
Programación Avanzada

Arquitectura Java de 4 Niveles

Ing. César Omar Aranda - Lic. Enrique Ruiz 47

Arquitectura JEE de 5 Capas

Ing. César Omar Aranda - Lic. Enrique Ruiz 48

24
Programación Avanzada

Elementos JEE en 5 Capas

Ing. César Omar Aranda - Lic. Enrique Ruiz 49

Comunicaciones con Java


 Java se ha construido con extensas capacidades de
interconexión TCP/IP. Existen librerías de rutinas para
acceder e interactuar con protocolos como http y ftp.
 Java en sí no es distribuido, pero proporciona las
librerías y herramientas para construir software
distribuido que permita la interacción.
 Soporta varios niveles de conectividad en red:
 Apertura de URL,
 RMI,
 Creación de "sockets“,
 Programar tanto aplicaciones cliente como servidor.

Ing. César Omar Aranda - Lic. Enrique Ruiz 50

25
Programación Avanzada

Estrategias de Interacción C/S


 Cliente / Servidor Simple

 Cliente /Múltiples Servidores (granja)

 Cliente / Servidor Proxy

 Clientes Peer to Peer

 Cliente con Objetos Distribuidos


Ing. César Omar Aranda - Lic. Enrique Ruiz 51

Modelo C/S General

Ing. César Omar Aranda - Lic. Enrique Ruiz 52

26
Programación Avanzada

Modelo C/Múltiples Servidores

Ing. César Omar Aranda - Lic. Enrique Ruiz 53

Modelo Cliente/Servidor-Proxy

Ing. César Omar Aranda - Lic. Enrique Ruiz 54

27
Programación Avanzada

Modelo de Clientes Peer-to-Peer

Ing. César Omar Aranda - Lic. Enrique Ruiz 55

Modelo de Objetos Distribuidos

Ing. César Omar Aranda - Lic. Enrique Ruiz 56

28
Programación Avanzada

Procesos Distribuidos
 Planificación de Procesos
 Modelo de Estaciones de Trabajo
 Pila de Procesadores
 Híbrido
 Sincronización de Procesos
 Ordenamiento de Eventos mediante Relojes Lógicos
 Exclusión Mutua: Centralizado / Paso de testigo / Distribuido
 Comunicación entre Procesos
 Modos (o patrones)
C/S
Radiado: por Multicast o Broadcast
 Mecanismos
Colas de mensajes (POSIX) / mailslots (WIN32)
RPC / RMI
Sockets
Ing. César Aranda 57

Paso de Mensajes

Ing. César Aranda 58

29
Programación Avanzada

Ejemplo de RPC

Ing. César Aranda 59

Ejemplo de RPC

Ing. César Aranda 60

30
Programación Avanzada

Ejemplo de Sockets

Ing. César Aranda 61

Puertos
 Un ordenador puede tener una o varias conexiones físicas a la red.
 Mediante esas conexiones recibe los datos dirigidos a la máquina.
 ¿Cómo determina a que aplicación enviar los datos? → Puertos.
 TCP y UDP utilizan los puertos para dirigir los datos a la aplicación
correcta de entre todas las que se estén ejecutando en la máquina.
 Los datos transmitidos a través de Internet contienen información de
direccionamiento que identifica a la máquina y puerto a los que van
dirigidos.
 La máquina se identifica a través de una dirección IP de 32 bits.
 Los puertos se identifican por un número de 16 bits.
 Puertos:
 Independientes para TCP y UDP.
 16 bits, es decir con Rango: 0 a 65535
 Reservados: 0 a 1023, para servicios conocidos: HTTP.FTP, ...

Ing. César Omar Aranda - Lic. Enrique Ruiz 62

31
Programación Avanzada

Sockets en Java
 Basado en clases disponibles en el package java.net
 ServerSocket
 Socket

 Pasos
 El servidor asigna un número de puerto. Cuando el cliente solicita una
conexión, el servidor abre un socket a través del método accept(),
 El cliente establece una conexión con el host en el puerto especificado,
 Tanto el cliente como el servidor se comunican a través de InputStream
y de OutputStream.
Ing. César Omar Aranda - Lic. Enrique Ruiz 63

Un Servidor Java

Ing. César Omar Aranda - Lic. Enrique Ruiz 64

32

También podría gustarte