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

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

Info

Publication number
KR102637168B1
KR102637168B1 KR1020230094557A KR20230094557A KR102637168B1 KR 102637168 B1 KR102637168 B1 KR 102637168B1 KR 1020230094557 A KR1020230094557 A KR 1020230094557A KR 20230094557 A KR20230094557 A KR 20230094557A KR 102637168 B1 KR102637168 B1 KR 102637168B1
Authority
KR
South Korea
Prior art keywords
workspace
node
package
client
application
Prior art date
Application number
KR1020230094557A
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 KR1020230094557A priority Critical patent/KR102637168B1/en
Application granted granted Critical
Publication of KR102637168B1 publication Critical patent/KR102637168B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

개시하는 실시 예는 애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체에 관한 것이다. 일 실시 예는, 워크스페이스를 이용하는 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하는 단계; 상기 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하는 단계; 및 상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스 요청을 승인하거나 거부하는 단계;를 포함하는 애플리케이션 서비스 제공 방법을 제공한다.The disclosed embodiment relates to an application service providing device, an application service providing method, and a storage medium storing a program executable on a computer that provides the application service. One embodiment includes receiving a service request for an application package from a client using a workspace; performing authentication of the requested application package based on authentication information included in a software bundle related to the workspace; and approving or rejecting a service request for the received application package according to the authentication result.

Description

애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스 제공하는 프로그램이 저장된 컴퓨터가 판독 가능한 기록매체{APPARTUS FOR PROVIDING APPLICATION SERVICES, METHOD THEREOF, AND COMPUTATIONALLY-IMPLEMENTABLE STORAGE MEDIUM STORING A PROGRAM FOR PROVIDING APPLICATION SERVICES}Device for providing application services, method for providing application services, and computer-readable recording medium storing programs for providing application services

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

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

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

이러한 소프트웨어는 전자 문서 교환 등 여러 기업들 간의 정형화된 양식으로 거래에 필요한 정보를 기입하고 교환할 수 있도록 도움을 줄 수 있다. 이러한 전자 문서 교환 방식이 일반화됨에 따라 표준화된 방식이 규정되어 표준화된 전자문서로 변화시켜 거래 당사자의 컴퓨터로 교환, 축적, 처리하면 시간과 노력을 단축할 수 있다. Such software can help you enter and exchange information necessary for transactions in a standardized form between multiple companies, such as electronic document exchange. As this method of electronic document exchange becomes more common, a standardized method is prescribed, so that time and effort can be reduced by converting it into a standardized electronic document and exchanging, accumulating, and processing it on the computers of the parties involved in the transaction.

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

시장의 신규 업체의 경우 기존 거래 당사자가 요구하는 표준화된 양식과 형식으로 준비하기 어려운 경우가 있다. 시장의 복잡한 거래 양태들과 요구사항들이 많기 때문에 이러한 표준화된 거래 형식을 이해하거나 따르기 힘든 경우가 있는 등의 문제로 거래를 활성화하기 힘든 경우가 있다.For new companies in the market, it may be difficult to prepare standardized forms and formats required by existing trading parties. Because there are many complex trading patterns and requirements in the market, it may be difficult to activate trading due to problems such as difficulty understanding or following these standardized trading formats.

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

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

개시하는 실시 예는, 위와 같은 불편한 문제점들을 해결하기 위한 것으로서, 거래를 위해 기술적인 불편함을 해결하고 거래를 더욱 활성화시킬 수 있는 애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체를 제공할 수 있다. The disclosed embodiment is intended to solve the above inconvenient problems, and includes an application service providing device, an application service providing method, and a computer providing the application service that can solve technical inconveniences for transactions and further activate transactions. A storage medium storing an executable program can be provided.

개시하는 일 실시 예는, 워크스페이스를 이용하는 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하는 단계; 상기 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하는 단계; 및 상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스 요청을 승인하거나 거부하는 단계;를 포함하는 애플리케이션 서비스 제공 방법을 제공한다. One embodiment disclosed includes receiving a service request for an application package from a client using a workspace; performing authentication of the requested application package based on authentication information included in a software bundle related to the workspace; and approving or rejecting a service request for the received application package according to the authentication result.

상기 인증 정보는, 상기 소프트웨어 번들이 설치된 상기 워크스페이스에 따라 다르게 할 수 있다.The authentication information may vary depending on the workspace in which the software bundle is installed.

상기 인증을 수행하는 단계는, RSA (Rivest-Shamir-Adleman) 암호화 알고리즘 기반의 부인방지 토큰(Non-Repudiation Token)을 이용할 수 있다. The step of performing the authentication may use a non-repudiation token based on the RSA (Rivest-Shamir-Adleman) encryption algorithm.

상기 워크스페이스는, 상기 인증 정보를 제외한 동일한 소프트웨어 번들이 실행될 수 있다.The workspace may run the same software bundle except for the authentication information.

다른 관점에서 개시하는 일 실시 예는, 데이터를 저장하는 저장매체; 및 적어도 하나의 프로세서를 포함하는 서버를 포함하고, 상기 프로세서는, 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하고; 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하고; 및 상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스 요청을 승인하거나 거부하는, 연산 수행들을 포함하는 애플리케이션 서비스 제공 장치를 제공한다. One embodiment disclosed from another perspective includes a storage medium for storing data; and a server including at least one processor, wherein the processor receives a service request for an application package from a client; perform authentication of the requested application package based on authentication information included in a software bundle related to the workspace; and operations for approving or rejecting a service request for the received application package according to a result of the authentication.

다른 관점에서 개시하는 일 실시 예는, 워크스페이스를 이용하는 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하고; 상기 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하고; 및 상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스 요청을 승인하거나 거부하는; 컴퓨터 명령어들을 포함하는, 컴퓨터로 실행가능한, 애플리케이션 서비스 제공하는 프로그램을 저장하는 저장매체를 제공한다.One embodiment disclosed from another perspective includes receiving a service request for an application package from a client using a workspace; perform authentication of the requested application package based on authentication information included in a software bundle related to the workspace; and approving or rejecting a service request for the received application package according to the authentication result. Provides a storage medium for storing a computer-executable program that includes computer instructions and provides an application service.

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

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

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

개시하는 실시 예에 따르면 각각의 클라이언트들에 대해 모든 버전과 종류들의 소프트웨어 패키지들이 준비될 필요없이 효율적인 애플리케이션 서비스를 제공할 수 있다.According to the disclosed embodiment, an efficient application service can be provided without the need to prepare all versions and types of software packages for each client.

도 1은 실시 예에 따른 애플리케이션 서비스 제공 방법의 일 예를 개시하는 흐름도
도 2는 개시한 실시 예 중 워크스페이스를 통해 클라이언트에 애플리케이션 서비스를 제공하는 예를 개시한 도면
도 3은 개시한 애플리케이션 서비스 장치의 예에서 패키지들을 각 노드로 배포하는 예를 개시한 도면
도 4는 실시 예에 따른 애플리케이션 서비스 제공에 대한 레이어 별 요소들을 개시한 개념도
도 5는 실시 예에 따른 애플리케이션 서비스 제공 장치가 인스턴스와 클라이언트 또는 파트너 사이의 채널을 설정하는 개념을 개시한 도면
도 6은 실시 예에 따른 애플리케이션 서비스 제공 장치가 인스턴스와 클라이언트 또는 파트너 사이의 채널을 설정하는 구체적인 예를 개시한 도면
도 7은 실시 예에 따라 분산 채널을 설정하고 서비스를 제공받는 예를 개시한 도면
도 8은 실시 예에 따라 설치되는 패키지의 설정 정보를 관리하는 예를 개시한 도면
도 9는 개시하는 실시 예의 워크스페이스에 따라 패키지를 관리하고 이용하는 예를 개시한 도면
도 10은 실시 예에 따라 애플리케이션 서비스의 일종으로서 EDI 정보를 매핑하는 예를 개시한 도면
도 11은 실시 예에 따라 통합 패키지를 이용하여 애플리케이션 서비스를 제공하는 예를 개시한 도면
도 12는 개시한 애플리케이션 서비스 제공하는 예에 따른 플랫폼의 인터페이스의 일 예를 도시한 도면
도 13은 개시한 애플리케이션 서비스 제공하는 예에 따른 플랫폼의 인터페이스의 다른 일 예를 도시한 도면
도 14는 실시 예에 따른 애플리케이션 서비스 제공 장치가 서로 다른 시스템을 통합할 수 있는 프레임워크를 제공하는 예를 개시한 도면
도 15는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 커넥터를 그래픽 기반으로 코딩하는 예를 나타낸 도면
도 16는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 서비스를 그래픽 기반으로 코딩하는 예를 나타낸 도면
도 17는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 프로세서를 그래픽 기반으로 코딩하는 예를 나타낸 도면
도 18는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 컨트롤 플로우(Control flow)를 그래픽 기반으로 코딩하는 예를 나타낸 도면
도 19는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 모디파이어(modifier)를 그래픽 기반으로 코딩하는 예를 나타낸 도면
도 20은 실시 예에 따라 클라이언트에 따라 격리된 고유의 워크스페이스를 제공하는 일 예를 개시한 도면
도 21은 실시 예에 따라 격리된 워크스페이스로부터 클라이언트에 패키지를 제공하는 일 예를 개시한 흐름도
1 is a flowchart illustrating an example of a method for providing an application service according to an embodiment.
Figure 2 is a diagram illustrating an example of providing an application service to a client through a workspace among the disclosed embodiments.
Figure 3 is a diagram illustrating an example of distributing packages to each node in the example of the disclosed application service device.
Figure 4 is a conceptual diagram disclosing elements for each layer for application service provision according to an embodiment.
Figure 5 is a diagram illustrating a concept in which an application service providing device establishes a channel between an instance and a client or partner according to an embodiment.
FIG. 6 is a diagram illustrating a specific example in which an application service providing device establishes a channel between an instance and a client or partner according to an embodiment.
Figure 7 is a diagram illustrating an example of setting up a distributed channel and receiving a service according to an embodiment.
8 is a diagram illustrating an example of managing setting information of a package installed according to an embodiment.
9 is a diagram illustrating an example of managing and using a package according to a workspace of the disclosed embodiment.
Figure 10 is a diagram illustrating an example of mapping EDI information as a type of application service according to an embodiment
Figure 11 is a diagram illustrating an example of providing an application service using an integrated package according to an embodiment
Figure 12 is a diagram illustrating an example of a platform interface according to an example of providing the disclosed application service.
FIG. 13 is a diagram illustrating another example of a platform interface according to an example of providing the disclosed application service.
FIG. 14 is a diagram illustrating an example in which an application service providing device according to an embodiment provides a framework for integrating different systems.
Figure 15 is a diagram showing an example of coding a connector among the integration flow functions based on graphics when developing an integration flow based on an embodiment.
Figure 16 is a diagram showing an example of graphic-based coding of services among the integration flow functions when developing an integration flow based on an embodiment.
Figure 17 is a diagram showing an example of graphic-based coding of the processor among the integration flow functions when developing an integration flow based on an embodiment.
Figure 18 is a diagram showing an example of graphically coding the control flow among the integration flow functions when developing the integration flow based on the embodiment.
Figure 19 is a diagram showing an example of coding a modifier among the integration flow functions based on graphics when developing an integration flow based on an embodiment.
Figure 20 is a diagram illustrating an example of providing a unique workspace isolated depending on the client according to an embodiment.
21 is a flowchart illustrating an example of providing a package to a client from an isolated workspace according to an embodiment.

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

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

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

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

실시 예는 가상의 격리된 워크스페이스를 이용하는 클라이언트로부터 정보를 송수신하는 채널 요청을 수신할 수 있다(S100). The embodiment may 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 a virtual, isolated workspace to the client.

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

시스템 관리자 또는 클라이언트는 클라이언트가 위와 같은 서비스를 제공받을 수 있도록 시스템의 원격 제어 및 업데이트를 수행할 수 있으며, 시스템은 여러 가지 표준들과 연계된 프로토콜에 따라 통신기능을 구비할 수 있다.The system administrator or client can remotely control and update 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.

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

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

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

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

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

시스템은 클라이언트가 원하는 여러 가지 데이터 포맷과 구조에 대한 매핑을 지원하는 여러 가지 수단 또는 전문 컴퓨터 언어를 제공할 수 있다. 또한 클라이언트가 애플리케이션 패키지를 변경할 수 있도록 애플리케이션과 관련 도구를 제공할 수 있다. The system may provide several means or specialized computer languages to support mapping to the various data formats and structures desired by the client. Additionally, the application and related tools can be provided to allow the client to change the application package.

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

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

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

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

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

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

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

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

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

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

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

인스턴스 시스템(1000)에서는 매니저 시스템(2000)이 클라이언트들(110, 120, 130)에게 제공하는 서비스의 인터페이스가 실행될 수 있다. In the instance system 1000, the interface of the service provided by the manager system 2000 to the clients 110, 120, and 130 may 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 the transmitted and received information and the requirements of the clients 110, 120, and 130. there is. 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 figure, node #0 (1100) may serve 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, includes worker nodes: the first node (Node #1), the second node (Node #2), the third node (Node #3), and the Nth node (Node #N), etc. to control the scale of the system.

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

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

마찬가지로 제 1 노드(Node #1)는 HTTP/REST 기반으로 다른 노드들(노드#0, 제 2 노드(Node #2), 제 3 노드(Node #3), 및 제 N 노드(Node #N))와 데이터를 송수신할 수 있다.Likewise, the first node (Node #1) is connected to other nodes (Node #0, second node (Node #2), third node (Node #3), and N-th node (Node #N) based on HTTP/REST. ) can transmit and receive data.

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

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

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

클라이언트들(110, 120, 130)은 서로 격리된 워크스페이스들(1510, 1520, 1530)을 가질 수 있고, 격리된 워크스페이스들을 통해 애플리케이션 또는 소프트웨어 패키지들을 제공받거나, 변경 또는 이용할 수 있다. Clients 110, 120, and 130 may have workspaces 1510, 1520, and 1530 that are isolated from each other, and may receive, change, or use 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) may 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) may 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 workspaces 1510, 1520, and 1530 isolated from each other to the clients 110, 120, and 130 through the instance system 1000.

예를 들어 클라이언트 1(110)는 워크스페이스(1510)를 독립적으로 사용할 수 있다. For example, Client 1 (110) can independently use the 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 set with the coordinator (1100). For example, Client 1 (110) can receive the necessary software packages A and C from the coordinator (1100) through an HTTP channel in workspace A (1510). A detailed example of setting up a channel 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 necessary software packages A and B from the coordinator (1100) in workspace B (1520) through, for example, an HTTP channel.

마찬가지로 클라이언트 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) through 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 the clients 110, 120, and 130 can select which node in the instance system 1000 wants a software package in their workspaces 1510, 1520, and 1530. There is no need to be aware that it provides .

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

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

각각 노드들(Node #1, Node #2, Node #3, Node #N)들 중 적어도 하나 이상의 노드에 클라이언트 1(110)이 이용하는 워크스페이스 A(1510)에 필요한 소프트웨어 패키지를 저장할 수 있다. A software package required for workspace A (1510) used by client 1 (110) may be stored in at least one of the nodes (Node #1, Node #2, Node #3, and 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 due to the scale-out of the coordinator (1100), other nodes (Node #3, Node #3) #N) and can also be stored.

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

유사하게 소프트웨어 패키지 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 due to the scale-out of the coordinator (1100), other nodes (Node #2, Node # It can also be passed to N) and stored.

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

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

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

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

도 3은 개시한 애플리케이션 서비스 장치의 예에서 패키지들을 각 노드로 배포하는 예를 개시한다.Figure 3 shows an example of distributing packages to each node in the example of the disclosed application service device.

실시 예에 따르면 소프트웨어 개발자는 소프트웨어 이미지를 사용하여 애플리케이션을 신속하게 개발하고 배포할 수 있다. According to embodiments, software developers can quickly develop and deploy applications using software images.

각 노드의 프레임워크는 애플리케이션을 실행할 수 있고, 애플리케이션을 실행하는데 필요한 만큼의 노드의 리소스를 사용할 수 있다. 노드가 클라우드 시스템에 포함될 경우 클라우드 리소스를 기반으로 애플리케이션을 실행할 수 있다. 만약 노드가 온프레미스 기반의 시스템인 경우 온프레미스 리소스를 기반으로 애플리케이션을 실행할 수 있다. 이 도면에서는 클라우드의 경우를 예시하여 나타내었다.The framework on each node can run an application and use as many node resources as necessary to run the application. When a node is included in a cloud system, it can run applications based on cloud resources. If the node is an on-premises-based system, the application can be run based on on-premises resources. In this drawing, the case of a cloud is shown as an example.

인스턴스 시스템에 포함되는 노드들 상의 프레임워크는, 애플리케이션의 가상화 처리를 위해 노드가 포함된 클라우드/온프레미스 리소스를 제어할 수 있고, 애플리케이션 패키지를 다른 노드로 이식할 수 있도록 할 수 있다. The framework on the nodes included in the instance system can control the cloud/on-premise resources included in the node for virtualization processing of the application and can allow application packages to be ported to other nodes.

애플리케이션 서비스 프로바이더는 서비스와 관련된 소프트웨어 패키지(service app)를 생성하여 저장장치 또는 애플리케이션 저장소(Registry)에 저장할 수 있다. 여기서, 이하에서는 설명을 용이하게 하기 위해 애플리케이션 서비스 프로바이더가 제공하는 애플리케이션 서비스를 EDI (Electronic Data Interchange) 서비스로 예시하고, 소프트웨어 패키지를 EDI 서비스의 소프트웨어 이미지(EDI service app)로 예시한다. An application service provider can create a software package (service app) related to a service and store it in a storage device or application repository (Registry). Hereinafter, for ease of explanation, the application service provided by the application service provider is exemplified as an EDI (Electronic Data Interchange) service, and the software package is exemplified as a software image (EDI service app) of the EDI service.

예를 들어 EDI는 상거래와 관련된 정보를 합의된 표준 서식에 기입하여 표준화된 송수신 방법에 따라 기입된 정보를 교환하는 방식을 지칭한다. EDI 서비스는 여러 가지 거래 양식, 거래되는 물품이나 서비스, 거래 주체들에 따라 매우 많은 서비스들이 존재할 수 있다.For example, EDI refers to a method of entering information related to commercial transactions in an agreed-upon standard format and exchanging the information according to a standardized transmission and reception method. There can be many EDI services depending on various transaction forms, traded goods or services, and transaction entities.

애플리케이션 서비스 프로바이더(ASP)는 이러한 EDI 서비스와 관련된 소프트웨어 패키지(EDI service app)를 생성하고, 이를 데이터베이스(database)에 등록하거나 또는 애플리케이션 저장소(Registry)에 저장할 수 있다. An application service provider (ASP) can create a software package (EDI service app) related to this EDI service and register it in a database or store it in an application repository (Registry).

소프트웨어 패키지는, 클라이언트가 소프트웨어를 설치하고 사용할 수 있도록 소프트웨어에 구성요소를 포함하는 소프트웨어의 묶음을 지칭한다. 이 예에서 소프트웨어 패키지(App 패키지)는 애플리케이션과 그 애플리케이션의 실행 가능한 바이너리 파트나 라이브러리 파트를 포함하는 패키지로 표시하였다. A software package refers to a bundle of software that includes components that enable a client to install and use the software. In this example, a software package (App package) is indicated as a package that includes an application and its executable binary parts or library parts.

따라서 소프트웨어 패키지는 가상화된 클라우드 리소스에서 실행되는 소프트웨어 이미지인 파일 형태를 가질 수 있다.Therefore, a software package can take the form of a file that is a software image that runs on a virtualized cloud resource.

각 클라이언트는 각 워크스페이스(미도시)에서 저장소(Registry)에 저장되거나 데이터베이스(database)에 등록된 소프트웨어 패키지(EDI service app)를 다운로드받고, 이를 변경하거나 실행할 수 있다. Each client can download a software package (EDI service app) stored in the registry or registered in the database from each workspace (not shown), and change or execute it.

저장소(Registry)에 저장되거나 데이터베이스(database)에 등록된 소프트웨어 패키지(EDI service app)는 동일한 패키지라도 각 워크스페이스를 제공하는 노드들에 다운로드되거나 실행될 수 있다. Software packages (EDI service app) stored in the registry or registered in the database can be downloaded or executed on nodes providing each workspace, even if the package is the same.

각 클라이언트는 각자의 격리된 워크스페이스(미도시)에서 필요한 소프트웨어 패키지(EDI service app)를 소프트웨어 이미지로 다운받아 원하는 EDI 서비스에 이용할 수 있다. Each client can download the necessary software package (EDI service app) as a software image in its own isolated workspace (not shown) and use it for the desired EDI service.

각 클라이언트는 소프트웨어 이미지로 다운받아 원하는 EDI 서비스를 얻는데 사용하거나, 상기 클라이언트의 파트너에 EDI 서비스를 제공할 수도 있다. Each client can download the software image and use it to obtain the desired EDI service, or provide the EDI service to the client's partner.

클라이언트가 격리된 워크스페이스에서 소프트웨어 이미지로 다운받아 원하는 EDI 서비스를 제공할 경우 소프트웨어 패키지(EDI service app)를 저장소(Registry)에 저장하거나 데이터베이스(database)에 등록시킬 수도 있다.When a client provides a desired EDI service by downloading it as a software image in an isolated workspace, the software package (EDI service app) can be saved in the registry or registered in the database.

애플리케이션 서비스 프로바이더(ASP)는, 클라이언트가 EDI 서비스 등의 서비스에 관련된 소프트웨어 패키지를 이용, 변경 또는 제공할 수 있도록 인스턴스 시스템을 제공하고, 인스턴스 시스템과의 데이터 송수신을 관리할 수 있다. 이에 대해서는 이하에서 상술한다.An application service provider (ASP) provides an instance system so that clients can use, change, or provide software packages related to services such as EDI services, and can manage data transmission and reception with the instance system. This is described in detail below.

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

실시 예에 따른 애플리케이션 서비스 제공 장치는 매니저 시스템(2000)에 의해 제어되고 관리될 수 있다. An application service providing device according to an embodiment may 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-premise system or a cloud system.

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

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

예를 들면, 컴퓨팅 시스템은 가상화 레이어(virtualization layer)로서 컨테이너를 제공할 수 있다. 컨테이너는 호스트 운영 체제(OS) 위에서 애플리케이션을 실행하는 데 필요한 만큼 호스트의 리소스를 사용하도록 할 수 있다. 컨테이너 이미지를 사용하면 애플리케이션을 신속하게 개발하고 배포하도록 할 수 있다. For example, a computing system may 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 allow you to quickly develop and deploy applications.

컴퓨팅 시스템은 프레임워크를 제공하는 프레임워크 레이어(1700)를 포함할 수 있다. 프레임워크는 응용프로그래밍인터페이스(API)(1610, 4100)를 통해 여러 가지 애플리케이션이들이 구동할 수 있도록 할 수 있다. The computing system may include a framework layer 1700 that provides a framework. The framework can enable various applications to run through application programming interfaces (APIs) (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 governance API (4100), and various applications are located on the application programming interface (API) (1610, 4100). It can be run on

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

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

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

클라이언트(100)가 EDI 서비스와 관련된 애플리케이션을 통해 거래를 진행하는 경우 파트너(200)는 클라이언트(100)가 제공하는 EDI 서비스 애플리케이션을 통해 거래를 진행할 수 있다. When the client 100 conducts a transaction through an application related to the EDI service, the partner 200 can proceed with the transaction through the 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) manages the computing environment that provides the development workspace (3000) to the client (100) or partner (200), and allows the client (100) or partner (200) to use the development workspace (3000). This allows you to develop the applications you need.

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

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

또한 클라이언트(100)는 개발워크스페이스(3000)를 통해 개발한 애플리케이션을 도면에 예시한 앱 스토어(app store)(3000)를 통해 다른 클라이언트나 파트너들에게 제공할 수도 있다.Additionally, the client 100 may 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)와 같이 소프트웨어 패키지를 개발, 테스트, 활용 및 서비스 제공에 이용할 수 있다. The partner 200 and the manager system 2000 can be used to develop, test, utilize, and provide services like the client 100 through the system provided.

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

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

도 5는 실시 예에 따른 애플리케이션 서비스 제공 장치가 인스턴스와 클라이언트 또는 파트너 사이의 채널을 설정하는 개념을 개시한 도면이다. Figure 5 is a diagram illustrating a concept in which an application service providing device establishes a channel between an instance and a client or partner according to an embodiment.

개시한 바와 같이 인스턴스 시스템은 적어도 하나 이상의 노드를 포함할 수 있다. 예를 들어 인스턴스 시스템은, 코디네이터 노드와 상기 코디네이터 노드와 소프트웨어 패키지를 송수신하는 워커 노드를 포함할 수 있다. As disclosed, an instance system may include at least one node. For example, an instance system may include a coordinator node and worker nodes that transmit and receive software packages with the coordinator node.

인스턴스 시스템은 자체의 워커노드들을 확장할 수 있을 뿐만 아니라 둘 이상의 인스턴스 시스템들로 확장될 수 있다. 따라서 클라이언트가 증가하여도 지속적으로 확장된 시스템 환경과 서비스를 제공할 수 있다. An instance system can not only expand its own worker nodes, but can also expand into two or more instance systems. Therefore, even as the number of clients increases, it is possible to provide continuously expanded system environments and services.

애플리케이션 서비스가 제공되기 위해 애플리케이션 서비스 매니저(2100)는 클라이언트 또는 파트너(300)들에 자원 등의 정보를 수집할 수 있다.In order to provide an application service, the application service manager 2100 may collect information such as resources from clients or partners 300.

이 경우 애플리케이션 서비스 매니저(2100)가 직접 클라이언트/파트너(300)의 시스템을 직접 접근하여 클라이언트/파트너(300)의 자원정보를 수집하면 보안 상 문제가 될 수 있다. In this case, if the application service manager 2100 directly accesses the system of the client/partner 300 and collects resource information of the client/partner 300, it may become a security problem.

따라서, 실시 예는 클라이언트/파트너(300)에 에이전트(350)을 설치하도록 하고, 클라이언트/파트너(300)가 직접 접속정보를 관리할 수 있도록 할 수 있다.Accordingly, the embodiment may install the agent 350 on the client/partner 300 and allow the client/partner 300 to directly manage connection information.

에이전트(350)는 클라이언트/파트너(300) 내의 자원관리정보 또는 접속정보에 대한 연결정보를 설정할 수 있다. 이 예에서 에이전트(350)는 클라이언트/파트너(300)의 자원관리정보 또는 접속정보, 클라이언트/파트너(300)의 사용자정보, 기타 파일 시스템 정보를 수집할 수 있다. 또한 에이전트(350)는 클라이언트/파트너(300)의 데이터베이스에 접근하여 저장된 정보를 수집할 수 있다. 에이전트(350)는 수집된 정보를 저장할 수 있다. The agent 350 can set connection information for resource management information or connection information within the client/partner 300. In this example, the agent 350 may collect resource management information or connection information of the client/partner 300, user information of the client/partner 300, and other file system information. Additionally, the agent 350 may access the database of the client/partner 300 to collect stored information. Agent 350 may store the collected information.

클라이언트/파트너(300)의 에이전트(350)는 애플리케이션 서비스를 제공받을 수 있는 인스턴스 시스템의 임의의 노드인 제 N 노드(Node #n)(1300)에 설치된 에이전트 어댑터(1350)와 연결될 수 있다. The agent 350 of the client/partner 300 may be connected to the agent adapter 1350 installed on the N-th node (Node #n) 1300, which is an arbitrary node of the instance system that can receive application services.

애플리케이션 서비스 매니저(2100)는 제 N 노드(1300)에 설치된 에이전트 어댑터(1350)으로부터 클라이언트/파트너(300)의 에이전트(350)에서 수집된 클라이언트/파트너(300) 관련 정보를 얻을 수 있다. The application service manager 2100 may obtain information related to the client/partner 300 collected from the agent 350 of the client/partner 300 from the agent adapter 1350 installed on the N-th node 1300.

제 N 노드(1300)는 설정 저장부(Config. Repository)(1330)를 포함할 수 있는데 매니저 시스템(2100)이 설정한 정보, 예를 들면 에이전트를 위한 설정 정보 또는 에이전트와 에이전트 어댑터 간의 송수신 정보가 저장될 수 있다. 위한 에이전트 어댑터(1350)가 클라이언트/파트너(300)의 에이전트(350)로부터 전달받은 여러 가지 정보를 저장할 수 있다. The N-th node 1300 may include a configuration storage unit (Config. Repository) 1330, which contains information set by the manager system 2100, for example, configuration information for the agent or transmission/reception information between the agent and the agent adapter. It can be saved. The agent adapter 1350 may store various information received from the agent 350 of the client/partner 300.

애플리케이션 서비스 매니저(2100)는 메시지 박스(2110)을 포함할 수 있는데, 메시지 박스(2110)는 제 N 노드(1300)의 에이전트 어댑터(1350)가 저장된 정보를 수신(outbox slot)하거나, 에이전트 어댑터(1350)에 정보를 요청(inbox slot)할 수 있다.The application service manager 2100 may include a message box 2110, where the agent adapter 1350 of the N-th node 1300 receives stored information (outbox slot), or the agent adapter ( You can request information (inbox slot) at 1350).

에이전트 어댑터(1350)는, 애플리케이션 서비스 매니저(2100)의 메시지 박스(2110)으로부터 받은 정보(inbox slot)를 클라이언트/파트너(300)의 에이전트(350)로 전달한다. 그리고, 에이전트 어댑터(1350)는, 클라이언트/파트너(300)의 에이전트(350)로부터 수신한 정보(outbox slot)를 애플리케이션 서비스 매니저(2100)의 메시지 박스(2110)로 전달한다.The agent adapter 1350 transmits information (inbox slot) received from the message box 2110 of the application service manager 2100 to the agent 350 of the client/partner 300. And, the agent adapter 1350 delivers information (outbox slot) received from the agent 350 of the client/partner 300 to the message box 2110 of the application service manager 2100.

메시지 박스(2110)는 송수신하는 데이터, 파일, 또는 문서 등을 저장할 수 있는 저장소이며 별도의 서버로 구성될 수도 있다. 따라서 메시지 박스(2110)는 메시지 서버라고 호칭할 수도 있으나, 이 도면의 예에서는 논리적인 구분과 모니터링의 단위로서 메시지 박스로 표시한다. The message box 2110 is a storage space that can store transmitted and received data, files, or documents, and may be configured as a separate server. Therefore, the message box 2110 may be called a message server, but in the example of this drawing, it is indicated as a message box as a unit of logical division and monitoring.

클라이언트/파트너(300)에 등록된 에이전트(350)는 에이전트 어댑터(1350)로 데이터를 보낼 수 있다(send). 그리고 에이전트(350)는 에이전트 어댑터(1350)로부터 일정한 주기로 데이터를 수신 또는 폴링(polling)할 수 있다.The agent 350 registered with the client/partner 300 can send data to the agent adapter 1350. And the agent 350 can receive or poll data from the agent adapter 1350 at regular intervals.

클라이언트/파트너(300)에 서비스를 제공하는 제 N 노드(1300)의 설정 저장부(Config. Repository)(1330)는 에이전트(350)와 에이전트 어댑터(1350) 사이의 채널 설정 정보나 에이전트 어댑터(1350)가 에이전트(350)로부터 수신하는 설정 정보 등을 저장할 수 있다. The Config. Repository 1330 of the N-th node 1300 that provides services to the client/partner 300 contains channel setting information between the agent 350 and the agent adapter 1350 or the agent adapter 1350. ) can store setting information received from the agent 350.

애플리케이션 서비스 매니저(2100)는 노드(1300)에 설치된 에이전트 어댑터(1350)로부터 클라이언트/파트너(300)에 제공되는 서비스에 필요한 정보를 제공하거나 얻을 수 있다. The application service manager 2100 may provide or obtain information necessary for services provided to the client/partner 300 from the agent adapter 1350 installed on the node 1300.

에이전트(350)는 클라이언트/파트너(300)의 필요한 정보만 수집하기 때문에 클라이언트/파트너(300)에 발생하는 보안문제를 최소화시킬 수 있다. 또한, 에이전트(350)가 불필요한 데이터를 가져오지 않고 일정 주기로 데이터가 송수신되기 때문에 제 N 노드(1300)와 클라이언트/파트너(300)사이의 채널 과부하가 생기지 않을 수 있다. Since the agent 350 collects only the necessary information of the client/partner 300, security problems occurring in the client/partner 300 can be minimized. Additionally, because the agent 350 does not retrieve unnecessary data and data is transmitted and received at regular intervals, channel overload may not occur between the N-th node 1300 and the client/partner 300.

제 N 노드(1300)는 설정 저장부(Config. Repository)(1330)에 필요한 정보를 저장하므로 에이전트(350)가 수집하는 정보의 최신상태를 유지할 수 있으며 채널을 경량화시킬 수 있다. Since the N-th node 1300 stores necessary information in the configuration storage unit (Config. Repository) 1330, the information collected by the agent 350 can be maintained up to date and the channel can be lightweight.

실시 예에 따르면 제 N 노드(1300)에 클라이언트/파트너(300)에 관련된 정보의 최신 상태가 저장될 수 있어서 클라이언트/파트너(300)에 부담을 주지 않고 보안을 강화할 수 있다.According to the embodiment, the latest state of information related to the client/partner 300 may be stored in the N-th node 1300, thereby enhancing security without burdening the client/partner 300.

개시한 예와 같이 설정된 채널을 통해 제 N 노드(1300)내 에이전트 어댑터(1350)의 서비스에 필요한 정보를 송수신하는 이하에서 상세하게 개시한다.Transmitting and receiving information necessary for the service of the agent adapter 1350 in the N-th node 1300 through a channel set as in the disclosed example will be described in detail below.

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

위에서 개시한 개념에 따라 애플리케이션 서비스 매니저(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 change an application through the instance system 1000. The instance system 1000 may include a coordinator 1100 and an N-th node 1300, which is a random node.

애플리케이션 서비스 매니저(2100)는 클라이언트/파트너(300)에 에이전트(350)의 설치를 위한 정보를 배포할 수 있다. 예를 들면 에이전트(350)의 설치를 위한 정보는 에이전트 설정 정보, 에이전트 설정을 위한 키 정보, 자원 관리 정보, 사용자 관리 설정 정보 등을 포함할 수 있다. The application service manager 2100 may distribute information for installing the agent 350 to the client/partner 300. For example, information for installing the agent 350 may 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 time to synchronize channel information, timeout for HTTP requests, key value of session key related to the installation browser, and path required for the agent to send and receive related information. there is.

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

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

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

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

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

클라이언트/파트너(300)에 에이전트(350)가 설치되면 클라이언트/파트너(300)의 관리자는 에이전트(350)가 관리하는 클라이언트/파트너(300) 시스템의 관리 정보, 사용자 정보 등을 설정할 수 있고, 제 N 노드(1300)의 에이전트 어댑터(1350)와의 동기화 시간 등을 설정할 수도 있다.When the agent 350 is installed on the 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 It is also possible to set synchronization time with the agent adapter 1350 of the N node 1300, etc.

애플리케이션 서비스 매니저(2100)은, 상기 등록된 에이전트(350)와 관련하여 인스턴스 시스템(1000)에 설치되는 에이전트 어댑터(1350)에 대한 설정 정보, 상기 등록된 에이전트(350)와 동기화 활성 여부 정보를 설정할 수 있다. The application service manager 2100 sets 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 active. You can.

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

애플리케이션 서비스 매니저(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 according to the information set as above into the outbox slot and the inbox slot ( Save each file to an inbox slot. A slot in a message box is a logical division concept that stores data processing units, and the message box can store and output data processing units like a queue.

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

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

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

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

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

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

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

코디네이터(1100)는 워커노드들을 각각 연결할 수 있는 채널 정보와 각 워커노드들에 저장된 패키지들에 대한 정보를 저장할 수 있다.The coordinator 1100 can store channel information that can connect each worker node and information about the 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 the worker nodes 1110 and 1120. The coordinator 1100 registers and stores information about the adapter package A and the integration package stored by the worker node 1110 of the first node (Node #1), and stores the information about the adapter package A and the integration package stored by the worker node 1110 of the first node (Node #2). Information about adapter package B stored by the worker node 1120 can be registered and stored.

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

코디네이터(1100)는 HTTP 요청에 포함된 URL 정보에 기초하여 코디네이터(1100)에 등록되어 매핑된 경우 워커노드들을 위한 서비스 채널을 설정할 수 있다. The coordinator 1100 can set up a service channel for worker nodes when 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 sets up an HTTP service channel according to an HTTP request containing URL information of a client or partner. The coordinator 1100 can call adapter package A provided by the first worker node (worker node #1) 1110 through a set HTTP service channel.

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

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

제 1 워커노드(워커 노드 #1) (1110)는 HTTP 서비스 채널에 따라 등록된 어댑터 패키지 A를 제공할 수 있다.The first worker node (worker node #1) 1110 can provide adapter package A registered 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를 저장한 것을 알고 있다. According to the registered information, the coordinator 1100 stores the integrated package in the first worker node (worker node #1) 1110 and stores the adapter package B in the second worker node (worker node #2) 1110. I know that.

코디네이터(1100)는 어댑터 기능 채널을 통해 제 1 워커노드(워커 노드 #1) (1110)에서 어댑터 패키지 B가 포함된 통합 패키지를 조회서치할 수 있다. 그리고 어댑터 패키지 B가 제 1 워커노드(워커 노드 #1) (1110)에 저장된 통합 패키지에 포함되지 않은 경우, 제 1 워커노드(워커 노드 #1) (1110)는, 제 2 워커노드(워커 노드 #2) (1120)에 저장된 어댑터 패키지 B를 워커노드들 사이의 채널 연결을 통해 호출하도록 할 수 있다. The coordinator 1100 can search for the integrated package including adapter package B in the first worker node (worker node #1) 1110 through the adapter function channel. And 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 is connected to the second worker node (worker node #2) Adapter package B stored at (1120) can be called through a channel connection between 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 this case, the coordinator 1100 registers the channel providing adapter package B to the adapter function channel and provides it with the integrated package. You can have it come with adapter package B.

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

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

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

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

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

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

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

매니저 시스템(2000)의 애플리케이션 서비스 매니저(2100)는 패키지와 관련된 여러 가지 설정 정보(사각형)를 저장할 수 있다. 저장되는 설정 정보는 패키지가 각 노드에서 실행될 때 필요한 여러 가지 설정 정보를 포함할 수 있다. The application service manager 2100 of the manager system 2000 can store various setting information (rectangles) related to the package. The saved configuration information may 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 may store package setting information in the database 2200. The application service manager 2100 may obtain package configuration information from a specific node, in this example, the m-th node (node #m) 3110, or may store configuration information of an externally requested package in the database 2200.

코디네이터(1100)는 애플리케이션 서비스 매니저(2100)에 의해 관리되는 패키지의 설정 정보를 자신의 설정 저장부(1115)에 저장할 수 있다. 애플리케이션 서비스 매니저(2100)는 제어 화면 등을 통해 패키지의 설정 정보를 관리하고 저장할 수 있다. The coordinator 1100 may store the configuration information of the package managed by the application service manager 2100 in its configuration storage unit 1115. The application service manager 2100 can manage and store package setting information 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 in the instance system 1000, receive configuration information of related packages from the configuration storage unit 1115 of the coordinator 1100. Can be received and stored in each setting storage unit (3115, 3215).

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

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

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

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

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

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

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

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

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

개시하는 실시 예에 따르면 워크스페이스에서 패키지의 개발 또는 테스트와 운영이 모두 가능하다. According to the disclosed embodiment, it is possible to develop or test and operate a package in a workspace.

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

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

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

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

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

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

애플리케이션 서비스의 일종으로 EDI는 산업별로 여러 타입의 거래들과 거래 당사자들, 거래 양식들이 요구된다. 따라서, 산업별로 복잡하고 여러 타입의 거래 양태들에 개시하는 실시 예를 활용할 경우 효율적인 거래가 가능하므로 산업적 거래 활성화에 매우 효과적이다.As a type of application service, EDI requires various types of transactions, transaction parties, and transaction forms for each industry. Therefore, efficient transactions are possible when utilizing examples that cover complex and various types of transaction aspects for each industry, making it very effective in revitalizing 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 many different formats that follow specific rules and regulations depending on the industry, and EDI documents must be created and processed according to these formats in order for a transaction to be established. EDI services come in various forms for various industries, such as transportation, logistics, finance, and insurance, as well as e-commerce. EDI is standardized by ISO, an international standardization organization, and is regulated and managed by UN/EDIFACT (United Nations/Electronic Data Interchange for Administration, Commerce and Transport) or ANSI (American National Standards Institute) X.12.

주문과 공급을 수행하는 거래의 특성에 따라 서로 다른 데이터나 정보를 포함하는 다른 형태의 문서가 사용될 수 있고 거래 당사자가 사용하는 시스템도 다를 수 있다. Depending on the nature of the transaction carrying out the ordering and supply, different types 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 services, documents must be mapped between two transaction parties.

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

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

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

매핑 기준 정보는 언마샬링(Unmarshalling)한 데이터를 타겟한 다른 형식의 문서로 변환하기 위한 것으로 스크립트 형식을 가질 수 있다. The mapping standard information is for converting unmarshalled data into a document of another target format and may have a script format.

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

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

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

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

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

도 11은 실시 예에 따라 통합 패키지를 이용하여 애플리케이션 서비스를 제공하는 예를 개시한 도면이다. Figure 11 is a diagram illustrating 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, the client 310 may provide an application service such as the disclosed example to the desired partner 320. The embodiment not only provides a service from the client 310, but also allows the client 310 to directly provide a customized service to the desired partner 320 using the embodiment.

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

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

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

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

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

애플리케이션 서비스 매니저(2100)의 메시지 박스(2110)는 에이전트 어댑터(1350)로부터 전달된 EDI 정보를 클라이언트 인박스(2111)에 저장할 수 있다. The message box 2110 of the application service manager 2100 may store the EDI information delivered 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 programs in which development items are integrated, and includes various development flows, Java or script programs. An integration package 1380 may allow combinations of these development items to address integrated requirements.

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

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

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

통합 패키지(integration package)(1380)는 메시지 박스(2110)의 클라이언트 인박스(2111)에 저장된 EDI 정보를 매핑 어댑터(1370)에 전달할 수 있다.The integration package 1380 may transmit the 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 needed 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 transmits and stores it to the partner outbox 2113 of the message box 2110 and delivers it to the EDI adapter 1390. You can.

EDI 어댑터(1390)는 통합 패키지(integration package)(1380)로부터 출력되거나 파트너 아웃박스(2113)에 저장된 EDI 변환 데이터를, 표준화된 형식, 예를 들면 UN/EDIFACT나 ANSXI X.12 등의 형식으로 변환할 수 있다. The EDI adapter 1390 converts the 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. It can be converted.

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

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

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

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

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

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

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

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

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

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

이 도면의 예에서 매니저 시스템이 제공하는 인터페이스 플랫폼은 사용자 전용 워크스페이스(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 is a user-only workspace (151), a message box (152), a file transfer (153), and a message sent to a mobile terminal. (SMS) 154, and if the information exchange is related to EDI, an option may be provided for information 155 about the corresponding standard mapping.

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

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

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

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

이 도면은 클라이언트가 개시한 애플리케이션 서비스를 제공하는 예에 따른 플랫폼을 접속하고 자신의 워크스페이스를 선택한 경우 볼 수 있는 사용자 인터페이스 메뉴를 예시한다. This diagram illustrates a user interface menu that can be seen when accessing a platform according to an example of providing a client-initiated application service and selecting one's workspace.

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

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

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

도 14는 실시 예에 따른 애플리케이션 서비스 제공 장치가 서로 다른 시스템을 통합할 수 있는 프레임워크를 제공하는 예를 개시한 도면이다. FIG. 14 is a diagram illustrating an example in which an application service providing device according to an embodiment provides a framework for integrating different systems.

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

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

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

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

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

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

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

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

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

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

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

통합 패키지(integration package)는 통합 시스템 아키텍처의 플로우 내 필요한 프로세스를 구현하고, 여러 가지 데이터 변환이 가능한 스크립트(script)나 자바(java) 프로그램을 제공할 수 있다.The 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 conversions.

클라이언트(또는 파트너)는 실시 예에 따른 플랫폼을 기반으로 위에서 예시한 통합 시스템 아키텍처를 이용하여 자신의 서비스 제공에 필요한 통합 패키지들을 생성할 수 있다. A client (or partner) can create integrated packages necessary to provide its own services using the integrated system architecture illustrated 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 graphic-based 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 the embodiment is exemplified.

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

클라이언트(또는 파트너)는 실시 예를 이용하여 그래픽 기반의 통합 플로우(integration flow)를 개발할 수 있는데 통합 플로우(integration flow)는 크게 5개의 기능을 포함할 수 있다. A client (or partner) can develop a graphic-based integration flow using the example, and the integration flow can largely include five functions.

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

도 15는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 커넥터를 그래픽 기반으로 코딩하는 예를 나타낸 것이다. Figure 15 shows an example of coding a connector among the integration flow functions based on graphics when developing an integration flow based on an embodiment.

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

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

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

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

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

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

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

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

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

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

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

이 도면의 예에서 서비스 블록은, 그래픽으로 제공되는 getNextControlNumber 요소, isDuplicatedControlNumber 요소, putUsingConrolNumber 요소, remoteCache 요소 등을 포함할 수 있다. In the example of this figure, the service block may include a getNextControlNumber element, an isDuplicatedControlNumber element, a putUsingConrolNumber element, a remoteCache element, etc. 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, cases where control numbers overlap (True) and cases where control numbers do not overlap (False) can be defined together.

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

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

도 17는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 프로세서를 그래픽 기반으로 코딩하는 예를 나타낸 것이다. Figure 17 shows an example of graphic-based coding of the processor among the integration flow functions when developing an integration flow based on an embodiment.

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

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

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

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

xslt 요소는 XSLT 패키지아이템을 선택하여 XSLT 변환을 수행하도록 할 수 있다.The xslt element can perform XSLT conversion by selecting an XSLT package item.

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

delay 요소는 플로우의 라우트를 잠시 지연시키도록 할 수 있다. The delay element can cause the flow's route to be briefly delayed.

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

도 18는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 컨트롤 플로우(Control flow)를 그래픽 기반으로 코딩하는 예를 나타낸 것이다. Figure 18 shows an example of graphic-based coding of control flow among the integration flow functions when developing an integration flow based on an embodiment.

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

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

split 요소는 플로우 실행 시에 필요한 사항을 패키지 로그에 남기도록 하는 것으로 패키지 로그는 패키지의 실행 상태를 모니터링하는 어댑터에서 확인할 수 있다. split 요소는 하나의 통합된 문서(Exchange)를 여러 Exchange로 분할해서 처리할 수 있는 기능으로서, Delimiter, Xpath, Bean 방식을 지원할 수 있다.The split element allows information required when executing a flow to be recorded in the package log, and the package log can be checked in the adapter that monitors the execution status of the package. The split element is a function that can process one integrated document (Exchange) by splitting it into multiple Exchanges, 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 repetition.

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

If 또는 Switch-Case 요소는 메시지 교환의 컨텐츠를 기반으로 메시지를 올바른 대상으로 라우팅할 수 있도록 하는 기능을 제공한다.The If or Switch-Case element provides functionality that allows messages to be routed 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 function as Java's Try-Catch.

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

도 19는 실시 예를 기반으로 통합 플로우(integration flow)를 개발할 경우 통합 플로우(integration flow)기능 중 모더파이어모디파이어(modifier)를 그래픽 기반으로 코딩하는 예를 나타낸 것이다. Figure 19 shows an example of coding the modifier among the integration flow functions based on graphics when developing an integration flow based on an embodiment.

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

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

loadProperty 요소는 설정 저장소에서 설정 노드를 가져와 Exchange Property에 저장하는 기능을 제공한다. The loadProperty element provides the function to retrieve a configuration node from the configuration repository and store it in 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 the Exchange Message Header.

setBody 요소는 Exchange Message Body에 값을 지정하는 기능을 제공할 수 있다.The setBody element can provide the ability to specify a value to 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)를 그래픽 기반으로 코딩할 수 있다.The integration flow can be coded graphically using the example modifier block.

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

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

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

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

도 20은 실시 예에 따라 클라이언트에 따라 격리된 고유의 워크스페이스를 제공하는 일 예를 개시한 도면이다. Figure 20 is a diagram illustrating an example of providing a unique workspace isolated depending on the client according to an embodiment.

도시한 예에서 인스턴스 시스템(1000)은 코디네이터(미도시)와 하나 이상의 워커노드를 포함할 수 있는데, 이 예에서는 다수의 워커노드들(Node #1, Node #2, Node #3, Node #N)을 예시하였다.In the illustrated example, the instance system 1000 may include a coordinator (not shown) and one or more worker nodes. In this example, a plurality of worker nodes (Node #1, Node #2, Node #3, Node #N ) is exemplified.

실시 예에 따른 코디네이터(미도시)는, 사용자가 접속한 경우 사용자 인증을 통해 접속을 허용하고 사용자에 따라 각각의 워크스페이스를 제공할 수 있다. A coordinator (not shown) according to an embodiment may allow access through user authentication when a user connects and provide each workspace according to the user.

이 예에서 클라이언트 1(110), 클라이언트 2(120), 클라이언트 3(130)이 실시 예에 따른 인스턴스 시스템(1000)을 접속한다고 가정한다. In this example, it is assumed that Client 1 (110), Client 2 (120), and Client 3 (130) access the instance system 1000 according to the embodiment.

매니저 시스템(미도시)은 인스턴스 시스템(1000)의 코디네이터 및 워커노드들(Node #1, Node #2, Node #3, Node #N)을 관리할 수 있다.The manager system (not shown) can manage the coordinator and worker nodes (Node #1, Node #2, Node #3, Node #N) of the instance system 1000.

인스턴스 시스템(1000)은 코디네이터(미도시)를 통해 클라이언트들(110, 120, 130)이 각각 접속한 경우, 사용자에 따라 서로 격리되는 워크스페이스들(1510, 1520, 1530)을 각각 제공하도록 할 수 있다. When clients 110, 120, and 130 each connect through a coordinator (not shown), the instance system 1000 can provide workspaces 1510, 1520, and 1530 that are isolated from each other according to users. there is.

이 예에서 클라이언트 1(110)은 워크스페이스 A(1510), 클라이언트 2(120)는 워크스페이스 B(1520), 클라이언트 3은 워크스페이스 C(1530)를 각각 할당 받아 사용할 수 있다.In this example, Client 1 (110) can be assigned and use Workspace A (1510), Client 2 (120) can be assigned and use Workspace B (1520), and Client 3 can be assigned Workspace C (1530).

클라이언트 1(110)가 인스턴스 시스템(1000) 상에 워크스페이스 A(1510)를 할당 받은 경우, 워커노드 1(Node #1)는 워크스페이스 A(1510)에 고유한 워크스페이스 번들(bundle)인 패키지 E를 제공할 수 있다. When client 1 (110) is assigned workspace A (1510) on the instance system (1000), worker node 1 (Node #1) is a package that is a workspace bundle unique to workspace A (1510). E can be provided.

여기서, 워크스페이스 번들(bundle)은 소프트웨어 패키지로서 상세한 메타데이터를 포함한 확장 가능한 소프트웨어 프로그램들의 그룹을 나타낸다. Here, a workspace bundle is a software package and represents a group of expandable software programs including detailed metadata.

이 때 워커노드 1(Node #1)는 클라이언트 1(110)의 요청에 따라 워크스페이스 A(1510)에 의존(dependency)하는 또는 워크스페이스 A(1510)에 고유한 워크스페이스 번들(bundle)로서 소프트웨어 패키지 E를 제공할 수 있다. At this time, worker node 1 (Node #1) provides software as a workspace bundle that depends on workspace A (1510) or is unique to workspace A (1510) at the request of client 1 (110). Package E can be provided.

여기서 소프트웨어 패키지가 워크스페이스 A(1510)에 의존(dependency)한다는 의미는, 워커노드(Node #1)의 프레임워크에 의해 제공되는 소프트웨어 패키지 E가 워크스페이스 A(1510)와 관련된 인증 정보를 포함한다는 것을 의미한다.Here, the software package depends on workspace A (1510), which means that software package E provided by the framework of the worker node (Node #1) includes authentication information related to workspace A (1510). means that

즉, 워커노드 1(Node #1)의 프레임워크가, 고유한 워크스페이스 번들(bundle)로서 워크스페이스 A(1510)와 관련된 인증 정보를 포함한 소프트웨어 번들(bundle)인 패키지 E를, 워크스페이스 A(1510)에 제공한다.That is, the framework of worker node 1 (Node #1) uses package E, a software bundle containing authentication information related to workspace A (1510), as a unique workspace bundle, and workspace A ( 1510).

유사하게, 워커노드 2(Node #2)의 프레임워크가 클라이언트 2(120)의 요청에 따라 고유한 워크스페이스 B(1520)의 번들(bundle)로서, 워크스페이스 B(1520)와 관련된 인증 정보를 포함한 소프트웨어 번들(bundle)인 패키지 E를, 워크스페이스 B(1520)에 제공한다.Similarly, the framework of worker node 2 (Node #2) provides authentication information related to workspace B (1520) as a unique bundle of workspace B (1520) at the request of client 2 (120). Package E, which is a software bundle, is provided to workspace B (1520).

마찬가지로, 워커노드 3(Node #3)의 프레임워크가 클라이언트 3(130)의 요청에 따라 워크스페이스 C(1530)와 관련된 인증 정보를 포함한 고유한 소프트웨어 번들(bundle)인 패키지 E를, 워크스페이스 C(1530)에 제공한다.Likewise, the framework of worker node 3 (Node #3) sends package E, a unique software bundle containing authentication information related to workspace C (1530), to workspace C at the request of client 3 (130). Provided in (1530).

여기서 각각의 워커노드들((Node #1, Node #2, 및 Node #3)은 동일한 소프트웨어 패키지 E를 제공하지만, 각각의 워크스페이스들(1510, 1520, 1530)별로 고유한 인증 정보를 포함한 소프트웨어 패키지 E를 제공한다. Here, each worker node (Node #1, Node #2, and Node #3) provides the same software package E, but the software includes unique authentication information for each workspace (1510, 1520, and 1530). Package E is provided.

따라서, 워크스페이스들(1510, 1520, 1530)별로 동일한 소프트웨어 패키지 E와 서로 다른 고유의 인증 정보가 결합된 이미지가 제공되므로, 클라이언트들(110, 120, 130)은 자신의 워크스페이스들에 각각 격리되는 효과가 발생할 수 있다. Therefore, since an image combining the same software package E and different unique authentication information is provided for each workspace (1510, 1520, and 1530), the clients (110, 120, and 130) are isolated in their respective workspaces. This effect may occur.

이와 같이 이 예에서는, 워커노드 1(Node #1)의 프레임워크는 워크스페이스 A의 식별 정보가 포함된 패키지 E와 별개의 패키지 F를 워크스페이스 A(1510)에 제공하고, 워커노드 2(Node #2)의 프레임워크는 워크스페이스 B의 식별 정보가 포함된 패키지 E와 별개의 패키지 G를 워크스페이스 B(1520)에 제공한다. 마찬가지로 워커노드 3(Node #3)의 프레임워크는 워크스페이스 C의 식별 정보가 포함된 패키지 E와 별개의 패키지 H를 워크스페이스 C(1530)에 제공한다.As such, in this example, the framework of worker node 1 (Node #1) provides package E containing the identification information of workspace A and a separate package F to workspace A (1510), and worker node 2 (Node #1) provides a separate package F to workspace A (1510). The framework of #2) provides package E, which includes identification information of workspace B, and a separate package G to workspace B (1520). Likewise, the framework of worker node 3 (Node #3) provides package E containing identification information of workspace C and a separate package H to workspace C (1530).

각 워크스페이스의 식별 정보는 각 워크스페이스를 인증하는 정보로서 사용될 수 있는데 인증 정보의 일 예로서 RSA (Rivest-Shamir-Adleman)암호화 알고리즘 기반의 부인방지 토큰(Non-Repudiation Token) 등이 사용될 수 있다.The identification information of each workspace can be used as information to authenticate each workspace. As an example of authentication information, a non-repudiation token based on the RSA (Rivest-Shamir-Adleman) encryption algorithm can be used. .

따라서, 각 클라이언트가 각 워크스페이스를 통해 애플리케이션 서비스를 제공받는 경우, 인스턴스 시스템은 워크스페이스 별로 제공되는 애플리케이션 서비스를 각 워크스페이스의 인증 정보를 기반으로 검증함으로써, 각 클라이언트는 애플리케이션 서비스에 대한 권한을 인증할 수 있다. Therefore, when each client receives an application service through each workspace, the instance system verifies the application service provided for each workspace based on the authentication information of each workspace, and each client authenticates its authority to the application service. can do.

따라서, 각 워크스페이스를 통해 소프트웨어 번들에 따른 애플리케이션 서비스가 제공될 경우 각 워크스페이스에 유니크(unique)한 소프트웨어 번들이 설치되고, 그에 따라 제공되는 서비스와 실행 영역은 격리될 수 있다. Therefore, when an application service according to a software bundle is provided through each workspace, a unique software bundle is installed in each workspace, and the services and execution areas provided accordingly can be isolated.

워커노드들(Node #1 내지 Node #N)은 워크스페이스들로부터 소프트웨어 패키지가 요청될 경우, 각각의 워크스페이스들에 고유한 인증 정보를 기반으로 요청된 애플리케이션의 다운로드 또는 실행을 승인하거나 거부할 수 있다.When a software package is requested from workspaces, worker nodes (Node #1 to Node #N) can approve or deny the download or execution of the requested application based on authentication information unique to each workspace. there is.

한편, 워커노드들(Node #1 내지 Node #N)의 프레임워크의 실시 예로서 OSGi와 같은 자바 프레임워크가 이용될 수 있다. OSGi는 일종의 자바 프레임워크로서 실행 환경에서 자바 컴포넌트들과 메타데이터가 포함된 소프트웨어 번들을 제공할 수 있다. 이 경우 워커노드들(Node #1 내지 Node #N)은 OSGi 프레임워크를 제공할 수 있다. Meanwhile, a Java framework such as OSGi can be used as an example of the framework of worker nodes (Node #1 to Node #N). OSGi is a type of Java framework that can provide a software bundle containing Java components and metadata in the execution environment. In this case, worker nodes (Node #1 to Node #N) can provide the OSGi framework.

도 21은 실시 예에 따라 격리된 워크스페이스로부터 클라이언트에 패키지를 제공하는 일 예를 개시한 흐름도이다. Figure 21 is a flowchart illustrating an example of providing a package to a client from an isolated workspace according to an embodiment.

워크스페이스를 이용하는 클라이언트(또는 파트너)로부터 애플리케이션 패키지에 대한 요청을 수신한다(S110). A request for an application package is received from a client (or partner) using the workspace (S110).

매니저 시스템은 인스턴스 시스템을 관리하여 애플리케이션 패키지에 대한 서비스를 제공할 수 있다. The manager system can manage the instance system and provide services for application packages.

인스턴스 시스템은 코디네이터와 워커노드들을 기반으로 각 클라이언트(또는 파트너)에 워크스페이스를 제공할 수 있다.The instance system can provide workspace to each client (or partner) based on coordinators and worker nodes.

각 클라이언트(또는 파트너)의 워크스페이스는 격리될 수 있고, 클라이언트(또는 파트너)는 격리된 워크스페이스를 통해 애플리케이션 패키지에 대한 서비스 요청을 인스턴스 시스템에 요청할 수 있다. The workspace of each client (or partner) can be isolated, and the client (or partner) can request service for the application package to the instance system through the isolated workspace.

상기 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행한다(S120).Authentication of the requested application package is performed based on authentication information included in the software bundle related to the workspace (S120).

인스턴스 시스템 내의 워크스페이스를 제공하는 워커노드가 그 워크스페이스에 소프트웨어 번들을 설치할 경우, 그 워크스페이스에 고유한 인증 정보를 포함하는 소프트웨어 번들을 설치할 수 있다. When a worker node that provides a workspace within an instance system installs a software bundle in that workspace, it can install a software bundle containing authentication information unique to that workspace.

여기서 인증 정보는 다른 애플리케이션 패키지 서비스를 사용할 수 있는 인증을 제공할 수 있다. 예를 들어 인증 정보로서, RSA (Rivest-Shamir-Adleman) 암호화 알고리즘 기반의 부인방지 토큰(Non-Repudiation Token) 등이 사용될 수 있다.Here, the authentication information can provide authentication to use other application package services. For example, as authentication information, a non-repudiation token based on the RSA (Rivest-Shamir-Adleman) encryption algorithm may be used.

따라서 워커노드가 제공하는 워크스페이스들에 동일한 소프트웨어 번들이 설치되는 경우라도, 워크스페이스마다 다른 인증 정보를 포함할 수 있다. 이를 이용해 소프트웨어 번들은 그 번들이 설치되는 워크스페이스에 의존성(dependency)를 가질 수 있다. Therefore, even if the same software bundle is installed in the workspaces provided by the worker node, each workspace may contain different authentication information. Using this, a software bundle can have a dependency on the workspace in which it is installed.

그리고 워크스페이스의 인증 정보를 인증 키(key)로 이용하여 요청된 서비스의 애플리케이션 패키지에 대한 인증을 수행할 수 있다. Additionally, the workspace authentication information can be used as an authentication key to authenticate the application package of the requested service.

인증 정보를 제외한 동일한 소프트웨어 번들이 실시될 수 있는 워크스페이스를 제공하여 워크스페이스들은 서로 격리시킬 수 있다. 즉, 동일한 소프트웨어가 워크스페이스에서 실행되는 경우라도 다른 인증 정보를 포함하므로 워크스페이스들은 서로 격리될 수 있다.Workspaces can be isolated from each other by providing workspaces where identical software bundles except for authentication information can be implemented. That is, even if the same software runs in a workspace, the workspaces can be isolated from each other because they contain different authentication information.

상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스 요청을 승인하거나 거부한다(S130). According to the authentication result, the service request for the received application package is approved or rejected (S130).

워커노드가 워크스페이스로부터 요청된 애플리케이션 패키지를 제공하는 경우, 상기 워크스페이스에 설치된 소프트웨어 번들의 인증 정보는 상기 워크스페이스에 대한 인증 정보로 사용될 수 있다. 이러한 워크스페이스를 제공할 수 있는 프레임워크의 일 예로서 OSGi 프레임워크 등을 예시하였다.When a worker node provides an application package requested from a workspace, the authentication information of the software bundle installed in the workspace can be used as authentication information for the workspace. An example of a framework that can provide such a workspace is the OSGi framework.

따라서, 워커노드는 각 워크스페이스에 설치된 소프트웨어 번들의 인증 정보를 기반으로, 상기 워크스페이스가 인증된 경우에만 요청된 애플리케이션 패키지를 상기 워크스페이스에 제공할 수 있다. Therefore, the worker node can provide the requested application package to the workspace only when the workspace is authenticated, based on the authentication information of the software bundle installed in each workspace.

워커노드는, 워크스페이스에 설치된 소프트웨어 번들의 인증 정보가 일치하지 않는 경우, 해당 워크스페이스에 요청된 애플리케이션 패키지 서비스에 대한 제공을 거부한다. If the authentication information of the software bundle installed in the workspace does not match, the worker node refuses to provide the application package service requested for the workspace.

위에서 개시한 실시 예에 따른 애플리케이션 서비스 제공 장치를 매니저 시스템과 인스턴스 시스템을 포함할 수 있다. The application service providing device according to the embodiment disclosed above may include a manager system and an instance system.

인스턴스 시스템은 코디네이터와 워커노드를 포함하는 적어도 하나의 서버로서, 상기 서버는 데이터를 저장하는 저장매체와 프로세서를 포함할 수 있다. The instance system is at least one server including a coordinator and a worker node, and the server may include a storage medium for storing data and a processor.

이때 서버의 프로세서는, 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하고, 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행할 수 있다. 그리고, 인스턴스 시스템의 프로세서는 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스 요청을 승인하거나 거부하는, 연산들을 수행할 수 있다. At this time, the processor of the server may receive a service request for an application package from a client and perform authentication of the requested application package based on authentication information included in a software bundle related to the workspace. Additionally, the processor of the instance system may perform operations to approve or deny a service request for the received application package according to the authentication result.

만약 위와 같은 실시 예가 인스턴스 시스템 기반의 프로그램으로 수행될 경우, 그 프로그램은 워크스페이스를 이용하는 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신할 수 있다. 그리고 컴퓨터로 실행 가능한 프로그램은, 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하고, 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스 요청을 승인하거나 거부할 수 있다. If the above embodiment is performed as an instance system-based program, the program can receive a service request for an application package from a client using the workspace. And the computer-executable program performs authentication of the requested application package based on authentication information included in the software bundle related to the workspace, and approves or rejects the service request for the received application package according to the authentication results. can do.

워크스페이스를 이용하는 클라이언트(파트너)에 제공되는 소프트웨어 패키지가 동일하더라도 클라이언트(파트너)마다 다른 소프트웨어 이미지가 실행된다면, 한 클라이언트(파트너)에 대해 모든 버전과 종류의 소프트웨어 패키지들을 준비하여 제공하여야 한다.Even if the software package provided to the client (partner) using the workspace is the same, if a different software image is executed for each client (partner), all versions and types of software packages must be prepared and provided for one client (partner).

그러나 개시한 실시 예와 같이 클라이언트마다 고유한 인증 정보를 포함한 소프트웨어 번들이 실행되는 워크스페이스를 제공하는 프레임워크를 이용하면, 워크스페이스를 서로 격리할 수 있고, 동일한 소프트웨어 패키지를 이용해 애플리케이션 서비스를 제공할 수 있어 컴퓨팅 자원을 효율적으로 운영할 수 있다. However, by using a framework that provides a workspace in which a software bundle containing unique authentication information for each client is executed, as in the disclosed embodiment, the workspaces can be isolated from each other and application services can be provided using the same software package. Computing resources can be operated efficiently.

110, 120, 130, 310: 클라이언트
200, 320: 파트너
300: 클라이언트 또는 파트너
350: 에이전트
1000: 인스턴스 시스템
1100: 코디네이터
1110, 1120, 1300, 3110, 3210: 노드
1330, 1115, 3115, 3215: 설정 저장부
1350: 에이전트 어댑터
1370: 매핑 어댑터
1380: 통합 패키지
1390: EDI 어댑터
1500, 1510, 1520, 1530: 워크스페이스
1610: API
1700: 프레임워크레이어
1800: 가상화레이어
1900: 리소스레이어
2000: 매니저 시스템
2100: 애플리케이션 서비스 매니저
2110: 메시지 박스
3000: 개발워크스페이스
4000: 인터페이스 거버넌스 플랫폼
4100: 거버넌스 API
110, 120, 130, 310: Client
200, 320: Partner
300: Client or Partner
350: Agent
1000: Instance system
1100: Coordinator
1110, 1120, 1300, 3110, 3210: nodes
1330, 1115, 3115, 3215: Setting storage unit
1350: Agent adapter
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

Claims (9)

워크스페이스를 제공하는 플랫폼 내의 가상화된 컴퓨팅 시스템의 프로세서가, 상기 워크스페이스를 이용하는 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하는 단계;
상기 프로세서가, 상기 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하는 단계; 및
상기 프로세서가, 상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스를 제공하는 단계;를 포함하고,
여기서, 상기 애플리케이션 패키지가 실행될 경우 상기 워크스페이스에 따라 달라지는 상기 인증 정보에 의해 상기 워크스페이스가 상기 가상화된 컴퓨팅 시스템의 다른 워크스페이스로부터 격리되는 애플리케이션 서비스 제공 방법.
Receiving, by a processor of a virtualized computing system in a platform providing a workspace, a service request for an application package from a client using the workspace;
performing, by the processor, authentication of the requested application package based on authentication information included in a software bundle related to the workspace; and
Comprising, by the processor, providing a service for the received application package according to the authentication result,
Here, when the application package is executed, the workspace is isolated from other workspaces of the virtualized computing system by the authentication information that varies depending on the workspace.
제1항에 있어서,
상기 애플리케이션 서비스 제공 방법은,
상기 프로세서가, 상기 클라이언트에게 소프트웨어인 통합 플로우의 개발도구를 제공하는 단계;를 더 포함하고,
여기서, 통합 플로우의 개발도구는, 상기 소프트웨어 번들의 라우트(route)의 입출력 코딩 요소를 포함하는 애플리케이션 서비스 제공 방법.
According to paragraph 1,
The method of providing the application service is,
It further includes the step of providing, by the processor, a development tool for an integrated flow that is software to the client,
Here, the development tool of the integrated flow is a method of providing an application service that includes input/output coding elements of the route of the software bundle.
제1항에 있어서,
상기 인증을 수행하는 단계는,
RSA (Rivest-Shamir-Adleman) 암호화 알고리즘 기반의 부인방지 토큰(Non-Repudiation Token)을 이용하는 애플리케이션 서비스 제공 방법.
According to paragraph 1,
The steps for performing the authentication are:
A method of providing application services using a non-repudiation token based on the RSA (Rivest-Shamir-Adleman) encryption algorithm.
제1항에 있어서,
상기 워크스페이스는,
상기 인증 정보를 제외한 동일한 소프트웨어 번들이 실행될 수 있는 애플리케이션 서비스 제공 방법.
According to paragraph 1,
The workspace is,
A method of providing an application service in which the same software bundle can be executed except for the authentication information.
데이터를 저장하는 저장매체; 및
상기 데이터를 수행하는 워크스페이스를 제공하는 프로세서;를 포함하는 가상화된 컴퓨팅 시스템을 포함하고,
상기 프로세서는,
상기 워크스페이스를 이용하는 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하고;
상기 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하고; 및
상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스를 제공하고,
여기서, 상기 애플리케이션 패키지가 실행될 경우 상기 워크스페이스에 따라 달라지는 상기 인증 정보에 의해 상기 워크스페이스가 상기 가상화된 컴퓨팅 시스템의 다른 워크스페이스로부터 격리되는, 애플리케이션 서비스 제공 장치.
A storage medium that stores data; and
A virtualized computing system including a processor that provides a workspace for executing the data,
The processor,
Receiving a service request for an application package from a client using the workspace;
perform authentication of the requested application package based on authentication information included in a software bundle related to the workspace; and
Providing services for the received application package according to the authentication results,
Here, when the application package is executed, the workspace is isolated from other workspaces of the virtualized computing system by the authentication information that varies depending on the workspace.
제5항에 있어서,
상기 프로세서는,
상기 클라이언트에게 소프트웨어인 통합 플로우의 개발도구를 제공하고,
여기서, 통합 플로우의 개발도구는, 상기 소프트웨어 번들의 라우트(route)의 입출력 코딩 요소를 포함하는, 애플리케이션 서비스 제공 장치.
According to clause 5,
The processor,
Provide development tools for integrated flow, which is software, to the client,
Here, the development tool of the integrated flow is an application service providing device that includes input/output coding elements of the route of the software bundle.
제5항에 있어서,
상기 프로세서가 상기 인증을 수행할 경우,
RSA (Rivest-Shamir-Adleman) 암호화 알고리즘 기반의 부인방지 토큰(Non-Repudiation Token)을 이용하는 애플리케이션 서비스 제공 장치.
According to clause 5,
When the processor performs the authentication,
An application service providing device that uses a non-repudiation token based on the RSA (Rivest-Shamir-Adleman) encryption algorithm.
제5항에 있어서,
상기 애플리케이션 서비스 제공 장치는,
상기 인증 정보를 제외한 동일한 소프트웨어 번들이 실행되는 워크스페이스를 제공하는 프레임워크를 포함하는, 애플리케이션 서비스 제공 장치.
According to clause 5,
The application service providing device is,
An application service providing device including a framework that provides a workspace in which the same software bundle except the authentication information is executed.
플랫폼 내의 가상화된 컴퓨팅 시스템의 워크스페이스를 이용하는 클라이언트로부터 애플리케이션 패키지에 대한 서비스 요청을 수신하고;
상기 워크스페이스와 관련된 소프트웨어 번들에 포함된 인증 정보를 기반으로 상기 요청한 애플리케이션 패키지의 인증을 수행하고; 및
상기 인증 수행 결과에 따라 상기 수신한 애플리케이션 패키지에 대한 서비스를 제공하는,
여기서, 상기 애플리케이션 패키지가 실행될 경우 상기 워크스페이스에 따라 달라지는 상기 인증 정보에 의해 상기 워크스페이스가 상기 가상화된 컴퓨팅 시스템에서 다른 워크스페이스로부터 격리되는, 애플리케이션 서비스 제공 방법을 컴퓨터에 실행시키기 위한 프로그램이 저장된 컴퓨터가 판독 가능한 기록매체.
Receiving a service request for an application package from a client using a workspace of a virtualized computing system within the platform;
perform authentication of the requested application package based on authentication information included in a software bundle related to the workspace; and
Providing services for the received application package according to the authentication result,
Here, when the application package is executed, the workspace is isolated from other workspaces in the virtualized computing system by the authentication information that varies depending on the workspace, and a computer stores a program for executing an application service provision method on the computer. A readable recording medium.
KR1020230094557A 2023-07-20 2023-07-20 Appartus for providing application services, method thereof, and computationally-implementable storage medium storing a program for providing application services KR102637168B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230094557A KR102637168B1 (en) 2023-07-20 2023-07-20 Appartus for providing application services, method thereof, and computationally-implementable storage medium storing a program for providing application services

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230094557A KR102637168B1 (en) 2023-07-20 2023-07-20 Appartus for providing application services, method thereof, and computationally-implementable storage medium storing a program for providing application services

Publications (1)

Publication Number Publication Date
KR102637168B1 true KR102637168B1 (en) 2024-02-16

Family

ID=90056012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230094557A KR102637168B1 (en) 2023-07-20 2023-07-20 Appartus for providing application services, method thereof, and computationally-implementable storage medium storing a program for providing application services

Country Status (1)

Country Link
KR (1) KR102637168B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174025A (en) * 2003-12-11 2005-06-30 Canon Inc Server and client connectable to network, application distribution system equipped with the same, and method, program, and recording medium for controlling information processor
WO2014011318A2 (en) * 2012-07-09 2014-01-16 Ping Identity Corporation Methods and apparatus for preprovisioning authentication tokens to mobile applications
KR20140086011A (en) * 2012-12-28 2014-07-08 사단법인 금융보안연구원 Non-repudiation System

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174025A (en) * 2003-12-11 2005-06-30 Canon Inc Server and client connectable to network, application distribution system equipped with the same, and method, program, and recording medium for controlling information processor
WO2014011318A2 (en) * 2012-07-09 2014-01-16 Ping Identity Corporation Methods and apparatus for preprovisioning authentication tokens to mobile applications
KR20140086011A (en) * 2012-12-28 2014-07-08 사단법인 금융보안연구원 Non-repudiation System

Similar Documents

Publication Publication Date Title
JP3965185B2 (en) Scheduler that supports web service calls
Indrasiri et al. Microservices for the Enterprise
US11126481B2 (en) Fulfilling a request based on catalog aggregation and orchestrated execution of an end-to-end process
Indrasiri et al. gRPC: up and running: building cloud native applications with Go and Java for Docker and Kubernetes
US7350184B2 (en) System and method for enterprise application interactions
US9336060B2 (en) Middleware services framework for on-premises and cloud deployment
JP5026415B2 (en) Data centric workflow
CN111176761B (en) Micro-service calling method and device
US8874640B2 (en) Method and system for reducing service overhead in service oriented architectures
US7644184B2 (en) Universal adapter
US8843938B2 (en) Methods, systems, and computer program products for asynchronous resumption of a dataflow
US8701129B2 (en) Web API server program, web API publication method
Ferreira Enterprise systems integration
TW582147B (en) Inbound connector
KR102637168B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium storing a program for providing application services
KR102663418B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR102660700B1 (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
KR102659148B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR102659150B1 (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
Indrasiri et al. Integrating microservices
EP1569106B1 (en) A scheduler supporting web service invocation
Aranha et al. IBM WebSphere MQ V7. 1 and V7. 5 Features and Enhancements
Sarferaz Process Integration

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant