Pergunta

Já ouvi falar de alguém que eles estão usando uma ferramenta de processos de negócios de automação (como Weblogic Integration) como uma linguagem de programação (o que soa como algo meio estúpida) para tornar as coisas declarativa. Em seguida, eles colocaram toda a lógica dentro de um processo, cada if e while.

Mas, nsi't um processo de uma forma de passo-a-passo entidade para atingir um alvo?

Para mim não faz um processo imperativo completamente. O que você acha?

Foi útil?

Solução

É definitivamente não é o que as pessoas normalmente querem dizer quando falam sobre declarativa programação, mesmo se -lhe algum sentido pode ser chamada declarativa.

Outras dicas

línguas Orchestration são, na verdade imperativo linguagens de script com condicionais, looping e outras construções tradicionalmente imperativas , tipicamente expressa através de uma interface de utilizador baseada no fluxograma. Eles certamente não (na minha experiência) implementar programação funcional cauda-recursivo, encadeamento para trás ou qualquer outro paradigma que pode razoavelmente descrito como declarativa no sentido geralmente aceito.

MS Workflow Foundation é anunciado como tendo um motor de regras, mas isso é bastante simplista e não realmente fazer frente encadeamento, exceto em uma maneira um pouco rotunda. ILOG realmente faz um adaptador para o seu motor de regras especificamente para soltá-lo na fundação MS workflow.

Outras ferramentas de fluxo de trabalho tem melhores motores de regras e um sistema de encadeamento para frente apropriado que poderia ser visto como declarativa. No entanto, uma vez que você entrar no-se fluxos de trabalho com looping e desvios condicionais que são mais definitivamente no território de programação imperativa.

No entanto, alguns sistemas também implementar uma mudança baseada sistema de marcação petri-net ou estado de fluxo de trabalho, o que pode razoavelmente ser descrito como declarativa, mas eles ainda têm um modo imperativo da interação com o sistema subjacente. Eles ainda atualizar variáveis ??e têm efeitos colaterais.

Eu vi uma ou duas aplicações (por exemplo SAPO para dados Anlaysis ) realmente usando MS workflow Foundation como uma linguagem de script. Como tal, permite que você adicione uma instalação de script para o aplicativo que (pelo menos para fins de marketing) não requer habilidade de programação para usar.

Na prática, uma ferramenta desenhada para escrever, editar e executar consultas SQL a ser equipado com um quadro de script para 'não-programadores' faz uma maravilha o público é realmente destinado a. Como uma linguagem de script, fluxo de trabalho ferramentas de modelagem são bastante desajeitado e oferecer oportunidades muito limitadas de abstração; na prática, uma base de linguagem de script .Net, como IronPython ou Boo, particularmente em conjunto com um mecanismo de modelagem decente, seria uma adição muito poderosa para tal ferramenta a.

Um ponto sobre linguagens gráficas deste tipo é que eles não escala bem com a complexidade. Um problema semelhante aplica-se com ferramentas de ETL também. Eu vi um aplicativo de provisionamento (veja abaixo) que foi feito (ironicamente) com Crossworlds (agora conhecido como Websphere Integrator). Dentro de um mês após o início da aplicação tornou-se óbvio que a linguagem fluxo de trabalho gráfico não ia escala com a complexidade da aplicação e foi re-construída, com base em um motor de regras personalizadas escrito em Java e um bastante grande corpo de bespoke código java.

Este tipo de problema não é incomum com sistemas EAI e orquestração e é uma das razões que SOA é difícil de implementar na prática. O que você está fazendo é realmente empurrando a lógica de negócios em um ambiente de programação muito desajeitado que não está sendo reconhecido oficialmente como tal. Isto irá funcionar em um caso simples, mas é difícil fazer o trabalho em um sistema complexo -. Esta é uma espécie de um segredo culpado em círculos SOA

Coda: A aplicação de provisionamento é um sistema que tem planos para contratos de serviços de telecomunicações (neste caso para uma rede de telefonia móvel) e empurra informações de configuração baseado em regras para fora para vários interruptores, aplicações de billing e outras aplicações. Eles tendem a ser bastante complexo. Quando você compra um plano de telefone celular com tantos minutos e tantos textos por mês, um pedido de provisionamento está empurrando para fora a informação de configuração para o resto do sistema sobre as suas regras de acesso e de faturamento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top