Red de conocimiento informático - Material del sitio web - Creación de aplicaciones Web2.0 de nivel empresarial basadas en tecnología Jazz

Creación de aplicaciones Web2.0 de nivel empresarial basadas en tecnología Jazz

La plataforma tecnológica Jazz es una plataforma de colaboración en equipo escalable y extensible que se utiliza para integrar tareas sin problemas durante todo el ciclo de vida del software. La plataforma tecnológica Jazz también proporciona herramientas útiles para el desarrollo y la expansión de aplicaciones web. Úselo fácilmente para desarrollar aplicaciones web basadas en modelos de programación Ajax y REST. Jazz proporciona un marco de servicio REST en el servidor REST. Este marco abstrae los detalles del procesamiento de solicitudes REST (encapsulación y descifrado de datos HTTP, etc.) Los servicios REST pasan A Java. La interfaz Java y el modelo de almacenamiento basado en EMF correspondiente se utilizan en tiempo de ejecución para reunir solicitudes y respuestas. En el lado de la interfaz de usuario web, Jazz se basa en el kit de herramientas Dojo de código abierto y proporciona un marco Jazz Ajax (JAF) para simplificar. Desarrollo Ajax

Esta serie de artículos primero describe la arquitectura técnica y el modelo de programación de la plataforma Jazz, y luego utiliza PetStore, que es familiar para los desarrolladores, como ejemplo para detallar todo el proceso de desarrollo empresarial. Aplicaciones web de nivel que utilizan tecnología Jazz Entre ellas, PetStore y la plataforma tecnológica Jazz Las dependencias entre las plataformas se muestran en la figura.

Las dependencias entre las plataformas PetStore y Jazz se muestran en la figura.

Al leer esta serie de artículos, obtendrá la siguiente ayuda

· Comprender la arquitectura de la tecnología Jazz y el modelo de programación y comprender cómo utilizar Jazz. tecnología para desarrollar componentes de aplicaciones

· Comprender cómo implementar el mecanismo OR Mapping basado en el modelado EMF proporcionado por la persistencia del modelo Jazz Data

· Comprender cómo completar la gestión y personalización de los procesos de negocio a través del componente Process proporcionado por Jazz

· Comprender cómo desarrollar un proceso de negocio basado en el marco Ajax (JAF) proporcionado por Jazz Web Application de Ajax y el modelo de programación REST

Este artículo es la primera parte de la serie. Presentará la arquitectura técnica y el modelo de programación de la plataforma Jazz y completará el primer paso en el desarrollo de la aplicación de muestra PetStore: diseño e implementación del modelo de datos.

Descripción general de la tecnología Jazz.

Arquitectura técnica

Jazz tiene una arquitectura modular y extensible. Jazz utiliza el sistema de complementos de Eclipse. Los desarrolladores pueden utilizar la función de Jazz proporcionando varios paquetes de extensión de Eclipse. determinadas funciones están organizadas en un componente de Jazz. Los componentes actuales de Jazz se muestran en la figura.

Figura Jazz Platform

Cada componente en la figura Para lograr ciertas funciones, Repositorio y. Los procesos de equipo son necesarios. Constituyen el núcleo de Jazz. El repositorio es responsable de procesar datos, completar el mapeo OR y la persistencia de datos, etc., que son componentes en los que deben confiar todas las aplicaciones basadas en datos. Actualmente, el componente del repositorio proporciona soporte. Oracle DB para operar con bases de datos convencionales como Derby, proporciona una API de capa superior a través de IRepositoryItemService e IQueryService para encapsular uniformemente la adición, eliminación, modificación y consulta de datos, y luego los traduce a SQL compatible con el fabricante de la base de datos específica. en la información de configuración y selección de la base de datos del usuario, y luego llama al JDBC subyacente para implementarlo. La operación de DBMS específicos protege así los problemas de diferentes implementaciones de estándares SQL por parte de diferentes proveedores de bases de datos y proporciona soluciones para el trasplante de aplicaciones de capa superior. diferentes bases de datos La segunda parte de esta serie de artículos tiene una introducción detallada al componente Repositorio y el uso del componente Responsable de los procesos comerciales de Jazz.

Gestión Proporciona el soporte subyacente para AOP para aplicaciones. La tercera parte de esta serie de artículos tiene una introducción detallada al componente de proceso. Estos dos componentes principales no dependen de ningún otro componente y, por lo tanto, cualquier otro componente puede depender de ellos. /p>

Modelo de programación

El desarrollo basado en la plataforma Jazz y el desarrollo basado en muchos marcos J ​​EE convencionales adoptan el modelo en capas MVC. Vale la pena mencionar que Jazz proporciona varias formas de servicios, como Restful. Por lo tanto, el servicio RPC y el servicio Http RAW proporcionan una interfaz basada en servicios relativamente unificada para diferentes tipos de acceso de clientes. Ya sea una interfaz de usuario web basada en Ajax o una interfaz de usuario de Eclipse basada en RCP, el mismo conjunto de servicios de back-end puede ser uniforme. utilizado sin ninguna modificación, proporciona soporte inherente para diferentes tipos de acceso a la interfaz de usuario. Su modelo se muestra en la siguiente figura

Figura Jazz Framework

Un componente de Jazz en una aplicación web típica. Los posibles paquetes incluyen

· El paquete común se utiliza para definir modelos de datos e interfaces de servicio similares a la capa de modelo de MVC

· El paquete de servicios se utiliza para implementar servicios similares a la capa de controlador de MVC

· El paquete de interfaz de usuario web se utiliza para implementar una interfaz de usuario similar a la capa de visualización de MVC

Por lo tanto, Jazz transforma un desarrollo web típico en una aplicación de desarrollo de complemento de Eclipse mediante Se pueden ampliar diferentes puntos de extensión para implementar las funciones correspondientes y tener una gran reutilización y escalabilidad. Un componente de Jazz puede depender de otros componentes de Jazz y llamar a los servicios proporcionados por los componentes dependientes. La aplicación solo necesita centrarse en las instancias de los servicios que llaman a diferentes servicios. proporciona desarrollo y mantenimiento de aplicaciones simplificados, que incorporan la idea de control inverso. Una cosa a tener en cuenta es que las dependencias entre los componentes de Jazz son unidireccionales y no pueden formar dependencias circulares directas o indirectas (es decir, no pueden depender de B). , B depende de A, o A depende de B, B depende de C, C depende de A)

Descripción general del diseño de PetStore

La aplicación de demostración de PetStore es una aplicación electrónica basada en Web. sistema de aplicación de comercio que implementará lo siguiente. Los principales casos de uso son consultar mascotas, comprar mascotas, publicar mascotas y ver registros de transacciones, como se muestra en la figura.

Figura: Diagrama de casos de uso de PetStore

Los usuarios pueden editar información relacionada con las mascotas a través de la plataforma PetStore y publicar las mascotas que desean vender. Puede explorar las mascotas vendidas por otros por clasificación, buscar información sobre mascotas, etc. Puede comprar las mascotas que le interesen y. consulte sus registros históricos de transacciones

En la aplicación de demostración Jazz PetStore, utilizamos un componente de Jazz PetStore para implementar. Su función incluye tres proyectos de complementos

·mon? declaración de interfaz

·ibm petstore service? implements service interface

·ibm petstore web? Implementa la interfaz de usuario de cliente pesado basada en JAF

A continuación tomaremos la capa del modelo. diseño de PetStore como ejemplo para presentar el proceso de persistencia de datos basado en Jazz

Persistencia de datos

La plataforma Jazz proporciona un marco de mapeo O R basado en EMF que puede ayudar a los desarrolladores a completar el modelado de bases de datos y persistencia de datos en forma de modelado EMF. Los desarrolladores solo necesitan diseñar sus propios objetos de entidad POJO (Plain Old).

Java Object) y POJO y proporciona información de metadatos basada en Jazz para objetos de entidad en el modelo Ecore de EMF. La herramienta de repositorio de Jazz generará automáticamente los POJO correspondientes según el modelo Ecore establecido y asignará estos POJO a las tablas de la base de datos. ; POJO gt; el objetivo de la persistencia de la base de datos. Por lo tanto, el modelo de almacenamiento de Jazz puede considerarse como un modelo Ecore con un formato especial para Jazz.

Todos los datos persistentes en Jazz se almacenan target=_blankgt; Los datos almacenados en el repositorio se denominan elemento. Cada elemento tiene su propio itemId y stateId. Jazz contiene dos tipos de datos diferentes: SimpleItem y Auditable. Son otros tipos de datos persistentes. La superclase SimpleItem del tipo de datos estandarizado. eso no necesita registrar la situación histórica. Auditable registra la situación histórica de los datos. Cada modificación de la entrada de datos generará un nuevo stateId. La diferencia es que para SimpleItem, solo se conserva el último stateId. El registro anterior no solo guarda el nuevo stateId, sino que también guarda los datos que se han modificado cada vez. Cada versión de datos corresponde a un stateId, y el historial de cada versión de estos datos se puede obtener a través del itemId de los datos. Registro

En nuestra aplicación de demostración, crearemos tres POJO para la categoría Vendedor del producto para almacenar datos persistentes. La categoría se usa para describir el tipo de información del vendedor. se usa para describir la mascota. Cada mascota tiene un tipo y un vendedor. Por simplicidad, no necesitamos mantener el historial de datos, por lo que usamos SimpleItem como su superclase. entre ellos es como se muestra en la figura. Tenga en cuenta que el contenido es un tipo de datos integrado en Jazz y se utiliza para guardar la información de la imagen

src= //img educity cn/img_ / / / jpg. border= ffan= done gt; Figura del modelo de datos de PetStore

Después de completar el diseño del modelo de datos de PetStore, a continuación presentaremos en detalle cómo completar el proceso de persistencia del modelo de datos basado en la función de mapeo OR. proporcionado por Jazz

Crear un paquete mon

A continuación, completaremos el primer paso del desarrollo de PetStore para crear un paquete mon y completaremos el desarrollo del modelo de datos de PetStore y crearemos un complemento. en el proyecto como se muestra en la figura

  src= //img educity cn/img_ / / / jpg border= ffan= done gt; Figura crear un proyecto de complemento

Especifique el nombre del proyecto (mon) y use la ubicación predeterminada. El entorno de destino está configurado en OSGi framework equinox como se muestra en la figura

src= //img educity cn/img_ / / / jpg border= ffan= done. gt; La figura especifica el nombre del proyecto

src= //img educity cn/img_ // / jpg border= ffan= done gt; La figura establece las características del complemento

en funciones que usan valores predeterminados aquí Si no necesita un activador, desmarque la casilla como se muestra

> src= //img educity cn/img_ // / jpg border= ffan= done gt; La figura configura la plantilla del complemento

Haga clic en Finalizar sin usar la plantilla para completar la creación del complemento. proyecto

Configuración Dependencias del complemento

Agregue las siguientes dependencias del complemento en el editor de manifiesto del complemento como se muestra en la figura

· re runtime

· eclipse emf ecore

· eclipse emf ecore sdo

· ibmmon

src= //img educity cn/img_ / / / jpg border= ffan= done gt; Figura configurando dependencias del complemento

Cree una carpeta de origen llamada src gen en el directorio raíz del complemento para almacenar el código generado automáticamente por el modelo Ecore en el futuro

Defina el modelo

La nueva carpeta de origen gt se denomina src gen. Cree un subdirectorio llamado models en el directorio raíz del complemento (como se muestra en la figura) y luego cree un nuevo ecore EMF. modelo en él; Otro gt; Ejemplo de asistentes de creación de modelos EMF gt; Modelo Ecore Nombra el modelo petstore ecore y mantén las otras opciones en sus valores predeterminados

src= //img educity cn/img_ /. // jpg border= ffan= done gt; Configuración de la figura para generar código Tabla de contenido

Ahora abra este modelo y verá un editor de modelo Ecore estructurado en árbol. Primero, debe agregar el repositorio ecore. proporcionado por Jazz a la referencia de recursos del modelo Ecore de petstore. Haga clic con el botón derecho en cualquier elemento del editor. Para el nodo, seleccione Cargar recurso en el menú contextual. Complete el siguiente URI en el cuadro de diálogo de selección de recursos. ubicación del repositorio ecore en su plataforma de destino: /plugin/ ibmmon/models/repository ecore

Tenga en cuenta que si el repositorio ecore no se encuentra en su plataforma de destino, deberá importar manualmente el complemento de ibmmon en su espacio de trabajo

Luego haga clic en el botón Aceptar y verá que el repositorio ecore se introduce exitosamente en Ecore. Luego seleccione el nodo EPackage en el editor (inicialmente nulo), haga clic derecho y seleccione Mostrar vista de propiedades. Editará las propiedades de cada nodo a través de la ventana de edición de propiedades. Primero configuramos los siguientes valores de propiedad para el nodo EPackage como se muestra en la figura

  src= //img educity cn/img_ /. // jpg border= ffan= done gt; Figura Propiedades del nodo EPackage

Agregue el subnodo EAnnotation en el nodo EPackage (haga clic con el botón derecho en PetStore EPackage y seleccione New Child gt; EAnnotation) y configure la siguiente fuente y detalles claves y valores para ello:

<

p>  cellPadding= border= gt; EAnnotation Fuente teamModel Detalles Clave de entrada clientProject Valor mon Detalles Clave de entrada clientSrcFolder Valor src gen

¿ClientProject está configurado en mon para representar el proyecto donde se almacenará el código generado? el futuro. clientSrcFolder representa el código generado automáticamente. Ingrese al directorio del código fuente y seleccione el src gen creado previamente. El propósito es separar el código generado automáticamente para su administración. Ahora agregue un sub-EPackage llamado petstore. el EPackage raíz y configúrelo de la siguiente manera: Valor de atributo:

src= //img educity cn/img_ / / / jpg border= ffan= done gt; Figura Atributo del nodo EPackage

Nota que el valor de Ns URI debe ser el mismo que el nombre del componente Consistente, por lo que debe ser ibm petstore

Agregue una anotación EA denominada teamPackage en este EPackage y establezca el siguiente valor de origen y claves y valores detallados a él:

cellPadding= border = gt; EAnnotation Fuente teamPackage Detalles Clave de entrada clientBasePackage Valor ibm Detalles Clave de entrada clientPackageSuffix Valor mon modelo Detalles Clave de entrada dbMapQueryablePropertiesOnly Valor verdadero

clientBasePackage representa el prefijo del paquete que almacena el código generado clientPackageSuffix representa el sufijo del paquete que almacena el código generado de esta manera. Con EPackage petstore, el código generado final se colocará en el paquete del modelo mon dbMapQueryablePropertiesOnly se establece en verdadero, lo que significa que en el código generado, solo el. las propiedades con la etiqueta consultable establecida en verdadero se asignan a la base de datos y en el QueryModel de la clase de persistencia. Proporcione los campos de consulta correspondientes

En este punto, ha completado los pasos necesarios para crear todos los modelos de persistencia. El modelo ecore en este momento debe ser como se muestra en la figura

src= //img educity cn/img_ // / jpg border= ffan= done gt

Diagrama ecore. model

Luego comenzamos a crear la EClass correspondiente para las tres clases de persistencia de Category Product Seller. Usaremos el proceso de creación de Category como ejemplo para ilustrar todo el proceso. para crear la EClass correspondiente al Producto y al Vendedor.

teamPackage es donde agregamos EClasses. En la EClass, debe definir lo que desea almacenar en el repositorio de Jazz.

¿Qué atributos tiene el objeto persistente? ¿Cuáles son los tipos y características de los atributos? Todo esto se completa agregando algunas etiquetas Jazz especiales que se referirán a estos valores de etiqueta cuando genere DDL SQL específico para crear tablas en el futuro. /p>

Primero, creamos una EClass llamada Categoría en teamPackage y especificamos su tipo ESuper como SimpleItem (aquí se usa SimpleItem en lugar de Auditable porque no necesitamos guardar la información histórica de la Categoría). nombrado para Categoría. EAttribute a esta EClass y establezca los siguientes atributos

CellPadding= border= gt; Nombre gt; EType gt; Límite inferior gt; EType representación de información El tipo de atributo. Límite inferior indica el número mínimo de apariciones. Rellenar indica que este atributo es obligatorio. Luego, también necesitamos. para agregar una anotación EAnnotations llamada queryableProperty al ID de EAttribute y configurarlo. Los siguientes valores fuente y claves y valores detallados

cellPadding= border= gt; EAnnotation Source gt; ? Detalles Entrada Detalles Clave de entrada gt; visibilidad única gt; Valor Valor ?verdadero

Establecer único en verdadero para indicar que el atributo de identificación debe ser único en la tabla de la base de datos. que este atributo sea visible en el POJO generado.

Luego agregue un EAttribute llamado nombre. Vaya a esta EClass y establezca los siguientes atributos.

CellPadding= border= gt; EType gt; EString Lower Bound gt;

También necesitamos agregar dos elementos al nombre EAttribute. Para cada anotación EAnnotations, primero agregue la anotación EAnnotations llamada queryableProperty y establezca el siguiente valor fuente y claves y valores detallados. ​

cellPadding= border= gt; EAnnotation Source gt; queryableProperty colSpan= gt; Detalles Entrada Detalles Clave de entrada gt; EAnnotations nombró teamProperty y estableció el siguiente valor de origen y claves y valores detallados

cellPadding= border =

gt; EAnnotation Source gt; teamProperty colSpan= gt; Detalles de entrada Clave de entrada gt; id dbStringSize Valor ?false ?SMALL

También necesitamos agregar una descripción denominada EAttribute a la categoría Agregar. El proceso es similar al nombre EAttribute y se omitirá aquí. El lector solo necesita repetir el proceso anterior. La única diferencia es que dbStringSize se ajusta a GRANDE para obtener un espacio de almacenamiento mayor que bytes.

Finalmente, agregamos una imagen llamada image a la Categoría. EReference y configuramos las siguientes propiedades

CellPadding= border= gt; image EType gt; p>

Establecer límite inferior en límite superior indica que cada categoría tiene solo una o más imágenes. Si a cada categoría se le permite tener varias imágenes, puede configurar el límite superior en esto. Lista de imágenes en el POJO de categoría generado.

Se construye la EClass de la categoría. Repita el proceso anterior para establecer la EClass de Producto y Vendedor. Una vez completado, se construirá todo el modelo ecore como se muestra en. la siguiente figura

src= //img educity cn/img_ // / jpg border= ffan= done gt ; Figura modelo ecore

A continuación ejecutamos la herramienta de generación de código proporcionada por Jazz para generar automáticamente desde el modelo ecore al código Java. Haga clic con el botón derecho en el archivo ecore de petstore en la vista del Explorador de paquetes y elija ejecutar Jazz Tools gt. De esta manera, todos los códigos de la capa de persistencia se generarán automáticamente en el directorio src gen. como se muestra en la figura

src= //img educity cn/img_ / / / jpg border= ffan= done gt; Figura generada Código de capa de modelo

Después de generar el código de capa de modelo , se completa el diseño y la persistencia de la capa del modelo de datos de PetStore. A continuación, se debe llevar a cabo el diseño y la implementación de la capa de servicios comerciales. Esto se presentará en la segunda parte de esta serie de artículos. p> Resumen

Este artículo presenta primero la arquitectura técnica y el modelo de programación de Jazz para brindar a los lectores una comprensión intuitiva de la plataforma tecnológica de Jazz y los métodos de desarrollo, y luego detalla cómo usar Jazz según el ejemplo de la aplicación PetStore. El mapeo OR de la plataforma completa el proceso de diseño y persistencia del modelo de datos.