WSO2 StratosLive - An Enterprise Ready Java PaaS
By Kathiravelu Pradeeban
- 17 Aug, 2011
What is StratosLive?
StratosLive is a Platform as a Service, the public deployment of the WSO2's Cloud Middleware Platform Stratos. As the successor of WSO2 Stratos cloud beta, WSO2 StratosLive has been released with much new and more improved features such as, billing, throttling, load balancing, auto-scaling, logging, and improved user experience. StratosLive mainly targets the enterprise architects, SaaS developers, and researchers. It is also for anyone who needs an enterprise SOA middleware platform as a service.
In an organization with multiple departments, each department might be equipped with its own middleware platform for the required isolation, autonomy, or security. With the Cloud Middleware Platforms (CMP), a single product which is installed and managed centrally, can replace the entire set of platforms installed separately in each department.
Multi-tenancy enables centrally installed/deployed and managed resources, providing an independent middleware platform virtually for each department, by registering as a tenant in the organization's cloud middleware platform. Tenants, while sharing the same resource, will not be aware of the existence of the other tenants. Each tenant can have multiple users. This provides a smarter solution for the organization.
A cloud middleware platform, when hosted on a private, public, or a hybrid cloud infrastructure, becomes a Platform as a Service. A Cloud Middleware Platform is also referred to as a Cloud Enabled Application Platform (CEAP) by Gartner, indicating that the application platform is cloud-enabled.
Are all the application platforms cloud-enabled? No. The cloud enablement comes with the fruits of multi-tenancy, and the native support to be a cloud platform. An ideal example is WSO2 Stratos, which is the cloud-enabled WSO2 Carbon middleware platform. A cloud middleware platform can usually be hosted over the cloud, as a Platform as a Service. It should be noted that not all the PaaS are provided as fully-functional cloud middleware platforms.
An open platform as a service is committed to fight against vendor lock-in, by adhering to the open standards. Being open means, the application developers should not be writing an application solely focusing on a platform.
You can either register an account in StratosLive and log in using the tenant, or simply login using your Google Apps account. StratosLive provides four usage plans such as Demo, SMB (Small & Medium Business), Professional, and Enterprise. Pricing information can be found on the StratosLive pricing page. You have to pick a usage plan during the tenant registration. However, you can simply upgrade or downgrade your account based on your requirements at any time.
Fig 1. Registering a tenant.
To register a tenant (Fig 1), first you have to pick a domain name for your tenant. An admin account will be created along with the tenant creation. Your username is in the form of [email protected]-name. Please note that the username should not be confused with your email address.
Fig 2. Domain Validation
If you are the owner or the admin of the domain, you should consider validating the domain during registration (Fig 2), to ensure that your tenant will always be associated with your domain, preventing others from claiming it. However domain validation is optional, and can be done after you have registered and signed in to your account.
After giving the information required, you can click 'Submit' to proceed with the registering. Once you have successfully registered, a confirmation mail will be sent to the email address provided during the registration, within a few minutes. Click the link provided in the mail. That will confirm your email address and validate your account . Unlike the domain validation, email validation is mandatory to log in and use your tenant account in StratosLive. So please find the mail and validate your account as soon as possible. If you did not receive the mail, check whether the mail has ended up in the spam folder. If you find any issue in validating your email or logging in, contact WSO2 Support or the StratosLive forum.
Once validated, you can get back to the log-in page, and log in using your username ([email protected]) and password. We will look into StratosLive PaaS in the next topic, with a simple SaaS.
The dashboard of Stratos Manager lists down the services that are active to the tenant. You can navigate to any of the services from the manager dashboard without logging in again, as the services are enabled for single sign-on. More users can be created once logged in. The tenant admin also can disable the services for his tenant users from the manager.
Fig 3. StratosLive manager home
StratosLive has a distributed logging feature that is tenant and service aware. This enables the tenants to view only their logs for each of the services.
Shopping Cart Sample
Fig 4. Solution Architecture of Shopping Cart Application
The Shopping Cart Sample (Fig 4) comes bundled with Stratos, for the tenants to install and get their hands on to Stratos quicker. It can be considered an application as a service that runs on top of the Stratos platform as a service, giving an essence of the Stratos Services. It is one of the simplest samples that explains how Stratos becomes as a platform solution for the enterprise Software as a Service requirements.
Shopping cart is an online shopping application, where you can log in and purchase cameras. In the shopping cart, we have a user portal, an admin portal, and the administrative gadgets. Shoppers, operators, and the business administrators interact with the application. Suppliers to the warehouse and the payment gateways are also involved as the external services. The shopping cart application can also find out similar products available in the market from the partner services like Amazon or ebay. The solution architecture of the shopping cart application provides an overview of how the entire platform can be used to host an enterprise software as a service.
You can install the sample from Tools -> Shopping Cart of the Stratos Manager. The entire application, which spans across all the stratos services, is installed with just one click. Carbon Application, commonly known as cApp, enables this seamless integration of the bits and pieces of the entire application that spans across all the services. WSO2 Carbon Studio, an eclipse based IDE for WSO2 Carbon, is used to create the cApps efficiently. The sample installer component generates the cApp, uploads it to the tenant registry space, and the application deployer deploys the relevant component(s) of the sample application into the relevant Stratos Service.
WSO2 Data as a Service
The WSO2 Data Services Server, a platform for hosting of data services, with service hosting, service testing, and message tracing features is delivered as a multi-tenant, elastically scaling, metered platform. In the sample shopping cart application that we are discussing, the components talking to the traditional or the legacy database will be deployed into WSO2 Data as a Service. Data as a Service exposes the data stored in a database. Database level operations can be done using the interface provided by Data as a Service (Fig 5). Data is distributed to all the services through the shopping cart data service, handling the database transactions.
Fig 5. Try It for the Data Service
WSO2 Enterprise Service Bus as a Service
The WSO2 Enterprise Service Bus, one of the highest performance and lowest footprint approaches to implementing a SOA, with the features of proxy services, sequences, endpoints, and much more, delivered as a multi-tenant, elastically scaling, metered platform. In the sample that we are discussing now, WSO2 Enterprise Service Bus as a Service facilitates the service collaboration through the proxy services (Fig 6).
Fig 6. ESB Proxy Services
WSO2 Application Server as a Service
Fig 7. Application Server Web Applications
WSO2 Application Server as a Service provides the presentation layer for the web applications to be deployed (Fig 7). The admin can add new products, categories, users, and more. Java security is used to authenticate when logging into the admin portal. Admin Service is used by the Admin Web Portal (Fig 8). It connects to the shopping cart data service and fetches the data as we request from the web application.
Fig 8. Admin Web App.
User portal is where the user or the customer interacts with the system. Product Service is associated with the user portal (Fig 9). Similarly, purchasing is handled by the Purchasing Service. It updates the finance application through the Financial Connector service, which is an Axis2 Service deployed on WSO2 Application Server as a Service. WSO2 Application Server as a Service is the WSO2 Application Server, supporting the development, deployment, and management of web services and web applications, and service hosting along with tools, delivered as a multi-tenant, elastically scaling, metered platform.
Fig 9. Portal Web App
WSO2 Governance as a Service
WSO2 Governance as a Service is the WSO2 Governance Registry an integrated SOA registry-repository, supporting efficient management of an organization's growing SOA implementation, delivered as a multi-tenant, elastically scaling, metered platform. Meta data such as the xslt files of the purchasing service are stored in the WSO2 Governance as a Service, and the resources are fetched during the purchase and the transactions.
WSO2 Business Processes as a Service
The WSO2 Business Process Server powered by Apache ODE, provides a complete graphical console to deploy, manage and view processes and process instances, with the features for WS-BPEL 2.0 & BPELWS 1.1, Instance Data Cleanup, and Process Monitoring, delivered as a multi-tenant, elastically scaling, metered platform. In the shopping cart sample that we have been discussing, a ReOrderProcess in Business Processes as a Service checks the stock periodically and reorders if the items goes out-of-stock.
WSO2 Mashups as a Service
This sample is just a teaser of StratosLive, demonstrating the platform aspect of Stratos and the comprehensiveness of StratosLive, the WSO2 platform as a service. We will discuss a few notable improvements, new features, or additions into StratosLive (based on Stratos-1.5.1), from its predecessor WSO2 Cloud Services (based on Stratos-1.0.0), in the next few paragraphs.
StratosLive comes with a set of new features and improvements from its predecessor WSO2 Cloud Beta. StratosLive has Stratos-1.5.1 as the cloud middleware platform. WSO2 Complex Event Processing as a Service and WSO2 Message Broker as a Service are two new services that are included into StratosLive with this new release. Integrated samples, improved documentation and the screencasts make StratosLive more convenient to learn and use in a shorter time period.
The WSO2 Load Balancer fronts the services and handles the load balancing and auto-scaling of the services according to the load. HTTPD-style access log collection is a new feature of the WSO2 Load Balancer, which avoids the need to front the services or their load balancers with Apache HTTP Servers. These improve the availability and scalability of StratosLive considerably.
A few other notable improvements and new features are,
- An improved metering and billing support to throttle the usage based on the tenant usage plan.
- Versioning and incremental updates.
- Tenant programming model & documentation
- Tenant data storage mode with scaling up databases, and NoSQL.
- SaaS web applications support.
- Registry based repository implementation based on registry eventing.
- Cloud Services Gateway.
WSO2 StratosLive, the open Java PaaS, is the publicly hosted cloud deployment of Stratos, from WSO2. Migration of your applications between the PaaS, and the Cloud Middleware Platform behind the PaaS is a simple task. WSO2 provides it at each level - from an enterprise middleware platform named Carbon, to the cloud middleware platform named Stratos, and finally to the Platform as a Service named StratosLive and the other public, private, or hybrid clouds with Stratos as the Cloud Middleware Platform.
Try StratosLive, now!
Summer School 2011 - Platform-as-a-Service: The WSO2 Way
Kathiravelu Pradeeban, Software Engineer.