SW 개발자가 만든 신규 컴퍼넌트를 웹툴킷에서 사용할 수 있도록 등록하는 방법을 설명합니다. 웹툴킷 상단의 Component 메뉴를 클릭하여 Component 관리화면 으로 이동합니다. 컴포넌트를 등록하기 위한 절차는 다음과 같습니다.
Revision 탭으로 이동합니다. Version Map 표에서 웹툴킷의 Component Version 과 프레임워크의 KSB Version 목록을 확인할 수 있습니다. SW 개발자가 만든 신규 컴퍼넌트를 웹툴킷의 어떤 버전(Component Version)에 추가할지 선택한 후, 해당 버전에 컴퍼넌트를 등록합니다. 웹툴킷에서는 Component Version 을 관리하며, KSB Version 은 매핑만 시켜줍니다.
또한 Working version 은 Component 관리 화면에서 컴퍼넌트를 추가할 버전을 의미하고, Current version 은 워크플로우 편집 화면에서 워크플로우를 작성할 default 버전을 의미합니다.
사용자의 실수로 인한 에러를 막기 위해, 기본적으로 배포되는 Component Version 은 컴퍼넌트 수정/삭제/신규등록 등의 기능을 제공하지 않습니다. 따라서 Component Version 복제 기능을 이용하여 새로운 버전을 생성하고, 여기에 신규 컴퍼넌트를 등록하길 권장합니다.
본 예제에서는 Component Version = 1.0 을 복제하여 1.0.1 버전을 생성합니다. Component Version = 1.0 에서 "Clone" 버튼을 클릭하여 신규 버전 정보를 입력합니다 (Component Version = 1.0.1; KSB Version = 1.0). 그리고 "Clone to DB" 버튼을 클릭하여 적용합니다.
그리고 1.0.1 버전을 Working version 으로 선택합니다.
Protocol Buffer 메세지 작성 시 독립적으로 작성한 Enum Component가 있다면, 이를 가장 먼저 입력합니다. Enum Component 탭으로 이동하여 입력합니다.
enum FieldType { STRING = 0; INTEGER = 1; DOUBLE = 2; BOOLEAN = 3; BYTE = 4; FLOAT = 5; LONG = 6; TIMESTAMP = 7; }
Protocol Buffer 메세지의 필드 값을 입력합니다. Protocol Buffer 메세지에 포함되어 있는 Enum Component 와 Oneof Component 를 함께 입력합니다. Component Property 탭으로 이동하여 입력합니다.
[ Component Property ]
[ OneofGroups ]
[ EnumComponent ]
DB+ 버튼(6) 을 클릭하여 리스트에 있는 내용을 DB에 입력합니다. 그 다음 Component Property Help 를 입력합니다. Edit! 버튼을 클릭하여 입력합니다.
[ Component Property Help ]
Modify! 버튼을 클릭한 후, DB+ 버튼(6) 을 클릭하여 리스트에 있는 내용을 DB에 입력합니다.
message FilePipeReaderInfo { required string filePath = 1; required FileType fileType = 2 [default = JSON]; optional int32 maxFilesPerTrigger = 3; optional string timeColName = 5 [default = "timestamp"]; optional string watermark = 6 [default = "1 seconds"]; repeated FieldInfo field = 7; optional string delimiter = 8 [default = ","]; optional bool header = 9 [default = false]; enum FileType { CSV = 0; JSON = 1; PARQUET = 2; TEXT = 3; } }
위에서 입력한 메세지가 Reader, Writer, Runner, Controller, Operator 와 같은 UI Component 로 등록되어야 할 경우, UI Component 탭으로 이동하여 입력합니다.
본 예제에서는 SW 개발자가 이클립스 환경에서 스트림 처리용 파일 입력기(ksb.csle.component.pipe.stream.reader.FilePipeReader.scala
)를 구현하였다고 가정하고, StreamJoinEngine 의 Reader 중 하나로 등록하는 방법을 설명합니다.
위에서 입력한 UI Component 를 어떤 Engine에서 사용할 것인지 매핑 정보를 입력합니다.
DB에 입력한 후, UIComponent Mapping Relations! 버튼(1) 을 클릭하면 아래 그림과 같이 매핑 정보를 확인할 수 있습니다. 동일한 OneofGroup 을 참조하는 엔진들에 모두 매핑이 된 것을 확인할 수 있습니다.