![]() |
| Funcionalidad > Arquitectura de la Aplicación Funcionalidad: Adempiere ERP & CRMArquitectura de la AplicaciónDebido a que las aplicaciones de negocios cambian constantemente, es necesario utilizar nuevas tecnologías y siempre existe la necesidad de proveer soporte a funcionalidades adicionales. Las aplicaciones deben también soportar la incorporación de nuevas funcionalidades específicas para el cliente, aunque muchas veces no sean adecuadas para la integración con la funcionalidad central de la aplicación (por Ej. personalizaciones y ciertas extensiones). Si bien es sabido que los requisitos para las aplicaciones cambian constantemente, son pocas las que están diseñadas para resistir cambios y agregados. Estas aplicaciones de negocios pueden tener una larga expectativa de vida y tender a proporcionar mayor funcionalidad en el tiempo, por lo cual es muy importante proporcionar un buen armazón que permita administrar este crecimiento de complejidad. En caso contrario, si no están diseñadas para soportarlo, se volverán inestables al añadir funcionalidad extra a la aplicación base. Adempiere utiliza los siguientes principios de diseño a fin de crear una arquitectura que sea sustentable:
Adempiere tiene una Object Architecture (comparada con Object-Oriented, Object-like o las arquitecturas tradicionales), en la cual cada Objeto es tan independiente de otros Objetos como sea posible, incluyendo el desacoplado de las transacciones. Las primeras versiones de la arquitectura de Adempiere se diseñaron a mediados de los 80 utilizando Smalltalk, uno de los primeros lenguajes y ambientes verdaderamente orientado a objetos. Otras raíces de la arquitectura están basadas en el proyecto "Next Generation" de ADV/Org, que era muy similar al proyecto original R/3 de SAP. Interfase de Usuario Inteligente La interfase de usuario de la aplicación y las pantallas HTML son generadas en tiempo de ejecución, basada en reglas del Diccionario de la Aplicación. Como resultado se obtiene una interfase de usuario consistente, que permite navegar rápidamente en áreas de la aplicación que no son familiares. Esta metodología de generación de la interfase de usuario permite un rápido desarrollo y el sistema resultante es mucho más estable que en otras aplicaciones. Este método también permite que el layout de las pantallas pueda ser modificado o extendido y que se puedan generar nuevas pantallas, creadas por el administrador del sistema, sin necesidad de modificar el código; los usuario automáticamente ven las nuevas pantallas la próxima vez que ingresen a la aplicación. El Diccionario de Datos sabe de las estructuras y dependencias, permitiendo al usuario el acceso directo mediante zoom desde una lista a la ventana del dato, donde puede actualizarlo o ingresar nueva información. Esto permite que, por ejemplo, un usuario pueda ingresar un nuevo cliente mientras carga una orden, sin salir de la ventana original. Los usuarios pueden Consultar registros. Esto reduce el número de registros en una ventana, y le permiten ingresar uno o más criterios de selección en una ventana. Por otro lado, un usuario con los permisos adecuados, puede personalizar los layout de las ventanas y puede acomodar ventanas para una situación y cliente específico. Todos los usuarios pueden establecer valores por defecto en los campos de sus pantallas, a fin de evitar la selección de valores utilizados comúnmente. Reportes Inteligentes En muchas otras aplicaciones, los Reportes son entidades separadas o agregadas. Los reportes de Adempiere están basados en el diccionario de datos. Al tener acceso a la definición desde el visor de reportes, es posible navegar dentro de un reporte desde una entidad referenciada en él, hacia otros reportes. Los links son generados automáticamente y son señalados mediante un subrayado en el mismo reporte. La navegación está sujeta a las definiciones de acceso y seguridad que fueran configuradas oportunamente. Las Vistas de Negocios están diseñadas para los usuarios finales y permiten acceder a la información utilizando herramientas estándar de SQL, sin necesidad de crear joins de tablas con SQL. La mayoría de las Vistas de Negocio son generadas en base al Diccionario de la Aplicación. Las salidas de los reportes pueden ser vistas en pantalla antes de enviarlas a una impresora o generar archivos en diferentes formatos (por Ej. Excel, HTML, Word y PDF). Drill-downCuando utiliza drill-down se genera un nuevo reporte basado en la entidad seleccionada. Por ejemplo, en el reporte de una orden es posible navegar a las líneas de la misma haciendo un doble clic sobre la cabecera de la orden. Adicionalmente el drill-down está disponible con las transacciones. Por ejemplo:
Drill-acrossPermite crear un nuevo reporte al usuario donde se utiliza una entidad específica. Por ejemplo, en un reporte de producto, un usuario puede seleccionar una línea específica (producto); de allí navegar hacia el detalle de una orden o factura, que muestre solamente las líneas donde aparece dicho producto. Tipos de ReportesAdempiere proporciona tres tipos de reportes:
Las listas están basadas en información de las ventanas y es posible generar múltiples reportes para cada ventana en el sistema. Cualquiera de esos reportes pueden ser iniciados desde dentro de una ventana en particular o, alternativamente, colocarlos en el menú, incluyendo parámetros definidos por el administrador del sistema. Los visores OLAP proporcionan diferentes dimensiones (como cuentas, productos, clientes) que serán mostrados en formato tabular o gráfico. Adempiere brinda la información necesaria para mostrarla en el visor OLAP de terceros que seleccione el usuario. Los datos pueden ser almacenados también en datawarehouses de terceros que elija el usuario. Personalización de ReportesAdempiere diferencia la "vista" del "modelo". La aplicación provee un número de vistas estándar predefinidas, pero es posible que el usuario cree vistas adicionales de los datos utilizando sentencias Select SQL provistas por el mismo. A diferencia de otras aplicaciones, el usuario no necesita resolver referencias a claves foráneas (que requeriría conocer el modelo de datos) o preocuparse por la seguridad de los datos, ya que Adempiere resuelve esos temas de manera automática. Generalmente, la gente tiene diferentes preferencias en cuanto a la forma en que cada reporte debería mostrarse. Por ello Adempiere permite que el usuario defina los reportes a nivel del Sistema, Cliente, Organización o inclusive Usuario:
El lenguaje del reporte se encuentra basado en el lenguaje que el usuario escogió en el momento de ingresar a la aplicación y cada usuario puede tener uno diferente. La selección de datos se hace mediante los parámetros del reporte ingresados cuando se inicia el reporte, o mediante el panel de Consulta avanzado, lo cual permite al usuario ingresar un criterio en un estilo "consulta por ejemplo" ("query by example") extendido. Seguridad ante FallasGeneralmente las aplicaciones son diseñadas para ser seguras a fallas, lo cual asume que todos los trabajos y los datos son ingresados de manera correcta y consistente. En caso de fallas, los expertos deberán buscar las causas y verificar los daños producidos. El usuario normalmente nota el problema tiempo después que ha ocurrido y la realidad es que las aplicaciones algunas veces fallan. En contraste, Adempiere ha sido diseñado para ser seguro ante fallas. Cada transacción puede ser repetida y regenerada. Muchas de las fallas que se producen son identificadas por el sistema y el usuario puede intentar reparar el problema. En caso de no ser posible la recuperación, el error es aislado y el resto del sistema continúa trabajando. El diseño de transacciones desacopladas de Adempiere permite esta posibilidad. Cada transacción realiza solamente una tarea, por lo que es simple de estabilizar y aislar el impacto ante una falla, facilitando además su identificación. La comunicación entre las transacciones individuales está basada en mensajes, permitiendo lotes asincrónicos de transacciones. Así mismo, es más fácil de implementar funcionalidad adicional, y el costo de agregarla en Adempiere es mucho menor que en otras aplicaciones. El usuario puede continuar trabajando con restricciones menores si la transacción principal ( por Ej. un ajuste de inventario) es exitosa. Las transacciones restantes pueden ser generadas posteriormente, cuando el problema haya sido solucionado. El sistema regularmente verifica si una transacción está completa; en caso de no estarlo, o de no ser consistente, da una falla y el administrador y el usuario son informados de ello mediante un mensaje. A medida que las aplicaciones se van haciendo más complejas, la posibilidad de errores crece exponencialmente. Adempiere proporciona un marco o framework de validación, y si eso falla, aísla el problema asegurando una alta disponibilidad de las funciones centrales. Seguridad del SistemaAdempiere proporciona una infraestructura de seguridad completa y flexible para cumplir con las necesidades del usuario, y soporta función, seguridad de datos, como así también auditoria. La función de seguridad está basada en Roles de Usuario, la cual controla el acceso a Ventanas, Reportes y Procesos. Por otro lado, la seguridad de los datos está basada en Cliente y Organización, y es mantenida a nivel del contexto de seguridad de la base de datos. Este es un nivel adicional de seguridad posterior al login normal de usuario de la base de datos. Antes de acceder a cualquier dato, el usuario debe identificarse mediante un store procedure con un nombre de usuario, contraseña, rol y opcionalmente la preferencia de lenguaje. Todas las contraseñas se almacenan de manera encriptada. La funcionalidad de auditoria incluye registro de accesos (que funciones/datos fueron utilizados), registro de cambios (que datos fueron cambiados, que valor tenían y cuales se establecieron; incluyendo datos borrados), como así también archivos (documentos y reportes generados). Si bien, el tema de seguridad es complejo para desarrollar, se brindan algunos aspectos relacionados con el tema, que muestran la flexibilidad y poder que proporciona Adempiere. RolesDefinen el primer nivel de seguridad en Adempiere. Los usuarios ingresan a la aplicación con un Rol específico. Si bien un usuario puede tener muchos roles, el acceso a Adempiere se obtiene basado en el Rol que se escogió al momento de ingresar. Los roles definen la Organización , Ventanas, Procesos, Formularios, Workflows y Tareas (en adelante llamadas entidades) a las que el usuario puede acceder. El usuario no ve ítems de menú a los que no tiene acceso; no es que los tiene deshabilitados, sino que sencillamente no los puede visualizar. Los Roles también definen las acciones que el usuario puede efectuar en las entidades a las que tiene acceso. Control de RolesLa definición de Rol permite que una serie de acciones pueda ser habilitada o deshabilitada para cada Rol en particular:
Acceso a Datos por RolEs el segundo nivel de seguridad de Adempiere. Para un determinado Rol y privilegios, es posible además establecer el acceso a tablas, columnas o registros específicos. Por Ejemplo:
Bloqueo PersonalCuando un Rol tiene habilitado el Bloqueo aparece un icono de bloqueo en la barra de herramientas. El bloqueo en posición abierta, indica que el registro está abierto a todos los usuarios, mientras que en posición cerrada significa que solo está abierto para el usuario que lo bloqueó y para aquellos que tengan habilitado Acceso Personal. |
OpenVia, Avenida Libertador Bernardo O'Higgins 580, Oficina 601, Santiago de Chile. Telefono: 56 2 8404195 / 09 932 66 208 info@openvia.cl |