분산 응용 프로그램 사양 언어

Distributed Application Specification Language

DASL Programming Language(분산 애플리케이션 사양 언어)는 Ace 프로젝트의 일환으로 Sun Microsystems Laboraties에서 1999년부터 2003년 사이에 개발된 고도의 강력한 형식의 프로그래밍 언어입니다.이 프로젝트의 목표는 Sun의 J2EE 아키텍처를 기반으로 한 웹 기반 애플리케이션을 신속하게 개발할 수 있도록 하고 플랫폼 고유의 세부 사항에 대한 급격한 학습 곡선을 제거하는 것이었습니다.

DASL은 응용 프로그램을 하나 이상의 논리 프레젠테이션 모델을 가진 도메인 모델로 정의합니다.논리 프레젠테이션 모델은 일련의 형태로 기술된 도메인 모델 객체의 안무로 구성되어 액션이 부가됩니다.DASL은 논리 프레젠테이션에서 직접 그래픽 사용자 인터페이스를 생성합니다.

DASL은 프로그래머가 사용자 인터페이스를 명시적으로 정의하지 않고도 어플리케이션의 최신 그래픽 사용자 인터페이스를 생성할 수 있다는 점에서 최신 어플리케이션 프로그래밍 언어 중 유일하게 프로그래머가 생성된 그래픽 사용자 인터페이스의 모양과 느낌을 제어할 수 있도록 합니다.

DASL 언어는 부분적으로 선언적이고 부분적으로 절차적입니다.오브젝트/데이터 구조와 지속성에 대한 설명 및 논리 프레젠테이션에 대한 설명은 선언적입니다.기본 객체 제약 조건 및 동작은 선언형이며 추가 객체 동작은 절차적으로 메서드로 지정됩니다.쿼리는 선언적 또는 쓰기 방식으로 정의할 수 있습니다.

언어와 개발 환경은 모델 주도 아키텍처(MDA) 접근방식을 실제로 실현하는 것입니다.프로그래머는 DASL을 사용하여 플랫폼에 의존하지 않는 모델(PIM)을 생성하고 언어 코드 생성기는 플랫폼 고유의 모델(PSM)을 자동으로 생성 및 배치합니다.새로운 PSM은 새로운 코드 생성기를 작성하여 도입할 수 있습니다.

접근방식의 이점

3세대(3GL) 프로그래밍 언어에 비해 DASL 언어 접근법의 주요 장점은 엔터프라이즈 애플리케이션을 매우 간결하고 정확하게 지정하여 애플리케이션 로직을 명확하게 표현할 수 있다는 것입니다.일반적으로 DASL의 소규모 엔터프라이즈애플리케이션은 8~10,000 행의 DASL 코드로 실장할 수 있습니다.DASL 컴파일러는 이를 Java, XML, SQL 및 기타 구현 아티팩트로 변환합니다.200K 회선 수치는 3GL을 사용하여 작성된 동등한 어플리케이션의 전형적인 수치입니다.

DASL 의 일관성은, 2 개의 표현의 내용(DASL 와 Java/XML/SQL 로 생성된 애플리케이션 코드등)에서도 확인할 수 있습니다.대부분의 DASL 코드는 도입 미들웨어, 프레임워크 및 프레젠테이션 메커니즘과는 별도로 애플리케이션에 고유한 비즈니스 로직 및 비즈니스 프로세스를 기술합니다.이 핵심 비즈니스 로직은 일반적으로 생성된 애플리케이션 코드의 2 ~ 5%에 불과합니다.따라서 DASL 레벨에서는 비즈니스 로직이 다양한 구현 아티팩트에 분산되어 있는 경우보다 애플리케이션 코드의 작성, 이해 및 유지보수가 훨씬 쉬워집니다.

기존의 3세대 언어나 IDE가 아닌 DASL을 사용하여 애플리케이션을 쓰는 것의 또 다른 장점은 DASL 코드가 미들웨어, GUI 프레젠테이션 프레임워크, 네트워크 토폴로지 및 기타 구현 테크놀로지로부터 독립적이라는 것입니다.새로운 미들웨어와 프레임워크가 개발 및 발전함에 따라 기존 DASL 프로그램을 재실장할 필요 없이 이행할 수 있습니다.

예를 들어 원래 DASL 코드 생성기는 기존의 HTML 화면을 생성했습니다.이후 DASL 코드 생성기는 Apache Struts와 같은 프레임워크와 브라우저의 JavaScript와 같은 기술을 사용하여 보다 인터랙티브한 경험을 생성하도록 작성되었습니다.현재 풍부한 웹 애플리케이션을 생성하는 새로운 DASL 생성기가 개발되고 있습니다.따라서 기존 DASL 응용 프로그램을 최신 코드 생성기로 다시 컴파일하여 리치 웹 응용 프로그램으로 변환할 수 있습니다.

언어 특성

DASL은 선언 구문과 Java와 유사한 절차 구문을 결합합니다.언어의 선언적 부분은 Java와 같은 3세대 언어보다 더 높은 수준의 추상화 애플리케이션을 정의할 수 있도록 합니다.DASL에서 프로그래머는 클라이언트 프로세스, 웹 서버, 애플리케이션 서버, 데이터베이스 또는 원하는 애플리케이션의 사용자 인터페이스 상세 간의 프로세스 간 통신을 기술하지 않습니다.오히려 프로그래머는 어플리케이션을 관련된 도메인 오브젝트(동작 포함)의 집합으로 설명하고 기본 레이아웃 속성으로 주석을 단 형태와 액션의 집합으로 설명합니다.

고도로 특수화된 DSL과 달리 DASL은 튜링 완료입니다.도메인 객체의 동작은 선언 구문과 절차 구문의 조합을 사용하여 표현할 수 있습니다.예를 들어 객체 및 객체 속성에 대한 제약은 선언적으로 표현되지만 제약 자체는 선언적 표현 또는 절차적으로 정의할 수 있습니다.

DASL 어플리케이션에는 오브젝트 도메인 모델을 기술하는 비즈니스 객체 사양(BOS)과 어플리케이션 도메인을 나타내는 영속적이고 일시적인 오브젝트로 구성된 애플리케이션 사용 사양(AUS)의 2가지 주요 컴포넌트가 있습니다.AUS는 본질적으로 도메인 오브젝트를 일련의 형태와 동작으로 구성하는 안무입니다.

DASL 프로그래머는 논리 AUS 형식 및 액션에 페이지 상의 데이터의 기본 레이아웃을 설명하는 속성을 주석을 달아 애플리케이션의 그래피컬 사용자 인터페이스를 모델링합니다.DASL에서는 애플리케이션 사양을 지배하는 사용자 인터페이스 고려사항이 아니라 사용자와 도메인 모델 간의 논리적 상호작용이 중심이며 사용자 인터페이스는 논리적 상호작용에서 파생됩니다.이 점에서 DASL은 다른 언어들 중에서 고유하다고 생각됩니다.

완전한 언어 설명

DASL 언어에 대해서는, Sun Labs 의 「DASL Language: 프로그래머 가이드참조 매뉴얼.이 테크니컬 리포트는, ACM 디지털 라이브러리의 일부로서 http://dl.acm.org/citation.cfm?id=1698172&dl=ACM&coll=DL&CFID=800729170&CFTOKEN=37871889 로도 입수할 수 있습니다.

내부 Sun Microsystems

1999년경 Sun의 두 연구원 Bruce Daniels와 Bob Goldberg는 Java 웹 기반 엔터프라이즈 애플리케이션 작성을 단순화하는 것을 목표로 Sun Labs에서 'Ace Project'라는 연구 프로젝트를 시작했습니다.현재 DASL로 알려진 Ace 언어는 이 프로젝트의 일환으로 Goldberg, Daniels 및 다른 동료들에 의해 개발되었습니다.

Ace 프로젝트와 언어는 2002년 6월에 Sun의 웹사이트에 게재된 기사 및 2003년 1월호 Computing Research News에 게재된 Sun Microsystems Laboraties: 기술혁신을 위한 라이센스

Ace DASL 개발 환경인 Project Ace는 2002년 3월 JavaONE 컨퍼런스에서 James Gosling의 기조 연설의 일환으로 Bruce Daniels에 의해 시연되었습니다.

Sun Microsystems의 비즈니스 측면에서는 DASL 언어를 사용하여 Grid Portal로 알려진 Sun Grid Compute Utility에 퍼블릭 인터페이스를 구현했습니다.

외부 Sun Microsystems

Sun Microsystems는 DASL 언어를 상업적으로 구현한 것은 아니지만, 과거 일부 파트너에게 이 기술을 제공하고 이 기술을 사용하여 테스트를 실시했습니다.DASL은, 「OPSLA 2004 Conference」, 「Model-Driven Software Development」, 「Project Ace」에 대해 설명하는 Sun/Oracle Web 사이트에서 참조되고 있습니다.2004년 Java One Conference에서 James Gosling의 기조 연설의 일환으로 Ace DASL 데모를 실시했습니다.

Sun Microsystems 이외의 계속적인 개발

2006년부터 2010년까지 RD3 소프트웨어에서는 DASL 언어에 관한 연구 개발이 계속되었습니다.DASL의 RD3 언어 확장과 코드 생성에 의해 언어의 확장성이 향상되어 동적인 HTTP 스타일의 웹 애플리케이션에서 풍부한 웹 애플리케이션으로 언어의 범위가 넓어졌습니다.DASL 코드 생성기는 HTML 프런트 엔드의 작성과 더불어 Adobe Flex(플래시) 프런트 엔드의 작성도 실시했습니다.적은 리소스로 HTML5를 쉽게 생성할 수 있을 뿐만 아니라 iPhone 및 Android 고유의 구현도 가능합니다.

언어는 클라우드 애플리케이션을 포함하는 동적 웹 사이트 및 도메인별포털을 정의할 수 있도록 확장되었습니다.예를 들어, RD3 Web 사이트에는 DASL 「프로그램」이 실장되어 있습니다.

RD3 DASL 언어는 논리 프레젠테이션의 일부로서 폼과 네스트 폼의 개념을 지원합니다.정보와 액션을 논리적으로 그룹화할 수 있으며 주석을 사용하여 사용자 인터페이스를 제어할 수 있습니다.조직도 및 가계도와 같은 재귀적 관계의 표시 및 탐색이 언어에 추가되었습니다.

DASL 언어는 확장 가능하게 되었습니다.서드파티 프로그래머는 특정 DASL 오브젝트 클래스 또는 폼을 대상으로 한 코드 제너레이터 플러그인을 Java로 작성할 수 있습니다.이것에 의해, 커스텀 위젯을 사용해 오브젝트 또는 폼을 표시할 수 있습니다.커스터마이즈된 위젯은 사용자의 브라우저 내에서 계산을 수행할 수 있으므로 DASL에 의해 생성된 애플리케이션 프레젠테이션은 이제 Turing 완료입니다.

DASL은 프로그래머가 사용자 인터페이스를 명시적으로 정의할 필요 없이 응용 프로그램의 최신 그래픽 사용자 인터페이스를 생성할 수 있다는 점에서 최신 응용 프로그램 프로그래밍 언어 중 독특합니다.프로그래머는 간단한 주석을 사용하여 DASL에 의해 생성된 사용자 인터페이스를 수정할 수 있습니다.프로그래머는 코드 제너레이터 플러그인을 사용하여 DASL을 확장하여 원하는 특정 사용자 인터페이스를 생성할 수 있습니다.