Aplicación TESTS
Diseño de aplicaciones utilizando la plataforma J2EETM
Ing. Javier Alfredo Voos
Enviar comentarios técnicos a:
[email protected]
U.T.N. Facultad Regional Córdoba
Grupo Ingeniería Clínica
Contenidos
Fuente del documento 1-1
Objetivos del diseño de aplicaciones J2EE 1-2
Introducción 1-1
Capas de una aplicación J2EE 2-1
Estructura de cada capa 2-1
Capa Cliente 2-2
Capa Web 2-3
Capa EJB 2-4
Capa EIS 2-5
Arquitectura de la aplicación 3-1
Componentes de la arquitectura 3-2
Aplicación TESTS 4-1
Resumen técnico del proyecto 4-1
Objetivos del proyecto 4-1
Capa Cliente 4-2
Capa Web 4-3
Capa EJB 4-5
Capa EIS 4-8
Fuente del documento
del Capitulo 1 del libro Designing Enterprise Applications with the J2EETM Platform :
Los primeros tres capítulos del presente documento, responden a una traducción resumida
“Anatomy of an Enterprise Application” by Mark Johnson
El diseño e implementación de la aplicación Tests, se realizó siguiendo los lineamientos
definidos por J2EE Blue Prints (http://java.sun.com/j2ee/blueprints).
J2EE Blue Prints utiliza una aplicación de ejemplo denominada Java Pet Store, la cual sirve
de guía a los desarrolladores, ya que brinda los lineamientos necesarios a los fines de poder lograr
un uso eficiente de la plataforma Java 2 Enterprise Edition (J2EE) en el desarrollo de aplicaciones.
Introducción 1-1
Objetivos del diseño de aplicaciones J2EE
• Crecimiento y facilidad en el mantenimiento: ya que debe permitir incorporar fácilmente
nuevas funcionalidades al sistema sin necesidad de efectuar grandes modificaciones en el
código.
• División del trabajo: cuando un grupo de desarrolladores con experiencia en diferentes
aspectos de programación (comunicación con bases de datos, diseño de pantallas,
definición de las reglas de negocio, etc.) pueden trabajar en forma independiente, es
posible asignar tareas de acuerdo a lo que cada uno mejor conoce, tendiente a
incrementar la productividad del trabajo en equipo y la calidad de la aplicación.
• Escalabilidad, portabilidad y disponibilidad: la aplicación debe estar preparada para escalar
a miles de usuarios, debe ser portable a los fines de poder llevarla a diferentes
plataformas, reduciendo el riesgo de quedar obsoleta debido a que los productos ofrecidos
por un proveedor no cumplan con las necesidades futuras del sistema. Una alta
disponibilidad asegura accesos sin interrupciones a reglas y datos de negocio.
• Código reutilizable: el código desarrollado debe ser reutilizable en diferentes lugares de la
aplicación e inclusive para el desarrollo de otras aplicaciones.
•
•
Interoperatibilidad: debe ser capaz de poder interactuar con otros sistemas, de una manera
clara y eficiente, usando los servicios disponibles o entregando los servicios necesarios
para que ellos puedan interactuar con la aplicación.
Implementar la lógica del negocio: los programadores deben ocupar la mayor parte de su
tiempo en desarrollar código que implementen las reglas de negocio, minimizando el
tiempo dedicado a los mecanismos del sistema (transacciones, multithreading, etc.)
• Separar el código, según los índices de cambio: ubicando el código que está sujeto a
numerosos cambios, en módulos diferentes de aquellos que contienen código que
soportan pocos cambios, disminuye los trabajos de mantenimiento de la aplicación.
Introducción 1-2
protocolos
Recursos
protocolos
Clientes
Capa
disponiendo de una serie de tecnologías, para poder llevar sus funciones.
Estructura de cada capa
Contenedor
Componente
API
Capas de una aplicación J2EE
Una aplicación J2EE, está implementada en varias capas, cada una de las cuales es
responsable de diferentes tareas como persistencia de la información, funcionalidad e interacción
con el usuario. Mediante esta división es posible utilizar diferentes criterios para el diseño y la
implementación en cada una de las capas, con el propósito de poder cumplir de la mejor manera
posible los objetivos de diseño antes mencionados.
Cada una de las capas posee un rol definido en el funcionamiento de la aplicación,
Un programa, clase o conjunto de clases relacionadas ejecutando funciones en una capa
se denomina componente. El componente recibe servicios del sistema los cuales son manejados
generalmente por su contenedor. La forma de trabajo entre el contenedor y componente, es una
API que especifica que servicios del contenedor puede esperar un componente, y que reglas debe
seguir éste para funcionar.
En sistemas J2EE, el contenedor tiene la responsabilidad de los servicios de sistema
referidos a threading, manejo de recursos, transacciones, persistencia, seguridad, etc. , lo que
libera de estas cuestiones al desarrollo de componentes, permitiendo al desarrollador centralizarse
en las reglas de negocio. Esto permite que los servicios de sistema puedan ser reconfigurados, sin
necesidad de cambiar el código del componente, logrando de esa manera que los componentes
puedan funcionar en diferentes contextos.
Los programas “clientes” acceden a los servicios de una capa mediante protocolos clientes,
y una capa puede utilizar protocolos de recursos para acceder a los recursos de otra capa. Un
protocolo está siempre relacionado a una tecnología específica de acceso; por ejemplo las
tecnologías Web utilizan HTTP o HTTPS. Es preciso aclarar que un programa cliente puede ser un
programa que interactúa con un usuario o cualquier programa que recibe servicios de otro
programa.
J2EE define este modelo de tecnología para todas las capas. A continuación se realiza una
breve descripción de cada una de ellas, en término de su propósito, la tecnología contenedor /
componente que trabajan en la capa, los programas clientes y los protocolos que la capa puede
atender, y los recursos y protocolos que la capa puede utilizar para comunicarse con otras capas.
Capas de una aplicación J2EE 2-1
Capa Cliente
Permite al usuario interactuar con la aplicación, la captura de los requerimientos del
usuario tienen lugar en esta capa, y los programas que la componen traducen las acciones del
usuario en pedidos al servidor y las respuestas del servidor en resultados visuales que el usuario
pueda interpretar.
Capa Cliente
Cliente Web
Cliente EJB
Cliente EIS
HTML / XML
over
HTTP / HTTPS
RMI / IIOP
RMI / JRMP
JDBC
SQLJ
Conectores
Protocolos propietarios
Web Services
XML/ebXML/SOAP
over
HTTP / HTTPS
Capa WEB
Accesible vía WWW
Capa EJB
Reglas de negocio
Capa EIS
Bases de datos
Capas de una aplicación J2EE 2-2
Es la encargada de lograr que la funcionalidad de la aplicación este disponible en la World
Wide Web. Accede a datos y reglas de negocio alojadas en otras capas y maneja en flujo de las
pantallas. Típicamente interactúa con la capa cliente usando HTTP, y puede acceder a otras capas
utilizando diversos protocolos. En escenarios donde se utilizan Web Services, otras aplicaciones
pueden ocupar el lugar de la capa cliente, accediendo a la aplicación por intermedio de la capa
Web.
Capa Web
Capa WEB
Páginas JSP
Servlets
Java Beans
Contenedor WEB
ebXML / SOAP
Web Services
RMI / IIOP
RMI / JRMP
Capa EJB
Capa EIS
JDBC
SQLJ
Conectores
Protocolos propietarios
Capas de una aplicación J2EE 2-3
Capa Cliente
HTML / XML
over
HTTP / HTTPS
Web Services
ebXML / SOAP
Páginas HTML
Capa Enterprise JavaBeans (EJB)
Session
Beans
Entity Beans
JAVA
Capa Web
Recursos EIS
Bases de
Datos
Conectores
CORBA
RMI / IIOP
RMI / JRMP
RMI / IIOP
RMI / JRMP
RMI / IIOP
RMI / JRMP
Capa EIS
Capa EJB
Facilita que la aplicación sea portable, escalable y con una alta disponibilidad, brindando
accesos de alta performance para obtener datos y reglas de negocio, implementados como
componentes. Un servidor de objetos distribuidos (EJB Server) maneja eficientemente los accesos
a las instancias de estos componentes. Otras capas acceden a estas instancias utilizando Java
Remote Method Invocation (RMI) API. Los EJB proveen un modelo simplificado de programación
para objetos distribuidos, debido a que el contenedor en el que se ejecutan maneja los detalles
referidos a persistencia, seguridad, transacciones, multi-threading y accesos concurrentes. Los
EJB y el servidor EJB pueden ser accedidos utilizando diferentes métodos.
Aplicaciones
Web Services
Clientes JMS
Message
Beans
Contenedor EJB
CMP
BMP
JDBC
SQLJ
JMS
Capas de una aplicación J2EE 2-4
Capa Enterprise Information System (EIS)
Integra la aplicación J2EE con otros sistemas de información. Provee datos almacenados o
bien servicios de información de otros sistemas. Bases de datos, sistemas ERP, sistemas legacy
Comentarios de: Diseño de aplicaciones utilizando la plataforma J2EE (0)
No hay comentarios