(Redirected from
Salesforce SOA)
Announced at the Salesforce Developer Conference, May 21
Force.com SOA is a powerful new capability of the Apex programming language that will open up broad areas for on-demand development. With Force.com SOA, developers can leverage Web services from anywhere, whether inside the enterprise or outside the firewall, and build them into their on-demand applications. Every function from any web service is now natively available in Apex Code. This enables new types of functionality and new classes of applications that amplify the advantages of the on-demand development model by seamlessly knitting in Web services from across the enterprise, and across the business web.
Force.com SOA provides the ability to mashup salesforce.com’s multi-tenant on-demand service with enterprise workflow and business processes to enable new kinds of enterprise applications on demand. As a new capability of the Apex programming language, Force.com SOA will enable SOA-based business processes, such as enterprise applications, to be created, maintained and leveraged on demand. SOA business processes will become virtual and sharable, and benefit from the scalability and agility of the on-demand model.
With Force.com SOA, developers will be able to:
- Use Apex to build SOA applications that integrate to Web services from billing, inventory or order entry systems.
- Call out to inside-the-enterprise Web services such as Oracle Financials and SAP Order Management, and external Web services such as FedEx, Hoovers and Yahoo!
- Build rich applications on-demand for any business process
- Share integrations built using Force.com SOA via the AppExchange
The Salesforce Platform, Apex Programming Language and Force.com SOA
The multi-tenant Salesforce Platform encompasses a complete feature set for building business applications such as models and objects to manage data, a workflow engine for managing collaboration between users, a user interface model to handle forms and other interactions, the Salesforce API for programmatic access, mash-ups, and integration with other applications and data, and the Apex programming language.
Developers can use the Apex programming language to do everything from creating custom components, customizing and modifying existing salesforce.com code, and creating triggers and stored procedures, all the way to building and executing complex business logic, run entirely on salesforce.com’s multi-tenant service. Apex is a Java-like development language that is secure, easy and fast, and will be familiar to any Java programmer. Anything built using Apex can be made available as a Web service and is accessible via SOAP and XML standards.
Features and capabilities of the Apex programming language include:
- Apex event model. Apex can be tied to the execution of the platform, enabling developers to exert fine-grained control over an application. Developers can use Apex to customize the core features and functionality of their Salesforce deployments for their unique business needs. Apex also delivers the power to reprogram any component of Salesforce, such as Campaigns, Cases or Opportunities, or build entirely new components completely from scratch.
- Transaction control. Because Apex is closely bound to Salesforce data, developers can readily add transactional features to their applications. For example, if one user is referencing a field while another is trying to delete it, the system is aware of the conflict. Apex also features data commits and rollbacks, which are especially important when working across multiple objects.
- Packaging, re-use and Web services. Apex uses a packaging model similar to that of Java, in which reusable packages of code can be invoked from each other or from within triggers. Significantly, any method defined in a package can optionally be automatically exposed as a Web service, and thus can be invoked via the Web services API or directly through the AJAX toolkit.
- Performance, scalability and upgrades. Because Apex runs on demand, developers enjoy the benefits of the scalability, reliability and availability of salesforce.com’s industry-leading service. Applications potentially run faster because a single query can obtain information from multiple objects. When newer versions of Salesforce and the Apex itself are introduced, code is never rendered obsolete. Salesforce.com ensures backward compatibility so that code continues to operate without modification.
- Apex and the AppExchange. Apex can be packaged alongside custom objects, S-controls and other platform features, allowing developers to redistribute their Apex-built apps via the AppExchange directory.