Introducing YouBPM

YouBPM is a Rich Internet Business Applications development platform for building secure process-driven data-centric web applications with Sencha ExtJS, Java, Spring Boot, Alfresco Process & Content Services, and MongoDB. It integrates many mature open-source software frameworks and technologies to provide advanced architectural solutions for software developers to focus on building real-time applications that run in every modern browser.

What Applications Can Be Built Using YouBPM?

YouBPM is suitable for any data centric applications driven by BPMN processes that may require sophisticated document management repository such as CMS, CRM, Sales, HR, Accounting, and other software products that are traditionally realized in form of desktop or cloud applications. The platform helps building reliable, scalable, secure and efficient collaborative applications.

What makes YouBPM different and unique?

Scalable Application Blueprints

YouBPM provides advanced & scalable application architecture blueprints by separating communication and application concerns by connecting client side to the server side services in a clean, controlled & secured manner.

Real-Time Communication

Support of full-duplex real-time application messaging between client and server components to enable true user collaboration.

First-Class Enterprise Security

YouBPM provides first-class security aspects for client and server components to enable real-time messaging, data, command and business application security.

Real-time integrations with Alfresco Products

YouBPM also supports real-time integrations with Alfresco Process Services & Alfresco Content Services server applications using event-driven clustered group communication via plug-in API to simplify development of the process driven enterprise applications.

Ready to use starter applications

YouBPM provides end-user functionality with ready-to-use modules that support core system configuration, user management, system monitoring, security, etc.

What are the main features of YouBPM?

Feature Description
Rich UI for Single Page Application Integrates Sencha ExtJS UI widgets to support navigation, dashboards, grids, trees, filters, editors, charts, etc.
User Collaboration Provide framework for user collaboration and real-time data synchronization between active users
Performance & Scalability Support scalability and performance aspects for simultaneous work on big data
Data Validation & Business Rules Provides client & server level data and business rules validation
Enterprise Security Provides real-time integrated client/server applications command, data, business method and messaging security with fine-grained Resource Based Access Control permission model
System Administration Provides system configuration, monitoring, and application log auditing
Data Audit Provides data audit for tracking and analysis of any events and state changes
Business Intelligence Provide framework for collecting and processing of business intelligence data
Localization Provide framework for UI themes, localization, and user message customization

What are the features of YouBPM starter applications?

YouBPM provides the ready to use client and server starter modules to jumpstart application development.

Furthermore, YouBPM platform is distributed with a sample Sales Opportunity Close (SalesOpps) application where all these modules are integrated.

Modules List/Features

  • User Login/Logout
  • Forgot Password
  • Custom Themes Switching
  • User Profile Settings
  • User Management
  • Group Management
  • Role Management
  • Integrated Client and Server Log Viewer
  • User Access Audit Log Viewer
  • System Settings
  • Real-time Logged On Users Google Map Geo-coding
  • Documentation/Help Viewer
  • Excel/CSV File Grid Import Wizard
  • Real-time user collaboration using WebRTC (video, audio, chat, file exchange, “Skype-type”)
  • Custom Data Model Attributes
  • Batch Session Integration

Server Features

  • Automatic client application assets resources manifest management and delivery optimization.
  • Integrated Slf4j asynchronous database client/server applications event logging
  • Client proxy data model generation from annotated Java classes using Maven APT plug-in
  • Client application bootstrap using resource manifest
  • Client resource caching and bandwidth optimization using Service Worker JS API
  • I18n client/server message bundle localization

Development Tools

  • Support Eclipse STS/IntelliJ IDEA integrated development tools
  • Uses Java boiler-plate code generator Project Lombok

Communication

  • Data serialization/deserialization using Jackson
  • Powerful Client/Server JSON RPC via ExtDirect
  • ExtDirect Store JSON RPC CRUD operations
  • ExtDirect Form Post
  • ExtDirect File Upload
  • ExtDirect Server Poll
  • ExtDirect Exception Handling
  • Real-time full-duplex message broker using WAMP protocol via WebSockets
  • Clustered server-to-server communication using JGroups distributed communication framework
  • P2P Audio/Video communication message broker.

Application Business Domain

  • Command Query Request Segregation (CQRS) Event-Driven Architecture
  • Distributed Command Bus
  • Command Audit Log
  • Business Domain Event Sourcing
  • Business Aggregate Logic
  • Distributed Domain Event Handling

Data Access

  • Spring Data MongoDB Repository with Secure Query Augmentation
  • Data entity field names constant class generation for safe query statements in Java
  • Entity Revision Audit

Security

  • Integrates with Spring Security using aspect driven security permission control
  • Integrated Resource-Based Access (RBAC) permission model and policy configuration
  • Real-time server RBAC permission evaluation
  • ExtDirect RPC JWT authentication
  • ExtDirect CORS Server Policy Configuration
  • Two Factor User Authentication using Google Authenticator App
  • Command Bus security interceptor
  • Spring Data Repository security using Query Augmentation
  • Real-time WAMP messaging security
  • Real-time server/client permission synchronization

LDAP Integration

  • Real-time user/group directory synchronization using embedded LDAP server

Alfresco Process Services powered by Activiti BPM Integration

  • Process/Task Management (Process Start, Task Form UI with Complete)
  • Real-time process/task status synchronization
  • Real-time BPMN diagram viewer
  • Alfresco Process Services Community Plugin
  • Alfresco Process Services Enterprise Plugin
  • User/Group LDAP synchronization with YouBPM LDAP server

Afresco One Integration

  • File Upload
  • Browse, Add, Delete, Download files
  • Real-time file repository UI synchronization
  • User/Group LDAP synchronization with YouBPM LDAP server

Continuous Delivery, Integration and Testing

  • Git repository monitoring
  • Automatic Docker container build
  • Docker hub image push for deployment
  • AWS deployment Integration
  • Automatic BPMN process model deployment
  • Automated UI testing

What 3rd party software YouBPM uses?

This is the list of all the 3rd-party software needed for the standalone system (all of these software packages are free open-source and widely used). We have made many improvements and extended functionality of some key modules to fit our needs.

Name Description
Sencha ExtJS v6 YouBPM client application uses ExtJS JavaScript library. You need to have valid ExtJS6 license before you can use the YouBPM application. For more detail, please visit: www.sencha.com
Bryntum Scheduler YouBPM client application uses Bryntum JavaScript library. You need to have valid Bryntum license before you can use the YouBPM application. For more detail, please visit: www.bryntum.com
MongoDB v3.2+ YouBPM has about 10 tables for core application that uses MongoDB.
Java 1.8 Application backend is written with Java language.
Spring Boot  1.4+ Spring Boot Framework is a Java platform that provides comprehensive infrastructure support for developing and running Java server applications.
Spring Framework 4.3+ Spring Framework is a Java platform that provides sophisticated IoC and DI application container framework for developing Java Server applications.
Tomcat 8+ Embedded web application container via Spring Boot.
Alfresco Process Services powered by Activiti BPM Engine A standalone BPM engine that integrated via server plug-in interface.
Alresco Content Services powered by Alfresco One A standalone document and file repository integrated via server plug-in.
Apache POI An open source Java library to process MS Excel import and export.

What open-source modules does YouBPM use?

Framework Name Description Purpose
Sencha ExtJS Rich client UI application and widgets framework Provides comprehensive MVC/MVVM JavaScript framework for building feature-rich cross-platform web applications targeting desktops, tablets, and smartphones.
ExtClassGenerator Sencha JS data model generation from POJO models Generate Sencha JavaScript models from Java model
ExtDirectSpring ExtDirect RPC to Spring component method handling Provides implementation of Sencha Direct RPC protocol for Spring framework
Spring Boot Java IoC (inversion of Control) and DI (Dependency Injection) application platform To create and run Spring-powered, production-grade applications and services
Axon CQRS Command Query Request Segregation Framework with Aggregate Event Sourcing Provide infrastructure for separating of command and query requests with event sourcing for domain aggregates
Drools Engine Business Rule engine and data validation framework Provide managed business rules validation for business transactions
MongoDB Scalable and Flexible POJO document NOSQL persistence store Provide persistent document collection store for fast performance queries
MySQL Transactional database Provide ACID transaction and data persistence
WebSockets Browser/Server communication protocol to enable simultaneous publish/subscribe Full-duplex single socket connection over which messages can be sent between client and server
Jackson JSON serialization/deserialization for data model between client and server To enable transport of JSON objects between client and server
Spring WAMP Messaging Publish/subscribe web sockets messaging framework for Spring To broadcast data and events to all connected clients over Web Sockets from server
Alfresco Process Services by Activiti Process Management engine for BPMN  processes To provide human process workflow design, engineering, and testing
Spring Security Access Control List for data domain security To provide fine-grained domain object security layer
Spring LDAP LDAP Authentication and access authorization security To provide authentication and authorization against enterprise LDAP services
Project Lombok Java POJO boilerplate code automation for Eclipse JDT to reduce the prevalence of boileplate code by replacing them with a simple set of annotations.
Spring Data Flexible and extensible data repository framework To provide a familiar and consistent, Spring-based programming model for data access technologies, relational and non-relational databases, map-reduce frameworks, and cloud-based data services
Spring Data Audit Data change audit based on security context To support and transparently keep track of who created or changed an entity and the point in time this happened in user security context
Joda Time Joda Date Time library oda-Time provides a quality replacement for the Java date and time classes. Joda-Time is the de facto standard date and time library for Java.
Java Money Java Money API  API (JSR 354) provides a portable and extendible API for handling of Money & Currency models, Moneta provides a production ready reference implementation.
Java Optionals Java Optional library for better handling of non-null and nullable data Provide support for safe wrapping and checking of Null values
Spring Aspects Clean modularization of crosscutting concerns such as Security, Auditing, Persistence Provide crosscutting joints for security concerns
Eclipse or IDEA Java Integrated Development Environment (IDE) Provide Integrated Java development, build, and debugging environment
Maven Apache Maven is a software project management and comprehension tool. Provide build automation tool used primarily for Java projects.
JUnit JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks. Support writing and running tests in the Java programming language.
Mingo Mingo is a client side framework that implements Mongo query and aggregation pipeline language Support JSON data queries, projections, aggregations on the client side
Supergroup In-memory JavaScript data collection manipulation, grouping and aggregation functions Provides utility and convenience methods on the returned array of group values as well as on each of these specific group values. If a multi-level grouping is performed, each value’s children array also acts as a Supergroup list.
D3 A javascript to enable fast and beautiful visualizations. Create interactive visualizations to help explore data with nesting, tooltips, timelines, legends and forms
D3Plus A javascript library that extends the popular D3.js to enable and simplify fast and beautiful visualizations. Create interactive visualizations to help explore data with nesting, tooltips, timelines, legends and forms
Bryntum An interactive resource scheduling components that help visualize anything with a start and end date. Provide real-time asynchronous collaboration for task scheduling grid

What is YouBPM license?

Core YouBPM is available under a commercial or open-source license. YouBPM source code repository is hosted on GitHub , and the platform is available as a Maven package.

To use enterprise features of YouBPM to build applications or services that will only be used internally by organizations, customers need to buy End-User license.

If customer is intending to create a commercial product with YouBPM and licensed to any third parties, they will need OEM license.

Can YouBPM communicate with existing applications?

Yes, the architecture allows to easily extends functionality with pluggable Spring components that send commands via Distributed Command Bus and/or subscribe to Event Bus to implement integration with existing components.

Can I add custom UI functionality using YouBPM?

Yes, it is very easy to use existing templates and samples to implement additional functionality. Sencha ExtJS allows to build UI using rich widgets that work very well together to provide robust user experience without reloading browser page.

What browsers does YouBPM support?

Chrome, Firefox, Internet Explorer, Opera. Some advanced functionality like Web RTC is only natively supported by Chrome and Firefox.

Get In Touch

Contact Info

Office Address:
233-21300 Gordon Way
Richmond, BC V6W 1M2
Canada

Phone:
604-417-9878

Business Hours:
Monday-Friday:  9am-5pm

IntroPro Ventures Office