DASL - Distributed Application Specification Language

DASL - Distributed Application Specification Language

The DASL Programming Language (Distributed Application Specification Language) is a high-level, strongly typed programming language originally developed at Sun Microsystems Laboratories between 1999 and 2003 as part of the [http://research.sun.com/projects/ace/ Ace Project] to enable rapid development of web-based applications based on Sun's J2EE architecture.

The DASL language is a fairly broadly scoped domain-specific language (DSL) targeted at creating enterprise web-based applications. A key feature of the language is that it allows significant portions of the application to be described declaratively rather than procedurally. Notably absent in a DASL application specification are
*the distribution architecture of the desired application (e.g., whether it is 2-tiered or 3-tiered),
*specific use of underlying technology and frameworks (e.g., Apache Struts, JavaScript, or HTML), and
*how objects are stored persistently between application runs or shared among users of the application.

These implementation details are injected into the deployed application by the DASL compiler based on the intent of the application writer.

Benefits of the DASL Language Approach

A key benefit of the DASL Language approach over 3rd generation (3GL) programming languages is that enterprise applications can be specified in a very concise and precise way that expresses the application logic clearly. A small enterprise application in DASL can typically be implemented in 8-10K lines of DASL code, which the DASL compiler then typically translates into 200K lines of Java, XML, SQL, and other implementation artifacts. The 200K line figure is typical of equivalent applications written using 3GLs.

The conciseness of DASL can be seen also in terms of the content of the two representations (DASL vs. the generated application code in Java/XML/SQL etc). Most of the DASL code describes business logic and business processes specific to the application, independent of the deployment middleware, frameworks, and presentation mechanisms. This core business logic typically represents only 2-5% of the generated application code. Thus, writing, understanding, and maintaining the application code is much easier at the DASL level than it is at the level of the generated code, in which the business logic is scattered within various implementation artifacts.

Another advantage of using DASL to write applications, rather than conventional 3rd generation languages and IDEs is that the DASL code is independent of middleware, GUI presentation frameworks, network topology, and other implementation technologies. As new middleware and frameworks are developed and evolve, existing DASL programs can be migrated to them without the need to re-implement them.

For example, the original DASL code generators produced traditional HTML screens. Later, DASL code generators were written to use frameworks such as Apache Struts, and technologies such as JavaScript in the browser, to produce a more interactive experience. Today, new DASL generators being written that produce Rich Internet applications. Existing DASL applications can thus be converted to rich internet applications by recompiling them with the latest code generators.

Language Characteristics

DASL combines a declarative syntax with a Java-like procedural syntax. The declarative part of the language enables defining applications at a higher level of abstraction than 3rd generation languages such as Java. In DASL, the programmer does not describe interprocess communication between client processes, web servers, application servers, and databases. Rather, the programmer describes the application as a set of related domain objects (including their behavior) and as a set of screens and actions.

In contrast to highly specialialized DSLs, DASL is Turing-complete. The behavior of domain objects can be expressed using a combination of declarative and procedural syntax. For example, constraints on objects and object attributes are expressed declaratively, but the constraint itself can be defined either as a declarative expression or procedurally.

A DASL application has two primary components: A business object specification (BOS) that describes the object domain model, consisting of persistent and transient objects representing the domain of the application, and an application usage specification (AUS) that describes the actions or use cases that may be performed on the domain model. The AUS is essentially the choreography of the domain objects into a series of screens and actions.

Full Language Description

The DASL language is described in a published Sun Labs technical report called [http://research.sun.com/techrep/2005/abstract-128.html The DASL Language: Programmer's Guide and Reference Manual] .

Within Sun Microsystems

Around 1999, two Sun researchers, Bruce Daniels and Bob Goldberg, started a research project in Sun Labs called the [http://research.sun.com/projects/ace/ 'Ace Project'] , with the goal of simplifying the creation of Java web-based enterprise applications. The Ace Language, now known as DASL, was developed by Goldberg, Daniels, and several other colleagues as part of this project.

The Ace project and language were featured in [http://research.sun.com/features/ace/ an article that appeared in June, 2002 on Sun's website] , as well as in the January 2003 edition of Computing Research News entitled [http://www.cra.org/CRN/articles/jan03/papadopoulos.html Sun Microsystems Laboratories: License to Innovate] .

'Project Ace', the Ace DASL development environment, was demonstrated by Bruce Daniels as part of [http://sun.systemnews.com/fullsource?article=6245 James Gosling's keynote address at the JavaONE conference] in March, 2002.

On the business side of Sun Microsystems, the DASL Language was used to implement the public interface to the Sun Grid Compute Utility, known as the [https://network.com/GridPortal/GridPortal GridPortal] .

Outside Of Sun Microsystems

Although Sun Microsystems has no plans to make a commercial implementation of the DASL Language available outside of Sun, it has in the past made the technology available to selected partners and conducted trials using the technology. DASL was featured in a white paper at [http://whitepapers.techrepublic.com.com/whitepaper.aspx?docid=142845 TechRepublic] , on the Association for Computing Machinery [http://portal.acm.org/citation.cfm?id=1028664.1028671 Portal] , at the [http://www.oopsla.org/2004/ShowEvent.do?id=656 OOPSLA 2004 Conference] , and on [http://updates.zdnet.com/tags/%2522language%2522.html?t=13&s=0&o=0 ZDNET] .

Ongoing Language Development

Commercial development of the DASL Language to generate Rich Internet applications is now in progress at [http://www.rd3software.com RD3 Software Corporation] .


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Distributed Application Specification Language — The DASL Programming Language (Distributed Application Specification Language) is a high level, strongly typed programming language originally developed at Sun Microsystems Laboratories between 1999 and 2003 as part of the Ace Project. The goals… …   Wikipedia

  • DASL (programming language) — DASL (Datapoint s Advanced Systems Language) was a programming language and compiler proprietary to Datapoint. Primarily influenced by Pascal with some C touches, it was created in the early 1980s by Gene Hughes. The compiler output was assembly… …   Wikipedia

  • DASL — may mean: DASL (programming language), Datapoint s Advanced Systems Language Distributed Application Specification Language, developed by Sun Microsystems DAV Searching and Locating, a WebDAV project DSM Application Software Library This… …   Wikipedia

  • Список языков программирования — Списки языков программирования Алфавитный По категориям Хронологический Генеалогический Цель этого алфавитного списка языков программирования состоит в том, чтобы дать полный перечень всех существующих языков программирования, как используемых в… …   Википедия

  • List of programming languages — Programming language lists Alphabetical Categorical Chronological Generational The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in… …   Wikipedia

  • Liste des langages de programmation — Le but de cette Liste des langages de programmation est d inclure tous les langages de programmation existants, qu ils soient actuellement utilisés ou historiques, par ordre alphabétique. Ne sont pas listés ici les langages informatiques de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”