This documentation is for WSO2 App Factory 1.0.0. View documentation for the latest release.
Skip to end of metadata
Go to start of metadata

Let's take a look at the high-level components of App Factory, key programming elements and its runtime architecture.

High-level components

An overview of the high-level components of WSO2 App Factory is shown below.

Figure: High-level components of WSO2 App Factory

The figure depicts,

  1. App Store: APIs published on a storefront can be consumed through an API Gateway to build applications as well as to publish data into a shared storage server.
  2. Multiple clouds to simulate different lifecycle stages and application management components integrated.
  3. The App Factory portal teams use to perform daily tasks such as builds, deployments, source control, tests etc.
  4. Tools to create, manage and govern applications and the runtime to execute these tools.
  5. WSO2 Developer Studio as your favorite IDE. Developer Studio provides an inbuilt App Factory perspective to make the integrated development experience much simpler. But, you can also continue to use familiar IDEs because the App Factory runtime provides extension points to any third-party tool.

Integrated products and technologies

WSO2 App Factory is built using several key products and technologies as follows. Some of these are WSO2 products.

Figure: Key products and technologies of App Factory

  1. Jaggery Framework : All user interactions in App Factory are based on Jaggery, which is a server side Javascript framework. It runs on WSO2 Carbon base platform and manages all aspects of the application from front-end, communication, server-side logic to persistence in pure Javascript. App Factory needs to communicate with Web services quite frequently. Jaggery makes this effort much easier.
  2. BPEL : App Factory consists of many business processes that use a number of atomic services. In order to properly orchestrate these services, business processes are created using BPEL, which is a standards-based way for orchestrating several services. Usage of BPEL enables a workflow to be customizable since it enables usage of existing services without doing any major changes to the App Factory core. These BPELs are deployed on the WSO2 Business Process Server. Some of the business processes that use BPEL are listed below:

    • Application creation
    • Addition of a user to an application
    • Creation and Deploying of application artifacts
    • Governance of applications
  3. Governance : In App Factory a certain application goes through different life cycle changes. Life cycle stage features are handled via the WSO2 Governance Registry which include the governance rules plus context storage of each application. In the event of adding a new life cycle stage, configuration changes at both App Factory and the Governance Registry makes this a seamless experience.
  4. Infrastructure interfaces : App Factory needs to be able to interface seamlessly with the different ecosystem products that are bundled with it for Application Life cycle Management. These include Issue tracking systems like Redmine, Jira; build systems like Jenkins and source  control systems like Git, SVN. App Factory achieves this by using deployers which are interface definitions for ecosystem interfaces. When adding a particular ecosystem into App Factory, a concrete deployer should be implemented to handle interaction with App Factory.
  5. Maven Archetypes : App Factory allows a user to create applications of different types. Each of these application types is created as a maven archetype with the basic components within it, which, once expanded can be used by the application developers. If a new type of an application needs to be added then an archetype for that application type should be created and added making addition of new application types easy.
  6. Life cycle stage environment : In App Factory, it is possible to have different life cycle stages for an application. Once an application is created, a cloud for each life cycle stage is created. It is within this cloud that all operations for that life cycle stage execute. If an owner of a App Factory needs to create a new life cycle stage, then, once the necessary configurations are done another cloud will be created for that new life cycle.

Runtime architecture

WSO2 App Factory leverages WSO2 PaaS, namely WSO2 Stratos. Stratos supports polyglot programming through its new and improved architecture. Stratos offers multi-tenanted, shared container isolation for all platform components of WSO2 Carbon platform, based on which WSO2 App Factory is built. Stratos also offers standard virtual machine and Linux container (LXC) isolation and tenancy for both Carbon and non-carbon components. A cartridge architecture supports a polyglot programming model that enables developers to mix-and-match programming languages (e.g., PHP, JavaScript, Java), frameworks (e.g., couchDb, MySQL, JEE), and application platform servers (e.g., Tomcat, Jetty, WSo2) in the PaaS.

Figure: Runtime architecture of WSO2 App Factory

Also see http://docs.wso2.org/stratos.

  • No labels