У меня есть требование создать демон создания массового сервиса, который может быть загружен таблицей данных, а затем уйти и создать набор предварительно подготовленных сервисов. Однако тип услуг потенциально много и разнообразен, и потенциально более поздние шаги потребуют вывода предыдущих шагов.
Кажется, что мне нужно реализовать на каком-то конкретном языке, который позволяет мне определять рецепт шаблона. Затем это может быть передано с помощью механизма шаблонов с заменами, сделанными из таблицы данных, прежде чем они будут выполнены.
Было бы целесообразно повторно использовать существующую языковую инфраструктуру, чтобы более сложные рецепты могли использовать управление потоком и определять ограниченный набор базовых операций. Однако я бы хотел, чтобы простые рецепты не требовали знания языка для изменения, поскольку конечные пользователи вряд ли будут иметь опыт работы с программным обеспечением.
Я бы представил простой рецепт шаблона, выглядящий примерно так:
# Create a service from NodeA to NodeC via NodeB
# Parameters are:
# node a id, node a port, node b id, node c id, node c port, comment
node_a = node_a_type($1)
conn_a = node_a.create_connection($2, $7)
node_b = node_b_type($3)
conn_b = node_b.create_connection(conn_a.output_port, $7)
node_c = node_c_type($4)
conn_c = node_c.terminate_connection(conn_b.output_port, $5, $7)
Я предлагаю python как базовый язык, поскольку я знаком с ним. Однако в вики Python предлагается множество различных опций (http://wiki.python.org/moin/Templating), причем большинство из них нацелены на решения HTML/XML. Было бы оценено понимание преимуществ и недостатков различных систем.