I N D U S T R Y T R E N D S
Developing Software Online with Platform-as-aService Technology
George Lawton
Under the hood
O
ne of the hot topics in computer technology is software as a service, in which vendors host applications on the Internet and provide them via a browser to users, who perform and store their work online. Users thus don’t have to worry about developing, hosting, updating, or maintaining applications or storing data. Several vendors have taken the SaaS concept a big step further and now offer platform as a service systems. PaaS systems are generally hosted, Web-based application-development platforms, providing end-to-end or, in some cases, partial environments for developing full programs online. They handle tasks from editing code to debugging, deployment, runtime, and management. In PaaS, the system’s provider makes most of the choices that determine how the application infrastructure operates, such as the type of OS used, the APIs, the programming language, and the management capabilities. Users build their applications with the provider’s on-demand tools and collaborative development environment. “PaaS typically provides a complete set of tools and technology, from the interface design, to process logic, to persistence, to integration,” noted David Linthicum, CEO of the Linthicum Group software consultancy.
In some cases, developers can use a PaaS provider’s online resources to build applications offline. Mostly, software developed with the technique runs online and is hosted by the PaaS service provider. However, users can sometimes cache part of a program, work with it offline, and synchronize it later with the online application. Proponents say the approach has numerous benefits such as increasing programmer productivity, enabling companies to build and release products more quickly, and reducing development costs. PaaS vendors include Bungee Labs, Coghead, Etelos, Google, LongJump, Rollbase, and Salesforce. com. Industry observers expect more big companies to join the fray. However, PaaS must still address several key concerns before it can become widely popular.
PUSHING THE TREND
PaaS offers companies a different approach to building applications for internal use or for sale. Figure 1 shows a typical platform.
Published by the IEEE Computer Society
PaaS creates a virtual platform for application development and deployment. The user develops applications by interacting with the PaaS providers’ servers, generally via a browser. The systems’ programming model lets a developer specify business process flow and application logic without referring to the underlying physical computer systems and network interfaces. The model compiles program logic into the service calls used by the servers, client, and network interfaces. PaaS thus hides the complexity of the logic running between a client and a virtual server across a virtualized infrastructure. Some systems store the information that applications work with within a user’s infrastructure. Others store the information online, eliminating the need to call data from an external source and thereby reducing database-integration challenges. PaaS vendors provide various tools that offer different levels of precision for letting organizations track the usage of their PaaS-developed software. They can track factors such as the number of times people use an application, the time they spend with a program, their activities with it, the software’s performance, and any problems it experiences. With some PaaS platforms, such as Bungee Connect, developers can build PaaS applications only when connected to the Internet. In others, such as the Google App Engine, the PaaS system creates an instance of the online server environment locally, allowing a developer to work offline and then push the application to the PaaS provider’s server so that it can host the application. PaaS providers frequently try to make the programming experience familiar to developers by supporting common languages like C, Java, and PHP, or via drag-and-drop businesslogic tools that implement blocks of code and thereby reduce the amount of work required. However, providers such as Bungee and Salesforce.com have develJune 2008 13
r6intr.indd 13
27/5/08 2:39:42 PM
I N D U S T R Y T R E N D S
1 Web applications 2 Visual authoring 3 Workflow and custom logic 4 Integration layer 5 Database 6 Secure hosting infrastructure
Source: Coghead
Figure 1. Vendor Coghead’s platform is typical of that found in PaaS systems, which generally are hosted, Web-based application-development platforms that offer database, workflow, interface design, process logic, integration, debugging, deployment, and other necessary services.
oped their own languages. They say the new languages simplify the development process and are relatively easy to learn.
configure separate tools for each programmer. All this increases efficiency, decreases production time, and reduces risk by simplifying the process, said Adam Gross, vice president of developer marketing with SalesForce.com, a provider of customer-relationship management (CRM) services. Building, debugging, testing, and deploying applications in the same environment also reduces project risk by eliminating problems caused when programs are developed in one setting but run in another. Programmers’ ability to use a shared, high-capacity platform that is easy to provision to additional developers to code and test software also enables the easy expansion of work groups when necessary. PaaS supports collaboration among developers because the code is managed online, making it easy to access, modify, and return.
APPROACHES
Typical PaaS projects Advantages
By hosting the entire development environment, proponents say, PaaS increases productivity, lets organizations release products faster, and reduces software’s cost. They say the approach eliminates the need for developers to configure their own servers for building applications, make their deployment environments scale, and implement and integrate management tools. They also don’t have to wrestle with storage subsystems, security, or OS and server patches. And they don’t have to deal with network interfaces when trying to get application components or Web services to talk to one another. Instead, PaaS providers handle these issues. Developers can just focus on creating software, said Lyle Ball, Bungee’s vice president of marketing. And companies don’t have to maintain separate environments for tasks such as building, configuring, testing, and deploying applications, he noted. Moreover, they don’t have to purchase and
14 Computer
Linthicum said companies typically use PaaS for lightweight application-development projects in which there are Web-based components and Web-delivered resources, including information from databases. An example would be a CRM system that can be accessed and shared by a work group. PaaS is well-suited for these projects because it hides the complexity of creating applications that span Web-based clients and servers. And the approach is better suited for lightweight programs because running client logic within a browser, as opposed to a native OS, is more difficult with bigger applications. Some sophisticated PaaS applications can integrate with a company’s existing programs that have Web interfaces. They can also work with other corporate software and databases. The PaaS applications thus must have a variety of connectivity capabilities, such as SOAP, which lets a program running in one OS communicate with a program running in another OS via HTTP and XML.
PaaS platforms take a variety of approaches, from the relatively simple, in which users basically just assemble existing code blocks, to the complex. The Etelos platform (www2. etelos.com) lets developers create applications using the Etelos Development Environment with languages such as PHP, JavaServer Pages, C#, and the company’s own English Application Scripting Engine. Etelos’ AOP caching technology lets users work with data offline and then synchronize any changes with the appropriate application when reconnected to the Internet. Customers can use the applications they build themselves or sell them via the online Etelos Marketplace. Intuit, which makes the popular QuickBooks accounting software, has released the QuickBase PaaS system (http://quickbase. intuit.com) in beta and expects to start selling it in the near future. QuickBase lets developers create CRM and other applications that integrate into a company’s QuickBooks accounting workflow, said Alex Chriss, Intuit’s group manager of business development. LongJump’s PaaS product (www. longjump.com) has let programmers with 118 newspapers build CRM applications for sales, marketing, and customer support, said company CEO Pankaj Malviya. Rollbase (www.rollbase.com/ platform/overview.shtml) provides a development tool that lets people who aren’t programmers create business applications, including those that connect to a firm’s back-end data framework, said company CEO Matt Robinson. The system includes prebuilt software components that users can drag and drop into applications they are building.
Bungee Labs
Bungee Labs’ Bungee Connect— in beta with full release expected by the end of this year—targets
r6intr.indd 14
27/5/08 2:39:44 PM
small- to medium-sized companies, as well as departments within larger organizations. It includes drag-and-drop userinterface-layout components and its own C-based language, called Bungee Logic. The company’s platform lets users deploy applications on servers managed by Bungee or on virtual servers running on Amazon’s Elastic Compute Cloud. EC2 provides a scalable Web services interface via which customers can request virtual machines on which they can load software. Organizations can also buy Bungee servers licensed to run within their own infrastructure, which gives them greater control and more internal auditing capabilities, noted Brad Hintze, Bungee’s director of product marketing.
applications use. The platform uses the popular Python scripting language. In addition, it includes an authentication system to validate the identity of programmers participating in the development process. Organizations can also utilize the system to authenticate the users of the applications they subsequently build. Google senior product manager Tom Stocky said the platform focuses on development of Web-based applications that require low-latency data storage and retrieval.
PaaS creates an online virtual environment for application development.
CONCERNS
and many [systems] don’t provide persistence,” he noted. Thus, if an Internet connection goes down, the user loses data or the application’s current state. “Moreover,” said Linthicum, “the systems don’t provide heavyweight management or governance services.” Michael Coté, an analyst at RedMonk, a market-research firm, said another problem for developers is having to learn how to work with the new platforms—particularly in areas such as version control, project management, auditing for governance, quality assurance, and issue tracking—and how to use the new languages that some PaaS vendors have developed.
Salesforce.com
Salesforce.com’s Force.com PaaS platform (www.salesforce.com/ platform) provides about 60,000 programs that users can tie together into bigger applications. They can also build their own applications from scratch. The platform provides a database for use with applications, numerous APIs, and logic capabilities, said Salesforce.com’s Gross. Programmers can thus concentrate on other aspects of application development such as the user interface, he explained. Force.com uses a custom programming language called Apex, which focuses on database modeling. While applications must run on the Force.com platform, users can back up data offline.
Google App Engine
The Google App Engine (http:// appengine.google.com) is currently in trial release to 30,000 developers. The platform offers scalable development and deployment environments. Developers also have access to Google’s BigTable database, storage, and the same technologies for access control, security, and Web-services integration that the company’s own
An organization will experience problems if its PaaS system crashes, if it loses an Internet connection while working with a platform that doesn’t permit offline application access, or if the vendor goes out of business, said Roger Jennings, principal consultant with software consultancy OakLeaf Systems. This is a particular problem with missioncritical applications. In addition, users are locked into the platform with which they are working. The developed applications are set up to work only on the platform. Thus, users have no easy way to transfer their application elsewhere if the provider raises rates drastically or if the relationship doesn’t work out for other reasons, Jennings said. Also, organizations might be reluctant to trust critical application development and sensitive information within programs to either third parties or the Internet, explained Linthicum. And, he said, PaaS is only going to deliver a subset of existing features and functions most programmers look for in a development platform, although it will deliver enough value to be useful for building some applications. “[PaaS] doesn’t always deal with integration with enterprise assets,
P
roponents say PaaS’s advantages will make it attractive to many organizations. However, PaaS systems will still have to provide high-quality development tools to succeed. OakLeaf’s Jennings predicted that a few large companies such as Amazon, Google, and Microsoft will dominate the PaaS market because of their experience and resources. However, Linthicum added, some smaller players might succeed by focusing on the core needs of narrow markets, such as LongJump focusing on CRM for newspapers and Rollbase focusing on managing deal flow for venture capitalists. In general, though, Coté said, PaaS will succeed only if companies can attract large traditional organizations as customers. Providers that start with small companies may never attract enough business to become sustainable, he added. ■
George Lawton is a freelance technology writer based in San Francisco. Contact him at glawton@glawton. com.
Editor: Lee Garber, Computer: l.garber@computer
June 2008
15
r6intr.indd 15
27/5/08 2:39:45 PM