PDF de programación - Arquitecturas Avanzadas Flex / JEE

Imágen de pdf Arquitecturas Avanzadas Flex / JEE

Arquitecturas Avanzadas Flex / JEEgráfica de visualizaciones

Publicado el 3 de Julio del 2021
298 visualizaciones desde el 3 de Julio del 2021
4,5 MB
34 paginas
Creado hace 15a (16/10/2008)
Carlos Rovira

1

Arquitecturas Avanzadas Flex / JEE 2

Introducción‣Técnicas, metodologías y soluciones para facilitar el desarrollo de Rich Internet Applications (RIA) flexibles y escalables.‣RIAlity es una arquitectura Flex/JEE que aplica estas técnicas Adobe Flex y JEE

‣ Es una Arquitectura para soluciones RIA basada en
‣ Es un conjunto de plugins para Eclipse (Tooling)
‣ Es una metodología de desarrollo RIA

3

¿Que es RIAlity? ‣ Objetivo Principal:

‣ Automatizar el acceso a datos de forma que el desarrollador se centre

Aspecto visual del Interfaz

en los aspectos RIA del sistema:

‣ Usabilidad
‣ Crear nuevos componentes que mejoren la experiencia del usuario

4

¿Que es RIAlity? 5

¿Qué ofrece RIAlity? (I)‣Soluciones Escalables y Mantenibles.‣ Flexibiliza las soluciones RIA:‣Componentes desacoplados.‣Configuración a través de XML.‣Coste 0 en despliegues para diferentes:‣RDBMS (Oracle, MySQL, …)‣Servidores de aplicaciones (WebLogic, Tomcat, Jboss, …)‣Reducción de código.‣Componentes genéricos que manejan casos básicos (GenericDAO,...)‣Componentes extendibles para particulalizar casos (ej: ConcreteDAO) 6

¿Qué ofrece RIAlity? (II)‣Framework Modular en cliente‣Basado en Cairngorm + Modulos‣Seguridad‣Integración con sistemas dispares (LDAP, ADS, bases de datos, …)‣Cumplimiento de leyes de protección de datos LOPD, LSSI,…‣Gestión de Proyectos RIA‣Metodología de desarrollo‣Estimación y Ahorro en los costes de desarrollo‣“Time-To-Market” óptimo 7

¿Qué ofrece RIAlity? (III)‣Automatiza el desarrollo gracias a los plugins diseñados específicamente para producir de forma más rápida y fiable (Tooling).‣En Resumen: RIAlity simplifica del proceso de producción de las nuevas soluciones RIA proporcionando:‣Ahorro significativo de los costes.‣Aportando soluciones más robustas. 8

Arquitectura Cliente‣Solución Cairngorm + Modulos‣Cairngorm aporta la estructura organizativa del código‣Los módulos nos ofrecen la posibilidad de partir la aplicación en trozos que sean cargados “on demand” ahorrando tiempos de carga y compilación. 9

Arquitectura Cliente‣En RIAlity la arquitectura cliente está distribuida en 4 SWCs:‣riality_core.swc - Clases base de la arquitectura, utilidades,etc...‣riality_modules.swc - Framework que une Cairngorm y Modulos‣riality_security.swc - Framework que integra la seguridad‣Cairngorm.swc - Micro arquitectura estructural {Módulos
Aplicación{

Zona Securizada
Zona Pública

10

Arquitectura ClienteLoginshellM’’M’’’M’ 11

Arquitectura Cliente‣Login‣Aplicación Flex pura con la funcionalidad base para entrar en el sistema‣No conoce la URL del modulo shell (esta url es devuelta cuando la validación del usuario ha tenido éxito)‣La vista es modificable con facilidad (Lógica de negocio separada de la vista) DisplayList

addModule

12

Arquitectura Cliente‣Shell‣Plataforma base que cargará los módulos.‣Introduce el concepto de AdvancedViewManager ‣Ej: addModule(‘modulo1.swf’, this)‣El AdvancedViewManager se encarga de “enganchar” módulos a partes de la UI‣Básicamente asigna instancias de los módulos cargados a un objeto visual dentro del DisplayList‣Permite cambiar fácil y rápidamente el layout de una aplicación.M’ 13

Arquitectura Cliente‣Módulos‣Clase base de un Módulo en RIAlity: AdvancedModule‣Todo módulo debe cumplir un contrato representado por la interface IModuleCairngormAware‣Esta interface asegura que todo módulo cumple varias condiciones:‣Es cargado correctamente dentro de la aplicación‣Se inicializa como es esperado.‣Registra los comandos oportunos de su lógica de negocio.‣Ofrece un punto de acceso adecuado para el modelo de datos particular del módulo‣Debido a lo tedioso de la configuración de cada módulo, RIAlity ofrece un plugin que genera cada proyecto de módulos de forma automática. I

R
O
D
V
R
E
S

E
T
N
E
L
C

I

RDBMS(Oracle,MySQL,…)

BlazeDS/

LiveCycleDataSerivces

Otros(LDAP,Mail,…)

Cairngorm

14

Arquitectura RIA Clásica RIAlity (JEE class library)

I

R
O
D
V
R
E
S

E
T
N
E
L
C

I

BlazeDS /

LiveCycleDataSerivces

Spring

JPA

Otros(LDAP,Mail,…)

RDBMS(Oracle,MySQL,…)

RIAlity Modules

RIAlity Security

RIAlity Core

Cairngorm

15

Arquitectura Avanzada Flex

Clients

LCDS

Assembler
GenericAssembler

e s

e r vic

S

a t a

D

RemoteObject

3erd
Party

(Other IS, MS Biztalk, ...)

JPA, JDBC,

SAP,...

Multiple DataBases

DAO
GenericDAO

VO

DAO
GenericDAO

VO

DAO
GenericDAO

VO

Service
(Business Logic)

Service
(Business Logic)

Web
Service

Web
Service

Secure Web Service Layer

16

Arquitectura Servidor 17

Spring‣Pieza central‣Desacopla los diferentes componentes mediante configuración XML.‣IoC (Inversion of Control) / Dependency Injection.‣AOP : Aspectos operando transversalmente en puntos claves de la arquitectura:‣Transaccionalidad transparente (a través del Servidor host de nuestra aplicación).‣Logging aplicado a los servicios 18

BlazeDS / Live Cycle DS‣BlazeDS‣Open Source‣Comunicaciones cliente/servidor de alto rendimiento (protocolo AMF)‣HTTPStreming (arquitecturas comet o “data push”)‣LCDS‣Sincronización y flujo de datos en tiempo real para todos los Clientes Flex Conectados.‣Manejo de datos avanzado entre capas cliente/servidor.‣Mensajería (Suscripción / Publicación) entre clientes Flex o con otros sistemas a través de JMS.‣Capacidades NIO (Rendimiento Óptimo en entornos de alta disponibilidad)‣Aplicaciones colaborativas <factories>
<factory id="spring" class="com.carlosrovira.riality.factories.SpringFactory"/>
</factories>

19

BlazeDS / LCDS + Spring‣Configuración en services-config.xml‣Configurar una factoría para Spring‣Esto nos permite una mejor integración entre Spring y BlazeDS/LCDS‣Runtime configuration‣Evita escribir configuraciones redundantes (un nuevo ahorro de código)‣Clase BootStrap:‣Recoger de Spring la información de los beans declarados‣Crear los destinations (DataServices, RemoteObjects, ...) en runtime <service id="riality-remoting-bootstrap" class="com.carlosrovira.riality.bootstrap.SpringRemoteObjectBootStrap" /> Configuración
BlazeDS/LCDS

Configuración

RIAlity

20

BlazeDS / LCDS + Spring 21

JPA - Java Persistence API‣Independencia del motor de base de datos‣Cambio de RDBMS configurando un XML.‣Conexión a múltiples Bases de Datos.‣Independencia de la implementación final de un proveedor (Hibernate, TopLink, OpenJPA, ...)‣ORM que elimina la necesidad de desarrollar gran parte de las sentencias SQL.‣Facilidad de desarrollo:‣Menos código que desarrollar y mantener.‣Siempre podemos bajar al nivel nativo ANOTACIONES

22

JPA - Entity‣Las entidades extienden BaseModel‣Solo existe una clase Java anotada (JDK 1.5 o +)@Entitypublic class Contacto extends BaseModel {private Integer telefono;@Column(name = "telefono", nullable = false, unique = true)public Integer getTelefono() {return telefono; } public void setTelefono(Integer telefono) { this.telefono = telefono; }... •




findAll
findById

findByProperty
findByExample






create
remove
update

...

23

GenericDAO‣Creación de un DAO que maneja una entidad:<bean id="testEntityDAO" class="com.carlosrovira.riality.daos.jpa.GenericDaoJpa">
<constructor-arg value="test.model.TestEntity" /></bean>‣Uso de Genéricos : public class GenericDaoJpa<T extends BaseModel>‣Sin escribir código ya tenemos los métodos básicos:‣Si queremos más funcionalidad : extends ‣Encapsula JPA:‣pero podemos usar otro proveedor (JDBC, SAP?) 24

GenericAssembler‣Para LCDS‣Creación de un Assembler :<bean id="testAssembler" class="com.carlosrovira.riality.assemblers.GenericAssembler"><constructor-arg value="test.model.TestEntity" /><property name="service" ref="testService" /></bean>‣Existe una convención en el nombrado de métodos que se obtienen por introspección‣Si queremos más funcionalidad : extends ‣Nuevamente nos hemos ahorrado escribir una clase 25

Service‣Define el API del negocio‣IMPORTANTE: Toda la lógica del negocio debe estar representada en esta capa (validaciones, acceso a distintos DAOs, etc...)‣Los Clientes Flex acceden vía Remote Objects o DataServices (Capa intermedia de Assemblers)‣Otros clientes acceden vía Web Services securizados gracias a Spring‣Esta capa soporta la transaccionalidad:@Transactionalpublic class ContactoService implements IGenericService {... transactionManager

Service
(Business Logic)

Service
(Business Logic)

Service
(Business Logic)

26

Transaccionalidad‣Implementada como un Aspecto (AOP) que corta a todos los servicios‣Nos ahorra el tener que abrir y cerrar transaccionesbenginTransacction....business codeendTransaction 27

Seguridad (Spring Security)‣Seguridad Flexible que soporta autenticación y autorización.‣API en cliente y en servidor‣Integración con LDAP, ADS, Base de datos,…‣Integración con sistema de logs (trazabilidad de las acciones de un usuario).‣Cumplimiento de LOPD y LSSI.‣Transparencia y productividad de cara al workflow de desarrollo.‣Modulo de gestión de usuarios y roles de serie serviceLogAspect

Service
(Business Logic)

Service
(Business Logic)

Service
(Business Logic)

28

Logging‣Implementado como un Aspecto (AOP) que corta a todos los servicios‣Genera trazas genéricas (adaptables a nuestras necesidades)‣Nos da la información necesaria sobre:‣Quién entra‣Donde entra‣Qué hizo 29

Tooling 30

Tooling‣Gran parte del código es generado por el plugin‣La Plataforma nos proporciona otra parte del código‣Es tarea del desarrollador introducir los elementos diferenciadores partiendo de una base funcional.DesarrolloPluginPlataforma 31

Metodología‣Departamentos de TI‣Trabajo en grupo.‣Necesidad de un proceso productivo predecible y medible.‣Seguridad y Robustez en el diseño e implementación de los Casos de Uso de un Sistema.‣Nuevos desarrolladores - Mayor facilidad para integrarse en el proceso productivo. 32

Roadmap‣¿Que funcionalidades están por venir?‣Solución genérica para mantener las Tablas Maestras de un sistema‣Generación de código para casos tipo Maestro - Detalle‣Solución Genérica para el Lazy Loading‣Manejo de relaciones (ManyToOne, O
  • Links de descarga
http://lwp-l.com/pdf19371

Comentarios de: Arquitecturas Avanzadas Flex / JEE (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad