Publicado el 26 de Mayo del 2018
434 visualizaciones desde el 26 de Mayo del 2018
1,5 MB
50 paginas
Creado hace 16a (11/01/2008)
Raúl Llorach Sánchez
Ingeniería Técnica en Informática de Gestión
Director del proyecto:
Pedro García López
Escola Tècnica Superior d’Enginyeria (ETSE)
Universidad Rovira i Virgili (URV)
[SERVIDOR PUBLISH/SUBSCRIBE]
Proyecto Final de Carrera
SERVIDOR PUBLISH/SUBSCRIBE Raúl Llorach Sánchez
Índice
1.- INTRODUCCIÓN ................................................................................................... 1
1.1 – Objetivos del proyecto .......................................................................................... 4
2.- ANTECEDENTES ................................................................................................... 5
2.1 – Sistema publish/subscribe .................................................................................... 5
2.1.1 – Filtrado de mensajes ...................................................................................... 5
2.1.2 – Topologías ...................................................................................................... 6
2.1.3 – Ventajas .......................................................................................................... 7
2.1.4 – Desventajas .................................................................................................... 8
2.2 – Arquitecturas REST ................................................................................................ 9
2.2.1 – Recursos ....................................................................................................... 10
2.3 – Protocolos XML-RPC ............................................................................................ 11
2.4 – Tecnología AJAX .................................................................................................. 12
2.5 – Java Server Pages (JSP) ........................................................................................ 14
2.5.1 – Arquitectura de los JSP ................................................................................. 16
2.6 – Sindicación web................................................................................................... 17
2.6.1 – Agregador ..................................................................................................... 18
2.6.2 – Variedades .................................................................................................... 19
2.7 – Formato RSS ........................................................................................................ 20
2.8 – Formato RDF ....................................................................................................... 21
2.9 – El Lenguaje HTML ................................................................................................ 22
2.10 – Google Gadgets ................................................................................................. 24
3.- ANÁLISIS ........................................................................................................... 25
4.- DISEÑO .............................................................................................................. 28
4.1 – Diseño de la base de datos ................................................................................. 28
4.2 – Estructura de la aplicación web .......................................................................... 30
4.2.1 – ServletREG.java ............................................................................................ 31
4.2.2 – ServletRPC.java ............................................................................................. 32
4.2.3 – ServletREST.java ........................................................................................... 32
4.3 – Métodos de la aplicación .................................................................................... 34
4.3.1 – Methods.java ................................................................................................ 34
4.4 – Gadgets implementados ..................................................................................... 39
2
SERVIDOR PUBLISH/SUBSCRIBE Raúl Llorach Sánchez
4.5 – Interfaz de usuario .............................................................................................. 42
4.6 – Metodología de desarrollo .................................................................................. 45
5.- RESULTADOS ..................................................................................................... 46
6.- CONCLUSIÓN ..................................................................................................... 48
7.- TRABAJO FUTURO ............................................................................................. 49
8.- RECURSOS UTILIZADOS ...................................................................................... 50
3
SERVIDOR PUBLISH/SUBSCRIBE Raúl Llorach Sánchez
1.- INTRODUCCIÓN
Una aplicación web es un sistema informático que los usuarios utilizan
accediendo a un servidor web a través de Internet o de una intranet. Las aplicaciones
web son populares debido a la practicidad del navegador web como cliente ligero. La
facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software
en miles de potenciales clientes es otra razón de su popularidad. Aplicaciones como los
webmails, wikis, weblogs y tiendas en línea son ejemplos bien conocidos de
aplicaciones web.
En los primeros tiempos de la computación cliente-servidor, cada aplicación tenía su
propio programa cliente y su interfaz de usuario, estos tenían que ser instalados
separadamente en cada estación de trabajo de los usuarios. Una mejora al servidor,
como parte de la aplicación, requería típicamente una mejora de los clientes instalados
en cada una de las estaciones de trabajo, añadiendo un costo de soporte técnico y
disminuyendo la eficiencia del personal.
En contraste, las aplicaciones web generan dinámicamente una serie de páginas en un
formato estándar, soportado por navegadores web comunes como HTML o XHTML. Se
utilizan lenguajes interpretados del lado del cliente, tales como JavaScript, para añadir
elementos dinámicos a la interfaz de usuario. Generalmente cada página web
individual es enviada al cliente como un documento estático, pero la secuencia de
páginas provee de una experiencia interactiva.
Las interfaces web tienen ciertas limitaciones en la funcionalidad del cliente. Métodos
comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-
soltar no están soportadas por las tecnologías web estándar. Los desarrolladores web
comúnmente utilizan lenguajes interpretados del lado del cliente para añadir más
funcionalidad, especialmente para crear una experiencia interactiva que no requiera
recargar la página cada vez (cosa que suele molestar a los usuarios). Recientemente se
han desarrollado tecnologías para coordinar estos lenguajes con tecnologías del lado
del servidor. AJAX, es una técnica de desarrollo web que usa una combinación de
varias tecnologías.
Así pues, la creación de aplicaciones web actuales requiere un amplio dominio de
muchas técnicas de programación y en muchas ocasiones usuarios o programadores
carecen de ese dominio. Concretamente me refiero a ese tipo de aplicaciones que más
popularidad están cogiendo en la red. Las aplicaciones publish/subscribe.
Una aplicación publish/subscribe es aquella en la que un servidor da una serie de
servicios, a los usuarios, para gestionar, almacenar y presentar todo tipo de
información, y otros usuarios se suscriben a ella para ser avisados de nuevas
actualizaciones o informaciones.
4
SERVIDOR PUBLISH/SUBSCRIBE Raúl Llorach Sánchez
Así pues, cuando a un técnico se le plantea hacer una aplicación web personalizada,
basada en un sistema publish/subscribe, se va a encontrar, en gran medida con
muchas dificultades que ya están resueltas. Es decir, que si quisiéramos crear un foro,
o un web-chat, o cualquiera de este tipo de aplicaciones web, en todas ellas
tendríamos que repetir un mismo patrón de programación. Por tanto si hubiera alguna
manera de poder utilizar un soporte auxiliar para paliar esos problemas, los técnicos
podrían dedicarse mucho más tiempo en el producto final. Que es su propia aplicación,
teniendo, en gran parte, todo su mecanismo implementado por esa herramienta
auxiliar.
1.1 Objetivos del proyecto
Este proyecto ofrece, a los programadores de aplicaciones web basadas en sistemas
publish/subscribe, un software auxiliar (middleware) que a partir del cual, les ayude a
crear sus propias aplicaciones y gestionarlas. Que pueden ser desde blogs, foros,
canales de noticias hasta chats en tiempo real. En definitiva se quiere diseñar un
servidor que gestione y almacene canales y eventos. Cada canal podrá ser dedicado a
una temática diferente que escogerá el propio usuario, y dentro de cada canal habrá
los distintos eventos que lo formen. Estos eventos al mismo tiempo podrán ser de
publicadores o bien de otros canales, ya que también se permite la sindicación entre
canales o servidores mediante RSS o RDF.
En principio se pretende que el registro al servidor y la creación de canales y eventos
sea libre, pero se ha dado la posibilidad de poder crear canales privados y dar
privilegios solo a ciertos usuarios para poder compartir e enviar eventos a dicho canal.
También se ha proporcionado un api rígida para que ya sea, en segundo plano (vía
REST o ví
Comentarios de: Servido PUBLISH/SUBSCRIBE (0)
No hay comentarios