Busco un trabajo con puntuación alta sobre la aplicación de JAVA en virtualización. El material es urgente. Buscando expertos.
Resumen Este artículo presenta cómo utilizar tecnologías de código abierto JAVA como WebWork, Sitemesh e Hibernate para diseñar e implementar un sistema de simulación experimental de comercio electrónico y proporciona la estructura, las funciones y los planes de implementación del sistema.
Palabras clave comercio electrónico; sistema de simulación experimental; Java; tecnología de código abierto
1 Introducción
En la actualidad, la enseñanza de las carreras de comercio electrónico en las universidades y Las universidades necesitan con urgencia establecer una plataforma de software experimental de comercio electrónico, que debería implementar módulos funcionales de software esenciales para la implementación del comercio electrónico, incluidos B2C, C2C, B2B, intercambio electrónico de datos (EDI), sistemas modernos de aplicaciones de logística, finanzas electrónicas, electrónica segura. autenticación de identidad de transacciones, etc. El rápido desarrollo del comercio electrónico ha planteado grandes desafíos para la tecnología de desarrollo de software. Debido a la compleja lógica interna del comercio electrónico, los estrictos requisitos de seguridad y los rápidos cambios en las reglas comerciales, esto requiere la tecnología de desarrollo de sistemas de simulación experimentales de comercio electrónico. ser potente, flexible para adaptarse a las necesidades de la enseñanza experimental del comercio electrónico.
En el diseño y desarrollo de sistemas de comercio electrónico, los problemas que es necesario resolver urgentemente son: facilidad de mantenimiento, facilidad de expansión, capacidad de prueba, confiabilidad, alto rendimiento y seguridad. La arquitectura de software actual de N niveles resuelve mejor los problemas anteriores. El sistema generalmente se divide en capa de presentación, capa de lógica empresarial y capa de almacenamiento persistente.
La especificación J2EE tiene como objetivo el diseño, la integración, el rendimiento, la seguridad y la confiabilidad de aplicaciones multicapa y proporciona la capa de presentación, el marco de lógica empresarial, la persistencia, las transacciones, la seguridad y la confiabilidad para el desarrollo de sistemas de aplicaciones. Especificaciones técnicas de servicios logísticos y otros aspectos. En la actualidad, los proyectos de código abierto que cumplen con las especificaciones J2EE están surgiendo como hongos después de una lluvia primaveral, y entre ellos hay muchas tecnologías excelentes. La utilización de excelentes tecnologías de código abierto existentes puede reducir en gran medida el ciclo de desarrollo y los costos de desarrollo de los sistemas de aplicaciones, al tiempo que mejora la flexibilidad de todo el sistema.
2 La tecnología de código abierto utilizada en este sistema
Para el marco de aplicación WEB más maduro existente, los principales problemas que resuelve no son más que las siguientes partes:
1) Encapsule los datos de entrada en la solicitud de la página WEB del cliente en un objeto de datos (solicitud).
2) Verificar la licitud de los datos en la solicitud WEB.
3) De acuerdo con las diferentes solicitudes de páginas WEB, programe el procesamiento de los objetos de lógica empresarial correspondientes y pase los objetos de datos (solicitud) como parámetros.
4) Una vez que el objeto de lógica empresarial completa el procesamiento de las reglas comerciales, devuelve un objeto de datos de resultado.
5) Mostrar los datos del objeto de datos del resultado al usuario a través de la capa de presentación.
6) Almacenamiento persistente de entidades comerciales.
Los proyectos de código abierto como WebWork2, Sitemesh, Hibernate, Junit, XDoclet y Ant son todos proyectos de código abierto muy maduros. El diseño y la implementación de este sistema resuelven los problemas anteriores muy fácilmente mediante la utilización integral de las tecnologías de código abierto mencionadas anteriormente.
WebWork es un marco web J2EE desarrollado por la organización de código abierto OpenSymphony y dedicado a la componenteización y la reutilización de código. WebWork consta de dos proyectos, Xwork1 y WebWork2***.
Xwork1 es simple, flexible y potente. Es una implementación del modo Comando estándar y está completamente separado de la capa web. Xwork proporciona muchas funciones principales: interceptor de front-end, validación de atributos de formulario en tiempo de ejecución, conversión de tipos, potente lenguaje de expresión, etc. El interceptor es como un filtro. Se utiliza para interceptar llamadas de clientes y realizar algún procesamiento sobre ellas, como verificar la legalidad de las llamadas de clientes, implementar políticas de seguridad, respaldar transacciones, etc.
WebWork2 está construido sobre Xwork y maneja respuestas y solicitudes HTTP. WebWork2 utiliza ServletDispatcher para convertir solicitudes HTTP en acciones (la clase Acción llama a objetos de lógica empresarial para completar el procesamiento empresarial) e implementa el mapeo del alcance de la sesión y la aplicación, así como el mapeo de parámetros de solicitud.
Cada Acción no depende de ninguna capa o contenedor. Utilizan objetos de solicitud y respuesta a través de ActionContext para lograr la separación de la capa WEB y la capa lógica. La acción de Webwork se puede ejecutar asignando ciertos valores de atributos sin tener que iniciar el contenedor web para realizar pruebas, lo que mejora la capacidad de prueba de los componentes WEB.
WebWork2 admite representación de múltiples vistas y la parte de vista puede usar JSP, Velocity, FreeMarker, JasperReports, XML, etc.
En el desarrollo de aplicaciones web, a menudo nos enfrentamos al dolor de cabeza de cómo garantizar la legalidad de los datos de entrada. Hay dos formas de implementar la verificación de datos de entrada: verificación de página Java Script y verificación de datos antes de ejecutar el código lógico en el lado del servidor. La seguridad del sistema del primero no se puede garantizar y generalmente se utiliza como tecnología auxiliar para la verificación de los datos de entrada.
WebWork utiliza el marco de verificación de Xwork para el procesamiento de verificación, que se puede activar configurando el interceptor. Puede especificar un archivo de verificación xml para cada clase que deba verificarse y también puede especificar diferentes archivos de verificación xml para una clase en diferentes circunstancias. WebWork puede especificar un archivo de verificación correspondiente para cada clase de Acción y también puede especificar un archivo de verificación para los campos de atributos de la clase de Acción. Finalmente, la acción y sus archivos de verificación se ensamblan mediante interceptores, de modo que la capa lógica no necesita considerar una verificación de datos adicional, lo que simplifica la lógica de procesamiento empresarial.
Sitemesh es también uno de los marcos de aplicaciones j2ee desarrollados por la organización de código abierto opensymphony. Se utiliza principalmente para administrar el diseño de páginas web y se compromete a proporcionar funciones unificadas de estilo, navegación y diseño para sitios web grandes. compuesto por muchas páginas. SiteMesh intercepta la solicitud y la respuesta a través de filtros, agrega una determinada decoración (Decorator) a la página original y luego devuelve el resultado al cliente, y la página original decorada no conoce la decoración de SiteMesh, evitando la inclusión mutua de páginas. Acoplamiento entre páginas.
Este sistema adopta un diseño e implementación orientados a objetos, y el sistema utiliza una base de datos relacional para administrar los datos, porque los objetos persistentes en el sistema deben almacenarse con la ayuda de una base de datos relacional, lo que genera El problema del mapeo de objetos y relaciones. Es difícil asignar completamente los registros de la tabla de relaciones a la relación de los objetos persistentes. Esto se refleja principalmente en la variedad de tipos de asignación de relaciones de varias tablas, y es difícil determinar el número de tablas de datos asociadas. La tabla asigna múltiples objetos persistentes, y algunas Es posible que varias tablas se asignen a un objeto persistente. Es más probable que algunos campos de la tabla estén asignados a un objeto persistente, pero otros campos estén asignados a otros objetos persistentes. Si un objeto utiliza operaciones directas de base de datos para acceder a los miembros para implementar la programación de objetos persistentes, la consulta de un objeto persistente con una relación 1:N es en realidad 1+n veces de SQL a la base de datos, lo que inevitablemente provocará una caída significativa en el acceso a la base de datos. eficiencia.
Hibernate es la mejor tecnología para el diseño de capas de persistencia. Resuelve elegantemente los problemas de mapeo de varios objetos y relaciones mencionados anteriormente. Es de código abierto y gratuito, con una API abierta. Cuando sus propias funciones no son suficientes, puede codificarlo usted mismo para ampliarlo.
Junit se utiliza para pruebas unitarias de módulos de clase. XDoclet y Ant son excelentes herramientas de código abierto que admiten la reconstrucción automática de proyectos y la generación automática de documentos. Pueden mejorar en gran medida la eficiencia y la calidad del trabajo de los programadores.
3 Diseño general del sistema
El objetivo principal de este sistema es implementar un sistema de comercio electrónico simulado para proporcionar una plataforma de software para que profesores y estudiantes realicen experimentos relevantes. El objetivo es simular transacciones en un entorno de comercio electrónico y gestionar los procesos comerciales de todas las partes y, al mismo tiempo, facilitar que las partes formulen las reglas comerciales correspondientes según sea necesario. Por lo tanto, el diseño del sistema debe poder adaptarse. cambios en las reglas comerciales. No es necesario ser realista en la implementación de algunas funciones de reproducción, como la implementación del servicio de autenticación de seguridad del centro de autenticación en el subsistema de autenticación de seguridad. Además, este sistema también debería fortalecer el diseño funcional de la gestión del proceso experimental para que los profesores y estudiantes puedan comprender rápidamente el proceso y el progreso del experimento, y puedan procesar automáticamente los resultados experimentales y proporcionar consultas relevantes.
En un experimento, los estudiantes generalmente desempeñan una variedad de roles comerciales diferentes en múltiples empresas virtuales. El sistema debe proporcionar una función de cambio rápido de roles para facilitar que los estudiantes comprendan la relación entre las operaciones relacionadas con diferentes procesos comerciales. influencia mutua.
Con base en los objetivos anteriores, el sistema se divide en dos subsistemas principales: sistema empresarial y sistema experimental.
El sistema empresarial*** se divide en cinco subsistemas secundarios: sistema de banca electrónica, sistema de autenticación, sistema de transacciones, sistema de gestión empresarial empresarial y sistema de logística. El sistema experimental se divide en dos subsistemas: autoservicio estudiantil y gestión experimental, que son utilizados por estudiantes y profesores respectivamente.
En cada subsistema, los submódulos se dividen según diferentes roles de operador, como "sistema de comercio" (la estructura del sistema se muestra en la Figura 1), que se divide en "sala de comercio", "miembro gestión de backend empresarial", ""Gestión detrás del escenario del centro de comercio" tres subsistemas En la gestión de backend de las empresas miembro, se pueden enumerar varias empresas involucradas para que los estudiantes elijan según los roles comerciales asumidos por los estudiantes actuales. Todo el sistema utiliza verificación de inicio de sesión único, lo que reduce las operaciones de inicio de sesión de los estudiantes cuando usan cada función del módulo y evita el problema de que algunos de los sistemas de simulación experimentales más populares actualmente requieren que los estudiantes memoricen múltiples contraseñas y requieran múltiples inicios de sesión en el mismo experimento. Permitir que los estudiantes presten más atención a los procesos comerciales y mejorar la eficiencia experimental.
Figura 1 Diagrama estructural del sistema de comercio
El sistema experimental se divide en dos subsistemas: autoservicio estudiantil y gestión experimental. A través del subsistema de autoservicio estudiantil, los estudiantes pueden consultar las tareas experimentales asignadas por el docente, los resultados de los experimentos y los principales errores en los pasos de la operación experimental, para comprender las deficiencias y realizar mejoras oportunas. A través del módulo de gestión de experimentos, los profesores pueden organizar tareas experimentales, consultar el progreso y los resultados experimentales de los estudiantes y comprender los problemas comunes durante los experimentos de los estudiantes para poder brindar orientación oportuna.
El análisis y diseño del sistema se realiza utilizando el lenguaje de modelado UML orientado a objetos. Después de un análisis suficiente de los requisitos del sistema, se describió el modelo conceptual del sistema mediante diagramas de casos de uso y diagramas de secuencia de UML, y luego se llevó a cabo un diseño más detallado, se dibujaron los diagramas de clases y los diagramas de relaciones de clases del sistema y se obtuvieron datos preliminares. se estableció el modelo. Al utilizar la herramienta de modelado Together de Borland, logramos una conversión automática bidireccional del modelo del sistema, el código fuente y la base de datos.
Para satisfacer las necesidades de ingeniería del desarrollo de este sistema, los desarrolladores se dividen en las siguientes categorías: a. Analistas de sistemas; b. Programadores de desarrollo de componentes backend (principalmente clases de acción y clases de lógica de negocios); Probadores de componentes backend; d. Programadores de interfaz de usuario front-end (principalmente programadores + artistas de JSP); Mediante la combinación de Sitemesh y WebWork, se logra el desarrollo y las pruebas independientes de la interfaz de usuario y los componentes en segundo plano de cada módulo, lo que favorece la división del trabajo, reduce en gran medida el tiempo que los desarrolladores dedican al intercambio de información y mejora la eficiencia de desarrollo del sistema.
4 Implementación del sistema
4.1. Entorno operativo
Para adaptarse a la diversidad de entornos de software de sistemas informáticos en colegios y universidades, este sistema puede ejecutarse en cualquier contenedor WEB estándar J2EE para las bases de datos relacionales más populares. Al desarrollar este sistema se seleccionaron los proyectos de código abierto Tomcat y Mysql.
4.2 Configuración de la aplicación WEB
Debido a limitaciones de espacio, solo se enumera cierta información de configuración clave. Según la especificación J2EE, la planificación de directorios de este sistema es la siguiente (Tabla 1):
Descripción del subdirectorio del directorio principal
/ src Código fuente de la clase Java
/ sistema lib Archivos de biblioteca de clases de terceros necesarios
/ documentos de desarrollo del sistema docs
/ directorio raíz de la aplicación ROOT WEB
/aplicación WEB ROOT WEB-INF directorio de configuración
p>/ROOT/
clases WEB-INF directorio de archivos de código de bytes de clase Java
/ROOT _decorators página del decorador sitemesh
Tabla 1 Estructura del directorio del sistema
En /ROOT/WEB-INF, se almacenan archivos de configuración como web.xml, sitemesh.xml y decorators.xml.
Configuración de la capa de vista WEB:
Este sistema ha diseñado múltiples páginas de decoración. La información de configuración de la página de decoración principal en /WEB-INF/decorators.xml se enumera a continuación:
Diseñe la página en la página decorativa principal main.jsp para formar un "más popular" Estructura de página superior: izquierda, media, inferior derecha. La parte superior muestra el logotipo del sistema y los enlaces a la página de inicio, y los enlaces a cada subsistema principal. La parte inferior muestra la declaración de derechos de autor y la información de contacto. Módulos de uso común. La parte central muestra las principales operaciones funcionales de la página actual. La parte principal de la página JSP se enumera a continuación:
page="/sitemesh/left.jsp"/> |
page="/sitemesh /middle_top.jsp"/> página ="/ sitemesh/middle_bottom.jsp"/> |
< página:applyDecorator nombre="simple" page="/sitemesh/right.jsp"/> |
Configuración de la capa de persistencia Hibernate:
Primero configure la información de conexión de la base de datos de Hibernate a través del archivo clases/hibernate.cfg.xml. Luego cree un archivo .hbm.xml con el mismo nombre que la clase en el directorio donde se debe conservar cada archivo binario de clase para configurar la correspondencia entre los atributos de clase y los campos en la tabla de datos y el mapeo entre clases. El siguiente es el contenido de Customer.hbm.xml.
Cuando necesite conservar el objeto Cliente, utilice el siguiente código:
SessionFactory sf =
new Configuration().configure().buildSessionFactory(); p >
Sesión sesión = sf.openSession();
Transacción tx = session.beginTransaction();
Cliente cliente = nuevo Cliente();
cliente.setUsername("nombre de cliente");
cliente.setPassword("contraseña de cliente");
session.save(cliente);
tx. commit ();
session.close();
4.3 Implementación de la capa de lógica de negocios
Tomando el sistema de comercio como ejemplo, las principales clases implementadas por este subsistema se enumeran. El resultado es el siguiente (Tabla 2):
Funciones principales del nombre de clase
IInterfaz de clase de producto IProduct, estandariza las operaciones principales de la clase de producto, y se adapta a los requisitos de diferentes empresas para clases de productos.
La clase de producto Product implementa la interfaz Iproduct. Cada empresa puede heredar esta clase para administrar sus propios productos.
La clase de carrito de compras del centro de transacciones EccCart puede administrar múltiples tipos de transacciones.
Clase de subelemento del carrito de compras EccCartItem
Clase de orden EccOrder
Clase de opción empresarial EnpOptions, reglas comerciales de gestión
Tabla 2 Clases principales de la lista del sistema comercial
A través de la colaboración mencionada anteriormente, se realiza la principal lógica empresarial del sistema comercial.
5 Conclusión
En términos generales, el uso de tecnología de código abierto para diseñar sistemas de simulación experimentales de comercio electrónico tiene las ventajas de un ciclo de desarrollo corto, alta flexibilidad del sistema, fácil desarrollo y mantenimiento. etc., en gran medida reduce la complejidad y los costos de desarrollo del sistema, puede adaptarse a las necesidades cambiantes de los usuarios y tiene amplias perspectivas de aplicación.