Architecture of Adeptia Suite
Adeptia Suite is a Java-based application designed using the J2EE framework. It is built using the state-of-the-art technologies and open standards. It uses XML, XSLT, Java (JMX, JDO, JCA, JMS, etc.) Swing, and web services. XML is the core data format used in the integration component. However, the application supports a wide range of disparate formats and structures.
Adeptia Suite utilizes the typical N-tier application architecture.
Tier Application Architecture
Its unique feature is that the Presentation Layer is completely web-based, and thus can be used by business users or developers from anywhere at any time. The user-interface layer is used by developers at design time, and by business users at the runtime to interact with workflow tasks. The Application Layer is a set of Java-based server-side programs, residing on the central server and is used for executing process flows. The Data Layer represents the database, where all business rules, design rules, activity instances, and process flows are stored. Run-time logs are also stored in the database.
The Adeptia Suite follows a Hub-and-Spoke model in terms of deployment in an IT infrastructure. It acts as a central hub, with connections to other systems and external partners as spokes in this model. The main server implements and executes process flows and integrations. It achieves great scalability in performance using its clustering feature. Additionally, it follows a Store and Forward framework. Any incoming data can be archived and then converted into an XML format for further processing.
Modular Design
Adeptia Suite leverages a modular architecture that facilitates greater flexibility and extensibility. This modular design is depicted in the below image.
Modular Design
This approach has enabled the application to offer additional features and functionality. The biggest advantage is that the customers can easily expand the product and add their own custom modules for serving their business needs. The N-tier architecture easily segregates the Presentation, Application, and Data layers into independent modules. The Adeptia Suite functionality is further separated into independent modules. For example, in the Application layer, the Process Engine, Events, Transport, Transformation, and Workflow features are all parts of separate modules.
This modular design facilitates the expansion of the Adeptia Suite by adding custom programs as new services in the process flow. Custom transports and application integration components can be easily configured to access legacy systems. Custom parsers, schemas can be added to support additional file formats.
Scalability
Adeptia Suite supports distributed execution by clustering of multiple nodes that run parallel on separate servers for load balancing and failover capability. This enables scalability in terms of both processing large data volumes, and a large number of concurrent transactions.
To enable clustering, the Adeptia Suite is installed on a set of servers that act as nodes in a cluster. A cluster actually represents multiple instances of the Application layer, each running on a separate server, and sharing one back-end data layer i.e. the database. The Presentation Layer also runs from one server.
To create a cluster, a network of nodes is created. One node acts as the primary node and the other nodes are secondary nodes. When process flows are triggered, they are distributed among the nodes of the cluster for execution. If a secondary node goes down in a cluster, it is taken out of the available list and the process flow execution is distributed among the other secondary nodes in the cluster. If a primary node goes down in the cluster, then a secondary node is automatically assigned to the new primary node that continues the process flow execution.
A simple round-robin algorithm is used for distribution in the cluster. A complete process flow is assigned to a node for execution, thus ensuring that every activity of the process flow is run from that node.
Service Oriented Architecture
Customers deploy business solutions in the Adeptia Suite, based on the Service Oriented Architecture (SOA). Its unique feature enables the Adeptia Suite to allow SOA for a heterogeneous environment of Web services and other services.
The Adeptia Suite achieves to be a successful and complete service-based solution by offering a wide range of services. These are outlined as:
- Ability to create independent, reusable services or activities
- Ability to manage repository of these services or activities
- Ability to organize tasks in a process flow that represents a business function
- Ability to expose these business processes to be used by other applications
Many services such as triggers, data transport, transformation, workflow, and web services are pre-built in the Adeptia Suite. Developers create instances of these services, which are referred to as activities. These activities are reusable in multiple process flows. Developers can create custom services or add existing activities into the Adeptia Suite. These services can be web services or custom programs. All these services are added to a service repository, and activities may be assigned to these services with varied user permissions.
Process flows are created by sequencing individual activities together to create a complex and fully functional business process flow. A process flow represents a complete business operation such as 'Manage and process website orders'.
A process flow can also be used in another process flow. It can be called as a subprocess in another process flow. Additionally, it can be published as a Web service and used in other processes or applications.
Deployment Model
Adeptia Suite is delivered as a single product and can be deployed with one installation exercise. It is opposed to its competitor products that adopt a tool-kit approach and require the installation of different tools and products.
When the Adeptia Suite is installed on a server, it installs all code modules related to Presentation, Application, and Data layers. The back-end database can be installed on the same server or on another database server.
Depending upon the expected data and transaction volumes, clustering of nodes is setup facilitating enhanced performance and scalability. Similarly, the backup database can be setup to ensure higher uptime.
Deployment Model - Adeptia Suite in Clustering (Internal access)
Deployment Model - Adeptia Suite in Clustering (External Access)
The typical deployments of the Adeptia Suite in a customer environment are described below:
- Production Server: this will be the instance of the Adeptia Suite that is used for the final production environment. There will be multiple production servers to create a cluster.
- Development Server: this will be the instance of the Adeptia Suite that is used by developers for design, creation, and development of activities and process flows. Once a process flow is complete, it is migrated to the Production Server for deployment.
- Staging and Testing Server: this will be the instance of the Adeptia Suite that is used when the process flows are complete and before they are deployed on the Production Server. The process flows are used for staging, testing, and user acceptance. This is optional and may be combined with the Development Server.