SlideShare una empresa de Scribd logo
1 / 17
Moqui Ecosystem
Framework para crear Automatización de Procesos
Jens Hardings Perl <jhp@moit.cl>
Twitter: @jenshp
8 de enero de 2019
1 / 17
Parte I
Introducción a Moqui
2 / 17
Contenidos
1 ¿Qué es Moqui Ecosystem
3 / 17
Historia
2001: se crea OFBiz (Open For Business)
2006: OFBiz pasa a ser un proyecto de la Apache Software Foundation
2010: Inicio de desarrollo de Moqui
2011: Versión 1.0.0: versión inicial básica
2013: Versión 1.3.0 a 1.3.2: búsqueda full-text, notificaciones de usuarios,
optimización de performance (cache, transacciones, profiling)
2014: Versión 1.4.0: Bootstrap, gestión de transacciones, comunicaciones, . . .
2015: Versión 1.5.0 a 1.5.3: EntitySync, Impresión, Mensajería
System-System, mejoras de performance, estabilidad y escalabilidad
2016: Versión 1.6.0 a 1.6.2: REST API, performance, seguridad
2016: Versión 2.0.0: Hazelcast, docker, notificaciones vía websocket
2017: Versión 2.1.0: Client-rendering con Vue, gestión de BD y Wiki
Septiembre 2018: Moqui Ecosystem Open Source Conference en SLC, Utah
2018: Versión 2.1.1: Limpieza y consolidaciones
4 / 17
¿Qué es Moqui?
Framework
Agrupación de Herramientas: librerías y productos externos ya pre-configuradas
y probadas
Conceptos consistentes: diseñado para trabajar en conjunto
Código pequeño, flexible y simple
Sin mapeo de objetos: entidades, servicios, JSON/XML, screen/form, etc.
Basado en 15+ años de experiencia con Apache OFBiz y cientos de
implementaciones
Ecosistema
Artefactos de Negocio: Mantle, SimpleScreens
Modelo de Datos: 499 entidades, 301 vistas
Librería de Servicios: 718 servicios
Elementos UI reusables: 226 pantallas, 690 formularios
Plantillas para documentos y reportes
Integraciones: EDI, Transbank, Factura Electrónica
Aplicaciones: HiveMind Service ERP, POP Commerce Retail, Wholesale ERP
Localizaciones (l10n, i18n)
5 / 17
Objetivo: entrega
Construir artefactos de negocio aplicables a producción desde el día 1 de
desarrollo (después del análisis, diseño y capacitación)
Permitir foco en requerimientos del negocio en lugar de matices técnicos
Habilitar escalamiento de servicios en producción
Facilitar proyectos pequeños, iterativos y grandes
6 / 17
Comparación con otros proyectos
Otros framework: Grails, Spring, Play, Zend, Rails, . . .
Generalmente enfocados en web y persistencia, sin capa de lógica
Mucho que interconectar y agregar para tener un conjunto completo de
herramientas
Esfuerzo relevante para iniciar
Desde simple: Autenticación (authc), Autorización (authz)
Hasta complejo: push data feeds, búsqueda, análisis, . . .
Alto volumen de código, muchos objetos, anotaciones y/o configuraciones
externas
7 / 17
El método Moqui Ecosystem
Conjunto integral de herramientas, basadas en mejores prácticas
Convención sobre configuración, configuración sobre código
RAD basado en scripts/plantillas: cosas comunes fáciles, todo es posible
Persistencia transparente y simple, capa web/UI flexible
Capa lógica basada fuertemente en servicios con gatillos ECA; para usar
internamente o como web service; validada, segura, transaccional,
concurrente
Autorización consciente de artefactos de SW (entidades, servicios, pantallas,
API REST, etc.)
Artefactos comerciales preexistentes para centrarse en la diferenciación
8 / 17
Mapeo de Objetos
¿Por qué no usar JPA, Hibernate, etc?
Sin mapeo objeto-relación (ORM), uso de estructuras de dato relacionales
Menos que escribir, depurar, mantener; reduce la persistencia a casi cero
API genérica y configuración para soportar persistencia, consultas, servicios
CrUD, REST y otras interfaces de Web Services, docuemntos JSON, push
data feeds y mucho más
Sin chequeo estático de tipos: igual que en bases de datos, web services,
etc; pruebas automatizadas son mejor práctica
Patrones similares en otros proyectos: sin objeto-servicios (como Restlet,
CXF); sin objeto-pantalla (como JSF, Struts), etc.
9 / 17
Escalando: despliegue en hardware
Desde microservicios e instancias pequeñas hasta grandes volúmenes de
datos y usuarios.
Servicio basado en silo único (ejecución local) o en partición lógica
(ejecución remota)
El stack completo puede ejecutarse embebido (JVM única), stand-alone o en
cluster
Base de datos relacional (H2, Derby, MySQL/MariaDB/Percona, Postgres,
Oracle, SQL Server, DB2, etc.)
Base de datos NoSQL (OrientDB, otras)
ElasticSearch para búsqueda facetada (razonada) y análisis
10 / 17
Escalando: tamaño del proyecto
Proyectos pequeños o iterativos y pequeños equipos
Construir, revisar, refactorizar, iterar en tiempo y esfuerzo mínimos
Expertos pueden construir a la velocidad de los requerimientos y diseños
Proyectos y equipos grandes
Herramientas de alto nivel y mejores prácticas mantiene consistencia de
artefactos
Modelo de datos y otros artefacots completos y flexibles ayudan a buena
integración de gran volumen de artefactos de nivel superior
11 / 17
Parte II
Desarrollo con Moqui
12 / 17
Parte III
Anexos
13 / 17
Glosario I
Activo Orig: Asset. Es una instancia específica de un objeto o servicio
descrito como Producto. 1
Autenticación (authc) Aspectos de seguridad relacionados con la identificación de
un sujeto o sistema, generalmente en base a sus credenciales
(logging in). 1
Autorización (authz) Aspectos de seguridad relacionados con la autorización que
tiene un sujeto o sistema (control de acceso). 1
Clase de Producto Orig: Product Class. Una partición de los productos (un
producto puede pertenecer solamente a una clase). Es específica al
dominio, por lo que no existe una definición a priori en Moqui
Framework. 1
Distribuidor Orig: Supplier. Es un Sujeto hace de intermediario entre el proveedor
y el minorista. Típicamente se refiere a productos y no servicios. 1
14 / 17
Glosario II
Fachada Orig: Facade. Una fachada corresponde a un punto de entrada que
se tiene a ciertas funcionalidades del sistema. El nombre proviene
del Patrón de Diseño Facade, y su objetivo es reducir la dependencia
y complejidad al interactuar con diferentes subsistemas. 1
Patrón de Diseño Los patrones de diseño son técnicas usadas para resolver tipos
de problemas que ocurren con frecuencia en el desarrollo y
arquitectura de software. 1, 10
Product Class ver . 1
Product Type ver Tipo de Producto (Product Type). 1
Producto Un producto en Moqui es la descripción de una clase de objetos o
servicios que pueden ser vendidos, comprados, almacenados,
usados y/o fabricados. Cualquier instancia real. 1, 10
15 / 17
Glosario III
Proveedor (Provider) Orig: Provider. Es el rol que tiene un Sujeto que provee
servicios. 1
Proveedor (Vendor) Orig: Vendor. Es una persona u organización que vende
productos (activos) a un cliente. El proveedor es el “dueño” del
producto, es decir quien define el nombre, código de barra, inicio y fin
de comercialización, etc.. 1
Provider ver Proveedor (Provider). 1
Sujeto Orig: Party. Es un ente (persona u organización) que participa a
través de algún rol en los procesos relevantes al sistema. 1, 11
Supplier ver Proveedor (Distribuidor). 1
16 / 17
Glosario IV
Tipo de Producto Orig: Product Type. Una partición de los productos que afecta la
forma en que Moqui los trata en los procesos standard. Ejemplos:
Activo, Uso de Activo, Bien Configurable, Digital (descarga), Activo
Digital, Uso de Instalación, Ensamblaje, Servicio, Virtual (con
variantes). 1
Usuario Un usuario es una persona (no una organización) que interactúa con
el sistema, y por tanto tiene credenciales (ej: nombre de usuario y
contraseña) con los cuales ingresar, y una definición de roles que le
permite acceder a ciertas funcionalidades del sistema. 1
Vendor ver Proveedor (Vendor). 1
16 / 17
Moqui Ecosystem
Framework para crear Automatización de Procesos
Jens Hardings Perl <jhp@moit.cl>
Twitter: @jenshp
8 de enero de 2019

Más contenido relacionado

PDF
Moqui Ecosystem. Framework Open Source para desarrollo de ERP y similares.
PDF
Microservicios - RabbitMQ
PPT
1127082.ppt
PPTX
Reestructuración y Optimización de una de una Aplicación Monolítica.
PPTX
S12-DAW-2022S1.pptx
PPTX
SOA Open Source
PPTX
Desarrollo de software basado en componentes
Moqui Ecosystem. Framework Open Source para desarrollo de ERP y similares.
Microservicios - RabbitMQ
1127082.ppt
Reestructuración y Optimización de una de una Aplicación Monolítica.
S12-DAW-2022S1.pptx
SOA Open Source
Desarrollo de software basado en componentes

Similar a Moqui framework intro (20)

PPTX
Arquitectura multicapa
PPTX
APIAddictsDays2020
PPTX
ingenieria web.pptx
PDF
SGCE 2014 micro services
PDF
Arquitectura de un sistema de informacion
PDF
Framework
PPTX
Fundamentos para el diseño de una RESTful API pragmática
PDF
API Agregadas y Computo Masivo
PPTX
Architecture Software 2022
PDF
Modelos de API Para El Diseño de Servicios
PDF
Especificación de Arquitectura de Software
DOCX
Israel tecnologias para desarrollo-web
PPTX
Fundam servclient
PPT
050608 architect academy webcast 1
PPT
Introduccion a la estructura de Fundeweb
PPTX
Introducción a desarrollo de micro servicios
PPTX
RAML
PDF
Modelos de sistema
PPT
Servidores de-aplicacion-1211055568915043-9
Arquitectura multicapa
APIAddictsDays2020
ingenieria web.pptx
SGCE 2014 micro services
Arquitectura de un sistema de informacion
Framework
Fundamentos para el diseño de una RESTful API pragmática
API Agregadas y Computo Masivo
Architecture Software 2022
Modelos de API Para El Diseño de Servicios
Especificación de Arquitectura de Software
Israel tecnologias para desarrollo-web
Fundam servclient
050608 architect academy webcast 1
Introduccion a la estructura de Fundeweb
Introducción a desarrollo de micro servicios
RAML
Modelos de sistema
Servidores de-aplicacion-1211055568915043-9
Publicidad

Más de Miguel Barrera_Maureira (7)

PDF
NTT Docomo. M-Stage visual Eggy 2001
PDF
M stage - NTT DoCoMo 2001
PDF
NTT Sharing data year 2001 Bilingual
PDF
NTT Docomo 2004 - Magazine - English Version - Japanese Phone Company
PPTX
Global Collaboration Framework between Asia (Japan) and South America (Chile)
PPT
Open Access Rol E Importancia V1
PDF
Plan estrategico de desarrollo digital
NTT Docomo. M-Stage visual Eggy 2001
M stage - NTT DoCoMo 2001
NTT Sharing data year 2001 Bilingual
NTT Docomo 2004 - Magazine - English Version - Japanese Phone Company
Global Collaboration Framework between Asia (Japan) and South America (Chile)
Open Access Rol E Importancia V1
Plan estrategico de desarrollo digital
Publicidad

Último (20)

PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
unidad 3 tecnología 8° básico: planificación y elaboración de un objeto
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
modulo seguimiento 1 para iniciantes del
PDF
Diapositiva proyecto de vida, materia catedra
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPT
Protocolos de seguridad y mecanismos encriptación
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
Curso de generación de energía mediante sistemas solares
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
la-historia-de-la-medicina Edna Silva.pptx
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
CyberOps Associate - Cisco Networking Academy
unidad 3 tecnología 8° básico: planificación y elaboración de un objeto
MANUAL de recursos humanos para ODOO.pdf
modulo seguimiento 1 para iniciantes del
Diapositiva proyecto de vida, materia catedra
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Protocolos de seguridad y mecanismos encriptación
TRABAJO DE TECNOLOGIA.pdf...........................
Sesion 1 de microsoft power point - Clase 1
Curso de generación de energía mediante sistemas solares
Guía 5. Test de orientación Vocacional 2.docx
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
la-historia-de-la-medicina Edna Silva.pptx

Moqui framework intro

  • 1. 1 / 17 Moqui Ecosystem Framework para crear Automatización de Procesos Jens Hardings Perl <jhp@moit.cl> Twitter: @jenshp 8 de enero de 2019
  • 2. 1 / 17 Parte I Introducción a Moqui
  • 3. 2 / 17 Contenidos 1 ¿Qué es Moqui Ecosystem
  • 4. 3 / 17 Historia 2001: se crea OFBiz (Open For Business) 2006: OFBiz pasa a ser un proyecto de la Apache Software Foundation 2010: Inicio de desarrollo de Moqui 2011: Versión 1.0.0: versión inicial básica 2013: Versión 1.3.0 a 1.3.2: búsqueda full-text, notificaciones de usuarios, optimización de performance (cache, transacciones, profiling) 2014: Versión 1.4.0: Bootstrap, gestión de transacciones, comunicaciones, . . . 2015: Versión 1.5.0 a 1.5.3: EntitySync, Impresión, Mensajería System-System, mejoras de performance, estabilidad y escalabilidad 2016: Versión 1.6.0 a 1.6.2: REST API, performance, seguridad 2016: Versión 2.0.0: Hazelcast, docker, notificaciones vía websocket 2017: Versión 2.1.0: Client-rendering con Vue, gestión de BD y Wiki Septiembre 2018: Moqui Ecosystem Open Source Conference en SLC, Utah 2018: Versión 2.1.1: Limpieza y consolidaciones
  • 5. 4 / 17 ¿Qué es Moqui? Framework Agrupación de Herramientas: librerías y productos externos ya pre-configuradas y probadas Conceptos consistentes: diseñado para trabajar en conjunto Código pequeño, flexible y simple Sin mapeo de objetos: entidades, servicios, JSON/XML, screen/form, etc. Basado en 15+ años de experiencia con Apache OFBiz y cientos de implementaciones Ecosistema Artefactos de Negocio: Mantle, SimpleScreens Modelo de Datos: 499 entidades, 301 vistas Librería de Servicios: 718 servicios Elementos UI reusables: 226 pantallas, 690 formularios Plantillas para documentos y reportes Integraciones: EDI, Transbank, Factura Electrónica Aplicaciones: HiveMind Service ERP, POP Commerce Retail, Wholesale ERP Localizaciones (l10n, i18n)
  • 6. 5 / 17 Objetivo: entrega Construir artefactos de negocio aplicables a producción desde el día 1 de desarrollo (después del análisis, diseño y capacitación) Permitir foco en requerimientos del negocio en lugar de matices técnicos Habilitar escalamiento de servicios en producción Facilitar proyectos pequeños, iterativos y grandes
  • 7. 6 / 17 Comparación con otros proyectos Otros framework: Grails, Spring, Play, Zend, Rails, . . . Generalmente enfocados en web y persistencia, sin capa de lógica Mucho que interconectar y agregar para tener un conjunto completo de herramientas Esfuerzo relevante para iniciar Desde simple: Autenticación (authc), Autorización (authz) Hasta complejo: push data feeds, búsqueda, análisis, . . . Alto volumen de código, muchos objetos, anotaciones y/o configuraciones externas
  • 8. 7 / 17 El método Moqui Ecosystem Conjunto integral de herramientas, basadas en mejores prácticas Convención sobre configuración, configuración sobre código RAD basado en scripts/plantillas: cosas comunes fáciles, todo es posible Persistencia transparente y simple, capa web/UI flexible Capa lógica basada fuertemente en servicios con gatillos ECA; para usar internamente o como web service; validada, segura, transaccional, concurrente Autorización consciente de artefactos de SW (entidades, servicios, pantallas, API REST, etc.) Artefactos comerciales preexistentes para centrarse en la diferenciación
  • 9. 8 / 17 Mapeo de Objetos ¿Por qué no usar JPA, Hibernate, etc? Sin mapeo objeto-relación (ORM), uso de estructuras de dato relacionales Menos que escribir, depurar, mantener; reduce la persistencia a casi cero API genérica y configuración para soportar persistencia, consultas, servicios CrUD, REST y otras interfaces de Web Services, docuemntos JSON, push data feeds y mucho más Sin chequeo estático de tipos: igual que en bases de datos, web services, etc; pruebas automatizadas son mejor práctica Patrones similares en otros proyectos: sin objeto-servicios (como Restlet, CXF); sin objeto-pantalla (como JSF, Struts), etc.
  • 10. 9 / 17 Escalando: despliegue en hardware Desde microservicios e instancias pequeñas hasta grandes volúmenes de datos y usuarios. Servicio basado en silo único (ejecución local) o en partición lógica (ejecución remota) El stack completo puede ejecutarse embebido (JVM única), stand-alone o en cluster Base de datos relacional (H2, Derby, MySQL/MariaDB/Percona, Postgres, Oracle, SQL Server, DB2, etc.) Base de datos NoSQL (OrientDB, otras) ElasticSearch para búsqueda facetada (razonada) y análisis
  • 11. 10 / 17 Escalando: tamaño del proyecto Proyectos pequeños o iterativos y pequeños equipos Construir, revisar, refactorizar, iterar en tiempo y esfuerzo mínimos Expertos pueden construir a la velocidad de los requerimientos y diseños Proyectos y equipos grandes Herramientas de alto nivel y mejores prácticas mantiene consistencia de artefactos Modelo de datos y otros artefacots completos y flexibles ayudan a buena integración de gran volumen de artefactos de nivel superior
  • 12. 11 / 17 Parte II Desarrollo con Moqui
  • 13. 12 / 17 Parte III Anexos
  • 14. 13 / 17 Glosario I Activo Orig: Asset. Es una instancia específica de un objeto o servicio descrito como Producto. 1 Autenticación (authc) Aspectos de seguridad relacionados con la identificación de un sujeto o sistema, generalmente en base a sus credenciales (logging in). 1 Autorización (authz) Aspectos de seguridad relacionados con la autorización que tiene un sujeto o sistema (control de acceso). 1 Clase de Producto Orig: Product Class. Una partición de los productos (un producto puede pertenecer solamente a una clase). Es específica al dominio, por lo que no existe una definición a priori en Moqui Framework. 1 Distribuidor Orig: Supplier. Es un Sujeto hace de intermediario entre el proveedor y el minorista. Típicamente se refiere a productos y no servicios. 1
  • 15. 14 / 17 Glosario II Fachada Orig: Facade. Una fachada corresponde a un punto de entrada que se tiene a ciertas funcionalidades del sistema. El nombre proviene del Patrón de Diseño Facade, y su objetivo es reducir la dependencia y complejidad al interactuar con diferentes subsistemas. 1 Patrón de Diseño Los patrones de diseño son técnicas usadas para resolver tipos de problemas que ocurren con frecuencia en el desarrollo y arquitectura de software. 1, 10 Product Class ver . 1 Product Type ver Tipo de Producto (Product Type). 1 Producto Un producto en Moqui es la descripción de una clase de objetos o servicios que pueden ser vendidos, comprados, almacenados, usados y/o fabricados. Cualquier instancia real. 1, 10
  • 16. 15 / 17 Glosario III Proveedor (Provider) Orig: Provider. Es el rol que tiene un Sujeto que provee servicios. 1 Proveedor (Vendor) Orig: Vendor. Es una persona u organización que vende productos (activos) a un cliente. El proveedor es el “dueño” del producto, es decir quien define el nombre, código de barra, inicio y fin de comercialización, etc.. 1 Provider ver Proveedor (Provider). 1 Sujeto Orig: Party. Es un ente (persona u organización) que participa a través de algún rol en los procesos relevantes al sistema. 1, 11 Supplier ver Proveedor (Distribuidor). 1
  • 17. 16 / 17 Glosario IV Tipo de Producto Orig: Product Type. Una partición de los productos que afecta la forma en que Moqui los trata en los procesos standard. Ejemplos: Activo, Uso de Activo, Bien Configurable, Digital (descarga), Activo Digital, Uso de Instalación, Ensamblaje, Servicio, Virtual (con variantes). 1 Usuario Un usuario es una persona (no una organización) que interactúa con el sistema, y por tanto tiene credenciales (ej: nombre de usuario y contraseña) con los cuales ingresar, y una definición de roles que le permite acceder a ciertas funcionalidades del sistema. 1 Vendor ver Proveedor (Vendor). 1
  • 18. 16 / 17 Moqui Ecosystem Framework para crear Automatización de Procesos Jens Hardings Perl <jhp@moit.cl> Twitter: @jenshp 8 de enero de 2019