Software as a Service (SaaS), also known as on-demand computing, is changing the landscape of information technology in a profound way. By replacing locally managed stacks of networking, hardware, and software resources with an Internet-based utility, this model has changed how business applications are delivered, bringing new levels of ease, adoption, and success to the challenging area of enterprise software. And just as the evolution of the Internet affects almost all industries, the evolution of the on-demand model promises to change enterprise technology and to offer new opportunities for IT productivity and impact.
Perhaps the most important new area of on-demand computing is the introduction of a complete application development platform, capable of supporting virtually all business application requirements—as a service. This Platform as a Service (PaaS) model extends the benefits of the on-demand model to custom application development. It’s an approach that promises to change application development as much as SaaS already changed application delivery.
Introduced in 2007, Force.com is salesforce.com’s platform-as-a-service offering. By using Force.com, companies and ISVs can create and run new applications entirely over the Internet, without software. Capable of supporting all kinds of business applications—not just those for the sales, marketing and support departments— Force.com makes the core technologies behind Salesforce CRM available for developing applications that serve all of a company’s departments, employees, and customers.
With Force.com, companies are freed from the burdens of implementing and managing their IT infrastructures for custom applications, and can instead focus their resources on those activities that provide the most business impact. With an estimated eight of every ten dollars spent in “dead money” that doesn’t contribute directly to business change and growth, the PaaS model provides immediate benefits to IT and development organizations of all sizes. And, similar to the utility services provided by power or telephone companies, organizations pay only for those services they successfully deploy and use. As a result, they can eliminate much of the risk that accompanies traditional software-based development platforms.
With Force.com, companies can finally focus on innovation, not infrastructure.
The Force.com platform is a rich development environment designed to enable the database applications at the center of most corporate application development projects. With its full stack of database, integration, logic, and user interface capabilities, Force.com can be used in application scenarios that were, until recently, the exclusive domain of traditional client/server and app server database tools, such as Visual Basic, .NET, and Java.
These scenarios span the full range of business use cases, including Intranet-style applications such as employee directory and time-off management apps, departmental or group apps for recruiting, bug tracking, and asset management, as well as apps that extend salesforce.com’s CRM applications, such as professional services project management.
To begin to understand the power of the Force.com platform, it is useful to look at some examples of what our customers have already accomplished. One of the world’s largest media companies, which needed a database application to manage the scheduling of some of its assets, evaluated the capabilities of both Force.com and .NET. Although this team budgeted 3,000 hours for creating and deploying this application in .NET, they completed the app in fewer than 100 hours on Force.com. What’s more, the application developed with Force.com included advanced features such as globalization and international currency conversion, which the .NET implementation lacked.
Another example comes from Electronic Arts (EA), the world’s leading interactive entertainment software company, whose success depends on being able to recruit and retain extremely talented game developers. EA chose Force.com to create a recruiting application to manage its mission-critical talent acquisition activities. Three weeks after they began design, EA rolled out an award-winning system— a success that led EA to create ten additional applications. One of these applications, a vendor management system, was estimated to require 9-12 months to develop. With Force.com, EA deployed the application in six weeks.
It is important to note that the many custom applications built on the platform don’t just operate within a Force.com environment—by using the Force.com Web services API to integrate these applications with existing systems, customers are making more than one billion Force.com API transactions per month.
To understand the Force.com platform, it is useful to understand two of its key technologies— multi-tenancy and metadata.
Multi-tenancy is a key salesforce.com innovation that’s at the heart of Force.com. Multi-tenant applications are designed so that users share the same physical instance and version of the application. Individual “deployments” of those applications occupy virtual partitions rather than separate physical stacks of hardware and software. In contrast, traditional client/server (single tenant) architectures require an entire stack of hardware and software to be dedicated to each application deployment. Each stack component must be purchased and maintained, including networking, hardware, operating system, database, and application components. Each stack in such architectures also requires its own intricate maintenance, management and upgrade routines. The unpredictable interaction between these components can further add to the associated costs.
In contrast to their single-tenant counterparts, multi-tenant applications also make possible clear boundaries between the platform and the applications that run on it. Although applications have their own data objects, forms, layouts, and integrations, these and other customizations are managed as abstractions. This separation is key to ensuring that any given application can’t “behave badly” by encroaching on other users’ applications.
Multi-tenant business applications such as Salesforce are similar to consumer applications such as Google Mail that also run a single code base and depend on an infrastructure shared by all users. It is this multi-tenant architecture that makes possible the quick deployment, low risk, and rapid innovation for which salesforce.com has become known.
A second key Force.com technology is metadata, which makes it possible to create applications not just by code, but with collections of metadata. When developers create these elements for their applications, their work is captured as meta-data ‘blueprints,” which Force.com then automatically translates into the full applications that end users experience.
One of the advantages of this model is that, by using simple point-and-click configuration, it becomes possible to create sophisticated applications without code. As a result, metadata lets users unfamiliar with programming actually create applications, while it speeds development for experienced programmers.
Significantly, the use of metadata also creates an implicit boundary between an application and the platform, which is essential for the multi-tenant model. As applications are customized and extended, new versions of the Force.com platform can be rolled out without affecting the end user— all applications and integrations continue to run without modification and the deployment process never delays the release of new functionality. This success of this model has been proven with salesforce.com’s own applications, which are enhanced several times each year with major updates.
To understand the capabilities of the Force.com platform, let’s look at the “Force.com stack”—the layers of technologies and services that make up the platform as a service—in more detail.
The Force.com service delivery infrastructure provides the foundation for the most challenging on-demand requirements. This infrastructure, which consists of advanced and highly managed data center and security technologies, currently powers more than two billion transactions a month and supports close to one million subscribers.
It is this same infrastructure that will deliver all on-demand applications developed and deployed by customers, as well as salesforce.com’s CRM applications. To see the availability, volume, and performance achieved by the Force.com infrastructure in near real-time, go to trust.salesforce.com.
The Force.com database builds on the foundation of the Force.com infrastructure to provide much of the platform’s development power. Here you can create data objects, such as relational tables, and use metadata to describe those objects and their usage.
You can also create relationships between data objects that are automatically implemented in Force.com applications as parent lookups and lists of related child objects. To ensure data integrity, you can specify data validation rules and you can use formulas to logically derive new data values. You can even audit database changes automatically. The Force.com database provides all of these capabilities without any of the usual requirements for maintenance and overhead—there’s no backup, no tuning, and no stream of upgrades.
Your on-demand applications may have to fit into an existing environment that includes a variety of data sources and applications. The Force.com platform provides the resources for integrating those applications into your current environment to access data in other systems, to create mash-ups that combine data from multiple sources, or to include external systems into your processes.
At the core of these integration capabilities is the Force.com API, which provides easy access to all the information stored in a Force.com application through an open, standards-based SOAP Web service. This API is already used by countless environments, ranging from traditional development tools like .NET, Java, and PHP, to middleware and integration solutions such as BizTalk, Tibco, and Informatica. In addition, salesforce.com and third parties have used the API to create pre-built connectors to many applications, including SAP R/3, Oracle Financials, and others.
The Force.com platform makes it easy to create the workflows needed for a company’s unique business processes and requirements. The workflow engine makes available common, reusable process components such as task creation, record assignment, time-based actions, and even event-based system integration. With Force.com, you can easily incorporate these components into your application’s logic.
For even greater flexibility, you can use Apex, salesforce.com’s on-demand programming language, to extend your applications to include virtually any kind of business logic and functionality. Like a database stored procedure, Apex can be used to create triggers that execute automatically in response to database operations. Apex is even capable of accessing and invoking external Web services. As an integral part of the Force.com platform, Apex leverages the platform’s multi-tenant architecture to insure the scalability of any applications that run on it.
Force.com provides two options for creating and customizing the user interface of applications built on the platform. Through the online setup area, a simple drag-and-drop interface makes it possible to change the layout and the order of data fields on pages, to rename and re-order tabs, and to create different views of the data for different users.
For more complete user interface control, Force.com includes Visualforce, a complete framework for creating and running virtually any user interface, for any application, on any device. With Visualforce, developers can extend an on-demand application’s boundaries in almost any direction by using traditional Web development technologies in conjunction with rest of the Force.com capabilities, to exercise pixel-level control over the application’s appearance and behavior.
A marketplace that connects Force.com commercial application developers with potential users, the AppExchange is the capstone of the Force.com platform. Those customers or ISVs who want to share their applications with others can publish them on the AppExchange. Those who want to use those applications can install them instantly into their Salesforce accounts. To date, more than 700 applications have been made available via the AppExchange.
With no hardware or software to install, getting started with Force.com is as easy as opening a Web browser.
Simply go to Developer Force, and sign up for a Force.com Developer Edition account. This free environment provides full access to all of the platform features described in this paper, so you can quickly learn about the platform and even build your first application. At Developer Force, you’ll also find all the documentation, electronic books, sample code, and community resources to get you started with Force.com in your business today.