|
| |||||||||||||||||||||||||||||
| - A new language that fundamentally simplifies writing business applications. | ||
ace, noun, a point won by a single stroke, as in tennis, golf, handball, rackets, etc., i.e. the quickest and most efficient way to win the point. |
The Ace Project at Sun Labs has developed a way to
fundamentally simplify the process of creating modern, web-enabled
business applications.
The preliminary results of this new way of building business
applications have been remarkable. We have found that in typical
web applications as they are written today, roughly 5 to 10% of the
code has to do with domain logic, and roughly 90 to 95% has to do with
distribution. Using our approach, there is a huge reduction in
the number of lines of code required to specify these
applications, and a corresponding huge reduction in the time it takes
to write and debug the applications.
For example, the Java J2EE Pet Store application can be
specified using about 1000 lines of Ace code, as compared to 14,000
lines of code in the native J2EE implementation. In fact, of
those 1000 lines of Ace code, 750 of them can be created graphically
via UML diagrams that are part of our GUI development tool, so the
entire Pet Store is actually specified in Ace by writing only 250 lines
of traditional "code".

The Ace project team believes that application programming languages must evolve to handle the distribution automatically. Just as early programmers who wrote in assembly language had to worry about register allocation, stack protocols for invoking library functions, and other details of the machine on which the applications were run, today's programmers worry about passing data and objects back and forth between various computers, services, languages, and data sources. We have defined DASL as the first of a new breed of higher level languages that abstract out the distribution details and handle them efficiently by capturing the global semantics of the application.
The benefits of our approach to application writing include:
At this time, we have developed the technology so that it is suitable for the following kinds of applications:
We are investigating extending our approach to cover these kinds of applications:
While the Ace approach provides graphics as an aid to application design, Ace does not attempt to capture all of application programming using only graphics with a few computational expressions tacked on. Rather, it defines a powerful high-level language in which business logic can be expressed algorithmically. The key difference between DASL and the Java(tm) programming language is that the distribution details are not expressed, while important application semantics such as persistence and transactions are expressed declaratively.
Ace provides access to legacy systems by allowing calls to any Java(tm) method from a DASL method. Thus, any method or service that can be accessed from Java can be accessed by an Ace application.
An object-relational mapping facility is under construction, to allow the application writer precise control over the mapping between the business objects (expressed using the BOS sublanguage) and the relational DBMS schema used to store the objects.
Although the Ace project is not a committed Sun product, we have conducted a developer trial of our research development tools, which includes our compiler, graphic tools, deployment and testing tools, etc. One of our trial developers, Expert Systems of Monterrey, Mexico, has created an Ace application consisting of 13,000 lines of Ace code. It compiles into 300,000 lines of deployed code (a combination of Java, JSP, HTML, XML, etc.).
The sidebar at the top left contains more information about Ace. To see examples of the Ace language, look at some of the sample applications. A complete language guide for the DASL language can be obtained by navigating the "Request Documents" link, and requesting the "Practical Guide".
§The DASL language (Distributed Application Specification Language, pronounced dazzle) contains several sublanguages for expressing the application semantics. The BOS sublanguage specifies the semantics of business objects, rules, relationships, and constraints. The AUS sublanguage specifies the application task and interaction model, i.e., the application's usage of the business object layer. Also incorporated into DASL is a query language, based on OMG's OQL standard, used to query the persistent store of business objects.