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.
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?
|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.
- 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
- 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
- Support Eclipse STS/IntelliJ IDEA integrated development tools
- Uses Java boiler-plate code generator Project Lombok
- 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
- Spring Data MongoDB Repository with Secure Query Augmentation
- Data entity field names constant class generation for safe query statements in Java
- Entity Revision Audit
- 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
- 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.
|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?
|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|
|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
233-21300 Gordon Way
Richmond, BC V6W 1M2