Product Review
sforce.com
The salesforce.com development and integration platform
Oct. 28, 2004 12:00 AM
sforce.com surfaces the services used by the saleforce.com CRM solution to provide an exhaustive development platform used to integrate new functionality and develop applications. While the services provided using industry-standard Web services protocols (XML and WSDL) represent one of the most complete Web service framework implementations to date, sforce.com provides a number of additional tools to streamline the development process by allowing developers to focus on the development of business functionality and enabling them to work productively in the environments they are most comfortable in.
What Is sforce.com?
salesforce.com is the leading hosted enterprise-class Customer Relationship Management (CRM) solution, providing sophisticated CRM functionality (e.g., authentication, role-based access and visibility controls, data and document management, support and management tools for all components of the sales life cycle, collaboration, forecasting, workflow, reports, analytics, integration to office and contact management tools [Act!, Goldmine], etc.) while avoiding the customer ERP/CRM system management headaches by hosting the solution. To avoid the development and integration headaches associated with ERP/CRM systems, salesforce.com provides sforce.com 4.0 a powerful development and integration platform.
The key components of the multi-tiered sforce.com are:
The Studio
A set of wizards and tools customizes the salesforce.com UI (see Figure 1), object/entity model, and workflow without coding or the need for end users to involve IT staff. The studio is used to create new objects, add custom fields to the sforce.com entities (e.g., leads, contracts, etc.), create new relationships between objects (see Figure 2), create new tabs, lay out the contents of tabs, and even modify existing tabs via a flexible layout editor with DHTML drag-and-drop support. Once the modifications are complete the resulting customizations are virtually indistinguishable from the base application (while some limitations exist, for example custom objects cannot be included in the workflow, you cannot create a custom object from the API, etc., most users are unlikely to be affected by these). Also, new User Interface (UI) controls (e.g., Java Applets, ActiveX controls, etc.) can be uploaded to the platform and used for UI customizations. While the wizard approach can seem cumbersome at times, the importance of the decisions being made warrants a deliberate process.
Web Service APIs and related WSDLs
Considering the richness of the functionality that it provides, the API is simple, robust, well thought out, and mature. The API focuses on Create/Read& Query/Update/Delete (CRUD) operations enabling developers to focus on business functionality. It show signs of having been used extensively and includes several high- end features (request throttling, session time-outs, HTTP chunking, response batching and compression, etc.). The WSDL is regenerated from the object model stored on the hosted platform and does not need to be maintained manually.
Two flavors of the WSDL are provided: the Enterprise and the Partner. The Enterprise API is geared toward strongly typed languages such as Java and C# and whereas the Partner API is loosely typed it supports scripting languages such as Perl and Python.
sforce Object Query Language (SOQL) and Object Search Language (SOSL)
SOQL and SOSL are used in conjunction with the API similar to the way SQL is used to access the data held in databases (while the two languages only support queries subsequent API calls can be used to update the retrieved items).
Development Environment Toolkits and Examples
Development toolkits are available to jump start the development effort for a large number of development and deployment environment Frameworks, including Sun's Sun ONE, Microsoft's Visual Studio .NET, Borland JBuilder, BEA WebLogic Workshop, and plain Java. The toolkits typically consist of tools and components to integrate into the development environment and a robust set of examples. The examples are well written and use industry standards and best practices (for example, the Java toolkit uses Apache Axis), making them an excellent development resource.
In addition, the use of industry-standard protocols like XML and WSDL makes it easy to integrate other tools. During this review I easily used a tool from one of my previous reviews (DreamFactory; Vol. 4, issue 9) to create a small application.
This approach is different from that of the leading CRM vendors that tend to direct you toward the use of their proprietary tools (or a single tool) to leverage the bulk of their functionality efficiently.
SourceForge Projects (http://sforce.sf.net/)
A number of open source tools and utilities are targeted, including:
- Explorer: A .NET schema (and object model) browser used to create and test SOQL queries. Extremely handy for development
- A JSP sample built in Eclipse 3.0
- An Excel connector providing bidirectional access to the sforce.com API via the sforce.com Toolkit for Office
The project range of platforms and run-time environments is a reflection of sforce.com's commitment to its development platform agnosticism.
Developer Support, Training and Forums
Extensive documentation and tutorials are available on the sforce.com web site. Online training is also available for free, along with an extensive set of moderated forums where a number of knowledgeable sforce.com resources (e.g. Developer Program Managers, sforce.com Expert Developers, etc.) provide a significant amount of support.
Final Thoughts
sforce.com is a banner ERP/CRM enterprise-class development platform that provides a rich, comprehensive, easy-to-use feature set using a standards-based approach and excellent online documentation. sforce.com represents a significant step forward for CRM application developers. However, the platform ease of use should not lull you into a false sense of security. As with any complex system, analysis should be performed before undertaking and performing changes, lest you find yourself in a costly "dead-end." Further, despite the ease of use, as with any platform it takes time to learn key idioms and development patterns for the platform and navigate the extensive option set effectively.
Company Info
salesforce.com, inc.
The Landmark @ One Market
Suite 300
San Francisco, CA 94105
United States
E-mail: info@salesforce.com
Main: 415-901-7000
Fax: 415-901-7040
Sales: 1-800-NO-SOFTWARE
About Ahmed SakoAhmed Sako is CTO at Rosenblatt Securities. His areas of expertise include distributed systems, transaction processing, application architecture and development, system analysis, and Web design.