Java DSL로 워크플로 정의

워크플로는 일반적으로 시스템을 오케스트레이션하는 방법으로 간주됩니다. 하지만 이는 사용 사례 중 하나일 뿐입니다. 워크플로는 구현된 논리에 대한 가시성을 높이기 위해 비즈니스 논리를 표현하는 데 정말 유용할 수 있습니다.

그러나 문제는 워크플로우를 정의하는 방법입니다.

많은 경우 워크플로는 모델로 표현됩니다. 흐름도. 이를 위해서는 모델링 도구도 필요하며 개발자가 항상 원하는 것은 아닙니다.

따라서 개발자가 워크플로의 세계에 진입할 수 있도록 Automatiko(워크플로를 기반으로 서비스 및 기능을 구축하기 위한 오픈 소스 툴킷)은 최근 Workflow Java DSL을 도입했습니다.

이 DSL(도메인 특정 언어)은 워크플로우를 정의하기 위한 API와 같은 편리한 흐름과 함께 제공됩니다. 모든 개발자에게 쉬운 진입점을 제공하기 위해 모든 IDE와 잘 통합되어 있습니다.

기본 사항을 간단히 살펴 보겠습니다.

@Workflows
public class MyWorkflows {

    public WorkflowBuilder splitAndJoin() {

        WorkflowBuilder builder = WorkflowBuilder.newWorkflow("splitAndJoin", "Sample workflow with exclusive split and join");

        String x = builder.dataObject(String.class, "x");
        String y = builder.dataObject(String.class, "y");

        SplitNodeBuilder split = builder.start("start here").then()
                .log("log values", "X is {} and Y is {}", "x", "y")
                .thenSplit("split");

        JoinNodeBuilder join = split.when(() -> x != null).log("first branch", "first branch").thenJoin("join");

        split.when(() -> y != null).log("second branch", "second branch").thenJoin("join");

        join.then().log("after join", "joined").then().end("done");

        return builder;
    }
  }


여기서 주목해야 할 몇 가지 중요한 측면:
@Workflows로 주석이 달린
  • 클래스는 WorkflowBuilder를 반환하는 모든 공용 메서드에 대해 서비스 API를 생성하도록 지시합니다.
  • splitAndJoin 메서드는 다음과 같은 간단한 작업 흐름을 정의합니다.
  • 은 문자열
  • 유형의 두 데이터 개체xy를 선언합니다.
  • 먼저 두 데이터 개체의 값을 기록합니다
  • .
  • 그런 다음 데이터 개체의 값에 따라 다른 경로로 분할됩니다
  • .
  • 그런 다음 다시 결합
  • 메시지를 기록합니다
  • .
  • 워크플로 종료


  • 이 워크플로 정의를 기반으로 빌드 시 Automatiko는 이 워크플로를 서비스로 표시하는 완전한 기능(REST) ​​서비스 API를 생성합니다.



    또한 위의 워크플로 정의를 기반으로 워크플로 다이어그램도 생성됩니다.



    몇 줄의 워크플로 DSL 개발자는 설명적인 방식으로 비즈니스 논리를 정의할 수 있을 뿐만 아니라 즉시 사용 가능한 서비스 API 및 모든 인스턴스에 대한 실행 시각화를 얻을 수 있습니다.

    이것은 Workflow Java DSL에 대한 매우 간단한 소개일 뿐이며 Automatiko documentation에서 보다 완전한 시작 안내서를 찾을 수 있으므로 살펴보고 시도해 보시기 바랍니다.

    워크플로에 도전할 수 있는 흥미로운 사용 사례가 있다면 기꺼이 시도해 보겠습니다! 비즈니스 논리를 포함하기 위해 워크플로를 어디까지 사용할 수 있는지 살펴보겠습니다.

    마지막으로 Automatiko Workflow Java DSL을 시연하는 짧은 비디오

    좋은 웹페이지 즐겨찾기