It aint AppExchange 2.0. Its Apex 1.0.
And it very much has the potential to change the way on-demand applications are built and deployed.
Salesforce.com will announce Apex, a new Java-based application development language and platform on Oct. 9 at its annual Dreamforce conference in San Francisco.
The company has essentially taken its internal development environment—Java, PL/SQL—used to build Salesforce.coms suite of on-demand CRM (customer relationship management) applications, and unleashed it on the world as a multi-tenant programming language.
The intent: To build an ecosystem of literally millions of developers who utilize Apex to build all different types of Software as a Service-based applications—all utilizing Salesforce tools and environment.
"This will be the Java of on demand in what its going to enable in scope, reach and depth," said Kendall Collins, vice president of product marketing at Salesforce.com, in San Francisco.
"People can create all sorts of complex logic, new modules and application procedures. They can build ERP [enterprise resource planning] and e-commerce applications, or highly intelligent applications like yield management that are optimized with algorithms."
Salesforce.com already offers a development environment as part of its AppExchange platform. That includes development tools and a sandbox for testing components.
What changes with the advent of Apex is two-fold: First, some characteristics of AppExchanges customization capabilities are expanded. Developers can use Apex to create custom components, customize and modify existing Salesforce.com code, create triggers and write stored procedures.
They can also build and execute complex logic, officials said. Second, Apex becomes the development platform for users, while AppExchange clearly becomes the (Salesforce sponsored) application marketplace it is intended to be.
And while the actual technical details of the Apex programming language are still somewhat sketchy—theyll be fully unveiled during Dreamforce—Mike West, an analyst with Saugatuck Research and a former developer, believes that Apex probably executes using a Java virtual machine thats been purposed directly toward creating objects that are compatible to Salesforces multi-tenant architecture.
The Apex platform itself includes a new workflow engine. Real time messaging and integration allows other applications, including middleware, to be notified of business events, with the bottom line being that processes spanning systems can be executed with no latency, officials said.
A new data relationships API makes it possible to access and manage complex data relationships—information about an account, products, contacts—thats analogous to a databases JOIN functionality.
An AJAX toolkit thats already part of AppExchange is updated with Apex to support the API upgrade.
For cross-over capabilities, Salesforce is adding the ability to package any object or Apex code and publish it to AppExchange.
The way Apex works from a user interface perspective is this: On the Salesforce.com menu for developers will be a new function for writing custom code. Developers can either utilize Salesforces IDE (integrated development environment) to write code, or use standard Eclipse with a plug in.
The code is then checked into Apex, which will automatically compile it and run it on Salesforce.coms servers. The code can be associated with any object.
"Weve opened up a whole other level of access to our database, our logic, our servers," said Collins, in San Francisco. "Instead of accessing [code] from our API, youre doing it right from our servers."