Skip to main content

Technology White Paper

Abstract

HAP is designed to meet the needs of enterprises in digital construction. Focusing on the complexity of backend applications, it extracts the data structure of high granularity, user roles, permissions, workflow and other definition capabilities, providing both developers and users a flexible platform to implement various enterprise applications.

HAP is a modern enterprise software product based on container technology. The public cloud edition runs on mingdao.com, while the container edition can run on the customer's own computing facilities via Docker.

Core Values:

Build enterprise apps without coding, Releash the user power by providing utter flexibity;

Get rid of DevOps process, Enable business engineering;

Speed up application implementation dramatically;

Make dataset unified by integrated application platform;

Provide common open platform for all applications created;

Intuitive and fluid interactive design;

Fully implemented with cloud-native technology stack.

1. Customer Value

HAP product is aimed at addressing key pain points in the digital construction of enterprises. Each value corresponds to a problem that enterprise IT users have been trying to solve. The no code/low code application platform integrates mature technologies in the fields of cloud computing, big data and application development and deployment environments, and is the main solution for enterprises in their digital transformation efforts.

(1) Ultimate flexibility and implementation

For information system construction around business management processes, such requirements are usually difficult to be met by off-the-shelf software products, but have to rely on tedious custom development. Custom development inevitably involves complex requirements communication, prototype validation and costly development, testing, deployment and improvement processes. APaaS, with paradigmization and high-granularity configurability, enables the entire process to be achieved through a no-code or low-code approach, replacing costly custom development and dramatically reducing the cost. In this way, not only is the first implementation fast and flexible, but APaaS still provides convenience when the system adjusts as the business changes.

(2) Data interconnectivity

There are data silos of applications existing among medium and large-scale enterprises. Some are from custom systems developed with different technology stacks, and some are from application software products of different brands. In the process of digital management, there is a need to connect these data silos to enable cross-application access to data or to precipitate application data into a data middleware. Thereby, a more flexible digital collaboration can be achieved.

(3) Open design

Enterprise applications built through HAP are automatically established with standard open interfaces (REST), and complete interfaces for all data objects to add, delete, check and modify. Webhook triggers and action nodes in the workflow can also be docked with other application APIs with no code. The front-end interface of HAP can be embedded in other application pages, and the pages of HAP can also be embedded in other applications.

(4) Easy-to-learn application building

Most of the application scenarios can be built in a no-code way. Although the product capabilities are in-depth, the interaction interface is simple and intuition-driven. Non-developers who are familiar with business processes can also get started.

(5) Cloud-native technology stack and cross-cloud deployment capability

HAP adopts a microservice architecture and makes extensive use of cutting-edge cloud-native technology stacks and mainstream open source frameworks, including Java, Node.js, MongoDB, MySQL, Redis, gRPC, ElasticSearch and Kafka. Through container technology and automatic operation and maintenance orchestration, it provides users with a highly resilient and reliable application operating environment. HAP can both run on public clouds and on any customer-owned computing facility. The functional features of both are the same.

2. Application Scope

With HAP products, users can build various enterprise middle and back end applications with no code, which, in general, includes the following application types:

(1) Core business management applications based on relational data structure

For the business management systems built around the core business in different industries, such as the purchase-sales-inventory system in the distribution industry, production execution, material management and equipment management systems in the manufacturing industry, project management system in the modern service industry, etc., the alternative to these scenarios can be to purchase a specialized suite of software products or to resort to custom development. While an APaaS product like HAP can provide the both of personalization, high flexibility and high development efficiency.

(2) Applications that rely on mobile applications to collect data

Application scenarios in manufacturing, engineering, retail, and other industries that require specific functional staff to collect data from the front line.

(3) Applications that write data and build management board with API interface

Extract data from multiple heterogeneous systems, precipitate them into a unified data center, and build a management cockpit in combination with the custom dashboard of this product. This application scenario replaces the BI+ETL solution with another way.

(4) Department-level applications for specific business segments

Because of the ease-to-use and code-free characteristics of no-code system, user companies can have non-developers from business departments directly build or lead some simple applications. With the unified application management capability, it can also prevent shadow IT problems.

(5) Applications built for process automation

The automated workflow based on HAP can bridge the past interrupted processes that require manual coordination, such as the automatic connection of orders, deliveries and invoices; time-triggered checklist generation, equipment maintenance reminders, contract expiration reminders, etc.

(6) Applications built to enable data flow, filling and approval processes

Build manually controlled workflow applications based on form data, approval and filling nodes for complex data collaboration.

Below is a list of over 30 common categories of enterprise applications and an assessment of the replacement capabilities of APaaS product.

NameFull NameDescriptionAPaaS Replacement Capability
ABMAccount Based MarketingABM is one of the more segmented of modern marketing strategies, and the related software products are a branch of MAS. It changes the traditional way of creating content and marketing campaigns, but generates highly personalized content based on each customer. It is more about the quality of customer communication than the quantity, so it is often used in B2B, luxury goods, airlines, high-end hotels, insurance and other industries.6
APSAdvanced Planning and SchedulingAPS refers to an application that helps to plan and schedule for manufacturing processes, focusing on optimal use of production materials and equipment resources, with the goal of maximizing capacity utilization.6
ATSApplication Tracking SystemIt is an application that manages the entire recruitment process of a company. Its main value is to integrate resume submission from external job websites and other resume pools, and to manage the entire process from resume submission to hiring of candidates. Most ATS systems come with the ability to help companies build their own talent pools.5
AccountingAccounting SoftwareFinancial software in a narrow sense refers to the recording of financial documents through double-entry bookkeeping, forming a financial general ledger and providing analysis of financial indicators. A complete financial suite also includes modules for purchasing and inventory tracking, invoice processing, the receivable and payable management, etc. An ERP suite in the complete sense should include a financial management component.8
BIBusiness IntelligenceBI is an important classification of enterprise software that is responsible for extracting data from various business data sources and building analytical databases, providing business analysis to management decision makers through visualization capabilities. Full-stack BI suites include data warehouses, ETL (data extraction, transformation, and loading) modules, OLAP query, and visual representation layers. BI is often integrated with other enterprise applications through databases and APIs.5
BPMBusiness Process ManagementBPM is a collection of abstract tools for managing and driving various process activities in an enterprise, enabling the design, operation and analysis of various business processes across functions. In practice, BPM is a tool to meet the needs of approval control and business automation. Most BPM software is designed to follow the BPMN specification, allowing visual creation of workflows, monitoring of workflow running, and providing the user interaction interfaces necessary for workflow operation. Emerging low-code development platforms have features that are crossover with BPM.9
CADComputer Aided DesignThis is an old software category that has continued from the PC era to the present. In the enterprise software category, it refers to design suites for the architectural and engineering, manufacturing, and entertainment media industries. Mature CAD suites provide not only design tools, but also components such as component libraries, material libraries, and design file management. The main users of CAD are engineers, interior designers, animators, architects and engineers.1
CAMComputer Aided ManufacturingIt is a twin product of CAD. Usually input design files, optimized material and equipment parameters in CAD applications and give final execution instructions to digital machinery and equipment. It is typically used in machining industries that use CNC machine tools and equipment. Some CAD vendors also have joint CAM products, which are also known as CAE (Computer Aided Engineering).1
CEMCustomer Experience ManagementCEM is an emerging category of enterprise software. It includes customer service systems in the general sense, but with a greater emphasis on touchpoints around the full customer lifecycle and omnichannel. Its product capabilities therefore include personalized delivery of customer portals, convenient and consistent customer service support systems, and digital experiences, with the goal of measuring and improving customer satisfaction at different stages.5
CMSContent Management SystemContent management systems mainly serve the management and deployment of enterprise website content. Conventional enterprise CMS includes management of news, web pages, blogs and e-commerce platforms, where business users can directly create and edit online content and publish without code writing. The domestic web environment attaches more importance to the management of mini programs and official accounts in the WeChat ecology, and related products also belong to the category of CMS in a broad sense.3
CRMCustomer Relationship ManagementIt is a very important category in enterprise software that is responsible for managing the business aspects of customer capture and sales. CRM in a broad sense includes sales automation, marketing automation and customer service automation, while in a narrow sense it refers to the sales funnel from lead acquisition to customer conversion. CRM products are numerous and are important players in the enterprise software market, so many CRM products are more or less extended to some business aspects other than sales. CRM in the standard sense requires the management of leads, opportunities, customers, contacts, products, orders, price lists, contracts and other basic business objects.8
CSCustomer SupportIt is also known as a work order management system or HelpDesk Software, which serves the customer service departments, providing cross-channel customer service platform capabilities and managing the full lifecycle of customer service work orders. Because of the specialized nature of phone support, there is also platform software that specifically serves call centers, and they also belong to this category. A complete CRM suite usually contains a customer service module. CS also crosses over with CEM (Customer Experience Management).7
DMPData Management PlatformAlthough it is a seemingly generic software category, it primarily refers to audience data management for online advertising. DMPs can collect and manage data about customers, audiences and campaigns from advertisers, advertising agencies and distribution media, so as to provide advertisers with detailed analysis and planning tools for online campaigns.0
DMSDocument Management SystemIt is an application used to manage documents shared within an enterprise, but it goes beyond basic file storage to include a series of enhanced features such as image scanning of documents, text recognition, version control, meta data management, format conversion, collaborative editing, permission control, template management, search, and electronic signature. So it is suitable for customers in industries with special or intensive requirements for document archive management.4
ERPEnterprise Resource PlanningIt is the core application for manufacturing and distribution enterprises, covering almost all business processes of such enterprises, managing key business aspects such as customers, sales, purchasing, warehousing and finance. Due to its comprehensiveness, there are also many enterprises that use ERP to refer to all integrated business systems, even non-manufacturing and trading industries, so in market practice, the boundary between it and CRM products is often not that clear .9
HRMHuman Resource ManagementIt is a comprehensive suite for managing HR-related business, including personnel records, compensation, benefits, performance, evaluation, training, attendance and many other sub-sections. It is used to carry organization information and export master data of personnel and department structure for other applications.7
LCAPLow Code Application PlatformLCAP, also known as LCDP (Low Code Application Development Platform), is a model-driven application implementation mode. It defines application elements including data model, views, rules and workflows through a deep visual configuration interface. It is suitable for implementing middle and backend applications of relationship database type. There are also some low-code products that provide the ability to customize front-end pages, so they can also be used for some front-end type applications. LCAP and the APaaS that emerged in the cloud computing era are gradually converging to become a unified category.10
LIMSLaboratory Information Management SystemIt primarily serves laboratories in R&D, healthcare services and manufacturing organizations, providing them with the management of laboratory equipment, materials, samples, test results and workflows. Users rely on such software to provide compliant data recording and reporting, to analyze experimental results.9
LMSLearning Management SystemIn an enterprise, the LMS is used for training and exams for employees, customers and partners. It should be able to create and manage lesson plans online, manage the learning process of learners, and organize learning communities in groups or classes. In the education industry, the LMS is the core business system that enables paperless teaching and supports the online learning.5
MASMarketing Automation SoftwareIt is an application for companies with repetitive and scaled marketing activities, with a focus on three business objects, customers, leads and marketing campaigns. The marketing automation suite is capable of managing marketing campaigns across various channels, such as email, SMS, social media, landing pages, etc. MAS can be understood as part of a broad CRM and integrated with parts of SFA to bring leads and opportunities to the sales funnel. MAS for Internet companies can also be highly integrated with user products to capture user behavior in real time for dynamic user segmentation. Tools and software such as Email, SMS marketing also fall into this category.5
MESManufacturing Execution SystemMES in the manufacturing industry is responsible for managing the process from the production of raw materials to the finished product manufacturing. Specifically, it creates and tracks manufacturing work orders, determines manufacturing procedures based on process routes, captures and records raw material usage and work hours during manufacturing, and analyzes production efficiency. MES generally requires integration with ERP or PLM applications.8
OAOffice AutomationIt is a mainstream domestic enterprise software category of great inclusiveness and comprehensiveness. It generally refers to the supporting systems for internal communication, documents, tasks, processes and so on. There are also OA products of complexity to provide a more complete portfolio of features, covering the management of internal personnel files, orders, contracts, suppliers and other business data. Because of its relatively high degree of integration, OA is crossed with specialized applications such as knowledge management, collaborative applications, process management, personnel management, etc.9
PDMProduct Data ManagementPDM, also known as PIM, integrates the management of technical and marketing information about products. Enterprises with a large number of products or product versions generally need to use PDM to organize product information, share it internally or among channel partners, to keep product information up-to-date and consistent.9
PLMProduct Lifecycle ManagementPLM helps R&D-oriented organizations manage the product development process, including innovative ideas, prototypes, iterations, and retirements. PLM can manage various design and process changes, features and requirements, drawing documentation, quality metrics and testing, BOM (materials), compliance requirements, supply chain, etc.9
PMSProperty Management SystemPMS is the core business software for industries such as rental properties and hotels. It manages property assets, tenants, leases and the business activities. The advanced PMS suite also has the ability to dynamically manage room prices to maximize revenue. In addition to the generic PMS, there are management applications around various specific commercial property forms.6
POSPoint of SalesPOS is a combination of hardware and software system used at the retail end of the industry to collect payments and record sales flow. In the new retail context, POS has been gradually replaced by more integrated solutions. Cash registers have also been replaced by mobile payment terminals. In a related area, there are also various self-service sales hardware that assume the common functions of POS and sales clerks in the past.1
PSAProject Service AutomationPSA is also known as Professional Service Automation because most professional services are provided on a project basis. The PSA suite helps professional services teams stop using various tools to manage customers, time, costs, contracts, collections, materials, etc. in a fragmented manner, instead adopting a unified platform to create an automated interface between sales, service and financial processes.8
SCMSupply Chain ManagementSCM manages the raw material planning, procurement, logistics, warehousing, and integrated production process of a manufacturing company and then goes on to manage the distribution of finished goods to customers. Compared to ERP suites, SCM manages the supplier sourcing process in more detail, usually consisting of modules for supply chain planning, procurement, order management, logistics and transportation, warehouse management, and demand management. Because of industry differences, the product market for SCM is fragmented and there is rarely a single solution that can fit all industries.7
SCRMSocial CRMSCRM is a typical category that has impacted the shape of enterprise software in the social media era. It can be understood as a business application that revolves around sales and marketing management, and integrates the ability to interact with customers through social media. In western countries, social media mainly refers to Facebook, Twitter, Instagram, etc. while in the Chinese market, it refers to WeChat. Therefore, sales and marketing applications built around WeChat and WeCom can be classified into SCRM.3
TMSTransportation Management SystemTMS provides a more sophisticated management capability in the logistics aspect of supply chain management, which includes the management of freight rates, transportation contracts, transportation scheduling, cargo tracking, route planning and optimization, etc. TMS is generally used in the freight industry and large manufacturing industry with high logistics density.6
WMSWarehouse Management SystemWMS is an advanced application of general inventory management that serves large warehousing, retail and logistics industries to meet their in-depth needs in reducing personnel errors and paperless operations. A complete WMS system has many advanced features, including integration with IoT devices for identification, picking, labeling, automatic replenishment, automatic task assignment, counting systems, returns management, and the ability to integrate with e-commerce platforms, ERP software, and more.6

Objectively speaking, there are also enterprise applications that do not work well with zero-code or low-code application platforms for implementation. They are:

(1) Front-end type applications for consumers.

(2) Professional tools such as CAD/CAM.

(3) Some areas that are already covered by cost-effective standardized products, such as purchase-sales-inventory system for micro-enterprises.

(4) Vertical applications for specialized scenarios with special views and algorithms, such as cashier management for the restaurant industry and dynamic room rate forecasting for the hotel industry.

3. Implementation Principle

The fundamentals for building enterprise middle and back end business applications with no and low code lies in the fact that most of these applications are built on the two core goals of data management (CRUD) and workflow. For a typical enterprise application building, there are similar parts in the design and development process. Application Platform as a Service (APaaS) extracts these similarities and replaces the front-end and back-end design and code development processes of a project with an application-based approach.

In order to deliver a friendly and efficient APaaS product, different vendors may adopt slightly different implementation mechanisms. The solution chosen by HAP can be broadly described as: build a data model through form visualization, create data views for different roles on the model, and implement custom data actions and automated processes through workflows with trigger nd action nodes, and built-in data visualization capabilities. It consists of the following as a whole:

(1) Data structure. Create a data model through form visualization, where the controls directly correspond to field types. And the necessary relationship data structure is implemented through associated worksheets, formulas, and fields in associated worksheets. Controls such as signature, positioning, member, department, and autonumber are designed to support specific business scenarios.

(2) View. Define the form of data presentation with different types of views, including grid, board, org, etc. Each view can be configured with flexible data filtering conditions, showing or hiding rules of fields, and sorting logic.

(3) Statistics. Create charts in worksheets, including bar charts, line charts, pie charts, etc. The created charts can be for personal use or published as shared charts in application.

(4) Custom page. In addition to worksheets and views, users can create a blank page where they can visually configure different types of components. It is quite common to implement a management dashboard by adding charts.

(5) Users, roles and permissions. Users can customize the roles in the application and configure permissions for each role to access, edit, delete and add data. The permission definition can be down to the field level, enabling flexible application distribution by adding users or departments to roles, and fully visualizing RBAC (Role-based access control).

(6) Workflow. Automated workflow consisting of triggers and action nodes can be understood as IFTTT (If this, then that) in enterprise applications. The workflow can be triggered by data changes, dynamic time and Webhook methods. Action nodes enable data query, locate, updating, adding, and deleting, as well as performing manual control processes such as approving and filling, sending personalized notifications, and pushing data to external APIs. Workflows can also be triggered by custom buttons attached to specific views.

With these six parts, users can build any enterprise application based on data management and workflow with no code.

Differences between visual IDEs and rapid development tools (RAD)

The HAP product and many visual IDE products, as well as traditional rapid development tools, are often referred to together as low-code platforms. All products share a common goal in terms of achieving efficiency in applications. However, in terms of technical path selection for implementation, HAP is fundamentally different from the low-code tools of IDE model.

(1) As an APaaS product, HAP fully adopts the cutting-edge technology stack in the field of cloud computing, no more source code generation for single application, and no more code compilation process. The application runs directly on the platform with a model approach. Development requirements such as version control and debugging are also done through the application configuration interface.

(2) Most of Mindao's capabilities are no-code based, involving low-code in code block nodes of workflows and docking and development work only. Therefore, HAP is able to target business developers without relying on the user's software programming skills.

(3) HAP features application exchange capability. Any application built by any tenant can export models. Models can be redistributed or imported to other tenants' environments.

(4) Compared with development tools, HAP is easy to learn and easy to use. Business developers can master some simple single-session applications through quick learning, while professional developers and information architects can realize complex applications with the high-granularity definition capability of this product.

4. Complex Application

Before delving into HAP products, users may have misconceptions about the application implementation capabilities of zero-code products, thinking that no-code APaaS is only suitable for building some simple applications but cannot be for core business problems.

However, this is not the fact.

The complexity of enterprise software may be attributed to the following characteristics of enterprise applications:

(1) A large number of data objects, complex data attributes, and multiple levels of data association.

(2) The application involves many roles, and each role requires a differentiated permission configuration, which is related to several elements such as data attributes and organizational structure.

(3) The data management itself cannot meet the needs of the process, involving data flow, approval, filling, etc.

(4) There are many dimensions for data analysis, provided in large quantities by application role in reports.

(5) Involves special and highly difficult algorithms.

(6) Involves integration with external applications.

The so-called complex projects, whether it is a file management system for military enterprises or a production execution system for SMEs, are essentially composed of such complexities.

How APaaS to respond

To break it down into relatively simple segments. This mindset is a fundamental tool for solving complex problems.

For the above complexity, find the corresponding capability modules in the APaaS product and then implement a high-granularity configuration based on the custom capabilities that these modules can provide.

Worksheet

(1) Data tables need to support various data types and be configured with various appropriate presentation controls.

(2) Data objects can be added freely.

(3) Data objects can be associated with each other in all modes (one-to-one; one-to-many; associate current worksheet).

View

(1) It can present different dimensions of the data table to different user roles.

(2) It supports flexible row filtering, column filtering, sorting, and configuration of showing or hiding fields on the form.

(3) It supports configuring different custom buttons for different views.

Roles and Permissions

(1) Assign custom roles to the application.

(2) Configure permissions of high granularity for different roles, including pemissions of adding, deleting, viewing and modifying view and worksheets, even down to the field level.

(3) Combine with the user's organizational reporting relationship to define the scope of data permissions.

(4) Distribute function pages and custom buttons for different roles.

Workflow

(1) Trigger a workflow with any data change, time condition or manually.

(2) The workflow should support query, locate, add, modify and delete data.

(3) The workflow should have the ability to operate with bulk data and arrays.

(4) The workflow should be able to couple the approval and filling work with manual participation.

(5) The workflow should support high-level scripting language to implement special algorithms.

(6) The workflow should be able to operate on any data type (text, numeric, multiple choice, file, etc.).

Reports

(1) Report visualization based on arbitrary data objects and associated data objects.

(2) Diverse report types.

(3) Combine different reports and distribute them to different user roles.

Open Interface

(1) Provide interfaces for any data object to add, delete, view and modify.

(2) When executing the workflow, to call other applications' interfaces.

(3) Provide data interfaces to external applications and be able to start workflows through these interfaces, and external data can be passed to the workflow.

The above elements and capabilities ensure the flexibility to solve each granular problem, and with such flexibility, systems can be assembled no matter how complex they are. Coupled with a rational application building process, it is possible to provide complex applications to customers while still maintaining order.

And, because of the ability to freely distribute roles, each individual is not plagued by complexity when complex applications are provided to specific roles. For example, we can distribute a single view to a worker role in a production execution system, perhaps with just a few buttons on their personal interface. This is something difficult to do with traditional enterprise software development.

Case of Complex System

(1) Production Execution System

Production execution system is an application system that can help manufacturing enterprises to manage production and manufacturing, improving management efficiency and accelerating digital transformation of manufacturing enterprises. The production management system has a high degree of flexibility in system configuration. Users can freely configure business data and processes based on the original framework of the system and according to their own business characteristics.

  • Connect with ERP system to obtain information on goods purchase, arrival and inventory.

(2) ERP System

ERP system integrates purchasing management, sales management, inventory management and billing management of the enterprise. It is a whole process management business within the enterprise, involving multiple departments such as sales, procurement, finance, warehouse, etc. For such a system, traditional custom development may take 2-3 months, while HAP can complete the building and delivery in about 2 weeks, meeting users' individual needs.

  • Purchase order consolidation, which allows generating one purchase order from the same supplier through process configuration;
  • Sales, purchases, or returns, synchronized to inventory;
  • Different categories of materials configured with different inbound and outbound rules;
  • Realization of inventory transfer, FIFO;
  • Special processing of accounts, such as red flush, etc;
  • Real-time generation of multi-dimensional statistical reports;

(3) Configuration of roles and permissions involving multiple departments and levels

For enterprises with cumbersome business processes, there are often many departments and levels involved, and the roles and permissions are relatively complex. For complex permission requirements, we usually rely on the RBAC model (Role-Based Access Control) for analysis and design. In HAP's application, you can configure the permissions of a role within minutes. Through view distribution, you can flexibly configure the worksheets, records, and even fields that are visible to each role.

  • Different roles can view or work with different forms, records, and fields;
  • Different roles have different operation permissions for the same form, record, or field;
  • The supervisor can view or work with the data of his subordinates;

(4) Multi-party integration of data

A single business system is difficult to meet the multi-faceted information needs of enterprises. There are often multiple sets of information technology software within the enterprise, so new business systems need to be integrated with the original system, or to establish an information center. The situations are as follows:

  • Some features or requirements cannot be implemented on HAP (e.g. logistics status information, spatial modeling, etc.);
  • The original system has a large amount of business data left behind, and data migration is not convenient;
  • The data from the various systems used cannot be connected, and a data middleware is needed as a bridge;
  • Various other reasons make it impossible for the company to give up using the original system.

Each application of HAP has standard API documents. Through the open API interface or Webhook users can interact with data from other business systems. Worksheets, records, and fields all have corresponding IDs and can be retrieved flexibly.

At present, there are typical docking including Amazon order docking, Kingdee K3 docking, Kingdee Starry Sky, IoT platform docking, visualization large screen docking, Fanruan T100 system docking, WeCom& DingTalk docking and so on. As long as there is a standardized open interface, all can be docked through HAP to facalitate data integration. At the same time, HAP can also be served as a data center to help enterprises unify data asset management, activate data value and release enterprise productivity.

Data Integration

As APaaS products with no/zero code begin to be adopted by more and more enterprises, there is an increasing need to utilize the natural openness of APaaS products to integrate with other existing business systems. The following provides a few basic models for integrating APaaS products with other applications for users in need.

In the introduction, the different integration methods are illustrated with a specific example:

Scenario: An e-commerce company uses three systems, Purchase-Sales-Inventory, APaaS (assumed to be HAP) and Financial Software. The goods-return process of the company is as follows: customer applying for return => customer service personnel to check => product returned to the warehouse => financial pesonnel to refund money => completed. For each complete return process, data needs to flow among the three systems.

It enables the transfer and synchronization of data among applications by calling APIs, and may be divided into the following three ways (or phases).

One-to-one synchronization (request/response): messages request another application by calling the API and waiting for the response

When a customer applies for a return, the e-commerce platform calls the API of the APaaS platform to notify the customer service personnel to start the approval process, and then call the API of the e-commerce platform to change the status of the return application after the approval, and retries every time the request fails. When the volume of requests is large and the business logic is complex, there will be long waiting time or overload of computing resources on the other side, then you need to take the following another way.

One-to-one asynchronous (queue/callback): API receives the request into the queue, after the execution call back to notify the results

After receiving the returned goods, customer service personnel check and pass the return application, calling the API of the inventory application to notify the inventory-in. Since the logic of inventory-in is relatively complex (change the original out-inventory order and process the inventory), you can put the operation into the message queue to gradually consume it, and when the return logic is completed, call back the API of another application to notify the result. Many times if a data change, you need to notify multiple applications and the notification address often changes, it is necessary to frequently adjust the code logic, in which case you can take the publish-subscribe approach.

One-to-many asynchronous (publish/subscribe): provide event subscription, send message notification to all subscribed addresses when data changes

After receiving the returned goods, the APaaS platform needs to notify the finance system for refund, to notify the warehouse system for inventory-in, and to notify the e-commerce platform for changing the status of the returned goods, which may be different for different customers' needs. At this time, APaaS can provide event subscription, when the data changes, according to the subscription list to notify other applications, and provide webhook callback address, and then callback after the execution of other applications logic.

The message integration approach can best achieve real-time data synchronization, but it requires a complete API on the application side, and also needs to pay attention to the retry mechanism for push failures and the sequence coverage caused by subsequent retries.

HAP (APaaS) implements integration through workflow:

2 Application Integration

Specialized development of integration tools:

Develop a separate application, obtain authorization from other applications, pull data at regular intervals (full/incremental) according to configuration, and push it to other applications based on conditions and mapping rules. Using the integration tools to synchronize data without calling applications, can reduce coupling and also allow flexible selection of technical solutions based on data volume and application form. However, since it is not actively pushed by the application, it is not that perfect in terms of real-time performance.

Robotic Process Automation (RPA)

It is a business process automation technology based on software robotics and artificial intelligence. It provides an alternative way to automate the end-user's manual process by mimicking the way the end-user operates on the computer.

3 OLAP Data Source Connection

Configure the data source connection address to drill down to the required data according to open permissions and filtering conditions, usually as a way of BI report analysis. The data drilled down to can be stored separately again after processing or aggregation as needed.

4 File Integration (Export & Import)

Manually export the data to be processed from the application system as needed, import it into another set of application system, and then import it back to this application system after processing. The HAP system provides a relatively sophisticated interaction for importing Excel files, enabling users to create field mappings when importing. It can also automatically de-duplicate and create data associations during import.

5. Function Structure

HAP provides three major functional modules: no-code application, collaboration suite and account management.

(1) No-code Application Building. It shows HAP capability. Users can build enterprise applications with the provided basic components. For an application, the following encapsulated capability components are required.

  • Worksheet: Build the data structure of the application
  • View: Present data based on user roles
  • Statistics: Data-based analysis
  • Custom Page: Add components such as charts and distribute them to specific roles
  • User Roles and Permissions: Configuration details of roles and permissions
  • Workflow: Business automation with triggers and action nodes

(2) Collaboration Suite. It meets the needs of sharing, communication, task collaboration, scheduling, and document management for enterprises, and can be connected with application platform capabilities.

  • Post
  • Task
  • Calendar
  • Files

(3) Account Management. It is divided into personal account management and enterprise account management.

  • Personal Account

    • Modify personal information
    • Bind mobile phone and email
    • Modify password
    • Set language
    • Set information privacy
  • Enterprise Account

    • Member/Department management
    • Reporting relationship setting
    • Handover
    • Group announcements
    • Data export
    • Organization information editing
    • Group management
    • Usage statistics
    • Roles and permissions management
    • Application management
    • Workflow management

6. Technology Architecture

The system as a whole is based on microservice architecture. The front-end (Web/H5) is based on React framework, and the back-end development languages are mainly Java, C# and Node.js. The front-end is connected to the API via http. The interface calls between API and microservice, microservice and microservice are based on RPC protocol (based on gRPC). The components involved in data storage include MySQL, MongoDB, Redis, Kafka, ZooKeeper, Elasticsearch, and File.

  • MySQL: for storing system basic data such as users, organizations, etc;
  • MongoDB: for storing business data (such as applications, worksheets, workflows, etc.);
  • Redis: for caching support to improve system performance;
  • Kafka&ZooKeeper: for worksheet aggregation, data collection in worksheets, workflow events, etc;
  • Elasticsearch: currently supports global search in the collaboration suite;
  • File: the default open source file storage system is MinIO, with a layer of adaptation on top of that. It also supports the configuration of file object services that comply with S3 standards (e.g. Alibaba Cloud OSS, Tencent Cloud COS, Huawei Cloud OBS, QiNiu Cloud, etc.);
  • Flink: for real-time synchronization and ETL capabilities of data integration;

The system's APaaS capability enables flexible and fast application building to meet needs. The application data can be transmitted and interacted with the data of external systems in both directions, facilitating integration with existing systems. The system itself can be used completely based on the intranet environment, which also provides a higher guarantee for data security.

In the standalone deployment mode of private deployment, the storage components are built into the mirrors and users do not need to install them separately. The data generated is stored in the specified directory of the server by mounting; in the cluster deployment mode, the application services and storage components are deployed independently, and the connection address of each storage component is finally injected into the application container by means of environment variables, and each instance supports horizontal scaling at the same time.

Standalone Deployment Mode

Strengths: simple and fast deployment, low server resources and O&M costs

Weaknesses: existing single point of failure, but there are self-contained internal health checks and self-recovery capabilities

Recommended server configurations are as follows:

ConcurrencyConfigurationOS
Within 1008C/32G/40G system disk/100G data diskDebian 10+
Within 20016C/32G/40G system disk/100G data diskDebian 10+
Within 30024C/48G/40G system disk/100G data diskDebian 10+
300+Recommend cluster deployment mode-

If file storage-related features are used more, you also need to expand according to the actual needs. The recommended bandwidth is 30M+.

Cluster Deployment Mode

Lite Edition (Concurrency 300+)

Strengths: save server resources and O&M costs, high availability of microservice clusters, and relatively independent deployment components, suitable for environments with limited resources or small-scale application scenarios

Weaknesses: some component coupling, possible single point of failure of storage-related services

Recommended server configurations are as follows:

UsageConfigurationOSDeployed ServiceNumber
Load and Forward Server4C/8G/100G system disk/200G data diskDebian 10+Nginx1
Microservice Application Server Cluster8C/32G/100G system disk/200G data diskDebian 10+HAP Microservices2
Document Preview Server4C/16G/100G system disk/200G data diskDebian 10+Office & PDF File Online Preview1
Middleware Server4C/16G/100G system disk/500G data diskDebian 10+Kafka, Elasticsearch, File Object Storage1
Data Storage Server8C/32G/100G system disk/300G data disk (SSD)Debian 10+MySQL, MongoDB, Redis1
Standard Edition (Concurrency 600+)

Strengths: Having basic high availability capabilities, such as node redundancy and higher utilization of automatic fault tolerance, and being able to effectively utilize server resources. Suitable for most usage scenarios

Weaknesses: There is interference and resource competition between different storage components, and attention should be paid to resource allocation and management

Recommended server configurations are as follows:

UsageConfigurationOSDeployed ServicesNumber
Load and Forward Server4C/8G/100G system disk/200G data diskDebian 10+Nginx2
Microservice Application Server Cluster8C/32G/100G system disk/200G data diskDebian 10+HAP Microservices3
Document Preview Server4C/16G/100G system disk/200G data diskDebian 10+Office & PDF File Online Preview2
Cache Server4C/16G/100G system disk/200G data diskDebian 10+Redis2
Middleware Server4C/16G/100G system disk/500G data diskDebian 10+Kafka, Elasticsearch, File Object Storage4
Database Server8C/32G/100G system disk/300G data disk (SSD)Debian 10+MySQL, MongoDB3
Professional Edition (Concurrency 1000+)

Strengths: At the same time of high availability, a single application architecture is adopted (only one component instance runs on each server) to improve reliability and performance, avoid interference and resource competition between different components, and also facilitate independent expansion and management of each component

Weaknesses: high server resources and O&M costs

Recommended server configurations are as follows:

UsageConfigurationOSDeployed ServiceNumber
Load and Forward4C/8G/100G system disk/200G data diskDebian 10+Nginx2
Microservice Application32C/64G/100G system disk/300G data diskDebian 10+HAP Microservices3
Cache16C/32G/100G system disk/200G data diskDebian 10+Redis2
Message queue16C/32G/100G system disk/500G data diskDebian 10+Kafka3
Full-text search16C/32G/100G system disk/500G data diskDebian 10+Elasticsearch3
File Storage16C/32G/100G system disk/500G data diskDebian 10+File Object Storage4
RDB16C/32G/100G system disk/500G data disk(SSD)Debian 10+MySQL2
NoSQL32C/64G/100G system disk/500G data disk(SSD)Debian 10+MongoDB3

7. Open Source Module

HAP introduces many mainstream open source frameworks, including development languages and middleware.

(1) .NET

.NET is an open source development platform, jointly maintained by Microsoft and the .NET community on GitHub, featuring cross-platform, open source, and flexible deployment. HAP's microservices are partially developed on .NET, currently based on the .NET6 (LTS).

(2) Java

Java is an object-oriented programming language of simplicity, robustness, security, platform independence and portability, multi-threading, and dynamism. Java, as a representative of static object-oriented programming languages, implements object-oriented theory well and allows programmers in an elegant mindset to perform complex programming. HAP primarily uses the mainstream Spring Boot framework, such as the workflow part.

(3) Node.js

Node.js is a JavaScript runtime environment based on the Chrome V8 engine for easily building responsive and scalable web applications. Node.js is lightweight and efficient with an event-driven and non-blocking I/O model, making it ideal for running data-intensive and real-time applications on distributed devices. HAP's IM Web Socket communication service is built on the Node.js SocketIO framework.

(4) MongoDB

MongoDB is a database based on distributed file storage, a product between relational and non-relational databases. It is the most feature-rich and relational-like among non-relational databases. It supports a very loose data structure like bson format in json, so it can store more complex data types. The highlight of Mongo is that it supports a very powerful query language, whose syntax is somewhat similar to an object-oriented query language, and it can achieve most of the functions similar to the single table query of a relational database. It also supports indexing of data. The data storage involved in the core module of HAP is based on MongoDB, and its flexible data structure greatly facilitates the fast iteration of the product.

(5) MySQL

MySQL is a relational database management system that belongs to Oracle and is one of the most popular relational database management systems. MySQL software has a dual licensing policy for a community version and a commercial version. Many enterprise applications choose MySQL as data storage for its small size, speed, low cost, and especially the open source feature. MySQL is used to store all the structured basic data of users and organizations involved in HAP.

(6) Redis

Redis is an open source Key-Value database of high performance. The value types it supports for storage include string, list, set, zset, and hash. Redis operations are atomic, and data is cached in memory to ensure efficiency. Redis also periodically writes updated data to disk or writes modifications to an appended record file, and implements master-slave synchronization. HAP adopts Redis to provide data caching for many features, such as the basic user information and organization information, but also application information, worksheet information, row data in worksheet , workflow, roles and permissions in application, etc. For query performance, Redis is used basically for all.

(7) gRPC

gRPC is a open source and general-purpose RPC framework of high performance designed for mobile and HTTP/2. It supports multiple development languages and is designed based on the HTTP/2 standard, enabling bi-directional streaming, flow control, header compression, multiplexing requests over a single TCP connection, and more. These features make it perform better on mobile devices, more power efficient and space saving. Most of the microservices of HAP are based on gRPC, including C#, Java, Node.js related services.

(8) Elasticsearch

Elasticsearch is a Lucene-based search server. It provides a full-text search engine with distributed multi-user capabilities, which is based on RESTful interfaces, and distributed as open source under the Apache license terms. According to DB-Engines rankings, Elasticsearch is the most popular enterprise search engine. HAP's Super Search is based on Elasticsearch (including cross-application worksheet data and collaboration suite data) and is designed to give users faster response and more accurate matching. The usage statistics of applications are also based on the periodic statistical dimension of Elasticsearch to better track the usage status of applications.

(9) Kafka

Kafka, an open source stream processing platform developed by the Apache Software Foundation, is a distributed messaging system that supports multiple partitions, multiple replicas, multiple subscribers, and zookeeper-based coordination. By introducing Kafka, it can induce decoupling between services and can withstand the access pressure during peak hours without crashing completely due to sudden overload of requests. For some functions of HAP APasS, when data changes, it needs to trigger the workflow. The implementation of this part relies on Kafka's message publishing and subscribing. Also based on Kafka's high throughput and multi-partitioning, events can be executed in an orderly manner and with low latency under the configuration of a reasonable number of consumer ends. In addition, HAP's super search module also uses Kafka as the data transfer middleware.

(10) MinIO

MinIO is an object storage service based on the Apache License v2.0 open source protocol. It is compatible with the Amazon S3 cloud storage service interface and is ideal for storing large volume unstructured data such as images, videos, log files, backup data and container and VM mirrors, etc. An object file can be of any size, ranging from a few KB to a maximum of 5 TB. Files uploaded by users in HAP and some static resource files will be stored in MinIO.

(11) Flink

Apache Flink is an open source processing framework for big data, designed for real-time stream processing and batch processing. It has high throughput, low latency, high scalability and powerful state management capabilities. Flink supports distributed computing and is capable of processing large amounts of data on large-scale clusters. It takes a data flow programming model, making it easy for users to build efficient data processing pipelines. The real-time synchronization of multiple data sources in HAP's data integration and the ETL data processing capability in the synchronization process are built on Flink.

8. Technical Points

NOSQL Database Selection

HAP adopts multiple NOSQL data technology stacks such as MongoDB, Redis and Elasticsearch. The main purpose of this is to fully utilize different modal database engines to bring more value to users in terms of feature extensibility, performance and user experience. Although HAP uses complex technology stacks, each technology stack is chosen to be mainstream, open source, runnable and compliant with industry standards. And users do not need to deal with the native technology stack, since the application is built and run in a no-code application environment.

Containerized Private Deployment

HAP is the first publicly available and no code/low code platform that can be deployed via container technology in China. It supports standalone deployment and cluster deployment, and also supports deployment under Kubernetes, reducing costs of O&M, installation and deployment. This capability enables customers to benefit from the scalability and high availability of cloud-native.

Front-end Open Source

The front-end code of HAP Server supports complete open source (mingdao-openweb), allowing users to fork and secondary development.

Multi-platform Deployment

It adapts to multiple architecture infrastructure, including Linux kernel servers with X86 CPU architecture and ARM64 CPU architecture, as well as domestic operating systems. It also has built-in quick operation commands, including stop, restart, upgrade, rollback, backup,etc.

Application Lifecycle Management

Applications can be imported, exported, backed up, maintained, rolled back, updated and upgraded. The application builder can maintain it efficiently.

Open Design

Enterprise applications built through HAP are automatically established with standard open interfaces (REST), providing complete interfaces for all data objects to add, delete, check and modify and automatically generate documentation. Webhook triggers, action nodes, and API integration in workflow can also be docked with other applications with no code.

Hyperautomation

The innovative automated workflow, in addition to the traditional approval process, supports several triggering modes such as events from worksheet, timed trigger, custom buttons, interface trigger, etc. It also supports the data adding, deleting, checking and modifying in the workflow, as well as message notification.

Composability

Based on the concept of PBC (Packaged Business Capabilities), HAP innovatively designed a packaged business process feature, which utilizes the automated data processing process orchestrated by workflow. It can reuse the data processing capability throughout the organization, accept the agreed parameters, and pass out the result parameters after processed by workflow. In addition to calling internal data, it can also interact with external data through API.

Data Integration

HAP supports external data sources such as MySQL, SQL Server, Oracle, PostgreSQL, MongoDB, IBM DB2, Kafka, etc. as data sources or data destinations to establish synchronization pipelines for real-time data synchronization with second-level latency.

9. Intellectual Property

As the APaaS category is getting mature and the complexity and value of building applications on APaaS is also increasing. Many users and service providers are becoming concerned about the intellectual property issues associated with APaaS applications.

The relevant intellectual property laws are concentrated in the Copyright Law and the Contract Law. (In 2021, the Contract Law is repealed and the Civil Code comes into effect.)

This topic is also related to the Regulations on the Protection of Computer Software promulgated by the State Council, since the Copyright Law stipulates that the protection of computer software and information network transmission rights shall be separately regulated by the State Council.

Formation and Attribution of Rights

Formation of Rights

The "works" referred to in the Copyright Law include:

(Ⅶ) Graphic works and model works such as engineering design drawings, product design drawings, maps, schematics, etc.

(Ⅷ) Computer software.

Therefore, the applications built on APaaS contain the intellectual work of the designers and builders, and there is no doubt that the creators (natural and legal persons) are entitled to copyright. The copyright protection should refer to the application built by the user on the platform, not the HAP platform itself. This is like the illustrator who creates with Photoshop, only enjoys the intellectual property of the illustration itself, but not the copyright of the Photoshop software, but the user who legally obtains the Photoshop software enjoys the right to use it according to the user agreement.

Specifically, the application copyright covers worksheet data structures, views, configuration of user roles and permissions, charts and workflow configurations, and aggregation of them.

Duty Work

According to Article 16 of the Copyright Law, in an enterprise, applications built by employees with the APaaS platform purchased or rented by the enterprise should belong to duty works, and the creator enjoys the right of attribution as stipulated, and other copyright rights are entitled by legal persons and organizations. However, the Copyright Law allows the special case of contractual agreement, so the enterprise can establish other agreements with the creator in the labor contract or other contracts for the complete protection of relevant intellectual property rights.

Commissioned Creation (Outsourcing)

Article 17 of the Copyright Law stipulates that the ownership of the copyright of a work commissioned to be created shall be agreed upon by the principal and the trustee by contract. If the contract is not explicitly agreed or no contract is concluded, the copyright belongs to the entrustee. About this point, the client side should pay special attention. If you wish to retain the copyright, you need to make additional agreement with the service provider in the contract of commissioned service.

Whether an application created on APaaS is a software work

In the Computer Software Protection Regulation (2013 Revision), computer software is defined as a computer program and its related documentation. In turn, the following words are used in defining computer programs:

(i) A computer program is a sequence of coded instructions that can be executed by a computer and other devices with information processing capabilities in order to obtain a certain result, or a sequence of symbolic instructions or a sequence of symbolic statements that can be automatically converted into a sequence of coded instructions. The source program and the target program of the same computer program are the same work.

If this definition is understood thoughtfully, the APaaS platform along with the applications created through it should fall under the definition of a computer program. Isolated APaaS application configuration content does not seem to fit the narrow definition of a computer program.

However, if we think about it more deeply,

(1) The data structures and workflows built by APaaS are models formed by visual editors, which are equivalent to code instructions when executed by APaaS. It can also be interpreted as "sequences of symbolic instructions that are automatically converted into sequences of coded instructions".

(2) The configuration content of the applications built by APaaS may also contain code, such as JavaScript or Python code blocks in the workflow nodes of HAP.

Therefore, according to the current legal system, an APaaS application may well be recognized as a computer program. Together with the accompanying documentation, it constitutes a computer software product.

China implements the registration system of computer software copyright, but the registration of software copyright is not an essential element for the formation of copyright. Even without registration, the creator still enjoys the copyright. However, since software products involve commercial circulation and services, completing copyright registration can reduce contract disputes. China has strongly encouraged the software industry for the past twenty years, and software product registration can get VAT rebate. Therefore, most of the computer software created by legal persons will be registered with software copyright.

Software copyright registration is handled by China Copyright Protection Center, and copyright owners can complete the registration by themselves or entrust an agent. There are a series of processes for software copyright registration. View more details.

Can the applications on APaaS be registered as independent software copyrights? There is not a clear answer according to the definition of software works. Because the model-driven application platform like HAP does not generate the source code of the application itself. Therefore, when providing identification materials for registration, it is difficult to provide exception deposit materials directly.

The following are the relevant stipulations:

Article 12 If applying for registration of software copyright, one of the following ways may be chosen for exceptional deposit of identification materials:

(i) The first and last 30 consecutive pages of the source program, the confidential part of which is covered by a wide black slash, provided that the covered part does not exceed 50% of the deposited source program;

(ii) The first 10 consecutive pages of the source program, plus 50 consecutive pages of any portion of the source program;

(iii) The first and last 30 consecutive pages of the target program, plus 20 consecutive pages of any part of the source program.

Meanwhile, Article 11 also stipulates that "software developed on the original software with the permission of the original software copyright owner shall be submitted with the license certificate of the original copyright owner;".

In order to cooperate with the application platform partners to apply for software copyrights, HAP can provide the contracted partners with the above facilities when applying for software copyrights.

When partners submit software copyright registration applications, they should make it clear that the applications are developed through HAP application platform and provide document identification materials at the same time to prevent the registration content from being identical.

Both the Civil Law and the Copyright Law recognize the joint ownership of intellectual property rights. In practice, it is also true that there are cases where multiple natural or legal persons jointly invest their intellectual labor to create software works. However, since joint rights involve complex agreements of joint tenancy and co-ownership, rights of income distribution, rights of disposition and rights of infringement recourse, etc., we suggest that it is important to clearly agree by contract to avoid disputes.

10. Iteration

HAP Server is a continuously iterative software product, with monthly updates and yearly upgrades. Monthly updates provide new features, feature improvements, and bug fixes, which are posted on the project page.

The code management of HAP Server shares the same cornerstone as HAP SaaS Edition, but with the necessary branching. Therefore, the Server Edition and SaaS Edition have almost the same features, but different means of implementation for supporting modules, such as object storage services. The update of HAP Server is slightly delayed by about two weeks from the SaaS Edition. During these two weeks, the obvious defects in the product will be fixed, so that a stable version more suitable for private deployment customers can be released.

Last update: 2023-04-06