Getting Started: Learn

The Akula Server is a WAR file that you deploy on Tomcat or other JEE server or servlet container. After deploying the Akula WAR file, you can deploy one or more app scopes that client apps access by making HTTP(S) requests, as the following image shows:

An Akula Server project defines an app scope that you deploy as an Akula archive (AKZ) file on your Akula Server. Akula projects define endpoints, routes, and modules that your mobile apps make requests to. 

The following table describes the parts of an Akula project:

PartDescription
API endpoints

Endpoints are matched up with the routes that the Akula Server sends the request to or receives a response from. Endpoints are defined in an endpoint configuration file.

For more information about defining endpoints, see Using Endpoints.

Routes

Routes define the order in which one or more modules process the messages during the request and response flow. The Akula Server chooses which route or routes to execute based on the request type, endpoint location, and other factors.

Modules use the bodies of the messages to create or transform the response. Each module accepts the incoming message, processes it, and then passes it to the next module, if there is any. The original HTTP request object does not change as the message traverses the route.

When all modules in a route have processed the response message, the next route is called, if there is any. Otherwise, the Akula Server constructs and returns an HTTP response to the client.

The routes that a particular request takes, and the order of those routes, are defined in the endpoint configuration file.

For more information about defining routes, see Using Routes.

Built-in modules

 

Modules process the message as it travels through a route. The input of a module is transformed by the module and then becomes the output of the module. This output becomes the input of the next module in the route.

Each route can define one or more modules, and the order in which the modules are called.

The same module can be used more than once in a route or in more than one route.

Modules are optionally configured in XML or SQL files in an Akula project. Some modules require no configuration because their configuration is done in the route configuration file.

For more information about defining modules, see Built-in Modules.

Custom modules

Akula projects also often contain custom modules that you build to perform custom operations on your data in a route.

For more information about creating custom modules, see Creating Custom Modules.

Database configuration files

Some Akula projects include configuration files for database backends. These include connection parameters and other information. You can define database connections to be container managed or application managed using JDBC or pooled connections.

For more information, see Database configuration files.

Permissions and credentials

Akula lets you define the rights and privileges for the app scope, where a permission corresponds to an allowed action on a resource controlled. For example, one permission could allow a read action, while another allows a delete action.

For more information about permissions, see Authentication and Authorization.

Properties files

Some Akula projects include properties files that define properties that an Akula developer or an administrator might want to set.

For more information, see Defining App Properties.

ResourcesAkula projects can also contain additional resources such as additional configuration files, binary assets, and resource bundles.

For detailed information about the directory and file structure of an Akula project, see Akula Project Structure.