SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Tema 1: Arquitectura de
aplicaciones web
1.Aplicaciones web frente a aplicaciones de
escritorio
Las aplicaciones web, son programas que se diseñan para funcionar a través
de un navegador de internet, es decir, son aplicaciones que se ejecutan de
forma online.
Desde el punto de vista de de la arquitectura se distinguen dos lados: uno
es el cliente en donde se encuentra el usuario final utilizando la aplicación
a través de un navegador. Es aquí donde el usuario interactúa con la
aplicación localizada en el servidor en donde residen realmente los datos,
reglas y lógica de la aplicación.
¿Que diferencia existe entre una aplicación de escritorio (offline) y
una aplicación web(online)?
Una aplicación offline se ejecuta en el cliente, es decir en el PC del usuario
final. Para iniciarla y hacerla funcionar requiere estar presente delante del
ordenador que tiene instalada dicha aplicación.
Ventajas: su ejecución no requiere habitualmente de
comunicaciones con el exterior, sino que se realiza de forma local.
Esto repercute en mayor velocidad de procesamiento, y por tanto
en mayores capacidades a la hora de programar herramientas más
complicadas o funcionales.
Desventajas:
 Su acceso se limita al PC donde se instalan.
 Son dependientes del sistema operativo que utilice tu
ordenador y sus capacidades (video, memoria, etc).
 Duplicidad de datos por la falta de unificación de los mismos.
 Diseminación de la información y lógica en muchas partes (cada
computador que la use).
 Falta de portabilidad de la aplicación a diferentes sistemas operativos
 Traumas a la hora de realizar actualizaciones o correcciones al
programa ya que las instalaciones están diseminadas.
 La administración de la seguridad, controlando el acceso a los
usuarios a información no relevante o privada es muy complicada.
 Dificultad para configurar cada una de las instalaciones
dependiendo de las necesidades de cada usuario.
Una aplicación online por el contrario reside en un servidor, y su ejecución
requiere disponer de un dispositivo (ordenador, móvil, tablet…) con conexión a
internet (o a una intranet donde se encuentre el servidor de la aplicación que
queramos usar), un navegador (IE, Firefox, Opera, Chrome, etc) y por supuesto
que la aplicación esté funcionando en el servidor que la aloja. Un ejemplo
simple sería un blog, donde usuarios presentan y actualizan información de
forma remota a través de unos administradores o paneles de control web, y
otros usuarios acceden a ella a través de una interfaz web: la aplicación reside
en los servidores de WordPress o Blogspot y, nosotros sólo accedemos a ella a
través de un navegador.
 Ventajas: proporcionan movilidad, dado que puedes ejecutarlas
desde cualquier ordenador con conexión a internet. La
información que manejan se accede a través de internet, motivo
por el cual son especialmente interesantes para desarrollar
aplicaciones multiusuario basadas en la compartición de
información. El cliente o usuario que utiliza la aplicación no
necesita tener un ordenador de grandes prestaciones para
trabajar con ella.
 Desventajas: la comunicación constante con el servidor que ejecuta
la aplicación establece una dependencia con una buena conexión
a internet. Además, el servidor debe tener las prestaciones
necesarias para ejecutar la aplicación de manera fluida, no sólo
para un usuario sino para todos los que la utilicen de forma
concurrente.
1¿Por qué este concepto ha tomado tanta relevancia?
El auge de las redes locales (empresariales, institucionales o caseras) y la
popularidad de Internet ofreciendo la oportunidad de acceso a través de
ordenadores y otros dispositivos móviles. Internet ha elevado y extendido aun
más el concepto de aplicación Web para servir no sólo a usuarios de una
pequeña red, sino ubicados en cualquier sitio donde tenga acceso a Internet.
El éxito de Internet está absolutamente ligado a la web. Tanto que hoy en día
para la inmensa mayoría de las personas es indistinguible qué es la web y
qué es Internet. Todo se hace en la web. Es decir, desde la web es posible
realizar la mayoría de tareas que un usuario desea de Internet, aunque esto
no ha sido así siempre. Inicialmente Internet no tenía web. Tenía servicios
como el correo electrónico, la transmisión de ficheros, los grupos de noticias,
…
Así para leer el correo electrónico hacía falta un cliente de correo, la
transmisión de ficheros se realizaba mediante un cliente FTP, los foros de
debate se leían a través de gestores de news, para el chat hacía falta también
un programa especial,
Todavía se puede utilizar hoy en día de esta forma Internet. Pero lo cierto es
que la mayoría de las personas utilizan todas las posibilidades de internet
sólo a través de un único servicio: la web.
Y esto es debido básicamente a su facilidad de uso y a que sólo se necesita un
navegador y una conexión a Internet para poder a usarlo.
Inicialmente las páginas web estaban compuestas sólo de texto y enlaces (a
otras páginas), pero cada vez se han ido ofreciendo más servicios, hasta el
punto que hoy se puede realizar cualquier cosa a través de la web, retoque
fotográfico, conversión de documentos… , provocando la complicación de las
páginas y el aumento de las necesidades de los servidores y los navegadores.
2.Evolución de la web 2.0, 3.0,4.0
La web es un “organismo vivo” y, como tal, evoluciona. Desde su creación el
año 1966, con esa primera red Arpanet, hasta el posterior nacimiento del
Internet que conocemos, no ha dejado de cambiar y perfeccionarse. Hemos
pasado de una web 1.0 a la 2.0, 3.0 y ahora llega la web 4.0. Pero, ¿cómo
hemos llegado hasta aquí?
Buscando información en Internet he llegado a diseñar la evolución de la web:
✔ La web 1.0, fue la primera (apareció hacia 1990) y en ella solo se podía
consumir contenido. Se trataba de información a la que se podía acceder, pero
sin posibilidad de interactuar; era unidireccional.
✔ La web 2.0, (apareció en 2004) y contiene los foros, los blogs, los
comentarios y después las redes sociales. La web 2.0 permite compartir
información. Y aquí estamos, de momento la mayor parte de los consumidores.
El término web 2.0 fue acuñado por O’Reilly en 2004 para referirse a una
segunda generación de tecnología web basada en comunidades de usuarios y
una gama especial de servicios, como las redes sociales, los blogs, los wikis, los
chat, foros, álbumes de fotografía, presentaciones en red, etc., que fomentan la
colaboración y el intercambio ágil de información entre los usuarios de una
comunidad o red social. La web 2 posibilita la conexión de personas con
personas –redes sociales, wikis, colaboración, con posibilidad de compartir--.
Para que todo lo indicado hasta aquí sea técnicamente posible estas
aplicaciones utilizan un gestor de contenidos, (CMS), que permite la creación y
administración de contenidos en páginas web. Consiste en una interfaz que
controla una o varias bases de datos donde se aloja el contenido de la web.
✔ La web 3.0 (fue operativa en el 2010) y se asocia a la web semántica, un
concepto que se refiere al uso de un lenguaje en la red. Por ejemplo, la
búsqueda de contenidos utilizando palabras clave.
Es inter-operativa y el usuario tiene el control para hacer los cambios que desee
modificando directamente las bases de datos. La web semántica incluye meta-
datos semánticos u ontológicos (que describen los contenidos y las relaciones
entre los datos) para que puedan ser rastreados por sistemas de procesamiento.
Mientras la web 2.0 está gestionada por el propio usuario humano, la web 3.0
está gestionada en la nube y ejecutada desde cualquier dispositivo con una alto
grado de complejidad y personalización; constituye un nuevo tipo de web en la
que se añade contenido semántico a los documentos que la forman y ello
conlleva que la ejecución de la misma sea realizada por máquinas que,
basándose en nuestros perfiles en la red, descubren información relevante para
nosotros.
La web 3.0 está muy asociada al concepto de personalización. Ofrece un flujo de
información y de contenidos adaptados a nuestros gustos y preferencias. ¿De
dónde sacarán los motores de gestión de datos, información sobre nuestros
gustos? De nuestra actividad en la red que, como sabemos, deja un importante
rastro a modo de fotos, opiniones, tendencia de búsqueda, viajes, etc.
✔ La web 4.0. empezó en el 2016 y se centra en ofrecer un comportamiento
más inteligente y más predictivo, de modo que podamos, con sólo realizar una
afirmación o una llamada, poner en marcha un conjunto de acciones que
tendrán como resultando aquello que pedimos, deseamos o decimos.
3.Arquitectura cliente-servidor. Elementos.
En el mundo TCP/IP las comunicaciones entre ordenadores se rigen
básicamente por lo que se llama modelo Cliente-Servidor, éste es un
modelo que intenta proveer usabilidad, flexibilidad, interoperabilidad y
escalabilidad en las comunicaciones.
El término Cliente-Servidor fue usado por primera vez en ͕͝͝͝ para referirse a PC’s
en red. Este modelo Cliente-Servidor empezó a ser aceptado a finales de
los ’s.
͝͝ Su funcionamiento es sencillo: se tiene una máquina cliente, que requiere
un servicio de una máquina servidor, y éste realiza la función para la que está
programado (nótese que no tienen que tratarse de máquinas diferentes; es
decir, un ordenador puede ser a la vez cliente y servidor).
El Modelo Cliente-Servidor
Desde el punto de vista funcional, se puede definir la computación
Cliente/Servidor como una arquitectura distribuida que permite a los
usuarios finales obtener acceso a la información en forma transparente aún en
entornos multiplataforma.En el modelo cliente-servidor, el cliente envía un
mensaje solicitando un determinado servicio a un servidor (hace una
petición), y este envía uno o varios mensajes con la respuesta (provee el
servicio).
Ejemplos :
Servidor Cliente
Servidor Web (apache, IIS) Explorer, Firefox
SFTP, Filezilla Server CuteFTP, Filezilla Client, Thunderbird
Servidor de Base de datos
(Oracle, MySQL, Informix,
Postgress)
MySQL Query Browser, PHPMyAdmin,
Toad..
Cliente
El cliente es el proceso que permite al usuario formular los requerimientos y
pasarlos al servidor, se le conoce con el término front-end.
El Cliente normalmente maneja todas las funciones relacionadas con la
manipulación y despliegue de datos, por lo que están desarrollados sobre
plataformas que permiten construir interfaces gráficas de usuario (GUI),
además de acceder a los servicios distribuidos en cualquier parte de una red.
Las funciones que lleva a cabo el proceso cliente se resumen en los
siguientes puntos:
• Administrar la interfaz de usuario.
• Interactuar con el usuario.
• Generar requerimientos de bases de datos.
• Recibir resultados del servidor.
• Formatear resultados.
Servidor
Es el proceso encargado de atender a múltiples clientes que hacen peticiones de
algún recurso administrado por él. Al proceso servidor se le conoce con el
término back-end.
El servidor normalmente maneja todas las funciones relacionadas con la
mayoría de las reglas del negocio y los recursos de datos.
Las funciones que lleva a cabo el proceso servidor se resumen en los
siguientes puntos:
• Aceptar los requerimientos de bases de datos que hacen los clientes.
• Procesar requerimientos de bases de datos.
• Formatear datos para trasmitirlos a los clientes.
• Procesar la lógica de la aplicación y realizar validaciones a nivel de bases
de datos.
A esta arquitectura cliente/servidor que tiene dos tipos de nodos en la
red: (clientes y servidores) se le llama arquitectura de dos niveles o
dos capas.
Arquitectura de tres capas
Algunas redes disponen de tres tipos de nodos:
 Clientes que interactúan con los usuarios finales.
 Servidores de aplicación que procesan los datos para los
clientes.
 Servidores de la base de datos que almacenan los
datos para los servidores de aplicación.
Características:
Los clientes piden o envían información a una aplicación centralizada, no
al gestor de base de datos en el servidor.
Esta aplicación centralizada que conforma una nueva capa dentro
de un sistema Cliente-Servidor, se conoce como capa intermedia o
middle-tier.
Las diferentes capas suelen ser:
 Capa 1 : La capa de presentación. El servidor web recibe las
peticiones http y devuelve la respuesta adecuada en formato
entendible por los navegadores, que serán capaces de
traducir el llamado código del lado del cliente (HTML,
JavaScript, CSS, Flash,…)
 Capa 2 : La capa lógica. Es la capa que representa al servidor
de aplicaciones. El servidor de aplicaciones es invocado por el
servidor web cuando le llega una petición a un recurso que
debe de ser tratado en el lado del servidor, como es un página
PHP.
En esta capa lo que llegan son documentos escritos en un lenguaje
que se debe de interpretar en el lado del servidor y cuyo resultado se
enviará al servidor web para que este lo envíe al cliente que hizo la
petición.
Ej: Servidor Apache traduce el código en el lado del servidor (JSP,
PHP, Ruby onRails, Cold Fussion…) y lo convierte a un formato
entendible por el navegador
 Capa 3 : La capa de negocio. Es la que contiene la información
empresarial que debe de estar absolutamente protegida de
los usuarios. En esta capa fundamentalmente se encuentra el
sistema gestor de bases de datos (SGBD) de la empresa,
además de otros servidores que proporcionen otros recursos
empresariales (como servidores de vídeo, audio, certificados,
…). Los servidores de esta capa son invocados por los
servidores de aplicaciones cuando requieran estos recursos y
con la información que reciben pueden realizar su labor de
manera correcta.
Ej: Base de datos, servidor SMTP…
Ventajas
 Los componentes están centralizados lo que posibilita su
fácil desarrollo, mantenimiento y uso.
 Los componentes de la aplicación pueden estar esparcidos
en múltiples servidores permitiendo una mayor escalabilidad.
 Los problemas de limitación para las conexiones a las bases
de datos se minimizan ya que la base de datos sólo es vista
desde la capa intermedia y no desde todos los clientes.
Además de que las conexiones y los drivers de las bases de
datos no tienen que estar en los clientes.
 Especialización de la arquitectura cliente-servidor donde la
carga se divide en tres partes (o capas) con un reparto
claro de funciones: una capa para la presentación (interfaz
de usuario), otra para el cálculo (donde se encuentra
modelado el negocio) y otra para el almacenamiento (acceso
a datos). Una capa solamente tiene relación con la siguiente.
Sin embargo, en la actualidad, está muy extendida la construcción de
aplicaciones basadas en la arquitectura MVC (Modelo-Vista-Controlador).
En el caso de la arquitectura MVC, la capa lógica se encuentra dividida en tres
partes:
 el modelo especifica la forma de manipular los datos por
parte de la aplicación. Es decir especifica cómo son los
datos (qué tipo tienen) y la forma de manipularles. Este
modelado de datos enlaza con la lógica de negocio, es decir
con la forma en la que los datos se almacenan en la capa de
negocio (en la base de datos en definitiva). Interacciona con
la capa de negocio y devuelve al controlador lo que éste le
solicita.
 el controlador con la lógica de la aplicación, hace las
peticiones necesarias al modelo y las devuelve a la vista.
 la vista que presenta al usuario los datos del modelo. Este
paradigma se estudiará más adelante.
4.Tecnologías para aplicaciones web
1. Protocolos para servicios Web
2. Tecnologías del lado del cliente
3. Tecnologías del documento
4. Tecnologías del lado del servidor
a. Lenguajes de script de servidor
b. Plataformas de desarrollo de servicios web
empresariales
c. Frameworks MVC
d. Servidores de aplicaciones web comerciales
1. Protocolos para servicios Web
La Pila de protocolos para Servicios Web es una colección de
protocolos y estándares para redes de ordenadores que son utilizados
para definir, localizar, implementar y hacer que un Servicio Web
interactúe con otro. La Pila de Protocolos para servicios esta
comprendida principalmente por cuatro áreas:
1. EL SERVICIO DE TRANSPORTE
El servicio de transporte, es el responsable del envío de mensajes entre las
aplicaciones a través de la red. Este servicio trabaja en el nivel más bajo,
encargándose del modo cómo se codifica la información, sin preocuparse de su
formato. Es el encargado de establecer la conexión y definir el puerto que se va a
usar. Generalmente se utiliza el protocolo HTTP, que es el mismo protocolo que
utiliza el servicio de información World Wide Web en Internet. Utilizando el
protocolo HTTP, los clientes hacen uso de los Servicios Web a través de Internet.
La razón de que la mayoría de los Servicios Web hagan uso del protocolo HTTP,
es el uso tan extendido de los navegadores Web y la gran implantación de
Internet en la actualidad. Dado que los Servicios Web originalmente no fueron
pensados expresamente para utilizar el protocolo HTTP, se pueden utilizar otros
protocolos, como pueden ser: SMTP (Simple Mail Transfer Protocol), protocolo de
correo electrónico; FTP (File Transfer Protocol), protocolo de trasferencia de
ficheros; o, el protocolo BEEP (Blocks Extensible Exchange Protocol). Este último,
es un protocolo específico para su uso con Servicios Web, estando su
especificación realizada en XML. A diferencia de los protocolos HTTP, SMTP y FTP,
el protocolo BEEP no es estrictamente un protocolo cliente-servidor. Las
aplicaciones entre las que se establece la comunicación actúan a la vez como
cliente y como servidor, lo que potencia las prestaciones para el desarrollo de
aplicaciones distribuidas.
2. EL SERVICIO DE MENSAJERÍA
El servicio de mensajería de la pila de protocolos de Servicios Web es el servicio
responsable del formato de los mensajes. Se encarga de definir qué contienen los
datos que se intercambian entre las aplicaciones. Es decir, especifica cómo se
organiza la información de forma estructurada para que sea intercambiada entre
los extremos de la invocación el Servicio Web.
El lenguaje utilizado para los mensajes es XML. Este lenguaje es una adaptación y
simplificación del lenguaje SGML. XML permite definir la gramática del propio
lenguaje, definiendo las propias etiquetas en cada documento. Por ejemplo,
puede definirse una etiqueta que se denomine vehículo: <vehículo
matricula=”1”>…, que a su vez puede incluir otras etiquetas que describan las
características o propiedades de cada vehículo concreto. XML se propone como
un lenguaje estándar, para el intercambio de información entre diferentes
plataformas. Por esta razón XML es ideal para encargarse de la mensajería de los
Servicios Web. Además este lenguaje es independiente del protocolo de
transporte, de forma que se obtiene un débil acoplamiento entre los servicios.
La forma más simple de implementar el protocolo del servicio de mensajería, es
enviar páginas XML directamente sobre el protocolo HTTP. Sin embargo, existen
diversos protocolos específicos que interactúan con el lenguaje XML para ofrecer
el servicio de mensajería. Uno de los más utilizados es el protocolo SOAP, aunque
existen otros como: XML-RPC (Remote Procedure Call with XML) que utiliza el
servicio de transporte HTTP exclusivamente, REST (REpresentational State
Transfer) que permite manejar tipos de datos distribuidos en la Web.
XML-RPC. Es un protocolo que hace una llamada a un procedimiento remoto
(RPC), que codifica las llamadas utilizando el lenguaje XML y que utiliza HTTP
para la comunicación de los mensajes en la red. Permite a una aplicación
ejecutar código en otra máquina sin preocuparse de las comunicaciones entre
ambos, intercambiando datos mediante XML.
SOAP. Es el protocolo de mensajería recomendado para intercambiar
información entre aplicaciones mediante un Servicio Web. Constituye una
evolución del protocolo XML-RPC. Las características principales del protocolo
SOAP son las siguientes:
• Extensibilidad. Al utilizar XML como lenguaje de comunicación, los
identificadores pueden crearse y adaptarse empleando un validador de
documentos o Parser.
• Neutralidad. Puede ser utilizado sobre cualquier protocolo de transporte
como HTTP, SMTP, TCP, FTP, JMS, etc.
• Independencia. Admite cualquier modelo de programación. Permite la
ejecución de métodos, que actúan sobre diferentes objetos y en diferentes
plataformas, de modo que estos puedan comunicarse entre sí. Parece
complicado conseguir que dos métodos escritos en lenguajes diferentes y
que a su vez residen en máquinas diferentes con sistemas operativos
distintos, puedan comunicarse entre sí. Para ello, el protocolo SOAP utiliza
un lenguaje neutro basado en XML.
3. EL SERVICIO DE DESCRIPCIÓN
En esta parte de la pila de protocolo de los servicios web se utiliza un lenguaje
neutro descendiente de XML para conseguir que los mensajes entre el cliente y
el servidor se entiendan entre sí. Este lenguaje genera una descripción de los
métodos y funciones permitidas por el servidor. Los clientes deben adherirse a
esta descripción, como si se tratara de un contrato. La descripción permite que
se puedan adherir clientes implementados en diferentes lenguajes, siempre que
sigan las normas de la descripción. El servicio de descripción se encarga de
describir la interfaz abstracta a través de la cual un cliente puede acceder los
servicios web y ver los detalles de cómo se debe utilizar.
A la hora de comunicarse, el cliente y los propios Servicios Web, deben llegar a
un acuerdo. Deben decidir los detalles del transporte de los mensajes y el
contenido de los mismos a través de un documento. Resulta necesario que se
especifique la sintaxis y los mecanismos de intercambio de mensajes. De esa
forma las aplicaciones involucradas en los servicios web conocerán de forma
automática el formato que tienen que utilizar para comunicarse. A esta
especificación se le denomina descripción del servicio y se usa para describir la
interfaz pública de un Servicio Web. Habitualmente, se utiliza el protocolo WSDL
que se encarga de describir la funcionalidad del Servicio Web, cuando es
publicado. El lenguaje utilizado para describir los Servicios Web es XML.
4.EL SERVICIO DE PUBLICACIÓN Y DESCUBRIMIENTO
Una vez que se ha construido una descripción WSDL para un Servicio Web, esta
descripción debería poder ser consultada por los posibles clientes de los
Servicios Web para que pudieran obtener información sobre las operaciones
disponibles para su consumo. Esta reutilización de código hace necesario un
sistema de publicación de las descripciones WSDL correspondientes a los
Servicios Web existentes. El servicio de publicación y descubrimiento, es el
encargado de esta misión, manteniendo un registro común de Servicios Web, de
manera que las empresas y organismos que los generan, puedan publicar su
localización y descripción. De esta forma se facilita el descubrimiento de los
Servicios Web que hay disponibles en la red. El consorcio internacional sin ánimo
de lucro OASIS sufraga el principal catálogo de Internet, al cual se le denomina
UDDI (Universal Description, Discovery and Integration). UDDI es un servicio de
directorio concebido para almacenar información de Servicios Web, donde las
empresas y organismos que los desarrollan y consumen pueden registrar y
buscarlos. UDDI utiliza los estándares de W3C y OASIS y, sigue las
recomendaciones de la IETF (Internet Engineering Task Force). Las
características principales de UDDI son:
Es un marco independiente a la capa del servicio de descripción. Cabe recordar,
que uno de los objetivos de la pila de protocolos de los Servicios Web, es el bajo
nivel de acoplamiento existente entre los servicios que la conforman.
Provee de un repositorio que consiste en un directorio de interfaces públicas de
Servicios Web que se describe a través del protocolo WSDL, para que las
empresas y organismos puedan organizar, publicar la información de los
servicios y localizar los ya publicados.
Se comunica a través de SOAP para el registro y la petición de información.
2. Tecnologías del lado del cliente
a) Navegadores
b) Scripts. Un script en el lado del cliente es un programa que puede
acompañar a un documento HTML o que puede estar incluido en él.
El programa se ejecuta en la máquina del cliente cuando se carga
el documento, o en algún otro instante, como por ejemplo cuando
se activa un vínculo. Lenguajes JavaScript, VBScript…
c) Helpers necesarios para abrir o ejecutar documentos multimedia.
d) Plug-ins
e) Applets : En Java, un applet es un programa que puede
incrustarse en un documento HTML. Cuando un navegador carga
una página web que contiene un applet, este se descarga en el
navegador web y comienza a ejecutarse utilizando la Java Virtual
Machine (JVM), o en el AppletViewer de Sun.. Esto permite crear
programas que cualquier usuario puede ejecutar con tan solo
cargar la página web en su navegador.
f) Controles Active-X de Iexplore
Es decir, todo el esfuerzo lo realiza el navegador (tecnología web de cliente
pesado). Esta forma de trabajo parecía que se iba quedando obsoleta por la
dificultad de tener un navegador con todos los componentes (que obligaba al
usuario/a a descargar plugins sin entender muy bien la razón), sin embargo en
la actualidad (gracias al triunfo de HTML 5) es la forma habitual de generar
aplicaciones ricas, ya que la interactividad con el usuario es más veloz en el
lado del cliente.
3. Tecnologías del documento
 HTML, XHTML
 XML,DTD,XML SCHEMA, XML DOM, X-PATH
 CSS, XSL, XLST, XSL-FO
 SVG
 SMIL
 VOICEXML
 WML
4. Tecnologías del lado del servidor
4.a.Lenguajes de script de servidor
 PHP (Personal Home Pages). Se trata de un lenguaje de scripts de
servidor; es decir código que se incrusta en las páginas HTML y
que requiere ser traducido por un servidor de aplicaciones que
devolverá un resultado en formato HTML.
 ASP (Active Server Pages). Tecnología de Microsoft similar a la
anterior, sólo está pensada para utilizar en servidores de Windows,
especialmente en IIS.
 JSP (Java Server Pages). Competidor de ASP que usa como base el
lenguaje Java.
 Cold Fussion. Otro lenguaje de scripts, propiedad de Adobe. Es el
más sencillo de todos, pero su uso es más caro porque requiere
servidores especiales (Servidores de Cold Fussion).
4.b.Plataformas de desarrollo de servicios web empresariales
 J2EE (Java 2 Enterprise Edition). Nombre que se da a la
plataforma de creación de aplicaciones web empresariales de Java.
Está formada fundamentalmente por el propio lenguaje Java, EJB
(Enterprise Java Beans, componentes reutilizables
empresariales), servlets y JSP además de otros componentes.
 .NET. Plataforma de Microsoft que permite (entre otras muchas
posibilidades) crear aplicaciones y servicios web, haciendo especial
énfasis en el transporte de datos mediante XML.
4.c.Frameworks MVC
En inglés framework se puede traducir como estructura; en el sentido que nos
ocupa un framework sería un marco de trabajo. MVC son las siglas del
Modelo-Vista- Controlador, comentado antes, un paradigma de
programación de aplicaciones que separa en esos tres niveles el trabajo.
MVC es, en definitiva, un modelo de trabajo que facilita la creación de
aplicaciones web complejas. Hoy en día esta separación en tres capas de las
aplicaciones se realiza con marcos o plantillas de trabajo (más conocidas
como frameworks por su uso en inglés) que facilitan la creación de
aplicaciones MVC generando casi sin esfuerzo el núcleo de las aplicaciones. Las
más populares son:
 Ruby on Rails. Se trata de un marco de trabajo muy
exitoso por la facilidad que tiene de programar y sus
buenos resultados visuales. Se puede ejecutar en casi
cualquier servidor web, basta con instalar el componente
correspondiente.
 Apache Struts. El marco de trabajo más famoso para la
creación de aplicaciones J2EE. Muy preparado para
utilizar con Apache.
 Spring. Otro marco para trabajar en Java J2EE que tiene
bastante éxito. Tiene incluso una versión para las
aplicaciones .NET
 Django. Escrita en Python y pensada para utilizar en ese
lenguaje que facilita la creación de aplicaciones web.
 Zend. Framework escrito para PHP. Uno de los más populares
para este lenguaje.
 Yii. Otro framework PHP de gran crecimiento comercial.
4.d.Servidores de aplicaciones web comerciales
En realidad en muchas ocasiones es indistinguible un servidor web de un
servidor de aplicaciones web. La diferencia está en lo comentado antes, los
servidores web simplemente atienden a las peticiones http y los de
aplicaciones sirven para traducir código escrito en algún lenguaje.
Lo cierto es que casi todos los servidores web actuales permiten actuar de
servidores de aplicaciones gracias a la posibilidad de añadir componentes
para poder ejecutar del lado del servidor. Por ello en la lista siguiente
aparecen tanto servidores web como servidores de aplicaciones web puros (sin
capacidades de servidores web).
Apache
Indudablemente Apache es el servidor web más popular de la actualidad.
Abarca el 65 % de todos los servidores web instalados, aunque es cierto
que su cuota de mercado va bajando poco a poco. Se trata de un software
de código abierto que utiliza una licencia de tipo Apache License que es
una variante de la licencia GPL de Linux. Eso significa que se puede
distribuir libremente e incluso modificar el código siempre y cuando el
resultado mantenga la licencia original.
Dispone de multitud de módulos que convierten a Apache en un
servidor capaz de gestionar todo tipo de aplicaciones, lo que también le
convierte en el servidor de aplicaciones más popular de la actualidad; por
ejemplo dispone de módulos para:
▪ Implementar SSL. Protocolo de seguridad en la transferencia de
información
▪ Enlace con el servidor Tomcat de aplicaciones, para implementar
aplicaciones Java de servidor.
▪ Módulo para Perl
▪ Módulo para PHP
▪ Módulo para Python, etc.
IIS (Internet Information Server)
Es el servidor de aplicaciones de Microsoft que está presente en las versiones
profesionales de Windows y en todas las de servidor. Viene con el propio sistema
operativo y para instalarle basta con agregarle como componente del sistema en la
zona de instalación de aplicaciones del panel de control de Windows (IIS sólo funciona
bajo Windows)
El servidor incluye un servidor web (tanto http como https), servidor ftp,
webDAV y smtp. Además se comporta como servidor de aplicaciones web
.NET y admite extensiones para diversos tipos de aplicaciones (incluido PHP).
Es el segundo servidor web más popular tras Apache (17% del mercado).
nginx
Servidor web cada vez más popular. Muy ligero (con pocas funcionalidades)
pero presume de su alta velocidad especialmente con un número muy alto de
sesiones concurrentes. Tiene licencia de uso BSD, que permite su distribución y
modificación libre.
Ha subido enormemente su uso estando cerca de alcanzar a IIS con su 13% de
mercado.
Mediante FastCGI puede añadírsele numerosas funcionalidades, entre
ellas la capacidad de servir PHP, Ruby on Rails, Java,…
lighttpd
Servidor web que presume de muy poco consumo de CPU por su ligereza, pero
de una alta velocidad. Mediante FastCGI permite servir muchos lenguajes de
servidor (especialmente Ruby on Rails y PHP)
Apache Tomcat
Creado por la fundación Apache es un servidor web escrito en Java capaz de
interpretar servlets y páginas JSP escritas en Java, por lo que es un servidor
de aplicaciones web especialmente pensado para servir Java J2EE, la
plataforma de Java para crear aplicaciones.
Webrick
Servidor de aplicaciones popular para pruebas por su ligereza, pero que no
es lo suficientemente potente para usarlo a nivel comercial. Es el utilizado por
los desarrolladores en Ruby On Rails.

Más contenido relacionado

Similar a web architectures

Similar a web architectures (20)

Evolución de la web
Evolución de la webEvolución de la web
Evolución de la web
 
computacion en la nube..
computacion en la nube.. computacion en la nube..
computacion en la nube..
 
Evolución de la web
Evolución de la webEvolución de la web
Evolución de la web
 
Web1.2.3.4
Web1.2.3.4Web1.2.3.4
Web1.2.3.4
 
Erimar diaz
Erimar diaz Erimar diaz
Erimar diaz
 
Universidad técnica del norte
Universidad técnica del norteUniversidad técnica del norte
Universidad técnica del norte
 
Powwer
PowwerPowwer
Powwer
 
La evolución de la web por carolina petaquero
La evolución de la web por carolina petaqueroLa evolución de la web por carolina petaquero
La evolución de la web por carolina petaquero
 
LAS DIFERENCIAS DE LA WEB
LAS DIFERENCIAS DE LA WEBLAS DIFERENCIAS DE LA WEB
LAS DIFERENCIAS DE LA WEB
 
Evolución de la Web o WWW
Evolución de la Web o WWWEvolución de la Web o WWW
Evolución de la Web o WWW
 
webs
webswebs
webs
 
Isummit loxa
Isummit loxaIsummit loxa
Isummit loxa
 
Evolución de la web
Evolución de la webEvolución de la web
Evolución de la web
 
web 1.0, 2.0, y 3.0
web 1.0, 2.0, y 3.0web 1.0, 2.0, y 3.0
web 1.0, 2.0, y 3.0
 
La web
La webLa web
La web
 
Programacion_WEB_1.pptx
Programacion_WEB_1.pptxProgramacion_WEB_1.pptx
Programacion_WEB_1.pptx
 
Investigacion 1 evolucion web
Investigacion 1 evolucion webInvestigacion 1 evolucion web
Investigacion 1 evolucion web
 
Web's 1.0 a la 4.0
Web's 1.0 a la 4.0Web's 1.0 a la 4.0
Web's 1.0 a la 4.0
 
La web 2.0
La web 2.0 La web 2.0
La web 2.0
 
La web 2
La web 2La web 2
La web 2
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (13)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

web architectures

  • 1. Tema 1: Arquitectura de aplicaciones web 1.Aplicaciones web frente a aplicaciones de escritorio Las aplicaciones web, son programas que se diseñan para funcionar a través de un navegador de internet, es decir, son aplicaciones que se ejecutan de forma online. Desde el punto de vista de de la arquitectura se distinguen dos lados: uno es el cliente en donde se encuentra el usuario final utilizando la aplicación a través de un navegador. Es aquí donde el usuario interactúa con la aplicación localizada en el servidor en donde residen realmente los datos, reglas y lógica de la aplicación. ¿Que diferencia existe entre una aplicación de escritorio (offline) y una aplicación web(online)? Una aplicación offline se ejecuta en el cliente, es decir en el PC del usuario final. Para iniciarla y hacerla funcionar requiere estar presente delante del ordenador que tiene instalada dicha aplicación. Ventajas: su ejecución no requiere habitualmente de comunicaciones con el exterior, sino que se realiza de forma local. Esto repercute en mayor velocidad de procesamiento, y por tanto en mayores capacidades a la hora de programar herramientas más complicadas o funcionales. Desventajas:  Su acceso se limita al PC donde se instalan.  Son dependientes del sistema operativo que utilice tu ordenador y sus capacidades (video, memoria, etc).  Duplicidad de datos por la falta de unificación de los mismos.  Diseminación de la información y lógica en muchas partes (cada computador que la use).  Falta de portabilidad de la aplicación a diferentes sistemas operativos  Traumas a la hora de realizar actualizaciones o correcciones al programa ya que las instalaciones están diseminadas.  La administración de la seguridad, controlando el acceso a los usuarios a información no relevante o privada es muy complicada.
  • 2.  Dificultad para configurar cada una de las instalaciones dependiendo de las necesidades de cada usuario. Una aplicación online por el contrario reside en un servidor, y su ejecución requiere disponer de un dispositivo (ordenador, móvil, tablet…) con conexión a internet (o a una intranet donde se encuentre el servidor de la aplicación que queramos usar), un navegador (IE, Firefox, Opera, Chrome, etc) y por supuesto que la aplicación esté funcionando en el servidor que la aloja. Un ejemplo simple sería un blog, donde usuarios presentan y actualizan información de forma remota a través de unos administradores o paneles de control web, y otros usuarios acceden a ella a través de una interfaz web: la aplicación reside en los servidores de WordPress o Blogspot y, nosotros sólo accedemos a ella a través de un navegador.  Ventajas: proporcionan movilidad, dado que puedes ejecutarlas desde cualquier ordenador con conexión a internet. La información que manejan se accede a través de internet, motivo por el cual son especialmente interesantes para desarrollar aplicaciones multiusuario basadas en la compartición de información. El cliente o usuario que utiliza la aplicación no necesita tener un ordenador de grandes prestaciones para trabajar con ella.  Desventajas: la comunicación constante con el servidor que ejecuta la aplicación establece una dependencia con una buena conexión a internet. Además, el servidor debe tener las prestaciones necesarias para ejecutar la aplicación de manera fluida, no sólo para un usuario sino para todos los que la utilicen de forma concurrente. 1¿Por qué este concepto ha tomado tanta relevancia? El auge de las redes locales (empresariales, institucionales o caseras) y la popularidad de Internet ofreciendo la oportunidad de acceso a través de ordenadores y otros dispositivos móviles. Internet ha elevado y extendido aun más el concepto de aplicación Web para servir no sólo a usuarios de una pequeña red, sino ubicados en cualquier sitio donde tenga acceso a Internet. El éxito de Internet está absolutamente ligado a la web. Tanto que hoy en día para la inmensa mayoría de las personas es indistinguible qué es la web y qué es Internet. Todo se hace en la web. Es decir, desde la web es posible realizar la mayoría de tareas que un usuario desea de Internet, aunque esto no ha sido así siempre. Inicialmente Internet no tenía web. Tenía servicios como el correo electrónico, la transmisión de ficheros, los grupos de noticias, … Así para leer el correo electrónico hacía falta un cliente de correo, la transmisión de ficheros se realizaba mediante un cliente FTP, los foros de debate se leían a través de gestores de news, para el chat hacía falta también un programa especial, Todavía se puede utilizar hoy en día de esta forma Internet. Pero lo cierto es que la mayoría de las personas utilizan todas las posibilidades de internet sólo a través de un único servicio: la web. Y esto es debido básicamente a su facilidad de uso y a que sólo se necesita un navegador y una conexión a Internet para poder a usarlo. Inicialmente las páginas web estaban compuestas sólo de texto y enlaces (a
  • 3. otras páginas), pero cada vez se han ido ofreciendo más servicios, hasta el punto que hoy se puede realizar cualquier cosa a través de la web, retoque fotográfico, conversión de documentos… , provocando la complicación de las páginas y el aumento de las necesidades de los servidores y los navegadores. 2.Evolución de la web 2.0, 3.0,4.0 La web es un “organismo vivo” y, como tal, evoluciona. Desde su creación el año 1966, con esa primera red Arpanet, hasta el posterior nacimiento del Internet que conocemos, no ha dejado de cambiar y perfeccionarse. Hemos pasado de una web 1.0 a la 2.0, 3.0 y ahora llega la web 4.0. Pero, ¿cómo hemos llegado hasta aquí? Buscando información en Internet he llegado a diseñar la evolución de la web: ✔ La web 1.0, fue la primera (apareció hacia 1990) y en ella solo se podía consumir contenido. Se trataba de información a la que se podía acceder, pero sin posibilidad de interactuar; era unidireccional. ✔ La web 2.0, (apareció en 2004) y contiene los foros, los blogs, los comentarios y después las redes sociales. La web 2.0 permite compartir información. Y aquí estamos, de momento la mayor parte de los consumidores. El término web 2.0 fue acuñado por O’Reilly en 2004 para referirse a una segunda generación de tecnología web basada en comunidades de usuarios y una gama especial de servicios, como las redes sociales, los blogs, los wikis, los chat, foros, álbumes de fotografía, presentaciones en red, etc., que fomentan la colaboración y el intercambio ágil de información entre los usuarios de una comunidad o red social. La web 2 posibilita la conexión de personas con personas –redes sociales, wikis, colaboración, con posibilidad de compartir--. Para que todo lo indicado hasta aquí sea técnicamente posible estas aplicaciones utilizan un gestor de contenidos, (CMS), que permite la creación y administración de contenidos en páginas web. Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido de la web. ✔ La web 3.0 (fue operativa en el 2010) y se asocia a la web semántica, un concepto que se refiere al uso de un lenguaje en la red. Por ejemplo, la búsqueda de contenidos utilizando palabras clave. Es inter-operativa y el usuario tiene el control para hacer los cambios que desee modificando directamente las bases de datos. La web semántica incluye meta- datos semánticos u ontológicos (que describen los contenidos y las relaciones entre los datos) para que puedan ser rastreados por sistemas de procesamiento. Mientras la web 2.0 está gestionada por el propio usuario humano, la web 3.0 está gestionada en la nube y ejecutada desde cualquier dispositivo con una alto grado de complejidad y personalización; constituye un nuevo tipo de web en la que se añade contenido semántico a los documentos que la forman y ello conlleva que la ejecución de la misma sea realizada por máquinas que, basándose en nuestros perfiles en la red, descubren información relevante para nosotros. La web 3.0 está muy asociada al concepto de personalización. Ofrece un flujo de información y de contenidos adaptados a nuestros gustos y preferencias. ¿De dónde sacarán los motores de gestión de datos, información sobre nuestros
  • 4. gustos? De nuestra actividad en la red que, como sabemos, deja un importante rastro a modo de fotos, opiniones, tendencia de búsqueda, viajes, etc. ✔ La web 4.0. empezó en el 2016 y se centra en ofrecer un comportamiento más inteligente y más predictivo, de modo que podamos, con sólo realizar una afirmación o una llamada, poner en marcha un conjunto de acciones que tendrán como resultando aquello que pedimos, deseamos o decimos. 3.Arquitectura cliente-servidor. Elementos. En el mundo TCP/IP las comunicaciones entre ordenadores se rigen básicamente por lo que se llama modelo Cliente-Servidor, éste es un modelo que intenta proveer usabilidad, flexibilidad, interoperabilidad y escalabilidad en las comunicaciones. El término Cliente-Servidor fue usado por primera vez en ͕͝͝͝ para referirse a PC’s en red. Este modelo Cliente-Servidor empezó a ser aceptado a finales de los ’s. ͝͝ Su funcionamiento es sencillo: se tiene una máquina cliente, que requiere un servicio de una máquina servidor, y éste realiza la función para la que está programado (nótese que no tienen que tratarse de máquinas diferentes; es decir, un ordenador puede ser a la vez cliente y servidor). El Modelo Cliente-Servidor Desde el punto de vista funcional, se puede definir la computación Cliente/Servidor como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información en forma transparente aún en entornos multiplataforma.En el modelo cliente-servidor, el cliente envía un mensaje solicitando un determinado servicio a un servidor (hace una petición), y este envía uno o varios mensajes con la respuesta (provee el servicio). Ejemplos : Servidor Cliente Servidor Web (apache, IIS) Explorer, Firefox SFTP, Filezilla Server CuteFTP, Filezilla Client, Thunderbird Servidor de Base de datos (Oracle, MySQL, Informix, Postgress) MySQL Query Browser, PHPMyAdmin, Toad..
  • 5. Cliente El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al servidor, se le conoce con el término front-end. El Cliente normalmente maneja todas las funciones relacionadas con la manipulación y despliegue de datos, por lo que están desarrollados sobre plataformas que permiten construir interfaces gráficas de usuario (GUI), además de acceder a los servicios distribuidos en cualquier parte de una red. Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos: • Administrar la interfaz de usuario. • Interactuar con el usuario. • Generar requerimientos de bases de datos. • Recibir resultados del servidor. • Formatear resultados. Servidor Es el proceso encargado de atender a múltiples clientes que hacen peticiones de algún recurso administrado por él. Al proceso servidor se le conoce con el término back-end. El servidor normalmente maneja todas las funciones relacionadas con la mayoría de las reglas del negocio y los recursos de datos. Las funciones que lleva a cabo el proceso servidor se resumen en los siguientes puntos: • Aceptar los requerimientos de bases de datos que hacen los clientes. • Procesar requerimientos de bases de datos. • Formatear datos para trasmitirlos a los clientes. • Procesar la lógica de la aplicación y realizar validaciones a nivel de bases de datos. A esta arquitectura cliente/servidor que tiene dos tipos de nodos en la red: (clientes y servidores) se le llama arquitectura de dos niveles o dos capas.
  • 6. Arquitectura de tres capas Algunas redes disponen de tres tipos de nodos:  Clientes que interactúan con los usuarios finales.  Servidores de aplicación que procesan los datos para los clientes.  Servidores de la base de datos que almacenan los datos para los servidores de aplicación. Características: Los clientes piden o envían información a una aplicación centralizada, no al gestor de base de datos en el servidor. Esta aplicación centralizada que conforma una nueva capa dentro de un sistema Cliente-Servidor, se conoce como capa intermedia o middle-tier. Las diferentes capas suelen ser:  Capa 1 : La capa de presentación. El servidor web recibe las peticiones http y devuelve la respuesta adecuada en formato entendible por los navegadores, que serán capaces de traducir el llamado código del lado del cliente (HTML, JavaScript, CSS, Flash,…)  Capa 2 : La capa lógica. Es la capa que representa al servidor de aplicaciones. El servidor de aplicaciones es invocado por el servidor web cuando le llega una petición a un recurso que debe de ser tratado en el lado del servidor, como es un página PHP. En esta capa lo que llegan son documentos escritos en un lenguaje que se debe de interpretar en el lado del servidor y cuyo resultado se enviará al servidor web para que este lo envíe al cliente que hizo la petición. Ej: Servidor Apache traduce el código en el lado del servidor (JSP, PHP, Ruby onRails, Cold Fussion…) y lo convierte a un formato entendible por el navegador  Capa 3 : La capa de negocio. Es la que contiene la información empresarial que debe de estar absolutamente protegida de
  • 7. los usuarios. En esta capa fundamentalmente se encuentra el sistema gestor de bases de datos (SGBD) de la empresa, además de otros servidores que proporcionen otros recursos empresariales (como servidores de vídeo, audio, certificados, …). Los servidores de esta capa son invocados por los servidores de aplicaciones cuando requieran estos recursos y con la información que reciben pueden realizar su labor de manera correcta. Ej: Base de datos, servidor SMTP… Ventajas  Los componentes están centralizados lo que posibilita su fácil desarrollo, mantenimiento y uso.  Los componentes de la aplicación pueden estar esparcidos en múltiples servidores permitiendo una mayor escalabilidad.  Los problemas de limitación para las conexiones a las bases de datos se minimizan ya que la base de datos sólo es vista desde la capa intermedia y no desde todos los clientes. Además de que las conexiones y los drivers de las bases de datos no tienen que estar en los clientes.  Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (acceso a datos). Una capa solamente tiene relación con la siguiente. Sin embargo, en la actualidad, está muy extendida la construcción de aplicaciones basadas en la arquitectura MVC (Modelo-Vista-Controlador).
  • 8. En el caso de la arquitectura MVC, la capa lógica se encuentra dividida en tres partes:  el modelo especifica la forma de manipular los datos por parte de la aplicación. Es decir especifica cómo son los datos (qué tipo tienen) y la forma de manipularles. Este modelado de datos enlaza con la lógica de negocio, es decir con la forma en la que los datos se almacenan en la capa de negocio (en la base de datos en definitiva). Interacciona con la capa de negocio y devuelve al controlador lo que éste le solicita.  el controlador con la lógica de la aplicación, hace las peticiones necesarias al modelo y las devuelve a la vista.  la vista que presenta al usuario los datos del modelo. Este paradigma se estudiará más adelante.
  • 9. 4.Tecnologías para aplicaciones web 1. Protocolos para servicios Web 2. Tecnologías del lado del cliente 3. Tecnologías del documento 4. Tecnologías del lado del servidor a. Lenguajes de script de servidor b. Plataformas de desarrollo de servicios web empresariales c. Frameworks MVC d. Servidores de aplicaciones web comerciales 1. Protocolos para servicios Web La Pila de protocolos para Servicios Web es una colección de protocolos y estándares para redes de ordenadores que son utilizados para definir, localizar, implementar y hacer que un Servicio Web interactúe con otro. La Pila de Protocolos para servicios esta comprendida principalmente por cuatro áreas: 1. EL SERVICIO DE TRANSPORTE El servicio de transporte, es el responsable del envío de mensajes entre las aplicaciones a través de la red. Este servicio trabaja en el nivel más bajo,
  • 10. encargándose del modo cómo se codifica la información, sin preocuparse de su formato. Es el encargado de establecer la conexión y definir el puerto que se va a usar. Generalmente se utiliza el protocolo HTTP, que es el mismo protocolo que utiliza el servicio de información World Wide Web en Internet. Utilizando el protocolo HTTP, los clientes hacen uso de los Servicios Web a través de Internet. La razón de que la mayoría de los Servicios Web hagan uso del protocolo HTTP, es el uso tan extendido de los navegadores Web y la gran implantación de Internet en la actualidad. Dado que los Servicios Web originalmente no fueron pensados expresamente para utilizar el protocolo HTTP, se pueden utilizar otros protocolos, como pueden ser: SMTP (Simple Mail Transfer Protocol), protocolo de correo electrónico; FTP (File Transfer Protocol), protocolo de trasferencia de ficheros; o, el protocolo BEEP (Blocks Extensible Exchange Protocol). Este último, es un protocolo específico para su uso con Servicios Web, estando su especificación realizada en XML. A diferencia de los protocolos HTTP, SMTP y FTP, el protocolo BEEP no es estrictamente un protocolo cliente-servidor. Las aplicaciones entre las que se establece la comunicación actúan a la vez como cliente y como servidor, lo que potencia las prestaciones para el desarrollo de aplicaciones distribuidas. 2. EL SERVICIO DE MENSAJERÍA El servicio de mensajería de la pila de protocolos de Servicios Web es el servicio responsable del formato de los mensajes. Se encarga de definir qué contienen los datos que se intercambian entre las aplicaciones. Es decir, especifica cómo se organiza la información de forma estructurada para que sea intercambiada entre los extremos de la invocación el Servicio Web. El lenguaje utilizado para los mensajes es XML. Este lenguaje es una adaptación y simplificación del lenguaje SGML. XML permite definir la gramática del propio lenguaje, definiendo las propias etiquetas en cada documento. Por ejemplo, puede definirse una etiqueta que se denomine vehículo: <vehículo matricula=”1”>…, que a su vez puede incluir otras etiquetas que describan las características o propiedades de cada vehículo concreto. XML se propone como un lenguaje estándar, para el intercambio de información entre diferentes plataformas. Por esta razón XML es ideal para encargarse de la mensajería de los Servicios Web. Además este lenguaje es independiente del protocolo de transporte, de forma que se obtiene un débil acoplamiento entre los servicios. La forma más simple de implementar el protocolo del servicio de mensajería, es enviar páginas XML directamente sobre el protocolo HTTP. Sin embargo, existen diversos protocolos específicos que interactúan con el lenguaje XML para ofrecer el servicio de mensajería. Uno de los más utilizados es el protocolo SOAP, aunque existen otros como: XML-RPC (Remote Procedure Call with XML) que utiliza el servicio de transporte HTTP exclusivamente, REST (REpresentational State Transfer) que permite manejar tipos de datos distribuidos en la Web.
  • 11. XML-RPC. Es un protocolo que hace una llamada a un procedimiento remoto (RPC), que codifica las llamadas utilizando el lenguaje XML y que utiliza HTTP para la comunicación de los mensajes en la red. Permite a una aplicación ejecutar código en otra máquina sin preocuparse de las comunicaciones entre ambos, intercambiando datos mediante XML. SOAP. Es el protocolo de mensajería recomendado para intercambiar información entre aplicaciones mediante un Servicio Web. Constituye una evolución del protocolo XML-RPC. Las características principales del protocolo SOAP son las siguientes: • Extensibilidad. Al utilizar XML como lenguaje de comunicación, los identificadores pueden crearse y adaptarse empleando un validador de documentos o Parser. • Neutralidad. Puede ser utilizado sobre cualquier protocolo de transporte como HTTP, SMTP, TCP, FTP, JMS, etc. • Independencia. Admite cualquier modelo de programación. Permite la ejecución de métodos, que actúan sobre diferentes objetos y en diferentes plataformas, de modo que estos puedan comunicarse entre sí. Parece complicado conseguir que dos métodos escritos en lenguajes diferentes y que a su vez residen en máquinas diferentes con sistemas operativos distintos, puedan comunicarse entre sí. Para ello, el protocolo SOAP utiliza un lenguaje neutro basado en XML. 3. EL SERVICIO DE DESCRIPCIÓN En esta parte de la pila de protocolo de los servicios web se utiliza un lenguaje neutro descendiente de XML para conseguir que los mensajes entre el cliente y el servidor se entiendan entre sí. Este lenguaje genera una descripción de los métodos y funciones permitidas por el servidor. Los clientes deben adherirse a esta descripción, como si se tratara de un contrato. La descripción permite que se puedan adherir clientes implementados en diferentes lenguajes, siempre que sigan las normas de la descripción. El servicio de descripción se encarga de describir la interfaz abstracta a través de la cual un cliente puede acceder los servicios web y ver los detalles de cómo se debe utilizar.
  • 12. A la hora de comunicarse, el cliente y los propios Servicios Web, deben llegar a un acuerdo. Deben decidir los detalles del transporte de los mensajes y el contenido de los mismos a través de un documento. Resulta necesario que se especifique la sintaxis y los mecanismos de intercambio de mensajes. De esa forma las aplicaciones involucradas en los servicios web conocerán de forma automática el formato que tienen que utilizar para comunicarse. A esta especificación se le denomina descripción del servicio y se usa para describir la interfaz pública de un Servicio Web. Habitualmente, se utiliza el protocolo WSDL que se encarga de describir la funcionalidad del Servicio Web, cuando es publicado. El lenguaje utilizado para describir los Servicios Web es XML. 4.EL SERVICIO DE PUBLICACIÓN Y DESCUBRIMIENTO Una vez que se ha construido una descripción WSDL para un Servicio Web, esta descripción debería poder ser consultada por los posibles clientes de los Servicios Web para que pudieran obtener información sobre las operaciones disponibles para su consumo. Esta reutilización de código hace necesario un sistema de publicación de las descripciones WSDL correspondientes a los Servicios Web existentes. El servicio de publicación y descubrimiento, es el encargado de esta misión, manteniendo un registro común de Servicios Web, de manera que las empresas y organismos que los generan, puedan publicar su localización y descripción. De esta forma se facilita el descubrimiento de los Servicios Web que hay disponibles en la red. El consorcio internacional sin ánimo de lucro OASIS sufraga el principal catálogo de Internet, al cual se le denomina UDDI (Universal Description, Discovery and Integration). UDDI es un servicio de directorio concebido para almacenar información de Servicios Web, donde las empresas y organismos que los desarrollan y consumen pueden registrar y buscarlos. UDDI utiliza los estándares de W3C y OASIS y, sigue las recomendaciones de la IETF (Internet Engineering Task Force). Las características principales de UDDI son: Es un marco independiente a la capa del servicio de descripción. Cabe recordar, que uno de los objetivos de la pila de protocolos de los Servicios Web, es el bajo nivel de acoplamiento existente entre los servicios que la conforman. Provee de un repositorio que consiste en un directorio de interfaces públicas de Servicios Web que se describe a través del protocolo WSDL, para que las empresas y organismos puedan organizar, publicar la información de los servicios y localizar los ya publicados. Se comunica a través de SOAP para el registro y la petición de información.
  • 13. 2. Tecnologías del lado del cliente a) Navegadores b) Scripts. Un script en el lado del cliente es un programa que puede acompañar a un documento HTML o que puede estar incluido en él. El programa se ejecuta en la máquina del cliente cuando se carga el documento, o en algún otro instante, como por ejemplo cuando se activa un vínculo. Lenguajes JavaScript, VBScript… c) Helpers necesarios para abrir o ejecutar documentos multimedia. d) Plug-ins e) Applets : En Java, un applet es un programa que puede incrustarse en un documento HTML. Cuando un navegador carga una página web que contiene un applet, este se descarga en el navegador web y comienza a ejecutarse utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun.. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página web en su navegador. f) Controles Active-X de Iexplore
  • 14. Es decir, todo el esfuerzo lo realiza el navegador (tecnología web de cliente pesado). Esta forma de trabajo parecía que se iba quedando obsoleta por la dificultad de tener un navegador con todos los componentes (que obligaba al usuario/a a descargar plugins sin entender muy bien la razón), sin embargo en la actualidad (gracias al triunfo de HTML 5) es la forma habitual de generar aplicaciones ricas, ya que la interactividad con el usuario es más veloz en el lado del cliente. 3. Tecnologías del documento  HTML, XHTML  XML,DTD,XML SCHEMA, XML DOM, X-PATH  CSS, XSL, XLST, XSL-FO  SVG  SMIL  VOICEXML  WML 4. Tecnologías del lado del servidor
  • 15. 4.a.Lenguajes de script de servidor  PHP (Personal Home Pages). Se trata de un lenguaje de scripts de servidor; es decir código que se incrusta en las páginas HTML y que requiere ser traducido por un servidor de aplicaciones que devolverá un resultado en formato HTML.  ASP (Active Server Pages). Tecnología de Microsoft similar a la anterior, sólo está pensada para utilizar en servidores de Windows, especialmente en IIS.  JSP (Java Server Pages). Competidor de ASP que usa como base el lenguaje Java.  Cold Fussion. Otro lenguaje de scripts, propiedad de Adobe. Es el más sencillo de todos, pero su uso es más caro porque requiere servidores especiales (Servidores de Cold Fussion). 4.b.Plataformas de desarrollo de servicios web empresariales  J2EE (Java 2 Enterprise Edition). Nombre que se da a la plataforma de creación de aplicaciones web empresariales de Java. Está formada fundamentalmente por el propio lenguaje Java, EJB (Enterprise Java Beans, componentes reutilizables empresariales), servlets y JSP además de otros componentes.  .NET. Plataforma de Microsoft que permite (entre otras muchas posibilidades) crear aplicaciones y servicios web, haciendo especial énfasis en el transporte de datos mediante XML.
  • 16. 4.c.Frameworks MVC En inglés framework se puede traducir como estructura; en el sentido que nos ocupa un framework sería un marco de trabajo. MVC son las siglas del Modelo-Vista- Controlador, comentado antes, un paradigma de programación de aplicaciones que separa en esos tres niveles el trabajo. MVC es, en definitiva, un modelo de trabajo que facilita la creación de aplicaciones web complejas. Hoy en día esta separación en tres capas de las aplicaciones se realiza con marcos o plantillas de trabajo (más conocidas como frameworks por su uso en inglés) que facilitan la creación de aplicaciones MVC generando casi sin esfuerzo el núcleo de las aplicaciones. Las más populares son:  Ruby on Rails. Se trata de un marco de trabajo muy exitoso por la facilidad que tiene de programar y sus buenos resultados visuales. Se puede ejecutar en casi cualquier servidor web, basta con instalar el componente correspondiente.  Apache Struts. El marco de trabajo más famoso para la creación de aplicaciones J2EE. Muy preparado para utilizar con Apache.  Spring. Otro marco para trabajar en Java J2EE que tiene bastante éxito. Tiene incluso una versión para las aplicaciones .NET  Django. Escrita en Python y pensada para utilizar en ese lenguaje que facilita la creación de aplicaciones web.  Zend. Framework escrito para PHP. Uno de los más populares para este lenguaje.  Yii. Otro framework PHP de gran crecimiento comercial. 4.d.Servidores de aplicaciones web comerciales En realidad en muchas ocasiones es indistinguible un servidor web de un servidor de aplicaciones web. La diferencia está en lo comentado antes, los servidores web simplemente atienden a las peticiones http y los de aplicaciones sirven para traducir código escrito en algún lenguaje. Lo cierto es que casi todos los servidores web actuales permiten actuar de servidores de aplicaciones gracias a la posibilidad de añadir componentes para poder ejecutar del lado del servidor. Por ello en la lista siguiente aparecen tanto servidores web como servidores de aplicaciones web puros (sin capacidades de servidores web). Apache Indudablemente Apache es el servidor web más popular de la actualidad. Abarca el 65 % de todos los servidores web instalados, aunque es cierto que su cuota de mercado va bajando poco a poco. Se trata de un software
  • 17. de código abierto que utiliza una licencia de tipo Apache License que es una variante de la licencia GPL de Linux. Eso significa que se puede distribuir libremente e incluso modificar el código siempre y cuando el resultado mantenga la licencia original. Dispone de multitud de módulos que convierten a Apache en un servidor capaz de gestionar todo tipo de aplicaciones, lo que también le convierte en el servidor de aplicaciones más popular de la actualidad; por ejemplo dispone de módulos para: ▪ Implementar SSL. Protocolo de seguridad en la transferencia de información ▪ Enlace con el servidor Tomcat de aplicaciones, para implementar aplicaciones Java de servidor. ▪ Módulo para Perl ▪ Módulo para PHP ▪ Módulo para Python, etc. IIS (Internet Information Server) Es el servidor de aplicaciones de Microsoft que está presente en las versiones profesionales de Windows y en todas las de servidor. Viene con el propio sistema operativo y para instalarle basta con agregarle como componente del sistema en la zona de instalación de aplicaciones del panel de control de Windows (IIS sólo funciona bajo Windows) El servidor incluye un servidor web (tanto http como https), servidor ftp, webDAV y smtp. Además se comporta como servidor de aplicaciones web .NET y admite extensiones para diversos tipos de aplicaciones (incluido PHP). Es el segundo servidor web más popular tras Apache (17% del mercado). nginx Servidor web cada vez más popular. Muy ligero (con pocas funcionalidades) pero presume de su alta velocidad especialmente con un número muy alto de sesiones concurrentes. Tiene licencia de uso BSD, que permite su distribución y modificación libre. Ha subido enormemente su uso estando cerca de alcanzar a IIS con su 13% de mercado. Mediante FastCGI puede añadírsele numerosas funcionalidades, entre ellas la capacidad de servir PHP, Ruby on Rails, Java,… lighttpd Servidor web que presume de muy poco consumo de CPU por su ligereza, pero de una alta velocidad. Mediante FastCGI permite servir muchos lenguajes de servidor (especialmente Ruby on Rails y PHP) Apache Tomcat Creado por la fundación Apache es un servidor web escrito en Java capaz de interpretar servlets y páginas JSP escritas en Java, por lo que es un servidor de aplicaciones web especialmente pensado para servir Java J2EE, la plataforma de Java para crear aplicaciones.
  • 18. Webrick Servidor de aplicaciones popular para pruebas por su ligereza, pero que no es lo suficientemente potente para usarlo a nivel comercial. Es el utilizado por los desarrolladores en Ruby On Rails.