Язык описания композитных приложений EasyFlow
Материал из Социодинамики
Строка 2: | Строка 2: | ||
Характерной чертой языка является полное абстрагирование от особенностей распределенной вычислительной среды, в которой работает пользователь. Фактически EasyFlow – это высокоуровневый язык описания AWF. Такой подход позволяет описывать саму решаемую задачу, а не способ ее исполнения на конкретной вычислительной архитектуре. На рис. приведен пример описания простого AWF, представляющего собой скрипт. Тело скрипта состоит из описания вызовов прикладных пакетов – шагов, которые задаются с помощью директивы step и представляют собой узлы графа WF. Для описания каждого шага необходимо задать его имя (в примере это Step1, Step2, Step3), название запускаемого пакета (EmptyPackage, Package1 и Package2) и перечень предметных параметров этого пакета. | Характерной чертой языка является полное абстрагирование от особенностей распределенной вычислительной среды, в которой работает пользователь. Фактически EasyFlow – это высокоуровневый язык описания AWF. Такой подход позволяет описывать саму решаемую задачу, а не способ ее исполнения на конкретной вычислительной архитектуре. На рис. приведен пример описания простого AWF, представляющего собой скрипт. Тело скрипта состоит из описания вызовов прикладных пакетов – шагов, которые задаются с помощью директивы step и представляют собой узлы графа WF. Для описания каждого шага необходимо задать его имя (в примере это Step1, Step2, Step3), название запускаемого пакета (EmptyPackage, Package1 и Package2) и перечень предметных параметров этого пакета. | ||
− | [http://acl.ifmo.ru/content/files/image/11(7).jpg] | + | [[http://acl.ifmo.ru/content/files/image/11(7).jpg]] |
Язык EasyFlow позволяет задавать параметры для следующих типов данных: целое число, строка, число с плавающей точкой, список, структура, указание на использование файла (см. описание шага Step3). | Язык EasyFlow позволяет задавать параметры для следующих типов данных: целое число, строка, число с плавающей точкой, список, структура, указание на использование файла (см. описание шага Step3). | ||
Строка 10: | Строка 10: | ||
Так как WF представляет собой ориентированный граф, в EasyFlow введены механизмы определения порядка выполнения шагов, позволяющие организовать его структуру: зависимости по управлению и зависимости по данным. | Так как WF представляет собой ориентированный граф, в EasyFlow введены механизмы определения порядка выполнения шагов, позволяющие организовать его структуру: зависимости по управлению и зависимости по данным. | ||
− | Зависимости по управлению представляют собой явные указания на то, что один шаг должен начать свое исполнение после завершения другого. Это делается с помощью директивы after (см. рис | + | Зависимости по управлению представляют собой явные указания на то, что один шаг должен начать свое исполнение после завершения другого. Это делается с помощью директивы after (см. рис 1, шаг Step2). |
Зависимости по данным представляют собой неявные указания на зависимости между шагами, которые анализируются при интерпретации скрипта EasyFlow. Они выражаются в том, что некоторые шаги могут использовать данные других шагов, что неявно влияет на последовательность их запуска. Такие зависимости могут присутствовать в описываемом WF одновременно с зависимостями по управлению, что позволяет очень гибко настраивать порядок выполнения шагов. Пример зависимостей по данным содержится в описании шага Step3 (строка 17), где указано, что в качестве входного файла используется файл „out.txt“, полученный в результате выполнения шага Step1. | Зависимости по данным представляют собой неявные указания на зависимости между шагами, которые анализируются при интерпретации скрипта EasyFlow. Они выражаются в том, что некоторые шаги могут использовать данные других шагов, что неявно влияет на последовательность их запуска. Такие зависимости могут присутствовать в описываемом WF одновременно с зависимостями по управлению, что позволяет очень гибко настраивать порядок выполнения шагов. Пример зависимостей по данным содержится в описании шага Step3 (строка 17), где указано, что в качестве входного файла используется файл „out.txt“, полученный в результате выполнения шага Step1. |