Basics of Force.com

Force.com Platform is the world’s first Platform as a Service (PaaS), enabling developers to create and deliver any kind of business application in the cloud, entirely on-demand and without software.

Force.com is a cloud computing platform as a service system from Salesforce.com, that developers use to build multitenant applications hosted on their servers as a service. 

Force.com is an extremely powerful, scalable and secure cloud platform, delivering a complete technology stack covering the ground from database and security to workflow and user interface. Build the social, mobile apps that deliver innovation to your business.

These applications are built using Apex (a proprietary Java-like programming language for the Force.com Platform), Visualforce (an XML-like syntax for building user interfaces in HTML, AJAX or Flex), SOQL (Salesforce.com Object Query Language), SOSL (Salesforce.com Object Search Language) and Force.com API's.


Cloud Computing

A new paradigm of computing in which you access apps over the network as a utility, rather than as pieces of software running on your desktop or in the server room.

Cloud computing is the next stage in the Internet's evolution, providing the means through which everything — from computing power to computing infrastructure, applications, business processes to personal collaboration — can be delivered to you as a service wherever and whenever you need.

Cloud computing is Internet-based computing, whereby shared resources, software and information are provided to computers and other devices on-demand, like electricity. Computing in which services and storage are provided over the Internet (or "cloud"). On-demand self-service Internet infrastructure where you pay-as-you-go and use only what you need, all managed by a browser, application or API. Cloud computing is broken up into multiple segments including: Cloud Infrastructure, Cloud Platforms and Cloud Applications. (see "Cloud Pyramid").


SAAS?

Software as a service (SaaS, typically pronounced 'sass') is a model of software deployment whereby a provider licenses an application to customers for use as a service on demand. SaaS software vendors (such as CyberShift or SalesForce.

SaaS is a software delivery method that provides access to software and its functions remotely as a Web-based service.

SaaS allows organisations to access business functionality at a cost typically less than paying for licensed applications since SaaS pricing is based on a monthly fee.

Examples

  • Salesforce.com
  • Informatica Cloud
  • IBM Cast Iron
  • Dell Boomi
  • NetSuite
  • Pervasive
  • CyberShift
  • Web Services
  • Amazon Web Service (AWS)
  • Google Apps


PAAS?

PASS stands for (Platform as a Service). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider.

PaaS is defined as a computing platform being delivered as a service. Here the platform is outsourced in place of a company or data center purchasing and managing their own hardware and software layers. Typically, PaaS facilitates deployment of applications, application development, testing, and also supports the building, testing and hosting of Web applications. PaaS enables IT to develop, test, deploy, host, and also update from a single streamlined environment. May also be referred to as cloudware.

Examples

  • Force.com
  • Heroku
  • Ruby On Rails
  • Microsoft Azure
  • Google App Engine


IAAS?

IAAS stands for Infrastructure as a Service. The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. ...

IaaS is defined as computer infrastructure, such as virtualization, being delivered as a service. IaaS is popular in the data center where software and servers are purchased as a fully outsourced service and usually billed on usage and how much of the resource is used — compared to the traditional method of buying software and servers outright. May also be called enterprise-level hosting platform. virtualization
In computing, virtualization means to create a virtual version of a device or resource, such as a server, storage device, network or even an operating system where the framework divides the resource into one or more execution environments. Even something as simple as partitioning a hard drive is considered virtualization.

Examples

  • Amazon EC2 (Elastic Compute Cloud)
  • Microsoft Azure VM role instance

DAAS?

DaaS stands for Development as a Service. An application development model where all development is on the Web. This means that source code, compilation, and development environments are not on local machines, but are Web-based services.

Examples

  • Apex Editor
  • Visualforce Inline Editor
  • Developer Console


Multi-tenancy

An application model where all users and apps share a single, common infrastructure and code base.


Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple organisations (tenants). Multitenancy contrasts with multi-instance architectures where separate software instances (or hardware systems) operate on behalf of different client organisations. With a multitenant architecture, a software application is designed to virtually partition its data and configuration, and each client organisation works with a customised virtual application instance.

Multitenancy is the fundamental technology that clouds use to share IT resources cost-efficiently and securely. Just like in an apartment building—in which many tenants cost-efficiently share the common infrastructure of the building but have walls and doors that give them privacy from other tenants—a cloud uses multitenancy technology to share IT resources securely among multiple applications and tenants (businesses, organisations, etc.) that use the cloud. Some clouds use virtualization-based architectures to isolate tenants; others use custom software architectures to get the job done. 


A Multitenant Architecture

In cloud computing, multi-tenant is the phrase used to describe multiple customers using the same public cloud.

The platform's multitenant architecture means that all users share the same physical instance and version of any application that runs on it. In contrast to their single-tenant counterparts, such as client-server enterprise applications or email servers, multitenant applications are designed so that any upgrades to the platform or the apps it supports happen automatically for all users at once. Consequently, no one has to worry about buying and maintaining their own physical stack of hardware and software, or making sure that their applications always have the latest patch installed.

The multitenant design of a cloud service can have a dramatic impact on the application delivery and productivity of an IT organisation, yet most CIOs, CTOs, system architects, and developers who use clouds don’t give it a second thought because it’s all magic that transparently happens behind the scenes. This paper presents an “under the hood” look at the unique underlying design of core Salesforce Platform technology, Force.com. 


A Metadata-Driven Development Model

An app development model that allows apps to be defined as declarative "blueprints," with no code required. Data models, objects, forms, workflows, and more are defined by metadata.

Force Platform also uses a metadata-driven development model to help app developers become more productive in putting together basic apps. It means that the basic functionality of an app—that is, the tabs, forms, and links—are defined as metadata in a database rather than being hard-coded in a programming language. When a user accesses an app through the Force Platform, it renders the app's metadata into the interface the user experiences.


Application programming interface (API)

The interface that a computer system, library, or application provides in order to allow other computer programs to request services from it and exchange data between them.


What is SOA (Service Oriented Architecture)?

Service-oriented architecture (SOA) is a software design and software architecture design pattern based on discrete pieces of software providing application functionality as services to other applications. This is known as Service-orientation. It is independent of any vendor, product or technology.

Abbreviated SOA, an application architecture in which all functions, or services, are defined using a description language and have invokable interfaces that are called to perform business processes.


Web Service

A mechanism by which two applications can easily exchange data over the Internet, even if they run on different platforms, are written in different languages, or are geographically remote from each other.


SOAP (Simple Object Access Protocol)

A protocol that defines a uniform way of passing XML-encoded data. SOAP, a lightweight XML-based messaging protocol used to encode the information in Web service request and response messages before sending them over a network.


The Force Platform Web Services API

The platform's metadata-driven development model allows app developers to quickly build a lot of native functionality—that is, functionality that's understood by the platform and that can be defined in metadata. However, sometimes app developers need an app to do something that isn't available natively on the platform. They want to go beyond the metadata model and use traditional programming to create behaviours that fall outside of the platform's constraints. Which API Should I Use?


Apex

The world’s first on-demand programming language, which runs in the cloud on Force.com Platform servers. Apex runs on Force.com Platform servers, and is specifically designed for building business applications to manage data and processes within the larger context of the Force.com Platform. 


Visualforce

A framework for creating feature-rich user interfaces for apps in the cloud.



What is MVC?

Model–view–controller (MVC) is a software architectural pattern for implementing user interfaces. It divides a given software application into three interconnected parts:

  • Model - A model consists of application data, business rules, logic and functions
  • View - A view can be any output representation of information
  • Controller - A controller accepts input and converts it to commands for the model or view




SOQL (Salesforce Object Query Language)

A query language that allows you to construct simple but powerful query strings and to specify the criteria that should be used to select the data from the platform database.

Use the Salesforce Object Query Language (SOQL) to construct simple but powerful query strings in the queryString parameter in the query() call, in Apex statements, in Visualforce controllers and getter methods, or in the Schema Explorer of the Force.com IDE.

Similar to the SELECT command in Structured Query Language (SQL), SOQL allows you to specify the source object (such as Account), a list of fields to retrieve, and conditions for selecting rows in the source object. SOQL uses the SELECT statement combined with filtering statements to return sets of data, which may optionally be ordered.

SOSL (Salesforce Object Search Language)

Use the Salesforce Object Search Language (SOSL) to construct text searches in the search() call, in Apex statements, in Visualforce controllers and getter methods, or the Schema Explorer of the Eclipse Toolkit.

Unlike SOQL, which can only query one object at a time, SOSL enables you to search text, email, and phone fields for multiple objects simultaneously.