Arquitecturas y tecnologías para el desarrollo web
by
jeananel
618 views
0 comments
0 likes
Center mind map
Collapse/Expand all nodes
Birdview
Toggle birdview
Full screen
Arquitecturas y tecnologías para el desarrollo web
Arquitectura Cliente - Servidor
El modelo cliente/servidor es un modelo de comunicación de computadores en el cual el computador
cliente solicita servicios al computador servidor por medio de mensajes.
La diferencia entre el cliente y
el servidor es que el cliente es el que inicia el contacto y el servidor es el que responde a dicha solicitud
de conexión.
Características
Servicio
Recursos compartidos
Protocolos asimétricos
Transparencia de ubicación
Mezcla e igualdad
Intercambio basado en mensajes
Encapsulamiento de servicios
Facilidad de Escalabilidad
Integridad
Ventajas
• Posibilidad de reducir costos de desarrollo.
• Mejores herramientas de desarrollo.
• Modificabilidad es compatible con buen diseño.
• Flexibilidad en el cliente.
• Permite un mejor control sobre permisos de acceso a información.
• Escalabilidad. Si la empresa cambia en lo que respecta al tamaño, alcance, requerimientos de
información, la escala de la arquitectura cliente/servidor puede ser cambiada.
• La tecnología disponible es tan variada que puede utilizarse la que mejor se adecue a la
realidad de la empresa.
• El software puede ser desarrollado desde varios lugares, lo que reduce el costo de desarrollo.
• Soporta los conceptos de comercio electrónico.
Desventajas
• Falta de profesionales calificados.
• Necesidad de reimplementación de software existente, ya que el software monolítico no suele
ser compatible con la arquitectura cliente/servidor.
• Necesidad de entrenamiento de usuarios, debido al cambio de las aplicaciones existentes.
Arquitectura en capas
El término arquitectura cliente/servidor es utilizado comúnmente para hablar de la arquitectura del
software. De igual forma, los términos arquitectura en 2 y 3 capas se aplican al mismo concepto.
Un primer acercamiento a la distribución de las responsabilidades de la aplicación en dos unidades
lógicas fue la arquitectura en 2 capas.
Arquitectura 2 capas
Un arquitectura en 2 capas distribuye la aplicación en dos componentes lógicos. Las responsabilidades
de cada componente hacen a las variantes de esta arquitectura
Desventajas
• La lógica de la aplicación no puede ser reusada ya que está ligada o a la interfaz de usuario o
al manejo de persistencia de datos.
• Las estaciones de trabajo pueden tener serias restricciones de recursos. Los desarrolladores
deben estar entrenados para optimizar la aplicación de forma que pueda ser utilizada en
dichos entornos.
• Incremento de la carga de la red: dado que el procesamiento de los datos se realiza en el
cliente, gran cantidad de información debe ser transmitida desde el servidor.
Arquitectura P + L/D
Una primer variante es retirar el manejo de datos de la aplicación. Esto permite a varios clientes
utilizar el mismo juego de datos. P+L es una unidad lógica por sí, donde el manejo de interfaz de
usuario y el manejo de la lógica no se los distingue como módulos independientes.
Arquitectura P/L + D
En este tipo de aplicaciones la lógica resuelve los problemas de persistencia encargándose ella misma de dicha
tarea, no necesariamente utilizando un manejador de base de datos, o embebiendo toda la lógica de
negocios en el mismo.
Arquitectura P + L/L + D
Una tercer variante es repartir la tarea de la lógica, una parte junto a la interfaz de usuario, y otro
junto al manejo de persistencia de datos.
Arquitectura en 3 capas
La arquitectura en 2 capas, con su variante P/L+D, dio lugar a la arquitectura en 3 capas. El hecho de
que la lógica de negocios y el manejo de persistencia sean una unidad presentaba desventajas
importantes: el manejador de base de datos resultaba pequeño y quería migrarse a otro, debía
actualizarse la versión, o se deseaba incorporar datos de nuevas fuentes.
Desventajas
• Separación clara de la interfaz de usuario de la lógica de la aplicación. Esta separación permite
tener diferentes presentaciones accediendo a la misma lógica
• La redefinición del almacenamiento de información no tiene influencia sobre la presentación
• En contraste con una arquitectura en 2 capas, donde solamente datos están accesibles al
público, los objetos de negocios pueden brindar servicios (lógica de la aplicación) por la red
Distribución de componentes lógicos
Optar por la utilización de ambos modelos en el desarrollo de una aplicación de software es
razonable, aunque debe realizarse consideraciones acerca de como distribuir los componentes lógicos
sobre los nodos físicos.
Tipos de distribuciones
Monolitica
La distribución básica no considera una arquitectura cliente/servidor. Refiere a una aplicación que
reside en un único nodo físico.
Lineal
La distribución lineal consiste en ubicar cada componente lógico en un nodo físico. La forma usual es
ubicar la capa de presentación en el nodo cliente, y ubicar la capa lógica y de datos en el nodo
servidor.
Componente distribuido
Un caso especial de distribución es cuando se ubica un componente en más de un nodo físico.Esta distribución no aparece en forma natural. Dado que el problema se resuelve fácilmente con una
distribución lineal, sin mayor esfuerzo de desarrollo, por qué considerar el caso donde es necesario
distribuir uno de los componentes
Orientada a la Web
La particularidad de este caso es la utilización de tecnología web en la capa de presentación. Se
distribuye el componente en dos subcomponentes, uno reside en el cliente, y el otro en el servidor.
Modelos tecnológicos
Actualmente existe un amplio abanico de tecnologías para el desarrollo de aplicaciones con esta
arquitectura. Algunas tecnologías presentan características comunes entre sí. Esto motiva una
categorización de las tecnologías según su modelo de funcionamiento.
Tipos de modelos
Clásico
Este modelo consiste en dos aplicaciones, donde una reside en el cliente y la otra en el servidor.
El primer enfoque, la aplicación en el cliente es responsable de la interfaz de usuario, mientras que la
aplicación en el servidor brinda acceso a la lógica de negocios.
Un segundo enfoque es distribuir el componente de la lógica, poniendo parte del mismo en la
aplicación en el cliente y parte en la aplicación en el servidor.
En este modelo las aplicaciones son aplicaciones tradicionales desarrolladas en lenguajes de
programación tradicionales como C++, Java, Visual Basic, entre otros.
De componentes gráficos
Este modelo consiste de una aplicación conocida como cliente universal (web browser), que reside en
el cliente, un servidor web y una aplicación que residen en el servidor.
Funcionamiento: El cliente solicita una página del servidor web. La misma contiene un componente que será
ejecutado en el cliente. Este componente despliega la información al usuario y recoge información del
mismo. Ésta es enviada al servidor ya sea por sockets o ORB. La aplicación en el servidor procesa la
información y envía su respuesta. Esta es procesada por el componente, el cual puede realizar otra
solicitud al servidor web o a un servicio de la aplicación en el servidor
Tanto el web server como el web browser son dependientes de la plataforma. Sin embargo, existen
distribuciones gratuitas de ambos prácticamente para cualquier plataforma.
De contenido dinámico
Este modelo consiste en una aplicación conocida como cliente universal (web browser), que reside en
el cliente, un servidor web que reside en el servidor.
Funcionamiento: El cliente solicita una página del servidor web. El servidor web recibe esta solicitud, y envía la
página con un formulario (HTML Form) embebido al cliente. El browser presenta la página y el
formulario, recoge del usuario la información y la envía al servidor web, quien la recibe. El servidor
web reenvía la información al servidor de lógica quien la procesa y devuelve los resultados. El
servidor web genera una página dinámicamente con la información recibida y se la envía al cliente,
quien la presenta al usuario.
A nivel de cliente no hay tecnologías especiales a utilizar. Las virtudes de los web browser actuales
son suficientes para este modelo, ya que su única función es interpretar HTML.
Tecnologías aplicables
Se discute diferentes tipos de middleware, se describen los lenguajes de programación más utilizados para el desarrollo de aplicaciones
cliente/servidor y en capas. Se analiza dos tipos de componentes gráficos como son los controles ActiveX y los Applets. Por último se trata el lenguaje HTML como medio de presentación de
información estática y sus formularios, y las tecnologías de generación dinámica de información como ser CGI Script, Servlets, JSP y ASP.