The WSO2 Application Server has Apache Axis2 framework as its core and is distributed under Apache License 2.0. It has full support for Apache Tomcat, which is the underlying Web application container and can be installed standalone or on top of Tomcat, WebSphere, WebLogic, Jboss or as part of a J2EE (Java EE) compliant servlet container.
Because the WSO2 Application Server is part of WSO2 Carbon, the component-based middleware platform, it consists of a set of pluggable components. Developers have the choice to deploy only the required components and leave unwanted functionality which adds to the bulk.
The diagram below describes WSO2 Application Server architecture from a messaging perspective.
The diagram shows how a message propagates through a typical WSO2 Application Server implementation but the functionality is not limited to what is depicted here.
1. Different Web channels such as client applications or mobile phones, communicate with an enterprise's application server through the Internet or a private network. These Web channels typically use XML/SOAP or REST messages.
2. The "transport" in the message receiver’s end manages concurrent connections and listens to messages contacting the application server via a particular protocol. For example, an “HTTP transport listener” detects XML/SOAP messages communicated in the HTTP protocol.
3. A transport which detects a message identifies if it needs any additional processing, also known as (QoS) operationssuch as security checks, information decrypting , usage bandwidth control etc. The transport then sends the message through a message pipe containing handlers to take care of the additional processing. The WSO2 AS contains several QoS handlers which are discussed in detail in the next section.
4. Once the message has gone through the message pipe, it is passed on to the Message Receiver.
5. The Message Receiver determines the Web Service that needs to be invoked out of the services deployed in the application server and executes it.
This is how a message sent from a Web channel communicates with the Application Server and invokes a Web Service. Similarly, Web Application clients can call Web applications deployed inside the Application Server directly through Tomcat transports (HTTP/S).
All these components can be managed and monitored through the WSO2 Application Server's Management Console.
Application server components
The following scheme visually presents the component-based architecture of the WSO2 Application Server.
The WSO2 Application Server is a light-weight, high-performant and integrated Web services middleware platform. For it's Web service related functionalities, it uses components from the Apache WS-* stack. Apache Axis2 is the heart of the WSO2 Application Server's SOAP processing engine. Other components like Rampart, Sandesha2, Neethi etc. provide the other WS-* capabilities.
The WSO2 Application Server supports a number of transports through which the clients can send requests. As listed in the figure above, HTTP/S, JMS, Mail, XMPP and TCP are the main transports that are supported. In addition to that, any transport can be easily plugged in using the APIs provided by Axis2. For more information, see Transports.
In the standalone mode, the WSO2 Application Server runs on top of an embedded Tomcat instance. This is from where it inherits the Web application deployment capabilities. It also supports development and deployment of other types of applications, including JAX-WS and JAX-RS.
For more information, see .
The WSO2 Application Server has an in-built registry/repository to store the configuration and configuration metadata. It provides the facility to use a remote repository as well.
The WSO2 Governance Registry is something the WSO2 Application Server inherits from the WSO2 Carbon platform, the component-based platform upon which all WSO2 products are built. WSO2 Governance Registry acts as the metadata repository for the deployed services. In addition to that, users can use it for governance features as well. For more information, see Registry Management.
In addition to that, the Application Server can be deployed on other Application servers (as a Webapp) like WebSphere, WebLogic and Jboss as well.