Getting Started: Learn

Akula consists of the following major components: the Akula Server, the Akula Server SDK, and the Akula Clients.

This document contains an overview of the Akula architecture, and includes the following sections:

Architecture Overview (video)


The Akula Server

The Akula Server is an extensible enterprise-class server that provides the common infrastructure services required for mobile apps such as authentication, role-based authorization, management of applications and notifications and performance and usage monitoring. All services are accessed through secured REST endpoints. In addition, the Akula Server allows you to configure custom REST endpoints that provide secure access to enterprise data that is optimized and transformed for use by mobile apps.

The Akula Server is lightweight, scalable, and was built from the ground up for optimized delivery of data to mobile devices. The Akula Server includes:

  • JEE-based server
  • Secure infrastructure for mobile apps
  • Integrates with existing directory infrastructure
  • Role-based authorization
  • Server Management
  • Extensible REST services targeted to mobile apps
  • Extensible data integration and transformation
  • Central management of server
  • Delegated management of apps

Connecting the Akula Server to back end resources

The Akula Server makes it easy to connect and process data with support for popular transport formats including HTTP, REST, JMS, LDAP, and Web Services along with data connectors for popular back end data repositories like Oracle, SQL Server, MySQL and others. If a particular data connector is not provided out of the box, the open nature of Akula makes it easy for you to extend a base implementation and to save development effort while gaining connectivity and management functionality.

Creating an app scope on the Akula Server

To define connections to back end resources from the Akula Server, and to expose those services to client apps, you create and deploy a set of Akula app scopes on the Akula Server. The environment might require multiple sets of services to meet different client requirements, but you will always create at least one app scope. You create Akula app scopes by editing XML files that define the connections to the back end resources.

Deploying the Akula Server

The Akula Server is built on the Java Platform, Enterprise Edition (Java EE) 7, and can be deployed on any Microsoft Windows, Linux, UNIX, or OS X server that supports Java EE 7.

The Akula Server SDK

Akula project developers can use the Akula Server SDK, a Java SDK, to create custom modules as part of the services. The Akula Server allows enterprises to use standard Enterprise Integration Patterns (EIP) to build modules that extend the capabilities of the server. Using Apache Camel, a well-known and tested open-source Java framework, you can incorporate your own integration logic into the Akula Server. Acting as an execution engine, the server will process each modular custom block of code while managing the passing of data between processes.

The server SDK allows companies to extend the Akula Server to:

  • Create secure mobile app services
  • Configure custom endpoints accessible from mobile devices
  • Declare access permissions for endpoints
  • Configure data integration processing flows
  • Configure manageable app properties
  • Extend data integration
  • Build custom data connectors
  • Build custom data processors
  • Includes robust documentation and sample code

The Akula clients

The Akula Server exposes common functionality to mobile clients over HTTP(S) through a set of built-in REST endpoints. Additional endpoints are added by the enterprise to support application-specific requirements such as access to enterprise data. For example, when you connect a data source to the Akula Server, you expose new endpoints used to access the data source.

Client apps communicate with the server over HTTP(S). You can write client apps using any technology or platform – such as Android, iOS, JavaScript, or a hybrid solution. While any client can make direct requests to the endpoints on the Akula Server, you will find it easier and faster to use the Akula client SDKs, which bundle many common pieces of functionality.

The Akula client SDKs provide APIs to authenticate a user, and also provide utilities that simplify access to back end resources. These APIs let you define the structure of a data model, control how the model’s fields are populated with data from the back end, and specify the destination for saving the data through the Akula Server to the enterprise back end.

The Akula client SDKs are idiomatic for each native platform (iOS, Android and JavaScript) and conform with those platforms' standards, terminology and culture. The SDKs include:

  • Reliable, reusable code needed by enterprise mobile apps
  • Secure communications
  • Secure data storage
  • Encryption of local data
  • Offline log in/log off
  • Collection/Model APIs
  • Data sync for secure offline data usage
  • Logging APIs
  • Eventing
  • Sample apps, documentation and detailed API references

Akula Architecture Diagram

For more information

This document contains only an introduction to the Akula architecture. For detailed information, see: