Anda di halaman 1dari 30

Divisin de Estudios Profesionales EPE

Ingeniera de Sistemas

Desarrollo para Entorno Web


Unidad 1: Introduccin a las
aplicaciones Web

Logro
Al finalizar la unidad el alumno identifica las
ventajas de la arquitectura Web y discute
las tecnologas vigentes
sobre
esta
plataforma a travs de ejemplos.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25/08/2014

Temario
Caractersticas de las aplicaciones Web
Protocolo HTTP (peticin/respuesta)
Comparacin de tecnologas Web

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25/08/2014

Introduccin
En la ingeniera de software se denomina aplicacin Web a
aquellas aplicaciones que los usuarios pueden utilizar
accediendo a un servidor Web a travs de Internet o de una
intranet mediante un navegador.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25/08/2014

Divisin de Estudios Profesionales EPE


Ingeniera de Sistemas

Caractersticas de las
aplicaciones Web

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

5
25/08/2014

Paradigma Cliente/Servidor
El Paradigma Cliente/Servidor es un patrn arquitectnico
para el desarrollo de sistemas distribuidos.
Distribuye una aplicacin entre 2 o ms componentes
especializados cuya ejecucin se distribuye entre 1 o ms
equipos.
Define un modelo de interaccin basado en el concepto de
servicio implementado sobre un dilogo peticin-respuesta.
Cliente inicia el dilogo mediante el envo de
peticiones.
Servidor presta el servicio en que se sincronizan los
procesos.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25/08/2014

Paradigma Cliente/Servidor

El Paradigma Cliente/Servidor especifica el modo en que se


sincronizan los procesos:
Cliente (Parte activa)
Demanda servicios a los servidores.
Se asume que cada peticin deber obtener respuesta.
Diseado para soportar la interaccin con el usuario final.
Servidor (Parte pasiva)
Espera las peticiones de los clientes.
Procesa esas peticiones y enva una respuesta.
Diseo orientado a maximizar la eficiencia.
Posibilidad de aplicar el patrn cliente servidor en mltiples
niveles de abstraccin dentro de un mismo sistema distribuido
(arquitecturas multinivel [n-tier] )
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25/08/2014

Componentes de los Sistemas Cliente / Servidor

Caractersticas de los clientes


Componente del sistema que interacta con el usuario.
No comparte sus recursos con otros clientes.
No suelen tener restricciones especiales respecto a
rendimiento, fiabilidad y escalabilidad.
No suele requerir equipos de altas prestaciones.
Fallo de un cliente no afecta el resto.
Debe dar soporte a restricciones relativas a ergonoma
(facilidad de uso) y seguridad (evitar comprometer los
dems componentes).

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25/08/2014

Componentes de los Sistemas Cliente / Servidor

Caractersticas de los servidores:


Componente del sistema que presta servicios a los clientes.
Gestiona y comparte sus recursos con los clientes y a los
que sirve.
Suele
tener restricciones especiales respecto al
rendimiento, fiabilidad, escalabilidad y seguridad.
Capacidad suficiente para atender mltiples clientes.
Fallos en el servidor son crticos e invalidan el sistema.
El nmero de clientes (peticiones) puede ser muy variable y
aumentar si as se requiere.
Evitar comprometer la seguridad de los recursos o datos
gestionados y de los clientes.
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25/08/2014

Modelos y tipologas

Esquema abstracto de aplicaciones distribuidas genricas


(capas). Se corresponden con las funciones tpicas de un sistema.
Capa de presentacin (interfaz de usuario)
Interacciona con el usuario, presenta los datos y recibe las
entradas.
Capa de aplicacin/negocio (lgica de aplicacin)
Responsable de las tareas propias de la aplicacin concreta.
Implementa la lgica de la aplicacin y aplica las reglas de
negocio sobre los datos y las entradas de usuario.
Capa de persistencia (almacenamiento y acceso a datos)
Responsable de la gestin y almacenamiento permanente de
los datos.
Cada tipo de sistema cliente-servidor distribuye esas capas de
modo distinto entre los componentes cliente y servidor.
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

10

25/08/2014

Cliente Ligeros versus Pesados

Cliente ligero (thin client)


No implementa ningn aspecto de la lgica de aplicacin.
Simplemente acta como intermediario entre usuario y servidor.
Recoge entradas (opcionalmente las valida) y las enva al
servidor.
Presenta datos y resultados del servidor.
Presenta requisitos mnimos respecto a recursos de hardware.
Aumenta
la complejidad del servidor (tendr mayores
responsabilidades)
Ejemplo: clientes basados en navegadores Web:
Capa de presentacin repartida entre servidor (genera HTML
en demanda) y cliente (navegador lo presenta).

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

11

25/08/2014

Cliente Ligeros versus Pesados

Cliente pesado (fat client)


Implementa mayor parte de la lgica de aplicacin.
Realiza procesamiento sobre datos de usuario antes de
comunicar con el servidor.
Requiere
equipos con capacidad de proceso y/o
almacenamiento de datos.
Servidor sencillo (responsabilidades mnimas, gestin de
datos)
Ejemplo: aplicacin cliente contra servidor de base de
datos.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

12

25/08/2014

Arquitecturas 2-tier, 3-tier, n-tier


Clasificacin en funcin de la ubicacin fsica de las distintas
funcionalidades.
Modelo tradicional: 2-tier (cliente-servidor en 2 niveles)
Un nico servidor atiende a mltiples clientes.
Problemas:
Escasa escalabilidad en servidores con lgica de negocios
compleja o con grandes bases de datos (difcil replicacin)
Rigidez: modificaciones en la lgica de aplicacin suponen
grandes cambios en la totalidad de los clientes.
Difcil evolucin del servidor.
Limitacin principal: alto acoplamiento/dependencia del cliente
respecto del servidor.
Clientes ligeros, pesados o hbridos.
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

13

25/08/2014

Arquitecturas 2-tier, 3-tier, n-tier

Modelo 3-tier (cliente servidor en 3 niveles)


Extensin del modelo tradicional que pretende aumentar el
desacoplamiento entre servidor y clientes.
Introduce un nivel intermedio (separa servidor en 2
componentes)
Cliente dedicado casi exclusivamente a interfaz de
usuario.
Servidor de datos comparte con servidor del nivel
intermedio la lgica de la aplicacin.
El reparto preciso depende del modelo concreto seguido.
Clientes ligeros o hbridos.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

14

25/08/2014

Arquitecturas 2-tier, 3-tier, n-tier

Modelos n-tier o multi-tier (cliente servidor en n niveles)


Generalizacin del modelo 3-tier (aade nuevas capas)
La lgica de aplicacin se reparte en diferentes capas/niveles
ubicadas entre el cliente y los datos.
Las capas intermedias se proporcionan servicios entre si.
Cada nivel se comunica slo con los niveles contiguos a
travs de interfaces bien definidos.
Capa K ofrece servicios a la capa K-1 y demanda servicios
de capa K + 1.
Estructura tpica en sistemas basados en componentes
distribuidos (objetos distribuidos).
Clientes ligeros o hbridos.
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

15

25/08/2014

Arquitecturas 2-tier, 3-tier, n-tier

Beneficios de las arquitecturas multinivel

Elementos crticos de la lgica de negocio ubicados en el nivel medio.


Ms cercanos a la capa de datos: eficiencia de acceso
Slo los datos realmente necesarios acaban llegando al cliente.
Mayor flexibilidad y modularidad.
Escalabilidad: facilita aadir recursos para soportar mayor nmero de
clientes.
Extensibilidad: facilidad para propagar autenticacin y permisos a
travs de las distintas capas.
Seguridad: facilidad para propagar autenticacin y permisos a travs
de las distintas capas.
Facilidades de desarrollo y administracin:
Reusabilidad de componentes
Aislamiento frente a cambios en otras capas
Independencia frente a cambios en base de datos
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

16

25/08/2014

Arquitecturas 2-tier, 3-tier, n-tier

Desventajas de las arquitecturas multinivel


Complejidad: mayor nmero de elementos hardware y
software a definir, gestionar y mantener:
Interacciones complejas entre componentes
Dificultad para detectar, aislar y corregir fallos.
Costo de comunicaciones: mayor latencia y consumo de
ancho de banda (atravesar capas distribuidas por la red)
Costo de mantenimiento: al crecer las capas aumenta el
coste y la dificultad de instalacin y mantenimiento.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

17

25/08/2014

Ventajas de la arquitectura Web

Actualizacin automtica
Segn el paradigma cliente/servidor, la lgica de la aplicacin
se encuentra centralizada. Los clientes son ligeros.
Multiplataforma
Diferentes arquitecturas de hardware
Diferentes sistemas operativos
Diferentes navegadores Web
Portable
Tecnologas como Java permiten crear aplicaciones Web
portables.
Clientes ligeros slo necesitan soportar el estndar HTML.
Alta disponibilidad
Servidores Web replicados en la misma y/o diferentes
ubicaciones
geogrficas.
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional
18
25/08/2014

Desventajas de la arquitectura Web


Menos funcionalidades que aplicaciones Desktop (de
escritorio)
Tradicionalmente, los navegadores Web presentan
funciones limitadas.
Tendencia de nuevas formas de crear aplicaciones Web con
Ajax, RIA, entre otros.
Requiere conexin a Internet, al menos que sea una
sistema intranet.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

19

25/08/2014

Divisin de Estudios Profesionales EPE


Ingeniera de Sistemas

Protocolo HTTP

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

20
25/08/2014

Hypertext Transfer Protocol


El Hypertext Transfer Protocol es un protocolo sin estado
basado en peticin respuesta.
Es el protocolo usado en cada transaccin de la Web
(WWW).
HTTP fue desarrollado por el consorcio W3C y la IETF,
colaboracin que culmin en 1999 con la publicacin de una
serie de RFC.
Un cliente enva una peticin HTTP para obtener un recurso
y el servidor le devuelve una respuesta HTTP con el recurso
deseado, como se muestra a continuacin en el grfico.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

21

25/08/2014

Hypertext Transfer Protocol


Las aplicaciones para entorno Web tienen una caracterstica
particular debido al protocolo de comunicaciones HTTP.
Este protocolo HTTP no mantiene el estado de las
comunicaciones, esto quiere decir que cada peticin que
realice un cliente (navegador Web) al servidor (servidor
Web) es como si fuese la primera vez que accede. Por ello,
se necesita usar tcnicas para identificar cuando un cliente
ya accedi e ingres al sistema, as como tambin se
necesita medios de almacenamiento para los datos del
cliente.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

22

25/08/2014

Hypertext Transfer Protocol

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

23

25/08/2014

Divisin de Estudios Profesionales EPE


Ingeniera de Sistemas

Comparacin de
tecnologas Web

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

24
25/08/2014

C#
C# es un lenguaje de programacin orientado a objetos
desarrollado y estandarizado por Microsoft como parte de su
plataforma NET.
ASP.NET es un framework para aplicaciones web
desarrollado y comercializado por Microsoft. Es usado por
programadores y diseadores para construir sitios web
dinmicos, aplicaciones web y servicios web XML.
ASP.NET MVC Framework es un framework de
aplicaciones web que implementa el patrn modelo-vistacontrolador (MVC). Basado en ASP.NET, permite a los
desarrolladores de software construir una aplicacin web
como una composicin de tres funciones: Modelo, Vista y
Controlador.
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

25

25/08/2014

Java
Es un lenguaje orientado a objetos, de una plataforma
independiente.
Maneja tres plataformas de desarrollo: JavaSE, JavaEE y
JavaME.
Servlet API es la librera que permite implementar
aplicaciones Web con Java. Esta librera comprende:
Servlets, JSP, JSTL, EL, entre otras.
Existen diversos framework para aplicaciones Web con
Java. Entre estos tenemos Spring y JSF.
Existen diversos servidores de aplicaciones para Java
como: WebLogic, WebSphere, JBoss, entre otros. Tambin
existen contenedores
UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

26

25/08/2014

PHP
PHP es un lenguaje de programacin interpretado, diseado
originalmente para la creacin de pginas web dinmicas.
PHP es un lenguaje muy popular debido a sus
caractersticas:
Fcil de aprender
Libre de uso
Instala en el servidor Web Apache y tiene un mdulo muy eficaz con
la base de datos MySQL, haciendo la combinacin preferida para
muchos servidores de Internet.
Centenares de funciones preestablecidas.
Diversos frameworks de programacin como Yii, CodeIgniter, Cake,
Zend, entre otros.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

27

25/08/2014

Ruby
Ruby es un lenguaje de programacin interpretado, reflexivo
y orientado a objetos.
Un lenguaje de programacin dinmico y de cdigo abierto
enfocado en la simplicidad y productividad. Su elegante
sintaxis se siente natural al leerla y fcil al escribirla.
Presenta el framework Ruby on Rails para el desarrollo de
aplicaciones Web.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

28

25/08/2014

Python
Python es un lenguaje de programacin interpretado cuya
filosofa hace hincapi en una sintaxis que favorezca un
cdigo legible.
Se trata de un lenguaje de programacin multiparadigma, ya
que soporta orientacin a objetos, programacin imperativa
y, en menor medida, programacin funcional. Es un
lenguaje interpretado, usa tipado dinmico y es
multiplataforma.

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

29

25/08/2014

Bibliografa

Hall Marty, Brown Larry


(2004). Core Servlets and
JavaServer Pages.
Hanumant Deshmukh, Jignesh Malavia y Jacquelyn Carter
(2005). SCWCD Exam Study Kit - Manning.
Sistemas cliente-servidor y procesos cooperativos
Universidad de Vigo
http://blog.buhoos.com/lenguajes-de-programacion-cuadrocomparativo/

UPC - EPE - Ingeniera de Sistemas - Programa de Actualizacin Profesional

30

25/08/2014

Anda mungkin juga menyukai