Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
High Availability Architecture is to be considered for serious critical systems, which can tolerate a certain amount of failure and errors before they no longer work properly. The design of this architecture comes from a key criterion for the capability of your service to meet your expected service level agreement (SLA).
The key aspects to design High Availability Architecture are as follows.
Avoid single points of failure - To avoid single points of failure and to maximize system availability, it needs to have some degree of redundancy. The solution typically involves horizontal scaling across multiple machines.
Hardware redundancy - Eliminate single points of failure in the system by including hardware redundancy. There are many techniques to design hardware redundancy. - Use horizontal scaling to distribute application servers across multiple physical machines (Active-Active) - User backup server (Active-Standby)
Process redundancy - Provide process redundancy and isolation so that a failing server does not impact the remaining healthy servers.
Load balancing (Active-Active) - Use Load balancing techniques to make sure that the individual servers are not overwhelmed with client requests while other servers are idle.
Fail-over support (Active-Standby) - The environment must be able to continue processing client requests, even if one or more components are offline.
Cloud Architecture is an alternate way for you to host your Application on a Cloud Provider. This type of architecture has many benefits such as lower cost of server maintenance, lower cost of hardware investment, etc. If you are looking for Cloud there are many choices for Cloud solutions such as PaaS (Platform as a Service), IaaS (Infrastructure as a Service), and SaaS (Software as a Service). ONEWEB can be hosted on the cloud as PaaS or SaaS solution based on your customer preferences.
ONEWEB is an Application Development Platform that is built on Java EE technology and supports a 3-Tiers Architecture consisting of Web Tier, Application Tier, and Database Tier. This technology is developed as an Enterprise-Grade Application that will enable you to scale capacity up to serve your business growth.
ONEWEB also supports containerized architecture for deployment on the cloud. There are many options for the users to choose the ONEWEB Architecture depending on your business demands. The standard architecture of ONEWEB as preferred are as follows:
Standalone Architecture
High Availability Architecture
Cloud Architecture
Before you begin with the installation, please perform the following:
Design the server architecture for your ONEWEB instance as per your application requirements.
Evaluate the sizing for your server as per the expected load.
Check the system prerequisites for installing the ONEWEB
Standalone Architecture is simple, easy to maintain, and most budgetary to cost. This architecture is suitable for less critical systems that can accept some downtime to recover or upgrade the system. This architecture has 3 tier components which consist of the Web tier, Application tier, and Database tier as shown in the following diagram.
Web tier - This tier is used to receive a request from the client or load balancer, then process the static content request and forward a business logic request to the Application Server in the Application tier.
Application tier - This tier is used to process the request from the client using Application Server Middleware.
Database tier - This tier is used to persist data into storage.
The Standalone Architecture diagram above is shown as three instances of servers, which is the best virtue for Architecture. You can also separate each component using a firewall or network infrastructure to secure your system and improve performance. But it is not necessary to separate each component (Web, Application, and Database), as these components can also run on the same server but in that case, the server should have enough capacity for all components. You may also choose to separate these into two servers, one for the Web, whereas the Application, and the database on the second server. This decision certainly depends on your resources and your security policy.
ONEWEB can be installed as distributed containers using simple docker engine or as an orchestrated container architecture using Kubernetes. The ONEWEB containerized installation include the following containers.
oneweb-iam2 - Authentication & Authorization
oneweb-uxp - User Experience Runtime
oneweb-bpp - Business Process Runtime
oneweb-mfr - Microflow Runtime
oneweb-mfd - Microflow Designer
oneweb-pgd - Page Designer
oneweb-pgb - Page Builder
oneweb-designersuite - AppSpace, App Designer, Process Designer and other Utilities
apache conatiner - Web Server
database container - Database
The sample Kubernetes architecture followed by ONEWEB is depicted in the image below.
ONEWEB uses ELK stack for monitoring cloud infrastructure as well as the platform services.
"ELK" is the acronym for three open source projects: Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine. Logstash is a server‑side data processing pipeline that ingests data from multiple sources simultaneously, transforms it, and then sends it to a "stash" like Elasticsearch. Kibana lets users visualize data with charts and graphs in Elasticsearch.Often referred to as Elasticsearch, the ELK stack gives the ability to aggregate logs from all the systems and applications, analyze these logs, and create visualizations for application and infrastructure monitoring, faster troubleshooting, security analytics, and more.
You need to consider the type of environment you need to have when you want to develop an application. First, you can develop your application on your client's machine. Once you have completed the task, it needs to be tested. For that, you should have a Testing Environment. If your application works fine in Testing Environment and you have got the confidence to go live, you need to promote your Application in the Production Environment. If you would like to have continuity of business, you may need Disaster Recovery as a backup plan in case your Production Environment has encountered some problems. This is the most general scenario to develop an application.
Production Environment is the environment or the server where your software applications or products are actually put into operation for their intended uses by end users. This environment is the most important because it affects your business directly. To design the Production Environment, you need to consider the following points.
Type of your Application - Is it a real-time application? Is it integrated with other systems? How much data is to be processed? Does it operate 24 hours per day? Type of your Business - How critical is your business? Who will be affected if this application is down? A number of the user (Active user and Name user) Number of Transactions - Number of transactions within a period of time such as the number of transactions in a month. Accepted downtime - Number of downtimes in a year and how long is the accepted downtime per each occurrence?
The Disaster Recovery Environment is the backup environment for your Production Environment and cannot be operated for a long duration. To design the Disaster Recovery Environment, you need to consider the following points.
RPO (Recovery Point Objective) - How much of your data can be lost when you decide to turn on the Disaster Recovery Environment?
RTO (Recovery Time Objective) - How long can it take when you decide to turn on the Disaster Recovery Environment?
How much percent of your Production Environment Capacity do you expect to use in the Disaster Recovery Environment?
Testing Environment is used for testing your application. To design the Testing Environment, you need to consider the following points.
How many testers or people involved do you plan to use the testing environment?
How many systems do you have to integrate with?
How much data do you plan to be used in the testing process?
When you consider the architecture of your Application you should ask the following questions.
Which environment are you considering? Production, Disaster Recovery or Testing Environment.
Is the Application a critical system? If your application is a critical system such that it needs to be online 24/7, like a payment processing or important transaction, you may need to consider Active-Active or Cluster Environment to make sure your operation can run continuously.
Can this system have some downtime for maintenance? What is the SLA? If your application can have downtime and has enough SLA for maintenance or some failure you can use the Standalone Architecture.
Do you need Disaster Recovery? What is your RPO (Recovery Point Objective) and RTO (Recovery Time Objective)? If you need DR (Disaster Recovery) for backup plan in case you cannot operate Production Environment. You need to consider RPO (Recovery Point Objective) and RTO (Recovery Time Objective) to choose the right solution for your DR.
How many Active User? The number of Active Users is one of the important things to consider for deciding the capacity of your architecture. You can choose Standalone Architecture with a high volume of CPU and Memory or you can choose to separate your server as Active-Active Architecture with a load balancer to spray your workload to multiple servers.
How many transactions (Per year or Per Month)? The number of transactions is as important as the number of active users. The number of transactions need to be considered as well to decide the capacity of your architecture because it impacts directly on your server capacity.
How many transactions at peak time or peak event? When you consider your architecture and server capacity your also need to consider number of transactions at peak time or peak event because your server needs to support that situation as well.
How many and how long your data will be kept in the system? (in term of record and size) Size of your data in the system is one of key factors that impact the performance of your system. You should consider this factor when you design the architecture.
1 core supports up to 200 active users, but the application can be a bit slower due to having all workers and background jobs running on the same core. 2 cores is the recommended number of cores and it supports up to 400 users
The number of core CPU can roughly be estimated by the number of users divide by 200. For example, 500 active users = 500/200 = 2.5 so need to round up to 3 CPU cores. For more accuracy, the complexity of your application and transaction should also be considered.
*Assume that 1 user generates 2 requests or transactions to the server per 1 minute.
ONEWEB can be setup in different configurations depending on the customer requirements. Customers can pick and choose the products to be included in their subscription.
Product
Services Included
Product Details
1
Process Server
(OWPCS01)
Build Process and Workflow application including e-Form, Human Workflow, Task Allocation, etc.
ONEWEB Process Server Run-time Enterprise Edition Processor Core License + 1st Year Maintenance & Subscription Services
2
Microflow Server
(OWMFS01)
Build Integration with multiple systems and micro services for API management.
ONEWEB Microflow Run-time Enterprise Edition Process Core License + 1st Year Maintenance & Subscription Services
3
User Experience Server
(OWUXS01)
Build Modern Web and Mobile Applications
ONEWEB Application Server & Page Server Run-time Enterprise Edition Processor Core License + 1st Year Maintenance & Subscription Services
4
Designer Suite
(OWDVS01)
Designer and Developer platform
ONEWEB Designer Suite Processor Core License + 1st Year Maintenance
5
Mobile CI Server Cloud
(OWCIS01)
Build iOS and Android mobile app on cloud
ONEWEB Mobile CI Server
(monthly subscription)
8GB RAM is the minimum memory size for the development environment.
16GB RAM is the minimum recommended memory size for production environment and supports up to 500 active users
32GB RAM is the minimum recommended memory size for production environment and supports up to 1,500 active users
For more accuracy, you should also consider the complexity of your application and transactions.
Web Server requires at least 2 GB of disk space. However, it depends on what Web Server you use. Please check with their website.
Application Server Application Server has 2 parts to consider about disk space
Middleware (Application Server) : It also depends on what Application Server you use. For common case, you should have at least 5 GB available disk space for this part. For accurate size please check with official website of your Application Server.
ONEWEB binary : ONEWEB binary is Application that runs on Application Server consists of App Designer, App Runtime, Process Designer, Process Runtime, Page Designer, Page Runtime, Microflow Designer, Microflow Runtime, AppSpace, etc. It requires at least 2 GB of disk space.
Database Server ONEWEB requires a Relational Database to store configuration and transaction data. Disk space for Database software usually requires at least 2 GB. But you have to check with their web site to be sure. Another part of the Database is ONEWEB data and your transaction data. ONEWEB data requires at least 200 MB and transaction data depends on the usage of the application.
Network bandwidth between Web Server, Application Server, and Database Server We recommend using at least 1 Gbps for Production and DR Environment. For Testing Environment, you can use 100 Mbps bandwidth. But we also recommend using 1 Gbps for all environments, if possible.
Network bandwidth between Web Server and Client machine For Intranet (LAN network) - If possible, we recommend using 1 Gbps (gigabit LAN), but you can also use at least 100 Mbps.
For Internet or WAN network - We recommend at least 10 Mbps internet bandwidth for normal application (not more than 50 fields of data per 1 form/page). If your application has more than 50 fields of data or has more than 3 pictures per 1 form/page, you should increase your internet bandwidth to relate with your data. To calculate what bandwidth you should have, we should base with 10 Mbps + your additional data size (data field that more than 50 fields and your additional image or attached file).
Given below are the hardware requirements to install and run ONEWEB on a machine.
Supported Platform
IBM POWER System
x86-64
SPARC
Disk space & File System
Web Server - Requires at least 5 GB of available disk space to install Web Server
Application Server - Requires at least 20 GB of available disk space to install Application Server and ONEWEB
Database Server - Requires at least 10 GB of available disk space to install Database and ONEWEB Master data.
Memory
Web Server - Requires at least 4 GB of RAM
Application Server - Requires at least 8 GB of RAM
Database Server - Requires at least 8 GB of RAM
CPU
Web Server - Requires at least 1 CPU Cores (Intel CPU) or 1 CPU Cores (IBM Power CPU)
Application Server - Requires at least 2 CPU Cores (Intel CPU) or 1 CPU Cores (IBM Power CPU)
Database Server - Requires at least 2 CPU Cores (Intel CPU) or 1 CPU Cores (IBM Power CPU)
Given below are the software requirements to install and run ONEWEB on a machine.
Operating System
AIX 7.1 or later
Linux
RHEL (Red Hat Enterprise Linux) 7.3 or later
Ubuntu 16.04.3 LTS or Later
CentOS 7.3 or later
Windows
Windows Server 2008
Windows Server 2012
Windows Server 2016
Solaris 11.3
Application Servers
IBM WebSphere Application Server 8.5.5 or later
JBoss EAP 7.0.0 or later
Wildfly 10.1.0 or later
Java
ONEWEB mainly use Java technology. So please check if the Java version on your Application Server is compatible with Java version that ONEWEB use.
ONEWEB v 4.0.0.19 use Java version 8. ONEWEB v5.0.23.05 use Java 17
ONEWEB requires a relational database. It has 2 parts, one for the configuration and another for the transaction data. ONEWEB configuration schemas and application transaction schema can be on separate instances or can be on the same instance depending on your design.
Supported Databases - Given below are the supported database servers
Oracle 11g or later PostgreSQL 9.6. MySQL 5.6 or later DB2 10.5 or later MS SQL Server 2012 or later MariaDB 10.1.22 or later Tibero 6.0 or later
Schemas - ONEWEB requires 9 database schemas for ONEWEB configuration data and 2 schemas for your transaction data
The ONEWEB configuration data schemas are as follows: eaf_master - To store AppDesigner configuration data erp_oneweb - To store AppDesigner transaction data. ONEWEB can use any schema name. This is only a sample name. pd - To store ProcessDesigner
mfd - To store Microflow configurations page - To store PageDesigner configurations bpm - To store Process transaction data asp - To store AppSpace configurations dpc2 - To store Deployment Center configurations iam2 - To store User data and Authorization data for IAM dashboard_widget - To store the widget dashboard configurations survey_rabbit - For storing survey configurations
Tablespaces - We recommend separating table space by at least one schema per one table space.
For best practice we also recommend separating table space for data and table space for index to get the best performance. You fine tune such by following these techniques:
Separate table space for transaction data table and index data table. Separate table space by following the data size of the table. Place table space file in different physical disk.
Data Files - Data File is a physical file of the Table space. One table space needs to have at least one Data File. For designing the Data File please consult your DBA.
Firewall - ONEWEB supports firewall to enhance your security. Either hardware or software firewall can be used.
Recommended firewall in ONEWEB Architecture is shown in picture below.
Firewall between Internet and DMZ Zone is the most recommended to protect your application and network from the internet. Firewall between DMZ Zone and Internal Network Zone to protect your local network as the second tier from the internet.
As some network security policies may require more firewall added between Application Server and Database Server. ONEWEB also supports that case. But some cases may require firewall policy parameter tuning to prevent database connection problem.
SSL - ONEWEB supports SSL/TLS using Application Server features such as Wildfly, JBoss EAO or IBM WebSphere Application Server. You can configure SSL Certificate at Application Server which commonly supports Self Sign Certificate or Certificate from CA.
TCP/IP Network – A physical TCP/IP network is required for ONEWEB. All Client machines, Web servers, Application Servers, Database servers and Load Balancers communicate using this network. Install at least one network adapter in each computer running ONEWEB.
Load balancing is required whenever two or more Web Servers or Application Servers are used for running ONEWEB in a cluster configuration. Either hardware or software load balancing can be used.
Git Server To manage customized source code, allow team customization and collaborations, we recommend using Git as the repository and version control system. You can use any Git server to do version control either on cloud or on-premise.
Eclipse To do customization on ONEWEB designed applications, you need Eclipse tool as the code editor for customized code. To download eclipse, please go to http://www.eclipse.org/downloads/packages/ then select Eclipse IDE for Java EE Developers. We recommend using Mars Version or later with JAVA version 8
Hardware Specification
CPU: x86-64 (Intel or AMD) 1.5 GHz or faster Processor RAM: 8 GB or higher
Software Specification
OS: Windows: Windows 8 or Windows 10 Linux: Ubuntu 16.04.3 LTS or Later MacOS: OS 10.10 or Later
Web browsers: Google Chrome 60 or higher Mozilla Firefox 57 or higher Microsoft Edge 40 or higher
This tutorial is written for beginner to intermediate-level systems administrators who may never have installed or configured the ONEWEB application server. Before you begin, you need to be aware of the hardware and software prerequisites for ONEWEB installation.