0% encontró este documento útil (0 votos)
4 vistas15 páginas

Desarrollo de RIAs con Java y Vaadin

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas15 páginas

Desarrollo de RIAs con Java y Vaadin

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

Programación B

Programación Orientada a Objetos

Ingeniería en Informática
Universidad FASTA

Ing. Luis Buffoni


Lic. Claudio Gea

Java: Desarrollo de Rich Internet Applications (RIAs)


RIA – Rich Internet Application
Características

“Aplicación web-based tan interactiva y responsive


como una aplicación desktop tradicional”

Aprovechamiento de lo mejor de dos mundos:


• Riqueza de la Experiencia de Usuario (UX) de aplicaciones desktop:
Drag/Drop, Copy/Paste, redimensionar columnas, ordenar datos...
• Amigabilidad de las UI web
• Flexibilidad de presentación de las páginas web
• Basado en arquitectura Cliente / Servidor:
o Requerimientos de hardware mínimos del lado Cliente
o Facilidad de deployment y de accesibilidad

Universidad FASTA – Programación B 2


Arquitectura Cliente / Servidor

Universidad FASTA – Programación B 3


Arquitectura Cliente / Servidor
Componentes
• Cliente
o Maneja la interacción del usuario con la Interfaz de Usuario (UI)
o Realiza las peticiones de datos al servidor y controla cómo se presentan los datos
o El cliente es siempre el que inicia el diálogo haciendo una petición al servidor

• Servidor
o Ofrece servicios para manejar y procesar y dar respuesta a peticiones de los
Clientes
o Realiza acciones en el servidor: actualiza BD, ejecuta procesos…
o Determina y da formato a los datos a ser retornados al Cliente

• Red / Protocolos
o Conjunto de clientes y servidores unidos, de una manera física o no física, en el
que existen protocolos de transmisión de información claramente establecidos
o Protocolos: HTTP, FTP, SSH, DNS, SMTP, etc.

Universidad FASTA – Programación B 4


Arquitectura Cliente / Servidor
Ventajas

Features Description
Encapsulation of services The server is a specialist: when given a message requesting a service, it determines how
to get the job done. Servers can be upgraded without affecting clients as long as the
published message interface used by both is unchanged.
Integrity The code and data for a server are centrally maintained, which results in cheaper
maintenance and the protection of shared data integrity. At the same time, clients
remain personal and independent
Location transparency The server is a process that can reside on the same machine as a client or on a different
machine across a network. Client/server software usually hides the location of a server
from clients by redirecting service requests. A program can be a client, a server, or both
Message-based exchanges clients and servers are loosely-coupled processes that can exchange service requests
and replies using messages
Platform independence the ideal client/server software is independent of hardware or operating system
platforms, allowing you to mix client and server platforms. Clients and servers can be
deployed on different hardware using different operating systems, optimizing the type of
work each performs.
Separation of Client/Server client/server systems can be scaled horizontally or vertically. Horizontal scaling means
Functionality adding or removing client workstations with only a slight performance impact. Vertical
scaling means migrating to a larger and faster server machine or adding server
machines.

Universidad FASTA – Programación B 5


RIA con Vaadin
Características
 Arquitectura Cliente/Servidor
– Thin Client: No hay lógica en el Cliente
• No hay eventos semánticos: el Cliente no dice “borrar este
usuario”
• Sólo informa “fue presionado el botón 83”: evento low level
– Sólo el Servidor conoce lo que ese click significa
semánticamente
– La lógica de la aplicación se encuentra únicamente del
lado del Servidor

Universidad FASTA – Programación B 6


RIA con Vaadin
Características
 Web framework maduro para el desarrollo de RIAs
– Aplicaciones tan responsive e interactivas como una
aplicación Desktop
– Mínima recargas de páginas, intercambio de partes de
una página vía AJAX
– Desarrollar GUIs web-based es tan cómodo y rápido
como desarrollar aplicaciones Desktop
 Un único lenguaje de programación: Java.
– No es necesario tener conocimiento de tecnologías web
como JavaScript o HTML en el front-end

Universidad FASTA – Programación B 7


Arquitectura Vaadin
Componentes y su distribución


Corre en el browser 
Mantiene la lógica de la 
Desarrollador sólo programa

Escrito en JavaScript UI y el estado de cada lógica UI y backend

Renderiza UI, recibe cliente. 
Cualquier cosa antes de
interacción del 
Corre la lógica de la esta capa le es transparente
usuario y envía al aplicación 
Se despreocupa del uso de
servidor eventos low- 
Cada componente del tecnologías web (HTML,
level lado del servidor JavaScript) y de la

La lógica de la (Button, TextField, comunicación C/S (HTTP,
aplicación no está Table, etc.) tiene una AJAX, JSON serialization,
distribuida entre el contraparte en el lado sessions)
cliente y el servidor cliente (“widget”) 
Sólo utiliza la API Java de
Universidad FASTA – Programación B los componentes 8
Arquitectura Vaadin
Modelo dirigido por Eventos

Universidad FASTA – Programación B 9


Vaadin
Fortalezas
 Desarrollo rápido de aplicaciones web como si fueran
aplicaciones desktop
 Curva de aprendizaje plana: sólo Java
 Paradigma conocido de programación de la UI dirigida por
eventos
 Los problemas específicos de la programación web son
transparentes para los desarrolladores
 Completo y sofisticado conjunto de componentes con
mecanismos de enlace de datos
 Buena documentación, comunidad de desarrolladores
muy activa

Universidad FASTA – Programación B 10


Vaadin
Debilidades
 Escalabilidad

Server reducido a proveer datos

Menor requerimiento de memoria
y de procesamiento en Server

Puede escalar muy bien con alto
tráfico


El estado y lógica de la UI se
mantienen en el Server para
cada Cliente

Al aumentar el número de
clientes, aumenta la memoria
para mantener estado de cada UI

Alto tráfico / Servidor muy
ocupado
Universidad FASTA – Programación B 11
Vaadin
Debilidades
 GUIs bastante básicas
 SEO (Search Engine Optimization)

– Como Vaadin carga contenido de forma asíncrona a


través de JavaScript en una sola URL, el SEO es
complicado
– Existen trucos y bibliotecas para que su contenido esté
disponible para los buscadores, pero definitivamente
requieren esfuerzos adicionales y el resultado puede no
ser tan flexible
– Si SEO es un requisito fundamental, Vaadin (o SPA en
general) no son la mejor opción.

Universidad FASTA – Programación B 12


Maven + Spring + Vaadin
Una trilogía interesante
 Maven
– Herramienta para construir y administrar cualquier proyecto
basado en Java
– Facilita el proceso de construcción a través de un modelo uniforme
• POM – Project Object Model
– Permite migración/actualización transparente a nuevas
funcionalidades
– Proporciona pautas de “mejores prácticas” para la construcción y
desarrollo de proyectos

Universidad FASTA – Programación B 13


Maven + Spring + Vaadin
Una trilogía interesante
 Spring
– Framework de código abierto para desarrollo de aplicaciones
Java
– Contenedor de Inversión de Control

Instancia, inicializa y conecta objetos de la aplicación

Gestiona el tiempo de vida de los objetos

Los objetos creados y gestionados por el Contenedor se
denominan beans
– Inyección de Dependencias

Patrón de diseño orientado a objetos en el que se suministran
objetos a una clase en lugar de ser la propia clase la que crea
dichos objetos

Universidad FASTA – Programación B 14


Spring
Ventajas

Inversión de Control

No se crean los objetos con new, si no que las dependencias se declaran
en un fichero de configuración o mediante anotaciones

La anotación @Autowired inyecta dependencias logrando un bajo acoplamiento
entre los componentes


POJO - Plain Old Java Objects

Instancia de una clase simple, que no extiende ni implementa nada en
especial y que no dependen de un framework en especial.

Surge en oposición al modelo planteado por los estándares EJB, en los que
los Enterprise JavaBeans (EJB) debían implementar interfaces especiales.


Inyección de Dependencias + POJO + JUnit

Facilidad de testing

Universidad FASTA – Programación B 15

También podría gustarte