Язык спецификации распределенных приложений
Язык программирования DASL (язык спецификации распределенных приложений) — это высокоуровневый строго типизированный язык программирования, первоначально разработанный в Sun Microsystems Laboratories в период с 1999 по 2003 год в рамках проекта Ace Project . Целью проекта было обеспечение быстрой разработки веб-приложений на основе архитектуры Sun J2EE и устранение необходимости изучения деталей, специфичных для конкретной платформы.
DASL определяет приложение как модель предметной области с одной или несколькими моделями логического представления , где модель логического представления состоит из хореографии объектов модели предметной области, описанных в наборе форм с прикрепленными действиями. DASL генерирует графический интерфейс пользователя непосредственно из логического представления.
DASL уникален среди современных языков прикладного программирования своей способностью генерировать современный графический интерфейс пользователя для приложения, не требуя от программиста явного определения пользовательского интерфейса, в то же время позволяя программисту контролировать внешний вид созданного графического интерфейса пользователя.
Язык DASL частично декларативный и частично процедурный. Описание структур объекта/данных и их постоянства, а также описание логического представления являются декларативными. Основные ограничения и поведение объекта являются декларативными, а дополнительное поведение объекта задается процедурно как методы. Запросы могут быть определены либо декларативно, либо посредством написания методов.
Язык и среда разработки являются практической реализацией подхода архитектуры, управляемой моделями ( MDA ). Программист использует DASL для создания независимой от платформы модели или PIM, а генераторы языкового кода автоматически создают и развертывают модель, специфичную для платформы, или PSM. Новые PSM можно ввести путем написания новых генераторов кода.
Преимущества подхода
[ редактировать ]Ключевое преимущество языкового подхода DASL по сравнению с языками программирования третьего поколения ( 3GL ) заключается в том, что корпоративные приложения могут быть определены очень кратким и точным способом, который ясно выражает логику приложения. Небольшое корпоративное приложение на DASL обычно может быть реализовано с помощью 8–10 тысяч строк кода DASL, который затем компилятор DASL обычно преобразует в 200 тысяч строк кода Java, XML, SQL и других артефактов реализации. Число строк в 200 тыс. типично для эквивалентных приложений, написанных с использованием 3GL.
Краткость DASL можно увидеть также с точки зрения содержания двух представлений (DASL или сгенерированный код приложения на Java/XML/SQL и т. д.). Большая часть кода DASL описывает бизнес-логику и бизнес-процессы, специфичные для приложения, независимо от промежуточного программного обеспечения развертывания, инфраструктур и механизмов представления. Эта основная бизнес-логика обычно представляет только 2–5% сгенерированного кода приложения. Таким образом, написание, понимание и поддержка кода приложения на уровне DASL намного проще, чем на уровне сгенерированного кода, в котором бизнес-логика разбросана по различным артефактам реализации.
Еще одним преимуществом использования DASL для написания приложений по сравнению с традиционными языками 3-го поколения и IDE является то, что код DASL не зависит от промежуточного программного обеспечения, инфраструктур представления графического пользовательского интерфейса, топологии сети и других технологий реализации. По мере разработки и развития нового промежуточного программного обеспечения и платформ существующие программы DASL можно переносить на них без необходимости их повторной реализации.
Например, оригинальные генераторы кода DASL создавали традиционные HTML-экраны. Позже были написаны генераторы кода DASL с использованием таких платформ, как Apache Struts, и таких технологий, как JavaScript в браузере, для обеспечения более интерактивного взаимодействия. Сегодня пишутся новые генераторы DASL, которые создают многофункциональные веб-приложения . Таким образом, существующие DASL-приложения можно преобразовать в многофункциональные веб-приложения путем их перекомпиляции с помощью новейших генераторов кода.
Языковые особенности
[ редактировать ]DASL сочетает в себе декларативный синтаксис с процедурным синтаксисом, подобным Java. Декларативная часть языка позволяет определять приложения на более высоком уровне абстракции, чем языки третьего поколения, такие как Java. В DASL программист не описывает межпроцессное взаимодействие между клиентскими процессами, веб-серверами, серверами приложений, базами данных или детали пользовательского интерфейса нужного приложения. Скорее, программист описывает приложение как набор связанных объектов предметной области (включая их поведение), а также как набор форм и действий, аннотированных базовыми свойствами макета.
В отличие от узкоспециализированных DSL, DASL является полным по Тьюрингу . Поведение объектов предметной области можно выразить, используя комбинацию декларативного и процедурного синтаксиса. Например, ограничения на объекты и атрибуты объектов выражаются декларативно, но само ограничение может быть определено либо как декларативное выражение, либо процедурно.
Приложение DASL состоит из двух основных компонентов: спецификация бизнес-объекта ( BOS ), описывающая модель предметной области, состоящая из постоянных и временных объектов, представляющих домен приложения, и спецификация использования приложения ( AUS ), описывающая действия или варианты использования. это может быть выполнено на модели предметной области. AUS, по сути, представляет собой хореографию объектов предметной области в ряд форм и действий.
Программист DASL моделирует графический интерфейс пользователя приложения, аннотируя логические формы и действия AUS свойствами, которые описывают базовое расположение данных на странице. Вместо того, чтобы соображения пользовательского интерфейса доминировали в спецификации приложения, в DASL центральное место занимает логическое взаимодействие между пользователем и моделью предметной области, а пользовательский интерфейс является производным от логического взаимодействия. Считается, что DASL в этом отношении уникален среди других языков.
Полное описание языка
[ редактировать ]Язык DASL описан в опубликованном техническом отчете Sun Labs под названием « Язык DASL: Руководство программиста и справочное руководство» . Этот технический отчет также доступен как часть цифровой библиотеки ACM по адресу http://dl.acm.org/citation.cfm?id=1698172&dl=ACM&coll=DL&CFID=800729170&CFTOKEN=37871889 .
Внутри Sun Microsystems
[ редактировать ]Примерно в 1999 году два исследователя Sun, Брюс Дэниэлс и Боб Голдберг, начали в Sun Labs исследовательский проект под названием «Ace Project» с целью упростить создание корпоративных веб-приложений на Java. Язык Ace, ныне известный как DASL, был разработан Голдбергом, Дэниэлсом и несколькими другими коллегами в рамках этого проекта.
Проект и язык Ace были описаны в статье, появившейся в июне 2002 года на веб-сайте Sun , а также в январском выпуске журнала Computing Research News за 2003 год под названием Лаборатории Sun Microsystems: лицензия на инновации .
«Project Ace», среда разработки Ace DASL, была продемонстрирована Брюсом Дэниелсом в рамках основного выступления Джеймса Гослинга на JavaONE конференции в марте 2002 года.
В бизнес-стороне Sun Microsystems язык DASL использовался для реализации общедоступного интерфейса к Sun Grid Compute Utility , известного как GridPortal .
Вне Sun Microsystems
[ редактировать ]Хотя Sun Microsystems не выпустила коммерческую реализацию языка DASL, в прошлом она предоставляла эту технологию избранным партнерам и проводила испытания с ее использованием. DASL упоминается на портале Ассоциации вычислительной техники , включая документ, представленный на конференции OOPSLA 2004 , в статьях по разработке программного обеспечения на основе моделей и на веб-сайте Sun/Oracle, описывающем Project Ace . Демонстрация Ace DASL была проведена в рамках основного выступления Джеймса Гослинга на конференции Java One 2004 года.
Дальнейшее развитие за пределами Sun Microsystems
[ редактировать ]Исследования и разработки языка DASL продолжались в RD3 Software в период с 2006 по 2010 год. Усовершенствования языка RD3 и генераторы кода для DASL сделали язык расширяемым и расширили область его применения от динамических веб-приложений в стиле HTTP до многофункциональных веб-приложений . Помимо создания интерфейсов HTML, генераторы кода DASL были созданы для создания интерфейсов Adobe Flex (Flash). При скромных ресурсах можно легко создать HTML5, а также реализации для iPhone и Android.
Язык был расширен, и теперь он может определять динамические веб-сайты и веб-порталы для конкретных доменов , включающие облачные приложения . Например, на веб-сайте RD3 была реализована «программа» DASL.
Язык RD3 DASL поддерживает концепцию форм и вложенных форм как части логического представления. Информация и действия могут быть логически сгруппированы, а пользовательским интерфейсом можно управлять с помощью аннотаций. В язык добавлено представление и навигация по рекурсивным связям, таким как организационные диаграммы и генеалогические деревья.
Язык DASL стал расширяемым . Сторонний программист может написать плагин генератора кода на Java, ориентированный на определенный класс или форму объекта DASL , что позволит представить этот объект или форму с помощью специального виджета. Настраиваемые виджеты могут выполнять вычисления в браузере пользователя, поэтому презентация приложения, созданная DASL, теперь завершена по Тьюрингу.
DASL уникален среди современных языков прикладного программирования своей способностью генерировать современный графический интерфейс пользователя для приложения, не требуя от программиста явного определения пользовательского интерфейса. Используя простые аннотации, программист может изменить пользовательский интерфейс, создаваемый DASL. Используя плагины генератора кода, программист может расширить DASL для создания определенного желаемого пользовательского интерфейса.