KR102407940B1 - Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치 - Google Patents

Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치 Download PDF

Info

Publication number
KR102407940B1
KR102407940B1 KR1020210172657A KR20210172657A KR102407940B1 KR 102407940 B1 KR102407940 B1 KR 102407940B1 KR 1020210172657 A KR1020210172657 A KR 1020210172657A KR 20210172657 A KR20210172657 A KR 20210172657A KR 102407940 B1 KR102407940 B1 KR 102407940B1
Authority
KR
South Korea
Prior art keywords
input
parameter
output
data node
message
Prior art date
Application number
KR1020210172657A
Other languages
English (en)
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 KR1020210172657A priority Critical patent/KR102407940B1/ko
Application granted granted Critical
Publication of KR102407940B1 publication Critical patent/KR102407940B1/ko

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/451Execution arrangements for user interfaces
    • 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

Abstract

RPC(Remote Procedure Call)에 기반하여 외부 장치의 함수 또는 프로시저(procedure)를 호출하는 전자 장치의 동작 방법을 개시한다. 본 동작 방법은 IDL(Interface Definition Language)로부터 요청된 기능에 대응하여 기 정의된 입출력 메시지를 추출하고, IDL 에 기 정의된 파라미터 객체들에 기반하여 입출력 메시지로부터 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성하며, 입력 파라미터 그룹 및 출력 파라미터 그룹에 기반하여 적어도 하나의 입출력 파라미터 객체를 포함하는 사용자 요청 API(Application Programming Interface)를 생성한다. 이때, 사용자 요청 API에 포함된 적어도 하나의 입출력 파라미터 객체는 모두 비참조형 데이터형인 것을 특징으로 한다.

Description

RPC에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 RPC 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치 {INTERFACE GENERATION METHOD OF ELECTRONIC DEVICE CALLING FUNCTION OR PROCEDURE OF EXTERNAL DEVICE BASED ON REMOTE PROCEDURE CALL(RPC), PROGRAM AND ELECTRONIC DEVICE THEREOF}
본 발명은 RPC(Remote Procedure Call)에 기반하여 외부 장치의 함수 또는 프로시저(procedure)를 호출하는 전자 장치의 동작 방법, 그 컴퓨터 프로그램 및 그 전자 장치에 관한 것으로서, 보다 구체적으로, RPC 서비스를 사용하기 위한 인터페이스를 자동으로 생성하는 방법 등에 관한 것이다.
원격 프로시저 호출(Remote Procedure Call, RPC)은 별도의 원격 제어를 위한 코드없이 다른 주소 공간에서 함수나 프로시저(procedure)를 실행할 수 있게 하는 프로세스 간 통신 기술로, 분산컴퓨팅 환경에서 많이 사용되어왔으며, 최근 마이크로 소프트웨어 아키텍처(Micro Software Architecture, MSA)에 적용되어 마이크로 서비스 간에도 많이 사용되고 있는 방식이며, Sun RPC, ONC RPC, DCE RPC 등과 같이 일부 변형된 형태로 존재한다.
RPC의 동작 방법은 IDL(Interface Definition Language)을 통해 호출 및 응답에 대한 인터페이스 정의에 의해 이루어지며, 해당 인터페이스는 클라이언트의 스터브(stub) 함수와 서버의 스터브(또는 스켈레톤)를 구성하게 된다. 보다 구체적으로, 해당 인터페이스는 RPC 를 위한 컴파일러(예컨대, RPCGEN 등)를 통해 클라이언트 및 서버 각각에 저장된다. 즉, 클라이언트의 프로그램은 자신의 주소 공간에 위치하는 프로시저/함수를 호출하는 것처럼 스터브에 정의된 기능 또는 서비스를 호출하면, 클라이언트의 스터브는 해당 호출을 RPC 호출로 변환하여 서버가 이해할 수 있는 형태의 데이터 캐스팅을 진행하고 서버의 RPC를 호출한다. 서버의 스터브는 호출에 대한 데이터를 전달받아 처리한 후, 이를 다시 캐스팅하여 클라이언트로 응답한다. 이때, 서버와 클라이언트는 트랜스포트 레이어(transport layer)를 통해 통신할 수 있다.
상기의 과정을 통해 개발자는 클라이언트와 서버 간의 통신을 이용함에 있어 RPC에 기반하여 하부 네트워크 프로토콜의 제약없이 고유 프로세스 개발에 집중할 수 있으며, 사용자는 클라이언트와 서버 간 통신에 필요한 상세 정보를 최소화할 수 있다는 장점이 있다. 한편, RPC를 가능케하는 중심 요소인 스터브는 IDL에 정의된 데이터형들에 기반한 인터페이스 정의에 의해 이루어지는 바, 개발자는 기 정의된 IDL 의 기능(또는 서비스) 및 필요 데이터형을 인지하고 이에 맞도록 인터페이스를 작성해야 할 필요가 있다. 그러나, 시스템이 복잡해지고 요구되는 기능이 증가함에 따라 장치들 간에 송수신되는 데이터들이 다양해지고 있으며, 이에 따라 다양하고 복잡한 인터페이스들이 요구되어 이를 작성하기 위한 시간 및 비용이 증가하고 있다. 특히 개발 초기 단계에서 인터페이스 작성에 요구되는 시간 및 비용의 증가는 고유 기능을 개발하는데에 방해가 될 수 있다. 이에 따라, IDL에 정의된 데이터형들에 기반하여 적합한 인터페이스를 자동으로 제공할 수 있는 방법에 대한 필요성이 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 IDL에 기 작성된 데이터형 및 기능에 기반하여 API(Application Programming Interface)를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치를 제공하는데에 있다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 더 존재할 수 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따라 RPC(Remote Procedure Call)에 기반하여 외부 장치의 함수 또는 프로시저(procedure)를 호출하는 전자 장치의 동작 방법은, IDL(Interface Definition Language)로부터, 요청된 기능에 대응하여 기 정의된 입출력 메시지를 추출하는 단계; 상기 IDL 에 기 정의된 파라미터 객체들에 기반하여, 상기 입출력 메시지로부터 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성하는 단계; 및 상기 입력 파라미터 그룹 및 상기 출력 파라미터 그룹에 기반하여 적어도 하나의 입출력 파라미터 객체를 포함하는 사용자 요청 API(Application Programming Interface)를 생성하는 단계를 포함한다. 이때, 상기 사용자 요청 API에 포함된 적어도 하나의 입출력 파라미터 객체는 모두 비참조형 데이터형인 것을 특징으로 한다.
또한, 상기 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성하는 단계는, 상기 입출력 메시지 중 입력 메시지로부터 제1 트리(tree)의 제1 루트 데이터 노드(root data note)를 생성하고, 상기 입출력 메시지 중 출력 메시지로부터 제2 트리의 제2 루트 데이터 노드를 생성하는 단계; 상기 IDL 파일로부터 상기 입력 메시지를 참조하는 적어도 하나의 제1 파라미터 객체를 추출하고, 상기 출력 메시지에 포함된 적어도 하나의 제2 파라미터 객체를 추출하는 단계; 상기 적어도 하나의 제1 파라미터 객체 및 상기 적어도 하나의 제2 파라미터 객체 각각에 대응하는 적어도 하나의 제1 데이터 노드 및 적어도 하나의 제2 데이터 노드를 생성하는 단계; 및 상기 적어도 하나의 제1 데이터 노드를 상기 제1 트리의 차일드(child) 노드로 추가하고, 상기 적어도 하나의 제2 데이터 노드를 상기 제2 트리의 차일드 노드로 추가하는 단계를 포함한다.
또한, 상기 방법은 상기 적어도 하나의 제1 데이터 노드 및 상기 적어도 하나의 제2 데이터노드 중 적어도 하나의 데이터 노드의 데이터형이 다른 메시지를 참조하는 경우, 상기 데이터 노드의 필드값이 상기 참조된 메시지의 명칭을 포함하는지 판단하는 단계; 상기 참조된 메시지의 명칭을 포함하지 않을 경우, 상기 참조된 메시지를 탐색하는 단계; 상기 참조된 메시지에 포함된 적어도 하나의 서브 파라미터 객체에 대응하는 적어도 하나의 제3 데이터 노드를 생성하는 단계; 및 상기 적어도 하나의 제3 데이터 노드를 상기 데이터 노드의 차일드 노드로 추가하는 단계를 포함한다.
이상과 같은 다양한 실시 예들에 따르면, 본 발명의 전자 장치는 자동으로 RPC 서비스를 사용할 수 있는 API를 자동 제공함으로써, 보다 편리하게 RPC 사용 환경을 제공할 수 있을 뿐 아니라, 사용자가 보다 고유 프로세스를 개발하는데에 집중할 수 있는 환경을 제공할 수 있다.
도 1은 본 발명의 일 실시 예에 따라 RPC(Remote Procedure Call)를 통해 외부 장치와 통신하는 전자 장치의 동작을 도시한다.
도 2는 본 발명의 일 실시예에 따른 프로토콜 버퍼(Protocol Buffers)의 예를 도시한다.
도 3은 본 발명의 일 실시예에 따라 전자 장치가 입력 파라미터 그룹을 생성하는 방법을 도시한 도면이다.
도 4는 입력 파라미터 그룹을 생성하는 일 예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따라 선택형 구조의 파라미터 객체들에 기반하여 생성된 입력 파라미터 그룹을 도시한다.
도 6은 본 발명의 일 실시예에 따라 열거형 데이터형 파라미터 객체에 기반하여 생성된 입력 파라미터 그룹을 도시한다.
도 7은 본 발명의 일 실시예에 따라 전자 장치가 서브 파라미터 객체를 탐색하여 입력 파라미터 그룹에 추가하는 방법을 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따라 서브 파라미터 객체에 기반하여 생성된 입력 파라미터 그룹을 도시한다.
도 9는 본 발명의 일 실시예에 따라 입출력 파라미터 객체를 포함하는 API(application programming interface)를 생성하는 방법을 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따라 생성된 입력 파라미터 그룹을 도시한다.
도 11은 본 발명의 일 실시 예에 따른 전자 장치의 구성을 도시한 도면이다.
이하에서, 첨부된 도면을 이용하여 본 발명에 대하여 구체적으로 설명한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에 설명된 다양한 기법은 하드웨어 또는 소프트웨어와 함께 구현될 수 있거나, 적합한 경우에 이들 모두의 조합과 함께 구현될 수 있다. 본 명세서에 사용된 바와 같은 "부(Unit)", "모듈(Module)" 및 "시스템(System)" 등의 용어는 마찬가지로 컴퓨터 관련 엔티티(Entity), 즉 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어 또는 실행 시의 소프트웨어와 등가로 취급할 수 있다. 예를 들어, 프로그램 모듈은 하나의 컴포넌트와 등가 혹은 둘 이상의 컴포넌트의 조합으로 구성될 수 있다. 또한, 본 발명에서는 서버 또는 단말에서 실행되는 애플리케이션 프로그램 및 하드웨어 모두가 모듈단위로 구성될 수 있고, 하나의 물리적 메모리에 기록되거나, 둘 이상의 메모리 및 기록매체 사이에 분산되어 기록될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서, 전자 장치는 적어도 하나의 프로세서를 포함하는 무선 통신 기능을 포함하는 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 전자 장치는 스마트폰, 휴대폰, 헨드헬드 장치(hand-held device), 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 클라이언트, 서버 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시 예에 따라 RPC(Remote Procedure Call)를 통해 외부 장치와 통신하는 전자 장치의 동작을 도시한다. 본 발명의 일 실시예에 따른 전자 장치는 앞서 설명한 바와 같이, 클라이언트, 서버 및 애플리케이션을 모두 포함하는 의미로 이해될 수 있다. 특히, 본 발명의 전자 장치는 RPC 를 통해 외부 장치의 프로세스에 접근하여 외부 장치의 프로시저(procedure) 또는 함수를 호출한다. 이때, 전자 장치는 IDL(Interfacing Definition Language)로 구현된 스터브(stub) 등을 이용하여 외부 장치의 메모리에 저장된 프로시저 또는 함수를 호출할 수 있다. 스터브는 전자 장치의 메모리에 저장되는 인터페이스로서, 외부 장치의 프로시저 또는 함수를 호출하는데에 필요한 입력 메시지(Message)를 마샬링(marshalling)하여 전송 계층(transport layer)로 전달하고, 외부 장치로부터 수신된 데이터를 언마샬링(unmarshalling)하여 수신된 출력 메시지를 호출자에 전달하는 역할을 수행한다. 여기서, 입출력 메시지는 IDL에 기 정의되어 있으며, IDL에 기 정의된 서비스(또는 함수)에 매칭되어 있다. 한편, 전자 장치와 외부 장치가 마샬링/언마샬링하는 방법 및 전송 계층에서 데이터를 송수신하는 방법에 대해서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 이해할 수 있을 것이므로 자세한 설명은 생략한다.
본 발명의 일 실시예에 따른 전자 장치는 사용자가 IDL에 기반하여 필요한 기능에 따라 요구되는 인터페이스를 직접 생성할 필요 없이, 사용자 요구된 기능의 인터페이스를 자동으로 생성한다. 보다 구체적으로, 본 발명의 일 실시예에 따른 전자 장치는 IDL로부터 요청된 기능에 대응하여 기 정의된 입출력 메시지를 추출하고(s11), IDL에 기 정의된 파라미터 객체들에 기반하여 상기 입출력 메시지에 대응하는 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성한다(s12). 이후, 전자 장치는 입력 파라미터 그룹 및 출력 파라미터 그룹에 기반하여 적어도 하나의 입출력 파라미터 객체를 포함하는 사용자 요청 API(application programming interface)를 생성한다(s13). 이때, 적어도 하나의 입출력 파라미터 객체는 비참조형인 것을 특징으로 한다. 비참조형 파라미터 객체는, 다른 파라미터 객체를 참조하지 않는 것으로서, 보다 구체적인 예를 들어, 프리미티브(primitive) 데이터형, 열거형(enum) 데이터형 등으로서 구조체, 포인터 등과 같이 참조값을 포함하지 않는 것일 수 있다. 또한, 프리미티브 데이터형은 IDL 원시 제공 데이터형으로서, 비한정적 예로서, 이진수(bool), 정수형(int32, int64 등), 문자열(string), 소수형(float, double 등) 등을 포함할 수 있다.
한편, 상기 적어도 하나의 입출력 파라미터는 입력 파라미터 및 출력 파라미터를 포함하며, 입력 파라미터 및 출력 파라미터 중 적어도 하나는 기능(또는 서비스)에 따라 생략될 수 있다.
한편, IDL 은 소프트웨어 컴포넌트의 인터페이스를 묘사하기 위한 명세 언어로서, 어느 한 언어에 국한되지 않고 언어중립적 방법으로 인터페이스를 표현함으로써 서로 다른 언어를 사용하는 소프트웨어 컴포넌트들 간의 통신을 가능케한다. IDL 은, 비한정적 예로서, XML, JSON, 프로토콜 버퍼(Protocol Buffers) 등을 포함할 수 있다. 본 명세서에서는 IDL의 일 예로서 프로토콜 버퍼를 들어 설명하나, 본 발명이 미치는 범위가 이에 한정되는 것은 아니며, 다른 IDL 에도 적용될 수 있다.
이하, 도 2 내지 도 10을 참조하여 전자 장치의 동작 방법을 보다 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 프로토콜 버퍼(Protocol Buffers)의 예를 도시한다. 도 2를 참조하면, 프로토콜 버퍼는 RPC 가 제공하는 서비스에 대한 정의(21) 및 파라미터 객체들에 대한 정의(22)를 포함한다.
각 RPC 기능(또는 서비스)는 기능의 명칭(예컨대, 도2의 'Sample'), 입력 메시지(예컨대, 'MessageA') 및 출력 메시지(예컨대, MessageB)를 포함할 수 있다.
또한, 각 입출력 파라미터 객체는 프로토콜 버퍼에 기 정의된 메시지에 포함되며, 두 개 이상의 필드(예컨대, 'repeated', 'string', 'inputC')로 구성되어 있다. 파라미터 객체를 구성하는 필드들은 필드 특성(예컨대, repeated, required, optional), 데이터형 및 데이터 명칭 등을 포함할 수 있다. 이때, 데이터형은 앞서 설명한 프리미티브 데이터형, 열거형 데이터형 및 선택형 데이터형을 포함할 수 있다. 또한, 파라미터 객체는 다른 메시지를 참조하는 파라미터 객체(예컨대, 'UInt32 inputA')를 포함할 수 있다. 이때, 파라미터 객체의 데이터형은 해당 파라미터 객체가 참조하는 메시지의 명칭(즉, 'uint32 value')으로 기술될 수 있다.
또한, 각 파라미터 객체는 고유의 정수값을 가질 수 있다. 이러한 정수값은 직렬화 및 역직렬화 시 순서를 매칭하는데에 이용될 수 있다.
본 발명의 일 실시예에 따른 전자 장치는 사용자 요청 기능에 매칭하는 서비스(즉, RPC가 제공하는 서비스) 및 해당 서비스에 기 정의된 입출력 메시지를 추출하기 위하여, 프로토콜 버퍼를 로드(load) 및 파싱(parsing)할 수 있다. 예를 들어, 전자 장치는 프로토콜 버퍼를 파싱하여 각 RPC 서비스 및 각 RPC 서비스에 기 정의된 입출력 메시지를 구분하고, 기 요청된 기능에 매칭하는 RPC 서비스 및 입출력 메시지를 추출할 수 있다. 즉, 도 2의 예에서, 전자 장치는 'Sample' 기능이 요청되면, 프로토콜 버퍼를 파싱하여 'Sample'에 매칭하는 RPC 서비스의 기능을 추출하고, 이의 입출력 메시지인 'MessageA' 및 'MessageB'를 추출할 수 있다.
또한, 전자 장치는 프로토콜 버퍼를 파싱하여 각 메시지에 포함된 파라미터 객체들에 대한 정보를 획득할 수 있다.
도 3은 본 발명의 일 실시예에 따라 전자 장치가 입력 파라미터 그룹을 생성하는 방법을 도시한 도면이며, 도 4는 입력 파라미터 그룹을 생성하는 일 예를 도시한 도면이다. 도 4에서 입력 메시지는 'MessageA'인 것으로 가정한다. 이하, 도 3 및 4를 참조하여 설명한다.
먼저, 전자 장치는 추출된 입출력 메시지 중 입력 메시지로부터, 제1 트리의 루트 데이터 노드(root date node)를 생성할 수 있다(s31). 예를 들어, 도 4에 도시된 바와 같이, 전자 장치는 입력 메시지 'MessageA' 에 대응하여 루트 데이터 노드(41)를 생성할 수 있다. 이때, 루트 데이터 노드(41)의 노드값은 입력 메시지의 명칭이며, 필드값은 해당 노드가 메시지(Message)인 것을 나타내는 표지('type: Message')일 수 있으나, 이에 한정되는 것은 아니다.
이어서, 전자 장치는 IDL 파일(즉, 파싱된 IDL 파일)로부터 입력 메시지에 포함된 적어도 하나의 파라미터 객체를 추출할 수 있다(s32). 도 4의 예에서 전자 장치는 'MessageA'에 참조되는 두 개의 파라미터 객체 'double inputA' 및 'repeated string inputB'를 추출할 수 있다.
전자 장치는 추출된 각 파라미터 객체에 대응하는 제1 데이터 노드를 생성할 수 있으며(s33), 생성된 제1 데이터 노드를 상기 제1 트리의 차일드 노드로 추가할 수 있다(s34). 이를 통해 전자 장치는 트리 구조의 입력 파라미터 그룹을 생성할 수 있다. 도 4의 예에서, 전자 장치는 추출된 두 개의 파라미터 객체에 대응하는 두 개의 제1 데이터 노드(42, 43)를 생성할 수 있으며, 제1 데이터 노드 각각은 루트 데이터 노드(41)의 차일드로서 링크(link) 연결될 수 있다. 한편, 제1데이터 노드 각각의 노드값은 각 파라미터 객체의 데이터 명칭('inputA', 'inputB')이며, 필드값은 각 파라미터 객체의 데이터형('double', 'string')을 포함할 수 있다. 추가로, 전자 장치는 각 파라미터 객체의 필드 특성 등을 필드값으로 기술할 수 있으나, 이에 한정되는 것은 아니다.
만약, 파라미터 객체가 선택형(one of) 집합인 경우, 해당 집합에 포함된 복수의 서브 파라미터 객체들 각각은 데이터 노드로 생성되며, 이때 생성된 데이터 노드는 선택형 집합을 나타내는 표지 및 선택형 집합의 명칭을 더 포함하는 필드값을 포함할 수 있다. 도 5는 본 발명의 일 실시예에 따라 선택형 집합 구조의 파라미터 객체를 포함하는 입력 파라미터 그룹을 도시한다. 도 5를 참조하면, 전자 장치는 선택형 파라미터 객체('Items')에 포함된 두 개의 서브 파라미터 객체들('itemA', 'itemB')에 대응하는 두 개의 데이터 노드(52, 53)를 생성하며, 각 데이터 노드(52, 53)는 선택형 집합을 나타내는 표지(예컨대, 'oneof: True') 및 선택형 집합의 명칭(예컨대, 'items')을 더 기술할 수 있다.
또한, 파라미터 객체의 데이터형이 열거형 집합인 경우, 상기 파라미터 객체에 대응하는 데이터 노드는 열거형 집합의 명칭 및 열거된 데이터를 더 포함하는 필드값을 포함할 수 있다. 도 6은 본 발명의 일 실시예에 따라 열거형 집합 구조의 파라미터 객체를 포함하는 입력 파라미터 그룹을 도시한다. 도 6을 참조하면, 전자 장치는 열거형 파라미터 객체('inputA', 'inputB')에 대응하는 두 개의 데이터 노드(62, 63)의 필드값으로 열거형 집합의 명칭(예컨대, 'MsgName: EnumA', 'MsgName: EnumB') 및 열거된 데이터(예컨대, 'enumValues: [ITEM_A, ITEM_B]', enumValues: [ITEM_C, ITEM_D]')를 더 기술할 수 있다.
한편, 파라미터 객체가 다른 메시지를 참조하는 참조형 데이터형인 경우(예컨대, 도 2의 'UInt32 inputA'), 전자 장치는 참조된 메시지에 포함된 서브 파라미터 객체를 추가로 탐색하여 이를 입력 파라미터 그룹에 추가할 수 있다.
도 7은 본 발명의 일 실시예에 따라 전자 장치가 서브 파라미터 객체를 탐색하여 입력 파라미터 그룹에 추가하는 방법을 도시한 도면이다.
앞서 설명한 도 3의 s34단계(즉, 전자 장치는 입력 메시지의 파라미터 객체에 대응하는 제1 데이터 노드를 제1 트리의 차일드 노드로 추가하는 단계)에 이어서, 전자 장치는 제1 데이터 노드의 데이터형이 참조형인지 여부(즉, 다른 메시지를 참조하는지 여부)를 판단할 수 있다(s71). 예를 들어, 전자 장치는 프로토콜 버퍼를 파싱할 시에, 다른 메시지를 참조하는 파라미터 객체를 태깅하거나, 해당 파라미터 객체가 참조하는 다른 메시지의 위치값을 추가 기재하거나, 해당 파라미터 객체를 다른 IDL에서 참조하는 등의 전처리 작업을 할 수 있다. 그러나, 이에 한정되는 것은 아니며, 전자 장치는 추출된 파라미터 객체의 데이터형 필드가 다른 메시지를 나타낼 경우, 이를 참조형으로 판단할 수 있다.
전자 장치는 제1 데이터 노드의 데이터형이 참조형일 경우, 제1 데이터 노드가 참조된 메시지의 명칭을 필드값으로 포함하고 있는지 판단할 수 있다(s72). 만약, 제1 데이터 노드가 참조된 메시지의 명칭을 필드값으로 포함하고 있지 않으면, 파싱된 IDL 파일로부터 참조된 메시지를 탐색할 수 있다(s73). 이후, 전자 장치는 참조된 메시지에 포함된 각 서브 파라미터 객체에 대응하는 제3 데이터 노드를 생성할 수 있다(s74). 제3 데이터 노드의 기술 방법은 도 3 내지 도 6에서 설명한 바와 동일 및/또는 유사하므로, 자세한 설명은 생략한다. 생성된 제3 데이터 노드는 제1 데이터 노드의 차일드 노드로 추가될 수 있다(s75).
한편, 전자 장치는 제1 데이터 노드의 필드값에 참조된 메시지의 명칭을 추가할 수 있다. 이를 통해, 전자 장치는 중복적으로 참조된 메시지가 탐색되는 것을 방지할 수 있다. 즉, s72 단계에서, 제1 데이터 노드의 필드값에서 참조된 메시지가 존재하면, 전자 장치는 상기 s73 단계를 생략할 수 있다.
한편, 전자 장치는 생성된 제3 데이터 노드에 대하여 앞서 설명한 s71 내지 s75 단계를 반복하여 수행할 수 있다. 이를 통해, 전자 장치는 참조형 데이터형으로 이루어진 파라미터 객체를 트리 구조 내에서 비참조형 데이터형으로 변환하여 표현할 수 있다.
한편, 도 7의 s71 내지 s73 단계는 파라미터 객체의 데이터형이 열거형인 경우에도 적용될 수 있다. 단, 데이터형이 열거형인 경우, 전자 장치는 s73 단계에서 참조된 메시지가 아닌 참조된 열거형 집합을 탐색하며, 새로운 데이터 노드를 생성하지 않고 제1 데이터 노드의 필드값에 열거된 데이터를 추가할 수 있다.
또한, 전술한 상기 도 3 내지 도 7의 방법은 입력 메시지 및/또는 참조된 메시지에 포함된 복수의 파라미터 객체들 각각에 대하여 반복하여 수행될 수 있다.
도 8은 본 발명의 일 실시예에 따라 서브 파라미터 객체에 기반하여 생성된 입력 파라미터 그룹을 도시한다. 이때, 입력 메시지는 'MessageA'인 것으로 가정한다.
도 8을 참조하면, 전자 장치는 입력 메시지(MessageA)의 파라미터 객체에 대응하는 제1 및 제2 데이터 노드(82, 83)를 생성하여 루트 데이터 노드(81)의 차일드 노드로 추가할 수 있다. 이후, 전자 장치는 제1 데이터 노드(82)의 데이터형이 참조형이므로 제1 데이터 노드(82)의 필드값이 참조된 메시지 'InnerMsgA'를 포함하는지 판단한다. 해당 필드값이 존재하지 않는 경우, 전자 장치는 제1 데이터 노드(82)에 참조된 메시지의 메시지명(예컨대, 'inputmsgA')을 추가하고, 참조된 메시지 'InnerMsgA'를 탐색하여, 'InnerMsgA'의 서브 파라미터 객체 {uint32 inputA, repeated string inputB}에 대응하는 두 개의 제3 데이터 노드(84, 85)를 생성할 수 있다. 생성된 두 개의 제3 데이터 노드(84, 85)는 제1 데이터 노드(82)의 차일드 노드로 추가될 수 있다.
한편, 위 설명에서는 입력 메시지에 대응하여 트리 구조(제1 트리)의 입력 파라미터 그룹을 생성하는 것으로 설명하였으나, 위 설명이 트리 구조(제2 트리)의 출력 메시지에 대응하는 출력 파라미터 그룹을 생성하는 방법에도 동일하게 적용될 수 있음은 본 발명의 기술분야에 대한 통상의 지식을 가진 자가 용이하게 이해할 수 있을 것이다.
도 9는 본 발명의 일 실시예에 따라 입출력 파라미터 객체를 포함하는 API(application programming interface)를 생성하는 방법을 도시한 도면이다.
전자 장치는 요청된 기능에 대응하는 API의 함수 이름을 생성할 수 있다(s91). 이때, 전자 장치가 함수 이름을 생성하는 방법에는 다양한 방법들이 적용될 수 있다. 예를 들어, 전자 장치는 요청된 기능에 매칭하는 RPC 서비스명의 적어도 일 부분을 이용하여 함수 이름을 생성할 수 있으며, 사용자가 기 정해놓은 규칙에 따라 생성할 수도 있다.
이후, 전자 장치는 입력 파라미터 그룹 및 출력 파라미터 그룹 각각에 대응하는 제1 트리 및 제2 트리 각각의 적어도 하나의 리프 노드(leaf node)를 탐색할 수 있다(s92). 도 10은 본 발명의 일 실시예에 따라 생성된 입력 파라미터 그룹을 도시한다. 전자 장치는 입력 파라미터 그룹에 대응하는 트리의 리프 노드를 탐색하여 4개의 입력 파라미터 객체(inputB, value, inputD, value)를 추출할 수 있다. 즉, 전자 장치는 제1 트리의 적어도 하나의 리프 노드를 적어도 하나의 입력 파라미터 객체로 추출할 수 있으며, 제2 트리의 적어도 하나의 리프 노드를 적어도 하나의 출력 파라미터 객체로 추출할 수 있다.
전자 장치는 생성된 함수 이름, 추출된 적어도 하나의 입력 파라미터 객체 및 출력 파라미터 객체를 이용하여 API 생성할 수 있다(s93). 도 2의 예에서, 전자 장치는 'function Sample(inputC, value) return output, value' 의 API를 추출할 수 있다. 이와 같이, 전자 장치는 리프 노드를 추출하여 이로부터 입출력 파라미터 객체를 추출함으로써, 비참조형 데이터 객체를 이용하여 API를 생성할 수 있으며, 이로 인하여 사용자가 보다 단순화된 구조의 입출력 파라미터 객체를 이용하도록 할 수 있다.
한편, 도 10에서와 같이, 두 개 이상의 리프 노드가 동일한 노드명(또는 노드값)을 갖는 경우(예컨대, 'value'), 전자 장치는 상기 두 개 이상의 리프 노드 각각의 부모 데이터 노드의 노드명으로 입력 파라미터 객체를 대체할 수 있다. 예를 들어, 전자 장치는 첫 번째 'value' 를 'inputA'로 변경하고, 두 번째 'value'를 inputC'로 변경할 수 있다.
또는, 전자 장치는 상기 두 개 이상의 리프 노드 각각의 부모 데이터 노드의 노드명을 입력 파라미터 객체에 더 추가할 수 있다. 예를 들어, 전자 장치는 첫 번째 'value'를 'inputA_value' 로 변경하고, 두 번째 'value'를 'inputC_value'로 변경할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 전자 장치(11)의 구성을 도시한 도면이다.
본 발명의 일 실시예에 따른 전자 장치(11)는 RPC(Remote Procedure Call)에 기반하여 외부 장치의 함수 또는 프로시저(procedure)를 호출하기 위하여 통신 장치(111), 프로세서(112) 및 메모리(113)를 포함한다.
통신 장치(111)는 프로세서(112)의 제어에 의해, 전자 장치(11)가 서버 등의 외부 장치와 통신하기 위한 적어도 하나의 구성요소를 포함할 수 있다. 예를 들어, 통신 장치(111)는 네트워크 카드, 네트워크 스위치, 랜 카드, 네트워크 인터페이스 처리부 등을 포함할 수 있다.
프로세서(112)는 하나 이상의 코어, 그래픽 처리부 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예컨대, 버스 등)를 포함할 수 있다.
프로세서(112)는 메모리(113)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 앞서 도 1 내지 도 10과 관련하여 설명된 방법을 수행한다.
예를 들어, 프로세서(112)는 IDL(Interface Definition Language)로부터, 요청된 기능에 대응하여 기 정의된 입출력 메시지를 추출하고, IDL 에 기 정의된 파라미터 객체들에 기반하여, 입출력 메시지로부터 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성하며, 입력 파라미터 그룹 및 출력 파라미터 그룹에 기반하여 적어도 하나의 입출력 파라미터 객체를 포함하는 사용자 요청 API(Application Programming Interface)를 생성할 수 있다. 사용자 요청 API에 포함된 적어도 하나의 입출력 파라미터 객체는 모두 비참조형 데이터형이다.
한편, 프로세서(112)는 프로세서(112) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(112)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템 온 칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(113)에는 프로세서(112)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(113)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.
또한, 전자 장치(11)는 상기의 구성들 이외에, 각 기능에서 처리되는 데이터 등을 표시하는 디스플레이, 사용자 입력을 수신하는 사용자 입력 장치 등을 더 포함할 수 있다. 그러나, 본 발명의 전자 장치(11)가 더 많은 구성요소들을 포함하여 구현될 수 있음은 본 발명의 기술분야의 통상의 지식을 가진 자가 용이하게 이해할 수 있을 것이다.
한편, 상술한 다양한 실시 예들에 따른 전자 장치의 동작 방법은 하드웨어에 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어로 생성되어 다양한 전자 장치에 탑재될 수 있다.
예를 들어, IDL(Interface Definition Language)로부터 요청된 기능에 대응하여 기 정의된 입출력 메시지를 추출하는 기능, IDL 에 기 정의된 파라미터 객체들에 기반하여 입출력 메시지로부터 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성하는 기능, 및 입력 파라미터 그룹 및 출력 파라미터 그룹에 기반하여 적어도 하나의 입출력 파라미터 객체를 포함하는 사용자 요청 API(Application Programming Interface)를 생성하는 기능을 실행하는 프로그램이 저장된 컴퓨터로 판독 가능한 기록 매체(computer readable medium)가 설치될 수 있다. 특히, 본 발명은 컴퓨터나 이와 동등한 수준의 디지털 장치에서 판독 가능한 프로그램, 혹은 그 프로그램이 기록된 기록매체에 의해 수행될 수 있다.
컴퓨터가 판독 가능한 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
컴퓨터가 판독 가능한 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 따라서, 본 발명의 호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
11: 전자 장치
111: 통신 장치
112: 프로세서
113: 메모리

Claims (10)

  1. RPC(Remote Procedure Call)에 기반하여 외부 장치의 함수 또는 프로시저(procedure)를 호출하는 전자 장치의 동작 방법에 있어서,
    IDL(Interface Definition Language)로 표현되는 인터페이스인 프로토콜 버퍼를 파싱하여, 요청된 기능에 대응하는 RPC 함수를 추출하고, 상기 추출된 RPC 함수에 매칭되는 기 정의된 입출력 메시지를 추출하는 단계;
    상기 IDL 에 기 정의된 파라미터 객체들에 기반하여, 상기 입출력 메시지로부터 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성하는 단계; 및
    상기 입력 파라미터 그룹 및 상기 출력 파라미터 그룹에 기반하여 적어도 하나의 입출력 파라미터 객체를 포함하는 사용자 요청 API(Application Programming Interface)를 생성하는 단계를 포함하되,
    상기 사용자 요청 API에 포함된 적어도 하나의 입출력 파라미터 객체는 모두 비참조형 데이터형인 방법.
  2. 제 1 항에 있어서,
    상기 입력 파라미터 그룹 및 출력 파라미터 그룹을 생성하는 단계는,
    상기 입출력 메시지 중 입력 메시지로부터 제1 트리(tree)의 제1 루트 데이터 노드(root data note)를 생성하고, 상기 입출력 메시지 중 출력 메시지로부터 제2 트리의 제2 루트 데이터 노드를 생성하는 단계;
    상기 IDL로 표현되는 IDL 파일로부터 상기 입력 메시지를 참조하는 적어도 하나의 제1 파라미터 객체를 추출하고, 상기 출력 메시지에 포함된 적어도 하나의 제2 파라미터 객체를 추출하는 단계;
    상기 적어도 하나의 제1 파라미터 객체 및 상기 적어도 하나의 제2 파라미터 객체 각각에 대응하는 적어도 하나의 제1 데이터 노드 및 적어도 하나의 제2 데이터 노드를 생성하는 단계; 및
    상기 적어도 하나의 제1 데이터 노드를 상기 제1 트리의 차일드(child) 노드로 추가하고, 상기 적어도 하나의 제2 데이터 노드를 상기 제2 트리의 차일드 노드로 추가하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서, 상기 방법은
    상기 적어도 하나의 제1 데이터 노드 및 상기 적어도 하나의 제2 데이터노드 중 적어도 하나의 데이터 노드의 데이터형이 다른 메시지를 참조하는 경우, 상기 데이터 노드의 필드값이 상기 참조된 메시지의 명칭을 포함하는지 판단하는 단계;
    상기 참조된 메시지의 명칭을 포함하지 않을 경우, 상기 참조된 메시지를 탐색하는 단계;
    상기 참조된 메시지에 포함된 적어도 하나의 서브 파라미터 객체에 대응하는 적어도 하나의 제3 데이터 노드를 생성하는 단계; 및
    상기 적어도 하나의 제3 데이터 노드를 상기 데이터 노드의 차일드 노드로 추가하는 단계를 더 포함하는 방법.
  4. 제 2 항에 있어서,
    상기 적어도 하나의 제1 및 제2 파라미터 객체 중 적어도 하나의 파라미터 객체가 선택형 집합인 경우, 상기 선택형 집합에 포함된 복수의 서브 파라미터 객체들 각각은 데이터 노드로 생성되며,
    상기 생성된 데이터 노드 각각의 필드값은 선택형 집합을 나타내는 표지 및 선택형 집합의 명칭을 더 포함하는 것인 방법.
  5. 제 2 항에 있어서,
    상기 적어도 하나의 제1 및 제2 파라미터 객체 중 적어도 하나의 파라미터 객체가 열거형 집합인 경우, 상기 적어도 하나의 파라미터 객체에 대응하는 데이터 노드의 필드값은 열거형 집합의 명칭 및 열거된 데이터를 더 포함하는 것인 방법.
  6. 제 2항에 있어서,
    상기 사용자 요청 API를 생성하는 단계는,
    상기 요청된 기능에 대응하는 함수 이름을 생성하는 단계;
    상기 입력 파라미터 그룹 및 출력 파라미터 그룹 각각에 대응하는 상기 제1 트리 및 상기 제2 트리의 리프 노드(leaf node)를 탐색하는 단계;
    상기 제1 트리의 적어도 하나의 리프 노드를 적어도 하나의 입력 파라미터 객체로 추출하는 단계;
    상기 제2 트리의 적어도 하나의 리프 노드를 적어도 하나의 출력 파라미터 객체로 추출하는 단계; 및
    상기 함수 이름, 상기 적어도 하나의 입력 파라미터 객체 및 상기 출력 파라미터 객체를 포함하는 API를 생성하는 단계를 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 입력 파라미터 객체를 추출하는 단계는,
    상기 제1 트리에 포함된 복수의 리프 노드들 중 적어도 두 개의 리프 노드가 동일한 데이터 노드명을 갖는 경우, 상기 두 개의 리프 노드 각각의 부모 데이터 노드의 노드명으로 상기 입력 파라미터 객체를 대체하는 것인 방법.
  8. 제 6 항에 있어서,
    상기 입력 파라미터 객체를 추출하는 단계는,
    상기 제1 트리에 포함된 복수의 리프 노드들 중 적어도 두 개의 리프 노드가 동일한 데이터 노드명을 갖는 경우, 상기 두 개의 리프 노드 각각의 부모 데이터 노드의 노드명을 상기 입력 파라미터 객체에 더 추가하는 것인 방법.
  9. 외부 장치와 통신하는 통신 장치;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 제1 항의 방법을 수행하는 전자 장치.
  10. 하드웨어인 컴퓨터와 결합되어, 제1 항의 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램.
KR1020210172657A 2021-12-06 2021-12-06 Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치 KR102407940B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210172657A KR102407940B1 (ko) 2021-12-06 2021-12-06 Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210172657A KR102407940B1 (ko) 2021-12-06 2021-12-06 Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치

Publications (1)

Publication Number Publication Date
KR102407940B1 true KR102407940B1 (ko) 2022-06-13

Family

ID=81984317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210172657A KR102407940B1 (ko) 2021-12-06 2021-12-06 Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치

Country Status (1)

Country Link
KR (1) KR102407940B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160003485A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 원격 함수 호출을 위한 자동 코드 생성
US20160070609A1 (en) * 2014-09-04 2016-03-10 International Business Machines Corporation Automatically generating efficient remote procedure call (rpc) code for heterogeneous systems
KR20160060023A (ko) * 2013-06-18 2016-05-27 시암벨라 리미티드 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
KR20160080487A (ko) * 2014-12-29 2016-07-08 서강대학교산학협력단 디바이스간 원격 프로시저 호출 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160060023A (ko) * 2013-06-18 2016-05-27 시암벨라 리미티드 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
KR20160003485A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 원격 함수 호출을 위한 자동 코드 생성
US20160070609A1 (en) * 2014-09-04 2016-03-10 International Business Machines Corporation Automatically generating efficient remote procedure call (rpc) code for heterogeneous systems
KR20160080487A (ko) * 2014-12-29 2016-07-08 서강대학교산학협력단 디바이스간 원격 프로시저 호출 방법

Similar Documents

Publication Publication Date Title
US20180337872A1 (en) Chatbot system
US8271609B2 (en) Dynamic service invocation and service adaptation in BPEL SOA process
US7756905B2 (en) System and method for building mixed mode execution environment for component applications
US9753704B2 (en) Web-based scan-task enabled system and method of and apparatus for developing and deploying the same on a client-server network
KR101143222B1 (ko) 인터-포지션된 메시지 변경을 사용하는, 코드에 대한 수신메시지의 적응성 디스패치
US7870482B2 (en) Web browser extension for simplified utilization of web services
US7007278B2 (en) Accessing legacy applications from the Internet
CN110457144B (zh) 一种实现前端应用的方法、装置、介质和设备
CN105872083A (zh) 一种支持不同类型客户端访问服务器的方法、服务器及系统
US20030233477A1 (en) Extensible infrastructure for manipulating messages communicated over a distributed network
CN101697139A (zh) 一种远程过程调用方法、装置和注册库
EP1662383A2 (en) Prescriptive architecture for application development
US8701129B2 (en) Web API server program, web API publication method
US11537367B1 (en) Source code conversion from application program interface to policy document
KR20080064587A (ko) 이기종 컴퓨팅 및 서비스 통합을 위한 오픈 프레임워크시스템
EP1662378A2 (en) Declarative aspect and aspect containers for application development
CN113703862A (zh) 基于配置的接口调用方法、装置、设备及存储介质
CN116541497A (zh) 任务型对话的处理方法、装置、设备和存储介质
KR102407941B1 (ko) Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 사용자 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치
CN110109983B (zh) 一种操作Redis数据库的方法和装置
EP2400390A1 (en) Provision of services and libraries to remote clients
Indrasiri Beginning WSO2 ESB
KR102407940B1 (ko) Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치
CN111951040A (zh) 信息发送方法及装置、电子设备、存储介质
CN111857658A (zh) 一种渲染动态组件的方法、装置、介质和电子设备

Legal Events

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