You are on page 1of 21


Lecture # 23

CSE 423

Exploring PaaS

Deepak Kumar,
Asst. Professor, LPU, Pun
The Platform as a Service model provides the tools within an environment
needed to create applications that can run in a Software as a Service model.

For this reason, some overlap between vendors has created Software as a
Service products, and those vendors have broadened their services to make
their Web applications more customizable. E.g. and

Applications developed in PaaS systems can be composite business

applications, data portals, or mashups with data derived from multiple
PaaS environments can offer integrated lifecycle management or anchored
lifecycle applications

An integrated system provides a broad range of tools for customization,

whereas an anchored system is based on already established software
Defining Services
PaaS models span a broad range of services, including these, among others:
Application development: A PaaS platform either provides the means to use
programs you create in a supported language or offers a visual development
environment that writes the code for you.

Collaboration: Many PaaS systems are set up to allow multiple individuals to

work on the same projects.
Data management: Tools are provided for accessing and using data in a data

Instrumentation, performance, and testing: Tools are available for

measuring your applications and optimizing their performance.
Storage: Data can be stored in either the PaaS vendor's service or accessed
from a third-party storage service.

Transaction management: Many PaaS systems provide services such as

transaction managers or brokerage service for maintaining transaction integrity.
A good PaaS system has certain desirable
characteristics that are important in developing robust,
scalable, and hopefully portable applications. On this list
would be the following attributes:

Separate of data management from the user interface

Reliance on cloud computing standards
An integrated development environment (IDE)
Lifecycle management tools
Multi-tenant architecture support, security, and scalability
Performance monitoring, testing, and optimization tools versus SaaS versus PaaS was formed by several Oracle employees in

1999 to create hosted Customer Relationship Management
(CRM) Software based on cloud computing model i.e pay as
you use.

The platform looks like a typical website

such as with a multi tabbed interface each tab
being an individual application. versus SaaS versus PaaS

As developed its SaaS production, it

became obvious that many customers wanted to extend
their applications beyond what an SaaS
offering would allow. developed a PaaS platform known as, which allows developers to create applications
that could be added to's offerings and
hosted on's infrastructure.
Application Development
A PaaS provides the tools needed to construct different types of
applications that can work together in the same environment.
These are among the common application types:

Composite business applications

Data portals
Mashups of multiple data sources

A mashup is a Web page that displays data from two or more

data sources. The various landmarks and overlays you find in
Google Earth, or annotated maps, are examples of mashups.

These applications must be able to share data and to run in multi

tenant environment.
All PaaS application development must take into account
lifecycle management. As an application ages, it must be
upgraded, migrated, grown, and eventually phased out or

Many PaaS vendors offer systems that are integrated lifecycle

development platforms i.e. the vendor provides a full software
stack development stack for the programmer to use and isnt
expected that the developer will need to go outside of the
service to create his appliacation.
An integrated lifecycle platform includes the following:
The virtual machine and operating system (often offered by an
Data design and storage
A development environment with defined Application
Programming Interfaces
Testing and optimization tools
Additional tools and services

Example of integrated life cycle : Google AppEngine, Microsoft

Windows Azure Platform, Eccentex AppBase, LongJump, and Wolf
Some PaaS services allow developers to modify existing software.
These services are referred to as anchored lifecycle platforms.

Examples of an anchored lifecycle platform are


The applications in these two services aare fixed but developers

can customize which applications the users see , how those
application are branded, and a number of features associated with
the different applications.

An anchored service offers less customization but has a faster

development cycle and may be less prone to software errors.
Using PaaS Application
Application frameworks provide a means for creating SaaS hosted
applications using a an integrated development environment (IDE).

Web sites and application building PaaS systems

Many Web sites are based on the notion of information

management and organization; they are referred to as content
management systems (CMS).

Whereas Drupal is used in major Web sites and organizes vast

amounts of information, the site provides CMS
system aimed at supporting individuals, small businesses, and
other small organizations
What is Drupal?

Open Source software written in php.

A CMS or content-management

A sophisticated web application

building tool.
Why use a CMS?
It helps manage complexity.

It provides a user interface (UI) for

adding, editing and publishing content.

It provides a means for collaboration

among many to perform the above
Why use Drupal over
Wordpress ( ) was designed only to be a
blog with some easy add-ons.

Drupal was designed to be more of a generalist: its for making

anything and is far more robust.

Wordpress could be the better choice for blogs since it is better at

being a blog than Drupal. This is something of debate.

Wordpress is still a sound choice of CMS for SEO and security; so if

wordpress satisfies a simpler projects requirements then by all
means use it- it is easier and faster to set up than Drupal.

Wordpress is not designed to be highly scalable to many

simultaneous users, nor does it have flexible roles, permissions,
extensible content types, nor does it have plentiful well-tested,
quality add-ons. It has a few and a lot of really poor plugins.
Why use Drupal over Joomla? (or other
It has superior session handling for a CMS.
It has superior security.
It is a more consistent, reliable and flexible framework for
It is considered better for SEO from our research.
It uses a separation of concerns architecture to cleanly and
consistently separate structure, function, form, and
presentation in layers (ie: php from data as db/xml, layout and
presentation as html and css).
It heavily uses defaults overrides in code in the form of hooks
and in themes in the form of templates. This makes it
extremely flexible.
Other CMSes do a very very bad job of at least one of the
Drupal Structure
Drupal is a database-driven (dynamic)
application. It requires a database.

Drupal has a core filesystem whose

functionality can be extended using the
UI itself, modules and themes.

The UI settings are stored in the

The Drupal core by itself contains a number of modules
that provide for the following:

Blogs, forums, polls, and RSS feeds
Multiple site management
OpenID authentication
Performance optimization through caching and
User interface creation tools
User-level access controls and profiles
Traffic management
Workflow control with events and triggers
Eccentex AppBase, LongJump, and Wolf were chosen as examples of
developer-oriented services aimed at users and developers who want to create
Web-based applications based on Service Oriented Architecture protocols and

These services vary in some details, but they have these common characteristics:

They separate data-handling from presentation (user interface).

They offer tools for establishing business objects or entities and the
relationships between them.
They support the incorporation of business rules, logic, and actions.
They provide tools for creating data entry controls (forms), views, and reports.
They provide instrumentation, tools for measuring application performance.
They support packaging and deployment of applications.