Everything as a Service
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.
Platform Architecture; multi-tenancy and meta data
To understand the Force.com platform, it is useful to understand two of its key technologies— multi-tenancy and meta data.
Multi-Tenancy;
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 multitenant 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 meta data, which makes it possible to create applications not just by code, but with collections of meta data. 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, meta data 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.
Database as a Service: Custom Objects and Fields
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 meta data 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.
Integration as a Service: Web Services API
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.
Logic as a Service: Apex Code and Workflow
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.
User Interface as a Service: Visualforce
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.
AppExchange: Force.com Application Sharing
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.
http://developer.salesforce.com


