[go: up one dir, main page]

KR20250122799A - Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services - Google Patents

Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services

Info

Publication number
KR20250122799A
KR20250122799A KR1020240018899A KR20240018899A KR20250122799A KR 20250122799 A KR20250122799 A KR 20250122799A KR 1020240018899 A KR1020240018899 A KR 1020240018899A KR 20240018899 A KR20240018899 A KR 20240018899A KR 20250122799 A KR20250122799 A KR 20250122799A
Authority
KR
South Korea
Prior art keywords
data
schema
edi
information
adapter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
KR1020240018899A
Other languages
Korean (ko)
Inventor
송균상
전현석
최정규
Original Assignee
인스피언 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인스피언 주식회사 filed Critical 인스피언 주식회사
Priority to KR1020240018899A priority Critical patent/KR20250122799A/en
Publication of KR20250122799A publication Critical patent/KR20250122799A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

개시하는 일 실시 예는, 애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득하는 단계; 상기 소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑하는 단계; 및 상기 매핑에 기반하여 상기 EDI 문서 데이터를 타겟 문서 데이터로 변환하는 단계;를 포함하는, 애플리케이션 서비스 제공 방법을 제공한다.One embodiment of the disclosure provides a method for providing an application service, comprising: a computing system managing a platform that provides clients with isolated workspaces in which application packages are executed; obtaining a source schema for EDI document data; mapping the source schema to a target schema for target document data using a graphical tool; and converting the EDI document data to target document data based on the mapping.

Description

애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체{APPARTUS FOR PROVIDING APPLICATION SERVICES, METHOD THEREOF, AND COMPUTATIONALLY-IMPLEMENTABLE STORAGE MEDIUM FOR STORING A PROGRAM FOR PROVIDING APPLICATION SERVICES}{APPARTUS FOR PROVIDING APPLICATION SERVICES, METHOD THEREOF, AND COMPUTATIONALLY-IMPLEMENTABLE STORAGE MEDIUM FOR STORING A PROGRAM FOR PROVIDING APPLICATION SERVICES}

이하의 개시는 애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체에 관한 것이다. The following disclosure relates to an application service providing device, an application service providing method, and a storage medium storing a computer-executable program providing an application service.

기업과 기업, 또는 기업과 개인간의 거래에 따라 거래와 관련된 정보 교환 또는 그 정보를 포함한 서류의 교환이 이루어지고 있다. In transactions between companies or between companies and individuals, information related to the transaction or documents containing that information are exchanged.

그러나 서류의 교환, 서류에 포함되어야 하는 정보의 형식 또는 규격은 기업에 따라 달라질 수 있고 여러 가지 거래 형태에 따라 서류의 포맷, 내부의 요청 내용, 또는 기재 방식들이 각각 다르기 때문에 여러 가지 소프트웨어들이 개발되어 왔다.However, the exchange of documents, the format or specifications of the information to be included in the documents, may vary from company to company, and the format of the documents, the contents of the internal requests, or the method of description may differ depending on the type of transaction, so various software programs have been developed.

이러한 소프트웨어는 전자 문서 교환 등 여러 기업들 간의 정형화된 양식으로 거래에 필요한 정보를 기입하고 교환할 수 있도록 도움을 줄 수 있다. 이러한 전자 문서 교환 방식이 일반화됨에 따라 표준화된 방식이 규정되어 표준화된 전자문서로 변화시켜 거래 당사자의 컴퓨터로 교환, 축적, 처리하면 시간과 노력을 단축할 수 있다. Such software can help businesses enter and exchange information necessary for transactions in standardized formats, such as electronic document exchange (EDO). As this EDO becomes more widespread, standardized methods will be established, converting these documents into standardized electronic documents and exchanging, storing, and processing them on the computers of the parties involved in the transaction will save time and effort.

그러나 이러한 표준화된 전자문서를 생성하는 소프트웨어도 종종 거래의 당사자, 거래의 양태, 거래의 형식과 내용에 따라 개별적으로 변경해야 하는 불편함이 있었다.However, the software that generates these standardized electronic documents often has the inconvenience of having to be individually changed depending on the parties to the transaction, the nature of the transaction, and the format and content of the transaction.

시장의 신규 업체의 경우 기존 거래 당사자가 요구하는 표준화된 양식과 형식으로 준비하기 어려운 경우가 있다. 시장의 복잡한 거래 양태들과 요구사항들이 많기 때문에 이러한 표준화된 거래 형식을 이해하거나 따르기 힘든 경우가 있는 등의 문제로 거래를 활성화하기 힘든 경우가 있다.For newcomers to the market, it can be difficult to prepare standardized forms and formats required by existing transaction parties. The market's complex transaction patterns and requirements often make it difficult to understand or follow these standardized transaction formats, making it difficult to facilitate transactions.

또한 거래 당사자들이 서로 호환되지 않는 소프트웨어를 사용하거나, 서로 호환되지 않는 시스템에서 별도의 소프트웨어를 구비하는 경우 거래를 위해 소프트웨어를 개발해야 하거나, 시스템에 맞는 소프트웨어를 구비하는 등의 기술적인 불편함이 있었다. Additionally, when the parties to a transaction use incompatible software or have separate software for incompatible systems, there are technical inconveniences such as having to develop software for the transaction or having software tailored to the system.

그리고 동일한 소프트웨어 이미지로 애플리케이션 서비스를 제공하더라도 각각의 클라이언트들에 대해 모든 버전과 종류들의 소프트웨어 패키지들이 준비되고 제공되어야 하는 등 효율적인 서비스를 제공하기 힘든 어려움이 있었다. Even if application services are provided with the same software image, there are difficulties in providing efficient services, such as having to prepare and provide software packages of all versions and types for each client.

특히, 거래 당사자들이 이용하는 서버나 컴퓨팅 자원(resource)에 문제가 발생하더라도 전체 시스템이 중단되지 않고 계속 동작할 수 있어야 하며, 시스템은 사용자 수나 데이터 양의 증가에 대해 유연하게 대응할 수 있어야 한다는 필요성이 존재한다. In particular, there is a need for the entire system to continue to operate without interruption even if problems occur with the servers or computing resources used by the transaction parties, and for the system to be able to flexibly respond to increases in the number of users or the amount of data.

개시하는 실시 예는, 위와 같은 불편한 문제점들을 해결하기 위한 것으로서, 분산 패키지 복제 및 분산 채널 통신을 통해 무중단 스케일 아웃을 지원하기 위한 애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체를 제공할 수 있다.The disclosed embodiment is intended to solve the above-mentioned inconvenient problems, and may provide an application service providing device, an application service providing method, and a storage medium for storing a program executable by a computer that provides an application service to support non-stop scale-out through distributed package replication and distributed channel communication.

개시하는 일 실시 예는, 애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득하는 단계; 상기 소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑하는 단계; 및 상기 매핑에 기반하여 상기 EDI 문서 데이터를 타겟 문서 데이터로 변환하는 단계;를 포함하는, 애플리케이션 서비스 제공 방법을 제공한다.One embodiment of the disclosure provides a method for providing an application service, comprising: a computing system managing a platform that provides clients with isolated workspaces in which application packages are executed; obtaining a source schema for EDI document data; mapping the source schema to a target schema for target document data using a graphical tool; and converting the EDI document data to target document data based on the mapping.

상기 소스 스키마는, 상기 EDI 문서 데이터에 대한 EDI 트랜잭션, 세그먼트 및 데이터 요소 중 적어도 하나를 나타내는 메타데이터를 포함한다. The source schema includes metadata representing at least one of an EDI transaction, segment, and data element for the EDI document data.

상기 매핑하는 단계는, 상기 타겟 문서 데이터에 대한 타겟 스키마를 설정하는 단계; 상기 소스 스키마 및 타겟 스키마에 대한 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나를 결정하는 단계; 상기 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나에 기반하여, 상기 소스 스키마의 계층적으로 구성된 세그먼트 및 데이터 요소 중 적어도 하나를 상기 타겟 스키마에 매핑하는 단계;를 포함한다. The mapping step includes: setting a target schema for the target document data; determining at least one of a resource path, a resource file, and an EDI transaction for the source schema and the target schema; and mapping at least one of a hierarchically structured segment and data element of the source schema to the target schema based on at least one of the resource path, the resource file, and the EDI transaction.

상기 변환하는 단계는, 상기 EDI 문서 데이터에서 데이터 요소를 파싱하는 단계; 상기 소스 스키마와 타겟 스키마의 매핑에 기반하여, 상기 파싱된 데이터 요소를 상기 타겟 문서 데이터의 데이터 형식 및 데이터 구조로 변환하는 단계;를 포함한다. The above converting step includes: a step of parsing data elements from the EDI document data; and a step of converting the parsed data elements into a data format and data structure of the target document data based on a mapping between the source schema and the target schema.

상기 애플리케이션 서비스 제공 방법은 상기 변환하는 단계 이후에, 상기 변환된 타겟 문서 데이터를 파트너에게 송신하는 단계;를 더 포함한다. The above application service providing method further includes, after the converting step, a step of transmitting the converted target document data to a partner.

개시하는 일 실시 예는, 데이터를 저장하는 데이터베이스; 및 상기 데이터를 처리하는 프로세서를 포함하고, 상기 프로세서는, 애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득하고, 상기 소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑하고, 상기 매핑에 기반하여 상기 EDI 문서 데이터를 타겟 문서 데이터로 변환하는, 애플리케이션 서비스 제공 장치를 제공한다.One embodiment of the disclosure provides an application service providing device, comprising: a database for storing data; and a processor for processing the data, wherein the processor is configured to obtain a source schema for EDI document data, map the source schema to a target schema for target document data using a graphical tool, and convert the EDI document data to target document data based on the mapping, in a computing system managing a platform that provides a client with an isolated workspace in which an application package is executed.

상기 소스 스키마는, 상기 EDI 문서 데이터에 대한 EDI 트랜잭션, 세그먼트 및 데이터 요소 중 적어도 하나를 나타내는 메타데이터를 포함한다.The source schema includes metadata representing at least one of an EDI transaction, segment, and data element for the EDI document data.

상기 프로세서는, 상기 타겟 문서 데이터에 대한 타겟 스키마를 설정하고, 상기 소스 스키마 및 타겟 스키마에 대한 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나를 결정하고, 상기 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나에 기반하여, 상기 소스 스키마의 계층적으로 구성된 세그먼트 및 데이터 요소 중 적어도 하나를 상기 타겟 스키마에 매핑한다.The processor sets a target schema for the target document data, determines at least one of a resource path, a resource file, and an EDI transaction for the source schema and the target schema, and maps at least one of a hierarchically organized segment and data element of the source schema to the target schema based on at least one of the resource path, the resource file, and the EDI transaction.

상기 프로세서는, 상기 EDI 문서 데이터에서 데이터 요소를 파싱하고, 상기 소스 스키마와 타겟 스키마의 매핑에 기반하여, 상기 파싱된 데이터 요소를 상기 타겟 문서 데이터의 데이터 형식 및 데이터 구조로 변환한다.The processor parses data elements from the EDI document data, and converts the parsed data elements into a data format and data structure of the target document data based on a mapping between the source schema and the target schema.

상기 프로세서는, 상기 변환된 타겟 문서 데이터를 파트너에게 송신한다.The above processor transmits the converted target document data to the partner.

개시하는 일 실시 예는, 애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득하고, 상기 소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑하고, 상기 매핑에 기반하여 상기 EDI 문서 데이터를 타겟 문서 데이터로 변환하는 단계를 수행하는 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체를 제공한다.One embodiment of the disclosure provides a computer-executable program for providing an application service that performs the steps of obtaining a source schema for EDI document data, mapping the source schema to a target schema for target document data using a graphical tool, and converting the EDI document data to target document data based on the mapping, in a computing system managing a platform that provides clients with isolated workspaces in which application packages are executed, and storing a storage medium.

개시하는 실시 예에 따르면 거래를 위해 기술적인 불편함을 해결하고 거래를 더욱 활성화시킬 수 있다.According to the disclosed embodiment, technical inconveniences for transactions can be resolved and transactions can be made more active.

개시하는 실시 예에 따르면 기존 거래의 표준화된 양식이 준비되지 못했거나, 복잡한 거래 요구사항이 있더라도 소프트웨어를 이용하여 기술적으로 시장 거래를 활성화시킬 수 있다. According to the disclosed embodiment, it is possible to technically activate market transactions using software even when a standardized form for existing transactions is not available or there are complex transaction requirements.

개시하는 실시 예에 따르면 거래 당사자들이 서로 호환되지 않는 소프트웨어를 사용하거나, 서로 호환되지 않는 시스템에서 별도의 소프트웨어를 구비하는 경우라도 편리한 거래 시스템을 구비할 수 있다.According to the disclosed embodiment, a convenient transaction system can be provided even when the transaction parties use incompatible software or have separate software in incompatible systems.

개시하는 실시 예에 따르면, 사용자가 개발 스크립트에 친숙하지 않아도 비교적 간편하게 매핑 프로그램을 정의할 수 있다는 장점이 있다. According to the disclosed embodiment, there is an advantage in that a mapping program can be defined relatively easily even if the user is not familiar with development scripts.

개시하는 실시 예에 따르면, 개발자들은 사용자 친화적인 인터페이스와 시각적 프로그래밍 방식을 통해 복잡한 매핑 로직을 쉽게 구현하고 관리할 수 있다. According to the disclosed embodiments, developers can easily implement and manage complex mapping logic through a user-friendly interface and visual programming approach.

개시하는 실시 예에 따르면, 소프트웨어 패키지를 다수의 워커 노드(물리적 서버)에 분산 배치함으로써 하나의 워커 노드에 장애가 발생하더라도 실제 서비스를 중단 없이 수행할 수 있다.According to the disclosed embodiment, by distributing a software package across multiple worker nodes (physical servers), actual services can be performed without interruption even if a failure occurs in one worker node.

도 1은 실시 예에 따른 애플리케이션 서비스 제공 방법의 일 예를 개시하는 흐름도
도 2는 개시한 실시 예 중 워크스페이스를 통해 클라이언트에 애플리케이션 서비스를 제공하는 예를 개시한 도면
도 3은 실시 예에 따른 애플리케이션 서비스 제공에 대한 레이어 별 요소들을 개시한 개념도
도 4는 실시 예에 따른 애플리케이션 서비스 제공 장치가 인스턴스와 클라이언트 또는 파트너 사이의 채널을 설정하는 구체적인 예를 개시한 도면
도 5는 실시 예에 따라 분산 채널을 설정하고 서비스를 제공받는 예를 개시한 도면
도 6은 실시 예에 따라 설치되는 패키지의 설정 정보를 관리하는 예를 개시한 도면
도 7은 개시하는 실시 예의 워크스페이스에 따라 패키지를 관리하고 이용하는 예를 개시한 도면
도 8은 실시 예에 따라 애플리케이션 서비스의 일종으로서 EDI 정보를 매핑하는 예를 개시한 도면
도 9는 실시 예에 따라 통합 패키지를 이용하여 애플리케이션 서비스를 제공하는 예를 개시한 도면
도 10는 개시한 애플리케이션 서비스 제공하는 예에 따른 플랫폼의 인터페이스의 일 예를 도시한 도면
도 11은 개시한 애플리케이션 서비스 제공하는 예에 따른 플랫폼의 인터페이스의 다른 일 예를 도시한 도면
도 12는 실시 예에 따른 애플리케이션 서비스 제공 장치가 서로 다른 시스템을 통합할 수 있는 프레임워크를 제공하는 예를 개시한 도면
도 13은 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 커넥터 및 서비스를 그래픽 기반으로 코딩하는 예를 나타낸 도면
도 14는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 프로세서, 컨트롤 플로우 및 모디파이어(modifier)를 그래픽 기반으로 코딩하는 예를 나타낸 도면
도 15는 실시 예에 따른 인스턴스 시스템의 플랫폼에서 제공하는 에이전트가 실행된 경우 에이전트의 인터페이스를 예시한 도면
도 16은 실시 예에 따른 인스턴스 시스템의 플랫폼에서 제공하는 에이전트 어댑터의 인터페이스의 일 예를 예시한 도면
도 17은 실시 예에 따른 인스턴스 시스템의 플랫폼에서 제공하는 에이전트 어댑터의 인터페이스의 다른 일 예를 예시한 도면
도 18은 실시 예에 따른 인스턴스 시스템의 플랫폼의 에이전트 어댑터가 송수신 채널을 설정하는 예를 나타낸 도면
도 19는 실시 예에 따른 인스턴스 시스템의 플랫폼을 이용해 거래 정보인 EDI 데이터를 송신하는 예를 개시한 도면
도 20은 실시 예에 따른 워크스페이스에서 어댑터를 실행하는 실시 예를 개시한 도면
도 21은 어댑터 패키지의 일 예를 개시한 도면
도 22는 실시 예에 따른 어댑터가 프레임워크를 사용하는 일 예를 개시한 도면
도 23은 실시 예에 따른 어댑터 패키지가 제공하는 서비스의 일 예를 개시하는 도면
도 24는 실시 예에 따른 워크스페이스에서 개발된 어댑터의 일 예를 개시한 도면
도 25는 실시 예에 따른 애플리케이션 서비스 제공 장치가 데이터 형식을 변환하는 예를 개시하는 도면
도 26은 실시 예에 따른 애플리케이션 서비스 제공 장치가 스키마 및 매핑 스크립트를 사용하여 데이터 형식을 변환하는 예를 개시하는 도면
도 27은 실시 예에 따른 스키마에 기반한 역직렬화와 직렬화의 예를 개시하는 도면
도 28은 실시 예에 따른 매핑 스크립트의 예를 개시하는 도면
도 29는 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면
도 30은 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면
도 31은 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면
도 32는 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면
도 33은 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면
도 34는 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면
도 35는 실시 예에 따른 애플리케이션 서비스 제공 장치가 통합 패키지를 생성 및 테스트하는 예를 개시하는 도면
도 36은 실시 예에 따른 통합 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시하는 도면
도 37은 실시 예에 따른 매핑을 수행하는 통합 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시하는 도면
도 38은 실시 예에 따라 메시지박스를 이용하여 웹 EDI 서비스를 제공하는 예를 개시한 도면
도 39는 실시 예에 따라 메시지박스를 이용하여 웹 EDI 서비스를 제공하는 예를 개시한 도면
도 40은 실시 예에 따른 플랫폼의 인터페이스의 일 예를 도시한 도면
도 41은 실시 예에 따른 웹 EDI 서비스의 사용자 인터페이스의 일 예를 도시한 도면
도 42는 실시 예에 따른 인박스 다큐먼트 서비스의 사용자 인터페이스의 일 예를 도시한 도면
도 43은 실시 예에 따른 인박스 다큐먼트 서비스의 사용자 인터페이스의 다른 일 예를 도시한 도면
도 44는 실시 예에 따른 드래프트 다큐먼트 서비스의 사용자 인터페이스의 일 예를 도시한 도면
도 45는 실시 예에 따른 드래프트 다큐먼트 서비스의 사용자 인터페이스의 일 예를 도시한 도면
도 46은 실시 예에 따른 드래프트 다큐먼트의 사용자 인터페이스의 일 예를 도시한 도면
도 47은 실시 예에 따른 센트 다큐먼트의 사용자 인터페이스의 일 예를 도시한 도면
도 48은 실시 예에 따른 웹 EDI 서비스를 제공하는 애플리케이션 서비스 제공 방법을 설명하는 흐름도
도 49는 실시 예에 따른 스크랩 어댑터의 동작을 개시한 도면
도 50은 실시 예에 따른 스크랩 어댑터를 이용하는 사용자의 일 예를 도시한 도면
도 51은 실시 예에 따른 플랫폼의 사용자 인터페이스의 일 예를 도시한 도면
도 52는 실시 예에 따른 플랫폼의 사용자 인터페이스의 일 예를 도시한 도면
도 53은 다른 실시 예에 따른 데이터 수집 방법을 개시한 도면
도 54는 실시 예에 따른 스크랩 어댑터의 동작을 개시한 도면
도 55는 실시 예에 따른 애플리케이션 서비스 제공 장치가 EDI 문서 데이터에 대한 소스 스키마에 기반하여 데이터를 변환하는 예를 개시하는 도면
도 56은 실시 예에 따른 EDI 문서 데이터에 대한 소스 스키마의 예를 개시하는 도면
도 57은 실시 예에 따른 타겟 문서 데이터에 대한 타겟 스키마의 설정을 위한 사용자 인터페이스의 예를 개시하는 도면
도 58은 실시 예에 따른 소스 스키마 및 타겟 스키마의 설정을 위한 사용자 인터페이스의 예를 개시하는 도면
도 59는 실시 예에 따른 소스 스키마와 타겟 스키마의 매핑을 위한 사용자 인터페이스의 예를 개시하는 도면
도 60은 실시 예에 따른 애플리케이션 서비스 제공 방법이 EDI 문서 데이터에 대한 소스 스키마에 기반하여 데이터를 변환하는 예를 개시하는 흐름도
Figure 1 is a flowchart disclosing an example of a method for providing an application service according to an embodiment.
FIG. 2 is a drawing showing an example of providing application services to a client through a workspace among the disclosed embodiments.
Figure 3 is a conceptual diagram disclosing layer-by-layer elements for providing application services according to an embodiment.
FIG. 4 is a drawing disclosing a specific example of an application service providing device according to an embodiment establishing a channel between an instance and a client or partner.
FIG. 5 is a diagram showing an example of setting up a distributed channel and providing a service according to an embodiment.
FIG. 6 is a drawing disclosing an example of managing setting information of a package installed according to an embodiment.
Figure 7 is a drawing showing an example of managing and using a package according to a workspace of an embodiment of the disclosure.
FIG. 8 is a diagram disclosing an example of mapping EDI information as a type of application service according to an embodiment.
FIG. 9 is a drawing disclosing an example of providing an application service using an integrated package according to an embodiment.
FIG. 10 is a drawing showing an example of an interface of a platform according to an example of providing an application service disclosed.
FIG. 11 is a drawing showing another example of the interface of a platform according to an example of providing an application service disclosed.
FIG. 12 is a drawing disclosing an example of a framework that allows an application service providing device according to an embodiment to integrate different systems.
Figure 13 is a drawing showing an example of graphically coding connectors and services among integration flow functions when developing an integration flow based on an embodiment.
Figure 14 is a drawing showing an example of graphically coding the processor, control flow, and modifier among the integration flow functions when developing an integration flow based on an embodiment.
FIG. 15 is a drawing illustrating an interface of an agent when an agent provided on a platform of an instance system according to an embodiment is executed.
FIG. 16 is a drawing illustrating an example of an interface of an agent adapter provided on a platform of an instance system according to an embodiment.
FIG. 17 is a drawing illustrating another example of an interface of an agent adapter provided on a platform of an instance system according to an embodiment.
Figure 18 is a diagram showing an example of an agent adapter of a platform of an instance system according to an embodiment setting up a transmission and reception channel.
FIG. 19 is a drawing showing an example of transmitting EDI data, which is transaction information, using a platform of an instance system according to an embodiment.
FIG. 20 is a drawing disclosing an embodiment of running an adapter in a workspace according to an embodiment.
Figure 21 is a drawing disclosing an example of an adapter package.
Figure 22 is a drawing disclosing an example of an adapter using a framework according to an embodiment.
Figure 23 is a drawing disclosing an example of a service provided by an adapter package according to an embodiment.
Figure 24 is a drawing disclosing an example of an adapter developed in a workspace according to an embodiment.
FIG. 25 is a drawing disclosing an example of an application service providing device converting a data format according to an embodiment.
FIG. 26 is a diagram showing an example of an application service providing device converting a data format using a schema and a mapping script according to an embodiment.
Figure 27 is a diagram disclosing an example of deserialization and serialization based on a schema according to an embodiment.
Figure 28 is a drawing disclosing an example of a mapping script according to an embodiment.
FIG. 29 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.
FIG. 30 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.
FIG. 31 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.
FIG. 32 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.
FIG. 33 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.
FIG. 34 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.
FIG. 35 is a drawing disclosing an example of an application service providing device according to an embodiment creating and testing an integrated package.
FIG. 36 is a drawing disclosing an example of providing a user interface for developing an integrated flow according to an embodiment.
FIG. 37 is a drawing disclosing an example of providing a user interface for developing an integrated flow that performs mapping according to an embodiment.
Figure 38 is a drawing disclosing an example of providing a web EDI service using a message box according to an embodiment.
Figure 39 is a drawing disclosing an example of providing a web EDI service using a message box according to an embodiment.
FIG. 40 is a drawing showing an example of an interface of a platform according to an embodiment.
Figure 41 is a drawing showing an example of a user interface of a web EDI service according to an embodiment.
FIG. 42 is a diagram illustrating an example of a user interface of an inbox document service according to an embodiment.
FIG. 43 is a diagram illustrating another example of a user interface of an inbox document service according to an embodiment.
FIG. 44 is a diagram illustrating an example of a user interface of a draft document service according to an embodiment.
FIG. 45 is a diagram illustrating an example of a user interface of a draft document service according to an embodiment.
FIG. 46 is a diagram illustrating an example of a user interface of a draft document according to an embodiment.
FIG. 47 is a diagram illustrating an example of a user interface of a cent document according to an embodiment.
Figure 48 is a flowchart illustrating an application service provision method for providing a web EDI service according to an embodiment.
Figure 49 is a drawing showing the operation of a scrap adapter according to an embodiment.
Figure 50 is a drawing showing an example of a user using a scrap adapter according to an embodiment.
FIG. 51 is a drawing illustrating an example of a user interface of a platform according to an embodiment.
FIG. 52 is a drawing illustrating an example of a user interface of a platform according to an embodiment.
Figure 53 is a drawing disclosing a data collection method according to another embodiment.
Figure 54 is a drawing showing the operation of a scrap adapter according to an embodiment.
FIG. 55 is a diagram showing an example of an application service providing device according to an embodiment converting data based on a source schema for EDI document data.
Figure 56 is a diagram disclosing an example of a source schema for EDI document data according to an embodiment.
FIG. 57 is a drawing disclosing an example of a user interface for setting a target schema for target document data according to an embodiment.
FIG. 58 is a drawing disclosing an example of a user interface for setting up a source schema and a target schema according to an embodiment.
FIG. 59 is a diagram disclosing an example of a user interface for mapping a source schema and a target schema according to an embodiment.
Figure 60 is a flowchart showing an example of a method for providing an application service according to an embodiment of the present invention for converting data based on a source schema for EDI document data.

이하에서는 위와 같은 문제점을 해결하고 거래를 위해 기술적인 불편함을 해결할 수 있는 실시 예들을 개시한다. Below, embodiments that can solve the above problems and resolve technical inconveniences for transactions are disclosed.

이하에서 실시 예들의 구성요소를 언급하는 경우, 특별히 물리장치로 제한하지 않는 한 최적화된 하드웨어 또는 소프트웨어로 모두 구현이 가능하다. When components of the embodiments are mentioned below, they can all be implemented with optimized hardware or software, unless specifically limited to physical devices.

도 1은 실시 예에 따른 애플리케이션 서비스 제공 방법의 일 예를 개시하는 흐름도이다. FIG. 1 is a flowchart disclosing an example of a method for providing an application service according to an embodiment.

개시하는 실시 예에 따른 애플리케이션 서비스 제공 방법은 플랫폼을 통해 여러 클라이언트들이 거래에 필요한 애플리케이션을 얻거나, 다운로드 받거나 원하는 기능을 추가 또는 변경할 수 있다. The method for providing an application service according to the disclosed embodiment allows multiple clients to obtain or download applications necessary for transactions or add or change desired functions through the platform.

실시 예는 가상의 격리된 워크스페이스를 이용하는 클라이언트로부터 정보를 송수신하는 채널 요청을 수신할 수 있다(S100). The embodiment can receive a channel request for transmitting and receiving information from a client using a virtual isolated workspace (S100).

클라이언트가 플랫폼에 접속하면 시스템은 클라이언트에 가상의 격리된 워크스페이스를 제공할 수 있다. When a client connects to the platform, the system can provide the client with a virtual, isolated workspace.

클라이언트는 별도의 서비스 제공받을 수 있는 워크스페이스를 가질 수 있으나, 각 워크스페이스를 제공하는 시스템의 하드웨어 기반은 공통될 수 있다. A client may have workspaces that can receive separate services, but the hardware infrastructure of the systems providing each workspace may be common.

시스템 관리자 또는 클라이언트는 클라이언트가 위와 같은 서비스를 제공받을 수 있도록 시스템의 원격 제어 및 업데이트를 수행할 수 있으며, 시스템은 여러 가지 표준들과 연계된 프로토콜에 따라 통신기능을 구비할 수 있다.The system administrator or client can perform remote control and update of the system so that the client can receive the above services, and the system can be equipped with communication functions according to protocols linked to various standards.

클라이언트는 원하는 정보를 송수신할 수 있는 채널을 플랫폼으로부터 요청할 수 있고, 플랫폼은 클라이언트에 채널을 설정하도록 허용할 수 있다. A client can request a channel from the platform through which it can send and receive desired information, and the platform can allow the client to establish a channel.

이에 대한 상세한 예는 이하에서 개시한다.Detailed examples of this are disclosed below.

실시 예는 클라이언트가 자신의 워크스페이스에서 애플리케이션 패키지를 생성, 변경, 또는 저장 등 변환할 수 있는 플랫폼 서비스를 제공할 수 있다(S200). The embodiment may provide a platform service that enables a client to create, change, save, or otherwise transform an application package in his/her workspace (S200).

클라이언트는 실시 예와 같은 시스템에서 애플리케이션 패키지 또는 패키지의 일부를 개발하여 관련 애플리케이션 또는 소프트웨어를 거래하고 거래 관련 사업을 운영할 수도 있다. A client may develop an application package or part of a package in a system such as an embodiment, and may trade related applications or software and operate a trade-related business.

이하에서 애플리케이션 패키지 또는 패키지라고 함은, 프로그램이나 파일의 묶음을 지칭하는 것으로서 프로토콜(protocol)이나 서비스를 지원하는 어댑터(adapter) 패키지, 프로그램 수행에 필요한 리소스 패키지, 여러 가지 패키지가 다시 통합된 통합 패키지 등을 포함한다. 이하의 예에서 경우에 따라 애플리케이션 패키지는 소프트웨어 패키지라고 호칭할 수도 있다.Hereinafter, the term "application package" or "package" refers to a bundle of programs or files, including adapter packages that support protocols or services, resource packages required for program execution, and integrated packages that integrate multiple packages. In the examples below, an application package may also be referred to as a software package.

시스템은 클라이언트가 원하는 여러 가지 데이터 포맷과 구조에 대한 매핑을 지원하는 여러 가지 수단 또는 전문 컴퓨터 언어를 제공할 수 있다. 또한 클라이언트가 애플리케이션 패키지를 변경할 수 있도록 애플리케이션과 관련 도구를 제공할 수 있다. The system may provide various means or specialized computer languages that support mappings to various data formats and structures desired by clients. It may also provide applications and related tools to enable clients to modify application packages.

이에 대한 상세한 예는 이하에서 개시한다.Detailed examples of this are disclosed below.

실시 예는 상기 클라이언트가 애플리케이션 패키지를 이용하거나, 다른 클라이언트가 자신의 워크스페이스에서 애플리케이션 서비스를 제공받는 경우 서비스를 스케일 아웃(scale-out)을 제어하는 서비스를 제공할 수 있다(S300). 이 단계는 서비스 제공에 관련된 스케일 제어가 필요에 따라 진행될 수 있다. 클라이언트는 제공된 시스템에 따라 애플리케이션 서비스를 중단없이 제공받거나 애플리케이션 서비스를 운영할 수 있다. The embodiment can provide a service that controls service scale-out when the client uses an application package or another client receives application services in their workspace (S300). This step can be performed as needed to control scale related to service provision. The client can receive application services or operate the application services without interruption, depending on the provided system.

이에 대한 상세한 예는 이하에서 개시한다.Detailed examples of this are disclosed below.

도 2는 개시한 실시 예 중 워크스페이스를 통해 클라이언트에 애플리케이션 서비스를 제공하는 예를 개시한 도면이다. FIG. 2 is a drawing showing an example of providing application services to a client through a workspace among the disclosed embodiments.

이 도면은 개시한 애플리케이션 서비스를 제공하는 실시 예 중에서 워크스페이스와 멀티테넌시(multi-tenancy)을 설명하기 위한 개념도이다.This drawing is a conceptual diagram for explaining workspace and multi-tenancy among embodiments providing the disclosed application service.

실시 예는 사용자에게 소프트웨어로서의 서비스(Software-as-a-Service; 이하 사스(SaaS))를 제공할 수 있다. The embodiment may provide a software-as-a-service (SaaS) to the user.

실시 예는 당사자들의 거래(transaction) 등의 정보 송수신에 이용되는 애플리케이션이나 사스(SaaS) 방식의 소프트웨어 서비스를 제공할 수 있다.The embodiment may provide an application or SaaS-type software service used for transmitting and receiving information such as transactions between the parties.

이 도면에서 거래 당사자를 클라이언트 1(110), 클라이언트 2(120) 또는 클라이언트 3(130)으로 나타내었다. In this drawing, the trading parties are represented as Client 1 (110), Client 2 (120), or Client 3 (130).

클라이언트들(110, 120, 130)은 각각의 파트너들과 사업 거래를 포함한 여러 가지 정보를 송수신할 수 있다. 이 경우 클라이언트들(110, 120, 130)은 예시한 애플리케이션 서비스 제공 방식을 이용할 수 있다.Clients (110, 120, 130) can transmit and receive various types of information, including business transactions, with their respective partners. In this case, the clients (110, 120, 130) can utilize the application service provision method described above.

실시 예에 따른 애플리케이션 서비스 제공 장치는, 사스(SaaS) 방식의 소프트웨어를 포함하는 애플리케이션을 제공하는 인스턴스 시스템(1000)과, 인스턴스 시스템(1000)을 통해 애플리케이션 서비스 제공하도록 하는 매니저 시스템(2000)을 포함한다. An application service providing device according to an embodiment includes an instance system (1000) that provides an application including software in the SaaS format, and a manager system (2000) that provides an application service through the instance system (1000).

매니저 시스템(2000)은 클라이언트들(110, 120, 130)에게 스케일-아웃(scale-out)이 가능한 인스턴스 시스템(1000)을 제공할 수 있다. The manager system (2000) can provide a scale-out instance system (1000) to clients (110, 120, 130).

인스턴스 시스템(1000)에서는 매니저 시스템(2000)이 클라이언트들(110, 120, 130)에게 제공하는 서비스의 인터페이스가 실행될 수 있다. In the instance system (1000), an interface of a service provided by the manager system (2000) to clients (110, 120, 130) can be executed.

매니저 시스템(2000)을 인스턴스 시스템(1000)을 연결하고 제어하는 매니저 서버(2100)와 송수신된 정보와 클라이언트들(110, 120, 130)의 요구사항들을 저장할 수 있는 데이터베이스(2200)를 포함할 수 있다. 매니저 시스템(2000)의 기능에 대해서는 이하에서 상술한다.The manager system (2000) may include a manager server (2100) that connects and controls the instance system (1000) and a database (2200) that can store transmitted and received information and requirements of clients (110, 120, 130). The functions of the manager system (2000) are described in detail below.

매니저 시스템(2000)에 의해 제공되는 인스턴스 시스템(1000)은 적어도 하나 이상의 노드를 포함할 수 있다. The instance system (1000) provided by the manager system (2000) may include at least one node.

이 도면의 예에서 노드#0 (1100)은, 매니저 시스템(2000)의 제어에 따라 애플리케이션 서비스를 제공하고 스케일-아웃을 수행하는 서비스 코디네이터(coordinator)로서 역할을 할 수 있다. In the example of this drawing, node #0 (1100) can act as a service coordinator that provides application services and performs scale-out under the control of the manager system (2000).

이 예에서 노드 #0인 코디네이터(coordinator) (1100)는, 워커노드(worker node)들인 제 1 노드(Node #1), 제 2 노드(Node #2), 제 3 노드(Node #3), 및 제 N 노드(Node #N) 등과 연결되어 시스템의 스케일을 제어할 수 있다.In this example, the coordinator (1100), which is node #0, can control the scale of the system by being connected to worker nodes such as the first node (Node #1), the second node (Node #2), the third node (Node #3), and the Nth node (Node #N).

예를 들어 노드들 간 연결은 RESTful 애플리케이션 프로그램밍 인터페이스(API)의 HTTP 프로토콜(이하 HTTP/REST로 표시) 등 인터페이스 프로토콜을 이용할 수 있는데, RESTful 애플리케이션 프로그램밍 인터페이스(API)는 HTTP를 사용하여 서버들 간의 데이터가 전송되고 수신되도록 할 수 있다.For example, connections between nodes can utilize interface protocols such as the HTTP protocol (hereinafter referred to as HTTP/REST) of a RESTful application programming interface (API). A RESTful application programming interface (API) can use HTTP to transmit and receive data between servers.

예를 들어 노드#0인 코디네이터(coordinator)(1100)는 제 1 노드(Node #1), 제 2 노드(Node #2), 제 3 노드(Node #3), 내지 제 N 노드(Node #N)의 각각의 노드와 HTTP/REST에 의해 데이터를 송수신할 수 있다.For example, a coordinator (1100) that is node #0 can transmit and receive data to and from each of the first node (Node #1), the second node (Node #2), the third node (Node #3), and the Nth node (Node #N) via HTTP/REST.

마찬가지로 제 1 노드(Node #1)는 HTTP/REST 기반으로 다른 노드들(노드#0, 제 2 노드(Node #2), 제 3 노드(Node #3), 및 제 N 노드(Node #N))와 데이터를 송수신할 수 있다.Similarly, Node #1 can send and receive data with other nodes (Node #0, Node #2, Node #3, and Node #N) based on HTTP/REST.

코디네이터(coordinator) (1100)는 매니저 시스템(2000)의 소프트웨어 패키지 설치 요청에 따라 각 노드들(이 예에서, 제 1 노드(Node #1) 내지 제 N 노드(Node #N))에 상기 소프트웨어 패키지를 설치하도록 할 수 있다.The coordinator (1100) can cause the software package to be installed on each node (in this example, the first node (Node #1) to the Nth node (Node #N)) according to a request for software package installation from the manager system (2000).

각 노드들은 시스템의 종류에 구애받지 않고 워크스페이스를 생성할 수 있는 프레임워크를 포함할 수 있다. 이에 대해서는 후술한다.Each node can include a framework that allows creation of workspaces regardless of system type, as described below.

코디네이터(coordinator)(1100)는 각 노드의 프레임워크에서 구동하는 워크스페이스들(1510, 1520, 1530)을 각각의 클라이언트들(110, 120, 130)에 각각 제공할 수 있다. The coordinator (1100) can provide workspaces (1510, 1520, 1530) running on the framework of each node to each client (110, 120, 130).

클라이언트들(110, 120, 130)은 서로 격리된 워크스페이스들(1510, 1520, 1530)을 가질 수 있고, 격리된 워크스페이스들을 통해 애플리케이션 또는 소프트웨어 패키지들을 제공받거나, 변경 또는 이용할 수 있다. Clients (110, 120, 130) may have isolated workspaces (1510, 1520, 1530) and may be provided with, modified or used applications or software packages through the isolated workspaces.

이 예에서 제 1 노드(Node #1)는 제 1 노드(Node #1) 내부의 프레임워크에 의해 제공된 소프트웨어 패키지 A과 소프트웨어 패키지 C를 코디네이터(coordinator)(1100)를 통해 클라이언트에 제공할 수 있다.In this example, the first node (Node #1) can provide software package A and software package C provided by the framework within the first node (Node #1) to the client through the coordinator (1100).

제 2 노드(Node #2)는 제 2 노드(Node #2) 내부의 프레임워크에 의해 제공된 소프트웨어 패키지 A과 소프트웨어 패키지 B를 코디네이터(coordinator)(1100)를 통해 클라이언트에 제공할 수 있다.The second node (Node #2) can provide software package A and software package B provided by the framework within the second node (Node #2) to the client through the coordinator (1100).

제 3 노드(Node #3)는 제 3 노드(Node #3) 내부의 프레임워크에 의해 제공된 소프트웨어 패키지 B과 소프트웨어 패키지 C를 코디네이터(coordinator)(1100)를 통해 클라이언트에 제공할 수 있다.The third node (Node #3) can provide software package B and software package C provided by the framework within the third node (Node #3) to the client through the coordinator (1100).

매니저 시스템(2000)은 인스턴스 시스템(1000)를 통해 클라이언트들(110, 120, 130)에게 서로 격리된 각각의 워크스페이스들(1510, 1520, 1530)을 안정적으로 제공할 수 있다.The manager system (2000) can stably provide each of the isolated workspaces (1510, 1520, 1530) to the clients (110, 120, 130) through the instance system (1000).

예를 들어 클라이언트 1(110)는 워크스페이스(1510)를 독립적으로 사용할 수 있다. For example, client 1 (110) can independently use workspace (1510).

클라이언트1 (110)은, 코디네이터(coordinator)(1100)와 설정된 채널을 통해 자신의 워크스페이스에서 필요한 데이터를 송수신할 수 있다. 예를 들어 클라이언트1 (110)은 워크스페이스 A(1510)에서 HTTP 채널을 통해 코디네이터(coordinator) (1100)로부터 필요한 소프트웨어 패키지 A와 C를 제공받을 수 있다. 워크스페이스와 코디네이터(coordinator)(1100) 사이에 또는 코디네이터(coordinator) (1100)와 각 노드들 사이에 채널을 설정하는 상세한 예는 후술한다. Client 1 (110) can transmit and receive necessary data in its workspace through a channel established with the coordinator (1100). For example, Client 1 (110) can receive necessary software packages A and C from the coordinator (1100) through an HTTP channel in workspace A (1510). Detailed examples of establishing channels between the workspace and the coordinator (1100) or between the coordinator (1100) and each node will be described later.

클라이언트 2(120)는 워크스페이스 B(1520)에서 예를 들어 HTTP 채널을 통해 코디네이터(coordinator) (1100)로부터 필요한 소프트웨어 패키지 A와 B를 제공받을 수 있다. Client 2 (120) can receive the required software packages A and B from the coordinator (1100) via an HTTP channel, for example, in workspace B (1520).

마찬가지로 클라이언트 3(130)는 워크스페이스 C(1530)에서 HTTP 채널을 통해 코디네이터(coordinator)(1100)로부터 필요한 소프트웨어 패키지 B와 C를 제공받을 수 있다.Similarly, client 3 (130) can receive the necessary software packages B and C from the coordinator (1100) via an HTTP channel in workspace C (1530).

인스턴스 시스템(1000)은 가상화된 시스템을 제공할 수 있어서 클라이언트들(110, 120, 130)는, 자신의 워크스페이스들(1510, 1520, 1530)에서 인스턴스 시스템(1000) 내에 어느 노드가 원하는 소프트웨어 패키지를 제공하는지 인지할 필요가 없다. The instance system (1000) can provide a virtualized system so that clients (110, 120, 130) do not need to be aware of which node within the instance system (1000) provides the desired software package in their workspaces (1510, 1520, 1530).

코디네이터(coordinator)(1100)에 의해 소프트웨어 패키지를 저장하고 제공하는 각각 노드들(Node #1, Node #2, Node #3, Node #N)은 워크스페이스들(1510, 1520, 1530)에 제공할 수 있는 소프트웨어 패키지들을 저장할 수 있다. 즉 여러 개의 노드들은(Node #1, Node #2, Node #3, Node #N)는 가상화되어 서로 격리된 워크스페이스들(1510, 1520, 1530)을 제공할 수 있다. Each node (Node #1, Node #2, Node #3, Node #N) that stores and provides software packages by a coordinator (1100) can store software packages that can be provided to workspaces (1510, 1520, 1530). That is, multiple nodes (Node #1, Node #2, Node #3, Node #N) can be virtualized to provide workspaces (1510, 1520, 1530) that are isolated from each other.

각각 노드들(Node #1, Node #2, Node #3, Node #N)은 각각 프레임워크를 포함하고, 각 프레임워크에서 소프트웨어 패키지를 소프트웨어 패키지 저장부(미도시)에서 다운로드하여 실행하도록 제어할 수 있다. 이에 대해서는 이하에서 상세히 설명한다.Each of the nodes (Node #1, Node #2, Node #3, Node #N) contains a framework, and can control the download and execution of software packages from a software package repository (not shown) within each framework. This will be described in detail below.

각각 노드들(Node #1, Node #2, Node #3, Node #N)들 중 적어도 하나 이상의 노드에 클라이언트 1(110)이 이용하는 워크스페이스 A(1510)에 필요한 소프트웨어 패키지를 저장할 수 있다. The software package required for workspace A (1510) used by client 1 (110) can be stored in at least one node among each of the nodes (Node #1, Node #2, Node #3, Node #N).

이 예에서 소프트웨어 패키지 A는 제 1 노드(Node #1)과 제 2 노드(Node #2)에 저장되어 있지만, 코디네이터(coordinator)(1100)의 스케일 아웃에 의해 다른 노드들(Node #3, Node #N)로 전달되어 저장될 수도 있다. In this example, software package A is stored in the first node (Node #1) and the second node (Node #2), but may also be transferred to and stored in other nodes (Node #3, Node #N) by scaling out the coordinator (1100).

소프트웨어 패키지 B는 제 2 노드(Node #2)과 제 3 노드(Node #3)에 저장되어 있지만, 코디네이터(coordinator)(1100)의 스케일 아웃에 의해 다른 노드들(Node #1, Node #N)로 전달되어 저장될 수도 있다. Software package B is stored on the second node (Node #2) and the third node (Node #3), but may be transferred to and stored on other nodes (Node #1, Node #N) by scaling out the coordinator (1100).

유사하게 소프트웨어 패키지 C는 제 3 노드(Node #3)와 제 1 노드(Node #1)에 저장되어 있지만, 코디네이터(coordinator)(1100)의 스케일 아웃에 의해 다른 노드들(Node #2, Node #N)로 전달되어 저장될 수도 있다. Similarly, software package C is stored in the third node (Node #3) and the first node (Node #1), but may be transferred to and stored in other nodes (Node #2, Node #N) by scaling out the coordinator (1100).

이와 같이 소프트웨어 패키지는 여러 노드들에 분산 설치될 수 있다. 코디네이터(1100)은 소프트웨어 패키지가 어느 노드에 설치되는지 정보를 저장하고 필요한 경우 소프트웨어 패키지 요청에 대한 라우팅(routing)을 수행할 수 있고, 관리하는 노드들의 작업 스케줄링 기능을 수행할 수 있다. In this way, software packages can be distributed and installed across multiple nodes. The coordinator (1100) stores information on which nodes the software package is installed, performs routing for software package requests when necessary, and performs task scheduling functions for the nodes it manages.

따라서, 클라이언트들(110, 120, 130)은 코디네이터(coordinator)(1100)의 스케일 아웃에 의해 원하는 소프트웨어 패키지가 어느 노드에 저장되어 있는지 인지할 필요가 없이 각자의 가상화되고 격리된 워크스페이스들(1510, 1520, 1530)에서 소프트웨어 패키지들을 얻을 수 있다. Accordingly, clients (110, 120, 130) can obtain software packages from their respective virtualized and isolated workspaces (1510, 1520, 1530) without having to know which node the desired software package is stored on due to the scale-out of the coordinator (1100).

매니저 시스템(2000)은 코디네이터(coordinator)(1100)를 제어하여 클라이언트들(110, 120, 130)들이 원하는 소프트웨어 패키지를 얻을 수 있도록 애플리케이션 서비스를 제공할 수 있다.The manager system (2000) can control the coordinator (1100) to provide application services so that clients (110, 120, 130) can obtain desired software packages.

노드들은 이하에서 설명하는 어댑터 패키지나 소프트웨어 패키지가 설치되고 실행되는 워커(worker) 노드로서 역할을 한다. 인스턴스 시스템(1000)에서 워커 노드들은 필요한 경우 매니저 시스템(2000)의 관리에 따라 자동 또는 수동으로 스케일-아웃(scale-out)되어 확장될 수 있다.Nodes serve as worker nodes on which the adapter package or software package described below is installed and executed. In the instance system (1000), worker nodes can be automatically or manually scaled out and expanded as needed under the management of the manager system (2000).

도 3은 실시 예에 따른 애플리케이션 서비스 제공에 대한 레이어 별 요소들을 개시한 개념도이다. Figure 3 is a conceptual diagram disclosing layer-by-layer elements for providing application services according to an embodiment.

실시 예에 따른 애플리케이션 서비스 제공 장치는 매니저 시스템(2000)에 의해 제어되고 관리될 수 있다. The application service providing device according to the embodiment can be controlled and managed by the manager system (2000).

매니저 시스템(2000)은 온프레미스 시스템 또는 클라우드 시스템을 이용하여 EDI 서비스와 같은 애플리케이션 서비스를 제공할 수 있다. 매니저 시스템(2000)이 서비스를 제공하는 상세한 예는 아래에서 후술한다. The manager system (2000) can provide application services, such as EDI services, using an on-premise system or a cloud system. Detailed examples of services provided by the manager system (2000) are described below.

컴퓨팅 시스템은 온프레미스 시스템 또는 클라우드 시스템 중 적어도 하나를 포함할 수 있다. The computing system may include at least one of an on-premises system or a cloud system.

컴퓨팅 시스템은 컴퓨팅 리소스를 가상화할 수 있는 컨테이너나 가상머신(VM)과 같은 가상화 레이어(virtualization layer)를 포함할 수도 있다. A computing system may also include a virtualization layer, such as a container or virtual machine (VM), that can virtualize computing resources.

이 도면은 가상화 레이어가 포함되는 경우를 예시하는 것으로 가상화 레이어는 점선으로 표시하였다.This drawing illustrates a case where a virtualization layer is included, with the virtualization layer indicated by a dotted line.

예를 들면, 컴퓨팅 시스템은 가상화 레이어(virtualization layer)로서 컨테이너를 제공할 수 있다. 컨테이너는 호스트 운영 체제(OS) 위에서 애플리케이션을 실행하는 데 필요한 만큼 호스트의 리소스를 사용하도록 할 수 있다. 컨테이너 이미지를 사용하면 애플리케이션을 신속하게 개발하고 배포하도록 할 수 있다. For example, computing systems can provide containers as a virtualization layer. Containers can use the host's resources as needed to run applications on top of the host operating system (OS). Container images can be used to rapidly develop and deploy applications.

컴퓨팅 시스템은 프레임워크를 제공하는 프레임워크 레이어(1700)를 포함할 수 있다. 프레임워크는 응용프로그래밍인터페이스(API)(1610, 4100)를 통해 여러 가지 애플리케이션들이 구동하도록 할 수 있도록 할 수 있다. The computing system may include a framework layer (1700) that provides a framework. The framework may enable various applications to run through an application programming interface (API) (1610, 4100).

워크스페이스(1500, 3000)나 인터페이스 거버넌스 플랫폼(4000)은 응용프로그래밍인터페이스 (API)(1610) 또는 거버넌스 API(4100)는 상에 각각 위치하고, 여러 가지 애플리케이션들은 응용프로그래밍인터페이스 (API)(1610, 4100)상에서 구동될 수 있다.The workspace (1500, 3000) or the interface governance platform (4000) is located on the application programming interface (API) (1610) or the governance API (4100), respectively, and various applications can be run on the application programming interface (API) (1610, 4100).

클라이언트(100)는, 매니저 시스템(2000)이 제공하는 애플리케이션 서비스, 즉, 소프트웨어 패키지를 이 도면에서 예시하는 바와 같은 레이어들을 가진 시스템에 의해 제공받을 수 있다. The client (100) can receive application services, i.e., software packages, provided by the manager system (2000) through a system having layers as exemplified in this drawing.

예를 들어 클라이언트(100)는 격리된 워크스페이스(1500)를 통해 EDI 애플리케이션(EDI App.) 등의 서비스를 이용할 수 있다. 이 예에서 클라이언트(100)는 워크스페이스(1500)를 통해 EDI와 다른 애플리케이션 서비스(App.), 메시지 서비스(message), 웹 서비스(web service), 프로토콜 어댑터 서비스(protocol adapter), 데이터 변환 서비스(transformation), 모니터링 서비스(monitoring), 보안 서비스(security) 등의 애플리케이션 또는 서비스를 이용할 수 있다. 워크스페이스(1500)상의 애플리케이션 또는 서비스는 이하에서 상세히 개시한다.For example, a client (100) can use services such as an EDI application (EDI App.) through an isolated workspace (1500). In this example, the client (100) can use applications or services such as EDI and other application services (App.), message services, web services, protocol adapter services, data transformation services, monitoring services, and security services through the workspace (1500). The applications or services on the workspace (1500) are described in detail below.

파트너(200)는 클라이언트(100)의 실제 거래 파트너이거나, 거래와 관계된 다른 거래 주체로서 워크스페이스(1500)을 통해 애플리케이션 서비스를 이용하거나 클라이언트(100)가 제공하는 EDI 서비스와 같은 애플리케이션 서비스를 제공받을 수 있다. A partner (200) may be an actual transaction partner of a client (100) or another transaction entity related to a transaction and may use application services through the workspace (1500) or receive application services such as EDI services provided by the client (100).

클라이언트(100)가 EDI 서비스와 관련된 애플리케이션을 통해 거래를 진행하는 경우 파트너(200)는 클라이언트(100)가 제공하는 EDI 서비스 애플리케이션을 통해 거래를 진행할 수 있다. When a client (100) conducts a transaction through an application related to an EDI service, a partner (200) can conduct a transaction through an EDI service application provided by the client (100).

매니저 시스템(2000)은 클라이언트가 자신의 거래에 필요한 애플리케이션을 개발할 수 있는 환경을 제공할 수 있다.The manager system (2000) can provide an environment in which clients can develop applications necessary for their transactions.

매니저 시스템(2000)은 개발워크스페이스(3000)에서 애플리케이션을 개발, 테스트하여 워크스페이스(1500)를 통해 개발한 애플리케이션 서비스를 제공할 수 있다. 뿐만 아니라 매니저 시스템(2000)은 개발워크스페이스(3000)를 클라이언트(100)나 파트너(200)에게 제공하는 컴퓨팅 환경을 관리하고, 클라이언트(100)나 파트너(200)가 개발워크스페이스(3000)에서 필요한 애플리케이션을 개발할 수 있도록 할 수 있다.The manager system (2000) can develop and test applications in the development workspace (3000) and provide application services developed through the workspace (1500). In addition, the manager system (2000) can manage the computing environment that provides the development workspace (3000) to a client (100) or partner (200), and enable the client (100) or partner (200) to develop necessary applications in the development workspace (3000).

이러한 개발워크스페이스(3000)는 애플리케이션을 개발할 수 있는 개발 툴 애플리케이션 (development tool), 개발한 애플리케이션에 대한 이용과 과금체계를 정하는 빌링 애플리케이션(payment/billing), 개발한 애플리케이션을 판매할 수 있는 앱스토어(app. Store), 이러한 기능을 지원하고 제어하고 백오피스 애플리케이션(back-office)를 포함할 수 있다. This development workspace (3000) may include a development tool application that can develop applications, a billing application (payment/billing) that determines the usage and billing system for the developed applications, an app store (app. Store) that can sell the developed applications, and a back-office application that supports and controls these functions.

예를 들면, 클라이언트(100) 또는 파트너(200)는 개발워크스페이스(3000)를 통해 애플리케이션을 개발하고 변경하고 테스트할 수 있다. 클라이언트(100) 또는 파트너(200)는 매니저 시스템(2000)이 제공하는 애플리케이션 뿐만 아니라 개발워크스페이스(3000)에서 자체적으로 애플리케이션 또는 소프트웨어 패키지를 개발할 수 있다.For example, a client (100) or partner (200) can develop, modify, and test applications through the development workspace (3000). The client (100) or partner (200) can develop applications or software packages on its own in the development workspace (3000) as well as applications provided by the manager system (2000).

또한 클라이언트(100)는 개발워크스페이스(3000)를 통해 개발한 애플리케이션을 도면에 예시한 앱 스토어(app store)(3000)를 통해 다른 클라이언트나 파트너들에게 제공할 수도 있다.Additionally, the client (100) can provide applications developed through the development workspace (3000) to other clients or partners through the app store (3000) illustrated in the drawing.

파트너(200) 또한 매니저 시스템(2000)은 제공하는 시스템을 통해 클라이언트(100)와 같이 소프트웨어 패키지를 개발, 테스트, 활용 및 서비스 제공에 이용할 수 있다. Partner (200) and manager system (2000) can also use the system provided by the client (100) to develop, test, utilize and provide services for software packages.

매니저 시스템(2000)은 솔루션 API(4100) 상의 인터페이스 거버넌스 플랫폼(4000)을 통해 클라이언트 시스템에 대한 점검, 제어 등을 제공할 수도 있는데 이러한 서비스에 대해서는 별도로 상세히 개시한다. The manager system (2000) may also provide inspection and control of the client system through the interface governance platform (4000) on the solution API (4100). These services are disclosed in detail separately.

이하에서는 먼저 클라이언트(100)가 워크스페이스(1500)를 통해 소프트웨어 패키지를 이용하여 서비스를 제공받거나 제공하는 상세한 예들을 설명한다. Below, detailed examples of a client (100) receiving or providing a service using a software package through a workspace (1500) are described.

도 4는 실시 예에 따른 애플리케이션 서비스 제공 장치가 인스턴스와 클라이언트 또는 파트너 사이의 채널을 설정하는 구체적인 예를 개시한 도면이다.FIG. 4 is a drawing disclosing a specific example of an application service providing device according to an embodiment establishing a channel between an instance and a client or partner.

위에서 개시한 개념에 따라 애플리케이션 서비스 매니저(2100)는, 클라이언트 또는 파트너(300)가 인스턴스 시스템(1000)을 통해 애플리케이션을 제공, 이용, 변경할 수 있도록 할 수 있다. 인스턴스 시스템(1000)은 코디네이터(1100)과 임의의 노드인 제 N 노드(1300)을 포함할 수 있다. According to the concept disclosed above, the application service manager (2100) can enable a client or partner (300) to provide, use, and modify an application through the instance system (1000). The instance system (1000) can include a coordinator (1100) and an Nth node (1300), which is an arbitrary node.

애플리케이션 서비스 매니저(2100)는 클라이언트/파트너(300)에 에이전트(350)의 설치를 위한 정보를 배포할 수 있다. 예를 들면 에이전트(350)의 설치를 위한 정보는 에이전트 설정 정보, 에이전트 설정을 위한 키 정보, 자원 관리 정보, 사용자 관리 설정 정보 등을 포함할 수 있다. The application service manager (2100) can distribute information for installing an agent (350) to a client/partner (300). For example, the information for installing an agent (350) can include agent setting information, key information for agent setting, resource management information, user management setting information, etc.

예를 들어 에이전트 설정 정보는 채널 정보를 동기화하는 시간, HTTP 요청에 대한 타임아웃, 설치 브라우저와 관련된 세션키의 키(key) 값, 에이전트가 관련 정보를 송수신하는데 필요한 경로 등의 정보를 포함할 수 있다.For example, agent configuration information may include information such as the time to synchronize channel information, a timeout for HTTP requests, the key value of the session key associated with the installed browser, and the path the agent needs to send and receive related information.

채널은 애플리케이션 서비스 매니저(2100)가 제공하는 서비스를 사용하기 위해 설정되는 것으로서, 예를 들어 어댑터(adapter) 패키지와 같은 패키지와 연결하기 위한 컴포넌트로 설명할 수 있다. 이와 관련된 예는 이하에서 상세히 설명한다.A channel is configured to use a service provided by the application service manager (2100). It can be described as a component for connecting to a package, such as an adapter package. Examples related to this are described in detail below.

클라이언트/파트너(300)는 에이전트(350)가 설치될 수 있고, 에이전트(350)는 클라이언트/파트너(300)의 자원관리정보, 접속정보, 사용자정보 등을 수집할 수 있다. 필요한 경우 에이전트(350)는 클라이언트/파트너(300)의 데이터베이스나 파일시스템에 접근할 수 있다. The client/partner (300) may have an agent (350) installed, and the agent (350) may collect resource management information, connection information, user information, etc. of the client/partner (300). If necessary, the agent (350) may access the database or file system of the client/partner (300).

에이전트(350)는 인스턴스 시스템(1000)의 코디네이터(1100)에 소프트웨어 패키지를 요청할 수 있다. 이 경우 에이전트(350)는 코디네이터(1100)의 에이전트 어댑터(1350)에 소프트웨어 패키지를 수신하기 위한 채널 서비스를 요청할 수 있다. 여기서는 에이전트(350)가 에이전트 어댑터(1350)에 요청하는 채널 서비스를 위해 HTTP 요청 이용할 수 있다. An agent (350) can request a software package from a coordinator (1100) of an instance system (1000). In this case, the agent (350) can request a channel service for receiving the software package from an agent adapter (1350) of the coordinator (1100). Here, an HTTP request can be used for the channel service requested by the agent (350) to the agent adapter (1350).

예를 들어 클라이언트/파트너(300)의 에이전트(350)가 사전 설정된 HTTP URI로 요청을 전달하면, 코디네이터(1100)는 특정 포트로 들어오는 HTTP 트래픽, 즉 인바운드(inbound) HTTP 연결을 허락하고, 이 HTTP 서비스를 워커 노드인 제 N 노드(1300)의 에이전트 어댑터(1350)로 전달하는 채널 서비스로 변환할 수 있다.For example, when an agent (350) of a client/partner (300) transmits a request to a preset HTTP URI, the coordinator (1100) can allow HTTP traffic coming into a specific port, i.e., an inbound HTTP connection, and convert this HTTP service into a channel service that is transmitted to the agent adapter (1350) of the Nth node (1300), which is a worker node.

에이전트(350)의 설치를 위한 정보에는 인스턴스 시스템(1000)에 접속할 수 있는 경로 정보가 이미 포함되어 있다. Information for installing the agent (350) already includes path information that can access the instance system (1000).

클라이언트/파트너(300)에 에이전트(350)가 설치되면 클라이언트/파트너(300)의 관리자는 에이전트(350)가 관리하는 클라이언트/파트너(300) 시스템의 관리 정보, 사용자 정보 등을 설정할 수 있고, 제 N 노드(1300)의 에이전트 어댑터(1350)와의 동기화 시간 등을 설정할 수도 있다.When an agent (350) is installed on a client/partner (300), the administrator of the client/partner (300) can set management information, user information, etc. of the client/partner (300) system managed by the agent (350), and can also set a synchronization time with the agent adapter (1350) of the Nth node (1300).

애플리케이션 서비스 매니저(2100)은, 상기 등록된 에이전트(350)와 관련하여 인스턴스 시스템(1000)에 설치되는 에이전트 어댑터(1350)에 대한 설정 정보, 상기 등록된 에이전트(350)와 동기화 활성 여부 정보를 설정할 수 있다. The application service manager (2100) can set setting information for the agent adapter (1350) installed in the instance system (1000) in relation to the registered agent (350) and information on whether synchronization with the registered agent (350) is activated.

애플리케이션 서비스 매니저(2100)은, 상기 등록된 에이전트(350)가 전송하는 정보를 저장하기 위한 메시지 박스내 아웃박스 슬롯(outbox slot) 정보와 상기 등록된 에이전트(350)가 수신하는 정보를 저장하기 위한 메시지 박스내 인박스 슬롯(inbox slot) 정보를 설정할 수 있다. The application service manager (2100) can set outbox slot information within a message box for storing information transmitted by the registered agent (350) and inbox slot information within a message box for storing information received by the registered agent (350).

애플리케이션 서비스 매니저(2100)는 위와 같이 설정한 정보에 따라 에이전트(350)가 전송하는 정보와 에이전트(350)가 수신하는 정보를 메시지 박스(2110)내의 아웃박스 슬롯(outbox slot) 과 인박스 슬롯(inbox slot)에 각각 저장한다. 메시지 박스 내의 슬롯(slot)은 데이터의 처리단위를 저장하는 논리적인 구분 개념으로서, 메시지 박스는 큐(queue) 같이 데이터 처리단위를 저장하고 출력될 수 있다.The application service manager (2100) stores the information transmitted by the agent (350) and the information received by the agent (350) in the outbox slot and the inbox slot within the message box (2110), respectively, according to the information set as above. The slot within the message box is a logical division concept that stores a data processing unit, and the message box can store and output a data processing unit like a queue.

한편, 애플리케이션 서비스 매니저(2100)는 상기 등록된 에이전트(350)와 에이전트 어댑터(1350)가 인증을 진행할 수 있는 인증키 정보도 설정할 수 있다. Meanwhile, the application service manager (2100) can also set authentication key information that enables the registered agent (350) and agent adapter (1350) to perform authentication.

이와 같이 에이전트(350)가 클라이언트/파트너(300)에 등록되고 에이전트 어댑터(1350)가 인스턴스 시스템(1000)에 설정되면, 에이전트 어댑터(1350)는 에이전트(350)에 설정된 자원과 연결될 수 있다. In this way, when the agent (350) is registered to the client/partner (300) and the agent adapter (1350) is set to the instance system (1000), the agent adapter (1350) can be connected to the resource set to the agent (350).

그리고 에이전트(350)로부터 설정된 정보에 따라 관련 정보나 데이터를 에이전트 어댑터(1350)와 송수신할 수 있다. And, according to the information set from the agent (350), related information or data can be transmitted and received with the agent adapter (1350).

이 도면에서 에이전트(350)가 클라이언트/파트너(300)의 자원으로부터 설정된 주기에 따라 출력되는 정보(outbox)를 전송하는 채널을 송신(send) 채널로 표시하였다. 그리고 에이전트(350)가 에이전트 어댑터(1350)로부터 전송되는 정보(inbox)를 수신하는 채널을 수신(receive/polling) 채널로 표시하였다.In this drawing, the channel through which the agent (350) transmits information (outbox) output from the resource of the client/partner (300) according to a set cycle is indicated as a send channel. In addition, the channel through which the agent (350) receives information (inbox) transmitted from the agent adapter (1350) is indicated as a receive (receive/polling) channel.

에이전트(350)는 설정된 송신(send) 채널과 설정된 수신(receive/polling) 채널을 통해 에이전트 어댑터(1350)로부터 요청한 데이터를 보내고 받을 수 있다. The agent (350) can send and receive data requested from the agent adapter (1350) through a set send channel and a set receive/polling channel.

도 5는 실시 예에 따라 분산된 시스템에서 채널을 관리하고 서비스를 제공받는 예를 개시한 도면이다. FIG. 5 is a diagram disclosing an example of managing channels and providing services in a distributed system according to an embodiment.

예시한 바와 같이 인스턴스 시스템(1000) 내에 노드들은 서비스를 제공하기 위해 채널을 통해 데이터를 송수신할 수 있다. 채널은 서비스를 제공하기 위한 데이터 또는 패키지를 호출하거나 또는, 이미 등록된 채널이 어느 노드에서 실행되고 있는지를 조회하는 서치하는 통로를 총칭한다. As illustrated, nodes within the instance system (1000) can transmit and receive data via channels to provide services. A channel is a general term for a path that calls data or packages for providing services, or searches for a node on which a previously registered channel is running.

여기서는 인스턴스 시스템(1000)의 코디네이터(1100)가 분산 환경의 노드들을 설치되는 패키지들을 채널 연결을 통해 관리하는 예를 개시한다. Here, an example is disclosed in which a coordinator (1100) of an instance system (1000) manages packages installed on nodes in a distributed environment through channel connections.

코디네이터(1100)는 워커노드들을 각각 연결할 수 있는 채널 정보와 각 워커노드들에 저장된 패키지들에 대한 정보를 저장할 수 있다.The coordinator (1100) can store channel information that can connect each worker node and information about packages stored in each worker node.

예를 들어 코디네이터(1100)는 워커노드들(1110, 1120)에 저장된 패키지에 대한 정보를 등록하여 저장할 수 있다. 코디네이터(1100)는, 제 1 노드(Node #1)의 워커노드(1110)가 저장하는 어댑터 패키지 A와 통합 패키지(integration package)에 대한 정보를 등록하여 저장하고, 제 2 노드(Node #2)의 워커노드(1120)가 저장하는 어댑터 패키지 B에 대한 정보를 등록하여 저장할 수 있다.For example, the coordinator (1100) can register and store information about packages stored in worker nodes (1110, 1120). The coordinator (1100) can register and store information about adapter package A and integration package stored by the worker node (1110) of the first node (Node #1), and can register and store information about adapter package B stored by the worker node (1120) of the second node (Node #2).

코디네이터(1100)는 클라이언트 또는 파트너로부터 패키지와 관련된 서비스 요청을 수신할 수 있다. 위에서 개시한 바와 같이 여기서는 서비스 요청을 URL 정보가 포함된 HTTP 요청을 통해 수신하는 경우를 예시한다.The coordinator (1100) can receive service requests related to packages from clients or partners. As described above, this example illustrates a case where the service request is received via an HTTP request containing URL information.

코디네이터(1100)는 HTTP 요청에 포함된 URL 정보에 기초하여 코디네이터(1100)에 등록되어 매핑된 경우 워커노드들을 위한 서비스 채널을 설정할 수 있다. The coordinator (1100) can set up a service channel for worker nodes that are registered and mapped to the coordinator (1100) based on URL information included in the HTTP request.

여기서의 예와 같이 코디네이터(1100)는 클라이언트 또는 파트너의 URL 정보가 포함된 HTTP 요청에 따라 HTTP 서비스 채널을 설정한다. 코디네이터(1100)는 제 1 워커노드(워커 노드 #1) (1110)가 제공하는 어댑터 패키지 A를 설정된 HTTP 서비스 채널을 통해 호출할 수 있다.As in the example here, the coordinator (1100) establishes an HTTP service channel based on an HTTP request containing URL information from a client or partner. The coordinator (1100) can call adapter package A provided by the first worker node (worker node #1) (1110) through the established HTTP service channel.

클라이언트 또는 파트너는 코디네이터(1100)가 제공하는 격리된 워크스페이스를 이용하므로 클라이언트들(또는 파트너들)은 각자의 워크스페이스 내의 패키지들 버전은 달라질 수 있고, 서로 다른 버전의 어댑터 패키지를 이용할 수 있다.Since clients or partners use isolated workspaces provided by the coordinator (1100), the versions of packages within each workspace of clients (or partners) may be different and different versions of adapter packages may be used.

클라이언트가 요청하는 어댑터 패키지 A는, 코디네이터(1100)에 등록된 정보에 따라 제 1 워커노드(워커 노드 #1) (1110)에서 HTTP 서비스 채널을 통해 호출될 수 있다.Adapter package A requested by the client can be called through an HTTP service channel from the first worker node (worker node #1) (1110) according to the information registered in the coordinator (1100).

제 1 워커노드(워커 노드 #1) (1110)는 HTTP 서비스 채널에 따라 등록된 어댑터 패키지 A를 제공할 수 있다.The first worker node (worker node #1) (1110) can provide the registered adapter package A according to the HTTP service channel.

클라이언트 또는 파트너가 해당 워크스페이스에서 애플리케이션 패키지를 개발할 경우 어댑터 패키지 B가 포함된 통합 패키지가 필요할 수도 있다. If a client or partner develops an application package in that workspace, they may need an integration package that includes Adapter Package B.

코디네이터(1100)는 등록된 정보에 따라 제 1 워커노드(워커 노드 #1) (1110)가 통합 패키지를 저장하고, 제 2 워커노드(워커 노드 #2) (1110)가 어댑터 패키지 B를 저장한 것을 알고 있다. The coordinator (1100) knows that the first worker node (worker node #1) (1110) stores the integrated package and the second worker node (worker node #2) (1110) stores the adapter package B based on the registered information.

코디네이터(1100)는 어댑터 기능 채널을 통해 제 1 워커노드(워커 노드 #1) (1110)에서 어댑터 패키지 B가 포함된 통합 패키지를 조회서치할 수 있다. 그리고 어댑터 패키지 B가 제 1 워커노드(워커 노드 #1) (1110)에 저장된 통합 패키지에 포함되지 않은 경우, 제 1 워커노드(워커 노드 #1) (1110)는, 제 2 워커노드(워커 노드 #2) (1120)에 저장된 어댑터 패키지 B를 워커노드들 사이의 채널 연결을 통해 호출하도록 할 수 있다. The coordinator (1100) can search for an integrated package including adapter package B in the first worker node (worker node #1) (1110) through an adapter function channel. If adapter package B is not included in the integrated package stored in the first worker node (worker node #1) (1110), the first worker node (worker node #1) (1110) can call adapter package B stored in the second worker node (worker node #2) (1120) through a channel connection between the worker nodes.

그러면 제 2 워커노드(워커 노드 #2) (1120)는 호출된 어댑터 패키지 B를 제공할 수 있는데 그 경우 코디네이터(1100)는 어댑터 패키지 B를 제공하는 채널을 어댑터 기능 채널에 등록하여 통합패키지와 함께 어댑터 패키지 B가 함께 제공되도록 할 수 있다. Then, the second worker node (worker node #2) (1120) can provide the called adapter package B, in which case the coordinator (1100) can register a channel providing adapter package B to the adapter function channel so that adapter package B is provided together with the integrated package.

이와 같이 개시하는 실시 예는 여러 가지 패키지들이 여러 노드에 분산 설치할 수 있다. 패키지 사이의 통신 또는 인스턴스 시스템 외부에서 특정 어댑터 패키지를 호출하기 위해 코디네이터(1100)는 패키지 서비스를 제공할 수 있는 워커노드들에 해당 패키지를 서치, 호출 또는 등록하는 채널들을 관리하고 저장할 수 있다. In this disclosed embodiment, multiple packages can be distributed and installed across multiple nodes. To enable communication between packages or to call a specific adapter package from outside the instance system, the coordinator (1100) can manage and store channels that search for, call, or register the corresponding package on worker nodes capable of providing package services.

코디네이트(1100)인스턴스 시스템(1000)의 에이전트 어댑터(1350)는 예시한 바와 같이 에이전트(350)으로부터의 송신 채널과 수신 채널에 대해 설정할 수 있다. 에이전트 어댑터(1350)는 에이전트의 식별자, 채널 주기 등 채널과 관련된 정보를 이용해 특정 에이전트와 채널을 설정할 수 있다.The agent adapter (1350) of the coordinate (1100) instance system (1000) can set up transmission and reception channels from the agent (350) as exemplified. The agent adapter (1350) can set up a specific agent and channel using information related to the channel, such as the agent's identifier and channel period.

이와 같이 코디네이터(1100)는 요청된 패키지 관련 서비스가 워커노드들에 분산되어 수행될 수 있도록 여러 가지 정보를 관리할 수 있다. 위에서는 HTTP 서비스 채널을 예시하였으나 FTP와 같은 파일 전송 채널을 통해 패키지가 전달될 수도 있다. In this way, the coordinator (1100) can manage various pieces of information so that requested package-related services can be distributed and performed across worker nodes. While the HTTP service channel is exemplified above, packages can also be delivered via a file transfer channel such as FTP.

코디네이터(1100)는 여러 개의 워커노드들에 분산 수행되는 어댑터 패키지들의 경우 공유 메모리(미도시) 또는 저장소에 저장할 수도 있다. The coordinator (1100) may store adapter packages that are distributed and executed across multiple worker nodes in shared memory (not shown) or storage.

또한 코디네이터(1100)는 여러 클라이언트들이 사용하는 어댑터와 관련된 로그 등의 데이터도 저장하고 관리할 수 있다.Additionally, the coordinator (1100) can store and manage data such as logs related to adapters used by multiple clients.

도 6은 실시 예에 따라 설치되는 패키지의 설정 정보를 관리하는 예를 개시한 도면이다. FIG. 6 is a drawing disclosing an example of managing setting information of a package installed according to an embodiment.

이 도면의 예에서 인스턴스 시스템(1000) 내의 분산 시스템인 코디네이터(1100), 제 m 노드(node #m)(3110), 및 제 n 노드(node #n)(3210)는 각각 노드 내의 설정 저장부들(1115, 3115, 3215)를 포함할 수 있다. In the example of this drawing, the coordinator (1100), the mth node (node #m) (3110), and the nth node (node #n) (3210), which are distributed systems within the instance system (1000), may each include configuration storage units (1115, 3115, 3215) within the nodes.

매니저 시스템(2000)의 애플리케이션 서비스 매니저(2100)는 패키지와 관련된 여러 가지 설정 정보(사각형)를 저장할 수 있다. 저장되는 설정 정보는 패키지가 각 노드에서 실행될 때 필요한 여러 가지 설정 정보를 포함할 수 있다. The application service manager (2100) of the manager system (2000) can store various configuration information (rectangles) related to the package. The stored configuration information can include various configuration information required when the package is executed on each node.

애플리케이션 서비스 매니저(2100)는 패키지의 설정 정보를 데이터베이스(2200)에 저장할 수 있다. 애플리케이션 서비스 매니저(2100)는 특정 노드, 이 예에서는 제 m 노드(node #m)(3110)로부터 패키지의 설정 정보를 얻거나 외부에서 요청한 패키지의 설정 정보를 데이터베이스(2200)에 저장할 수 있다.The application service manager (2100) can store the configuration information of a package in a database (2200). The application service manager (2100) can obtain the configuration information of a package from a specific node, in this example, node #m (3110), or store the configuration information of a package requested externally in the database (2200).

코디네이터(1100)는 애플리케이션 서비스 매니저(2100)에 의해 관리되는 패키지의 설정 정보를 자신의 설정 저장부(1115)에 저장할 수 있다. 애플리케이션 서비스 매니저(2100)는 제어 화면 등을 통해 패키지의 설정 정보를 관리하고 저장할 수 있다. The coordinator (1100) can store configuration information of a package managed by the application service manager (2100) in its configuration storage (1115). The application service manager (2100) can manage and store configuration information of the package through a control screen, etc.

인스턴스 시스템(1000)내의 위커 노드들인 제 m 노드(node #m)(3110, 및 제 n 노드(node #n)(3210)는 코디네이터(1100)의 설정 저장부(1115)로부터 관련된 패키지의 설정 정보를 수신하여 각각의 설정 저장부(3115, 3215)에 저장할 수 있다. The m-th node (node #m) (3110) and the n-th node (node #n) (3210), which are wicker nodes within the instance system (1000), can receive configuration information of related packages from the configuration storage (1115) of the coordinator (1100) and store them in their respective configuration storages (3115, 3215).

이 예에서 워크 노드워커 노드인 제 n 노드(node #n)(3210)가 코디네이터(1100)의 설정 저장부(1115)에 저장된 패키지의 설정 정보로 해당 패키지의 설정 정보를 동기화 할 수 있다. 이러한 동기화는 주기적으로 수행될 수도 있고, 설정에 따라 다른 주기로 동기화될 수도 있다.In this example, the nth node (node #n) (3210), which is a worker node, can synchronize the configuration information of the package with the configuration information of the package stored in the configuration storage (1115) of the coordinator (1100). This synchronization may be performed periodically, or may be synchronized at different cycles depending on the settings.

워크 노드워커 노드인 제 n 노드(node #n)(3210)가 패키지를 실행하여야 하는 경우에는 자신의 설정 저장부(3215)에 동기화되어 저장된 설정 정보를 이용하여 패키지를 실행할 수 있다. When the nth node (node #n) (3210), which is a worker node, needs to execute a package, it can execute the package using the configuration information synchronized and stored in its configuration storage (3215).

클라이언트/파트너는 코디네이터(1100)의 패키지 설정 화면 등을 통해 워크 노드워커 노드인 제 m 노드(node #m)(3110)의 패키지의 설정 정보를 변경하고 저장할 수 있다.The client/partner can change and save the package setting information of the worker node node m (node #m) (3110) through the package setting screen of the coordinator (1100), etc.

워크 노드워커 노드인 제 m 노드(node #m)(3110)의 패키지 설정 정보가 변경된 경우, 애플리케이션 서비스 매니저(2100)에 패키지의 변경된 설정 정보를 전송할 수 있다.When the package setting information of node #m (3110), which is a worker node, is changed, the changed setting information of the package can be transmitted to the application service manager (2100).

다시 애플리케이션 서비스 매니저(2100)는 제 m 노드(node #m)(3110)로부터 전송된 패키지의 변경된 설정 정보를 데이터 베이스(2200)에 저장할 수 있다.Again, the application service manager (2100) can store the changed configuration information of the package transmitted from the node #m (3110) in the database (2200).

도 7은 개시하는 실시 예의 워크스페이스에 따라 패키지를 관리하고 이용하는 예를 개시한 도면이다. FIG. 7 is a diagram showing an example of managing and using packages according to a workspace of an embodiment of the disclosure.

클라이언트는 격리된 워크스페이스에서 여러 가지 패키지를 생성, 실행 및 변경할 수 있다. Clients can create, run, and modify multiple packages in an isolated workspace.

예를 들어 클라이언트는 워크스페이스에서 어댑터 패키지를 실행할 수 있는데, 어댑터 패키지는 설정 저장소에 저장된 설정 정보를 이용하여 실행될 수 있다. 그런데 경우에 따라 패키지는 설정 저장소의 설정 정보 이외에 리소스 파일을 참고하여 실행되는 경우도 있다. For example, a client can execute an adapter package in a workspace, which can use configuration information stored in a configuration repository. However, in some cases, the package may also reference resource files in addition to the configuration information stored in the configuration repository.

리소스 파일은 일종의 리소스 패키지인 매핑 프로그램으로서 워크스페이스에 설치될 수 있다. 리소스 파일은 어댑터 패키지와 같은 패키지 실행 시에 리소스 경로를 이용해 액세스되어 어댑터 패키지가 실행되도록 할 수 있다. Resource files can be installed in the workspace as mapping programs, a type of resource package. Resource files can be accessed using resource paths when executing packages, such as adapter packages, to enable the adapter package to run.

개시하는 실시 예에 따르면 워크스페이스에서 패키지의 개발 또는 테스트와 운영이 모두 가능하다. According to the disclosed embodiment, both development or testing and operation of packages are possible in the workspace.

따라서, 실시 예에 따르면 `운영을 위한 워크스페이스와 개발을 위한 워크스페이스를 분리하여 리소스 파일을 제공할 수 있다. Therefore, according to an embodiment, resource files can be provided by separating a workspace for operation and a workspace for development.

이 도면의 예에서 개발을 위한 워크스페이스(1510)에서 어댑터 패키지를 개발할 경우, 해당 어댑터 패키지는 리소스 파일을 읽기뿐만 아니라 쓰기 가능한 프로그램으로서 이용할 수 있다. 이 경우 매핑 프로그램인 리소스 파일은 쓰기가 가능한 공유 리소스 경로로 지정되어 액세스되도록 할 수 있다. In the example of this drawing, when developing an adapter package in the development workspace (1510), the adapter package can be used as a program that can read and write resource files. In this case, the resource file, which is a mapping program, can be accessed by specifying it as a writable shared resource path.

반면에 운영을 위한 워크스페이스(1520)에서 어댑터 패키지를 실행할 경우, 리소스 파일은 어댑터 패키지가 읽기만 할 수 있고 쓰기가 불가능한 리소스 패키지로서 제공될 수 있다. 이 경우 어댑터 패키지는 리소스 패키지를 참조하여 설치, 및 액세스할 수 있고 리소스 패키지 내의 리소스 파일을 변경할 수 없다. On the other hand, when running an adapter package in an operational workspace (1520), the resource file may be provided as a resource package that the adapter package can only read but not write. In this case, the adapter package can reference the resource package to install and access it, but cannot modify the resource files within the resource package.

도 8은 실시 예에 따라 애플리케이션 서비스의 일종으로서 EDI 정보를 매핑하는 예를 개시한 도면이다. FIG. 8 is a diagram disclosing an example of mapping EDI information as a type of application service according to an embodiment.

개시하는 실시 예들을 여러 가지 애플리케이션 서비스를 제공할 수 있을 뿐만 아니라 여러 가지 애플리케이션 서비스를 개발하는 플랫폼 환경을 제공할 수 있다. The disclosed embodiments can provide not only various application services but also a platform environment for developing various application services.

이하에서는 이러한 애플리케이션 서비스의 일 예로서 EDI 서비스를 예를 들어 설명한다. 개시된 바로부터 당업자가 이해할 수 있듯이 실시 예를 이용하면 여러 가지 애플리케이션 서비스들을 개발 또는 제공할 수 있으므로 반드시 EDI 서비스에 한정될 필요는 없다. Below, an example of such application service is described, using EDI service as an example. As those skilled in the art will readily appreciate from the disclosure, the embodiments can be used to develop or provide a variety of application services, and are not necessarily limited to EDI services.

애플리케이션 서비스의 일종으로 EDI는 산업별로 여러 타입의 거래들과 거래 당사자들, 거래 양식들이 요구된다. 따라서, 산업별로 복잡하고 여러 타입의 거래 양태들에 개시하는 실시 예를 활용할 경우 효율적인 거래가 가능하므로 산업적 거래 활성화에 매우 효과적이다.As a type of application service, EDI requires various types of transactions, parties, and transaction formats across industries. Therefore, utilizing examples that address the complex and diverse transaction patterns of each industry enables efficient transactions, making it highly effective in stimulating industrial transactions.

이 도면은 EDI 서비스에 요구되는 여러 가지 정보 또는 문서를 거래 당사들 사이에 변환하도록 하는 애플리케이션 서비스를 예시한다.This diagram illustrates an application service that converts various information or documents required for EDI services between trading parties.

EDI는 산업에 따라 특정 규칙과 규정을 따라 매우 다양한 형식이 있으며 이러한 형식에 따라 EDI 문서를 작성하고 처리해야 거래가 성립될 수 있다. EDI 서비스는 전자 상거래 뿐만 아니라 운송, 물류, 금융이나 보험 등의 다양한 산업에 따른 형식이 있다. EDI는 국제 표준화 기구인 ISO 등에서 표준화되고, UN/EDIFACT (United Nations/Electronic Data Interchange for Administration, Commerce and Transport)나 ANSI(American National Standards Institute) X.12에 의해 규정되고 관리된다. EDI has a wide variety of formats, each with specific rules and regulations for each industry. EDI documents must be created and processed according to these formats to complete a transaction. EDI services vary across various industries, including e-commerce, transportation, logistics, finance, and insurance. EDI is standardized by international standards organizations such as ISO and is regulated and managed by UN/EDIFACT (United Nations/Electronic Data Interchange for Administration, Commerce, and Transport) and ANSI (American National Standards Institute) X.12.

주문과 공급을 수행하는 거래의 특성에 따라 서로 다른 데이터나 정보를 포함하는 다른 형태의 문서가 사용될 수 있고 거래 당사자가 사용하는 시스템도 다를 수 있다. Depending on the nature of the transaction, which involves ordering and supplying, different forms of documents containing different data or information may be used, and the systems used by the parties to the transaction may also be different.

EDI 서비스를 위해서는 두 거래 당사자들 사이의 문서의 매핑(mapping)되어야 한다. For EDI service, documents between two trading parties must be mapped.

이 도면의 예는 EDI 서비스를 제공하기 위해 데이터를 포함한 문서를 범용 시스템으로 변환하는 프로그램인 매핑 엔진(advanced mapping engine)을 개념적으로 개시한다. This drawing example conceptually discloses an advanced mapping engine, a program that transforms documents containing data into a general-purpose system to provide EDI services.

예를 들어 거래 당사자가 거래에 필요한 EDI 문서와 EDI 스키마(schema)를 제공할 수 있다. 이러한 데이터는 입력된 스키마에 따른 EDI 데이터(즉, EDI 문서)에 포함된 바이트나 스트링을 디코딩하여 디코딩된 데이터(unmarshal data)로 변환할 수 있다.For example, a trading partner may provide an EDI document and EDI schema required for the transaction. This data can be decoded into unmarshal data by decoding the bytes or strings contained in the EDI data (i.e., the EDI document) according to the input schema.

매핑 엔진은 변환할 데이터와 변환될 데이터의 스키마들을 기반으로 스키마들을 서로 매핑하는 기준 정보를 포함할 수 있다. 여기서는 매핑 기준 정보를 매핑 스크립트라고 호칭한다.A mapping engine may include reference information for mapping schemas based on the data to be converted and the schemas of the data being converted. This mapping reference information is referred to herein as a mapping script.

매핑 기준 정보는 언마샬링(Unmarshalling)한 데이터를 타겟한 다른 형식의 문서로 변환하기 위한 것으로 스크립트 형식을 가질 수 있다. The mapping criteria information can be in script format to convert the unmarshalled data into a document of a different format targeted at other purposes.

매핑 엔진은 EDI 데이터와 EDI 스키마가 디코딩된 데이터(unmarshal data)를 일반적인 문서의 인터페이스로 사용될 수 있는 특정 포맷의 파일(여기서는 제이슨(JSON) 파일을 예시)과 그에 상기 특정 포맷의 파일에 대한 스키마(여기서는 제이슨(JSON) 스키마로 예시)로 매핑하여 변환할 수 있다. A mapping engine can convert EDI data and EDI schema decoded data (unmarshal data) into a file of a specific format that can be used as an interface to a general document (here, a JSON file as an example) and into a schema for the file of the specific format (here, a JSON schema as an example).

보다 상세하게 EDI 스키마로서 SEF(Standard Exchange Format) 표준의 EDI 포맷을 이용하거나 EXF(EDI Exchange Format) 등의 EDI 포맷을 이용할 수 있다.In more detail, the EDI format of the SEF (Standard Exchange Format) standard can be used as an EDI schema, or an EDI format such as EXF (EDI Exchange Format) can be used.

변경된 형식의 파일은 일반적인 파일(flat file), 제이슨(JSON), XML 등의 형식의 파일일 수 있다. The changed format file can be a flat file, JSON, XML, etc.

변경된 형식의 파일에 대해 각 파일 타입별 마샬링(Marshalling) 또는 언마샬링(Unmarshalling)을 수행하면, 주석(annotation)으로 정의된 스키마 파일로 변환될 수 있다. 즉, 변환될 데이터에 대응되는 타입과, 특정 데이터 타입에 대응되는 주석(annotation)이 정의된 스키마로 마샬링 또는 언마샬링된 결과를 얻을 수 있다. When marshalling or unmarshalling each file type for a file in a changed format, it can be converted into a schema file defined by annotations. In other words, the marshalling or unmarshalling result can be obtained as a schema that defines the type corresponding to the data to be converted and the annotation corresponding to the specific data type.

실시 예는 이러한 매핑 엔진을 통해 스키마를 생성하고, 매핑 기준 정보인 매핑 스크립트를 작성할 수 있는 그래픽 인터페이스를 사용자에게 제공할 수 있다. The embodiment may provide a user with a graphical interface that enables the user to create a schema through such a mapping engine and write a mapping script, which is mapping reference information.

도 9는은 실시 예에 따라 통합 패키지를 이용하여 애플리케이션 서비스를 제공하는 예를 개시한 도면이다. FIG. 9 is a diagram showing an example of providing an application service using an integrated package according to an embodiment.

실시 예에 따르면 클라이언트(310)는 원하는 파트너(320)에게 개시한 예와 같은 애플리케이션 서비스를 제공할 수 있다. 실시 예는 단순히 클라이언트(310)에서 서비스를 제공할 뿐만 아니라 클라이언트(310)가 실시 예를 이용해 직접 원하는 파트너(320)에게 커스텀마이즈된 서비스(customized service)를 제공할 수 있도록 할 수 있다.According to an embodiment, a client (310) can provide an application service, such as the example disclosed, to a desired partner (320). The embodiment can not only provide a service from the client (310), but also enable the client (310) to directly provide a customized service to a desired partner (320) using the embodiment.

여기서 애플리케이션 서비스 중 EDI 서비스를 예시하여 설명한다. 클라이언트(310)가 파트너(320)와 거래를 하기 위해 실시 예는 인스턴스 시스템에 포함되는 코디네이터(1100)와 워커노드(1300)를 제공할 수 있다. Here, an EDI service among application services is described as an example. In order for a client (310) to transact with a partner (320), the embodiment may provide a coordinator (1100) and worker node (1300) included in the instance system.

애플리케이션 서비스 매니저(2100)는 클라이언트(310)와 파트너(320)가 인스턴스 시스템을 통해 거래에 필요한 정보를 교환할 수 있도록 인스턴스 시스템을 제공하고 관리할 수 있다.The application service manager (2100) can provide and manage an instance system so that a client (310) and a partner (320) can exchange information necessary for a transaction through the instance system.

개시한 바와 같이 클라이언트(310)에는 에이전트(미도시)가 설치되어 있고, 에이전트를 통해 거래에 필요한 정보인 EDI 정보를 요청할 수 있다. 이 경우 EDI 정보의 요청은 HTTP 트래픽으로 전송될 수 있다. As disclosed, the client (310) has an agent (not shown) installed, and can request EDI information, which is information required for a transaction, through the agent. In this case, the request for EDI information can be transmitted as HTTP traffic.

인스턴스 시스템의 코디네이터(1100)는 클라이언트(310)로부터 전달된 EDI 정보를 포함한 HTTP 요청을 지정된 채널로 매핑하고 해당 워커노드에 전달한다. 위의 예에서 코디네이터(1100)는 URL 정보를 포함한 HTTP 요청으로 채널의 등록을 조회하고 관리하는 예를 개시하였다. 코디네이터(1100)는 HTTP 요청을 채널 서비스로 변경하고 채널 서비스를 수신할 수 있는 해당 워커노드(1300)의 에이전트 어댑터(1350)로 전달한다. The coordinator (1100) of the instance system maps an HTTP request containing EDI information transmitted from a client (310) to a designated channel and transmits it to the corresponding worker node. In the example above, the coordinator (1100) disclosed an example of querying and managing channel registration with an HTTP request containing URL information. The coordinator (1100) converts the HTTP request into a channel service and transmits it to the agent adapter (1350) of the corresponding worker node (1300) capable of receiving the channel service.

에이전트 어댑터(1350)는 채널 서비스를 통해 요청된 EDI 정보를 애플리케이션 서비스 매니저(2100)의 메시지 박스(2110)로 전달한다. The agent adapter (1350) transmits the requested EDI information through the channel service to the message box (2110) of the application service manager (2100).

애플리케이션 서비스 매니저(2100)의 메시지 박스(2110)는 에이전트 어댑터(1350)로부터 전달된 EDI 정보를 클라이언트 인박스(2111)에 저장할 수 있다. The message box (2110) of the application service manager (2100) can store EDI information transmitted from the agent adapter (1350) in the client inbox (2111).

애플리케이션 서비스 매니저(2100)의 메시지 박스(2110)는 워커노드(1300)의 통합 패키지(integration package)(1380)로 요청된 EDI 정보를 전달한다.The message box (2110) of the application service manager (2100) transmits the requested EDI information to the integration package (1380) of the worker node (1300).

여기서 통합 패키지(integration package)(1380)는 개발 아이템이 통합된 프로그램의 묶음으로써, 여러 가지 개발 플로우(flow)들, 자바 또는 스크립트 프로그램들을 포함한다. 통합 패키지(integration package)(1380)는 이러한 개발 아이템을 조합하여 사용하도록 허용하고 통합적인 요구사항을 해결하도록 할 수 있다. Here, the integration package (1380) is a bundle of integrated development items, including various development flows and Java or script programs. The integration package (1380) allows for the combined use of these development items and can address integrated requirements.

통합 패키지(integration package)(1380)는 메시지 박스(2110), 워커노드의 어댑터들(1350, 1370, 1390) 및 코디네이터의 채널 서비스과 정보를 교환하여 클라이언트(310)와 파트너(320)가 거래할 수 있는 여러 가지 요구사항을 구현하도록 할 수 있다.The integration package (1380) can implement various requirements that can be traded between the client (310) and the partner (320) by exchanging information with the message box (2110), adapters of the worker nodes (1350, 1370, 1390) and the channel service of the coordinator.

통합 패키지(integration package)(1380)는 분산된 채널 서비스에 따라 특정 채널이 호출된 경우 패키지내 필요한 정보 교환을 위한 라우팅을 생성 및 등록할 수 있어 사용자의 요구 사항을 해결할 수 있다. The integration package (1380) can address user requirements by creating and registering routing for exchanging necessary information within the package when a specific channel is called according to a distributed channel service.

통합 패키지(integration package)(1380)에 대한 요소와 활용 예는 이하에서 상세히 개시한다. The elements and usage examples for the integration package (1380) are described in detail below.

통합 패키지(integration package)(1380)는 메시지 박스(2110)의 클라이언트 인박스(2111)에 저장된 EDI 정보를 매핑 어댑터(1370)에 전달할 수 있다.The integration package (1380) can transmit EDI information stored in the client inbox (2111) of the message box (2110) to the mapping adapter (1370).

매핑 어댑터(1370)는 통합 패키지(integration package)(1380)로부터 전달받은 클라이언트(310)의 EDI 정보를 언마샬링(unmarshalling)하고 이를 파트너(320)가 필요한 정보로 매핑한 EDI 변환 데이터로 출력한다. The mapping adapter (1370) unmarshalls the EDI information of the client (310) received from the integration package (1380) and outputs it as EDI conversion data mapped to information required by the partner (320).

통합 패키지(integration package)(1380)가 매핑 어댑터(1370)가 출력한 EDI 변환 데이터를 수신하면 메시지 박스(2110)의 파트너 아웃박스(2113)에 전송하여 저장하고, 이를 EDI 어댑터(1390)로 전달할 수 있다.When the integration package (1380) receives the EDI conversion data output by the mapping adapter (1370), it can transmit and store it in the partner outbox (2113) of the message box (2110) and forward it to the EDI adapter (1390).

EDI 어댑터(1390)는 통합 패키지(integration package)(1380)로부터 출력되거나 파트너 아웃박스(2113)에 저장된 EDI 변환 데이터를, 표준화된 형식, 예를 들면 UN/EDIFACT나 ANSXI X.12 등의 형식으로 변환할 수 있다. The EDI adapter (1390) can convert EDI conversion data output from the integration package (1380) or stored in the partner outbox (2113) into a standardized format, such as UN/EDIFACT or ANSXI X.12.

EDI 어댑터(1390)는 표준화된 EDI 변환 데이터를 메시지 박스(2110)의 파트너 아웃박스(2113)에 전송하여 저장할 수도 있다.The EDI adapter (1390) may also transmit and store standardized EDI conversion data in the partner outbox (2113) of the message box (2110).

코디네이터(1100)는 메시지 박스(2110)의 파트너 아웃박스(2113)에 저장되거나 EDI 어댑터(1390)가 변환한 표준화된 EDI 변환 데이터를 채널 서비스를 통해 수신하고, 이를 파트너(320)에 HTTP 트래픽으로 변환하여 전송할 수 있다.The coordinator (1100) can receive standardized EDI conversion data stored in the partner outbox (2113) of the message box (2110) or converted by the EDI adapter (1390) through the channel service, and convert it into HTTP traffic and transmit it to the partner (320).

결과적으로 파트너(320)는 클라이언트(310)가 전달한 EDI 정보를 표준화된 EDI 변환 데이터를 수신할 수 있다. 파트너(320)가 클라이언트(310)에 자신의 EDI 정보를 전달하는 경우에도 유사한 프로세스에 따라 데이터를 전달할 수 있다. As a result, the partner (320) can receive standardized EDI conversion data for the EDI information transmitted by the client (310). When the partner (320) transmits its own EDI information to the client (310), the data can be transmitted according to a similar process.

따라서, 클라이언트(310)와 파트너(320)는 개시하는 실시 예에 따라 EDI 서비스와 같은 애플리케이션 서비스를 쉽게 이용할 수 있고, 표준화된 형식을 모르거나 거래 상대방이 요청하는 문서와 정보를 정확하게 이해하지 못하더라도 표준화된 형식에 따라 용이하게 거래를 진행할 수 있다. Accordingly, clients (310) and partners (320) can easily use application services such as EDI services according to the disclosed embodiments, and can easily conduct transactions according to the standardized format even if they do not know the standardized format or do not accurately understand the documents and information requested by the transaction counterparty.

클라이언트(310) 또는 파트너(320)는 자신의 워크스페이스에서 여러 소프트웨어 패키지들을 개발하거나 이용할 수 있고, 이를 통합 패키지(1380)에 연계시킬 수도 있다. A client (310) or partner (320) can develop or use multiple software packages in their workspace and link them to an integrated package (1380).

실시 예는 이러한 패키지의 개발과 기존 패키지와의 연결도 매우 쉬운 인터페이스를 통해 제공할 수 있고, 개발된 패키지도 판매, 공유, 별도 제공할 수도 있다. The embodiment can be provided through a very easy interface for developing such packages and connecting them with existing packages, and the developed packages can also be sold, shared, or provided separately.

도 10은 개시한 애플리케이션 서비스 제공하는 예에 따른 플랫폼의 인터페이스의 일 예를 도시한 도면이다. FIG. 10 is a drawing illustrating an example of an interface of a platform according to an example of providing an application service disclosed.

이 도면은 사용자가 애플리케이션 서비스를 제공하는 예에 따른 플랫폼을 접속한 경우 플랫폼이 제공하는 인터페이스를 예시한다. This diagram illustrates the interface provided by the platform when a user accesses the platform, for example, to provide application services.

클라이언트가 개시하는 시스템에 접속하는 경우, 플랫폼은 사용자 전용의 워크스페이스와 관련된 사용자 인터페이스 메뉴를 제공할 수 있다. When a client connects to a system that initiates a platform, the platform may present a user interface menu associated with the user's dedicated workspace.

클라이언트는, 이 도면에서 예시한 바와 같이 매니저 시스템이 제공하는 인터페이스 플랫폼을 통해 인스턴스 시스템을 이용하거나 또는 URL 등을 포함하는 HTTP를 이용해서 인스턴스 시스템에 접속할 수 있다.A client can access the instance system through an interface platform provided by the manager system as illustrated in this drawing, or by using HTTP including a URL.

이 도면의 예에서 매니저 시스템이 제공하는 인터페이스 플랫폼은 사용자 전용 워크스페이스(workspace)(151), 메시지 박스(Message box)(152), 파일 전송(File transfer)(153), 이동단말기로 전송한 메시지(SMS)(154), 및 정보 교환이 EDI와 관련된 경우 해당 표준 매핑에 대한 정보(155)에 대한 옵션을 제공할 수 있다. In the example of this drawing, the interface platform provided by the manager system may provide options for a user-specific workspace (151), a message box (152), file transfer (153), a message sent to a mobile terminal (SMS) (154), and information on the corresponding standard mapping if the information exchange involves EDI (155).

워크스페이스(workspace)(151)는 클라이언트가 자신의 워크스페이스를 이용할 수 있는 메뉴이고, 메시지 박스(Message box)(152)는 클라이언트와 관련된 메시지를 저장한다. The workspace (151) is a menu that allows the client to use his/her own workspace, and the message box (152) stores messages related to the client.

파일 전송(File transfer)(153)은 인스턴스 시스템을 통해 송수신된 파일 전송 방식 또는 히스토리를 확인할 수 있다.File transfer (153) can check the file transfer method or history sent and received through the instance system.

사용자는 자신이 사용하거나 개발한 패키지(161) 또는 구매한 패키지(162) 등을 사용자 인터페이스 메뉴를 선택하여 확인할 수 있다. Users can check the packages they use or develop (161) or the packages they have purchased (162) by selecting the user interface menu.

도 11은 개시한 애플리케이션 서비스 제공하는 예에 따른 플랫폼의 인터페이스의 다른 일 예를 도시한 도면이다. FIG. 11 is a diagram illustrating another example of an interface of a platform according to an example of providing an application service disclosed.

이 도면은 클라이언트가 개시한 애플리케이션 서비스를 제공하는 예에 따른 플랫폼을 접속하고 자신의 워크스페이스를 선택한 경우 볼 수 있는 사용자 인터페이스 메뉴를 예시한다. This diagram illustrates the user interface menus that can be viewed when a client accesses a platform providing application services initiated by the client and selects their workspace.

클라이언트는 자신이 생성한 워크스페이스(171), 그 워크스페이스와 관련된 인스턴스 시스템(172), 워크스페이스별 생성일자(173), 워크스페이스의 설명 정보(174), 워크스페이스의 활성화 여부(175), 워크스페이스와 관련된 서비스(176) 와 패키지(177) 등을 확인하고 이용할 수 있다. The client can check and use the workspace (171) it created, the instance system (172) related to the workspace, the creation date for each workspace (173), the description information of the workspace (174), whether the workspace is activated (175), and the services (176) and packages (177) related to the workspace.

이하에서는 애플리케이션이 서로 다른 시스템을 연결하는 애플리케이션일 경우 서로 다른 시스템과 연동이 가능한 애플리케이션을 제공할 수 있는 실시 예를 개시한다. 실시 예의 워크스페이스를 통해 개발된 소프트웨어 또는 애플리케이션을 여러 클라이언트에 공유되어 사용될 수 있다. 만약 클라이언트 또는 파트너가 사용하는 시스템이 서로 다른 경우 클라이언트(또는 파트너)가 개발한 애플리케이션은 파트너(또는 클라이언트)의 시스템에서 사용 가능해야 한다. The following describes an embodiment that provides an application capable of interoperability with different systems, when the application connects different systems. Software or applications developed through the workspace of the embodiment can be shared and used by multiple clients. If the client and partner use different systems, applications developed by the client (or partner) must be available on the partner's (or client's) system.

실시 예에 따른 인스턴스 시스템은 이러한 서로 다른 시스템을 통합할 수 있는 프레임워크를 제공할 하늘 수 있는데 그 실시 예를 개시하면 다음과 같다.The instance system according to the embodiment can provide a framework for integrating these different systems, and the embodiment is disclosed as follows.

도 12은 실시 예에 따른 애플리케이션 서비스 제공 장치가 서로 다른 시스템을 통합할 수 있는 프레임워크를 제공하는 예를 개시한 도면이다. FIG. 12 is a drawing disclosing an example of an application service providing device according to an embodiment providing a framework that can integrate different systems.

실시 예에 따른 애플리케이션 서비스 제공 장치는 서로 다른 시스템에서 실행 가능한 애플리케이션을 제공하는 프레임워크를 포함할 수 있다. 따라서 이러한 통합 프레임워크는 서로 다른 시스템의 사용자들이 서로 연결할 수 있는 애플리케이션을 제공할 수 있어 위에서 예시한 EDI 서비스 등을 제공하는데 효율적이고 이상적이다.The application service providing device according to the embodiment may include a framework that provides applications executable on different systems. Therefore, this integrated framework can provide applications that enable users of different systems to connect with each other, making it efficient and ideal for providing EDI services, such as the ones exemplified above.

이 도면은 서로 다른 시스템들을 통합할 수 있는 프레임워크로서 통합 시스템 아키텍처를 예시한다. 실시 예의 프레임워크가 제공하는 통합 시스템 아키텍처는 하나 이상의 라우트 엔진을 포함한다.This diagram illustrates an integrated system architecture as a framework capable of integrating different systems. The integrated system architecture provided by the framework of the embodiment includes one or more route engines.

라우트 엔진은 서로 다른 시스템인 엔드포인트들과 엔드포인트들 사이에 수행되는 일(task)인 프로세서를 연결하는 라우트를 제공한다. The route engine provides routes that connect endpoints, which are different systems, and processors, which are tasks performed between endpoints.

라우트는 시스템 간의 연동 인터페이스를 설명할 수 있으며 이 예에서 라우트 엔진은 라우트 1, 2, …, N을 제공하는 예를 개시하였다.Routes can describe the interface between systems, and in this example, the route engine provides routes 1, 2, …, N.

프로세서는 송수신 시스템들, 즉 엔드포인트들 사이에 수행되어야 하는 데이터처리를 의미하는데, 이 예에서는 라우터 프로세서와 메시지 필터 프로세서를 예시하였다. A processor refers to data processing that must be performed between transmitting and receiving systems, i.e., endpoints. In this example, a router processor and a message filter processor are exemplified.

컴포넌트는 연동하고자 하는 송수신 시스템의 어댑터를 의미하는데, 이 예에서 통합 시스템 아키텍처는 파일, JMS, HTTP 등의 컴포넌트들을 이용하여 엔드포인트에 대한 통일적인 인터페이스 제공하여 서로 다른 시스템을 연결하는 예를 개시한다. A component refers to an adapter of a transmitting and receiving system to be linked. In this example, the integrated system architecture provides an example of connecting different systems by providing a unified interface to endpoints using components such as files, JMS, and HTTP.

컴포넌트로부터 데이터를 가져오거나 수신받거나(또는 호출받거나)는 것을 컨슈머(consumer)라고 하고, 컴포넌트로부터 데이터를 호출하거나, 전송 또는 조회하는 것을 프로듀서(producer)라고 한다. A component that gets or receives data from (or is called by) a component is called a consumer, and a component that calls, transmits, or retrieves data from a component is called a producer.

메시지(message)는 시스템의 통신을 위해 주고받는 데이터로서 메시지는 본문(body), 헤더(header) 및 첨부(attachments)를 포함할 수 있다.A message is data exchanged for system communication, and can include a body, header, and attachments.

익스체인지(exchange)는 시스템 간 주고받는 메시지를 담는 컨테이너로서, 라우트의 흐름(flow) 시작 시에 생성되어 흐름 종료 시 까지만 라이프 사이클이 유지되는 객체이다.An exchange is a container that holds messages exchanged between systems. It is an object that is created when the route flow begins and its life cycle lasts only until the flow ends.

이와 같은 통합 시스템 아키텍처를 이용하면 서로 다른 시스템에 사용될 수 있는 애플리케이션들을 생성하고 통합 패키지(integration package)로 개발할 수 있다. 이러한 예로서 위의 예에서 통합 패키지(integration package)(1380)를 예시한 바 있다.This integrated system architecture allows for the creation of applications that can be used across different systems and developed as an integration package. An example of this is the integration package (1380) illustrated in the example above.

통합 시스템 아키텍처를 기반으로 개발된 통합 패키지(integration package)는, 실시 예에 따른 플랫폼이 제공하는 서비스나 어댑터 패키지와 연계하여 통합 요구사항을 해결할 수 있는 통합 플로우(integration flow)를 제공할 수 있다. An integration package developed based on an integrated system architecture can provide an integration flow that can resolve integration requirements by linking with services or adapter packages provided by a platform according to an embodiment.

통합 패키지(integration package)는 통합 시스템 아키텍처의 플로우 내 필요한 프로세스를 구현하고, 여러 가지 데이터 변환이 가능한 스크립트(script)나 자바(java) 프로그램을 제공할 수 있다.An integration package implements the necessary processes within the flow of the integrated system architecture and can provide scripts or Java programs capable of various data transformations.

클라이언트(또는 파트너)는 실시 예에 따른 플랫폼을 기반으로 위에서 예시한 통합 시스템 아키텍처를 이용하여 자신의 서비스 제공에 필요한 통합 패키지들을 생성할 수 있다. Clients (or partners) can create integrated packages necessary for their service provision using the integrated system architecture exemplified above based on the platform according to the embodiment.

실시 예에 따른 플랫폼은, 클라이언트(또는 파트너)가 통합 플로우를 구현하는 통합 패키지를 그래픽 기반의 코딩으로 아주 쉽게 개발할 수 있는 환경도 제공할 수 있다. The platform according to the embodiment can also provide an environment in which a client (or partner) can very easily develop an integrated package that implements an integrated flow using graphical coding.

이하에서는 실시 예에 따른 플랫폼의 통합 시스템 아키텍처가 제공하는 통합 패키지(integration package)로서 통합 플로우(integration flow)를 개발할 수 있는 환경을 예시한다. Below, an environment in which an integration flow can be developed as an integration package provided by the integrated system architecture of the platform according to an embodiment is exemplified.

애플리케이션 서비스 제공하는 장치의 실시 예에 따른 플랫폼은 라이브러리를 이용하여 그래픽 기반의 개발 환경을 제공할 수 있다.A platform according to an embodiment of a device providing application services can provide a graphic-based development environment using a library.

클라이언트(또는 파트너)는 실시 예를 이용하여 그래픽 기반의 통합 플로우(integration flow)를 개발할 수 있는데 통합 플로우(integration flow)는 크게 5개의 기능을 포함할 수 있다. Clients (or partners) can use the examples to develop graphical integration flows, which can broadly include five functions.

여기서 통합 플로우(integration flow)가 포함하는 5개의 기능을 커넥터(connector), 서비스(service), 프로세서(processor), 컨트롤 플로우(control flow), 모디파이어(modifier)라고 호칭한다. 이러한 명칭은 예시적인 것이며 각 기능을 상세하게 설명하면 다음과 같다. Here, the five functions included in the integration flow are referred to as connectors, services, processors, control flows, and modifiers. These names are merely examples, and each function is described in detail below.

도 13은 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 커넥터 및 서비스를 그래픽 기반으로 코딩하는 예를 나타낸 것이다. Figure 13 shows an example of graphically coding connectors and services among integration flow functions when developing an integration flow based on an embodiment.

이 도면 (a)에서 커넥터(connector)는 위에서 예시한 통합 시스템 아키텍처의 라우트의 시작을 나타내는 From 그래픽 요소를 포함할 수 있다. In this drawing (a), the connector may include a From graphic element indicating the start of a route in the integrated system architecture illustrated above.

커넥터(connector)는 서비스 또는 어댑터 등의 호출, 데이터의 저장 등, 개발 환경에서 개발되는 플로우가 구현될 경우, 외부로의 동작을 정의하는 To 그래픽 요소를 포함할 수 있다.A connector can include a To graphic element that defines external actions, such as calling a service or adapter, storing data, etc., when a flow developed in a development environment is implemented.

이 도면에서 예시하는 바와 같이 실시 예가 제공하는 그래픽 기반의 개발 환경에서 라우트의 입출력(From/To)을 그래픽 코딩으로 표현할 수 있는 커넥터(connector)를 이용하여 통합 플로우(integration flow)를 개발할 수 있다. As illustrated in this drawing, an integration flow can be developed using a connector that can express the input/output (From/To) of a route in graphical coding in a graphical development environment provided by the embodiment.

커넥터(connector)를 조금 더 상세하게 설명하면, 커넥터는 컨슈머(consumer)로서 특정 데이터를 호출(From Connector)하고, 프로듀서(producer)로서 플로우를 통해 처리한 데이터를 통합 플로우(integration flow) 외부에 제공(To Connector)할 수 있다.To explain the connector in a little more detail, the connector can call specific data as a consumer (From Connector) and, as a producer, provide data processed through the flow to outside the integration flow (To Connector).

컨슈머(consumer)는, 통합 플로우가 특정 데이터를 호출(From Connector)하는 경우로서 애플리케이션 패키지 내 라우트(route)를 호출하는 다이렉트(direct), 작업 스케줄러에 의해 주기적으로 데이터를 호출하는 타이머(timer)가 있을 수 있다.A consumer can be a direct caller that calls a route within an application package when an integration flow calls specific data (From Connector), or a timer that periodically calls data by a task scheduler.

또한 통합 플로우가 특정 데이터를 호출(From Connector)하는 다른 경우로서, 라우트를 채널로 등록하고 채널이 호출되면 라우트를 시작하는 채널(channel), 주기적으로 미처리된 메시지를 확인하고 미처리된 메시지가 있는 경우 라우트를 시작하는 메시지박스(message box), 또는 등록된 FTP 서비스 경로에 문서가 있는지 확인하고 문서가 존재할 경우 라우트를 시작하는 에프티피(FTP)가 있을 수 있다. There may also be other cases where the integration flow calls (From Connector) specific data, such as a channel that registers a route as a channel and starts a route when the channel is called, a message box that periodically checks for unprocessed messages and starts a route if there are any, or an FTP that checks if there are documents in the registered FTP service path and starts a route if there are documents.

이러한 컨슈머(consumer)는 통합 패키지 내 라우트 식별자(Route ID), 패키지 설치 시점에 라우트의 시작 여부를 나타내는 오토스타트(Auto Start), 패키지 설치 해당 라우트의 시작 순서를 나타내는 스타트 오더(Start Order) 등의 옵션을 포함할 수 있다.These consumers can include options such as a Route ID within the unified package, Auto Start, which indicates whether the route should be started at package installation time, and Start Order, which indicates the start order of the corresponding routes upon package installation.

프로듀서(producer)는, 통합 플로우의 수행 결과로써 커넥터의 외부 출력 동작(To connector)을 의미한다. 프로듀서(producer)의 종류로서 동일한 애플리케이션 패키지 내 다른 다이렉트 라우트를 호출하는 것을 의미하는 다이렉트(direct), 메시지 박스에 문서를 저장하는 것을 의미하는 메시지 박스(message box)이 있을 수 있다. 또한, 프로듀서(producer)로서 워크스페이스 내에 다른 채널을 호출하는 것을 의미하는 채널(channel), 또는 등록된 FTP 서비스로 문서를 전송하는 것을 의미하는 에프티피(FTP)가 있을 수 있다. A producer represents the external output action (To connector) of a connector as a result of the execution of an integrated flow. Producer types include "direct," which refers to calling another direct route within the same application package, and "message box," which refers to saving a document in a message box. Additionally, there may be "channel," which refers to calling another channel within the workspace as a producer, or "FTP," which refers to transferring a document to a registered FTP service.

따라서 이 도면의 예시와 같이 그래픽 코딩으로 라우트의 입출력(From connector/To connector) 코딩 요소를 포함하는 커넥터(connector)를 이용하여 통합 플로우(integration flow)를 개발할 수 있다. Therefore, as in the example of this drawing, an integration flow can be developed using a connector that includes the input/output (From connector/To connector) coding elements of the route with graphic coding.

이 도면의 (b)는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 서비스를 그래픽 기반으로 코딩하는 예를 나타낸 것이다. (b) of this drawing shows an example of graphically coding a service among the integration flow functions when developing an integration flow based on an embodiment.

실시 예에 따라 그래픽 기반으로 개발될 수 있는 통합 플로우(integration flow)는 서비스 블록을 이용하여 시각적인 인터페이스를 기반으로 코딩될 수 있다. An integration flow that can be developed graphically according to an embodiment can be coded based on a visual interface using service blocks.

이 도면의 예에서 서비스 블록은, 그래픽으로 제공되는 getNextControlNumber 요소, isDuplicatedControlNumber 요소, putUsingConrolNumber 요소, remoteCache 요소 등을 포함할 수 있다. In the example of this drawing, the service block may include a getNextControlNumber element, an isDuplicatedControlNumber element, a putUsingControlNumber element, a remoteCache element, etc., which are provided graphically.

getNextControlNumber 요소는 새로운 컨트롤 넘버를 발급받는 것을 의미하고 isDuplicatedControlNumber 요소는 컨트롤넘버의 중복 여부 확인하는 요소이다. The getNextControlNumber element means issuing a new control number, and the isDuplicatedControlNumber element is an element that checks whether the control number is duplicated.

이 도면에서 컨트롤넘버가 중복되는 경우(True)와 중복되지 않는 경우(False)를 같이 정의할 수 있다.In this drawing, you can define whether the control numbers are duplicated (True) or not (False).

통합 플로우를 개발하는 데 있어서 서비스 블록 중, putUsingConrolNumber 요소는 사용된 컨트롤 넘버를 스토리지에 저장하여 중복여부 확인에 사용하고, remoteCache 요소는 워크스페이스의 캐시서비스에 접근하는 것을 예시한다. Among the service blocks in developing an integrated flow, the putUsingControlNumber element stores the used control number in storage and uses it to check for duplication, and the remoteCache element exemplifies accessing the workspace's cache service.

따라서 이 도면의 예시와 같은 서비스 블록을 이용하여 통합 플로우(integration flow)를 그래픽 기반으로 코딩할 수 있다.Therefore, integration flows can be graphically coded using service blocks such as the example in this drawing.

도 14는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 프로세서, 컨트롤 플로우(Control flow) 및 모디파이어(modifier)를 그래픽 기반으로 코딩하는 예를 나타낸 것이다. Figure 14 shows an example of graphically coding the processor, control flow, and modifier among the integration flow functions when developing an integration flow based on an embodiment.

실시 예에 따라 그래픽 기반으로 개발될 수 있는 통합 플로우(integration flow)는 프로세서 블록을 이용하여 시각적인 인터페이스를 기반으로 코딩될 수 있다. An integration flow that can be developed graphically according to an embodiment can be coded based on a visual interface using processor blocks.

이 도면의 예 (a) 에서 프로세서 블록은 그래픽으로 제공되는 log 요소, process 요소, xslt 요소, groovy 요소 및 delay 요소 등을 포함할 수 있다. In example (a) of this drawing, the processor block may include a log element, a process element, an xslt element, a groovy element, and a delay element, which are provided graphically.

log 요소는 플로우 실행 시에 필요한 사항을 패키지 로그에 남기도록 하는 것으로 패키지 로그는 패키지의 실행 상태를 모니터링하는 어댑터에서 확인할 수 있다. The log element leaves the necessary information in the package log when the flow is executed. The package log can be checked by the adapter that monitors the execution status of the package.

process 요소는 업로드한 자바(Jar) 패키지 아이템에 등록된 Bean의 메소드를 호출하여 커스텀(custom) 처리를 수행할 수 있도록 한다.The process element allows you to perform custom processing by calling the method of a Bean registered in an uploaded Java (Jar) package item.

xslt 요소는 XSLT 패키지아이템을 선택하여 XSLT 변환을 수행하도록 할 수 있다.The xslt element allows you to select an XSLT package item to perform an XSLT transformation.

groovy 요소는 Groovy 패키지 아이템을 선택하여 스크립트를 호출할 수 있도록 할 수 있다. The groovy element allows you to call a script by selecting a Groovy package item.

delay 요소는 플로우의 라우트를 잠시 지연시키도록 할 수 있다. The delay element can be used to delay the flow's route for a short period of time.

따라서 이 도면의 예시와 같은 프로세서 블록을 이용하여 통합 플로우(integration flow)를 그래픽 기반으로 코딩할 수 있다.Therefore, integration flows can be graphically coded using processor blocks such as the example in this drawing.

실시 예에 따라 그래픽 기반으로 개발될 수 있는 통합 플로우(integration flow)는 컨트롤 플로우(Control flow) 블록을 이용하여 시각적인 인터페이스를 기반으로 코딩될 수 있다. An integration flow that can be developed graphically according to an embodiment can be coded based on a visual interface using a control flow block.

이 도면의 예 (b) 에서 컨트롤 플로우(Control flow) 블록은 그래픽으로 제공되는 split 요소, for 요소, while 요소, xslt 요소, If 또는 Switch-Case 요소 및 Try-Catch 요소 등을 포함할 수 있다. In example (b) of this drawing, the Control flow block may include a split element, a for element, a while element, an xslt element, an If or Switch-Case element, and a Try-Catch element, which are provided graphically.

split 요소는 플로우 실행 시에 필요한 사항을 패키지 로그에 남기도록 하는 것으로 패키지 로그는 패키지의 실행 상태를 모니터링하는 어댑터에서 확인할 수 있다. split 요소는 하나의 통합된 문서(Exchange)를 여러 Exchange로 분할해서 처리할 수 있는 기능으로서, Delimiter, Xpath, Bean 방식을 지원할 수 있다.The split element records the necessary information during flow execution in the package log, which can be checked by the adapter that monitors the package execution status. The split element is a function that can split a single integrated document (Exchange) into multiple Exchanges for processing, and can support Delimiter, XPath, and Bean methods.

for 요소는 메시지를 여러 번 처리할 경우 사용하는 것으로서, 각 반복마다 다른 방식으로 처리할 수 있는 기능을 제공한다.The for element is used when processing a message multiple times, and provides the ability to process it in a different way for each iteration.

While 요소는 Simple 표현식이 false 또는 null로 평가될 때까지 루프하는 while 루프를 활성화하는 기능을 제공한다.The While element provides the ability to activate a while loop that loops until a Simple expression evaluates to false or null.

If 또는 Switch-Case 요소는 메시지 교환의 컨텐츠를 기반으로 메시지를 올바른 대상으로 라우팅할 수 있도록 하는 기능을 제공한다.The If or Switch-Case elements provide the ability to route messages to the correct destination based on the content of the message exchange.

Try-Catch 요소는 Java의 Try-Catch와 동일한 예외처리 기능을 지원할 수 있다. The Try-Catch element can support the same exception handling functionality as Java's Try-Catch.

따라서 예시한 컨트롤 플로우(Control flow) 블록을 이용하여 통합 플로우(integration flow)를 그래픽 기반으로 코딩할 수 있다.Therefore, the integration flow can be graphically coded using the example control flow block.

실시 예에 따라 그래픽 기반으로 개발될 수 있는 통합 플로우(integration flow)는 모디파이어(modifier)블록을 이용하여 시각적인 인터페이스를 기반으로 코딩될 수 있다. An integration flow that can be developed graphically according to an embodiment can be coded based on a visual interface using a modifier block.

이 도면의 예 (c) 에서 모디파이어(modifier) 블록은 그래픽으로 제공되는 loadProperty 요소, setProperty 요소, setHeader 요소, setBody 요소, removerHeader 요소 및 removeProperty 요소 등을 포함할 수 있다. In example (c) of this drawing, the modifier block may include a loadProperty element, a setProperty element, a setHeader element, a setBody element, a removerHeader element, and a removeProperty element, which are provided graphically.

loadProperty 요소는 설정 저장소에서 설정 노드를 가져와 Exchange Property에 저장하는 기능을 제공한다. The loadProperty element provides the ability to retrieve a settings node from a settings store and store it in an Exchange Property.

setProperty 요소는 Exchange Property에 값을 지정하는 기능을 제공할 수 있다 The setProperty element can provide the ability to assign a value to an Exchange Property.

setHeader 요소는 Exchange Message Header에 값을 지정하는 기능을 제공할 수 있다.The setHeader element can provide the ability to specify a value for an Exchange Message Header.

setBody 요소는 Exchange Message Body에 값을 지정하는 기능을 제공할 수 있다.The setBody element can provide the ability to specify values for the Exchange Message Body.

removerHeader 요소는 Exchange Message Header에서 값을 제거하는 기능을 제공할 수 있다.The removerHeader element can provide the ability to remove a value from an Exchange Message Header.

removeProperty 요소는 Exchange Property에서 값을 제거하는 기능을 제공할 수 있다.The removeProperty element can provide the ability to remove a value from an Exchange Property.

예시한 모디파이어(modifier) 블록을 이용하여 통합 플로우(integration flow)를 그래픽 기반으로 코딩할 수 있다.Integration flows can be graphically coded using the example modifier blocks.

이하에서는 위에서 개시한 실시 예에 따라 클라이언트 등의 사용자를 구분하고 각 워크스페이스를 격리할 수 있는 일 예를 개시한다. Below, an example is disclosed that can distinguish users such as clients and isolate each workspace according to the embodiment disclosed above.

워크스페이스를 이용하는 클라이언트에 제공되는 소프트웨어 패키지가 동일한 경우 클라이언트마다 동일한 소프트웨어 이미지가 실행된다면, 각각의 클라이언트들에 대해 모든 버전과 종류들의 소프트웨어 패키지들이 준비되고 제공되어야 한다. If the software packages provided to clients using the workspace are identical and the same software image is run on each client, then all versions and types of software packages must be prepared and provided for each client.

그러나 아래 개시하는 실시 예에 따르면, 동일한 소프트웨어 패키지를 이용하여 애플리케이션 서비스를 제공하더라도, 자원을 효율적으로 이용하고 클라이언트가 이용하는 워크스페이스 별로 격리된 서비스를 제공할 수 있다. However, according to the embodiments disclosed below, even if application services are provided using the same software package, resources can be used efficiently and isolated services can be provided for each workspace used by the client.

상세한 예를 개시하면 다음과 같다.A detailed example is as follows:

위에서 클라이언트 또는 파트너가 매니저 시스템이 제공하는 플랫폼을 기반으로 관련 정보를 송수신할 수 있는 채널을 이용하는 예를 개시하였다. The above example discloses a channel through which clients or partners can send and receive relevant information based on a platform provided by the manager system.

이하에서는 위와 같은 클라이언트와 파트너가 정보 보안을 유지하면서 데이터를 송수신할 수 있는 실시 예를 개시한다. 위에서 클라이언트 또는 파트너 내에 에이전트와 인스턴스 시스템이 제공하는 플랫폼 내의 에이전트 어댑터가 서로 정보를 송수신하는 예를 개시하였다. Below, we present an example of how a client and partner can exchange data while maintaining information security. The example above illustrates an example of an agent within a client or partner and an agent adapter within a platform provided by an instance system exchanging information.

이와 같이 클라이언트 또는 파트너 내에 에이전트를 설치하지 않고 접근하면 클라이언트 또는 파트너의 시스템에 보안 문제를 발생시킬 수 있다. 이런 문제를 회피하기 위해 클라이언트 또는 파트너는 에이전트를 설치할 수 있다. 또한 매니저 시스템은 클라이언트 또는 파트너 내에 설치된 에이전트를 이용하여 패치 또는 업그레이드를 용이하게 수행할 수 있다.Accessing a client or partner without installing an agent in this way can cause security issues on the client or partner's system. To avoid this issue, the client or partner can install an agent. Furthermore, the manager system can easily perform patches or upgrades using the agent installed in the client or partner.

또한 에이전트 어댑터는 데이터 송수신을 위한 프로토콜 변환이나 데이터 변환을 수행할 수 있어서 에이전트로부터 전달되는 채널 또는 데이터 송수신을 위한 프로토콜을 변환해 통신을 원활히 하도록 할 수 있다. Additionally, the agent adapter can perform protocol conversion or data conversion for data transmission and reception, thereby converting the channel transmitted from the agent or the protocol for data transmission and reception to facilitate communication.

에이전트는 설치된 클라이언트 또는 파트너 시스템에 대한 접속 정보 등을 관리할 수 있다. 이 경우 에이전트는 클라이언트 또는 파트너 시스템에 자원 접근에 대한 연결 정보를 설정할 수 있다. 예를 들어 에이전트는 설치된 시스템의 데이터베이스, 파일 시스템, 사용자 정보나 자원 접속 또는 관리 정보를 설정할 수 있다. 그리고 설정된 주기나 조건에 따라 에이전트 어댑터로부터 정보를 폴링(polling)할 수 있다. Agents can manage connection information for installed clients or partner systems. In this case, agents can configure connection information for resource access on the client or partner system. For example, agents can configure databases, file systems, user information, resource access, or management information for the installed system. They can also poll information from the agent adapter according to set cycles or conditions.

인스턴스 시스템이 제공하는 플랫폼 내의 에이전트 어댑터는 애플리케이션 패키지로서 인스턴스 시스템에 설치될 수 있다. 에이전트 어댑터는, 클라이언트 또는 파트너 시스템에 설치된 에이전트가 등록된 경우 설정된 주기나 조건에 따라 등록된 에이전트로부터 정보를 수집 또는 저장하도록 설정할 수 있다. Agent adapters within the platform provided by the instance system can be installed on the instance system as application packages. The agent adapter can be configured to collect or store information from registered agents installed on client or partner systems according to set cycles or conditions.

인스턴스 시스템의 코디네이터는 에이전트와 연결될 수 있는 채널을 설정할 수 있다. 그리고, 에이전트로부터 설정된 채널로 요청을 받으면 코디네이터는 그 채널을 매핑하여 워커 노드의 에이전트 어댑터로 전달할 수 있다.The coordinator of an instance system can establish a channel through which agents can connect. When a request is received from an agent on the established channel, the coordinator can map the channel and forward it to the agent adapter on the worker node.

클라이언트 또는 파트너의 시스템에 설치될 때 에이전트는 여러 가지 설정 정보를 가질 수 있다. 예를 들면, 에이전트 애플리케이션은, 에이전트 관련 설정 정보, 에이전트 실행 관련된 보안 키 정보, 자원 관리 설정 정보, 사용자 관리 정보 등을 포함하는 설정 정보를 가질 수 있다. When installed on a client or partner system, an agent may have various configuration information. For example, an agent application may have configuration information that includes agent-related configuration information, security key information related to agent execution, resource management configuration information, and user management information.

인스턴스 시스템의 플랫폼은 클라이언트 또는 파트너는 에이전트 애플리케이션을 다운받아 실행할 수 있는 접속 인터페이스를 제공할 수 있다. The platform of an instance system can provide a connection interface through which clients or partners can download and run agent applications.

이하에서 에이전트 또는 에이전트 어댑터의 사용자 인터페이스를 예시하고 이를 제어하는 일 예를 설명한다. Below we illustrate the user interface of an agent or agent adapter and describe an example of controlling it.

도 15는 실시 예에 따른 인스턴스 시스템의 플랫폼에서 제공하는 에이전트가 실행된 경우 에이전트의 인터페이스를 예시한 도면이다. FIG. 15 is a diagram illustrating an interface of an agent when an agent provided on a platform of an instance system according to an embodiment is executed.

클라이언트 또는 파트너는, 인스턴스 시스템의 플랫폼이 제공하는 에이전트 애플리케이션을 설치하여 에이전트 애플리케이션을 실행할 수 있다.A client or partner can run an agent application by installing the agent application provided by the platform of the instance system.

이 도면은 에이전트 애플리케이션이 실행되어 관리자 또는 사용자가 에이전트를 실행한 경우 에이전트의 인터페이스를 예시한다. This diagram illustrates the agent's interface when the agent application is running and the agent is run by an administrator or user.

클라이언트 또는 파트너의 관리자는 에이전트를 통해 현재의 상태를 나타내는 상태 메뉴(2115)를 확인할 수 있다.The client or partner's administrator can check the status menu (2115) that indicates the current status through the agent.

관리자는 상태 메뉴(2115)로부터 에이전트 공개 키 정보, 에이전트와 에이전트 어댑터를 동기화시키는 정보, 동기화 오류 시 상태 메시지 등을 확인할 수 있다. The administrator can check agent public key information, information on synchronizing agents and agent adapters, status messages in case of synchronization errors, etc. from the status menu (2115).

그리고 관리자는 상태 메뉴(2115)로부터 에이전트 어댑터에서 설정한 채널이 자원에 접속되었는지, 그 접속 시간 및 접속 상태에 대한 정보를 얻을 수 있다.And the administrator can obtain information about whether the channel set in the agent adapter is connected to the resource, the connection time, and the connection status from the status menu (2115).

클라이언트 또는 파트너의 관리자는 에이전트를 통해 관리할 수 있는 자신의 자원을 관리할 수 있는 메뉴(2120)를 이용할 수 있다. 이 도면의 예에서 자원관리(2120) 메뉴는 클라이언트 또는 파트너 시스템에 포함되어 관리될 수 있는 자원으로서 여기서는 데이터베이스, 디렉토리, SAP 시스템, 또는 IBM MQ시스템 등을 예시한다. 관리자는 자원관리(2120) 메뉴를 통해 자원을 관리하고 각 자원의 위치 정보 또는 접속 정보와, 접속 경로를 설정할 수 있다. Client or partner administrators can use a menu (2120) to manage their own resources that can be managed via agents. In the example of this diagram, the resource management (2120) menu represents resources that can be included and managed in the client or partner system, such as databases, directories, SAP systems, or IBM MQ systems. Administrators can manage resources through the resource management (2120) menu and set location information, connection information, and connection paths for each resource.

또한 클라이언트 또는 파트너의 관리자는 에이전트를 통해 에이전트 사용자를 관리할 수 사용자 관리 메뉴(2130)를 이용한다. 관리자는 사용자 관리 메뉴(2130)를 이용하여 에이전트 사용자를 관리하고 각 사용자의 권한을 설정할 수 있다. Additionally, the client or partner administrator can manage agent users through the agent using the user management menu (2130). The administrator can manage agent users and set permissions for each user using the user management menu (2130).

도 16은 실시 예에 따른 인스턴스 시스템의 플랫폼에서 제공하는 에이전트 어댑터의 인터페이스의 일 예를 예시한 도면이다. FIG. 16 is a drawing illustrating an example of an interface of an agent adapter provided on a platform of an instance system according to an embodiment.

클라이언트 또는 파트너는, 인스턴스 시스템의 플랫폼이 제공하는 에이전트 어댑터를 이용할 수 있다. 클라이언트 또는 파트너는, 인스턴스 시스템의 플랫폼이 제공하는 에이전트 어댑터에서 예시한 에이전트를 등록할 수 있다. Clients or partners can utilize the agent adapter provided by the instance system's platform. Clients or partners can register agents exemplified in the agent adapter provided by the instance system's platform.

이 도면은 에이전트 어댑터의 인터페이스를 예시하는데, 이 예에 따라 클라이언트(또는 파트너)는 에이전트 어댑터에 서로 통신할 수 있는 파트너(또는 클라이언트) 시스템에 설치된 에이전트의 식별자(2210), 에이전트의 명칭(2220), 에이전트를 설명할 수 있는 디스크립션(2230) 등을 에이전트 어댑터에 등록할 수 있다. This drawing illustrates an interface of an agent adapter, according to which a client (or partner) can register with the agent adapter an identifier (2210) of an agent installed on a partner (or client) system that can communicate with each other, a name of the agent (2220), a description (2230) that can describe the agent, etc.

에이전트 어댑터의 인터페이스는, 에이전트가 수신하는 문서 또는 정보를 저장하는 메시지 박스 슬롯(2240), 에이전트가 송신하는 문서 또는 정보를 저장하는 메시지 박스 슬롯(2250)을 포함할 수 있다. The interface of the agent adapter may include a message box slot (2240) for storing documents or information received by the agent, and a message box slot (2250) for storing documents or information transmitted by the agent.

그리고 에이전트 어댑터의 인터페이스는, 에이전트의 인증을 위한 에이전트 공개 키(2290) 정보를 포함할 수 있다. 여기서는 에이전트 공개 키 정보로서 공개 키의 해쉬 값을 예시하였다.And the agent adapter interface may include agent public key (2290) information for agent authentication. Here, the hash value of the public key is exemplified as agent public key information.

에이전트 어댑터의 인터페이스는 위와 같이 등록된 에이전트와 연결 또는 동기화를 활성화할 수 있는 수단(2295)를 포함한다. 이 예는 에이전트와 동기화(active)되는 버튼(2295)을 통해 에이전트 어댑터가 에이전트와 정보를 송수신하는 예를 개시하였다. The agent adapter interface includes a means (2295) for activating connection or synchronization with a registered agent as described above. This example discloses an example in which the agent adapter transmits and receives information with an agent through a button (2295) that is activated to synchronize with the agent.

위와 같이 에이전트 어댑터는 에이전트의 설정 정보를 등록할 수 있고, 에이전트의 설정 정보는 에이전트 어댑터가 설치된 워커노드의 설정 저장소에 저장될 수 있다.As above, the agent adapter can register the agent's configuration information, and the agent's configuration information can be stored in the configuration storage of the worker node where the agent adapter is installed.

이와 같이 에이전트 어댑터를 이용하여 클라이언트 또는 파트너에 설치된 에이전트 설정 정보를 등록하거나 변경할 수 있다. 에이전트 어댑터를 통해 설정된 에이전트는, 그 에이전트가 설치된 시스템의 자원을 연결하고 인스턴스 시스템과 데이터를 송수신할 수 있다.In this way, agent adapters can be used to register or modify agent configuration information installed on clients or partners. Agents configured through agent adapters can connect to resources on the system where they are installed and send and receive data with the instance system.

설명한 바와 같이, 송신 채널은 파트너 (또는 클라이언트) 시스템의 자원으로부터 어떤 정보를 어떤 주기로 가져와 클라이언트(또는 파트너) 시스템으로 전송하는 채널을 의미한다. 그리고 수신 채널은 클라이언트(또는 파트너) 시스템으로부터 받은 정보를 파트너(또는 클라이언트) 시스템의 설정된 위치에 설정된 형식으로 저장하는 채널을 의미한다.As explained, a transmission channel refers to a channel that periodically retrieves information from resources of a partner (or client) system and transmits it to the client (or partner) system. A reception channel refers to a channel that stores information received from the client (or partner) system in a set location and format on the partner (or client) system.

따라서, 여기에서 송신 채널의 설정은, 클라이언트 또는 파트너의 시스템에 설치된 에이전트로부터 정보나 문서를 가져와 메시지 박스에 저장하는 설정을 의미한다. Therefore, setting up a transmission channel here means setting up information or documents to be retrieved from an agent installed on the client or partner's system and stored in a message box.

그리고 수신 채널의 설정은, 채널 설정을 통해 에이전트 어댑터에 수신된 정보나 문서를 클라이언트 또는 파트너의 시스템의 어떤 위치에 저장하는 설정을 의미한다. And the setting of the receiving channel means the setting of storing information or documents received by the agent adapter through the channel setting in a certain location of the client or partner's system.

이하에서 채널 설정의 예는 상세하게 예시한다. 에이전트 어댑터는 이와 같이 채널 설정을 통해 정보나 문서의 송수신을 제어할 수 있다. Below, examples of channel configuration are detailed. Agent adapters can control the transmission and reception of information or documents through channel configuration.

도 17는 실시 예에 따른 인스턴스 시스템의 플랫폼에서 제공하는 에이전트 어댑터의 인터페이스의 다른 일 예를 예시한 도면이다. FIG. 17 is a diagram illustrating another example of an interface of an agent adapter provided on a platform of an instance system according to an embodiment.

인스턴스 시스템의 노드에 설치되는 에이전트 어댑터에 설정되는 채널의 타입은 다를 수 있고, 에이전트 어댑터에서 송수신 채널에 대해 다른 설정을 할 수 있다. 각 어댑터에서 설정하는 채널의 타입은 에이전트가 관리하는 자원의 타입과 동일할 수 있다.The channel types configured for agent adapters installed on nodes of an instance system can vary, and different settings can be configured for transmit and receive channels in the agent adapter. The channel type configured for each adapter can be the same as the type of resource managed by the agent.

이 도면은 어떤 에이전트가 관리하는 자원을 예시한다. 이 도면의 예에서 에이전트는 그 에이전트가 설치된 시스템의 데이터베이스, 디렉토리, 해당 시스템 내의 SAP 시스템(SAP JCO), 해당 시스템 내의 IBM 시스템의 (IBM MQ)을 관리한다. This diagram illustrates the resources managed by an agent. In the example shown, the agent manages a database, a directory, an SAP system (SAP JCO) within the system on which it is installed, and an IBM system (IBM MQ) within that system.

이러한 경우 에이전트 어댑터는, 데이터베이스에 대해서는 그 데이터베이스를 접속할 수 있는 자바 API인 JDBC (Java Database Connectivity)(2310)을 채널 타입으로 설정할 수 있고, 디렉토리에 대해서는 해당 디렉토리에 송수신될 수 있는 파일(FILE)(2320)을 채널 타입으로 설정할 수 있다. In this case, the agent adapter can set the channel type to JDBC (Java Database Connectivity) (2310), a Java API that can connect to the database, for the database, and can set the channel type to FILE (2320) that can be sent and received to the directory.

여기서 에이전트 어댑터는 SAP 시스템에 대해서는 자바 커넥터(JCO)(2330)를 채널 타입으로 설정할 수 있고, IBM 시스템에 대해서는 네트워크 소프트웨어인 메시지 큐(MQ)(2340)를 채널의 타입으로 설정할 수 있다. Here, the agent adapter can set the Java Connector (JCO) (2330) as the channel type for the SAP system, and the Message Queue (MQ) (2340), which is a network software, as the channel type for the IBM system.

여기서는 SAP 시스템과 IBM 시스템을 예시하였고 클라이언트 또는 파트너 시스템이 다른 시스템을 포함하는 경우에도 그 시스템과 관련된 채널 타입을 설정할 수 있다.Here, we have used SAP and IBM systems as examples, and even if the client or partner system includes other systems, you can set the channel type related to that system.

도 18는 실시 예에 따른 인스턴스 시스템의 플랫폼의 에이전트 어댑터가 송수신 채널을 설정하는 예를 나타낸 도면이다. FIG. 18 is a diagram showing an example of an agent adapter of a platform of an instance system according to an embodiment setting up a transmission and reception channel.

이 예는 에이전트 어댑터가 전송하는 송신 채널을 설정하는 예(상단)와 수신 채널을 설정(하단)하는 예를 각각 예시한다. This example illustrates setting up a transmit channel (top) and setting up a receive channel (bottom) that the agent adapter transmits.

이 예에서 송신 채널을 설정하는 경우(상단)로서 에이전트 어댑터가 전송하는 에이전트의 식별자(agent ID)는 test-agent, 채널의 식별자(channel ID)는 file-send, 어댑터의 타입은 파일(FILE), 전송 방향(Direction)은 전송(SEND), 어댑터의 버전(adapter version)은 1.0 이라고 가정한다. In this example, when setting up a transmission channel (top), it is assumed that the agent ID of the agent that the agent adapter transmits to is test-agent, the channel ID is file-send, the adapter type is file (FILE), the transmission direction (Direction) is send (SEND), and the adapter version (adapter version) is 1.0.

에이전트 어댑터는 전송 스케줄(polling schedule)의 단위를 초(second) 또는 크론(cron)로 설정할 수 있고, 어댑터의 타입에 따라 채널을 설정할 수 있다. Agent adapters can set the polling schedule in seconds or cron, and can set the channel depending on the adapter type.

도시한 예는, 송신 채널을 위한 파일의 위치 정보인 소스 정보(2410)를 설정할 수 있다. 여기서 소스 정보(2410)로서 디렉토리 명칭(file-send), 파일 명칭 또는 확장자(*.txt), 파일 인코딩 타입(UTP-8) 등을 설정할 수 있다. The illustrated example can set source information (2410), which is the location information of a file for a transmission channel. Here, a directory name (file-send), a file name or extension (*.txt), a file encoding type (UTP-8), etc. can be set as the source information (2410).

그리고 송신 채널로 정보를 전송한 후 처리 모드(processing mode)(2420), 설정된 채널 상에서 변경된 내용이 있는지 체크하는 시간 정보(modification check wait millis) 및 최대 파일 사이즈 정보(2430) 등을 설정할 수 있다. And after transmitting information through a transmission channel, processing mode (2420), time information for checking whether there is any change on the set channel (modification check wait millis), and maximum file size information (2430) can be set.

이 예에서 수신 채널을 설정하는 경우(하단)로서 에이전트 어댑터로부터 수신하는 에이전트의 식별자(agent ID)는 test-agent, 채널의 식별자(channel ID)는 file-recv, 어댑터의 타입은 파일(FILE), 전송 방향(Direction)은 전송(RECV), 어댑터의 버전(adapter version)은 1.0 이라고 가정한다.In this example, when setting up a receiving channel (bottom), the agent ID of the agent receiving from the agent adapter is assumed to be test-agent, the channel ID is assumed to be file-recv, the adapter type is assumed to be file (FILE), the transfer direction is assumed to be transfer (RECV), and the adapter version is assumed to be 1.0.

이 예는 수신 채널을 통해 수신하는 파일의 위치 정보(file-recv), 파일 명칭 또는 확장자(*.txt), 파일 인코딩 타입(UTP-8) 등(2450)을 설정할 수 있음을 예시한다.This example illustrates that the location information (file-recv), file name or extension (*.txt), file encoding type (UTP-8), etc. (2450) of the file to be received through the receiving channel can be set.

도 19은 실시 예에 따른 인스턴스 시스템의 플랫폼을 이용해 거래 정보인 EDI 데이터를 송신하는 예를 개시한다.FIG. 19 discloses an example of transmitting EDI data, which is transaction information, using a platform of an instance system according to an embodiment.

실시 예에 따른 인스턴스 시스템이 제공하는 에이전트 어댑터(1350)는 클라이언트 또는 파트너에 설치된 에이전트(350)의 시스템과 서로 정보를 송수신할 수 있다. 이런 경우 송수신하는 정보는 인스턴스 시스템을 제공하고 관리하는 매니저 시스템의 메세지 박스(2110)에 저장될 수 있다.The agent adapter (1350) provided by the instance system according to the embodiment can exchange information with the system of the agent (350) installed on the client or partner. In this case, the information exchanged can be stored in the message box (2110) of the manager system that provides and manages the instance system.

실시 예에 따른 인스턴스 시스템의 워커 노드에 설치되는 에이전트 어댑터(1350)는 에이전트 제어부(1351), 송수신 설정부(1352), 송수신 처리부(1353)를 포함할 수 있다.An agent adapter (1350) installed on a worker node of an instance system according to an embodiment may include an agent control unit (1351), a transmission/reception setting unit (1352), and a transmission/reception processing unit (1353).

한편 클라이언트 또는 파트너 시스템에 설치되는 에이전트(350)는 에이전트 제어처리부(351), 송수신설정처리부(353) 및 송수신부(357)을 포함할 수 있다.Meanwhile, an agent (350) installed in a client or partner system may include an agent control processing unit (351), a transmission/reception setting processing unit (353), and a transmission/reception unit (357).

일반적으로 에이전트 어댑터(1350)는 소프트웨어 패키지이므로 에이전트 제어부(1351), 송수신 설정부(1352), 송수신 처리부(1353)는 각각 소프트웨어의 논리적인 구성요소일 수 있다. 마찬가지로 에이전트(350) 또한 소프트웨어 패키지이므로 에이전트 제어처리부 (351), 송수신설정처리부(353) 및 송수신부(357)는 각각 소프트웨어의 논리적인 구성요소일 수 있다. In general, since the agent adapter (1350) is a software package, the agent control unit (1351), the transmission/reception setting unit (1352), and the transmission/reception processing unit (1353) can each be logical components of the software. Similarly, since the agent (350) is also a software package, the agent control processing unit (351), the transmission/reception setting processing unit (353), and the transmission/reception unit (357) can each be logical components of the software.

클라이언트 또는 파트너 시스템의 데이터를 EDI 데이터와 같은 거래를 위한 데이터로 송수신하기 위해서, 클라이언트 또는 파트너는 에이전트를 설치하여 내부 시스템과 정보를 통신할 수 있다. 이 예는 클라이언트 또는 파트너 시스템이 내부 시스템으로서 SAP ERP 시스템, RDBMS와 같은 데이터베이스, IBM 시스템의 message queue 메시지 큐 등을 포함하는 경우를 예시하였다.To transmit and receive data from client or partner systems as transaction data, such as EDI data, clients or partners can install agents to communicate information with internal systems. This example illustrates a situation where the client or partner system includes internal systems such as an SAP ERP system, a database such as an RDBMS, or an IBM system's message queue.

에이전트 제어부(1351)는 클라이언트 또는 파트너 시스템에 설치된 에이전트(350)를 제어할 수 있다. 예를 들어 에이전트 제어부(1351)는 에이전트(350)를 시작, 종료 또는 업데이트할 수 있다.이 경우 에이전트 제어부(1351)가 에이전트(350)를 직접 요청해 제어하지 않고 에이전트(350)를 제어할 요청 정보만을 갱신하면 에이전트(350)의 에이전트 제어처리부 (351)가 갱신된 요청 정보를 설정된 주기에 따라 가져와 요청 정보에 따른 에이전트 제어를 수행할 수 있다.The agent control unit (1351) can control an agent (350) installed in a client or partner system. For example, the agent control unit (1351) can start, terminate, or update an agent (350). In this case, if the agent control unit (1351) does not directly request and control the agent (350) but only updates the request information to control the agent (350), the agent control processing unit (351) of the agent (350) can retrieve the updated request information according to a set cycle and perform agent control according to the request information.

에이전트 어댑터(1350)의 송수신설정부(1352)는 에이전트(350)의 송수신 처리 정보를 변경하여 설정하도록 할 수 있다. 이 경우 변경할 송수신 처리 정보는 에이전트(350)로 전송되지 않고 송수신 설정부(1352)에 저장되도록 할 수 있다. The transmission/reception setting unit (1352) of the agent adapter (1350) can change and set the transmission/reception processing information of the agent (350). In this case, the transmission/reception processing information to be changed can be stored in the transmission/reception setting unit (1352) without being transmitted to the agent (350).

그러면, 에이전트(350)의 송수신설정처리부(353)는 에이전트 어댑터(1350)의 송수신설정부(1352)가 변경한 송수신 처리 정보를 주기적으로 가져와 그 송수신 처리 정보를 파일로 저장할 수 있다. 저장된 송수신 처리 정보는 에이전트(350)가 실행되는 동안에만 유효하다. 만약 에이전트(350)가 재시작되는 경우 에이전트(350)는 에이전트 어댑터(1350)로부터 송수신 처리 정보를 새롭게 가져와 다시 처리할 수 있다. 따라서, 에이전트 어댑터(1350)는 에이전트(350)의 송수신 동작을 원격으로 설정하고 제어할 수 있다. Then, the transmission/reception setting processing unit (353) of the agent (350) can periodically retrieve the transmission/reception processing information changed by the transmission/reception setting unit (1352) of the agent adapter (1350) and save the transmission/reception processing information as a file. The stored transmission/reception processing information is valid only while the agent (350) is running. If the agent (350) is restarted, the agent (350) can retrieve new transmission/reception processing information from the agent adapter (1350) and process it again. Therefore, the agent adapter (1350) can remotely set and control the transmission/reception operation of the agent (350).

에이전트(350)의 송수신부(357)은 파일로 저장된 송수신 처리 정보를 이용하여 내부 시스템(여기서는 SAP ERP 시스템, RDBMS 데이터베이스, message queue 메시지 큐)으로부터 정보를 가져와 에이전트 어댑터(1350)의 송수신처리부(1353)로 송신하거나, 에이전트 어댑터(1350)의 송수신처리부(1353)로부터 수신된 정보를 내부 시스템에 변경하여 저장하도록 할 수 있다.The transmission/reception unit (357) of the agent (350) can use the transmission/reception processing information stored as a file to retrieve information from an internal system (here, SAP ERP system, RDBMS database, message queue message queue) and transmit it to the transmission/reception processing unit (1353) of the agent adapter (1350), or change and store information received from the transmission/reception processing unit (1353) of the agent adapter (1350) in the internal system.

한편 송수신처리부(1353)는 에이전트(350)의 송수신부(357)가 송신한 시스템의 정보를 매니저 시스템 내의 메시지 박스(2110)에 저장하거나, 또는 에이전트 어댑터(1350)에서 설정된 여러 가지 정보를 에이전트(350)의 송수신부(357)가 수신하도록 하고, 그 정보를 메시지 박스(2110)에 저장한다.Meanwhile, the transmission/reception processing unit (1353) stores the system information transmitted by the transmission/reception unit (357) of the agent (350) in the message box (2110) within the manager system, or causes the transmission/reception unit (357) of the agent (350) to receive various pieces of information set in the agent adapter (1350) and stores the information in the message box (2110).

이와 같이 인스턴스 시스템에 따른 플랫폼은, 클라이언트 또는 파트너 시스템에 에이전트를 설치하도록 하고, 설치된 에이전트와 플랫폼의 에이전트 어댑터가 통신하도록 하여 클라이언트 또는 파트너의 시스템 데이터를 안정하게 통신하도록 할 수 있다. In this way, a platform according to an instance system can install an agent on a client or partner system and enable the installed agent and the agent adapter of the platform to communicate, thereby stably communicating the system data of the client or partner.

또한 에이전트는 인증을 통해 에이전트 어댑터와 통신하고, 에이전트 어댑터는 에이전트의 데이터 송수신에 대한 설정을 원격으로 설정할 수 있다. 따라서, 에이전트 어댑터가 에이전트에 직접적으로 동작이나 정보를 설정하는 것을 최소화하여 설정 관리를 안전하고 용이하게 할 수 있다.Additionally, agents communicate with agent adapters through authentication, and agent adapters can remotely configure settings for agent data transmission and reception. This minimizes the need for agent adapters to directly configure actions or information on agents, making configuration management safe and easy.

도 20는 실시 예에 따른 워크스페이스에서 어댑터를 실행하는 실시 예를 개시한 도면이다. FIG. 20 is a diagram disclosing an embodiment of running an adapter in a workspace according to an embodiment.

어댑터 패키지의 간편한 개발을 위하여 본 발명은 다양한 표준 연계 프로토콜에 대한 손쉬운 구축 방법을 제공하며, 개발자들 간의 어댑터 패키지 교환을 위한 앱 스토어(app store, 1510) 제공을 목표로 한다. To facilitate the development of adapter packages, the present invention provides an easy construction method for various standard link protocols and aims to provide an app store (1510) for exchanging adapter packages among developers.

여기에서, 앱 스토어(1510)는 어댑터 패키지 판매부(1501) 및 어댑터 패키지 구매부(1502)를 포함할 수 있다. 이때, 앱 스토어(1510)는 상술한 실시 예를 참고할 수 있으며, 개발자가 어댑터 패키지를 업로드하고, 사용자가 어댑터 패키지를 구매 및 다운로드할 수 있는 플랫폼을 나타낼 수 있다. 이에 대한 내용은 후술하도록 한다. 일 실시 예에서, 개발자가 앱 스토어(1510)를 통하여 어댑터 패키지의 판매하기 위해서는 관리자의 승인이 필요하다. Here, the app store (1510) may include an adapter package sales unit (1501) and an adapter package purchase unit (1502). The app store (1510) may refer to the above-described embodiment and may represent a platform where developers can upload adapter packages and users can purchase and download adapter packages. This will be described later. In one embodiment, a developer must obtain approval from an administrator to sell an adapter package through the app store (1510).

상술한 바와 같이, 클라이언트(여기에서, 클라이언트는 개발자와 사용자를 모두 포함할 수 있다, 100)는 워크스페이스(1500, 3000)에서 여러가지 패키지를 생성, 실행 및 변경할 수 있다. 특히, 클라이언트(100)는 워크스페이스(1500, 3000)에서 어댑터 패키지를 실행할 수 있다. 어댑터 패키지를 실행하는 실시 예에 대하여는 상술한 바와 같다. As described above, the client (here, the client may include both developers and users, 100) can create, execute, and modify various packages in the workspace (1500, 3000). In particular, the client (100) can execute an adapter package in the workspace (1500, 3000). An example of executing an adapter package is as described above.

일 실시 예에서, 개발자는 애플리케이션 서비스 매니저에서 어댑터를 개발하고, 개발된 어댑터를 테스트하기 위하여 워크스페이스(1500, 3000)에서 어댑터를 실행할 수 있다. 이때, 어댑터 패키지 단위로 워크스페이스(1500, 3000)에 설치되고, 설치된 어댑터 패키지에 포함된 프로그램(프로그램 코드 및 관련 설정들)이 워크스페이스(1500, 3000) 상에서 실행될 수 있다. In one embodiment, a developer can develop an adapter in the application service manager and run the adapter in a workspace (1500, 3000) to test the developed adapter. At this time, the adapter package is installed in the workspace (1500, 3000) as a unit, and the program (program code and related settings) included in the installed adapter package can be run on the workspace (1500, 3000).

일 실시 예에서, 어댑터를 실행하는 경우, 상술한 플랫폼과 상호 작용하여 요구사항을 해결할 수 있다. 즉, 도면에서 나타나는 플랫폼은 상술한 애플리케이션 서비스 매니저를 통하여 제공될 수 있으며, 워크스페이스(1500, 3000)에 포함되는 개념은 아니다. In one embodiment, when running an adapter, it may interact with the platform described above to resolve the requirement. That is, the platform depicted in the drawing may be provided through the application service manager described above, and is not a concept included in the workspace (1500, 3000).

플랫폼이 제공하는 서비스는 다음과 같은 기능을 지원할 수 있다. The services provided by the platform can support the following functions:

메시지 박스 서비스는 송수신 문서를 가져오고 저장하는 서비스를 나타낸다. The Message Box service represents a service that retrieves and stores sent and received documents.

통신 프로토콜 접근 서비스는 외부와의 통신 프로토콜 접근을 위한 서비스를 나타낸다. 예를 들어, HTTP/HTTPS, FTP 접근을 위한 서비스를 나타낸다. Communication Protocol Access Services represent services for accessing external communication protocols. For example, these represent services for HTTP/HTTPS and FTP access.

설정 저장소 서비스는 어댑터가 실행되기 위해 필요한 설정을 저장하고 가져오는 서비스를 나타낸다. The configuration repository service represents a service that stores and retrieves the configuration required for the adapter to run.

이를 통해 플랫폼 서비스 제공자는 어댑터를 사고 파는 앱 스토어를 제공하고, 어댑터를 개발하여 실행하는 워크스페이스(1500, 3000)를 제공함으로써 부가 수익 및 확산 효과를 기대할 수 있다는 장점이 있다. This has the advantage that platform service providers can expect additional revenue and diffusion effects by providing an app store for buying and selling adapters and a workspace (1500, 3000) for developing and running adapters.

또한, 사용자는 만들어진 어댑터를 구매, 설치, 설정, 실행 과정을 통해 다양한 표준 연계 프로토콜을 구축할 수 있고, 어댑터를 개발하는 입장(개발자)에서는, 어댑터를 개발하여 판매함으로써 수익을 창출할 수 있다는 장점이 있다. Additionally, users can build various standard linkage protocols through the process of purchasing, installing, configuring, and running the created adapter, and from the perspective of adapter developers, there is an advantage in that they can generate revenue by developing and selling adapters.

도 21은 어댑터 패키지의 일 예를 개시한 도면이다. Figure 21 is a drawing disclosing an example of an adapter package.

패키지란 워크스페이스에 설치 및 실행되는 프로그램(코드 파일 또는 설정 파일)의 묶음으로 어댑터 패키지, 통합 패키지 및 리소스 패키지를 포함한다. 통합 패키지 및 리소스 패키지에 대한 설명은 상술한 바와 같다. A package is a bundle of programs (code files or configuration files) that are installed and run in a workspace. It includes adapter packages, integration packages, and resource packages. Integration packages and resource packages are described above.

어댑터 패키지는 통합(integration)을 위한 여러가지 종류의 프로토콜 및 플랫폼 내의 각종 서비스들의 사용을 지원하는 패키지를 나타낸다. 일반적으로 어댑터 패키지는 플랫폼 내의 서비스들을 사용하여 웹 기반으로 설정하고, 설정된 사항(채널)을 통합 패키지에서 사용할 수 있다. 이에 대한 설명은 상술한 바와 같다. An adapter package represents a package that supports the use of various protocols and platform-specific services for integration. Typically, adapter packages are configured web-based using platform-specific services, and the configured information (channels) can be used in the integration package. This is described above.

일 실시 예에서, 어댑터 패키지는 다음과 같은 어댑터들을 포함할 수 있다. 즉, 후술하는 어댑터 패키지를 통해 매우 다양한 종류의 요구사항을 해결할 수 있다. In one embodiment, the adapter package may include the following adapters, which allow for addressing a wide variety of requirements through the adapter package described below.

제 1 어댑터 패키지(1520a)는 프로토콜 어댑터를 포함할 수 있다. 여기에서, 프로토콜 어댑터는 EDIINT, OFTP 등의 표준 프로토콜 통신 어댑터를 포함한다. The first adapter package (1520a) may include a protocol adapter. Here, the protocol adapter includes a standard protocol communication adapter such as EDIINT, OFTP, etc.

제 2 어댑터 패키지(1520b)는 매핑/변환 프로그램 어댑터를 포함할 수 있다. 여기에서, 매핑/변환 프로그램 어댑터는 매핑 및 변환 작업을 쉽게 할 수 있도록 제공하는 어댑터를 나타낸다. The second adapter package (1520b) may include a mapping/conversion program adapter. Here, the mapping/conversion program adapter represents an adapter that provides for easy mapping and conversion operations.

제 3 어댑터 패키지(1520c)는 웹 스크랩 어댑터를 포함할 수 있다. 여기에서, 웹 스크랩 어댑터는 표준적인 통신이 아닌 웹 서비스로만 제공하는 웹 서비스에서의 스크랩 기능 어댑터를 나타낸다. The third adapter package (1520c) may include a web scraping adapter. Here, the web scraping adapter represents an adapter for scraping functionality in a web service that is provided only as a web service and not through standard communication.

제 4 어댑터 패키지(1520d)는 개발 위자드 어댑터를 포함할 수 있다. 여기에서, 개발 위자드 어댑터는 특정 패턴들의 연계 플로우(프로그램 흐름)를 위자드 방식으로 생성해주는 어댑터를 나타낸다. The fourth adapter package (1520d) may include a development wizard adapter. Here, the development wizard adapter represents an adapter that generates a linked flow (program flow) of specific patterns in a wizard-like manner.

어댑터 패키지는 상술한 어댑터 이외에 워크스페이스를 통하여 개발자가 개발하는 다른 어댑터들이 포함될 수 있음은 물론이다. Of course, the adapter package may include other adapters developed by developers through the workspace in addition to the adapters described above.

도 22는 실시 예에 따른 어댑터가 프레임워크를 사용하는 일 예를 개시한 도면이다. FIG. 22 is a drawing disclosing an example of an adapter using a framework according to an embodiment.

코어(Core)는 다음과 같은 서비스를 제공할 수 있다. 이때, 코어는 상술한 프레임워크에 대응한다. The Core can provide the following services, corresponding to the framework described above.

(1) Configuration Repository: 구성 설정 정보를 저장하고 관리할 수 있다. 이를 통하여, 시스템의 설정 데이터를 저장하고 필요한 구성 정보에 대한 액세스를 제공할 수 있다. (1) Configuration Repository: This can store and manage configuration information. This allows the system to store configuration data and provide access to necessary configuration information.

(2) Distributed Task Service: 분산 환경에서 작업을 처리하고 관리할 수 있다. 이를 통하여, 여러 노드 또는 시스템 간의 작업 분산, 상태 추적 등을 처리할 수 있다. (2) Distributed Task Service: This service can process and manage tasks in a distributed environment. This allows for task distribution and status tracking across multiple nodes or systems.

(3) Channel Registry: 통신 채널에 대한 등록 및 관리를 담당할 수 있다. 이를 통하여, 서로 다른 시스템 또는 패키지 간의 통신을 위한 채널을 등록하고 사용할 수 있다. (3) Channel Registry: This registry can handle the registration and management of communication channels. Through this, channels can be registered and used for communication between different systems or packages.

(4) Message Box Service: 메시지 기반 통신을 지원할 수 있다. 이를 통하여, 메시지 전송, 수신, 저장, 라우팅 등의 기능을 제공하여 다양한 시스템 간의 비 동기적인 통신을 지원할 수 있다. (4) Message Box Service: Supports message-based communication. This provides functions such as message transmission, reception, storage, and routing, enabling asynchronous communication between various systems.

(5) File Watch System: 파일 변경 및 감시를 처리하는 시스템으로, 파일 시스템의 변경 사항을 모니터링하고 필요한 작업을 수행할 수 있다. (5) File Watch System: A system that processes file changes and monitoring, and can monitor changes in the file system and perform necessary tasks.

본 발명의 어댑터는 프레임워크를 사용하기 위해 API를 사용할 수 있다. 즉, 어댑터는 API를 통해서 코어의 서비스들을 이용할 수 있다. The adapter of the present invention can use the API to utilize the framework. That is, the adapter can utilize the core services through the API.

API는 다음과 같은 서비스를 제공할 수 있다. The API can provide the following services:

(1) Configuration Service: 구성 설정에 대한 액세스를 제공하는 서비스 인터페이스로, 구성 데이터의 조회, 수정, 삭제 등을 지원할 수 있다. (1) Configuration Service: A service interface that provides access to configuration settings and can support viewing, modifying, deleting, etc. configuration data.

(2) Task Service: 작업 처리와 관련된 기능을 사용하기 위한 서비스 인터페이스로, 작업 생성, 상태 조회, 결과 반환 등의 작업 관리 기능을 제공할 수 있다. (2) Task Service: This is a service interface for using functions related to task processing, and can provide task management functions such as task creation, status inquiry, and result return.

(3) Channel Access Service: 통신 채널에 대한 액세스를 제공하는 서비스 인터페이스로, 채널 생성, 메시지 전송, 수신 등의 기능을 제공할 수 있다. (3) Channel Access Service: A service interface that provides access to communication channels, and can provide functions such as channel creation, message transmission, and reception.

(4) Message Box Access Service: 메시지 박스에 대한 액세스를 제공하는 서비스 인터페이스로, 메시지 생성, 전송, 수신, 삭제 등의 기능을 제공할 수 있다. (4) Message Box Access Service: A service interface that provides access to the message box and can provide functions such as creating, sending, receiving, and deleting messages.

(5) User Class: API를 사용하여 레지스트리(Registry)에 등록한 클래스로 웹 서비스나 다른 클래스에 의해 참조(Reference)될 수 있다. (5) User Class: A class registered in the registry using the API and can be referenced by web services or other classes.

(6) File Watcher: 파일 감시를 처리하는 인터페이스로, 파일 변경 이벤트를 처리하고 필요한 작업을 수행할 수 있다. (6) File Watcher: An interface that handles file monitoring, can handle file change events, and perform necessary tasks.

user implement는 다음과 같은 서비스를 제공할 수 있다. A user implement can provide the following services:

(1) Web Service: 사용자가 웹 기반의 서비스를 개발하는데 사용되는 구현 코드로, 어댑터가 실행하는데 필요한 설정을 웹 인터페이스를 통해 제공할 수 있다. (1) Web Service: This is the implementation code used by users to develop web-based services, and the settings required for the adapter to run can be provided through a web interface.

(2) User Classes: 개발자가 자신의 로직을 구현하기 위해 작성하는 사용자 정의 클래스로, Core나 API의 기능을 활용하여 특정 도메인 또는 비즈니스 로직을 구현할 수 있다. (2) User Classes: User-defined classes that developers write to implement their own logic. They can implement specific domain or business logic by utilizing the functions of the Core or API.

(3) File Watcher Implementation: 파일 감시를 처리하는 구현 코드로, File Watch System과 상호 작용하여 파일 변경 이벤트를 처리하고 필요한 작업을 수행할 수 있다. (3) File Watcher Implementation: This is the implementation code that handles file monitoring. It can interact with the File Watch System to handle file change events and perform necessary tasks.

도 23은 실시 예에 따른 어댑터 패키지가 제공하는 서비스의 일 예를 개시하는 도면이다. FIG. 23 is a drawing disclosing an example of a service provided by an adapter package according to an embodiment.

Application Context는 프레임워크에 포함되는 구성 요소로 어댑터 패키지 개발을 위한 서비스 API를 포함할 수 있다. 예를 들어, 서비스 API는 WorkspaceIdentity, MessageAccessService, MessageSlotInfoService, ConfigurationService, TaskService, ChannelAccessService, FileAccessService 등을 포함할 수 있다. The Application Context is a component included in the framework and can contain service APIs for developing adapter packages. For example, the service APIs can include WorkspaceIdentity, MessageAccessService, MessageSlotInfoService, ConfigurationService, TaskService, ChannelAccessService, and FileAccessService.

일 실시 예에서, 어댑터 패키지의 개발자는 어댑터 패키지의 생명 주기(life cycle)에 따라 수행되는 방법(Method)를 지정할 수 있다. 이때, 개발자는 생명 주기에 관련된 Annotation을 사용할 수 있다. 예를 들어, 패키지 시작 시 또는 종료 시 특정 Method를 실행하게끔 지정할 수 있다. 이에 대하여 후술하도록 한다. In one embodiment, the developer of an adapter package can specify a method to be executed according to the adapter package's life cycle. The developer can use annotations related to the life cycle. For example, a specific method can be specified to be executed when the package starts or ends. This will be described later.

또한, Application Context에 등록된 서비스들은 빈(Bean)으로 등록된 사용자 클래스(User Class)와 상호 작용할 수 있다. 예를 들어, 빈으로 등록된 user implement class는 FileWatcher, TaskImple, ChannelProcessorImple 및 이외의 사용자 정의 클래스 등이 포함될 수 있다. 이들 클래스들은 애플리케이션의 특정기능 또는 비즈니스 로직을 구현하고, application context에 빈으로 등록되어 다른 컴포넌트에 사용될 수 있도록 한다. 이를 통해 사용자 클래스의 인스턴스를 프레임워크에서 관리하고 애플리케이션에서 필요한 객체를 생성하고 사용할 수 있다. Additionally, services registered in the Application Context can interact with user classes registered as beans. For example, user implementation classes registered as beans may include FileWatcher, TaskImple, ChannelProcessorImple, and other user-defined classes. These classes implement specific functions or business logic of the application and are registered as beans in the application context so that they can be used by other components. This allows the framework to manage instances of user classes and create and use objects required by the application.

일 실시 예에서, Application Context는 사용자 컴포넌트를 빈(Bean)으로 등록하여 웹 서비스(예를 들어, Rest, Servlet)에서 참조(reference)할 수 있다. 일 실시 예에서, 웹 서비스에서 사용자 컴포넌트 참조 시, Application Context를 통해서 직접 참조하는 것을 특징으로 한다. 방법은 다음과 같다. In one embodiment, the Application Context registers a user component as a bean so that it can be referenced in a web service (e.g., Rest, Servlet). In one embodiment, when referencing a user component in a web service, the reference is made directly through the Application Context. The method is as follows.

Method: Method:

- T getInstacne(Class<T> type): Application Context에 등록된 서비스 및 객체를 반환- T getInstance(Class<T> type): Returns the services and objects registered in the Application Context.

- WorkspaceIdentity getWorkspaceId(): WorkspaceIdentity 참조- WorkspaceIdentity getWorkspaceId(): See WorkspaceIdentity

- String getPackageId(): 패키지의 ID값 반환- String getPackageId(): Returns the package ID value.

이때, Rest API는 JAX-RS API를 통해 구현될 수 있다. 이를 위하여, @RestService Annotation으로 REST 서비스를 등록하고, /pkg/{workspace_install_path}/{package_install_path}/rest/{path)로 접근이 가능하다. At this time, Rest API can be implemented through JAX-RS API. To do this, register REST service with @RestService Annotation and access it with /pkg/{workspace_install_path}/{package_install_path}/rest/{path).

또한, Servlet API는 javax.servlet API를 통해 구현될 수 있다. Additionally, the Servlet API can be implemented through the javax.servlet API.

이를 위하여, @Servlet("Servlet패턴")으로 Servlet을 등록하고, pkg/{workspace_install_path}/{package_install_path}/{Servlet 패턴}로 접근이 가능하다. To do this, register a Servlet with @Servlet("Servlet pattern") and access it with pkg/{workspace_install_path}/{package_install_path}/{Servlet pattern}.

WorkspaceIdentity에 대한 설명은 다음과 같다. WorkspaceIdentity는 어댑터 패키지가 속한 워크스페이스 정보를 포함하고 있으며 Ticket을 생성할 수 있다. WorkspaceIdentity는 어댑터 패키지가 클라우드 EDI 서비스를 이용할 때 워크스페이스 인증을 위한 클래스에 대응한다. WorkspaceIdentity는 클라우드 EDI 플랫폼에서 제공하는 API를 사용할 때 필요하다. 방법은 다음과 같다. The description of WorkspaceIdentity is as follows. WorkspaceIdentity contains information about the workspace to which the adapter package belongs and can generate tickets. WorkspaceIdentity corresponds to a class used for workspace authentication when the adapter package uses the Cloud EDI service. WorkspaceIdentity is required when using the API provided by the Cloud EDI platform. Here's how.

Method: Method:

- getId(): 패키지가 속한 워크스페이스의 고유 ID 반환- getId(): Returns the unique ID of the workspace to which the package belongs.

- getTicket(): 패키지가 속한 워크스페이스를 인증할 수 있는 Ticket 반환- getTicket(): Returns a ticket that authenticates the workspace to which the package belongs.

TaskService에 대한 설명은 다음과 같다. TaskService는 분산 작업 스케줄링과 관련된 기능을 제공할 수 있다. TaskService는 분산 환경에서 작업을 등록하고, 주기적으로 실행되도록 스케줄링할 수 있다. 분산 작업 서비스에 의해 등록된 작업은 지정된 시간 또는 이벤트에 따라 실행될 수 있다. The following describes TaskService. TaskService can provide functionality related to distributed task scheduling. TaskService can register tasks in a distributed environment and schedule them for periodic execution. Tasks registered by the distributed task service can be executed at a specified time or based on an event.

즉, TaskService는 어댑터 패키지에서 특정 Task를 분산 스케줄러에 등록 및 해지하기 위해서 사용할 수 있다. 사용자는 Task 인터페이스를 구현할 수 있고, 분산 스케줄러는 Cron, Second 방식을 지원할 수 있다. 방법은 다음과 같다. In other words, TaskService can be used in adapter packages to register and cancel specific tasks with the distributed scheduler. Users can implement the Task interface, and the distributed scheduler can support Cron and Secondary methods. The methods are as follows.

Method: Method:

- register(TaskConfig config, Task task): 분산 스케줄러에 작업 등록- register(TaskConfig config, Task task): Registers a task with the distributed scheduler.

- return: task 고유 ID)- return: task unique ID)

- unregister(String taskId): 분산 스케줄러에서 고유ID를 가지고 있는 Task 등록 해제- unregister(String taskId): Unregisters a task with a unique ID from the distributed scheduler.

MessageBoxAccessService에 대한 설명은 다음과 같다. MessageBoxAccessService는 EDI 메시지 박스에 접근하여 문서의 송수신을 가능하게 한다. 일 예에서, 클라우드 기반의 메시지 박스에 접근하여 데이터를 전송하고, 수신된 데이터를 처리할 수 있다. 여기에서, 메시지 박스는 메시지 박스 저장소에 접근하여 문서를 저장, 조회 또는 삭제할 수 있는 API를 나타낸다. 방법은 다음과 같다. The MessageBoxAccessService is described below. MessageBoxAccessService accesses EDI message boxes to enable document transmission and reception. For example, it can access cloud-based message boxes to transmit data and process received data. Here, MessageBox represents an API that accesses the message box repository to store, retrieve, or delete documents. The method is as follows:

Method: Method:

- send(): MessageBox에 문서를 저장- send(): Saves a document to a MessageBox.

- queryPendingMessageList(): 해당 슬롯/경로명에 있는 전송 대기상태(TBDL, WAIT)의 메시지 레코드(메시지 헤더) 목록 반환- queryPendingMessageList(): Returns a list of message records (message headers) in the pending transmission state (TBDL, WAIT) for the given slot/path name.

- receivePayload(): 메시지 본문 반환- receivePayload(): Returns the message body.

- updateMessageStatus(): 메시지 상태 변경- updateMessageStatus(): Changes the message status.

- deleteMessage(): 메시지 삭제- deleteMessage(): Delete a message

MessageSlotInfoService에 대한 설명은 다음과 같다. MessageSlotInfoService는 메시지 박스의 슬롯 정보를 가지고 있는 서비스에 대응한다. 방법은 다음과 같다. The description of MessageSlotInfoService is as follows. MessageSlotInfoService corresponds to a service that contains slot information for message boxes. The method is as follows.

Method: Method:

- getSlotId(String workspaceId, String pathname): 워크스페이스 ID 및 경로(path) 명에 맞는 메시지 슬롯 ID를 반환- getSlotId(String workspaceId, String pathname): Returns the message slot ID corresponding to the workspace ID and path name.

- getMessageBoxId(String slotId): 메시지 슬롯이 속한 메시지박스 ID 반환- getMessageBoxId(String slotId): Returns the message box ID to which the message slot belongs.

- getSlotMap(String workspaceId): 워크스페이스에서 접근 가능한 메시지 슬롯 목록 반환- getSlotMap(String workspaceId): Returns a list of message slots accessible in the workspace.

ConfigurationService에 대한 설명은 다음과 같다. ConfigurationService는 설정 저장소(Config Repository)에 접근하여 설정 정보를 조회, 변경, 삭제할 수 있는 서비스에 대응한다. 이를 통하여, 설정 데이터를 관리하고 필요한 구성 정보에 접근할 수 있다. ConfigurationService는 패키지에서 설정 저장소로 직접 접근하여 패키지의 설정을 읽어오고 수정, 변경 또는 삭제할 수 있는 API를 나타낸다. 방법은 다음과 같다. The following describes ConfigurationService. ConfigurationService corresponds to a service that accesses the Config Repository to retrieve, modify, and delete configuration information. This allows for managing configuration data and accessing necessary configuration information. ConfigurationService represents an API that allows a package to directly access the Config Repository, read, modify, or delete its configuration. The method is as follows:

Method: Method:

- list(WorkspaceIdentity, String packageId, String nodePath): 특정 워크스페이스 및 패키지의 요청된 경로(path)에 있는 node path의 목록을 가져오고, Web Admin에서 설정 화면 UI에 필요한 설정정보를 가져오는 웹서비스를 제공하기 위한 방법- list(WorkspaceIdentity, String packageId, String nodePath): A method for providing a web service that retrieves a list of node paths within a requested path for a specific workspace and package, and retrieves the configuration information required for the settings screen UI in Web Admin.

이때, 어댑터 패키지에서 설정 값을 적용하는 것은 FsWatchSystem 사용이 권장된다. At this time, it is recommended to use FsWatchSystem to apply the setting values in the adapter package.

- create(WorkspaceIdentity, String packageId, ConfigNode node): 설정 노드를 생성- create(WorkspaceIdentity, String packageId, ConfigNode node): Creates a configuration node.

- update(WorkspaceIdentity, String packageId, ConfigNode node): 설정 노드를 변경- update(WorkspaceIdentity, String packageId, ConfigNode node): Changes the configuration node.

- remove(WorkspaceIdentity, String packageId, ConfigNode node): 설정 노드를 삭제- remove(WorkspaceIdentity, String packageId, ConfigNode node): Deletes a configuration node.

FileWatchSystem에 대한 설명은 다음과 같다. FileWatchSystem은 주어진 경로나 디렉토리의 파일 변경 사항을 모니터링하고 필요한 작업을 수행하는 기능을 제공할 수 있다. 보다 상세하게는, FileWatchSystem은 등록된 경로의 디렉토리를 주기적으로 감시하며 파일의 생성, 변경, 삭제를 탐지하고, 등록된 FsWatcher를 통해 인터페이스를 수행할 수 있다. 여기에서, FsWatcher는 경로 내 파일 변경을 감지하는 경우, 수행할 액션을 구현할 수 있다. 예를 들어, 방법은 다음과 같다. The FileWatchSystem is described below. FileWatchSystem can monitor file changes in a given path or directory and provide functionality to perform necessary actions. More specifically, FileWatchSystem periodically monitors directories in registered paths, detects file creation, modification, and deletion, and can interface with them through registered FsWatcher instances. Here, FsWatcher instances can implement actions to be taken when file changes are detected within the path. For example, the method is as follows:

Method: Method:

- init(Set<File> fset, String path): FsWatcher가 최초 등록 시 수행, 파라미터로 등록된 경로 내의 파일Set을 넘겨줌- init(Set<File> fset, String path): Executed when FsWatcher is first registered, passing the file set in the path registered as a parameter.

- process(FsEvent): 변동이 감지된 파일, 이벤트 유형을 넘겨줌- process(FsEvent): Returns the file where the change was detected and the event type.

FileAccessService에 대한 설명은 다음과 같다. FileAccessService는 File Access Service를 사용하여 클라우드 EDI 내 FTP 서버에 접근하거나 외부 FTP에 접근하여 파일을 Access할 수 있다. 방법은 다음과 같다. The FileAccessService is described below. FileAccessService can be used to access files by accessing an FTP server within Cloud EDI or an external FTP server. The method is as follows:

Method: Method:

- put(String workspaceId, String serviceName, String folderPath, String filename, byte[] body): workspace에 등록된 ServiceNamed을 가진 FTP서비스 경로에 파일 전송- put(String workspaceId, String serviceName, String folderPath, String filename, byte[] body): Transfers a file to the FTP service path with the ServiceNamed registered in the workspace.

- get(String workspaceId, String serviceName, String folderPath, String filename): workspace에 등록된 ServiceNamed을 가진 FTP서비스 경로에 있는 파일 수신- get(String workspaceId, String serviceName, String folderPath, String filename): Receiving a file in the FTP service path with the ServiceNamed registered in the workspace.

- list(String workspaceId, String serviceName, String folderPath, String pattern): 대상 경로에 있는 파일중에 GLOB 패턴에 맞는 파일 목록 조회- list(String workspaceId, String serviceName, String folderPath, String pattern): Retrieves a list of files in the target path that match a GLOB pattern.

- delete(String workspaceId, String serviceName, String folderPath, String filename): 대상 경로에 있는 파일 삭제- delete(String workspaceId, String serviceName, String folderPath, String filename): Deletes the file in the target path.

ChannelAccessService는 채널 요청에 따라 분산 채널 접근 서비스를 제공하는 구성(component)로, 특정 프로세스가 채널을 구독하여 채널로부터 수신되는 메시지나 이벤트를 처리할 수 있다. 이를 통하여 채널을 통해 데이터를 전송하고, 채널로부터 데이터를 수신하여 처리할 수 있다. 방법은 다음과 같다.ChannelAccessService is a component that provides distributed channel access services in response to channel requests. A specific process can subscribe to a channel and process messages or events received from it. This allows data to be transmitted through the channel and received and processed. The method is as follows.

Method :Method:

- create(String channelId, String channelName): 워크스페이스에 채널을 미리 생성- create(String channelId, String channelName): Pre-create a channel in the workspace.

- subscribe(ChannelProcessor processor): 패키지의 기본 채널로 채널 처리할 인터페이스를 등록- subscribe(ChannelProcessor processor): Register an interface to process as the package's default channel.

- Subscribe(String channelId,ChannelProcessor processor): 특정 채널 ID로 채널을 등록- Subscribe(String channelId,ChannelProcessor processor): Registers a channel with a specific channel ID.

- unsubscribe(): 패키지의 기본 채널 등록을 해제- unsubscribe(): Unsubscribes the package from the default channel.

- unsubscribe(String channelId): 특정 채널의 등록을 해제- unsubscribe(String channelId): Unsubscribes from a specific channel.

- call(ChannelRequest request): 특정 채널을 호출- call(ChannelRequest request): Calls a specific channel.

도 24는 실시 예에 따른 워크스페이스에서 개발된 어댑터의 일 예를 개시한 도면이다. FIG. 24 is a drawing disclosing an example of an adapter developed in a workspace according to an embodiment.

상술한 실시 예를 통하여 개발자는 Router의 역할을 수행하는 제 1 어댑터 패키지(324)를 개발할 수 있다. 여기에서, 제 1 어댑터 패키지(324)에 포함된 어댑터는 설정에 의해 라우팅을 쉽게 해주는 서비스에 대응한다. Through the above-described embodiment, a developer can develop a first adapter package (324) that performs the role of a router. Here, the adapter included in the first adapter package (324) corresponds to a service that facilitates routing through settings.

실시 예에 따르면 클라이언트(310)는 원하는 파트너(320)에게 개시한 예와 같은 애플리케이션 서비스를 제공할 수 있다. 실시 예는 단순히 클라이언트(310)에서 서비스를 제공할 뿐만 아니라 클라이언트(310)가 실시 예를 이용해 직접 원하는 파트너(320)에게 커스텀마이즈된 서비스(customized service)를 제공할 수 있도록 할 수 있다. According to an embodiment, a client (310) can provide an application service, such as the example disclosed, to a desired partner (320). The embodiment can not only provide a service from the client (310), but also enable the client (310) to directly provide a customized service to a desired partner (320) using the embodiment.

본 도면에서는, 상술한 제 1 어댑터 패키지(324)를 이용하여 EDI 서비스를 제공하는 실시 예를 설명한다. 클라이언트(310)가 파트너(320)와 거래를 하기 위해 실시 예는 인스턴스 시스템에 포함되는 코디네이터(1100)와 워커노드(1300a, 1300b)를 제공할 수 있다. 여기에서 제 1 워커노드(1300a)와 제 2 워커노드(1300b)는 동일하거나 상이한 노드에 대응한다. This drawing illustrates an embodiment of providing an EDI service using the first adapter package (324) described above. For a client (310) to transact with a partner (320), the embodiment may provide a coordinator (1100) and worker nodes (1300a, 1300b) included in an instance system. Here, the first worker node (1300a) and the second worker node (1300b) correspond to the same or different nodes.

일 실시 예에서, 클라이언트(310)가 통신하는 어댑터 패키지(311)에는 제 1 에이전트(312)가 설치되어 있고, 제 1 에이전트(312)를 통해 거래에 필요한 정보인 EDI 정보를 요청할 수 있다. 여기에서, EDI 정보는 original EDI message(313)에 대응한다. In one embodiment, the adapter package (311) with which the client (310) communicates has a first agent (312) installed, and EDI information, which is information required for a transaction, can be requested through the first agent (312). Here, the EDI information corresponds to the original EDI message (313).

클라이언트(310)가 통신하는 제 1 에이전트(312)는 수신한 요청된 EDI 정보를 메시지 박스 서비스(2110)로 전달한다. 일 실시 예에서, 메시지 박스 서비스(2110)는 애플리케이션 서비스 매니저에 의해 제공될 수 있다. The first agent (312) with which the client (310) communicates transmits the received requested EDI information to the message box service (2110). In one embodiment, the message box service (2110) may be provided by an application service manager.

메시지 박스 서비스(2110)는 제 1 에이전트(312)로부터 전달받은 EDI 정보를 클라이언트 인박스(2111)에 저장할 수 있다. The message box service (2110) can store EDI information received from the first agent (312) in the client inbox (2111).

이후, EDI 정보는 인스턴스 시스템 내의 제 1 워커 노드(1300a)에서 실행 중인 제 1 어댑터 패키지(324)에 전달될 수 있다. 여기에서, 제 1 어댑터 패키지(324)는 상술한 바와 같이 라우터의 역할을 수행할 수 있다. Thereafter, the EDI information may be transmitted to the first adapter package (324) running on the first worker node (1300a) within the instance system. Here, the first adapter package (324) may perform the role of a router as described above.

일 실시 예에서, 제 1 어댑터 패키지(324)는 코디네이터(1100)로부터 수신한 정보에 기초하여 Original EDI Message(313)가 포함된 EDI 정보를 메시지 박스 서비스(2110) 내의 제 1 파트너 아웃박스에 저장할 수 있다. 또한, 제 1 어댑터 패키지는 코디네이터(1100)로부터 수신한 정보에 기초하여 Original EDI Message(313)가 포함된 EDI 정보를 제 2 워커 노드(1300b)의 통합 패키지(integration package)(1380)로 전달할 수 있다. 이때, 제 1 어댑터 패키지는 코디네이터(1100)의 분산 스케줄러(Distributed Scheduler)를 참조하고 어댑터 채널 레지스트리(Adapter Channel Registry)를 조회(Lookup)할 수 있다.In one embodiment, the first adapter package (324) may store EDI information including the Original EDI Message (313) in the first partner outbox within the message box service (2110) based on information received from the coordinator (1100). In addition, the first adapter package may transmit the EDI information including the Original EDI Message (313) to the integration package (1380) of the second worker node (1300b) based on information received from the coordinator (1100). At this time, the first adapter package may refer to the distributed scheduler of the coordinator (1100) and lookup the adapter channel registry.

통합 패키지(1380)는 상술한 실시 예를 통하여 전달받은 EDI 정보를 변환할 수 있다. 이때, 통합 패키지(1380)는 어댑터 채널 레지스트리를 구독(Subscribe)할 수 있다. 여기에서, 구독이란 통합 패키지의 특정 플로우(flow) 또는 로직(logic)이 라우터 패키지로부터 호출 받을 때, 호출 받을 “분산 채널 명”을 등록(구독)하는 과정을 나타낸다. 예를 들어, 노드 #1의 라우터 패키지는 해당 채널이 어떤 노드에 있는지 코디네이터(1100)를 조회(Lookup)하여 호출할 수 있다. The integrated package (1380) can convert EDI information received through the above-described embodiment. At this time, the integrated package (1380) can subscribe to an adapter channel registry. Here, subscription refers to the process of registering (subscribing to) a "distributed channel name" to be called when a specific flow or logic of the integrated package is called from a router package. For example, the router package of node #1 can call the coordinator (1100) by looking up which node the corresponding channel is on.

이에 따라, 통합 패키지(1380)가 포함된 제 2 워커 노드(1300b)는 Transformed EDI Message(314)가 포함된 EDI 정보를 메시지 박스 서비스(2110)의 제 2 파트너 아웃박스에 저장할 수 있다. Accordingly, the second worker node (1300b) including the integrated package (1380) can store EDI information including the Transformed EDI Message (314) in the second partner outbox of the message box service (2110).

이후, 메시지 박스 서비스(2110)는 제 1 파트너 아웃박스에 저장된 Original EDI Message(313)가 포함된 EDI 정보를 파트너(320)와 통신하는 어댑터 패키지(321)의 제 1 파트너(322)에게 전달할 수 있다. 또한, 메시지 박스 서비스(2110)는 제 2 파트너 아웃박스에 저장된 Transformed EDI Message(314)가 포함된 EDI 정보를 파트너(320)와 통신하는 어댑터 패키지(321)의 제 2 파트너(323)에게 전달할 수 있다. 여기에서, 제 1 파트너(322)와 제 2 파트너(323)는 고객사의 거래 파트너에 대응한다. 고객사(클라이언트)는 여러 파트너와 문서를 주고 받을 수 있기 때문이다. Thereafter, the message box service (2110) can transmit EDI information including the Original EDI Message (313) stored in the first partner outbox to the first partner (322) of the adapter package (321) communicating with the partner (320). In addition, the message box service (2110) can transmit EDI information including the Transformed EDI Message (314) stored in the second partner outbox to the second partner (323) of the adapter package (321) communicating with the partner (320). Here, the first partner (322) and the second partner (323) correspond to the trading partners of the customer company. This is because the customer company (client) can exchange documents with multiple partners.

결과적으로 파트너(320)는 클라이언트(310)가 전달한 EDI 정보를 표준화된 EDI 변환 데이터로 수신할 수 있다. 파트너(320)가 클라이언트(310)에 자신의 EDI 정보를 전달하는 경우에도 유사한 프로세스에 따라 데이터를 전달할 수 있다. As a result, the partner (320) can receive the EDI information transmitted by the client (310) as standardized EDI conversion data. When the partner (320) transmits its own EDI information to the client (310), the data can be transmitted according to a similar process.

따라서, 클라이언트(310)와 파트너(320)는 개시하는 실시 예에 따라 EDI 서비스와 같은 애플리케이션 서비스를 쉽게 이용할 수 있고, 표준화된 형식을 모르거나 거래 상대방이 요청하는 문서와 정보를 정확하게 이해하지 못하더라도 표준화된 형식에 따라 용이하게 거래를 진행할 수 있다. Accordingly, clients (310) and partners (320) can easily use application services such as EDI services according to the disclosed embodiments, and can easily conduct transactions according to the standardized format even if they do not know the standardized format or do not accurately understand the documents and information requested by the transaction counterparty.

또한, 클라이언트(310) 또는 파트너(320)는 자신의 워크스페이스에서 위와 같은 어댑터 패키지를 개발하거나 이용할 수 있고, 이를 통합 패키지(1380)에 연계시킬 수도 있다. 실시 예는 이러한 패키지의 개발과 기존 패키지와의 연결도 매우 쉬운 인터페이스를 통해 제공할 수 있고, 개발된 패키지도 판매, 공유, 별도 제공할 수 있다. Additionally, clients (310) or partners (320) can develop or utilize adapter packages such as the above in their workspaces and link them to the integrated package (1380). The embodiment provides a simple interface for developing such packages and linking them to existing packages, and the developed packages can also be sold, shared, or provided separately.

도 25은 실시 예에 따른 애플리케이션 서비스 제공 장치가 데이터 형식을 변환하는 예를 개시하는 도면FIG. 25 is a drawing disclosing an example of an application service providing device converting a data format according to an embodiment.

도시한 예에서 애플리케이션 서비스 제공 장치(300)는 인스턴스 시스템(미도시)과 매니저 시스템(미도시)을 포함할 수 있다. 인스턴스 시스템은 에이전트 어댑터(1350)와 매핑 어댑터(1370)가 설치된 워커노드(예: Node #N)를 포함할 수 있고 클라이언트(100)와 파트너(200)에게 애플리케이션 서비스를 제공할 수 있다. In the illustrated example, the application service providing device (300) may include an instance system (not shown) and a manager system (not shown). The instance system may include a worker node (e.g., Node #N) on which an agent adapter (1350) and a mapping adapter (1370) are installed, and may provide application services to a client (100) and a partner (200).

매니저 시스템(미도시)은 애플리케이션 서비스 매니저(2100)를 포함할 수 있으며, 애플리케이션 서비스 매니저(2100)는 워커노드에 설치된 에이전트 어댑터(1350)으로부터 클라이언트(100)의 에이전트(350)와 파트너(200)의 에이전트(450)에서 수집된 데이터를 얻을 수 있다. 매핑 어댑터(1370)는 클라이언트(100)의 소스 문서 데이터를 언마샬링(unmarshalling)하고 이를 파트너(200)가 필요한 정보로 매핑한 타겟 문서 데이터로 출력할 수 있다.The manager system (not shown) may include an application service manager (2100), and the application service manager (2100) may obtain data collected from the agent (350) of the client (100) and the agent (450) of the partner (200) from the agent adapter (1350) installed in the worker node. The mapping adapter (1370) may unmarshall the source document data of the client (100) and output it as target document data mapped with information required by the partner (200).

이에, 본 발명의 실시 예에 따른 애플리케이션 서비스 제공 장치(300)는 에이전트 어댑터(1350), 매핑 어댑터(1370) 및 애플리케이션 서비스 매니저(2100)를 포함할 수 있다. Accordingly, the application service providing device (300) according to an embodiment of the present invention may include an agent adapter (1350), a mapping adapter (1370), and an application service manager (2100).

에이전트 어댑터(1350)는 송수신부(810)를 포함할 수 있다. 송수신부(810)는 클라이언트(100)의 에이전트(350)로부터 소스 문서 데이터를 수신할 수 있다. 예를 들어, 소스 문서 데이터는 텍스트 데이터로 표현될 수 있다. 일 실시 예에서, 에이전트(350)로부터 수신된 소스 문서 데이터는 애플리케이션 서비스 매니저(2100)에 포함된 메시지 박스(2110)에 저장될 수 있다. The agent adapter (1350) may include a transceiver (810). The transceiver (810) may receive source document data from the agent (350) of the client (100). For example, the source document data may be expressed as text data. In one embodiment, the source document data received from the agent (350) may be stored in a message box (2110) included in the application service manager (2100).

맵핑 어댑터(1370)는 역직렬화부(820), 매핑부(830) 및 직렬화부(840)를 포함할 수 있다. 이 경우, 역직렬화부(820)는 미리 저장된 소스 스키마(schema)에 기반하여 제 1 데이터 형식을 갖는 소스 문서 데이터를 소스 구조 데이터로 변환할 수 있다. 매핑부(830)는 미리 저장된 소스 스키마, 미리 저장된 매핑 스크립트 또는 미리 저장된 타겟 스키마 중 적어도 하나에 기반하여 소스 구조 데이터를 타겟 구조 데이터로 변환할 수 있다. 직렬화부(840)는 미리 저장된 타겟 스키마에 기반하여 타겟 구조 데이터를 제 2 데이터 형식을 갖는 타겟 문서 데이터로 변환할 수 있다. 일 실시 예에서, 변환된 타겟 문서 데이터는 메시지 박스(2110)에 저장될 수 있다. The mapping adapter (1370) may include a deserialization unit (820), a mapping unit (830), and a serialization unit (840). In this case, the deserialization unit (820) may convert source document data having a first data format into source structure data based on a pre-stored source schema. The mapping unit (830) may convert source structure data into target structure data based on at least one of a pre-stored source schema, a pre-stored mapping script, or a pre-stored target schema. The serialization unit (840) may convert target structure data into target document data having a second data format based on a pre-stored target schema. In one embodiment, the converted target document data may be stored in a message box (2110).

일 실시 예에서, 소스 스키마, 매핑 스크립트 또는 타겟 스키마 중 적어도 하나는 클라이언트(100) 또는 파트너(200)에 제공되는 인스턴스 시스템(1000)의 플랫폼의 그래픽 유저 인터페이스(graphic user interface, GUI)에 대한 클라이언트(100) 또는 파트너(200)의 사용자 입력에 기반하여 생성될 수 있으며, 에이전트 어댑터(1350)를 통해 수신되어 메시지 박스(2110)에 미리 저장될 수 있다. In one embodiment, at least one of the source schema, the mapping script, or the target schema may be generated based on user input of the client (100) or partner (200) to a graphical user interface (GUI) of the platform of the instance system (1000) provided to the client (100) or partner (200), and may be received via the agent adapter (1350) and pre-stored in the message box (2110).

에이전트 어댑터(1350)는 제 1 데이터 형식을 갖는 소스 문서 데이터로부터 변환된 제 2 데이터 형식을 갖는 타겟 문서 데이터를 메시지 박스(2110)로부터 전달 받아 파트너(200)의 에이전트(450)로 송신할 수 있다.The agent adapter (1350) can receive target document data having a second data format converted from source document data having a first data format from a message box (2110) and transmit it to the agent (450) of the partner (200).

도 26는 실시 예에 따른 애플리케이션 서비스 제공 장치가 스키마 및 매핑 스크립트를 사용하여 데이터 형식을 변환하는 예를 개시하는 도면FIG. 26 is a diagram showing an example of an application service providing device according to an embodiment converting a data format using a schema and a mapping script.

역직렬화부(820)는 미리 저장된 소스 스키마에 기반하여 제 1 데이터 형식을 갖는 소스 문서 데이터를 소스 구조 데이터로 변환할 수 있다. 일 실시 예에서, 제 1 데이터 형식은 제 1 데이터 포맷 또는 제 1 데이터 구조 중 적어도 하나를 포함할 수 있다.The deserialization unit (820) can convert source document data having a first data format into source structure data based on a pre-stored source schema. In one embodiment, the first data format may include at least one of the first data format or the first data structure.

역직렬화부(820)는 직렬화의 반대로 소스 문서 데이터(예: 텍스트)를 소스 구조 데이터(즉, 내부 구조)로 변환할 수 있다. 다시 말해, 역직렬화부(820)는 소스 문서 데이터로부터 소스 구조 데이터를 파싱(parsing)할 수 있다. The deserialization unit (820) can convert source document data (e.g., text) into source structure data (i.e., internal structure) in the opposite direction of serialization. In other words, the deserialization unit (820) can parse source structure data from source document data.

즉, 역직렬화부(820)는 소스 문서 데이터에 대한 소스 스키마의 구조(structure) 정보와 주석(annotation) 정보에 기반하여 소스 문서 데이터(즉, 원본 데이터)를 매핑 가능한 내부 데이터 구조를 만들기 위해 역직렬화(파싱)를 수행할 수 있다.That is, the deserialization unit (820) can perform deserialization (parsing) to create an internal data structure that can map the source document data (i.e., original data) based on the structure information and annotation information of the source schema for the source document data.

매핑부(830)는 미리 저장된 소스 스키마, 미리 저장된 매핑 스크립트 또는 미리 저장된 타겟 스키마 중 적어도 하나에 기반하여 소스 구조 데이터를 타겟 구조 데이터로 변환할 수 있다. 일 실시 예에서, 매핑 스크립트는 프로그래밍 언어의 문법을 나타내는 문장(statement) 정보 또는 특정한 결과값을 나타내는 표현식(expression) 정보 중 적어도 하나를 포함할 수 있다. The mapping unit (830) may convert source structure data into target structure data based on at least one of a pre-stored source schema, a pre-stored mapping script, or a pre-stored target schema. In one embodiment, the mapping script may include at least one of statement information representing the grammar of a programming language or expression information representing a specific result value.

일 실시 예에서, 매핑부(830)는 해당 소스 문서 데이터의 구조(트리) 및 이름(Identifier)를 포함하는 구조 정보를 이용하여 소스 구조 데이터를 타겟 구조 데이터로 변환하는 매핑을 수행할 수 있다. In one embodiment, the mapping unit (830) may perform mapping to convert source structure data into target structure data using structure information including the structure (tree) and name (Identifier) of the source document data.

일 실시 예에서, 소스 스키마, 매핑 스크립트 또는 타겟 스키마 중 적어도 하나는 매핑 프로그램에 포함되어 저장될 수 있다. 매핑부(830)는 매핑 프로그램에 기반하여 소스 구조 데이터를 타겟 구조 데이터로 변환할 수 있으며, 이때 소스 스키마와 타겟 스키마의 주석 정보는 직렬화와 역직렬화에서만 사용되고, 매핑 프로그램에서는 사용되지 않는다. 이는, 매핑 스크립트에 기반한 매핑은 소스 스키마와 타겟 스키마의 스키마 노드 간 데이터의 매핑만을 집중적으로 수행하기 위함이다. In one embodiment, at least one of a source schema, a mapping script, or a target schema may be included and stored in a mapping program. The mapping unit (830) may convert source structure data into target structure data based on the mapping program. In this case, the annotation information of the source schema and the target schema is used only for serialization and deserialization, and is not used in the mapping program. This is because the mapping based on the mapping script is intended to focus only on mapping data between schema nodes of the source schema and the target schema.

즉, 본 발명에 따르면, 매핑 스트립트와 스키마의 주석 정보의 역할을 의도적으로 분리 (SoC - Separation of Concerns)하여, 매핑 스크립트는 직렬화와 역직렬화와는 관계 없이 매핑에만 집중적으로 사용되고, 스키마의 주석 정보는 직렬화와 역직렬화에만 집중적으로 사용됨으로써, 효과적으로 전문언어(DSL) 기반 매핑을 지원할 수 있다. That is, according to the present invention, by intentionally separating the roles of the mapping script and the annotation information of the schema (SoC - Separation of Concerns), the mapping script is used only for mapping regardless of serialization and deserialization, and the annotation information of the schema is used only for serialization and deserialization, thereby effectively supporting domain-specific language (DSL)-based mapping.

또한, 본 발명에 따르면, 직렬화와 역직렬화는 데이터 형식(즉, 데이터 포맷 또는 데이터 구조 중 적어도 하나)을 변환하기 위해 수행되며, 매핑은 데이터 형식의 변환에 관련 없이 소스 구조 데이터를 타겟 구조 데이터로 변환하기 위해 수행될 수 있다.Additionally, according to the present invention, serialization and deserialization are performed to convert a data format (i.e., at least one of a data format or a data structure), and mapping can be performed to convert source structure data into target structure data regardless of the conversion of the data format.

직렬화부(840)는 미리 저장된 타겟 스키마에 기반하여 타겟 구조 데이터를 제 2 데이터 형식을 갖는 타겟 문서 데이터로 변환할 수 있다. 일 실시 예에서, 제 2 데이터 형식은 제 2 데이터 포맷 또는 제 2 데이터 구조 중 적어도 하나를 포함할 수 있다. 즉, 예를 들어, 타겟 문서 데이터는 소스 문서 데이터와 데이터 포맷이 다를 수 있다. 또한, 다른 예를 들어, 타겟 문서 데이터는 소스 문서 데이터와 데이터 포맷은 동일하지만 데이터 구조가 다를 수 있다. The serialization unit (840) can convert target structure data into target document data having a second data format based on a pre-stored target schema. In one embodiment, the second data format may include at least one of the second data format or the second data structure. That is, for example, the target document data may have a different data format from the source document data. Furthermore, for another example, the target document data may have the same data format as the source document data but a different data structure.

구체적으로, 직렬화부(840)는 미리 저장된 타겟 스키마의 구조 정보와 주석 정보에 기반하여 타겟 구조 데이터를 제 2 데이터 형식을 갖는 타겟 문서 데이터(예: 텍스트)로 변환하는 직렬화를 수행할 수 있다. Specifically, the serialization unit (840) can perform serialization to convert target structure data into target document data (e.g., text) having a second data format based on the structure information and annotation information of the pre-stored target schema.

예를 들어, 직렬화부(840)는 내부의 프로그램 언어 변수에 담긴 타겟 구조 데이터를 EDI, XML 또는 JSON 등의 타겟 문서 데이터로 변환할 수 있다. For example, the serialization unit (840) can convert target structure data contained in an internal program language variable into target document data such as EDI, XML, or JSON.

따라서, 본 발명에 따르면, 주석 정보를 활용하여 다양한 데이터 형식의 문서를 직렬화/역직렬화하기 위한 스키마 정의하기 위한 전문언어(Domain Specific Language, DSL)가 사용될 수 있다. Therefore, according to the present invention, a domain specific language (DSL) can be used to define a schema for serializing/deserializing documents of various data formats by utilizing annotation information.

또한, 본 발명에 따르면, 비교적 간단한 프로그래밍 언어의 문법으로 다양한 매핑 요구사항 해결할 수 있는 자체 매핑 스크립트 언어가 제공될 수 있다. In addition, according to the present invention, a self-mapping script language capable of solving various mapping requirements with a relatively simple programming language grammar can be provided.

또한, 본 발명에 따르면, 다양한 데이터 형식의 문서에 대해 통일된 스키마 정의 문법을 제공할 수 있다. In addition, according to the present invention, a unified schema definition grammar can be provided for documents of various data formats.

또한, 본 발명에 따르면, 비교적 간단한 매핑 스크립트 언어와 Lua 커스텀 함수 기능을 통해 간단한 매핑부터 복잡한 매핑까지 만들 수 있는 기능을 제공할 수 있다. In addition, according to the present invention, it is possible to provide a function that can create simple to complex mappings through a relatively simple mapping script language and Lua custom function functions.

또한, 본 발명에 따르면, 이러한 기능을 DSL로 제공함으로써, 손쉽게 기능을 개발할 수 있도록 할 수 있다.In addition, according to the present invention, by providing these functions as DSL, it is possible to easily develop functions.

도 27는 실시 예에 따른 스키마에 기반한 역직렬화와 직렬화의 예를 개시하는 도면 Figure 27 is a diagram disclosing an example of deserialization and serialization based on a schema according to an embodiment.

일 실시 예에서, 문서 데이터에 대한 스키마에 기반하여, 문서 데이터를 구조 데이터로 변환하는 역직렬화를 수행할 수 있다. 예를 들어, 문서 데이터는 EDI 문서, XML 문서, JSON 문서 등 다양한 문서 데이터를 포함할 수 있다. 이 경우, 역직렬화는 언마샬링(unmarshaling) 또는 이와 동등한 기술적 의미를 갖는 용어로 지칭될 수 있다. 일 실시 예에서, 역직렬화를 위한 문서 데이터는 소스 문서 데이터를 포함하고, 구조 데이터는 소스 구조 데이터를 포함할 수 있다. In one embodiment, deserialization, which converts document data into structured data, may be performed based on a schema for the document data. For example, the document data may include various types of document data, such as EDI documents, XML documents, and JSON documents. In this case, deserialization may be referred to as unmarshaling or a term with an equivalent technical meaning. In one embodiment, the document data for deserialization may include source document data, and the structured data may include source structured data.

일 실시 예에서, 문서 데이터에 대한 스키마에 기반하여, 구조 데이터를 문서 데이터로 변환하는 직렬화를 수행할 수 있다. 이 경우, 직렬화는 마샬링(marshaling) 또는 이와 동등한 기술적 의미를 갖는 용어로 지칭될 수 있다. 일 실시 예에서, 직렬화를 위한 구조 데이터는 타겟 구조 데이터를 포함하고, 문서 데이터는 타겟 문서 데이터를 포함할 수 있다. In one embodiment, serialization, which converts structured data into document data, may be performed based on a schema for the document data. In this case, serialization may be referred to as marshaling or a term with an equivalent technical meaning. In one embodiment, the structured data for serialization may include target structured data, and the document data may include target document data.

일 실시 예에서, 스키마는 문서 데이터에 대한 구조 정보 또는 주석 정보 중 적어도 하나를 포함할 수 있다. 구조 정보는 문서 데이터의 구조 데이터를 나타내며, 데이터 유형(type)으로 정의되는 데이터를 포함할 수 있다. 예를 들어, 데이터 유형은 Primitive, Record, Array 또는 TypeRef 중 적어도 하나를 포함할 수 있다. In one embodiment, a schema may include at least one of structural information or annotation information regarding document data. The structural information represents the structure of the document data and may include data defined by a data type. For example, the data type may include at least one of Primitive, Record, Array, or TypeRef.

Primitive는 string, int, long, double, decimal과 같은 원시 유형을 지정할 수 있다. 예를 들어, String은 문자열 데이터 유형을 나타내고, Int는 정수 데이터 유형을 나타낸다. Record는 하위에 또 다른 유형들이 올 수 있으며, 서로 다른 유형의 데이터의 모음으로 구성될 수 있다. Array는 특정 유형에 대한 배열로 정의될 수 있으며, 서로 동일한 유형의 데이터의 모음으로 구성될 수 있다. TypeRef는 이미 정의되어 있는 Record를 참조해서 가져올 수 있다.Primitives can specify primitive types such as string, int, long, double, and decimal. For example, String represents a string data type, and Int represents an integer data type. Record can have other subtypes and can be composed of a collection of data of different types. Array can be defined as an array of specific types and can be composed of a collection of data of the same type. TypeRef can be retrieved by referencing an already defined Record.

일 실시 예에서, 주석 정보는 데이터 유형에 대응되고, 문서 데이터에서 해당 데이터로 인지(파싱, 역직렬화)할 때 사용되는 정보를 포함할 수 있다. 예를 들어, @XmlElement(name=””는 주석을 나타낼 수 있으며, @다음에 기재된 XmlElement은 해당 주석의 이름을 나타내고, name이라는 이름의 요소(element)를 포함하고, 이에 대한 값은 “employee”일 수 있다. In one embodiment, the annotation information may correspond to a data type and include information used when recognizing (parsing, deserializing) the data from the document data. For example, @XmlElement(name="" may represent an annotation, and the XmlElement described after @ may represent the name of the annotation and include an element named name, the value of which may be "employee".

또한, 예를 들어, 만약, @JsonProperty(name=””주석 정보가 스키마에 포함된 경우, 마샬링 시 해당 주석 정보에 따라 JSON 문서의 박스 표시에 id가 아닌 employee-id로 표시될 수 있다. 반면, @JsonProperty(name=””주석 정보가 스키마에 포함되지 않은 경우, 마샬링 시 스키마의 int id; 구조 정보에 따라 JSON 문서의 박스 표시에 id로 기재될 수 있다. 일 실시 예에서, 이러한 스키마는 프로그래밍 언어의 구문을 정의할 수 있는 문법 표현식인 BNF(Backus-Naur Form)로 정의될 수 있다. Also, for example, if the @JsonProperty(name="" annotation information is included in the schema, employee-id instead of id may be displayed in the box display of the JSON document according to the annotation information during marshaling. On the other hand, if the @JsonProperty(name="" annotation information is not included in the schema, id may be written in the box display of the JSON document according to the int id; structural information of the schema during marshaling. In one embodiment, such a schema may be defined as Backus-Naur Form (BNF), which is a grammar expression that can define the syntax of a programming language.

도 28은 실시 예에 따른 매핑 스크립트의 예를 개시하는 도면 Figure 28 is a drawing disclosing an example of a mapping script according to an embodiment.

매핑 스크립트는 타겟 스키마의 형태에 맞게 소스 구조 데이터를 타겟 구조 데이터로 변환하기 위해 사용될 수 있다. 일 실시 예에서, 매핑 스크립트는 프로그래밍 언어의 문법을 나타내는 문장 정보 또는 특정한 결과값을 나타내는 표현식 정보 중 적어도 하나를 포함할 수 있다. A mapping script may be used to transform source structure data into target structure data in the form of a target schema. In one embodiment, the mapping script may include at least one of sentence information representing the grammar of a programming language or expression information representing a specific result value.

여기서, 문장 정보는 매핑 스크립트의 프로그래밍 언어의 각 라인(line)을 나타낼 수 있다. 즉, 매핑 스크립트는 문장 정보로 구성될 수 있다. 일 실시 예에서, 문장 정보는 소스 스키마의 구조 정보와 타겟 스키마의 구조 정보 간 대응관계를 나타낼 수 있다. Here, sentence information can represent each line of the programming language of the mapping script. That is, the mapping script can be composed of sentence information. In one embodiment, the sentence information can represent a correspondence between the structural information of the source schema and the structural information of the target schema.

예를 들어, 문장 정보는 MapStmt, LoopStmt, IfStmt, MatchStmt, LoopVarSetStmt 및 LoopVarIncStmt를 포함할 수 있으나, 이에 제한되지 않고 다양한 문장 정보를 포함할 수 있다. 이 경우, MapStmt는 매핑을 수행하는 문장 정보를 포함할 수 있다. LoopStmt는 반복문을 나타내는 문장 정보를 포함할 수 있으며, 일반적인 프로그래밍 언어의 for 문과 같은 기능을 수행할 수 있다. IfStmt는 조건문을 나타내는 문장 정보를 포함할 수 있으며, 일반적인 프로그래밍 언어의 if 문과 같은 기능을 수행할 수 있다. MatchStmt는 조건 제어문을 나타내는 문장 정보를 포함할 수 있으며, 일반적인 프로그래밍 언어의 switch 문과 같은 기능을 수행할 수 있다. LoopVarSetStmt는 Loop안에서 사용할 변수를 선언할 수 있다. LoopVarIncStmt는 특정 변수(예: LoopVar)를 증가시키는 문장 정보를 포함할 수 있다. For example, sentence information may include MapStmt, LoopStmt, IfStmt, MatchStmt, LoopVarSetStmt, and LoopVarIncStmt, but is not limited thereto and may include various sentence information. In this case, MapStmt may include sentence information that performs mapping. LoopStmt may include sentence information that represents a loop statement and may perform a function similar to a for statement in a general programming language. IfStmt may include sentence information that represents a conditional statement and may perform a function similar to an if statement in a general programming language. MatchStmt may include sentence information that represents a conditional control statement and may perform a function similar to a switch statement in a general programming language. LoopVarSetStmt may declare a variable to be used within the Loop. LoopVarIncStmt may include sentence information that increments a specific variable (e.g., LoopVar).

또한, 표현식 정보는 사용할 값을 가져올 곳을 지정할 수 있으며, 평가(evaluate)를 통해 하나의 값으로 환원되는 표현식을 나타낼 수 있다. 예를 들어, 표현식 정보는 Constant, Path, Custom Function 및 LoopVar를 포함할 수 있으나, 이에 제한되지 않고 다양한 표현식 정보를 포함할 수 있다. 이 경우, Constant는 문자열(String)이나 숫자(Number)를 직접 지정하여 나타낼 수 있다. Path는 소스(Source)의 특정 경로(Path)를 나타낼 수 있다. Custom Function은 사용자에 의해 생성된 함수(function)를 나타낼 수 있다. LoopVar Loop 반복문의 변수를 나타내며, 예를 들어 #i와 같은 LoopVar를 나타낼 수 있다. Additionally, expression information can specify where to get the value to use, and can represent an expression that is converted to a single value through evaluation. For example, expression information can include, but is not limited to, Constant, Path, Custom Function, and LoopVar, and can include various expression information. In this case, Constant can be represented by directly specifying a string or number. Path can represent a specific path of the source. Custom Function can represent a function created by the user. LoopVar represents a variable of a Loop iteration statement, and can represent a LoopVar such as #i, for example.

일 실시 예에서, 매핑 스크립트는 매핑 프로그램에 포함될 수 있다. 일 실시 예에서, 이러한 매핑 스크립트는 프로그래밍 언어의 구문을 정의할 수 있는 문법 표현식인 BNF로 정의될 수 있다.In one embodiment, a mapping script may be included in a mapping program. In one embodiment, such a mapping script may be defined in BNF, which is a grammar expression that can define the syntax of a programming language.

이하에서는 클라이언트 또는 파트너가 워크스페이스에서 다운받은 애플리케이션 패키지를 기반으로 필요한 애플리케이션을 개발할 수 있는 실시 예를 개시한다. Below, an embodiment is disclosed in which a client or partner can develop a required application based on an application package downloaded from a workspace.

클라이언트 또는 파트너는 인스턴스 시스템의 플랫폼의 자신의 워크스페이스에 접속하고, 플랫폼이 제공하는 그래픽 유저 인터페이스 (graphic user interface; GUI) 기반으로 여러 가지 업무 또는 거래 등에 필요한 애플리케이션을 개발할 수 있다.Clients or partners can access their own workspace on the platform of the instance system and develop applications necessary for various tasks or transactions based on the graphical user interface (GUI) provided by the platform.

예를 들어 클라이언트가 서비스로서 EDI 정보를 전달하는 애플리케이션을 개발할 경우, 클라이언트는 파트너와 표준화된 거래 정보를 매핑할 수 있는 매핑 프로그램을 개발하고 이를 기반으로 파트너에 정보를 제공할 수 있다. 또는 이렇게 개발한 매핑 프로그램 자체를 매니저 시스템의 플랫폼에서 판매할 수 있다.For example, if a client develops an application that delivers EDI information as a service, the client can develop a mapping program that maps standardized transaction information with its partners and provide information to them based on this program. Alternatively, the client can sell the developed mapping program itself on the Manager System platform.

여기서는 매핑 프로그램을 예시하였으나 클라이언트 또는 파트너는 운영하는 사업의 종류, 거래의 종류 등에 따라 서로 다른 정보 또는 문서의 매핑이 요구된다. 여기에서, 매핑이라 함은 A 스키마(schema)를 가지는 a 데이터(소스)에서 B 스키마를 가지는 b 데이터(타겟)로 변환하는 과정을 의미한다. 여기에서, 스키마는 데이터의 구조를 나타내며, 각 이름을 가진 노드들이 계층적인 구조를 가진다. While this example illustrates a mapping program, clients or partners may require different information or document mappings depending on the type of business they operate, the nature of their transactions, etc. Here, mapping refers to the process of converting data (source) with schema A into data (target) with schema B. The schema represents the data structure, with nodes with different names forming a hierarchical structure.

이러한 사업의 종류가 매우 다양하기 때문에, 여기의 실시 예는 사용자에게 EDI 정보를 매핑할 수 있는 매핑 프로그램을 매우 용이하게 개발할 수 있는 예를 개시한다.Because these types of businesses are so diverse, the examples herein disclose examples that make it very easy for users to develop mapping programs that can map EDI information.

실시 예에 따른 플랫폼은 매핑 프로그램을 개발할 수 있는 환경과 인터페이스를 제공할 수 있는데 이에 대해 상세히 개시하면 다음과 같다. The platform according to the embodiment can provide an environment and interface for developing a mapping program, which are disclosed in detail as follows.

도 29는 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면이다. FIG. 29 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.

본 발명의 매핑 플로우 개발을 위한 사용자 인터페이스는 개발 도구 팔레트(901)와 개발 GUI 코드 영역(902)을 포함할 수 있다. The user interface for developing the mapping flow of the present invention may include a development tool palette (901) and a development GUI code area (902).

여기에서, 개발 도구 팔레트(901)는 매핑 프로그램에서 사용되는 언어의 구조 및 함수들에 대응하는 그래픽 블록들을 포함할 수 있다. 즉, 개발 도구 팔레트(901)는 매핑 프로그램에서 사용되는 키워드의 목록 전부를 포함할 수 있다. 예를 들어, 개발 도구 팔레트(901)는 매핑 프로그램에서 사용되는 “Statements”, “MAP”, "If", “Then”, “Loop for”, “LoopVar”, “LoopVar ++”, “Match”와 같은 제어 구조 및 함수들에 대응하는 그래픽 블록을 포함할 수 있다. 다만, 본 도면에 포함된 함수들은 예시일 뿐으로 다른 함수들이 포함될 수 있음은 물론이다. Here, the development tool palette (901) may include graphic blocks corresponding to the structure and functions of the language used in the mapping program. That is, the development tool palette (901) may include a list of all keywords used in the mapping program. For example, the development tool palette (901) may include graphic blocks corresponding to control structures and functions such as “Statements”, “MAP”, “If”, “Then”, “Loop for”, “LoopVar”, “LoopVar ++”, and “Match” used in the mapping program. However, the functions included in this drawing are only examples, and it is obvious that other functions may be included.

일 실시 예에서, 애플리케이션 서비스 제공 방법은 개발 도구 팔레트(901) 및 개발 GUI 코드 영역(902)을 포함하는 사용자 인터페이스를 제공할 수 있다. 사용자 인터페이스 내에서 사용자는 개발 도구 팔레트(901)에 포함된 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역(902)으로 드래그 앤 드롭(drag & drop)할 수 있다. In one embodiment, the method for providing an application service may provide a user interface including a development tool palette (901) and a development GUI code area (902). Within the user interface, a user may select a graphic block included in the development tool palette (901) and then drag and drop it into the development GUI code area (902).

예를 들어, 사용자 인터페이스가 사용자로부터 제 1 함수(예를 들어, “Statements”블록)의 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역으로 드래그 앤 드롭하는 입력 신호(903a)를 수신하는 경우, 제 1 함수의 그래픽 블록을 개발 GUI 코드 영역(902)에서 출력할 수 있다. 이때, 드래그 앤 드롭하는 입력 신호는 예시일 뿐으로 사용자로부터 수신하는 다른 기 설정된 입력 신호를 포함할 수 있다. For example, if the user interface receives an input signal (903a) from the user to select a graphic block of a first function (e.g., a “Statements” block) and then drag and drop it into the development GUI code area, the graphic block of the first function can be output from the development GUI code area (902). In this case, the drag and drop input signal is only an example and may include other preset input signals received from the user.

여기에서, “Statements” 블록은 다른 블록들을 순차적으로 포함하는 블록으로 매핑 프로그램의 최상위 블록이어야 한다. 즉, “Statements” 블록은 매핑 프로그램의 시작과 끝을 포함하는 블록에 대응한다. Here, the “Statements” block must be the top-level block of the mapping program, as it sequentially contains other blocks. In other words, the “Statements” block corresponds to the block containing the beginning and end of the mapping program.

이후, 사용자 인터페이스가 사용자로부터 제 2 함수(예를 들어, “LoopVar”블록)의 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역(902)으로 드래그 앤 드롭하는 입력 신호(903b)를 수신하는 경우, 제 2 함수의 그래픽 블록을 개발 GUI 코드 영역(902)에서 출력할 수 있다. 이때, 개발 GUI 코드 영역(902)은 자동으로 제 2 함수를 제 1 함수 안에 포함시켜 구성할 수 있다. Thereafter, when the user interface receives an input signal (903b) for selecting a graphic block of a second function (e.g., a “LoopVar” block) from the user and then dragging and dropping it into the development GUI code area (902), the graphic block of the second function can be output from the development GUI code area (902). At this time, the development GUI code area (902) can be configured to automatically include the second function within the first function.

뿐만 아니라, 개발 GUI 코드 영역은 제 2 함수의 그래픽 블록에 포함된 파라미터의 입력 칸을 그대로 출력할 수 있다. 상술한 “LoopVar”블록을 참고하면, 개발 도구 팔레트에서 “LoopVar”블록은 “Loop for”블록에서 쓰일 루프변수를 선언하는 블록으로 “변수의 이름”과 “초기 값”을 정해야 한다. 이에 따라, “LoopVar”블록의 파라미터의 입력 칸이 2개(변수의 이름, 초기 값)기 때문에, 개발 GUI 코드 영역에서도 “LoopVar”블록을 출력하면서, 파라미터의 입력 칸을 그대로 출력할 수 있다. In addition, the development GUI code area can output the input fields of the parameters included in the graphic block of the second function as they are. Referring to the “LoopVar” block described above, the “LoopVar” block in the development tool palette is a block that declares the loop variable to be used in the “Loop for” block, and the “variable name” and “initial value” must be specified. Accordingly, since the parameter input fields of the “LoopVar” block are two (variable name, initial value), the parameter input fields can be output as they are while outputting the “LoopVar” block in the development GUI code area as well.

이후, 사용자는 “LoopVar”블록의 파라미터의 입력 칸에 파라미터를 직접 입력할 수 있다. 예를 들어, 사용자는 “LoopVar”블록에 변수이름을 “k”및 초기 값을 “1”로 입력할 수 있다. 이에 따라, 개발 코드는 반복문에서 k라는 반복 변수를 선언하고, 초기 값으로 1을 할당할 수 있다. Afterwards, the user can directly enter parameters into the input fields of the "LoopVar" block. For example, the user can enter the variable name "k" and the initial value "1" in the "LoopVar" block. Accordingly, the development code can declare a loop variable called "k" in the loop and assign it an initial value of 1.

이후, 사용자 인터페이스가 사용자로부터 제 3 함수(예를 들어, “Loop for” 블록)의 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역(902)으로 드래그 앤 드롭하는 입력 신호(미도시)를 수신하는 경우, 제 3 함수의 그래픽 블록을 개발 GUI 코드 영역(902)에서 출력할 수 있다. 이때, 개발 GUI 코드 영역(902)은 자동으로 제 3 함수를 제 1 함수 안에 제 2 함수 다음으로 포함시켜 구성할 수 있다. Thereafter, when the user interface receives an input signal (not shown) from the user to select a graphic block of a third function (e.g., a “Loop for” block) and then drag and drop it into the development GUI code area (902), the graphic block of the third function can be output from the development GUI code area (902). At this time, the development GUI code area (902) can be configured to automatically include the third function within the first function, following the second function.

이와 같이 본 발명의 매핑 플로우 개발을 위한 사용자 인터페이스는 사용자가 개발 도구 팔레트(901)에 포함된 그래픽 블록을 이용하여 개발 GUI 코드 영역(902)에서 코드 구조를 형성하는데 시각적인 도움을 줄 수 있다. 이를 통해 사용자가 개발 스크립트에 친숙하지 않아도 비교적 간편하게 매핑 프로그램을 정의할 수 있다는 장점이 있다. In this way, the user interface for developing the mapping flow of the present invention can provide visual assistance to the user in forming a code structure in the development GUI code area (902) using graphic blocks included in the development tool palette (901). This has the advantage of allowing the user to define a mapping program relatively easily even if he or she is not familiar with development scripts.

도 30은 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면이다. FIG. 30 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.

본 발명의 매핑 플로우 개발을 위한 사용자 인터페이스는 개발 GUI 코드 영역(902)에 대응하는 개발 소스 코드(905)를 제공할 수 있다. The user interface for developing the mapping flow of the present invention can provide development source code (905) corresponding to the development GUI code area (902).

보다 상세하게는, 애플리케이션 서비스 제공 방법은 개발 GUI 코드 영역(902)에 출력된 함수에 대응하는 소스 코드들을 개발 소스 코드 영역(904) 상에 출력할 수 있다. 즉, 상술한 실시 예를 참고하면, 사용자가 개발 도구 팔레트에 포함된 그래픽 블록을 선택해 개발 GUI 코드 영역(902)에 함수를 출력하고, 함수에 대응하는 파라미터를 입력한 경우, 애플리케이션 서비스 제공 방법은 개발 소스 코드 영역(904) 상에 함수 및 파라미터에 대응하는 소스 코드(905)를 생성하여 출력할 수 있다. More specifically, the application service providing method can output source codes corresponding to functions output in the development GUI code area (902) on the development source code area (904). That is, referring to the above-described embodiment, when a user selects a graphic block included in the development tool palette to output a function in the development GUI code area (902) and inputs a parameter corresponding to the function, the application service providing method can generate and output source code (905) corresponding to the function and parameter on the development source code area (904).

일 실시 예에서, 사용자가 소스 코드(905)를 직접 수정한 경우 매핑 플로우 개발을 위한 사용자 인터페이스는 실시간으로 소스 코드를 반영하여 개발 GUI 코드 영역(902)에 수정한 소스 코드(905)에 대응하는 그래픽 블록을 출력할 수 있다. In one embodiment, if a user directly modifies the source code (905), the user interface for developing a mapping flow can reflect the source code in real time and output a graphic block corresponding to the modified source code (905) in the development GUI code area (902).

이를 통하여, 개발자들은 개발 도구 팔레트와 개발 GUI 코드 영역(902)을 통하여 매핑 프로그램을 시각적으로 구성하고 이를 소스 코드(905)로 변환하여 확인할 수 있다. Through this, developers can visually configure a mapping program through the development tool palette and development GUI code area (902) and convert it into source code (905) for verification.

다만, 프로그래밍에 익숙하지 않은 개발자는 본 발명의 사용자 인터페이스를 통하여 손쉽게 접근할 수 있으나, 프로그래밍에 익숙한 개발자에게는 프로그램을 압축적으로 보여주는 소스 코드 방식이 보다 더 익숙할 수 있고, 다량의 매핑이 반복적으로 수행되는 매핑 프로그램의 흐름에서는 소스 코드 방식이 보다 생산성이 높을 수 있다. However, developers who are not familiar with programming can easily access the user interface of the present invention, but developers who are familiar with programming may be more familiar with the source code method that compresses the program and may be more productive in the flow of a mapping program in which a large amount of mapping is repeatedly performed.

즉, 본 발명을 통해 개발자는 개인의 성향에 따라 소스 코드 방식의 개발 소스 코드 영역(904)을 직접 수정하거나 개발 GUI 코드 영역(902)의 그래픽 블록을 드래그 앤 드롭하는 방식을 선택적으로 이용할 수 있다. That is, through the present invention, developers can selectively use the method of directly modifying the development source code area (904) in the source code manner or dragging and dropping the graphic blocks in the development GUI code area (902) according to their personal preferences.

이러한 GUI 기반의 손쉬운 매핑 프로그램 정의 도구는 사용자 친화적인 인터페이스와 시각적 프로그래밍 방식을 통해 개발자들이 복잡한 매핑 로직을 쉽게 구현하고 관리할 수 있도록 지원한다. These GUI-based, easy-to-use mapping program definition tools enable developers to easily implement and manage complex mapping logic through a user-friendly interface and visual programming approach.

도 31은 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면이다. FIG. 31 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.

일 실시 예에서, 애플리케이션 서비스 제공 방법은 GUI 기반의 라이브러리를 활용하여 매핑 플로우 개발을 위한 사용자 인터페이스(User Interface, UI)를 제공할 수 있다. 이때, 매핑 플로우를 개발 또는 편집하기 위한 GUI 도구로 Google 사의 Blockly 라이브러리를 활용할 수 있으나 이에 한정되는 것은 아니다. In one embodiment, the application service provision method may utilize a GUI-based library to provide a user interface (UI) for developing mapping flows. In this case, Google's Blockly library may be utilized as a GUI tool for developing or editing mapping flows, but is not limited thereto.

보다 상세하게는, 매핑 플로우 개발을 위한 사용자 인터페이스는 매핑 프로그램 편집 화면 및 함수 편집 화면을 포함할 수 있다. More specifically, the user interface for developing a mapping flow may include a mapping program editing screen and a function editing screen.

본 도면은 매핑 프로그램 편집 화면을 나타낸다. 일 실시 예에서, 매핑 프로그램 편집 화면은 매핑 프로그램(mapping program) 영역(906), 소스 스키마(Source Schema) 영역(907), 타겟 스키마(Target Schema) 영역(908) 및 매핑 표현(mapping expression) 영역(909)을 포함할 수 있다. This drawing illustrates a mapping program editing screen. In one embodiment, the mapping program editing screen may include a mapping program area (906), a source schema area (907), a target schema area (908), and a mapping expression area (909).

여기에서, 매핑 프로그램 영역(906)은 상술한 개발 도구 팔레트 및 개발 GUI 코드 영역을 포함할 수 있다. 즉, 매핑 프로그램 영역(906)에서 사용자는 필요한 블록(statement)들을 흐름 순으로 배치하여 복잡한 소스 스키마와 타겟 스키마 간의 변환을 수행할 수 있도록 한다. Here, the mapping program area (906) may include the development tool palette and development GUI code area described above. That is, in the mapping program area (906), the user can arrange the necessary blocks (statements) in flow order to perform conversion between a complex source schema and a target schema.

일 실시 예에서, 매핑 프로그램 영역(906)은 소스 코드 영역을 출력하기 위한 아이콘(910)을 포함할 수 있다. 사용자가 아이콘(910)을 선택하는 경우, 사용자 인터페이스는 매핑 프로그램 영역(906) 내에 포함된 개발 GUI 코드에 대응하는 소스 코드를 출력하기 위한 소스 코드 영역 팝업 창을 출력할 수 있다. 여기에서, 소스 코드 영역 팝업 창은 상술한 개발 소스 코드 영역을 포함할 수 있다. In one embodiment, the mapping program area (906) may include an icon (910) for outputting a source code area. When a user selects the icon (910), the user interface may output a source code area pop-up window for outputting source code corresponding to the development GUI code included in the mapping program area (906). Here, the source code area pop-up window may include the development source code area described above.

또한, 일 실시 예에서, 사용자는 매핑 프로그램 영역(906) 안에 출력 중인 개발 GUI 코드 중 맵(MAP) 블록을 선택할 수 있다. 이에 따라, 사용자 인터페이스는 맵 블록에 대응하는 소스 스키마 및 타겟 스키마를 각각 소스 스키마 영역(907) 및 타겟 스키마 영역(908)에 출력할 수 있다. Additionally, in one embodiment, a user may select a MAP block from among the development GUI codes being output within the mapping program area (906). Accordingly, the user interface may output the source schema and target schema corresponding to the MAP block to the source schema area (907) and target schema area (908), respectively.

보다 상세하게는, 소스 스키마 영역(907)은 변환하기 전의 데이터 스키마에 대한 정보를 나타낸다. 일 실시 예에서, 사용자는 소스 스키마에 대한 정보를 추가하거나 삭제할 수 있다. More specifically, the source schema area (907) represents information about the data schema before conversion. In one embodiment, a user can add or delete information about the source schema.

타겟 스키마 영역(908)은 변환 후의 데이터 스키마에 대한 정보를 나타낸다. The target schema area (908) represents information about the data schema after conversion.

소스 스키마 영역(907)과 타겟 스키마 영역은 소스 스키마와 타겟 스키마 노드 간의 연결을 쉽게 할 수 있도록 한다. The source schema area (907) and the target schema area facilitate connections between source schema and target schema nodes.

또한, 일 실시 예에서 사용자 인터페이스는 소스 스키마에 포함된 노드와 타겟 스키마에 포함된 노드의 매핑 라인(line)을 출력할 수 있다. 이를 통하여, 사용자는 소스 스키마의 노드가 어떤 타겟 스키마의 노드와 매핑되는지 여부를 시각적으로 알 수 있다. Additionally, in one embodiment, the user interface may output a mapping line between nodes contained in the source schema and nodes contained in the target schema. This allows the user to visually determine whether a node in the source schema is mapped to a node in a target schema.

또한, 다른 일 실시 예에서 사용자 인터페이스는 소스 스키마에 포함된 노드를 선택한 뒤 타겟 스키마에 포함된 노드로 드래그 앤 드롭하는 입력 신호를 수신하는 경우, 자동으로 해당 매핑 식을 매핑 표현 영역(909)에 출력할 수 있다. Additionally, in another embodiment, when the user interface receives an input signal for selecting a node included in the source schema and then dragging and dropping it to a node included in the target schema, the user interface can automatically output the corresponding mapping formula to the mapping expression area (909).

매핑 표현 영역(909)은 실제 노드 간의 매핑들을 수행하는 영역으로 앞선 블록(Statement)들 중 매핑 블록을 선택할 때 표시되어 각 노드 간의 매핑 식을 여러 개 삽입할 수 있도록 한다. 즉, 매핑 표현의 세부 값(value)들을 설정하는 영역에 대응한다. 이에 대하여는 후술하도록 한다. The mapping expression area (909) is an area that performs mappings between actual nodes. It is displayed when a mapping block is selected from the preceding blocks (Statements), allowing multiple mapping expressions to be inserted between each node. In other words, it corresponds to an area that sets detailed values of the mapping expression. This will be described later.

도 32는 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면이다. FIG. 32 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.

매핑 표현 영역(909)은 실제 노드 간의 매핑을 수행하는 영역에 대응한다. 일 실시 예에서, 사용자가 매핑 프로그램 영역(906)에 포함된 블록들 중 맵 블록(Map block)을 선택하면, 사용자 인터페이스는 매핑 표현 영역(909) 상에 매핑 블록에 포함되는 경로(Path), 데이터 유형(예를 들어, String), 함수(function), 입력 값(Arguments)을 입력할 수 있는 GUI 블록을 제공할 수 있다. The mapping expression area (909) corresponds to an area that performs mapping between actual nodes. In one embodiment, when a user selects a map block among the blocks included in the mapping program area (906), the user interface may provide a GUI block that allows the user to input a path, data type (e.g., String), function, and input value (Arguments) included in the mapping block on the mapping expression area (909).

이에 따라, 사용자는 함수 블록을 선택하여 매핑 블록에서 사용되는 다양한 함수 중 하나를 선택할 수 있다. 매핑 블록에서 사용되는 다양한 함수에 대하여는 후술하도록 한다. Accordingly, the user can select a function block and choose one of the various functions used in the mapping block. The various functions used in the mapping block are described below.

도 33은 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면이다. FIG. 33 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.

일 실시 예에서, 매핑 플로우 개발을 위한 사용자 인터페이스는 스키마 편집 화면을 제공할 수 있다. 여기에서, 스키마 편집 화면은 스키마 편집 영역(911)과 주석 영역(912)을 포함할 수 있다. In one embodiment, a user interface for developing a mapping flow may provide a schema editing screen. Here, the schema editing screen may include a schema editing area (911) and an annotation area (912).

상술한 바와 같이 스키마 편집 영역(911)은 사용자가 매핑 플로우에 사용되는 스키마를 편집하는 영역으로, 본 도면에서는 예시를 나타낸다. 여기에서, 스키마 편집 영역(911)은 데이터의 구조를 나타내며, 이름을 가진 노드들의 계층적인 구조를 나타낼 수 있다. 여기에서, 각 노드들은 유형(Type)으로 Int, String 등을 가질 수 있다. 예를 들어, 사용자는 매핑 프로그램 영역에서 샘플 노드를 작성할 수 있으며, 각각 노드 별로 데이터 유형이나 구조를 설정할 수 있다. 예를 들어, “String”은 문자열 데이터 유형을 나타내고, “Int”는 정수 데이터 유형을 나타낸다. As described above, the schema editing area (911) is an area where the user edits the schema used in the mapping flow, and an example is shown in this drawing. Here, the schema editing area (911) represents the structure of data and can represent a hierarchical structure of nodes with names. Here, each node can have a type such as Int or String. For example, the user can create a sample node in the mapping program area and set the data type or structure for each node. For example, “String” represents a string data type, and “Int” represents an integer data type.

주석(Annotation) 영역(912)은 데이터의 계층적인 구조 외에 해당 데이터가 텍스트로 표현될 때(직렬화) 필요한 정보를 편집하는 영역에 대응한다. 또한, 주석 영역(912)은 데이터의 계층적인 구조 외에 텍스트에서 해당 데이터로 인지(파싱, 역직렬화)할 때에 추가적으로 필요한 정보를 편집하는 영역에 대응한다. 이에 따라, 주석 영역(912)은 주석 리스트(913)를 포함할 수 있다. 여기에서, 주석 리스트(913)는 주석 이름과 문서 유형(Document Type)을 포함할 수 있다. The annotation area (912) corresponds to an area for editing information required when the data is expressed as text (serialization) in addition to the hierarchical structure of the data. In addition, the annotation area (912) corresponds to an area for editing information required additionally when recognizing (parsing, deserializing) the data from text in addition to the hierarchical structure of the data. Accordingly, the annotation area (912) may include an annotation list (913). Here, the annotation list (913) may include an annotation name and a document type.

이때, 각 주석은 노드 별로 여러 개 추가될 수 있으며, 같은 이름의 주석이 여러 개 추가될 수 없다. 각 주석은 문서 유형(XML, JSON)에 따라 여러 종류가 있으며, 각 주석 별로 고유한 속성(argument)을 가질 수 있다. At this time, multiple comments can be added per node, and multiple comments with the same name cannot be added. Each comment can have several types depending on the document type (XML, JSON), and each comment can have unique properties (arguments).

예를 들어, “ZmlAttribute”는 해당 노드가 XML로 직렬화 또는 역직렬화될 때, 이 노드는 XML의 element가 아닌 Attribute임을 나타낼 수 있다. For example, “ZmlAttribute” can indicate that when the node is serialized or deserialized to XML, it is an Attribute rather than an XML element.

또한, 주석 영역(912)은 사용자 주석 리스트(914)를 더 포함할 수 있다. 여기에서, 사용자 주석 리스트(914)는 기존의 주석에 대응하는 고유 속성(argument)으로 name과 namespace을 더 추가할 수 있으나 필수 값은 아니다. 즉, name과 namespace 모두 선택적(optional)으로 추가할 수 있다. 여기에서, name은 해당 argument의 역할이나 의미를 설명하기 위해 사용될 수 있으며, namespace는 속성이 속하는 논리적인 그룹을 식별하기 위해 URI(Uniform Resource Identifier) 형식으로 표현될 수 있다. 상술한 예를 들어, “XMLAttribute”에서 추가 속성으로 name은 XML Attribute 이름이 노드 이름과 다를 경우 지정할 수 있으며, namespace는 해당 XML Attribute가 특정 XML 네임스페이스에 속할 경우 지정할 수 있다. In addition, the annotation area (912) may further include a user annotation list (914). Here, the user annotation list (914) may further add name and namespace as unique attributes (arguments) corresponding to existing annotations, but they are not mandatory values. That is, both name and namespace may be optionally added. Here, the name may be used to describe the role or meaning of the corresponding argument, and the namespace may be expressed in the form of a URI (Uniform Resource Identifier) to identify a logical group to which the attribute belongs. For example, in the above-described example, in “XMLAttribute”, the name may be specified as an additional attribute when the XML Attribute name is different from the node name, and the namespace may be specified when the XML Attribute belongs to a specific XML namespace.

이들은 이후 XML 또는 JSON과의 상호작용에서 사용되며 데이터를 직렬화하거나 역직렬화하는 과정에서 어떤 멤버가 어떤 방식으로 처리되어야 하는지를 나타낼 수 있다. These are later used in interactions with XML or JSON and can indicate which members should be handled in which way during the process of serializing or deserializing data.

도 34는 개시한 실시 예 중 매핑 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시한 도면이다. FIG. 34 is a drawing showing an example of providing a user interface for developing a mapping flow among the disclosed embodiments.

상술한 바와 같이 사용자는 매핑 블록에 포함되는 함수를 커스터마이징(customizing)할 수 있다. 매핑 프로그램에서 어떤 데이터를 소스 스키마에서 타겟 스키마로 매핑하려고 할 때 필요한 함수를 만들어 매핑 표현 영역 안에서 사용할 수 있다. As described above, users can customize the functions included in the mapping block. When mapping programs attempt to map data from a source schema to a target schema, they can create the necessary functions and use them within the mapping expression area.

일 실시 예에서, 매핑 플로우 개발을 위한 사용자 인터페이스가 제공하는 함수 편집 화면은 함수 리스트 영역(915)과 편집 영역(916)을 포함할 수 있다. In one embodiment, a function editing screen provided by a user interface for developing a mapping flow may include a function list area (915) and an editing area (916).

함수 리스트 영역(915)은 사용자가 함수를 커스터마이징(customizing)할 수 있는 영역을 나타낸다. 예를 들어, 사용자는 함수를 생성하고 함수에 대한 파라미터의 개수를 설정할 수 있다. 예를 들어, “concat”함수는 문자열을 이어 붙이는 역할을 수행하기 때문에 주어진 문자열들을 하나로 합쳐서 새로운 문자열을 생성하는 함수이다. 이에 따라, “”함수는 파라미터로 2개의 문자열을 입력받을 수 있다. The function list area (915) represents an area where users can customize functions. For example, users can create functions and set the number of parameters for the function. For example, the "concat" function concatenates strings, so it is a function that combines given strings to create a new string. Accordingly, the "" function can receive two strings as parameters.

함수 편집 화면에 포함된 +버튼을 통해 사용자는 함수 리스트에 함수를 추가할 수 있다. 또한, 편집 버튼을 통해 함수 리스트 영역에 출력된 함수들을 편집할 수 있고, 삭제 버튼을 통해 함수 리스트 영역(915)에 출력된 함수들을 삭제할 수 있다. The + button included in the function editing screen allows users to add functions to the function list. Additionally, the edit button allows users to edit functions displayed in the function list area, and the delete button allows users to delete functions displayed in the function list area (915).

편집 영역(916)은 함수 리스트 영역(915)에서 선택된 함수에 대한 정보를 편집하는 영역에 대응한다. The editing area (916) corresponds to an area for editing information about a function selected in the function list area (915).

여기에서, 각 함수들은 자체적인 동작을 수행하며, 프로그래밍이나 데이터 처리 작업에서 유용하게 활용될 수 있다. 사용자는 실제 사용되는 언어나 컨텍스트에 따라 다른 구현 방식과 문법으로 함수를 생성할 수 있다. Here, each function performs its own specific task and can be utilized effectively in programming or data processing tasks. Users can create functions with different implementation methods and syntax depending on the actual language or context in use.

도 35는 실시 예에 따른 애플리케이션 서비스 제공 장치가 통합 패키지를 생성 및 테스트하는 예를 개시하는 도면FIG. 35 is a drawing disclosing an example of an application service providing device according to an embodiment creating and testing an integrated package.

도시한 예에서 애플리케이션 서비스 제공 장치는 매니저 시스템(2000)을 포함할 수 있다. 이 경우, 매니저 시스템(2000)은 애플리케이션 서비스 매니저(2100)와 데이터베이스(2200)를 포함할 수 있다. In the illustrated example, the application service providing device may include a manager system (2000). In this case, the manager system (2000) may include an application service manager (2100) and a database (2200).

애플리케이션 서비스 매니저(2100)는 클라이언트(310)에게 통합 패키지에 대한 통합 플로우(integration flow)의 개발 도구를 포함하는 사용자 인터페이스를 제공하고, 클라이언트(310)의 사용자에 의한 드래그 앤 드롭(drag & drop) 방식의 GUI(graphical user interface) 기반 개발 도구를 통한 통합 패키지를 생성할 수 있다. The application service manager (2100) provides a user interface including a development tool for an integration flow for an integration package to the client (310), and allows the user of the client (310) to create an integration package through a drag & drop type GUI (graphical user interface)-based development tool.

일 실시 예에서, 애플리케이션 서비스 매니저(2100)는 사용자 인터페이스 처리부(921), 통합 패키지 생성부(922), 통합 패키지 테스트부(923) 및 통합 패키지 제공부(924)를 포함할 수 있다. In one embodiment, the application service manager (2100) may include a user interface processing unit (921), an integrated package generation unit (922), an integrated package testing unit (923), and an integrated package providing unit (924).

사용자 인터페이스 처리부(921)는 클라이언트(310)에게 통합 패키지에 대한 통합 플로우(integration flow)의 개발 도구를 포함하는 사용자 인터페이스를 제공할 수 있다. 일 실시 예에서, 통합 패키지의 통합 플로우에 대한 정보는 편집 가능한 형태로 데이터베이스(2200)에 저장되어 있을 수 있다. The user interface processing unit (921) may provide a user interface including a development tool for an integration flow for an integrated package to the client (310). In one embodiment, information about the integration flow of the integrated package may be stored in an editable form in a database (2200).

일 실시 예에서, 클라이언트(310)로부터 통합 플로우의 개발 도구에 대한 입력 신호를 수신함에 따라, 통합 패키지 생성부(922)는 입력 신호에 대응하는 통합 패키지를 생성할 수 있다. In one embodiment, upon receiving an input signal for the development tool of the integrated flow from the client (310), the integrated package generation unit (922) can generate an integrated package corresponding to the input signal.

일 실시 예에서, 사용자 인터페이스 내에서 클라이언트(310)의 사용자에 의한 개발 도구에 대응하는 그래픽 블록을 선택하고, 개발 GUI 코드 영역으로 드래그 앤 드롭하는 입력 신호에 기반하여 통합 패키지를 생성할 수 있다. In one embodiment, an integrated package can be created based on an input signal from a user of the client (310) within the user interface by selecting a graphic block corresponding to a development tool and dragging and dropping it into the development GUI code area.

즉, 본 발명에 따르면, 드래그 앤 드랍 방식을 통해 통합 패키지에 대한 통합 플로우를 직관적으로 정의하며, 각각의 그래픽 블록 별로 필요한 파라미터를 입력하는 폼을 제공하여 쉬운 통합 패키지를 생성할 수 있다. 통합 패키지 테스트부(923)는 통합 패키지를 개발워크스페이스(3000)에 배포하고, 통합 패키지 테스트 및 디버깅(debugging)을 수행할 수 있다.That is, according to the present invention, the integrated flow for an integrated package can be intuitively defined through a drag-and-drop method, and a form for entering the necessary parameters for each graphic block can be provided, enabling easy creation of an integrated package. The integrated package testing unit (923) can distribute the integrated package to the development workspace (3000) and perform integrated package testing and debugging.

통합 패키지 제공부(924)는 통합 패키지를 상기 클라이언트(310)의 워크스페이스에 배포할 수 있다. 즉, 통합 패키지는 실질적인 통합(Integration)을 위해 클라이언트(310) 별 워크스페이스에 배포되어 실행될 수 있으며, 클라이언트(310)는 통합 패키지를 통해 원하는 통합 작업을 주기적으로 수행할 수 있다.The integrated package provider (924) can distribute the integrated package to the workspace of the client (310). That is, the integrated package can be distributed and executed in the workspace of each client (310) for actual integration, and the client (310) can periodically perform desired integration tasks through the integrated package.

일 실시 예에서, 애플리케이션 서비스 제공 장치는 인스턴스 시스템(미도시)을 더 포함할 수 있다. 이 경우, 통합 패키지의 실행 또는 테스트 전에 통합 플로우에 대한 정보는 통합 패키지로 패키징되어 인스턴스 시스템에 설치되어 실행될 수 있다.In one embodiment, the application service providing device may further include an instance system (not shown). In this case, information about the integrated flow may be packaged into an integrated package and installed and executed on the instance system prior to execution or testing of the integrated package.

이후, 통합 패키지의 실행 시, 통합 패키지는 애플리케이션 서비스 매니저(2100)의 메시지 박스, 인스턴스 시스템의 에이전트 어댑터 및 코디네이터의 채널 서비스과 정보를 교환하여 클라이언트(310)와 파트너가 거래할 수 있는 여러 가지 요구사항을 구현하도록 할 수 있다.Thereafter, when the integrated package is executed, the integrated package can exchange information with the message box of the application service manager (2100), the agent adapter of the instance system, and the channel service of the coordinator to implement various requirements that the client (310) and the partner can transact with.

도 36은 실시 예에 따른 통합 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시하는 도면FIG. 36 is a drawing disclosing an example of providing a user interface for developing an integrated flow according to an embodiment.

일 실시 예에서, 본 발명의 통합 플로우 개발을 위한 사용자 인터페이스는 개발 도구 팔레트와 개발 GUI 코드 영역을 포함할 수 있다. In one embodiment, a user interface for developing an integrated flow of the present invention may include a development tool palette and a development GUI code area.

여기에서, 개발 도구 팔레트는 통합 패키지에서 사용되는 언어의 구조 및 함수들에 대응하는 그래픽 블록들을 포함할 수 있다. 즉, 개발 도구 팔레트는 통합 패키지에서 사용되는 키워드의 목록 전부를 포함할 수 있다. 예를 들어, 개발 도구 팔레트는 통합 패키지에 포함되는 기능들인 커넥터(connector), 서비스(service), 프로세서(processor), 컨트롤 플로우(control flow), 모디파이어(modifier) 각각에 대한 제어 구조 및 함수들에 대응하는 그래픽 블록을 포함할 수 있으나, 이에 제한되지 않고 다양한 기능들이 그래픽 블록으로 구현될 수 있다. 예를 들어, 커넥터는 통합 플로우에 대한 라우트의 시작을 나타내는 “from”블록(즉, From Connector)과 서비스, 어댑터 등의 호출, 데이터의 저장 등. 개발 환경에서 개발되는 통합 플로우가 구현될 경우, 외부로의 동작을 나타내는 “to”블록(즉, To Connector)을 포함할 수 있다. Here, the development tool palette can include graphic blocks corresponding to the structure and functions of the language used in the integration package. That is, the development tool palette can include the entire list of keywords used in the integration package. For example, the development tool palette can include graphic blocks corresponding to the control structures and functions for each of the functions included in the integration package, such as connectors, services, processors, control flows, and modifiers, but is not limited thereto, and various functions can be implemented as graphic blocks. For example, a connector can include a “from” block (i.e., From Connector) that indicates the start of a route for the integration flow, and a “to” block (i.e., To Connector) that indicates an operation to the outside, such as calling a service, adapter, etc., or storing data. When an integration flow developed in a development environment is implemented, it can include.

일 실시 예에서, 컨슈머에 해당하는 From Connector는 통합 패키지 내 라우트를 등록하여 라우트 간 직접 호출하는 다이렉트(direct), 라우터가 설정된 주기에 따라 실행하고 주기적으로 소스 데이터를 외부로부터 전달받아 수행하는 경우 사용되는 타이머(timer), 채널을 등록하고 특정 채널이 호출됐을 때 라우팅을 시작하는 채널(channel), 주기적으로 처리 대기 상태의 메시지를 가져와 라우트를 실행하는 메시지 박스(message box), 또는 등록된 FTP 서비스 경로에 문서가 있는지 확인하고 문서가 존재할 경우 라우트를 시작하는 에프티피(FTP) 중 적어도 하나를 포함할 수 있다.In one embodiment, a From Connector corresponding to a consumer may include at least one of a direct that registers a route within an integrated package and directly calls between routes, a timer that is used when a router runs according to a set cycle and periodically receives and performs source data from the outside, a channel that registers a channel and starts routing when a specific channel is called, a message box that periodically fetches a message in a waiting state for processing and executes a route, or an FTP that checks whether a document exists in a registered FTP service path and starts a route if a document exists.

일 실시 예에서, 송신자, 수신자, 메시지 유형(message type) 등의 정보가 메시지에 포함되어 있어 메시지를 파싱해야되는 경우, From Connector의 메시지 박스를 사용하여 해당 라우트가 종료되기 전 업데이트 필드가 추가되어 메시지의 필드 값이 변경될 수 있다.In one embodiment, if the message contains information such as sender, receiver, message type, etc. and needs to be parsed, the From Connector's message box can be used to add an update field before the route is terminated so that the field values of the message can be changed.

일 실시 예에서, 프로듀서에 해당하는 To Connector는 동일한 통합 패키지 내 다른 라우트를 호출하는 다이렉트, 특정 채널을 호출하는 채널, 익스체인지 바디(exchange body)의 내용을 저장하는 메시지 박스, 워크스페이스 내 다른 채널을 호출하는 채널 또는 등록된 FTP 서비스로 문서를 전송하는 에프티피(FTP) 중 적어도 하나를 포함할 수 있다.In one embodiment, a To Connector corresponding to a producer may include at least one of a direct that calls another route within the same integration package, a channel that calls a specific channel, a message box that stores the contents of an exchange body, a channel that calls another channel within the workspace, or an FTP that transfers a document to a registered FTP service.

일 실시 예에서, To Connector의 메시지 박스는 사용자 필드 기능을 포함할 수 있다. 이 경우, 통합 플로우 내에서 원하는 정보가 사용자 필드에 저장될 수 있으며, 이를 통해 검색이 수행될 수 있다. 일 실시 예에서, 메시지 박스에 문서를 저장하기 전에 익스체인지 헤더(exchange header)에 사용자 필드가 추가될 수 있다. 예를 들어, 에이전트에서 문서를 수신할 때, 사용자 필드(예: channelId)를 통해 에이전트 채널을 구분하기 때문에 사용자 필드가 추가될 수 있다. In one embodiment, the To Connector's message box may include a user field feature. In this case, desired information within the integration flow may be stored in the user field, allowing for retrieval. In one embodiment, the user field may be added to the exchange header before storing the document in the message box. For example, when receiving a document from an agent, the user field may be added because the agent channel is identified by a user field (e.g., channelId).

통합 플로우에서 메시지 박스에 문서가 저장되는 경우, Control Number 등의 추가적인 정보에 기반하여 검색이 수행될 수 있다. When documents are saved to message boxes in an integrated flow, searches can be performed based on additional information such as control numbers.

서비스는 통합 플로우에 대한 서비스의 접근을 제공하거나 현재 ControlNumber, 메모리 캐시 서비스를 제공할 수 있다. 프로세서는 통합 플로우 상의 메시지의 처리를 정의할 수 있다. 컨트롤 플로우는 통합 플로우 상의 루프, 분기 처리 등을 제공할 수 있다. 모디파이어는 익스체인지(exchange)의 값 get, set 등의 기능을 제공할 수 있다. A service can provide access to the integrated flow, or it can provide a current ControlNumber or memory cache service. A processor can define the processing of messages within the integrated flow. A control flow can provide looping and branching capabilities within the integrated flow. A modifier can provide functions such as getting and setting exchange values.

다만, 본 도면에 포함된 함수들은 예시일 뿐으로 다른 함수들이 포함될 수 있음은 물론이다. However, the functions included in this drawing are only examples and other functions may be included.

일 실시 예에서, 애플리케이션 서비스 제공 방법은 개발 도구 팔레트 및 개발 GUI 코드 영역을 포함하는 사용자 인터페이스를 제공할 수 있다. 사용자 인터페이스 내에서 사용자는 개발 도구 팔레트에 포함된 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역으로 드래그 앤 드롭할 수 있다. In one embodiment, the method for providing an application service may provide a user interface including a development tool palette and a development GUI code area. Within the user interface, a user may select a graphic block included in the development tool palette and then drag and drop it into the development GUI code area.

예를 들어, 애플리케이션 서비스 제공 장치가 사용자 인터페이스를 통해 클라이언트(310)로부터 사용자에 의한 제 1 함수(예를 들어, “from” 블록)의 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역으로 드래그 앤 드롭(drag & drop)하는 입력 신호를 수신하는 경우, 제 1 함수의 그래픽 블록을 개발 GUI 코드 영역에서 출력할 수 있다. 이때, 드래그 앤 드롭하는 입력 신호는 예시일 뿐으로 클라이언트(310)로부터 수신하는 다른 기 설정된 입력 신호를 포함할 수 있다. For example, if the application service providing device receives an input signal from the client (310) via the user interface to select a graphic block of the first function (e.g., a “from” block) and then drag and drop it into the development GUI code area, the graphic block of the first function can be output from the development GUI code area. At this time, the drag and drop input signal is only an example and may include other preset input signals received from the client (310).

여기에서, “from” 블록은 다른 블록들을 순차적으로 포함하는 블록으로 통합 플로우의 최상위 블록이어야 한다. 즉, “from” 블록은 통합 플로우의 시작과 끝을 포함하는 블록에 대응한다. Here, the "from" block must be the top-level block of the integrated flow, which sequentially includes other blocks. In other words, the "from" block corresponds to the block containing the start and end of the integrated flow.

이후, 사용자 인터페이스가 사용자로부터 제 2 함수(예를 들어, “switch” 블록)의 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역으로 드래그 앤 드롭하는 입력 신호를 수신하는 경우, 제 2 함수의 그래픽 블록을 개발 GUI 코드 영역에서 출력할 수 있다. 이때, 개발 GUI 코드 영역은 자동으로 제 2 함수를 제 1 함수 안에 포함시켜 구성할 수 있다. Thereafter, when the user interface receives an input signal from the user to select a graphic block of a second function (e.g., a “switch” block) and drag and drop it into the development GUI code area, the graphic block of the second function can be output from the development GUI code area. At this time, the development GUI code area can be configured to automatically include the second function within the first function.

이후, 사용자 인터페이스가 사용자로부터 제 3 함수(예를 들어, “case” 블록)의 그래픽 블록을 선택한 뒤 개발 GUI 코드 영역으로 드래그 앤 드롭하는 입력 신호를 수신하는 경우, 제 3 함수의 그래픽 블록을 개발 GUI 코드 영역에서 출력할 수 있다. 이때, 개발 GUI 코드 영역은 자동으로 제 3 함수를 제 2 함수 안에 포함시켜 구성할 수 있다. Thereafter, when the user interface receives an input signal from the user to select a graphic block of a third function (e.g., a “case” block) and drag and drop it into the development GUI code area, the graphic block of the third function can be output from the development GUI code area. At this time, the development GUI code area can be configured to automatically include the third function within the second function.

뿐만 아니라, 개발 GUI 코드 영역은 각 함수의 그래픽 블록에 포함된 파라미터의 입력 칸을 그대로 출력할 수 있다. 상술한 “from” 블록을 참고하면, 개발 도구 팔레트에서 “from” 블록은 라우트(route)의 시작을 정의하는 블록으로 데이터를 가져오기 위한 객체를 정해야 한다. 이에 따라, 개발 GUI 코드 영역에서도 “from” 블록을 출력하면서, 파라미터의 입력 칸을 그대로 출력할 수 있다.In addition, the development GUI code area can output the input fields of the parameters included in the graphic blocks of each function as they are. Referring to the "from" block described above, the "from" block in the development tool palette defines the start of a route and must specify an object for retrieving data. Accordingly, the development GUI code area can also output the "from" block while outputting the input fields of the parameters as they are.

이후, 사용자는 “from” 블록의 파라미터의 입력 칸에 파라미터를 직접 입력할 수 있다. 예를 들어, 사용자는 “from” 블록에 변수이름을 “MessageBox:AA_IN”로 입력할 수 있다. 즉, 애플리케이션 서비스 제공 장치가 사용자 인터페이스를 통해 개발 GUI 코드 영역에 출력된 그래픽 블록의 파라미터에 대한 입력 신호를 수신할 수 있다. 이에 따라, 개발 코드는 MessageBox AA_IN으로부터 데이터를 가져올 수 있다. Afterwards, the user can directly input parameters into the input fields of the "from" block's parameters. For example, the user can input the variable name "MessageBox:AA_IN" into the "from" block. That is, the application service provider can receive input signals for the parameters of the graphic block output in the development GUI code area through the user interface. Accordingly, the development code can retrieve data from the MessageBox AA_IN.

이와 같이 본 발명의 통합 패키지 개발을 위한 사용자 인터페이스는 사용자가 개발 도구 팔레트에 포함된 그래픽 블록을 이용하여 개발 GUI 코드 영역에서 코드 구조를 형성하는데 시각적인 도움을 줄 수 있다. 이를 통해 사용자가 개발 스크립트에 친숙하지 않다고 비교적 간편하게 통합 플로우를 정의할 수 있다는 장점이 있다.As such, the user interface for developing the integrated package of the present invention can provide visual assistance to users in structuring code in the development GUI code area using graphic blocks included in the development tool palette. This has the advantage of allowing users, even those unfamiliar with development scripts, to define the integrated flow with relative ease.

또한, 본 발명에 따르면, 개발된 통합 플로우의 아이템은 패키징 후 배포되어 런타임에 미리 저장된 해석기에 의해 실행 시점의 오픈 소스 프레임 워크에 기반한 프로그램으로 변환되어 실행 가능한 형태의 통합 패키지가 생성될 수 있다. In addition, according to the present invention, the items of the developed integrated flow can be distributed after packaging and converted into a program based on an open source framework at the time of execution by a pre-stored interpreter at runtime, thereby generating an integrated package in an executable form.

도 37은 실시 예에 따른 매핑을 수행하는 통합 플로우 개발을 위한 사용자 인터페이스를 제공하는 예를 개시하는 도면 FIG. 37 is a drawing disclosing an example of providing a user interface for developing an integrated flow that performs mapping according to an embodiment.

본 발명의 일 실시 예를 통하여 저장된 매핑 프로그램에 기반하여 매핑을 수행하기 위한 통합 플로우를 개발하는 실시 예를 설명하도록 한다. 특히, 본 도면은 라우트의 입출력(From connect/To connector) 코딩 요소 중 “toBlock”에 대한 정보를 설정하는 사용자 인터페이스를 나타낸다. An embodiment of the present invention will now be described in detail with respect to developing an integrated flow for performing mapping based on a stored mapping program. Specifically, the drawing illustrates a user interface for setting information regarding the "toBlock" element among the route input/output (From connect/To connector) coding elements.

즉, 클라이언트(310)의 사용자는 본 발명의 사용자 인터페이스를 이용하여 커넥터를 이용한 통합 플로우를 개발할 수 있고, 이때, “”에 대한 변수 파라미터를 설정할 수 있다. That is, a user of the client (310) can develop an integrated flow using a connector by using the user interface of the present invention, and at this time, can set a variable parameter for “”.

예를 들어, 사용자는 “toBlock”의 매핑 파일(mappingFile)을 설정할 수 있고, 소스타입(sourceType) 및 타겟타입(targetType)을 설정할 수 있다. For example, a user can set a mapping file (mappingFile) of “toBlock” and set the source type (sourceType) and target type (targetType).

본 도면을 예로 들면, ame/AME_ADAPTER라는 채널이 매핑을 수행하는 어댑터를 호출하는 과정을 설명한다. This diagram illustrates the process by which a channel called ame/AME_ADAPTER calls an adapter that performs mapping.

mappingFile은 상술한 실시 예를 통하여 저장된 매핑 프로그램 파일을 나타내고, sourceType은 소스 문서 데이터의 유형(예를 들어, EDI, XML, JSON)을 나타내고, targetType은 타겟 문서 데이터의 유형을 나타낸다. mappingFile represents a mapping program file saved through the above-described embodiment, sourceType represents the type of source document data (e.g., EDI, XML, JSON), and targetType represents the type of target document data.

일 실시 예에서, 매핑이 실제로 수행되면 통합 플로우 흐름 상의 데이터(body data)가 소스타입에서 타겟타입으로 변환하게 된다. 즉, 소스 문서 데이터의 유형이 EDI였다면, 매핑 프로그램을 통해 타겟 문서 데이터의 유형은 JSON으로 변환될 수 있다. In one embodiment, when mapping is actually performed, data (body data) in the integration flow is converted from a source type to a target type. That is, if the source document data type is EDI, the target document data type can be converted to JSON through the mapping program.

웹 EDI 서비스란, EDI 시스템을 갖추고 있지 못한 고객이 웹 시스템을 이용하여 협력사와의 EDI 서비스를 통한 기업 간의 발주, 수주, 대금 청구 및 배송 정보 등의 업무를 자동화하여 처리할 수 있다.Web EDI service allows customers who do not have an EDI system to use a web system to automate tasks such as ordering, receiving, billing, and delivery information between companies through EDI services with their partners.

즉, 웹 EDI 서비스 시스템은 공급망 관리에서 중요한 역할을 수행하지만, 여러 제조사의 다양한 시스템을 통합하지 못하는 경우 어려움이 발생할 수 있다. 특히, 전통적인 EDI 시스템에서는 특정 대형 제조업체에 최적화되어 있기 때문에 여러 제조사에 납품하는 공급업체는 각각의 다른 시스템에 맞추어 문서를 수작업해야 하는 부담이 존재한다. In other words, while web EDI service systems play a crucial role in supply chain management, difficulties can arise if they fail to integrate the diverse systems of multiple manufacturers. Specifically, because traditional EDI systems are optimized for specific large manufacturers, suppliers supplying multiple manufacturers face the burden of manually adapting documents to each different system.

이를 위하여, 본 발명에서는 웹 EDI 서비스를 제공함으로써 이러한 문제를 해결하고자 한다. To this end, the present invention seeks to solve this problem by providing a web EDI service.

도 38은 실시 예에 따라 메시지박스를 이용하여 웹 EDI 서비스를 제공하는 예를 개시한 도면이다. FIG. 38 is a drawing disclosing an example of providing a web EDI service using a message box according to an embodiment.

실시 예에 따르면, 웹 EDI 서비스 사용자(157)는 웹 EDI 서비스(156)를 이용할 수 있다. 본 발명의 웹 EDI 서비스는 상술한 애플리케이션 서비스 매니저의 메시지 박스(2110)와 연결되어 제공될 수 있다. According to an embodiment, a web EDI service user (157) can utilize a web EDI service (156). The web EDI service of the present invention can be provided in connection with the message box (2110) of the application service manager described above.

일 실시 예에서, 웹 EDI 서비스 사용자(157)는 웹 EDI 서비스(156) 상에서 드래프트 다큐먼트에 엑셀 파일 등을 업로드할 수 있다. 업로드된 엑셀 파일 등은 특정 메시지 박스(2110)로 보내져 검증 및 변환 프로세스를 거쳐 상대방에게 전송될 수 있다. 여기에서, 상대방은 웹 EDI 서비스 사용자의 파트너사 시스템일 수 있다.In one embodiment, a Web EDI service user (157) can upload an Excel file or the like to a draft document on the Web EDI service (156). The uploaded Excel file or the like can be sent to a specific message box (2110) and transmitted to the other party after going through a verification and conversion process. Here, the other party may be a partner system of the Web EDI service user.

또한, 본 발명의 웹 EDI 서비스(156)는 문서 타입 별 EDI 뷰어(viewer), 에디터(editor), EDI 양식 디자이너(designer)를 지원할 수 있다. 이에 따라, 기업 사용자는 EDI 뷰어와 에디터를 통하여, 개발자는 EDI 양식 디자이너를 통하여 EDI 양식(form) 템플릿(template)를 개발할 수 있다. 이때, 본 발명의 웹 EDI 서비스(156)는 표준 별 Forecast, ASN, Invoice 등의 기본 템플릿을 제공할 수 있다. Additionally, the web EDI service (156) of the present invention can support an EDI viewer, editor, and EDI form designer for each document type. Accordingly, corporate users can develop EDI form templates through the EDI viewer and editor, and developers can develop EDI form templates through the EDI form designer. In this case, the web EDI service (156) of the present invention can provide basic templates for standards such as Forecast, ASN, and Invoice.

또한, 본 발명의 웹 EDI 서비스(156)는 고객 별 구매자 아이템 코드 및 판매자 아이템 코드를 매핑함으로써 고객별 제품 코드를 효과적으로 관리하여 주문 처리 및 추적을 간소화할 수 있고, 고객별 마스터 코드(고객별 carrier code, packaging type 등)를 관리함으로써 공급망 내에서 상품의 운송 및 포장과 관련된 데이터를 일관되게 유지할 수 있다. 이때, 마스터 코드는 뷰어와 에디터에서 참조될 수 있고, 별도의 관리 화면을 통해 관리될 수 있다. 이에 대하여는 후술하도록 한다. Furthermore, the web EDI service (156) of the present invention can effectively manage customer-specific product codes by mapping customer-specific buyer item codes and seller item codes, thereby simplifying order processing and tracking. Furthermore, by managing customer-specific master codes (customer-specific carrier codes, packaging types, etc.), data related to the transportation and packaging of products within the supply chain can be maintained consistently. Master codes can be referenced in viewers and editors and managed through a separate management screen, as will be described later.

이하에서는, 본 발명의 제공하는 웹 EDI 서비스(156)의 개별적인 특징에 대하여 자세히 살펴보도록 한다. Below, the individual features of the web EDI service (156) provided by the present invention will be examined in detail.

이를 통하여, 시간 절약 및 오류 감소, 효율적인 공급망 관리, 비용 절감, 고객 및 파트너와의 관계 강화, 규정 준수 및 보안 강화와 같은 여러가지 이점을 제공할 수 있다. This can provide a number of benefits, including time savings and error reduction, efficient supply chain management, cost savings, stronger relationships with customers and partners, and enhanced compliance and security.

도 39는 실시 예에 따라 메시지박스를 이용하여 웹 EDI 서비스를 제공하는 예를 개시한 도면이다. FIG. 39 is a drawing disclosing an example of providing a web EDI service using a message box according to an embodiment.

본 도면은 웹 EDI 사용자(157)에게 웹 EDI 서비스(156)를 제공하는 일 실시 예를 나타낸다. 이를 위하여, 본 발명은 메시지박스(2110)의 EDI 문서(예를 들어, X.12나 EDIFACT)를 매핑 프로그램 스키마를 통하여 매핑하여 XML(TXT파일) 문서를 출력한 뒤 웹 EDI 서비스(156) 상에 출력할 수 있다. This drawing shows an embodiment of providing a web EDI service (156) to a web EDI user (157). To this end, the present invention can map an EDI document (e.g., X.12 or EDIFACT) of a message box (2110) through a mapping program schema to output an XML (TXT file) document, which can then be output on the web EDI service (156).

보다 상세하게는, 웹 EDI 서비스(156)는 EDI 문서를 바로 엑셀 파일로 변환하지 않고, XML 문서로 변환한 뒤 렌더링 스크립트(groovy)를 통한 렌더링 프로세스를 거쳐 엑셀 파일로 변환할 수 있다. More specifically, the web EDI service (156) can convert an EDI document into an Excel file by converting it into an XML document and then going through a rendering process using a rendering script (groovy), rather than directly converting it into an Excel file.

특히, 렌더링 프로세스에 사용되는 렌더링 스크립트(groovy에 대한 설명은 상술한 바와 같다.)에 입력 데이터로 EDI 문서를 직접 입력하는 것은 문서 구조 및 프로그래밍을 어렵게 하기 때문에 렌더링 스크립트에는 XML 문서를 입력 데이터로 한다. 이를 위하여, 메시지 박스(2110)의 EDI 문서를 XML 문서로 출력한 뒤 렌더링 프로세스에 입력 데이터로 사용할 수 있다. In particular, since directly inputting an EDI document as input data into the rendering script used in the rendering process (the description of groovy is as described above) makes the document structure and programming difficult, the rendering script uses an XML document as input data. To this end, the EDI document in the message box (2110) can be output as an XML document and then used as input data for the rendering process.

일 실시 예에서, 웹 EDI 서비스(156)는 렌더링 프로세스가 실패하는 경우, 변환 전 데이터인 XML 문서(TXT 파일)을 팝업 형식으로 출력할 수 있다. 이를 통하여, 웹 EDI 사용자(157)는 XML 문서(TXT 파일)를 통하여 변환이 어디서 어떻게 잘못된 것인지를 추적할 수 있다. 이에 대하여 자세한 내용은 후술하도록 한다. In one embodiment, the Web EDI service (156) can output the XML document (TXT file) as pre-conversion data in a pop-up format if the rendering process fails. This allows the Web EDI user (157) to track where and how the conversion went wrong through the XML document (TXT file). This will be described in detail later.

이후, 웹 EDI 서비스(156)는 렌더링 프로세스의 출력 데이터인 엑셀 파일을 웹 EDI 사용자(157) 에게 보기 또는 다운로드할 수 있도록 한다. 이때, 엑셀 파일은 PDF 파일 또는 HTML(웹) 파일 등 다른 확장자의 파일이 적용 가능함을 물론이다Afterwards, the web EDI service (156) allows the web EDI user (157) to view or download the Excel file, which is the output data of the rendering process. At this time, it is of course possible to apply the Excel file to files with other extensions, such as PDF files or HTML (web) files.

도 40은 실시 예에 따른 플랫폼의 인터페이스의 일 예를 도시한 도면이다. FIG. 40 is a drawing illustrating an example of an interface of a platform according to an embodiment.

상술한 바에 따라, 본 발명의 애플리케이션 서비스 제공 장치/방법은 다양한 애플리케이션 서비스를 제공할 수 있다. As described above, the application service providing device/method of the present invention can provide various application services.

이때, 클라이언트가 개시하는 시스템에 접속하는 경우, 플랫폼은 적어도 하나 이상의 사용자 인터페이스 메뉴를 제공할 수 있다. At this time, when a client connects to a system that is initiated, the platform may provide at least one user interface menu.

예를 들어, 제 1 사용자 인터페이스 메뉴는 사용자 전용의 워크스페이스와 관련된 사용자 인터페이스 메뉴(예를 들어, 사용자 전용 워크스페이스(workspace), 메시지 박스(Message box), 파트너와 파일 전송 내역(File transfer), 이동단말기로 전송한 메시지(SMS), 및 정보 교환이 EDI와 관련된 경우 해당 표준 매핑에 대한 정보에 대한 옵션)를 포함할 수 있다. For example, a first user interface menu may include user interface menus related to a user-specific workspace (e.g., options for a user-specific workspace, a message box, file transfer history with partners, messages sent to mobile devices (SMS), and information about standard mappings if the information exchange involves EDI).

또 다른 예를 들면, 제 2 사용자 인터페이스 메뉴는 웹 EDI 서비스(156) 메뉴에 대응할 수 있다. 이에 따라, 웹 EDI 사용자는 본 발명이 개시하는 시스템에 접속(로그인)하여 웹 EDI 서비스(156)를 이용할 수 있다. As another example, the second user interface menu may correspond to the Web EDI service (156) menu. Accordingly, a Web EDI user can access (log in) the system disclosed in the present invention and utilize the Web EDI service (156).

도 41은 실시 예에 따른 웹 EDI 서비스의 사용자 인터페이스의 일 예를 도시한 도면이다. FIG. 41 is a diagram illustrating an example of a user interface of a web EDI service according to an embodiment.

클라이언트가 개시하는 시스템에 접속하는 경우, 플랫폼은 웹 EDI 서비스(156)를 위한 사용자 인터페이스 메뉴를 제공할 수 있다. When a client connects to a system initiated by the client, the platform may provide a user interface menu for the Web EDI service (156).

예를 들어, 플랫폼은 인박스 다큐먼트 서비스(Inbox document service, 158), 드래프트 다큐먼트 서비스(draft document service, 159) 및 센트 다큐먼트 서비스(sent document service, 160) 메뉴에 대한 옵션을 제공할 수 있다. For example, the platform may provide options for the Inbox document service (158), the Draft document service (159), and the Sent document service (160) menus.

인박스 다큐먼트 서비스(158)는 플랫폼에 접속한 클라이언트가 수신된 문서를 보기 위한 서비스이며, 드래프트 다큐먼트 서비스(159)는 송신 전에 문서를 업로드 및 변환 테스트(예를 들어, 엑셀 파일에서 XML 파일로)를 수행한 뒤 실제로 송신 요청을 수행하는 서비스이고, 센트 다큐먼트 서비스(160)는 송신된 문서를 보기 위한 서비스이다. 클라이언트는 플랫폼을 통하여 인박스 다큐먼트 서비스(158), 드래프트 다큐먼트 서비스(159) 및 센트 다큐먼트 서비스(160)를 통하여 변환 전 엑셀 파일, 변환 후 원본 XML 파일(TXT 형식)을 모두 확인할 수 있다. 이에 대하여, 자세한 내용을 후술하도록 한다. The Inbox Document Service (158) is a service for clients connected to the platform to view received documents, the Draft Document Service (159) is a service for uploading documents and performing conversion tests (e.g., from an Excel file to an XML file) before transmission, and then actually performing a transmission request, and the Sent Document Service (160) is a service for viewing transmitted documents. Clients can check both the Excel file before conversion and the original XML file (in TXT format) after conversion through the Inbox Document Service (158), the Draft Document Service (159), and the Sent Document Service (160) via the platform. This will be described in detail later.

뿐만 아니라, 플랫폼은 웹 EDI 서비스(156)에 접속하는 사용자를 위한 사용자 정보 관리 메뉴(163)를 제공할 수 있다. 사용자 정보 관리 메뉴(163)는 사용자 정보(User Information)를 제공할 수 있다. 여기에서, 사용자 정보는 사용자 ID, 고객 ID, 사용자 이름(username), 핸드폰 번호, 이메일 주소, 직급, 담당 업무, 타임 존(time zone) 등의 개인 정보를 포함할 수 있다. 또한, 클라이언트는 사용자 정보 관리 메뉴(163)를 통하여, 개인 정보를 변경하거나, 웹 EDI 서비스(156)에 접속 가능한 로그인 비밀번호를 변경할 수 있다. In addition, the platform may provide a user information management menu (163) for users accessing the web EDI service (156). The user information management menu (163) may provide user information. Here, the user information may include personal information such as a user ID, customer ID, user name, mobile phone number, email address, job title, job responsibilities, and time zone. In addition, the client may change personal information or the login password for accessing the web EDI service (156) through the user information management menu (163).

도 42는 실시 예에 따른 인박스 다큐먼트 서비스의 사용자 인터페이스의 일 예를 도시한 도면이다. FIG. 42 is a diagram illustrating an example of a user interface of an inbox document service according to an embodiment.

본 도면은 클라이언트가 플랫폼이 제공하는 인박스 다큐먼트 서비스(158) 메뉴를 선택함에 따라, 플랫폼이 인박스 다큐먼트 서비스(158)의 사용자 인터페이스를 제공하는 실시 예를 설명한다. This drawing illustrates an embodiment in which the platform provides a user interface for an inbox document service (158) when a client selects an inbox document service (158) menu provided by the platform.

보다 상세하게는, 인박스 다큐먼트 서비스(158)는 클라이언트가 수신된 문서에 대한 정보를 출력할 수 있다. 일 실시 예에서, 수신된 문서에 대한 정보는 생성 시간(create time), 메시지 타입, 거래 파트너(Trading Partner), 상태(Status), 보기(view)/다운로드(download) 메뉴를 포함할 수 있다. 여기에서, 메시지 타입은 표준 문서의 번호를 나타낼 수 있다. 예를 들어, ANSI X.12 표준의 경우 3자리 숫자를 사용하고, EDIFACT는 6자리 문자를 사용할 수 있다. 이에 대한 자세한 내용은 표준 문서에 공지되어 있다. 또한, 인박스 다큐먼트 서비스(158)가 제공하는 수신된 문서의 상태는 수신자에게 배송된 상태(Delivered, 변환 후) 또는 배송되기 전 상태(To be delivered, 변환 전)로 나타날 수 있다. More specifically, the inbox document service (158) can output information about the document received by the client. In one embodiment, the information about the received document can include the create time, message type, trading partner, status, and view/download menu. Here, the message type can indicate the number of the standard document. For example, the ANSI X.12 standard uses a three-digit number, and EDIFACT can use a six-digit character. Details about this are disclosed in the standard document. In addition, the status of the received document provided by the inbox document service (158) can be indicated as a status delivered to the recipient (Delivered, after conversion) or a status before being delivered (To be delivered, before conversion).

또한, 인박스 다큐먼트 서비스(158)는 수신된 문서에 대하여 보기 또는 다운로드 옵션을 제공할 수 있다. 이때, 수신된 문서에 대한 보기 또는 다운로드 옵션은 TXT 파일, HTML파일, XLS 파일 및 PDF 파일 등으로 제공될 수 있으며, 특히, 인박스 다큐먼트 서비스(158)는 TXT 파일의 경우, 원본 문서를 팝업 형태로 제공하며, HTML 파일의 경우, HTML 렌더링 팝업 형태로 제공하며, XLS 파일의 경우, 엑셀 파일을 다운로드 형태로 제공하며, PDF 파일의 경우 PDF 파일을 다운로드 형태로 제공하는 것을 특징으로 한다. 다만, TXT 파일, HTML파일, XLS 파일 및 PDF 파일 모두 팝업 형태로 보기 및 파일 그대로 다운로드 기능을 제공할 수 있음은 물론이다. 이에 따라, 클라이언트는 인박스 다큐먼트 서비스(158)를 통하여 원본 문서, 렌더링 프로세스를 수행한 변환 후의 문서를 보거나 다운로드할 수 있다. In addition, the inbox document service (158) can provide a view or download option for the received document. At this time, the view or download option for the received document can be provided as a TXT file, an HTML file, an XLS file, a PDF file, etc., and in particular, the inbox document service (158) is characterized in that in the case of a TXT file, the original document is provided in a pop-up form, in the case of an HTML file, the HTML rendering pop-up form is provided, in the case of an XLS file, the Excel file is provided in a download form, and in the case of a PDF file, the PDF file is provided in a download form. However, it goes without saying that all of the TXT file, HTML file, XLS file, and PDF file can provide a view function in a pop-up form and a download function as a file. Accordingly, the client can view or download the original document or the document after the conversion that performed the rendering process through the inbox document service (158).

또한, 인박스 다큐먼트 서비스(158)는 수신된 문서를 생성 시간, 거래 파트너, 상태, 메시지 타입, 메시지 ID 중 적어도 하나를 기준으로 필터링하여 검색할 수 있다. Additionally, the inbox document service (158) can search for received documents by filtering them based on at least one of creation time, trading partner, status, message type, and message ID.

도 43은 실시 예에 따른 인박스 다큐먼트 서비스의 사용자 인터페이스의 다른 일 예를 도시한 도면이다. FIG. 43 is a diagram illustrating another example of a user interface of an inbox document service according to an embodiment.

본 도면은 클라이언트가 플랫폼이 제공하는 인박스 다큐먼트 서비스(158)가 제공하는 메뉴 중 예를 들어, HTML 파일의 보기 메뉴를 선택한 경우 출력되는 팝업 창(164)을 나타낸다. 인박스 다큐먼트 서비스(158)는 웹 화면 상에서 수신된 문서에 대한 미리보기 창을 팝업으로 제공할 수 있다. 이때, HTML 파일을 예로 들어 설명하였으나 TXT 파일 역시 팝업 창(164)을 통하여 제공될 수 있음은 물론이다. This drawing illustrates a pop-up window (164) displayed when a client selects, for example, the view menu for an HTML file from among the menus provided by the inbox document service (158) provided by the platform. The inbox document service (158) can provide a preview window for a document received on a web screen as a pop-up. Here, an HTML file has been described as an example, but it is of course possible for a TXT file to also be provided through the pop-up window (164).

다른 일 실시 예에서, HTML 파일의 렌더링 프로세스에서 에러가 발생하는 경우, 팝업 창이 출력되지 않고 에러 로그가 출력될 수 있다. 이를 통하여, 클라이언트는 렌더링 프로세스에서 에러가 발생하더라도 변환 전 데이터를 확인할 수 있을 뿐만 아니라 변환이 어디서 어떻게 잘못된 것인지를 추적할 수 있다. 이에 대하여 자세한 내용은 후술하도록 한다. In another embodiment, if an error occurs during the rendering process of an HTML file, an error log may be output instead of a pop-up window. This allows the client to not only check the data before conversion, even if an error occurs during the rendering process, but also track where and how the conversion went wrong. This will be described in more detail later.

도 44는 실시 예에 따른 드래프트 다큐먼트 서비스의 사용자 인터페이스의 일 예를 도시한 도면이다.FIG. 44 is a diagram illustrating an example of a user interface of a draft document service according to an embodiment.

본 도면은 클라이언트가 플랫폼이 제공하는 드래프트 다큐먼트 서비스(159) 메뉴를 선택함에 따라, 플랫폼이 드래프트 다큐먼트 서비스(159)의 사용자 인터페이스를 제공하는 실시 예를 설명한다. This drawing illustrates an embodiment in which the platform provides a user interface for a draft document service (159) when a client selects a draft document service (159) menu provided by the platform.

보다 상세하게는, 드래프트 다큐먼트 서비스(159)를 통하여 클라이언트는 문서를 업로드하고 변환한 뒤 실제로 송신 요청을 수행할 수 있다. More specifically, through the draft document service (159), a client can upload a document, convert it, and then actually perform a transmission request.

일 실시 예에서, 드래프트 다큐먼트 서비스(159)는 생성 메뉴(165)를 통하여 새로운 드래프트 다큐먼트 정보를 제공할 수 있다. 드래프트 다큐먼트 정보는 드래프트 ID(Draft ID), 생성 시간(Create Time), 메시지 타입(Message Type), 타이틀(Title), 파일 이름(File name), 상태(Status), 메시지 ID 및 액션 메뉴를 포함할 수 있다. 여기에서, 드래프트 다큐먼트 서비스(159)가 제공하는 드래프트 다큐먼트의 상태는 드래프트 다큐먼트가 생성된 상태(Created), 업로드 된 상태(Uploaded), 변환된 상태(Verified) 및 송신된 상태(Sent)로 나타날 수 있다. In one embodiment, the draft document service (159) may provide new draft document information through the creation menu (165). The draft document information may include a draft ID, a creation time, a message type, a title, a file name, a status, a message ID, and an action menu. Here, the status of the draft document provided by the draft document service (159) may be indicated as a created status (Created), an uploaded status (Uploaded), a verified status (Verified), and a sent status (Sent).

또한, 드래프트 다큐먼트 서비스(159)는 생성된 드래프트 문서를 생성 시간, 파일 이름, 타이틀, 상태, 메시지 타입, 드래프트 ID 중 적어도 하나를 기준으로 필터링하여 검색할 수 있다. Additionally, the draft document service (159) can search for a generated draft document by filtering it based on at least one of the creation time, file name, title, status, message type, and draft ID.

일 실시 예에서, 드래프트 다큐먼트 서비스(159)는 각 상태에 기초하여 다양한 액션 메뉴를 제공할 수 있다. 일 실시 예에서, 드래프트 다큐먼트 서비스(159)는 드래프트 다큐먼트가 생성된 상태에서, 문서 업로드 메뉴(166)를 제공할 수 있다. 클라이언트는 문서 업로드 메뉴(166)를 통하여 웹 EDI 서비스 상에 문서를 업로드할 수 있다. 이때, 클라이언트는 웹 화면 상에서 엑셀 파일을 직접 업로드할 수 있다. In one embodiment, the draft document service (159) may provide various action menus based on each status. In one embodiment, the draft document service (159) may provide a document upload menu (166) when a draft document has been created. The client may upload a document to the web EDI service through the document upload menu (166). In this case, the client may directly upload an Excel file on the web screen.

일 실시 예에서, 드래프트 다큐먼트 서비스(159)는 드래프트 다큐먼트에 문서가 업로드된 상태에서, 문서의 검증 및 변환 메뉴(167)를 제공할 수 있다. 클라이언트는 검증 및 변환 메뉴(167)를 통하여 업로드된 문서를 검증하고 변환할 수 있다. In one embodiment, the draft document service (159) may provide a document verification and conversion menu (167) when a document is uploaded to the draft document. The client may verify and convert the uploaded document through the verification and conversion menu (167).

일 실시 예에서, 드래프트 다큐먼트 서비스(159)는 드래프트 다큐먼트에 업로드된 문서가 검증되고 변환된 경우, 문서 송신 메뉴(168)를 제공할 수 있다. 클라이언트는 문서 송신 메뉴(168)를 통하여 검증 및 변환된 문서를 송신할 수 있다. 즉, 웹 EDI 사용자는 웹 EDI 서비스를 통하여 업로드한 문서를 송신할 수 있다. 이때, 웹 EDI 서비스는 송신 요청된 문서를 특정 메시지박스로 보내고, 변환 프로세스와 전송 프로세스를 거쳐 웹 EDI 사용자의 파트너 시스템에게 전달할 수 있다. 이때, 웹 EDI 사용자의 파트너 시스템은 예를 들어 ERP 시스템에 대응할 수 있다. In one embodiment, the draft document service (159) may provide a document transmission menu (168) when a document uploaded to the draft document has been verified and converted. The client may transmit the verified and converted document through the document transmission menu (168). In other words, a web EDI user may transmit an uploaded document through the web EDI service. At this time, the web EDI service may send the document requested for transmission to a specific message box and, after going through a conversion process and a transmission process, transmit it to the web EDI user's partner system. At this time, the web EDI user's partner system may correspond to an ERP system, for example.

문서가 송신된 경우, 송신한 메시지 ID가 출력될 수 있으며, 드래프트 다큐먼트 서비스(159)는 원본 문서 다운로드 메뉴(169)를 제공할 수 있다. If a document is sent, the sent message ID may be printed, and the draft document service (159) may provide an original document download menu (169).

이하에서는, 드래프트 다큐먼트 서비스(159)가 제공하는 구체적인 기능에 대하여 살펴보도록 한다. Below, we will look at the specific functions provided by the draft document service (159).

도 45는 실시 예에 따른 드래프트 다큐먼트 서비스의 사용자 인터페이스의 일 예를 도시한 도면이다.FIG. 45 is a diagram illustrating an example of a user interface of a draft document service according to an embodiment.

본 도면은 클라이언트가 플랫폼이 제공하는 드래프트 다큐먼트 서비스(159)의 생성 메뉴를 선택함에 따라, 플랫폼이 제공하는 사용자 인터페이스를 나타낸다. This drawing shows the user interface provided by the platform when the client selects the creation menu of the draft document service (159) provided by the platform.

클라이언트가 드래프트 다큐먼트 생성 메뉴를 선택하는 경우, 드래프트 다큐먼트 서비스(159)는 메시지 타입, 타이틀, 예시 템플릿(170), 즉시 검증 여부 옵션(178), 업로드 파일 첨부 옵션(179)을 제공할 수 있다. 클라이언트가 예시 템플릿(170)을 선택하는 경우, 드래프트 다큐먼트 서비스(159)는 예시 엑셀 템플릿 파일 다운로드를 제공할 수 있다. 이에 따라, 클라이언트는 예시로 다운로드한 엑셀 템플릿 파일을 작성한 뒤, 엑셀 파일을 업로드 파일 첨부 옵션(179)를 통해 업로드할 수 있다. When a client selects the "Create Draft Document" menu, the draft document service (159) may provide a message type, title, example template (170), an immediate verification option (178), and an upload file attachment option (179). When the client selects the example template (170), the draft document service (159) may provide a download option for an example Excel template file. Accordingly, the client may create an Excel template file downloaded as an example and then upload the Excel file using the "Upload File Attachment" option (179).

일 실시 예에서, 드래프트 다큐먼트 서비스(159)는 파일을 업로드 할 수 있으며, 클라이언트가 즉시 검증 여부 옵션(178)을 선택하는 경우, 드래프트 다큐먼트가 생성됨에 따라 자동으로 업로드한 파일의 검증 및 변환 프로세스(180)가 수행될 수 있다.In one embodiment, the draft document service (159) can upload a file, and if the client selects the immediate verification option (178), a verification and conversion process (180) of the uploaded file can be performed automatically as the draft document is generated.

다른 일 실시 예에서, 클라이언트가 즉시 검증 여부 옵션(178)을 선택하지 않은 경우, 드래프트 다큐먼트 서비스(159)는 드래프트 다큐먼트를 생성할 뿐 문서를 검증하지 않을 수 있다(181). 이때, 드래프트 다큐먼트 서비스(159)는 드래프트 다큐먼트를 생성한 이후 문서를 검증할 수 있다. 이에 대하여는 후술하도록 한다. In another embodiment, if the client does not select the "Verify Immediately" option (178), the draft document service (159) may generate the draft document but not verify the document (181). In this case, the draft document service (159) may verify the document after generating the draft document. This will be described later.

도 46은 실시 예에 따른 드래프트 다큐먼트의 사용자 인터페이스의 일 예를 도시한 도면이다.FIG. 46 is a diagram illustrating an example of a user interface of a draft document according to an embodiment.

본 도면은 클라이언트가 플랫폼이 제공하는 드래프트 다큐먼트 서비스(159)의 즉시 검증 여부 옵션(178)을 선택하지 않고, 드래프트 다큐먼트를 생성한 실시 예를 나타낸다. 먼저, 드래프트 다큐먼트 서비스(159)는 예시 템플릿(170)를 제공하고, 업로드 파일 첨부 옵션(179)을 제공할 수 있다. 드래프트 다큐먼트가 생성된 이후에는, 드래프트 다큐먼트 서비스(159)는 드래프트 ID와 각각의 단계에서의 현재 상태(status)를 함께 제공할 수 있다. This drawing illustrates an example in which a client creates a draft document without selecting the immediate verification option (178) of the draft document service (159) provided by the platform. First, the draft document service (159) may provide an example template (170) and an upload file attachment option (179). After the draft document is created, the draft document service (159) may provide a draft ID and the current status at each stage.

드래프트 다큐먼트 서비스(159)는 업로드 파일이 첨부된 이후에는, 파일의 검증/변환 메뉴(182)를 제공할 수 있고, 전송 메뉴(183)를 제공할 수 있다. 또한, 각 액션이 프로세스되는 동안 드래프트 다큐먼트 서비스(159)는 로딩 스피너(Loading spinner)를 출력할 수 있다. After an upload file is attached, the draft document service (159) can provide a file verification/conversion menu (182) and a transmission menu (183). Additionally, the draft document service (159) can output a loading spinner while each action is being processed.

이후, 드래프트 다큐먼트 서비스(159)는 파일이 검증/변환이 완료된 경우, 메시지박스의 특정 인박스로 파일을 전송할 수 있다. 이때, 파일의 검증/변환이 실패하는 경우 에러 로그를 표시하고 파일을 전송하지 않을 수 있다. Afterwards, the draft document service (159) can send the file to a specific inbox in the message box when the file verification/conversion is completed. At this time, if the file verification/conversion fails, an error log may be displayed and the file may not be sent.

또한, 본 도면의 각 다이어그램(diagram)은 순차적으로 출력되거나 각 액션(드래프트 다큐먼트 생성, 업로드, 검증, 송신 등)에 따라 개별적으로 출력될 수 있다. Additionally, each diagram in this drawing can be output sequentially or individually according to each action (draft document creation, upload, verification, transmission, etc.).

도 47은 실시 예에 따른 센트 다큐먼트의 사용자 인터페이스의 일 예를 도시한 도면이다.FIG. 47 is a diagram illustrating an example of a user interface of a cent document according to an embodiment.

본 도면은 클라이언트가 플랫폼이 제공하는 센트 다큐먼트 서비스(160) 메뉴를 선택함에 따라, 플랫폼이 센트 다큐먼트 서비스(160)의 사용자 인터페이스를 제공하는 실시 예를 설명한다. This drawing illustrates an embodiment in which the platform provides a user interface for a central document service (160) when a client selects a central document service (160) menu provided by the platform.

보다 상세하게는, 센트 다큐먼트 서비스(160)를 통하여 클라이언트는 송신된 문서를 확인할 수 있다. 일 실시 예에서, 센트 다큐먼트 서비스(160)는 송신된 문서에 대한 정보를 출력할 수 있다. 여기에서, 송신된 문서에 대한 정보는 메시지 ID, 생성 시간, 메시지 타입, 거래 파트너, 상태, 메시지 페이로드(Payload) 보기 메뉴를 포함할 수 있다. 이때, 상태는 송신된 문서가 배송된 상태(Delivered), 배송이 실패된 상태(Failed) 및 대기 상태(Waiting) 등을 포함할 수 있다. More specifically, the client can check the transmitted document through the sent document service (160). In one embodiment, the sent document service (160) can output information about the transmitted document. Here, the information about the transmitted document can include a message ID, creation time, message type, trading partner, status, and a message payload view menu. In this case, the status can include a status such as delivered, failed, or waiting.

일 실시 예에서, 클라이언트가 메시지 페이로드 보기 메뉴(184)를 선택하는 경우, 센트 다큐먼트 서비스(160)는 메시지 페이로드를 팝업 창(185)으로 출력할 수 있다. 뿐만 아니라, 도면에 도시되지는 않았으나 센트 다큐먼트 서비스(160)는 메시지 페이로드의 다운로드를 제공할 수 있다. In one embodiment, when a client selects the View Message Payload menu (184), the Sent Document Service (160) may output the message payload in a pop-up window (185). In addition, although not shown in the drawing, the Sent Document Service (160) may provide for downloading the message payload.

또한, 센트 다큐먼트 서비스(160) 역시 송신된 문서를 생성 시간, 거래 파트너, 상태, 메시지 타입 및 메시지 ID 중 적어도 하나를 기준으로 필터링하여 검색할 수 있다. Additionally, the sent document service (160) can also search for transmitted documents by filtering them based on at least one of the creation time, trading partner, status, message type, and message ID.

도 48은 실시 예에 따른 웹 EDI 서비스를 제공하는 애플리케이션 서비스 제공 방법을 설명하는 흐름도이다. Figure 48 is a flowchart illustrating an application service provision method for providing a web EDI service according to an embodiment.

본 발명의 실시 예의 격리된 워크스페이스를 제공하는 플랫폼 내의 가상화된 컴퓨팅 시스템의 프로세서는 워크스페이스를 이용하는 클라이언트로부터 웹 EDI 서비스 요청을 수신할 수 있다(S901). A processor of a virtualized computing system within a platform providing an isolated workspace of an embodiment of the present invention can receive a web EDI service request from a client using the workspace (S901).

이때, 웹 EDI 서비스는 애플리케이션 서비스 매니저의 메시지 박스와 연결되어 제공될 수 있다. 웹 EDI 서비스 사용자는 웹 EDI 서비스가 제공하는 드래프트 다큐먼트 서비스를 이용하여 EDI 표준 문서가 아닌 다른 파일을 업로드할 수 있다. 업로드된 파일 등은 메시지박스로 전송되어 검증 및 변환 프로세스를 거쳐 웹 EDI 서비스 사용자의 파트너사 시스템에게 전송될 수 있다. At this time, the Web EDI service can be provided in connection with the application service manager's message box. Web EDI service users can upload files other than standard EDI documents using the draft document service provided by the Web EDI service. Uploaded files are transmitted to the message box, undergoing verification and conversion processes, and then transmitted to the Web EDI service user's partner system.

실시 예는 웹 EDI 서비스를 통하여 인박스 다큐먼트 서비스(Inbox document service), 드래프트 다큐먼트 서비스(draft document service) 및 센트 다큐먼트 서비스(sent document service) 중 적어도 하나의 서비스를 제공할 수 있다(S903). The embodiment may provide at least one of an inbox document service, a draft document service, and a sent document service through a web EDI service (S903).

여기에서, 인박스 다큐먼트 서비스는 플랫폼에 접속한 클라이언트가 수신된 문서를 보기 위한 서비스이며, 드래프트 다큐먼트 서비스는 송신 전에 문서를 업로드, 검증 및 변환 프로세스를 수행한 뒤 실제로 송신 요청을 수행하는 서비스이고, 센트 다큐먼트 서비스는 송신된 문서를 보거나 다운로드하는 서비스에 대응한다. Here, the Inbox Document Service is a service for clients connected to the platform to view received documents, the Draft Document Service is a service that performs the document upload, verification, and conversion process before transmission and then actually performs the transmission request, and the Sent Document Service corresponds to a service for viewing or downloading transmitted documents.

도 49는 실시 예에 따른 스크랩 어댑터의 동작을 개시한 도면이다. Figure 49 is a drawing showing the operation of a scrap adapter according to an embodiment.

실시 예에 따르면, 본 발명의 인스턴스 시스템(1000)은 클라이언트(300)에게 스크랩 어댑터(scrap adapter, 1400)를 제공할 수 있다. 이때, 본 발명의 인스턴스 시스템(1000)을 이용하는 클라이언트(300)는 예를 들어, 제 3 자 물류 회사(Third party logistics)가 될 수 있다.According to an embodiment, the instance system (1000) of the present invention may provide a scrap adapter (1400) to a client (300). At this time, the client (300) using the instance system (1000) of the present invention may be, for example, a third-party logistics company.

스크랩 어댑터(1400)는 본 발명의 애플리케이션 서비스 매니저(2100)를 이용하여 다양한 서비스를 이용할 수 있다. 보다 상세하게는, 플랫폼은 스크랩 어댑터(1400)가 프레임워크를 사용하기 위하여 필요한 구성 설정에 대한 액세스를 제공하는 구성 서비스 인터페이스(Configuration Service Interface), 작업 처리와 관련된 기능을 제공하는 태스크 서비스 인터페이스(Task Service Interface), 통신 채널에 대한 액세스를 제공하는 채널 접근 서비스 인터페이스(Channel Access Service Interface), 메시지 박스에 대한 액세스를 제공하는 메시지 박스 접근 서비스 인터페이스(Message Box Access Service), 설정 저장소 서비스 인터페이스 중 적어도 하나를 제공할 수 있다. The scrap adapter (1400) can utilize various services by utilizing the application service manager (2100) of the present invention. More specifically, the platform may provide at least one of a Configuration Service Interface that provides access to configuration settings required for the scrap adapter (1400) to utilize the framework, a Task Service Interface that provides functions related to task processing, a Channel Access Service Interface that provides access to a communication channel, a Message Box Access Service that provides access to a message box, and a Settings Repository Service Interface.

즉, 스크랩 어댑터(1400)는 메시지박스(2110) 서비스 및 설정 저장소 등의 서비스를 통하여 클라이언트(300)가 파트너(partner)의 데이터를 자동으로 수집할 수 있도록 한다. 이때, 클라이언트(300)가 파트너로부터 수집하는 데이터는 일반적으로 파트너의 주문 데이터 및 운송 데이터 중 적어도 하나를 포함할 수 있다. 여기에서, 파트너는 클라이언트가 물류 업체인 경우, 물류 업체가 주문을 수집하는 대상인 유통업체(retailer)에 대응한다. 이에 대하여 자세한 내용은 후술하도록 한다. That is, the scrap adapter (1400) enables the client (300) to automatically collect partner data through services such as the message box (2110) service and the settings storage. At this time, the data collected by the client (300) from the partner may generally include at least one of the partner's order data and shipping data. Here, if the client is a logistics company, the partner corresponds to a retailer from which the logistics company collects orders. This will be described in detail later.

본 발명이 제공하는 애플리케이션 서비스 매니저(2100)를 이용하지 않는 경우, 클라이언트(300)는 개별적으로 스크랩 어댑터(1400)에 포함되는 모든 코드를 개발해야만 하는 어려움이 있었다. 본 발명의 스크랩 어댑터(1400)를 이용하는 경우, 클라이언트(300)는 이미 스크랩 어댑터(1400)가 이용할 수 있는 애플리케이션 서비스 매니저(2100)의 다양한 서비스들을 그대로 이용할 수 있기 때문에 후술하는 구체적인 설정 정보만 입력함으로써 유통업체의 데이터를 자동으로 수집할 수 있다. 뿐만 아니라, 제 1 유통업체를 이용하는 다른 클라이언트(300A, 300B)의 경우 기존에 개발된 클라이언트(300)의 스크랩 어댑터(1400)를 그대로 이용할 수 있다는 장점이 있다. 물론, 클라이언트 A(300A) 및 클라이언트 B(300B)의 경우, 별도의 에이전트를 통하여 스크랩 어댑터(1400)를 이용하기 위한 설정 정보를 입력해야 함은 물론이다. If the application service manager (2100) provided by the present invention is not used, the client (300) has the difficulty of having to individually develop all the codes included in the scrap adapter (1400). If the scrap adapter (1400) of the present invention is used, the client (300) can use the various services of the application service manager (2100) that the scrap adapter (1400) can already use, so that the distributor's data can be automatically collected by inputting only the specific setting information described below. In addition, there is an advantage in that other clients (300A, 300B) using the first distributor can use the scrap adapter (1400) of the client (300) that has been previously developed. Of course, in the case of clients A (300A) and B (300B), the setting information for using the scrap adapter (1400) must be input through a separate agent.

스크랩 어댑터(1400)가 유통업체로부터 데이터를 자동으로 수집하기 위하여, 클라이언트(300)는 에이전트(350)를 통하여 스크랩 어댑터(1400)를 위한 계정 및 암호 정보, 회사 정보, 주기(Interval/Cron) 정보 및 전송 채널 정보를 등록할 수 있다. 여기에서, 회사 정보는 공급업체(supplier) 정보를 나타내고, 주기 정보는 스크랩 어댑터의 데이터 수집 실행 주기를 나타낸다. In order for the scrap adapter (1400) to automatically collect data from distributors, the client (300) can register account and password information, company information, interval/cron information, and transmission channel information for the scrap adapter (1400) through the agent (350). Here, the company information indicates supplier information, and the interval information indicates the data collection execution cycle of the scrap adapter.

일반적으로 유통업체가 데이터를 ERP 시스템에 연계하더라도, ERP 시스템을 이용하는 클라이언트는 어떤 데이터를 수집했는지 여부를 판단하기 어렵다. 반면, 본 발명의 스크랩 어댑터(1400)는 유통업체로부터 데이터를 수집할 때 제 1 데이터가 기 수집된 데이터인지 여부를 판단할 수 있다. 보다 상세하게는, 스크랩 어댑터(1400)는 유통업체로부터 한번 수집한 제 1 데이터에 인덱스를 마킹(marking)해 놓음으로써 제 1 데이터를 다시 수집하지 않을 수 있다. 즉, 스크랩 어댑터(1400)는 제 1 데이터가 한번 수집된 기록이 있는 데이터인 경우, 제 1 데이터를 다시 수집하지 않고, 제 2 데이터를 수집하도록 설정할 수 있다. Typically, even when a distributor links data to an ERP system, it is difficult for a client using the ERP system to determine what data has been collected. In contrast, the scrap adapter (1400) of the present invention can determine whether the first data is already collected when collecting data from a distributor. More specifically, the scrap adapter (1400) can prevent the first data from being collected again by marking an index on the first data collected from the distributor. In other words, if the first data has a previously collected record, the scrap adapter (1400) can be configured to collect the second data instead of collecting the first data again.

일 실시 예에서, 스크랩 어댑터(1400)는 메시지박스 전송 모듈(1401)을 이용해 유통업체로부터 수집한 데이터를 메시지박스(2110)의 인박스 슬롯에 전송할 수 있다. 이때, 메시지박스 전송 모듈(1401)은 유통업체의 데이터를 json 파일 또는 XML 파일로 메시지박스(2110)의 인박스 슬롯에 전송할 수 있다. In one embodiment, the scrap adapter (1400) may transmit data collected from a distributor to the inbox slot of the message box (2110) using the message box transmission module (1401). At this time, the message box transmission module (1401) may transmit the distributor's data to the inbox slot of the message box (2110) as a JSON file or XML file.

도 50은 실시 예에 따른 스크랩 어댑터를 이용하는 사용자의 일 예를 도시한 도면이다. FIG. 50 is a drawing illustrating an example of a user using a scrap adapter according to an embodiment.

본 도면은 본 발명의 웹 스크랩 어댑터(1400)를 사용하는 실 사용자의 프로세스를 설명하기 위한 도면이다. This drawing is a drawing for explaining the process of an actual user using the web scrap adapter (1400) of the present invention.

보다 상세하게는, 공급업체 1 내지 공급업체 3은 물품을 생산하여 클라이언트(300)의 창고에 납품할 수 있다. 여기에서, 클라이언트(300)는 창고를 보유하고 있는 제 3 자 물류 업체를 예로 들 수 있다. More specifically, Suppliers 1 to 3 can produce goods and deliver them to the warehouse of the client (300). Here, the client (300) may be, for example, a third-party logistics company that owns a warehouse.

소매점 a1 및 소매점 a2는 유통 업체 A(상술한 파트너가 여기에 해당한다.)에게 웹 서비스를 통하여 물품을 주문할 수 있다. 일 실시 예에서, 본 발명의 웹 스크랩 어댑터(1400)는 유통 업체 A가 수신한 소매점 a1으로부터의 주문 데이터, 소매점 a2로부터의 주문 데이터를 수집할 수 있다. 마찬가지로, 웹 스크랩 어댑터(1400)는 유통 업체 B가 수신한 소매점 b1으로부터의 주문 데이터, 소매점 b2로부터의 주문 데이터를 수집할 수 있다. 웹 스크랩 어댑터(1400)를 이용하는 클라이언트(300)는 스크랩 어댑터(1400)를 통하여 수집된 소매점 a1, a2 및 소매점 b1, b2의 주문 데이터에 기초하여 창고에 보유하고 있는 물품을 소매점에게 직접 배송해줄 수 있다. Retailer A1 and Retailer A2 can order goods from Distributor A (the aforementioned partner) through a web service. In one embodiment, the web scraping adapter (1400) of the present invention can collect order data from retailer A and order data from retailer A2 received by Distributor A. Similarly, the web scraping adapter (1400) can collect order data from retailer B and order data from retailer B1 and order data from retailer B2 received by Distributor B. A client (300) using the web scraping adapter (1400) can directly deliver goods held in a warehouse to the retailers based on the order data from retailers A1 and A2 and retailers B1 and B2 collected through the scraping adapter (1400).

특히, 본 발명의 웹 스크랩 어댑터(1400)는 클라이언트(300)가 유통 업체 A 및 유통 업체 B의 주문 데이터를 수집하기 위해 개발되었으나, 상술한 바와 같이 웹 스크랩 어댑터(1400)의 개발을 위하여 플랫폼 내의 다른 애플리케이션 서비스를 이용할 수 있기 때문에, 다른 클라이언트(예를 들어, 클라이언트 A 또는 클라이언트 B)가 유통 업체 A 또는 유통 업체 B의 주문 데이터를 수집하기 위하여 웹 스크랩 어댑터(1400)를 추가적인 개발 없이 그대로 이용할 수 있게 된다. In particular, the web scrap adapter (1400) of the present invention was developed for the client (300) to collect order data of distributor A and distributor B, but since other application services within the platform can be used for the development of the web scrap adapter (1400) as described above, other clients (e.g., client A or client B) can use the web scrap adapter (1400) as is to collect order data of distributor A or distributor B without additional development.

도 51은 실시 예에 따른 플랫폼의 사용자 인터페이스의 일 예를 도시한 도면이다. FIG. 51 is a drawing illustrating an example of a user interface of a platform according to an embodiment.

본 도면은 클라이언트가 애플리케이션 서비스를 제공하는 실시 예에 따른 플랫폼에 접속한 경우, 플랫폼이 제공하는 인터페이스를 예시한다. 클라이언트가 개시하는 시스템에 접속하는 경우, 플랫폼은 사용자 전용의 워크스페이스와 관련된 사용자 인터페이스 메뉴를 제공할 수 있다. 이에 대하여는 상술한 실시 예를 참고하도록 한다. This diagram illustrates the interface provided by a platform when a client accesses a platform that provides application services according to an embodiment. When a client accesses a system initiated by the platform, the platform may provide a user interface menu associated with a user-specific workspace. For details, please refer to the aforementioned embodiment.

본 도면에서, 클라이언트는 상술한 스크랩 어댑터를 이용하기 위해 플랫폼에 클라이언트 전용의 워크스페이스와 관련된 사용자 인터페이스 메뉴에 접속할 수 있다. In this drawing, the client can access a user interface menu associated with a client-specific workspace on the platform to utilize the scrap adapter described above.

본 발명의 플랫폼은 클라이언트 전용의 워크스페이스 내에 설치된 어댑터 중 스크랩 어댑터에 대응하는 스크랩 어댑터 사용자 인터페이스(186)를 클라이언트에게 제공할 수 있다. The platform of the present invention can provide a client with a scrap adapter user interface (186) corresponding to a scrap adapter among the adapters installed in a client-only workspace.

스크랩 어댑터 사용자 인터페이스(186)는 스크랩할 공급업체를 관리할 수 있다. 예를 들어, 스크랩 어댑터의 클라이언트가 물류업체인 경우, 물류업체가 유통업체의 주문 데이터를 수집하기 위하여, 스크랩 어댑터는 유통업체에 물품을 공급하는 적어도 하나의 공급업체 정보를 수집해야 한다. The scrap adapter user interface (186) can manage suppliers to be scraped. For example, if the scrap adapter's client is a logistics company, the scrap adapter must collect information on at least one supplier that supplies goods to the distributor in order for the logistics company to collect order data from the distributor.

일 실시 예에서, 스크랩 어댑터 사용자 인터페이스(186)는 유통업체의 적어도 하나의 공급업체 리스트(187)를 출력할 수 있다. 보다 상세하게는, 공급업체 리스트(187)은 유통업체에 물품을 공급하는 적어도 하나의 공급업체에 대한 정보를 포함할 수 있다. 공급업체에 대한 정보는 그룹 ID, 사용자 ID, 스케쥴 타입, 스케쥴 표현, 인박스 슬롯, 활성화 여부를 포함할 수 있다. 여기에서, 그룹 ID는 공급업체의 ID를 나타내고, 사용자 ID는 공급업체의 사용자 ID를 나타낸다. 스케쥴 타입은 스크랩 어댑터가 데이터를 수집하기 위한 주기를 설정하는 방식으로 예를 들어, Interval 방식 또는 CRON 방식을 선택할 수 있다. 여기에서, Interval 방식은 일정한 시간 간격으로 작업을 반복하는 방식이고 CRON 방식은 복잡하고 구체적인 시간 스케쥴을 설정하는 방식이다. In one embodiment, the scrap adapter user interface (186) may output a list of at least one supplier (187) of a distributor. More specifically, the supplier list (187) may include information about at least one supplier that supplies goods to the distributor. Information about the supplier may include a group ID, a user ID, a schedule type, a schedule expression, an inbox slot, and whether it is activated. Here, the group ID represents the supplier's ID, and the user ID represents the supplier's user ID. The schedule type may be a method for setting a cycle for the scrap adapter to collect data, such as an interval method or a CRON method. Here, the interval method is a method for repeating a task at regular intervals, and the CRON method is a method for setting a complex and specific time schedule.

클라이언트는 스크랩 어댑터 사용자 인터페이스(186)에 스크랩할 공급업체에 대한 정보를 입력할 수 있고, 스크랩 어댑터는 입력받은 정보에 기초하여 데이터를 스크랩한 이후 본 발명의 메시지박스의 인박스 슬롯에 전달할 수 있다. A client can input information about a supplier to be scraped into the scrap adapter user interface (186), and the scrap adapter can scrape data based on the input information and then pass it to the inbox slot of the message box of the present invention.

도 52는 실시 예에 따른 플랫폼의 사용자 인터페이스의 일 예를 도시한 도면이다.FIG. 52 is a drawing illustrating an example of a user interface of a platform according to an embodiment.

본 도면은 클라이언트가 상술한 스크랩 어댑터를 이용하기 위해 스크랩 어댑터 사용자 인터페이스(186) 내에서, 스크랩할 공급업체를 관리하는 메뉴를 설명하는 도면이다. This drawing is a drawing illustrating a menu for managing suppliers to be scraped within the scrap adapter user interface (186) for a client to utilize the scrap adapter described above.

본 도면에서, 공급업체 관리 메뉴는 스크랩 ID, 공급업체 이름, 그룹 ID, 사용자 ID와 같은 공급업체 정보(188)를 포함하고, 스크랩 정보(189) 및 기타 정보(190)를 포함할 수 있다. 여기에서, 스크랩 정보(189)는 스크랩을 시작하는 날짜(Initial Date), 스크랩이 실패했을 때 재시도 횟수(Retry count), 스크랩이 실패했을 때 다시 시도하기 전에 대기하는 재시도 간격(Retry Interval), 스케쥴 타입 및 스케쥴 표현을 제공할 수 있다. 기타 정보(190)는 메시지박스 인박스 슬롯 정보, 바이어 코드(예를 들어, 유통업체 이름), 납품처 정보, 주문처 정보, 협력 업체 정보, 수신확인 여부 및 주문 구분 정보 등을 포함할 수 있다. In this drawing, the supplier management menu may include supplier information (188) such as scrap ID, supplier name, group ID, and user ID, and may include scrap information (189) and other information (190). Here, the scrap information (189) may provide the date on which scraping starts (Initial Date), the number of retries when scraping fails (Retry count), the retry interval to wait before retrying when scraping fails (Retry Interval), schedule type, and schedule expression. The other information (190) may include message box inbox slot information, buyer code (e.g., distributor name), delivery information, ordering information, partner information, receipt confirmation information, and order classification information.

클라이언트가 공급업체 관리 메뉴에 정보를 입력하고 저장하면, 본 발명의 플랫폼은 스크랩 어댑터를 이용하여 클라이언트가 입력한 정보에 기초하여 데이터를 자동으로 수집할 수 있다. When a client enters and saves information in the supplier management menu, the platform of the present invention can automatically collect data based on the information entered by the client using the scrap adapter.

도 53은 다른 실시 예에 따른 데이터 수집 방법을 개시한 도면이다. FIG. 53 is a diagram disclosing a data collection method according to another embodiment.

본 도면은 본 발명의 스크랩 어댑터가 실질적으로 수집하는 데이터의 예시를 설명하는 도면이다. 본 도면은 클라이언트 A(300A)가 적어도 하나의 유통업체에 대한 주문 데이터를 웹 상에서 직접 확인하는 방법을 설명한다. This drawing illustrates an example of data actually collected by the scrap adapter of the present invention. This drawing illustrates a method by which Client A (300A) directly checks order data for at least one distributor online.

본 발명의 스크랩 어댑터를 사용하면 본 도면이 나타내는 웹 상에서의 주문 데이터를 스크랩 어댑터가 자동으로 수집하게 된다. By using the scrap adapter of the present invention, the order data on the web as shown in this drawing is automatically collected by the scrap adapter.

예를 들어, 클라이언트 A(300A)는 적어도 하나의 유통업체에 대한 주문 데이터 리스트(191)에 대한 정보를 수집하고, 주문 데이터 리스트(191)에 포함된 제 1 주문 데이터 내지 제 n 주문 데이터를 개별적으로 선택하여, 제 1 주문 데이터 내지 제 n 주문 데이터에 대한 상세 정보를 수집할 수 있다. 본 발명의 스크랩 어댑터를 사용하지 않는 경우, 클라이언트 A(300A)가 직접 웹 화면 상에서 주문 데이터 리스트(191)를 다운로드 받거나, 주문 데이터 리스트(191)에 포함된 제 1 주문 데이터 내지 제 n 주문 데이터를 개별적으로 선택하여 주문 데이터의 상세 정보를 다운로드해야만 한다. 그러나 본 발명의 스크랩 어댑터를 이용하는 경우, 자동으로 클라이언트 A(300A)의 유통업체에 대한 주문 데이터를 스크랩 어댑터가 자동으로 수집할 수 있게 된다. For example, client A (300A) can collect information on an order data list (191) for at least one distributor, and individually select the first to n-th order data included in the order data list (191) to collect detailed information on the first to n-th order data. If the scrap adapter of the present invention is not used, client A (300A) must directly download the order data list (191) on the web screen, or individually select the first to n-th order data included in the order data list (191) to download detailed information on the order data. However, if the scrap adapter of the present invention is used, the scrap adapter can automatically collect order data for distributors of client A (300A).

뿐만 아니라, 스크랩 어댑터는 도 51의 기타 정보(190) 필드를 통하여, 필터 조건을 설정(예를 들어, 특정 주문처만 스크랩한다, 192)할 수 있다. 스크랩 어댑터가 필터 조건(도 51의 190)을 설정하는 경우, 본 도면의 필터 조건(192)에 따라 주문 데이터 리스트(191)를 수집하는 것과 동일한 효과를 갖게 된다. In addition, the scrap adapter can set a filter condition (e.g., scrap only specific orderers, 192) through the other information (190) field of FIG. 51. When the scrap adapter sets a filter condition (190 of FIG. 51), it has the same effect as collecting an order data list (191) according to the filter condition (192) of this drawing.

도 54는 실시 예에 따른 스크랩 어댑터의 동작을 개시한 도면이다. Figure 54 is a drawing showing the operation of a scrap adapter according to an embodiment.

격리된 워크스페이스를 제공하는 플랫폼 내의 가상화된 컴퓨팅 시스템의 프로세서는, 상기 워크스페이스를 이용하는 클라이언트로부터 스크랩 어댑터 설정 정보를 입력 받을 수 있다(S905). A processor of a virtualized computing system within a platform providing an isolated workspace can receive scrap adapter setting information from a client using the workspace (S905).

일 실시 예에서, 플랫폼은 스크랩 어댑터가 프레임워크를 사용하기 위하여 필요한 응용 프로그래밍 인터페이스(Application Programming Interface, API)를 제공할 수 있다. 여기에서, API는 구성 설정에 대한 액세스를 제공하는 구성 서비스 인터페이스(Configuration Service Interface), 작업 처리와 관련된 기능을 제공하는 태스크 서비스 인터페이스(Task Service Interface), 통신 채널에 대한 액세스를 제공하는 채널 접근 서비스 인터페이스(Channel Access Service Interface), 메시지 박스에 대한 액세스를 제공하는 메시지 박스 접근 서비스 인터페이스(Message Box Access Service), 설정 저장소 서비스 인터페이스 중 적어도 하나를 포함할 수 있다. In one embodiment, the platform may provide an application programming interface (API) required for the scrap adapter to use the framework. Here, the API may include at least one of a configuration service interface that provides access to configuration settings, a task service interface that provides functions related to task processing, a channel access service interface that provides access to a communication channel, a message box access service interface that provides access to a message box, and a configuration repository service interface.

일 실시 예에서, 플랫폼은 클라이언트로부터 스크랩 어댑터 설정 정보를 입력받을 수 있다. 여기에서, 스크랩 어댑터 설정 정보는 계정 및 암호 정보, 회사 정보, 주기 정보 및 전송 채널 정보를 포함할 수 있다. 이에 대하여는 도 49에서 상술한 내용을 참고하도록 한다. In one embodiment, the platform may receive scrap adapter configuration information from a client. The scrap adapter configuration information may include account and password information, company information, cycle information, and transmission channel information. For further details, please refer to the description in FIG. 49.

스크랩 어댑터 설정 정보에 기초하여 상기 클라이언트가 설정한 파트너의 데이터를 수집할 수 있다(S907). 이때, 스크랩 어댑터가 클라이언트가 입력한 설정 정보에 기초하여 클라이언트의 파트너의 데이터를 수집하는 실시 예는 도 52에서 상술한 내용을 참고하도록 한다. Based on the scrap adapter configuration information, data of the partner configured by the client can be collected (S907). At this time, an example in which the scrap adapter collects data of the client's partner based on the configuration information entered by the client is described in detail in FIG. 52.

수집된 데이터를 상기 플랫폼 내의 메시지박스의 인박스 슬롯에 저장할 수 있다(S909). The collected data can be stored in the inbox slot of the message box within the platform (S909).

이에 대하여는 도 49에서 상술한 내용을 참고하도록 한다.For this, please refer to the contents described above in Fig. 49.

도 55는 실시 예에 따른 애플리케이션 서비스 제공 장치가 EDI 문서 데이터에 대한 소스 스키마에 기반하여 데이터를 변환하는 예를 개시하는 도면FIG. 55 is a drawing disclosing an example of an application service providing device according to an embodiment converting data based on a source schema for EDI document data.

도시한 예에서 애플리케이션 서비스 제공 장치(6000)는 인스턴스 시스템(미도시)과 매니저 시스템(미도시)을 포함할 수 있다. 인스턴스 시스템은 에이전트 어댑터(1350)와 매핑 어댑터(1370)가 설치된 워커노드(예: Node #N)를 포함할 수 있고 클라이언트(100)와 파트너(200)에게 애플리케이션 서비스를 제공할 수 있다. In the illustrated example, the application service providing device (6000) may include an instance system (not shown) and a manager system (not shown). The instance system may include a worker node (e.g., Node #N) on which an agent adapter (1350) and a mapping adapter (1370) are installed, and may provide application services to a client (100) and a partner (200).

매니저 시스템(미도시)은 애플리케이션 서비스 매니저(2100)를 포함할 수 있으며, 애플리케이션 서비스 매니저(2100)는 워커노드에 설치된 에이전트 어댑터(1350)으로부터 클라이언트(100)의 에이전트(350)와 파트너(200)의 에이전트(450)에서 수집된 데이터를 얻을 수 있다. The manager system (not shown) may include an application service manager (2100), and the application service manager (2100) may obtain data collected from an agent (350) of a client (100) and an agent (450) of a partner (200) from an agent adapter (1350) installed in a worker node.

이에, 본 발명의 실시 예에 따른 애플리케이션 서비스 제공 장치(6000)는 에이전트 어댑터(1350), 매핑 어댑터(1370) 및 애플리케이션 서비스 매니저(2100)를 포함할 수 있다.Accordingly, the application service providing device (6000) according to an embodiment of the present invention may include an agent adapter (1350), a mapping adapter (1370), and an application service manager (2100).

에이전트 어댑터(1350)는 송수신부(810)를 포함할 수 있다. 송수신부(810)는 클라이언트(100)의 에이전트(350)로부터 EDI 문서 데이터를 수신할 수 있다. 예를 들어, EDI 문서 데이터는 미리 정의된 EDI 표준(예: ANSI X12, EDIFACT)에 따라 텍스트 데이터로 표현될 수 있다. 여기서, EDI 문서 데이터는 소스 문서 데이터 또는 이와 동등한 기술적 의미를 갖는 용어로 지칭될 수 있다. 일 실시 예에서, 에이전트(350)로부터 수신된 EDI 문서 데이터는 애플리케이션 서비스 매니저(2100)에 포함된 메시지 박스(2110)에 저장될 수 있다. The agent adapter (1350) may include a transceiver (810). The transceiver (810) may receive EDI document data from the agent (350) of the client (100). For example, the EDI document data may be expressed as text data according to a predefined EDI standard (e.g., ANSI X12, EDIFACT). Here, the EDI document data may be referred to as source document data or a term having an equivalent technical meaning thereto. In one embodiment, the EDI document data received from the agent (350) may be stored in a message box (2110) included in the application service manager (2100).

맵핑 어댑터(1370)는 스키마 획득부(6101), 스키마 매핑부(6102) 및 데이터 변환부(6103)를 포함할 수 있다. 이 경우, 스키마 획득부(6101)는 EDI 문서 데이터에 대한 소스 스키마를 획득할 수 있다. 이 때, EDI 문서 데이터는 표준 EDI 문서를 의미할 수 있다. 예를 들어, EDI 문서에 대한 소스 스키마는 SEF(Standard Exchange Format) 및 EXF(EDI Exchange Format) 파일을 포함할 수 있다. 일 실시 예에서, 소스 스키마는 콘솔에서 사용자에 의해 리소스 경로에 업로드되어 획득될 수 있다. The mapping adapter (1370) may include a schema acquisition unit (6101), a schema mapping unit (6102), and a data conversion unit (6103). In this case, the schema acquisition unit (6101) may acquire a source schema for EDI document data. In this case, the EDI document data may refer to a standard EDI document. For example, the source schema for the EDI document may include a Standard Exchange Format (SEF) and an EDI Exchange Format (EXF) file. In one embodiment, the source schema may be acquired by being uploaded to a resource path by a user in the console.

또한, 일 실시 예에서, 스키마 획득부(6101)는 타겟 문서 데이터에 대한 타겟 스키마를 획득할 수 있다. 일 실시 예에서, 타겟 스키마 및 소스 스키마와 타겟 스키마의 매핑을 위한 매핑 스크립트 중 적어도 하나는 클라이언트(100) 또는 파트너(200)에 제공되는 인스턴스 시스템(미도시)의 플랫폼의 그래픽 유저 인터페이스(graphic user interface, GUI)에 대한 클라이언트(100) 또는 파트너(200)의 사용자 입력에 기반하여 생성될 수 있다.Additionally, in one embodiment, the schema acquisition unit (6101) can acquire a target schema for target document data. In one embodiment, at least one of the target schema and the mapping script for mapping the source schema and the target schema can be generated based on a user input of the client (100) or partner (200) for a graphical user interface (GUI) of a platform of an instance system (not shown) provided to the client (100) or partner (200).

스키마 매핑부(6102)는 소스 스키마를 타겟 스키마에 매핑할 수 있다. 스키마 매핑부(6102)는 사용자 입력에 의해 소스 스키마 및 타겟 스키마를 설정하고, 소스 스키마와 타겟 스키마의 매핑 관계를 설정할 수 있다. 일 실시 예에서, 스키마 매핑부(6102)는 그래픽 기반의 도구에 대한 사용자 입력에 기반하여 소스 스키마를 타겟 스키마에 매핑할 수 있다. 이에 대한 자세한 내용은 아래에서 자세히 설명된다. The schema mapping unit (6102) can map a source schema to a target schema. The schema mapping unit (6102) can set the source schema and the target schema based on user input, and can set a mapping relationship between the source schema and the target schema. In one embodiment, the schema mapping unit (6102) can map the source schema to the target schema based on user input for a graphical tool. This is described in detail below.

데이터 변환부(6103)는 소스 스키마, 매핑 스크립트 및 타겟 스키마 중 적어도 하나에 기반하여, 제 1 데이터 형식을 갖는 EDI 문서 데이터를 제 2 데이터 형식을 갖는 타겟 문서 데이터로 변환할 수 있다. 일 실시 예에서, 에이전트 어댑터(1350)는 타겟 문서 데이터를 메시지 박스(2110)로부터 전달 받아 파트너(200)의 에이전트(450)로 송신할 수 있다. The data conversion unit (6103) can convert EDI document data having a first data format into target document data having a second data format based on at least one of a source schema, a mapping script, and a target schema. In one embodiment, the agent adapter (1350) can receive target document data from a message box (2110) and transmit it to an agent (450) of a partner (200).

도 56은 실시 예에 따른 EDI 문서 데이터에 대한 소스 스키마의 예를 개시하는 도면Figure 56 is a diagram disclosing an example of a source schema for EDI document data according to an embodiment.

도시한 예에서 애플리케이션 서비스 제공 장치(6000)는 EDI 문서 데이터에 대한 소스 스키마를 획득할 수 있다. 소스 스키마는 EDI 문서 데이터에 대한 특정 트랜잭션 세트 또는 문서 유형에 대한 EDI 문서 데이터의 구조와 형식을 나타낼 수 있다. 일 실시 예에서, 소스 스키마는 EDI 문서 데이터에 대한 트랜잭션 세트(6104) 및 세그먼트 세트(6105)를 포함할 수 있다. In the illustrated example, the application service providing device (6000) may obtain a source schema for EDI document data. The source schema may indicate the structure and format of EDI document data for a specific transaction set or document type for the EDI document data. In one embodiment, the source schema may include a transaction set (6104) and a segment set (6105) for the EDI document data.

일 실시 예에서, 트랜잭션 세트(6104)는 파트너와의 비즈니스 트랜잭션을 나타내는 적어도 하나의 EDI 트랜잭션을 포함할 수 있다. 일 실시 예에서, 각 트랜잭션은 세그먼트 세트(6105)에 포함된 적어도 하나의 세그먼트와 각 세그먼트 및 데이터 요소 구성을 나타내는 구분자로 구성될 수 있다. 예를 들어, 트랜잭션 세트(6104)는 입금통지서(CREADV), 적하보험증권 발급통지서(CIPADV), 적하보험청약서(APPCIP) 및 수출환어음매입(추심)신청서(APPNEG) 트랜잭션을 포함할 수 있으나, 이에 제한되지 않고 다양한 트랜잭션을 포함할 수 있다. In one embodiment, the transaction set (6104) may include at least one EDI transaction representing a business transaction with a partner. In one embodiment, each transaction may be composed of at least one segment included in the segment set (6105) and a delimiter indicating the composition of each segment and data element. For example, the transaction set (6104) may include, but is not limited to, transactions for a deposit advice (CREADV), a cargo insurance policy issuance advice (CIPADV), a cargo insurance application (APPCIP), and an export bill of exchange (collection) application (APPNEG).

일 실시 예에서, 세그먼트 세트(6105)는 EDI 데이터 및 계층적 데이터 구조를 나타내는 적어도 하나의 세그먼트를 포함할 수 있다. 예를 들어, 세그먼트는 AGR(Agreement identification), AJT(Adjustment details), BGM(Beginning of message) 및 BUS(Business function)을 포함할 수 있으나, 이에 제한되지 않고 다양한 세그먼트를 포함할 수 있다. 일 실시 예에서, 각 세그먼트는 적어도 하나의 데이터 요소(element)와 구분자로 구성될 수 있다. 예를 들어, 각 세그먼트는 문자/숫자(AN), 문자(A), 숫자(N)를 나타내는 데이터 요소와 선택적 사항(?), 특정 개수 이상(예: 1개 이상의 경우 +, 0개 이상의 경우 *) 및 데이터의 최소길이와 최대 길이([숫자:숫자])를 나타내는 구분자로 구성될 수 있다. In one embodiment, the segment set (6105) may include at least one segment representing EDI data and a hierarchical data structure. For example, the segment may include, but is not limited to, AGR (Agreement identification), AJT (Adjustment details), BGM (Beginning of message), and BUS (Business function) and may include various segments. In one embodiment, each segment may be composed of at least one data element and a delimiter. For example, each segment may be composed of data elements representing letters/numbers (AN), letters (A), numbers (N), and delimiters representing optional items (?), a certain number or more (e.g., + for 1 or more, * for 0 or more), and a minimum length and a maximum length of data ([number:number]).

또한, 일 실시 예에서, 구분자는 EDI 표준에 따라 다양하게 구성될 수 있으며, 예를 들어, ANSI X12는 세그먼트를 ~로 나누고, 데이터 요소 내에서 *가 사용될 수 있다. 또한, EDIFACT는 세그먼트를 나눌 때 작은 따옴표(‘)가 사용되고, 데이터 요소 내에서는 더하기(+)가 사용될 수 있다. Additionally, in one embodiment, the delimiter may be configured in various ways according to the EDI standard, for example, ANSI X12 may divide segments with ~, and * may be used within data elements. Additionally, EDIFACT may use single quotes (') when dividing segments, and plus (+) may be used within data elements.

도 57은 실시 예에 따른 타겟 문서 데이터에 대한 타겟 스키마의 설정을 위한 사용자 인터페이스의 예를 개시하는 도면FIG. 57 is a drawing disclosing an example of a user interface for setting a target schema for target document data according to an embodiment.

도시한 예에서 본 발명의 타겟 문서 데이터에 대한 타겟 스키마의 설정을 위한 사용자 인터페이스는 스키마 편집 화면을 제공할 수 있다. 여기에서, 스키마 편집 화면은 스키마 편집 영역(6106)과 주석 영역(6107) 중 적어도 하나를 포함할 수 있다. In the illustrated example, a user interface for setting a target schema for target document data of the present invention may provide a schema editing screen. Here, the schema editing screen may include at least one of a schema editing area (6106) and an annotation area (6107).

일 실시 예에서, 스키마 편집 영역(6106)은 사용자가 매핑 플로우에 사용되는 타겟 스키마를 편집하는 영역으로, 본 도면에서는 예시를 나타낸다. 여기에서, 스키마 편집 영역(6106)은 타겟 문서 데이터에 대한 데이터 구조를 나타내며, 이름을 가진 노드들의 계층적인 구조를 나타낼 수 있다. 여기에서, 각 노드들은 유형(Type)으로 Int, String 등을 가질 수 있다. In one embodiment, the schema editing area (6106) is an area where a user edits a target schema used in a mapping flow, and an example is shown in this drawing. Here, the schema editing area (6106) represents a data structure for target document data and may represent a hierarchical structure of nodes with names. Here, each node may have a type (Type), such as Int or String.

주석(Annotation) 영역(6107)은 데이터의 계층적인 구조 외에 해당 타겟 문서 데이터가 텍스트로 표현될 때 필요한 정보를 편집하는 영역에 대응한다. 또한, 주석 영역(6107)은 데이터의 계층적인 구조 외에 텍스트에서 해당 데이터로 인지할 때에 추가적으로 필요한 정보를 편집하는 영역에 대응한다. 일 실시 예에서, 주석 영역(6107)은 해당 타겟 스키마의 명칭(name)과 유형(type)을 나타낼 수 있다. 예를 들어, 타겟 스키마의 명칭은 RFC_CREADV를 나타낼 수 있고, 유형은 RecordTypeDef를 나타낼 수 있다. The Annotation area (6107) corresponds to an area for editing information necessary when the target document data is expressed as text, in addition to the hierarchical structure of the data. Furthermore, the Annotation area (6107) corresponds to an area for editing additional information necessary when recognizing the data as text, in addition to the hierarchical structure of the data. In one embodiment, the Annotation area (6107) may indicate the name and type of the target schema. For example, the name of the target schema may indicate RFC_CREADV, and the type may indicate RecordTypeDef.

일 실시 예에서, 주석 영역(6107)은 주석 리스트(6108)를 포함할 수 있다. 여기에서, 주석 리스트(6108)는 주석 이름과 문서 유형(Document Type)을 포함할 수 있다. 이때, 각 주석은 노드 별로 여러 개 추가될 수 있으며, 같은 이름의 주석이 여러 개 추가될 수 없다. 각 주석은 문서 유형(XML, JSON)에 따라 여러 종류가 있으며, 각 주석 별로 고유한 속성(argument)을 가질 수 있다. In one embodiment, the annotation area (6107) may include an annotation list (6108). Here, the annotation list (6108) may include an annotation name and a document type. In this case, multiple annotations may be added for each node, and multiple annotations with the same name cannot be added. Each annotation may have multiple types depending on the document type (XML, JSON), and each annotation may have unique properties (arguments).

일 실시 예에서, 주석 영역(6107)은 사용자 주석 리스트(6109)를 더 포함할 수 있다. 여기에서, 사용자 주석 리스트(6109)는 기존의 주석에 대응하는 고유 속성(argument)으로 name과 namespace을 더 추가할 수 있으나 필수 값은 아니다. 즉, name과 namespace 모두 선택적(optional)으로 추가할 수 있다. 여기에서, name은 해당 argument의 역할이나 의미를 설명하기 위해 사용될 수 있다. 이에 대한 상세한 내용은 상술한 도면을 참고한다. In one embodiment, the annotation area (6107) may further include a user annotation list (6109). The user annotation list (6109) may further include name and namespace as unique attributes (arguments) corresponding to existing annotations, but these are not mandatory values. That is, both name and namespace may be optionally added. The name may be used to describe the role or meaning of the corresponding argument. For further details, please refer to the above-described drawings.

예를 들어, 사용자 입력에 의한 편집을 통하여 입금통지서에 해당하는 XML 문서 데이터에 대한 타겟 스키마(6110)가 설정될 수 있다. For example, a target schema (6110) for XML document data corresponding to a deposit notice can be set through editing by user input.

도 58은 실시 예에 따른 소스 스키마 및 타겟 스키마의 설정을 위한 사용자 인터페이스의 예를 개시하는 도면FIG. 58 is a drawing disclosing an example of a user interface for setting up a source schema and a target schema according to an embodiment.

도시한 예에서 타겟 문서 데이터에 대한 타겟 스키마의 설정을 위한 사용자 인터페이스는 스키마 설정 화면을 제공할 수 있다. 여기에서, 스키마 설정 화면은 소스 스키마 설정 영역(6111)과 타겟 스키마 설정 영역(6112) 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, 소스 스키마 설정 영역(6111)에서 다음 화면으로 타겟 스키마 설정 영역(6112)이 제공될 수 있다. In the illustrated example, a user interface for setting a target schema for target document data may provide a schema setting screen. Here, the schema setting screen may include at least one of a source schema setting area (6111) and a target schema setting area (6112). In one embodiment, a target schema setting area (6112) may be provided as a subsequent screen from the source schema setting area (6111).

소스 스키마 설정 영역(6111)은 소스 스키마에 대한 리소스 경로(resource path), 리소스 파일(resource file) 및 EDI 트랜잭션 중 적어도 하나를 포함할 수 있다. 여기서, 리소스 경로는 EDI 문서 데이터에 대한 EDI 스키마 파일 경로를 나타낼 수 있다. 리소스 파일은 소스 스키마에 대한 스키마 파일 경로를 나타낼 수 있다. EDI 트랜잭션은 파트너와 수행될 소스 스키마에 대한 EDI 트랜잭션을 나타낼 수 있다. The source schema setting area (6111) may include at least one of a resource path, a resource file, and an EDI transaction for the source schema. Here, the resource path may indicate an EDI schema file path for EDI document data. The resource file may indicate a schema file path for the source schema. The EDI transaction may indicate an EDI transaction for the source schema to be performed with a partner.

타겟 스키마 설정 영역(6112)은 타겟 스키마에 대한 리소스 경로, 리소스 파일 및 EDI 유형 중 적어도 하나를 포함할 수 있다. 리소스 경로는 EDI 문서 데이터에 대한 EDI 스키마 파일 경로를 나타낼 수 있다. 리소스 파일은 타겟 스키마에 대한 스키마 파일 경로를 나타낼 수 있다. EDI 유형은 파트너와 수행될 타겟 스키마의 유형을 나타낼 수 있다. The target schema setting area (6112) may include at least one of a resource path, a resource file, and an EDI type for the target schema. The resource path may indicate the path to an EDI schema file for EDI document data. The resource file may indicate the path to a schema file for the target schema. The EDI type may indicate the type of target schema to be performed with the partner.

일 실시 예에서, 소스 스키마 설정 영역(6111)과 타겟 스키마 설정 영역(6112)을 통하여 911.exf 의 CREADV를 소스 스키마(EDI)로, RFC_CREADV.schema의 RFC_CREADV 스키마를 타겟 스키마(XML)로 지정할 수 있다. In one embodiment, the CREADV of 911.exf can be designated as the source schema (EDI) and the RFC_CREADV schema of RFC_CREADV.schema can be designated as the target schema (XML) through the source schema setting area (6111) and the target schema setting area (6112).

도 59는 실시 예에 따른 소스 스키마와 타겟 스키마의 매핑을 위한 사용자 인터페이스의 예를 개시하는 도면FIG. 59 is a diagram disclosing an example of a user interface for mapping a source schema and a target schema according to an embodiment.

도시한 예에서 소스 스키마와 타겟 스키마의 매핑을 위한 사용자 인터페이스는 매핑 프로그램 편집 화면을 제공할 수 있다. 여기에서, 매핑 프로그램 편집 화면은 매핑 프로그램(mapping program) 영역(6113), 스키마 매핑 영역(6114) 및 매핑 표현(mapping expression) 영역(6117)을 포함할 수 있다.In the illustrated example, a user interface for mapping a source schema and a target schema may provide a mapping program editing screen. Here, the mapping program editing screen may include a mapping program area (6113), a schema mapping area (6114), and a mapping expression area (6117).

여기에서, 매핑 프로그램 영역(6113)은 상술한 개발 도구 팔레트 및 개발 GUI 코드 영역을 포함할 수 있다. 즉, 매핑 프로그램 영역(6113)에서 사용자는 필요한 블록(statement)들을 흐름 순으로 배치하여 복잡한 소스 스키마와 타겟 스키마 간의 변환을 수행할 수 있도록 한다. Here, the mapping program area (6113) may include the development tool palette and development GUI code area described above. That is, in the mapping program area (6113), the user can arrange the necessary blocks (statements) in flow order to perform conversion between a complex source schema and a target schema.

또한, 일 실시 예에서, 사용자는 매핑 프로그램 영역(6113) 안에 출력 중인 개발 GUI 코드 중 맵(MAP) 블록을 선택할 수 있다. 이에 따라, 사용자 인터페이스는 맵 블록에 대응하는 소스 스키마 및 타겟 스키마를 각각 스키마 매핑 영역(6114)에 포함된 소스 스키마 영역(6115) 및 타겟 스키마 영역(6116)에 출력할 수 있다. Additionally, in one embodiment, a user may select a MAP block from among the development GUI codes being output within the mapping program area (6113). Accordingly, the user interface may output the source schema and target schema corresponding to the MAP block to the source schema area (6115) and target schema area (6116), respectively, contained within the schema mapping area (6114).

보다 상세하게는, 소스 스키마 영역(6115)은 변환하기 전의 데이터 스키마에 대한 정보를 나타낸다. 일 실시 예에서, 사용자는 소스 스키마에 대한 정보를 추가하거나 삭제할 수 있다. 타겟 스키마 영역(6116)은 변환 후의 데이터 스키마에 대한 정보를 나타낸다. 소스 스키마 영역(6115)과 타겟 스키마 영역(6116)은 소스 스키마와 타겟 스키마 노드 간의 연결을 쉽게 할 수 있도록 한다. 또한, 일 실시 예에서 사용자 인터페이스는 소스 스키마에 포함된 노드와 타겟 스키마에 포함된 노드의 매핑 라인(line)을 출력할 수 있다. 이를 통하여, 사용자는 소스 스키마의 노드가 어떤 타겟 스키마의 노드와 매핑되는지 여부를 시각적으로 알 수 있다. More specifically, the source schema area (6115) represents information about the data schema before conversion. In one embodiment, the user can add or delete information about the source schema. The target schema area (6116) represents information about the data schema after conversion. The source schema area (6115) and the target schema area (6116) facilitate connections between source and target schema nodes. Furthermore, in one embodiment, the user interface can output mapping lines between nodes included in the source schema and nodes included in the target schema. Through this, the user can visually determine whether a node in the source schema is mapped to a node in a target schema.

또한, 다른 일 실시 예에서 사용자 인터페이스는 소스 스키마에 포함된 노드를 선택한 뒤 타겟 스키마에 포함된 노드로 드래그 앤 드롭하는 입력 신호를 수신하는 경우, 자동으로 해당 매핑 식을 매핑 표현 영역(6117)에 출력할 수 있다. Additionally, in another embodiment, when the user interface receives an input signal for selecting a node included in the source schema and then dragging and dropping it to a node included in the target schema, the user interface can automatically output the corresponding mapping expression to the mapping expression area (6117).

매핑 표현 영역(6117)은 실제 노드 간의 매핑들을 수행하는 영역으로 앞선 블록(Statement)들 중 매핑 블록을 선택할 때 표시되어 각 노드 간의 매핑 식을 여러 개 삽입할 수 있도록 한다. 즉, 매핑 표현의 세부 값(value)들을 설정하는 영역에 대응한다. 이에 대한 상세한 내용은 전술한 내용을 참고한다. The mapping expression area (6117) is an area that performs actual mappings between nodes. It is displayed when a mapping block is selected from the preceding blocks (Statements), allowing multiple mapping expressions to be inserted between each node. In other words, it corresponds to an area that sets detailed values of the mapping expression. For further details, please refer to the above-mentioned content.

이를 통해, 본 발명에 따르면, 소스 스키마는 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑될 수 있다. 또한, 소스 스키마, 타겟 스키마 및 프로그래밍 언어의 문법을 나타내는 문장(statement) 정보 또는 특정한 결과값을 나타내는 표현식(expression) 정보 중 적어도 하나를 포함하는 매핑 스크립트에 기반하여 EDI 문서 데이터는 타겟 문서 데이터(6118)(예: XML 문서 데이터)로 변환될 수 있다. Through this, according to the present invention, a source schema can be mapped to a target schema for target document data using a graphical tool. Furthermore, EDI document data can be converted into target document data (6118) (e.g., XML document data) based on a mapping script that includes at least one of statement information representing the grammar of the source schema, the target schema, and a programming language, or expression information representing a specific result value.

도 60은 실시 예에 따른 애플리케이션 서비스 제공 방법이 EDI 문서 데이터에 대한 소스 스키마에 기반하여 데이터를 변환하는 예를 개시하는 흐름도 Figure 60 is a flowchart showing an example of a method for providing an application service according to an embodiment of the present invention for converting data based on a source schema for EDI document data.

애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득한다(S1001). 일 실시 예에서, 소스 스키마는, 상기 EDI 문서 데이터에 대한 EDI 트랜잭션, 세그먼트 및 데이터 요소 중 적어도 하나를 나타내는 메타데이터를 포함할 수 있다. In a computing system that manages a platform that provides clients with isolated workspaces where application packages are executed, a source schema for EDI document data is acquired (S1001). In one embodiment, the source schema may include metadata representing at least one of an EDI transaction, segment, and data element for the EDI document data.

소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑한다(S1003). 일 실시 예에서, 타겟 문서 데이터에 대한 타겟 스키마를 설정하고, 소스 스키마 및 타겟 스키마에 대한 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나를 결정하고, 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나에 기반하여, 소스 스키마의 계층적으로 구성된 세그먼트 및 데이터 요소 중 적어도 하나를 타겟 스키마에 매핑할 수 있다. 이에 대하여는 도 59에서 상술한 내용을 참고하도록 한다.A source schema is mapped to a target schema for target document data using a graphical tool (S1003). In one embodiment, a target schema for target document data is set, at least one of a resource path, a resource file, and an EDI transaction for the source schema and the target schema is determined, and at least one of a hierarchically structured segment and data element of the source schema is mapped to the target schema based on at least one of the resource path, the resource file, and the EDI transaction. For this, please refer to the description above in FIG. 59.

매핑에 기반하여 EDI 문서 데이터를 타겟 문서 데이터로 변환한다(S1005). 일 실시 예에서, EDI 문서 데이터에서 데이터 요소를 파싱하고, 소스 스키마와 타겟 스키마의 매핑에 기반하여, 상기 파싱된 데이터 요소를 타겟 문서 데이터의 데이터 형식 및 데이터 구조로 변환할 수 있다. 일 실시 예에서, S1005 단계 이후에, 상기 변환된 타겟 문서 데이터를 파트너에게 송신할 수 있다. 이에 대하여는 도 55 및 59에서 상술한 내용을 참고하도록 한다.EDI document data is converted into target document data based on the mapping (S1005). In one embodiment, data elements in the EDI document data may be parsed, and the parsed data elements may be converted into the data format and data structure of the target document data based on the mapping between the source schema and the target schema. In one embodiment, after step S1005, the converted target document data may be transmitted to the partner. For this purpose, please refer to the contents described above in FIGS. 55 and 59.

110, 120, 130, 310: 클라이언트
200, 320: 파트너
300: 클라이언트 또는 파트너
350: 에이전트
351: 에이전트 제어처리부
353: 송수신 설정처리부
357: 송수신부
1000: 인스턴스 시스템
1100: 코디네이터
1110, 1120, 1300, 3110, 3210: 노드
1330, 1115, 3115, 3215: 설정 저장부
1350: 에이전트 어댑터
1351: 에이전트 제어부
1352: 송수신 설정부
1353: 송수신 처리부
1370: 매핑 어댑터
1380: 통합 패키지
1390: EDI 어댑터
1500, 1510, 1520, 1530: 워크스페이스
1610: API
1700: 프레임워크레이어
1800: 가상화레이어
1900: 리소스레이어
2000: 매니저 시스템
2100: 애플리케이션 서비스 매니저
2110: 메시지 박스
3000: 개발워크스페이스
4000: 인터페이스 거버넌스 플랫폼
4100: 거버넌스 API
6000: 애플리케이션 서비스 제공 장치
110, 120, 130, 310: Client
200, 320: Partner
300: Client or Partner
350: Agent
351: Agent Control Processing Unit
353: Transmission and reception setting processing unit
357: Transmitter and receiver
1000: Instance System
1100: Coordinator
1110, 1120, 1300, 3110, 3210: Nodes
1330, 1115, 3115, 3215: Settings storage
1350: Agent Adapter
1351: Agent Control Unit
1352: Transmission and reception settings section
1353: Transmission and reception processing unit
1370: Mapping Adapter
1380: Integrated Package
1390: EDI Adapter
1500, 1510, 1520, 1530: Workspace
1610: API
1700: Framework Layer
1800: Virtualization Layer
1900: Resource Layer
2000: Manager System
2100: Application Service Manager
2110: Message Box
3000: Development Workspace
4000: Interface Governance Platform
4100: Governance API
6000: Application Service Provider

Claims (11)

애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득하는 단계;
상기 소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑하는 단계; 및
상기 매핑에 기반하여 상기 EDI 문서 데이터를 타겟 문서 데이터로 변환하는 단계;
를 포함하는,
애플리케이션 서비스 제공 방법.
In a computing system that manages a platform that provides clients with isolated workspaces in which application packages run, a step of obtaining a source schema for EDI document data;
A step of mapping the above source schema to a target schema for target document data using a graphical tool; and
A step of converting the EDI document data into target document data based on the above mapping;
including,
How to provide application services.
제 1 항에 있어서,
상기 소스 스키마는, 상기 EDI 문서 데이터에 대한 EDI 트랜잭션, 세그먼트 및 데이터 요소 중 적어도 하나를 나타내는 메타데이터를 포함하는,
애플리케이션 서비스 제공 방법.
In the first paragraph,
The source schema includes metadata representing at least one of an EDI transaction, segment, and data element for the EDI document data.
How to provide application services.
제 1 항에 있어서,
상기 매핑하는 단계는,
상기 타겟 문서 데이터에 대한 타겟 스키마를 설정하는 단계;
상기 소스 스키마 및 타겟 스키마에 대한 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나를 결정하는 단계;
상기 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나에 기반하여, 상기 소스 스키마의 계층적으로 구성된 세그먼트 및 데이터 요소 중 적어도 하나를 상기 타겟 스키마에 매핑하는 단계;
를 포함하는,
애플리케이션 서비스 제공 방법.
In the first paragraph,
The above mapping steps are:
A step of setting a target schema for the above target document data;
A step of determining at least one of a resource path, a resource file, and an EDI transaction for the source schema and the target schema;
A step of mapping at least one of the hierarchically structured segments and data elements of the source schema to the target schema based on at least one of the resource path, resource file and EDI transaction;
including,
How to provide application services.
제 1 항에 있어서,
상기 변환하는 단계는,
상기 EDI 문서 데이터에서 데이터 요소를 파싱하는 단계;
상기 소스 스키마와 타겟 스키마의 매핑에 기반하여, 상기 파싱된 데이터 요소를 상기 타겟 문서 데이터의 데이터 형식 및 데이터 구조로 변환하는 단계;
를 포함하는,
애플리케이션 서비스 제공 방법.
In the first paragraph,
The above conversion step is,
A step of parsing data elements from the above EDI document data;
A step of converting the parsed data elements into a data format and data structure of the target document data based on the mapping of the source schema and the target schema;
including,
How to provide application services.
제 1 항에 있어서,
상기 변환하는 단계 이후에,
상기 변환된 타겟 문서 데이터를 파트너에게 송신하는 단계;
를 더 포함하는,
애플리케이션 서비스 제공 방법.
In the first paragraph,
After the above conversion step,
A step of transmitting the converted target document data to a partner;
including more,
How to provide application services.
데이터를 저장하는 데이터베이스; 및
상기 데이터를 처리하는 프로세서를 포함하고,
상기 프로세서는,
애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득하고,
상기 소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑하고,
상기 매핑에 기반하여 상기 EDI 문서 데이터를 타겟 문서 데이터로 변환하는,
애플리케이션 서비스 제공 장치.
a database that stores data; and
Including a processor for processing the above data,
The above processor,
In a computing system that manages a platform that provides clients with isolated workspaces where application packages run, obtains the source schema for EDI document data,
Map the above source schema to the target schema for the target document data using a graphical tool,
Converting the EDI document data into target document data based on the above mapping,
Application service providing device.
제 6 항에 있어서,
상기 소스 스키마는, 상기 EDI 문서 데이터에 대한 EDI 트랜잭션, 세그먼트 및 데이터 요소 중 적어도 하나를 나타내는 메타데이터를 포함하는,
애플리케이션 서비스 제공 장치.
In paragraph 6,
The source schema includes metadata representing at least one of an EDI transaction, segment, and data element for the EDI document data.
Application service providing device.
제 6 항에 있어서,
상기 프로세서는,
상기 타겟 문서 데이터에 대한 타겟 스키마를 설정하고,
상기 소스 스키마 및 타겟 스키마에 대한 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나를 결정하고,
상기 리소스 경로, 리소스 파일 및 EDI 트랜잭션 중 적어도 하나에 기반하여, 상기 소스 스키마의 계층적으로 구성된 세그먼트 및 데이터 요소 중 적어도 하나를 상기 타겟 스키마에 매핑하는,
애플리케이션 서비스 제공 장치.
In paragraph 6,
The above processor,
Set the target schema for the above target document data,
Determine at least one of the resource path, resource file, and EDI transaction for the source schema and target schema,
Based on at least one of the resource path, resource file and EDI transaction, at least one of the hierarchically structured segments and data elements of the source schema is mapped to the target schema.
Application service providing device.
제 6 항에 있어서,
상기 프로세서는,
상기 EDI 문서 데이터에서 데이터 요소를 파싱하고,
상기 소스 스키마와 타겟 스키마의 매핑에 기반하여, 상기 파싱된 데이터 요소를 상기 타겟 문서 데이터의 데이터 형식 및 데이터 구조로 변환하는,
애플리케이션 서비스 제공 장치.
In paragraph 6,
The above processor,
Parse the data elements from the above EDI document data,
Based on the mapping of the source schema and the target schema, converting the parsed data elements into the data format and data structure of the target document data.
Application service providing device.
제 6 항에 있어서,
상기 프로세서는,
상기 변환된 타겟 문서 데이터를 파트너에게 송신하는,
애플리케이션 서비스 제공 장치.
In paragraph 6,
The above processor,
Sending the above converted target document data to the partner,
Application service providing device.
애플리케이션 패키지가 실행되는 서로 격리된 워크스페이스를 클라이언트에 제공하는 플랫폼을 관리하는 컴퓨팅 시스템에서, EDI 문서 데이터에 대한 소스 스키마를 획득하고,
상기 소스 스키마를 그래픽 기반의 도구로 타겟 문서 데이터에 대한 타겟 스키마에 매핑하고,
상기 매핑에 기반하여 상기 EDI 문서 데이터를 타겟 문서 데이터로 변환하는 단계를 수행하는 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체.
In a computing system that manages a platform that provides clients with isolated workspaces where application packages run, obtains the source schema for EDI document data,
Map the above source schema to the target schema for the target document data using a graphical tool,
A storage medium storing a computer-executable program that provides an application service for performing a step of converting the EDI document data into target document data based on the above mapping.
KR1020240018899A 2024-02-07 2024-02-07 Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services Pending KR20250122799A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020240018899A KR20250122799A (en) 2024-02-07 2024-02-07 Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020240018899A KR20250122799A (en) 2024-02-07 2024-02-07 Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services

Publications (1)

Publication Number Publication Date
KR20250122799A true KR20250122799A (en) 2025-08-14

Family

ID=96734285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020240018899A Pending KR20250122799A (en) 2024-02-07 2024-02-07 Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services

Country Status (1)

Country Link
KR (1) KR20250122799A (en)

Similar Documents

Publication Publication Date Title
US10528656B2 (en) Application module for managing jobs asynchronously
US8850454B2 (en) Method and computer program product for integrating a first application providing a B2B gateway and one or more second applications
Ruh et al. Enterprise application integration: a Wiley tech brief
US8015541B1 (en) Business process technology for the enterprise
US9092244B2 (en) System for developing custom data transformations for system integration application programs
US7634726B2 (en) Technique for automated e-business services
US7831693B2 (en) Structured methodology and design patterns for web services
KR101660148B1 (en) An apparatus, a method and a machine-readable storage medium for optimizing calls to a service by components of an application running on the application server
US20040098311A1 (en) XML message monitor for managing business processes
JP7097958B2 (en) Systems and methods for integrating cloud applications into cloud service broker platforms using the Automatic Universal Connector Package
Ferreira Enterprise systems integration
Heinrich et al. The CoCoME platform for collaborative empirical research on information system evolution
KR20250122799A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR20250122795A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR20250122802A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR102659154B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
Kumar et al. Serverless Integration Design Patterns with Azure: Build powerful cloud solutions that sustain next-generation products
KR102659150B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR20250123587A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR102725199B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR20250122336A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR20250123595A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR20250125456A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR20250125479A (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR102663420B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501