Let's take a look at the high-level components of App Factory, key programming elements and its runtime architecture.
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,
- 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.
- Multiple clouds to simulate different lifecycle stages and application management components integrated.
- The App Factory portal teams use to perform daily tasks such as builds, deployments, source control, tests etc.
- Tools to create, manage and govern applications and the runtime to execute these tools.
- 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
- 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
- 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.
- 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.
- 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.
- 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.
Figure: Runtime architecture of WSO2 App Factory
Also see http://docs.wso2.org/stratos.