Un artículo sobre la predicción CART
Palabras clave comercio electrónico; sistema de simulación experimental; tecnología de código abierto Java
1 Introducción
En la actualidad, en la enseñanza de cursos relacionados con el comercio electrónico. En los colegios y universidades, existe una necesidad urgente. Establecer una plataforma de software experimental de comercio electrónico. La plataforma debe implementar los módulos funcionales de software necesarios, incluidos B2C, C2C, B2B, intercambio electrónico de datos (EDI), sistemas modernos de aplicaciones logísticas, finanzas electrónicas, autenticación de identidad de transacciones electrónicas seguras, etc. El rápido desarrollo del comercio electrónico ha planteado grandes desafíos a la tecnología de desarrollo de software. Debido a la compleja lógica interna, los estrictos requisitos de seguridad y las reglas comerciales rápidamente cambiantes del comercio electrónico, se requiere que la tecnología de desarrollo de sistemas de simulación experimental de comercio electrónico sea potente y flexible para satisfacer las necesidades de la enseñanza experimental del comercio electrónico.
En el diseño y desarrollo de sistemas de comercio electrónico, existen problemas urgentes que deben resolverse: mantenibilidad, escalabilidad, testabilidad, confiabilidad, alto rendimiento y seguridad. La arquitectura de software actual de N niveles resuelve bien los problemas anteriores. El sistema suele dividirse en capa de presentación, capa de lógica empresarial y capa de almacenamiento persistente.
Las especificaciones J2EE proporcionan especificaciones técnicas para el desarrollo de aplicaciones multicapa desde los aspectos de diseño, integración, rendimiento, seguridad y confiabilidad, como capa de presentación, marco de lógica de negocios, persistencia, transacciones, seguridad y registro. servicios espera. 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 muchos de ellos cuentan con excelentes tecnologías. La utilización de excelentes tecnologías de código abierto existentes puede reducir en gran medida el ciclo de desarrollo y el costo 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 maduro existente, los principales problemas que resuelve son los siguientes:
1) Encapsular los datos de entrada en la solicitud de la página web del cliente en un objeto de datos (solicitado) medio.
2) Verificar la validez de los datos en la solicitud WEB.
3) De acuerdo con las diferentes solicitudes de páginas web, se programa el procesamiento de los objetos de lógica empresarial correspondientes y los objetos de datos (solicitados) se pasan como parámetros.
4) El objeto de lógica de negocios devuelve el objeto de datos de resultado después de procesar las reglas de negocios.
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 relativamente maduros. El diseño y la implementación de este sistema utilizan de manera integral las tecnologías de código abierto mencionadas anteriormente y resuelven fácilmente los problemas anteriores.
WebWork es un marco web J2EE desarrollado por la organización de código abierto OpenSymphony y está comprometido con la componenteización y la reutilización de código. WebWork consta de Xwork1 y WebWork2***.
Xwork1 es simple, flexible y potente. Es una implementación de patrón de comando estándar y está completamente separada de la capa web. Xwork proporciona muchas características principales: interceptores de front-end, validación de atributos de formulario en tiempo de ejecución, conversión de tipos, un potente lenguaje de expresión y más. El interceptor es como un filtro, que se utiliza para interceptar llamadas de clientes y realizar algún procesamiento, como verificar la legalidad de las llamadas de clientes, implementar políticas de seguridad, respaldar transacciones, etc.
WebWork2 está construido sobre Xwork, que maneja respuestas y solicitudes HTTP. WebWork2 utiliza ServletDispatcher para convertir las solicitudes HTTP en acciones (la clase Action llama a los objetos de lógica empresarial para completar el procesamiento empresarial) e implementar el mapeo del alcance de la sesión y la aplicación, así como el mapeo de los parámetros de solicitud. Cada acción no depende de ninguna capa ni de ningún contenedor. Utilizan objetos de solicitud y respuesta a través de ActionContext, separando así la capa WEB de la capa lógica. Las acciones de Webwork se pueden ejecutar asignando ciertos valores de propiedad sin 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 verificar los datos de entrada: verificación del script Java de la página y verificación de datos antes de que el servidor ejecute el código lógico. El primero es difícil de garantizar la seguridad del sistema 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 un 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 el archivo de verificación correspondiente para cada clase de acción y también puede especificar archivos de verificación para los campos de atributos de la clase de acción. Finalmente, los interceptores se utilizan para ensamblar acciones y sus archivos de verificación, de modo que la capa lógica no necesite considerar una verificación de datos adicional, simplificando 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 gestionar 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 compuestos por muchas páginas. SiteMesh intercepta solicitudes y respuestas a través de filtros, agrega un decorador a la página original y luego devuelve el resultado al cliente. La página original decorada no conoce la decoración de SiteMesh, evitando así conflictos de página causados por el acoplamiento mutuo entre páginas. .
Este sistema adopta un diseño e implementación orientados a objetos. El sistema utiliza una base de datos relacional para administrar los datos. Debido a que los objetos persistentes en el sistema deben almacenarse en una base de datos relacional, genera el problema de mapeo entre ellos. objetos y relaciones. Es difícil asignar completamente los registros de tablas relacionales a las relaciones de objetos persistentes. Esto se refleja principalmente en la variedad de tipos de mapeo de relaciones de múltiples tablas y la dificultad para determinar el número de tablas de datos asociadas. Puede ser que una tabla se asigne a varios objetos persistentes y varias tablas se asigne a un objeto persistente. Es más probable que algunos campos de una tabla se asigne a un objeto persistente, mientras que otros campos se asigne a otros objetos persistentes. Si el objeto utiliza operaciones directas de base de datos para acceder a los miembros para implementar la programación de objetos persistentes, entonces la consulta de la base de datos del objeto persistente en la relación 1: n es en realidad 1 + n SQL, lo que inevitablemente conducirá a una disminución significativa en la eficiencia del acceso a la base de datos.
Hibernate es la mejor tecnología para el diseño de capas de persistencia, que resuelve elegantemente los problemas de mapeo de objetos y relaciones anteriores. Es de código abierto y gratuito, y la API también es abierta. Cuando sus propias funciones no sean suficientes, puede ampliarlas mediante su propia codificación.
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, lo que puede 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 realizar la simulación de sistemas de comercio electrónico y proporcionar a profesores y estudiantes una plataforma de software para experimentos relevantes. El objetivo es simular los procesos de negocio de las transacciones y las partes de gestión en un entorno de comercio electrónico, y facilitar que las partes de la transacción formulen las reglas de negocio correspondientes según sea necesario. Por tanto, el diseño del sistema debe poder adaptarse a cambios en las reglas de negocio sin reproducir realmente la implementación de determinadas funciones, como la implementación del servicio de autenticación de seguridad del centro de certificación en el subsistema de autenticación de seguridad. Además, el sistema también debe fortalecer el diseño funcional de la gestión de procesos experimentales 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 que los estudiantes puedan comprender fácilmente la relación entre operaciones relacionadas de diferentes procesos comerciales. e interactuar.
Con base en los objetivos anteriores, el sistema se divide en dos subsistemas: sistema empresarial y sistema experimental.
El sistema empresarial se divide en cinco subsistemas secundarios: sistema de banca electrónica, sistema de certificación, sistema de transacciones, sistema de gestión empresarial empresarial y sistema logístico. El sistema experimental se divide en dos subsistemas: sistema de autoservicio para estudiantes y sistema de gestión de experimentos para estudiantes.
En cada subsistema, los submódulos se dividen según diferentes roles de operador, como el "sistema comercial" (la estructura del sistema se muestra en la Figura 1), que se divide en sala de comercio y backend de empresa miembro. centro de gestión y comercio El fondo gestiona tres subsistemas.
En la gestión backend de las empresas miembro, se pueden enumerar varias empresas involucradas para que los estudiantes elijan en función de los roles comerciales que asumen actualmente. 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 las funciones de cada módulo. Evita el problema de algunos sistemas de simulación experimentales populares que requieren que los estudiantes recuerden varias contraseñas e inicien sesión repetidamente en el mismo experimento. , haciendo que los estudiantes se centren más en los procesos de negocio y mejoren la eficiencia experimental.
Figura 1 Diagrama de estructura del sistema comercial
El sistema experimental se divide en dos subsistemas: autoservicio para estudiantes 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 de los experimentos de los estudiantes y comprender los problemas comunes durante los experimentos de los estudiantes para obtener orientación oportuna.
El análisis y diseño del sistema adopta el lenguaje de modelado UML orientado a objetos. Después de analizar completamente los requisitos del sistema, se describió el modelo conceptual del sistema utilizando diagramas de casos de uso y diagramas de secuencia de UML, y luego se llevó a cabo el diseño detallado, se describieron los diagramas de clases y los diagramas de relaciones de clases del sistema, y se construyó un modelo de datos preliminar. fue establecido. La herramienta de modelado colaborativo de Borland se utiliza para realizar una conversión automática bidireccional entre el modelo del sistema, el código fuente y la base de datos.
Para satisfacer las necesidades de ingeniería de este desarrollo de sistemas, los desarrolladores se dividen en las siguientes categorías: a. Analistas de sistemas; b. Programadores de desarrollo de componentes backend (principalmente componentes de acción y lógica de negocios); Probador de interfaz de usuario (principalmente programador JSP + artista) 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 y la colaboración, lo que reduce en gran medida el tiempo que los desarrolladores dedican al intercambio de información y mejora la eficiencia. del 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 universitarios, el sistema puede ejecutarse en cualquier WEB que Cumple con las especificaciones J2EE Contenedores y las bases de datos relacionales más populares. Para el desarrollo de 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
/lib system Archivos de biblioteca de clases de terceros necesarios
/docs documentos de desarrollo del sistema
/directorio raíz de la aplicación ROOT WEB
/aplicación WEB ROOT WEB-INF directorio de configuración
/ROOT/
WEB-INF Directorio de archivos de código de bytes de clase Java
/ROOT _decorators página de decoración de cuadrícula del sitio
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 varias páginas decorativas. La información de configuración de las páginas decorativas principales en /WEB-INF/decorators.xml se enumera a continuación:
& ltdecorators default dir = "/_ decoradores " & gt;
& ltdecorator name = " main " page = " main . JSP " & gt;
<Pattern>*</pattern>
</decorator>
</decorators>
Decoración principal El diseño de la página main.jsp forma el popular " estructura de página superior izquierda, media e inferior derecha".
La parte superior muestra el logotipo del sistema y el enlace a la página de inicio, así como enlaces a los principales subsistemas. La parte inferior muestra la declaración de derechos de autor y la información de contacto. Las partes izquierda y derecha muestran los módulos de uso común. la página actual. El cuerpo principal de su página JSP es el siguiente:
& lttable width = " 100% " align = " center "
& lttr & gt& lttd width="134" valign =" top " >>p>
& ltpage:apply decorador name = " simple "
page = "/site mesh/left . JSP "/& gt;& lt/TD & gt ;& lt/tr & gt;
& lttr & gt& lttd width="488" valign="top "
& ltpage:apply decorador name = " simple " p>
page = "/site mesh/middle _ top . JSP "/& gt;& ltbr & gt
& ltdecorator:body/& gt;& ltbr & gt
& ltpage:apply decorador name = " simple "
page = "/site mesh/middle _ bottom . JSP "/& gt;& lt/TD & gt;& lt/tr & gt; p>
& lttr & gt& lttd width="122" valign="top " />
& ltpage:apply decorador name = " simple "
page = " /site mesh/right . JSP "/& gt; :
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 y configure 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
& lthibernate-mapping package = " com . un . eclab " & gt;
& ltclass name = " Customer " table = " Cliente " >>p>
& ltid name="id" column="CID "
& ltgenerator class="increment" />& lt/id & gt;
& ltproperty nombre = " nombre de struser " columna = " nombre de usuario "/& gt.
& ltproperty name = " str contraseña " columna = " contraseña "/& gt;
& lt/class & gt; mapeo>
Cuando necesite conservar un objeto de cliente, use el siguiente código:
SessionFactory sf =
newConfiguration(). configurar().
buildSessionFactory();
sesión sesión = SF . opensession();
transacción tx = sesión .begin transacción();
Cliente cliente = nuevo cliente(
cliente.setUsername("nombre del cliente");
cliente set contraseña("contraseña del cliente"); ;
tx . commit();
session . close();
4.3 Implementación de la capa de lógica de negocios
Con sistema de comercio Por ejemplo, las clases principales implementadas por este subsistema son las siguientes (Tabla 2):
Nombre de clase función principal
La interfaz de clase de producto IProduct estandariza las operaciones principales de la clase de producto y se adapta Diferentes empresas tienen diferentes requisitos para las categorías de productos.
Clase de producto Product, implementa la interfaz Iproduct. Las empresas pueden heredar esta categoría y gestionar sus propios productos.
La clase de carrito de compras del centro de transacciones EccCart puede administrar múltiples tipos de transacciones.
Categoría de carrito de compras EccCartItem
Categoría de pedido EccOrder
Clase de opción empresarial de opción, gestiona reglas de negocio.
Tabla 2 Lista de los principales tipos de sistemas comerciales
A través de la cooperación de las categorías anteriores, se realiza la principal lógica empresarial del sistema comercial.
5 Conclusión
En general, 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., lo que reduce en gran medida el costo de La complejidad y el costo de desarrollo del sistema pueden adaptarse a las necesidades cambiantes de los usuarios y tener amplias perspectivas de aplicación.