Force.com is unique among cloud computing platforms as a service (PaaS). This is in part because
it was one of the first such platforms, and its designers needed to forge their own approaches.
Also in part, its creators had unique objectives.
From the get-go, Force.com originator Salesforce.com chose to offer business-oriented sales force automation and customer relationship management applications that resided on the Web, and the company, which early on may have been described as an application service provider (ASP), began to be seen as a purveyor of software as a service (SaaS). Force.com was aimed at corporate application developers whose work was centered on relational database development.
Force.com, as described by independent developer and author Jason Ouellette, integrates with standards such as SOAP and REST, but its basic metadata representation and its native Apex language, are proprietary – intended to support Salesforce.com business applications.
Oullette's Development with the Force.com Platform (Second Edition, Addison-Wesley, 2011) provides a thorough review of the key aspects of the Force.com platform, including such recent platform additions as Batch Apex and Chatter social media support. As in the first edition, Ouellette ably weaves an informative and thorough depiction of the Force.com platform together with an insightful underlying story of a new style of development.
* The Apex Language - The Apex language as described by Ouellette lets the developer script interactions between platform features using a syntax that blends some Java-like style together with a stored procedure language. In some ways – not all – Apex resembles a domain-specific language (DSL), Ouellette told SearchSOA.com in an interview. Apex is like a general-purpose language, too – however, it is designed for the needs of the Force.com developer, he emphasizes.
* The Database - The Force.com database is queried using SOQL (Salesforce Object Query Language), writes Ouellette, who advises his readers that the Force.com database essentially forms the framework for most of one's application. The database is contrived such that custom tables each can hold up to 800 fields. Strong data typing is built-in. Supporting object-oriented behaviors; Apex allows code to be structured into classes and interfaces. The database's approach to ''implicit joins'' mitigates against the use of ad hoc queries. Object-relational data mapping (ORM) with Force.com is easier than with typical Java applications, writes Ouellette. This is because the ORM layer is built into the platform, shielding the developer from the complexity.
* Custom objects – Ouellette cautions that Force.com objects more closely resemble database tables than they do traditional programming objects. Custom objects, defined during development, are important tools for the Force.com cloud computing PaaS development team. The Force.com abstraction layer takes care of representing, indexing, backing up and tuning the custom objects' storage in the database. The developer can express one-to-one, one-to-many and many-to-many relationships. But, Ouellette writes that relationships, too, are controlled and managed by the platform.
Some aspects of database object handling with Apex gives a similar impression to a DSL.
"When you build your database objects, they end up being parts of the language, which is a 'DSLish' thing. But overall, Apex is like a general purpose language. It is not like Scala [which is associated with DSLs],'' Ouellette said.
But Apex does not achieve the human-readability found with some DSLs.
''Apex still looks like code- Java code, not like plain English,'' said Ouellette said.
''Generally, it is like a 4GL – talking to the database, it looks DSLish,'' he continued. ''That makes for a productivity gain. The ORM mapping is integrated. You don't have to think about it.''
Salesforce.com helped pioneer cloud computing, SaaS and PaaS. It is valuable to consider the elements of its approaches. Development with the Force.com Platform by Jason Ouellette is a well written entry point for anyone interested in the cloud, be it Force.com, or other.
Related Force.com information
Development with the Force.com Platform: Second Edition - www.informit.com
This was first published in August 2011