KR20160080487A - Remote procedure calling method between different devices - Google Patents

Remote procedure calling method between different devices Download PDF

Info

Publication number
KR20160080487A
KR20160080487A KR1020140192370A KR20140192370A KR20160080487A KR 20160080487 A KR20160080487 A KR 20160080487A KR 1020140192370 A KR1020140192370 A KR 1020140192370A KR 20140192370 A KR20140192370 A KR 20140192370A KR 20160080487 A KR20160080487 A KR 20160080487A
Authority
KR
South Korea
Prior art keywords
binder
remote
service
reference information
information
Prior art date
Application number
KR1020140192370A
Other languages
Korean (ko)
Other versions
KR101642713B1 (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 KR1020140192370A priority Critical patent/KR101642713B1/en
Publication of KR20160080487A publication Critical patent/KR20160080487A/en
Application granted granted Critical
Publication of KR101642713B1 publication Critical patent/KR101642713B1/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/133Protocols for remote procedure calls [RPC]

Abstract

The present invention relates to a method of calling a remote procedure between devices. More specifically, the method of calling the remote procedure between mutually different devices in order for a first device among a plurality of devices to access a service provided by a second device includes the steps of: allowing a remote binder in the first device to search for a desired service among services provided by the second device; allowing a remote binder in the second device to create binder reference information for the searched service; extracting the binder reference information created by the remote binder in the second device and transmitting the binder reference information to the remote binder in the first device; and allowing the remote binder in the first device to call the service provided by the second device based on the received binder reference information. Through the above configuration, in the method of calling the remote procedure between the devices according to the present invention, a system service and a procedure in the service provided by a different device can be easily called without the correction of an android application as if the system service and the procedure exist in a local device.

Description

디바이스간 원격 프로시저 호출 방법{Remote procedure calling method between different devices}[0001] The present invention relates to a remote procedure calling method,

본 발명은 디바이스간 원격 프로시저 호출 방법에 관한 것으로, 특히 안드로이드 애플리케이션을 수정하지 않고도 다른 디바이스의 시스템 서비스 및 서비스 내 프로시저를 호출할 수 있는 디바이스간 원격 프로시저 호출 방법에 관한 것이다.
The present invention relates to a method of remote procedure call between devices, and more particularly, to a method of remote procedure call between devices that can invoke system services of another device and procedures in the service without modifying the Android application.

사물 인터넷이란 인터넷을 기반으로 모든 사물을 연결하여 사람과 사물, 사물과 사물 간의 정보를 상호 소통하는 지능형 기술 및 서비스를 말한다. 2014년 10대 전략 기술 중 하나로 사물인터넷을 꼽은 가트너에 따르면 전 세계적으로 500억 개의 기기가 연결될 것으로 전망되고 있다. 또한 2020년 세계 사물인터넷 시장 규모는 2013년 대한민국의 GDP인 약 1조 2000억 달러보다 더 큰 1조 9000억 달러(약 2,033조원)로 성장할 예정이다. 이러한 성장 추세를 반영하듯, 최근 임베디드 디바이스들이 일상화되고 그 종류 또한 다양해지고 있다. 스마트폰이나 태블릿 이외에도 스마트 시계, 스마트 안경 등의 웨어러블 디바이스가 등장했고, 가전 및 차량 등도 소프트웨어를 탑재한 임베디드 디바이스로 변화하고 있다.Object The Internet is an intelligent technology and service that connects all objects based on the Internet and communicates information between people, things, and objects. According to Gartner, one of the top 10 strategic technologies in 2014, the Internet is expected to connect 50 billion devices globally. In addition, the global Internet market in 2020 will grow to $ 1.9 trillion (about KRW 2.033 trillion), which is greater than Korea's GDP of about $ 1.2 trillion by 2013. Reflecting this growth trend, embedded devices are becoming more common and diverse. In addition to smartphones and tablets, wearable devices such as smart clocks and smart glasses have appeared, and home appliances and vehicles have also become embedded devices equipped with software.

2014년도를 기준으로 임베디드 디바이스를 대표할 수 있는 스마트폰의 플랫폼들 중 가장 보편적인 것은 시장 점유율 84.7%를 보유한 안드로이드이며 향후 다양한 종류의 임베디드 디바이스를 구동하는 플랫폼으로 각광받고 있다.One of the most common platforms for smartphones that can represent embedded devices by 2014 is Android, which has a market share of 84.7%. It is becoming a platform to drive various kinds of embedded devices in the future.

실제로 안드로이드는 스마트폰, 태블릿뿐만 아니라 스마트 안경의 어플리케이션을 개발할 수 있는 SDK를 공개하면서 웨어러블 디바이스까지 그 영역을 확장하였다.In fact, Android has expanded its coverage to wearable devices by unveiling an SDK that can develop applications for smart glasses and tablets as well as smart glasses.

사물 인터넷의 성장으로 안드로이드가 탑재된 임베디드 디바이스가 증가함에 따라, 다수의 디바이스들이 서로 연결되고 협력하여 동작할 수 있는 환경에 대한 필요성이 증대되고 있다. 이러한 환경에서는 네트워크를 통하여 다른 디바이스에 대한 정보를 얻거나, 원격 제어를 위해 다른 디바이스 내 정의된 프로시저를 호출할 수 있는 기능 등이 제공되어야 한다.With the growing number of embedded devices with Android powered by the growth of the Internet, there is a growing need for environments in which multiple devices can work together and work together. In such an environment, functions such as obtaining information about other devices through the network, or calling procedures defined in another device for remote control should be provided.

현재의 안드로이드 플랫폼은 커널 레벨의 바인더 드라이버를 통해 단일 디바이스 내의 프로세스 간 프로시저 호출(프로세스 간의 RPC)을 제공하고 있다. 안드로이드 내의 서비스들은 각각 바인더 노드를 가지고 있으며, 해당 서비스를 호출하고자 하는 클라이언트는 바인더 노드를 참조하여 서비스를 호출한다. 시스템 서비스 외에도 응용프로그램에서 정의한 서비스와 같이 바인더를 사용하는 모든 서비스들은 바인더 노드를 가지고 있기 때문에 이 바인더 노드를 참조하여 대부분의 서비스를 접근할 수 있다. Current Android platforms provide inter-process procedure calls (RPC between processes) in a single device through kernel-level binder drivers. Each service in Android has a binder node, and the client that calls the service calls the service by referring to the binder node. In addition to system services, all services that use binders, such as services defined by an application program, have a binder node, so most services can be accessed by referring to this binder node.

하지만, 단일 디바이스 내에서 프로세스간 프로시저를 호출하는 것이 아닌, 서로 다른 디바이스 간에 프로시저를 원격 호출할 수 있는 방법(디바이스 간의 RPC)은 제공되지 않는 문제점이 발생했다.
However, there is a problem in that there is no way to remotely call a procedure between different devices (RPC between devices), rather than calling an inter-process procedure within a single device.

KR 10-2013-0041540(코루틴을 이용하여 원격 프로시저 호출 서비스를 제공하는 방법 및 장치, 엔에이치엔(주)), 2013.04.25.KR 10-2013-0041540 (Method and apparatus for providing remote procedure call service using coroutine, NHN Co., Ltd.), 2013.04.25.

상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 안드로이드 애플리케이션을 수정하지 않고도 다른 디바이스의 시스템 서비스 및 서비스 내 프로시저를 호출할 수 있는 디바이스간 원격 프로시저 호출 방법을 제공하고자 한다.
In order to solve the problems of the related art as described above, the present invention provides a method of inter-device remote procedure call which can invoke a system service of another device and a procedure in a service without modifying the Android application.

위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 디바이스간 원격 프로시저 호출 방법은 복수 개의 디바이스 중 임의의 제1 디바이스가 다른 제2 디바이스에서 제공하는 서비스에 접근하기 위해 서로 다른 디바이스간에 원격 프로시저(Remote Procedure)를 호출하는 방법에 있어서, 상기 제1 디바이스 내 존재하는 원격 바인더가 상기 제2 디바이스에서 제공하는 서비스 중 접근하고자 하는 서비스를 검색하는 단계; 상기 제2 디바이스 내 존재하는 원격 바인더가 검색된 상기 서비스에 대한 바인더 참조 정보를 생성하는 단계; 상기 제2 디바이스 내 원격 바인더가 생성한 상기 바인더 참조 정보를 추출하여 상기 제1 디바이스 내 원격 바인더로 전달하는 단계; 및 상기 제1 디바이스 내 원격 바인더가 수신한 상기 바인더 참조 정보에 기초하여 상기 제2 디바이스가 제공하는 서비스를 호출하는 단계;를 포함하는 것을 특징으로 한다. According to an aspect of the present invention, there is provided a method for inter-device remote procedure call, comprising: receiving, by a first device, A method of calling a remote procedure, the method comprising: searching for a service to be accessed by a remote binder existing in the first device, the service being provided by the second device; Generating binder reference information for the service in which the remote binder residing in the second device is searched; Extracting the binder reference information generated by the remote binder in the second device and transmitting the extracted reference information to the remote binder in the first device; And invoking a service provided by the second device based on the binder reference information received by the remote binder in the first device.

특히, 상기 제1 디바이스가 접근하고자 하는 서비스를 제공하는 상기 제2 디바이스의 IP 주소, 포트 번호, 상기 서비스의 식별자 ID 정보 중 적어도 하나를 포함하는 바인더 참조 정보를 포함할 수 있다.In particular, the first device may include binder reference information including at least one of an IP address, a port number, and identifier ID information of the second device providing a service to be accessed by the first device.

특히, 상기 서비스에 대응되는 제2 디바이스 내 바인더 참조 노드의 ID 정보인 서비스의 식별자 ID 정보를 포함할 수 있다.In particular, it may include identifier ID information of a service, which is ID information of a binder reference node in a second device corresponding to the service.

보다 바람직하게는 상기 제1 디바이스 내 존재하는 원격 바인더가 상기 제2 디바이스 내 존재하는 안드로이드 시스템을 통해 접근하고자 하는 서비스를 검색하는 단계를 포함할 수 있다.More preferably, the remote binder existing in the first device may search for a service to access through the Android system existing in the second device.

특히, 상기 제2 디바이스의 원격 바인더 내 존재하는 안드로이드 프로시저 매니저가 상기 제2 디바이스 내 안드로이드 시스템과 상기 제2 디바이스의 원격 바인더간에 인터페이스를 제공함으로써, 제1 디바이스 내 존재하는 원격 바인더가 접근하고자 하는 서비스를 검색하는 단계를 포함할 수 있다. In particular, the Android procedure manager existing in the remote binder of the second device provides an interface between the Android system in the second device and the remote binder of the second device, so that the remote binder existing in the first device And searching for the service.

보다 바람직하게는 상기 안드로이드 시스템에 등록된 복수 개의 서비스들 중 해당 서비스를 제공하는 제2 디바이스의 내부에서만 사용되는 객체를 필요로 하는 경우, 해당 서비스를 제공하는 제2 디바이스의 원격 바인더 내 서비스 매니저에 미리 등록함으로써, 제1 디바이스 내 존재하는 원격 바인더가 접근하고자 하는 서비스를 검색하는 단계를 포함할 수 있다.More preferably, when an object used only within a second device providing a corresponding service is required among a plurality of services registered in the Android system, the service manager in the remote binder of the second device providing the service And searching for a service to be accessed by a remote binder existing in the first device by registering in advance.

특히, 상기 제2 디바이스 내 원격 바인더가 상기 제2 디바이스가 제공하는 서비스별로 각각 존재하는 바인더 참조 노드로부터 바인더 참조 정보를 추출하여 상기 제1 디바이스 내 원격 바인더로 전달하는 단계를 포함할 수 있다.In particular, the remote binder in the second device may extract binder reference information from a binder reference node that exists for each service provided by the second device, and deliver the extracted binder reference information to the remote binder in the first device.

특히, 상기 서비스 식별자 ID 정보를 이용하여 상기 제2 디바이스가 제공하는 서비스를 호출하는 제1 디바이스 내 원격 바인더가 수신한 상기 바인더 참조 정보에 기초하여 상기 제2 디바이스가 제공하는 서비스를 호출하는 단계를 포함할 수 있다.
In particular, a step of calling a service provided by the second device based on the binder reference information received by a remote binder in a first device that calls a service provided by the second device using the service identifier ID information .

본 발명의 디바이스간 원격 프로시저 호출 방법은 안드로이드 애플리케이션의 수정없이도 다른 디바이스에서 제공하는 시스템 서비스 및 서비스 내 프로시저를 로컬 디바이스 내 존재하는 것처럼 용이하게 호출할 수 있는 효과가 있다. The inter-device remote procedure call method of the present invention has an effect that it is possible to easily invoke system services and service procedures provided by other devices as if they exist in the local device without modifying the Android application.

또한 본 발명의 디바이스간 원격 프로시저 호출 방법은 intent를 사용해 액티비티와 서비스를 실행하지 않고, intent 대신에 확장된 Parcel과 바인더 노드를 참조하여 intent로는 호출할 수 없는 안드로이드 시스템 서비스 및 서비스 내 프로시저를 용이하게 호출할 수 있는 효과가 있다.
In addition, the present invention's method of remote procedure call between devices uses an intent to not execute activities and services, and refers to extended Parcel and a binder node instead of an intent and can not call an intent, There is an effect that it can be called easily.

도 1은 본 발명의 디바이스간 원격 프로시저를 호출하는 방법을 나타낸 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 디바이스간 원격 프로시저 호출 방법을 나타낸 순서도이다.
도 3은 안드로이드 시스템을 통한 서비스 검색과정을 나타낸 흐름도이다.
도 4는 원격 바인더 내 서비스 매니절르 통한 서비스 등록 및 검색과정을 나타낸 흐름도이다.
도 5는 안드로이드 바인더 구조를 나타낸 도면이다.
도 6은 서비스 호출 코드를 나타낸 도면이다.
도 7은 시스템 서비스 호출을 나타낸 도면이다.
도 8은 데이터 크기에 따른 전송 시간을 나타낸 그래프이다.
1 is a block diagram illustrating a method for invoking a device-to-device remote procedure of the present invention.
2 is a flowchart illustrating a method of remote procedure call between devices according to an embodiment of the present invention.
3 is a flowchart illustrating a service search process through the Android system.
4 is a flowchart illustrating a process of registering and searching for a service through a service manifold in a remote binder.
5 is a view showing an Android binder structure.
6 is a diagram showing a service call code.
7 is a diagram showing a system service call.
8 is a graph showing transmission time according to data size.

이하, 본 발명을 바람직한 실시 예와 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예에 한정되는 것은 아니다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Hereinafter, the present invention will be described in detail with reference to preferred embodiments and accompanying drawings, which will be easily understood by those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.

본 발명이 적용되는 원격 바인더는 이식성(portability)을 고려하여 응용프로그램으로 설계한다. 리눅스 커널 내부의 바인더 IPC 드라이버를 수정하는 방법은 기존의 안드로이드 디바이스들에 새로운 안드로이드 플랫폼을 설치가 필요하기 때문에 배제하였고, 따라서 디바이스에서 원격 바인더를 설치하여도 기존의 플랫폼 및 어플리케이션의 수정 없이도 원격 호출을 수행할 수 있다. 원격 바인더는 안드로이드 IPC 메커니즘인 바인더를 디바이스 간의 통신에서 사용할 수 있도록 확장하였다. The remote binder to which the present invention is applied is designed as an application program in consideration of portability. The way to modify the binders IPC driver in the Linux kernel is to eliminate the need for installing a new Android platform on existing Android devices, so installing a remote binder on the device will make remote calls Can be performed. The remote binders extend the binders, which are the Android IPC mechanism, for use in communication between devices.

도 1은 원격 바인더의 세부 구조를 나타낸 블록도이다.1 is a block diagram showing the detailed structure of a remote binder.

도 1에 도시된 바와 같이, 원격 바인더에서는 한 디바이스의 클라이언트가 다른 디바이스에 존재하는 서비스를 원격으로 호출하는 과정을 확인할 수 있는데, 이를 통해 한 디바이스의 클라이언트가 다른 디바이스에 있는 프로시저를 로컬 디바이스의 프로시저처럼 호출할 수 있다.As shown in FIG. 1, in a remote binder, a client of one device can check a process of remotely calling a service existing in another device, thereby allowing a client of one device to connect a procedure in another device to a local device You can call it like a procedure.

이하, 도 2를 참조하여 복수 개의 디바이스 중 임의의 제1 디바이스가 다른 제2 디바이스에서 제공하는 서비스에 접근하기 위해 서로 다른 디바이스간에 원격 프로시저(Remote Procedure)를 호출하는 방법에 대하여 자세히 살펴보도록 한다. Hereinafter, with reference to FIG. 2, a method of calling a remote procedure between different devices in order to access a service provided by a second device from any one of the plurality of devices will be described in detail .

도 2는 본 발명의 일 실시 예에 따른 디바이스간 원격 프로시저 호출 방법을 나타낸 순서도이다.2 is a flowchart illustrating a method of remote procedure call between devices according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 디바이스간 원격 프로시저 호출 방법은 먼저, 복수 개의 임의의 디바이스 중 임의의 제1 디바이스 내 존재하는 원격 바인더가 상기 제2 디바이스에서 제공하는 서비스 중 접근하고자 하는 서비스를 검색한다(S210). As shown in FIG. 2, the inter-device remote procedure call method according to the present invention is a method for inter-device remote procedure call, wherein a remote binder existing in an arbitrary first device among a plurality of arbitrary devices, The service is searched (S210).

이러한 상기 제1 디바이스 내 존재하는 원격 바인더가 상기 제2 디바이스 내 존재하는 안드로이드 시스템을 통해 접근하고자 하는 서비스를 검색할 수 있다. 즉, 안드로이드에서 제공하는 모든 서비스는 안드로이드 시스템에 등록되어 있기 때문에, 상기 안드로이드 시스템으로부터 접근하고자 하는 서비스를 용이하게 검색할 수 있다. The remote binder existing in the first device can search for a service to access through the Android system existing in the second device. That is, since all the services provided by Android are registered in the Android system, the service to be accessed from the Android system can be easily searched.

이때, 상기 제2 디바이스의 원격 바인더 내 존재하는 안드로이드 프로시저 매니저가 상기 제2 디바이스 내 안드로이드 시스템과 상기 제2 디바이스의 원격 바인더간에 인터페이스를 제공할 수 있다. At this time, the Android procedure manager existing in the remote binder of the second device can provide an interface between the Android system in the second device and the remote binder of the second device.

이때 만약, 상기 안드로이드 시스템에 등록된 복수 개의 서비스들 중 해당 서비스를 제공하는 제2 디바이스의 내부에서만 사용되는 객체를 필요로 하는 경우, 해당 서비스를 제공하는 제2 디바이스의 원격 바인더 내 서비스 매니저에 미리 등록할 수 있다. In this case, if an object used only in the second device providing the corresponding service is needed among the plurality of services registered in the Android system, the service manager in the remote binder of the second device providing the service You can register.

이후, 상기 제2 디바이스 내 존재하는 원격 바인더가 검색된 상기 서비스에 대한 바인더 참조 정보를 생성한다(S220). 특히, 상기 바인더 참조 정보는 상기 제1 디바이스가 접근하고자 하는 서비스를 제공하는 상기 제2 디바이스의 IP 주소, 포트 번호, 상기 서비스의 식별자 ID 정보 중 적어도 하나를 포함할 수 있다. 이때, 상기 서비스의 식별자 ID 정보는 상기 서비스에 대응되는 제2 디바이스 내 바인더 참조 노드의 ID 정보이다. Thereafter, the remote binder existing in the second device generates binder reference information for the searched service (S220). In particular, the binder reference information may include at least one of an IP address, a port number, and identifier ID information of the second device providing the service to be accessed by the first device. At this time, the identifier ID information of the service is the ID information of the binder reference node in the second device corresponding to the service.

이에 따라, 상기 제2 디바이스 내 원격 바인더의 바인더 추출기가 생성한 상기 바인더 참조 정보를 추출하여 상기 제1 디바이스 내 원격 바인더로 전달한다(S230). 이때, 상기 제2 디바이스 내 원격 바인더가 상기 제2 디바이스가 제공하는 서비스별로 각각 존재하는 바인더 참조 노드로부터 바인더 참조 정보를 추출하여 상기 제1 디바이스 내 원격 바인더로 전달할 수 있다. Accordingly, the binder reference information generated by the binder extractor of the remote binder in the second device is extracted and transmitted to the remote binder in the first device (S230). At this time, the remote binder in the second device can extract the binder reference information from the binder reference node that exists for each service provided by the second device, and can transmit the extracted binder reference information to the remote binder in the first device.

이후, 상기 제1 디바이스 내 원격 바인더가 수신한 상기 바인더 참조 정보에 기초하여 상기 제2 디바이스가 제공하는 서비스를 호출한다(S240). 즉, 상기 제1 디바이스 내 원격 바인더가 수신한 상기 바인더 참조 정보 중 서비스 식별자 ID 정보를 이용하여 상기 제2 디바이스가 제공하는 서비스를 호출할 수 있다. Thereafter, the remote binder in the first device calls the service provided by the second device based on the received binder reference information (S240). That is, the service provided by the second device can be invoked by using the service identifier ID information of the binder reference information received by the remote binder in the first device.

이처럼 상술한 복수 개의 서로 다른 디바이스가 제공하는 서비스에 접근하기 위해서는 서비스의 등록 및 검색이 수행되어야 한다. 원격 바인더는 디바이스 내에 존재하는 모든 서비스를 외부 디바이스에서 접근할 수 있도록 안드로이드 시스템 또는 원격 바인더 서비스 매니저를 통한 서비스 검색 방법을 제공한다. 검색이 완료된 서비스들은 외부 디바이스에서 참조할 수 있도록 서비스의 참조 정보를 생성하는데, 상기 서비스의 참조 정보는 서비스가 존재하는 디바이스의 IP와 포트 번호, 그리고 서비스의 식별자 ID에 대한 정보 등의 세 가지로 구성될 수 있다. In order to access the services provided by the plurality of different devices, the service registration and search must be performed. The remote binder provides a service search method through the Android system or the remote binder service manager so that all the services existing in the device can be accessed from the external device. The services that have been searched for generate reference information of the service to be referred to by the external device. The reference information of the service includes three types of information, that is, the IP and port number of the device in which the service exists, Lt; / RTI >

이하, 도 3 내지 도 5를 참조하여, 본 발명의 디바이스간 원격 프로시저 호출 방법에 대하여 보다 자세히 살펴보도록 한다. Hereinafter, a method of inter-device remote procedure call of the present invention will be described in more detail with reference to FIG. 3 to FIG.

도 3은 안드로이드 시스템을 통한 서비스 검색과정을 나타낸 흐름도이다.3 is a flowchart illustrating a service search process through the Android system.

도 3에 도시된 바와 같이, 복수 개의 서로 다른 디바이스 중 임의의 제1 디바이스의 애플리케이션이 상기 제1 디바이스의 원격 바인더로 서비스 검색을 요청한다. 이에 따라, 상기 제1 디바이스의 원격 바인더가 요청 받은 서비스를 제공하는 임의의 제2 디바이스의 원격 바인더로 서비스 검색 메시지를 전송하면, 상기 제2 디바이스의 원격 바인더가 상기 제2 디바이스의 안드로이드 시스템에 해당 서비스를 검색한다. 이에 따라, 상기 제2 디바이스의 안드로이드 시스템이 해당 서비스를 검색하면, 검색한 서비스를 상기 제2 디바이스의 원격 바인더로 전송한다. As shown in FIG. 3, an application of any one of a plurality of different devices requests a service search to a remote binder of the first device. Accordingly, when the remote binder of the first device transmits a service discovery message to the remote binder of the arbitrary second device providing the requested service, the remote binder of the second device corresponds to the Android system of the second device Search for services. Accordingly, when the Android system of the second device searches for the corresponding service, it transmits the searched service to the remote binder of the second device.

이후, 상기 제2 디바이스의 원격 바인더가 검색된 상기 서비스에 대한 바인더 참조 정보를 생성한 후, 생성한 상기 서비스에 대한 바인더 참조 정보를 상기 제1 디바이스의 원격 바인더로 전송한다. 이에 따라, 상기 제1 디바이스의 원격 바인더가 수신한 상기 서비스에 대한 바인더 참조 정보를 상기 제1 디바이스의 애플리케이션으로 전송한다. After that, the remote binder of the second device generates binder reference information for the searched service, and then transmits the generated binder reference information for the service to the remote binder of the first device. Thus, the binder reference information for the service received by the remote binder of the first device is transmitted to the application of the first device.

이후, 상기 제1 디바이스의 애플리케이션이 상기 서비스에 대한 바인더 참조 정보의 수신에 따른 응답 메시지를 상기 제1 디바이스의 원격 바인더로 전송하면, 상기 제1 디바이스의 원격 바인더가 상기 제2 디바이스의 원격 바인더로 응답 메시지를 전송하고, 이어서, 상기 제2 디바이스의 원격 바인더가 상기 제2 디바이스의 안드로이드 시스템 서비스로 수신한 응답 메시지를 전송한다.Thereafter, when the application of the first device transmits a response message to the remote binder of the first device according to the reception of the binder reference information for the service, the remote binder of the first device is connected to the remote binder of the second device And then transmits a response message received by the remote binder of the second device to the Android system service of the second device.

이에 따라, 상기 제2 디바이스의 안드로이드 시스템 서비스는 해당 서비스를 실행한다. Accordingly, the Android system service of the second device executes the corresponding service.

이때, 안드로이드 시스템을 통한 서비스 검색 안드로이드 내 모든 서비스는 안드로이드 시스템에 등록이 되어 있기 때문에 대부분의 서비스는 따로 등록할 필요없이 안드로이드 시스템으로부터 검색할 수 있다.At this time, the service search through the Android system Since all services in Android are registered in the Android system, most of the services can be retrieved from the Android system without registering separately.

원격 바인더가 안드로이드 시스템에 접근하기 위해서, 안드로이드 프로시저 관리자(Android Procedure Manager)가 원격 바인더와 안드로이드 시스템 사이의 인터페이스를 제공하는 역할을 한다. 그러나 이렇게 검색된 서비스는 다른 디바이스로 전달할 수 없는 형태이므로, 서비스의 식별자 ID를 서비스에 대응되는 바인더 참조 노드의 정보를 사용해 생성하여 이를 외부의 다른 디바이스로 전달한다. 또한, 바인더 추출기(Binder Extractor)를 사용하여, 서비스에 대응되는 바인더 참조 노드를 얻는다. In order for the remote binder to access the Android system, the Android Procedure Manager provides the interface between the remote binder and the Android system. However, since the retrieved service can not be transferred to another device, it generates the identifier ID of the service using the information of the binder reference node corresponding to the service and delivers it to another external device. In addition, the Binder Extractor is used to obtain a binder reference node corresponding to the service.

도 4는 원격 바인더 내 서비스 매니저를 통한 서비스 등록 및 검색과정을 나타낸 흐름도이다.4 is a flowchart illustrating a process of registering and searching for a service through a service manager in a remote binder.

도 4에 도시된 바와 같이, 서비스를 제공하는 제2 디바이스의 애플리케이션이 상기 제2 디바이스의 원격 바인더에 서비스를 미리 등록하면, 상기 제2 디바이스의 원격 바인더가 등록된 서비스를 저장한다. 이후, 서비스에 접근하고자 하는 제1 디바이스의 애플리케이션이 상기 제1 디바이스의 원격 바인더에 서비스 검색을 요청하면, 상기 제1 디바이스의 원격 바인더가 상기 제2 디바이스의 원격 바인더로 서비스 검색 요청 메시지를 전송한다. 이에 따라, 상기 제2 디바이스의 원격 바인더가 해당 서비스를 검색한 후, 검색한 해당 서비스에 대한 바인더 참조 정보를 생성하여, 생성한 상기 서비스에 대한 바인더 참조 정보를 상기 제1 디바이스의 원격 바인더로 전송한다. As shown in FIG. 4, when the application of the second device providing the service registers the service in advance with the remote binder of the second device, the remote binder of the second device stores the registered service. Thereafter, when an application of the first device to access the service requests a service search to the remote binder of the first device, the remote binder of the first device transmits a service search request message to the remote binder of the second device . Accordingly, the remote binder of the second device searches for the corresponding service, generates binder reference information for the searched service, and transmits the generated binder reference information for the service to the remote binder of the first device do.

이후, 상기 제1 디바이스의 원격 바인더가 수신한 상기 서비스에 대한 바인더 참조 정보를 상기 제1 디바이스의 애플리케이션으로 전송하면, 상기 제1 디바이스의 애플리케이션이 상기 서비스에 대한 바인더 참조 정보를 수신하고, 이에 대한 응답 메시지를 상기 제1 디바이스의 원격 바인더로 전송한다. If the application of the first device receives the binder reference information for the service received by the remote binder of the first device, the application of the first device receives the binder reference information for the service, And transmits a response message to the remote binder of the first device.

이후, 상기 제1 디바이스의 원격 바인더가 상기 제2 디바이스의 원격 바인더로 응답 메시지를 전송하면, 상기 제2 디바이스의 원격 바인더가 상기 서비스에 대한 바인더 참조 정보에 기초하여 해당 서비스를 검색하고, 검색 후 응답 메시지를 상기 제2 디바이스의 애플리케이션으로 전송하면, 상기 제2 디바이스의 애플리케이션이 해당하는 서비스를 실행한다. Thereafter, when the remote binder of the first device transmits a response message to the remote binder of the second device, the remote binder of the second device searches the corresponding service on the basis of the binder reference information for the service, When the response message is transmitted to the application of the second device, the application of the second device executes the corresponding service.

상술한 바와 같이, 안드로이드 시스템에 등록된 서비스들 중 디바이스 내부에서만 사용할 수 있는 객체를 필요로 하는 경우에는 안드로이드 시스템을 통한 검색이 불가능하다. 따라서, 사용하고자 하는 서비스들을 원격 바인더 내부의 서비스 매니저에 사전 등록하고 서비스의 식별자 ID 정보를 생성하여 검색하는 방법을 제공한다. 이러한 경우에는 서비스가 필요로 하는 객체를 방법의 객체로 대체할 수 있기 때문에 외부 디바이스에서 해당 서비스를 호출할 수 있다.As described above, when an object that can be used only within the device is required among the services registered in the Android system, it is impossible to search through the Android system. Accordingly, there is provided a method of pre-registering services to be used in a service manager in a remote binder and generating and searching for identifier ID information of the service. In this case, the service can be called from the external device because the service can replace the object needed by the method.

또한, 안드로이드 시스템을 통해 검색한 서비스는 실제로 서비스를 참조하는 클라이언트 프록시이며, 다른 디바이스로 전달할 수 없는 객체이다. 따라서 다른 디바이스로 전달할 수 있는 형태로의 변환되어야 하는데, 이때 사용되는 형태가 도 5에 도시된 각 서비스마다 가지고 있는 바인더 참조 노드의 정보이다. 디바이스 내 각 서비스 당 존재하는 바인더 참조 노드 정보를 추출하여 외부 디바이스로 전달해 서비스에 접근할 수 있도록 한다.Also, the service retrieved through the Android system is actually a client proxy that refers to the service, and is an object that can not be delivered to other devices. Therefore, it must be converted into a form that can be transmitted to another device. The type used at this time is the information of the binder reference node included in each service shown in FIG. Binder reference node information for each service in the device is extracted and transferred to the external device so that the service can be accessed.

또한, 원격 바인더는 바인더 드라이버 내부의 바인더 참조 노드에 접근해 정보를 추출하는 바인더 추출기를 포함한다.The remote binder also includes a binder extractor that retrieves information by accessing a binder reference node within the binder driver.

이에 따라, 단일 디바이스 상에서 클라이언트 프로세스가 특정 서비스를 바인더 참조 노드를 통해 호출하듯이, 다른 디바이스의 특정 서비스에 대한 바인더 참조 노드 정보를 통해 디바이스간 원격 프로시저 호출이 가능하도록 한다. 특히, 서비스를 호출하는 클라이언트는 BinderProxy 클래스로 표현되며, 바인더 드라이버 내부의 BpBinder 클래스의 참조를 가지고 있다. BpBinder에는 클라이언트가 서비스를 제공하는 서버에 접근하기 위해 사용되는 정수형 값인 handle이 존재한다. 바로 이 handle 값이 바인더 참조 노드의 ID 값이 되고, 이를 서비스 식별자 ID로 사용한다. 바인더 추출기는 바인더 참조 노드의 ID를 추출하여 원격 바인더에 알려주고, 원격 바인더는 이를 서비스 식별자 ID로 사용해 외부 디바이스의 서비스를 호출할 수 있는 환경을 제공한다.Thus, as the client process invokes a specific service on a single device via a binder reference node, remote procedure call between the devices is enabled through the binder reference node information for the specific service of another device. In particular, the client calling the service is represented by the BinderProxy class, which has a reference to the BpBinder class inside the binder driver. BpBinder has a handle, which is an integer value used to access the server that the client is providing service to. This handle value is the ID value of the binder reference node and is used as the service identifier ID. The binder extractor extracts the ID of the binder reference node and notifies the remote binder, and the remote binder provides an environment in which the service of the external device can be called using the service identifier ID.

또한, 안드로이드는 단일 디바이스 내의 프로세스 간 프로시저 호출을 위해 필요한 인터페이스를 AIDL(Android Interface Description Language)로 기술한다. AIDL 도구를 사용하여 프로세스들 간 RPC에 필요한 프록시와 스텁을 생성한다. 프록시와 스텁은 데이터를 바인더(IPC)에서 전달될 수 있는 메시지 형태인 Parcel로 변환하고 이를 전송하는 코드로 구성되어 있다. 원격 바인더에서는 이 AIDL을 확장하여 디바이스 간 RPC를 위해 사용되는 새로운 인터페이스를 제공한다.In addition, Android describes in Android Interface Description Language (AIDL) the interface required for inter-process procedure calls within a single device. Use the AIDL tool to generate the necessary proxies and stubs for RPC between processes. Proxies and stubs consist of code that translates data into Parcel, a form of message that can be passed from a binder (IPC), and sends it. Remote binders extend this AIDL to provide a new interface for RPC between devices.

이하에서는, 본 발명의 디바이스간 원격 프로시저 호출 방법에 대한 성능을 평가해보도록 한다. Hereinafter, performance of the inter-device remote procedure call method of the present invention will be evaluated.

먼저, 종래기술과 비교하여 개선된 원격 바인더에 대하여 살펴보도록 한다. First, an improved remote binder will be described in comparison with the prior art.

첫째, 종래기술에는 intent를 네트워크를 통해 전달하여 사용하는 방법이어서 불편함이 있었으나, 본 발명에 따른 원격 바인더는 내부 디바이스에서 intent를 사용하는 것처럼 간단하게 사용이 가능하다. First, there is a disadvantage in the conventional technology that the intent is transmitted through the network and used. However, the remote binder according to the present invention can be used simply as if the intent is used in the internal device.

둘째, 종래기술에서는 intent를 확장해 사용하는 것이기에 여러 가지 데이터 형식을 파라미터로 하는 시스템 서비스나 서비스 내 프로시저를 호출하는 것에 한계가 있었는데, 본 발명의 원격 바인더는 전달하는 데이터 형식이 parcel이기 때문에 제한이 없어 진정한 의미의 안드로이드 원격 호출을 구현했다고 볼 수 있다. Second, in the prior art, since an intent is extended and used, there is a limitation in calling a system service or a procedure in a service using various data types as parameters. However, since the remote binder of the present invention is a parcel, This means that you have implemented a true Android remote call.

셋째, IPC 내 데이터 전송 형식인 parcel을 사용했기 때문에 객체형식변환(marshall) 또는 객체형식재변환(unmarshall)의 과정없이 전송받은 데이터를 IPC 내에서 바로 사용 가능하므로, 서비스 호출 속도가 빠르다. Third, since parcel is used as the data transmission format in IPC, the data can be used directly in the IPC without the process of object type conversion (marshall) or object type reconversion (unmarshall), so that the service call speed is fast.

이하에서는 상술한 세 가지의 개선점에 중점을 둔 성능 평가를 살펴보도록 한다. Hereinafter, a performance evaluation focusing on the above three improvements will be described.

이러한 성능 평가 실험을 위해, 원격 바인더 프로토 타입을 구현하였으며 두 대의 안드로이드 디바이스를 사용한다. 안드로이드 디바이스는 Nexus 4(안드로이드 4.2.1)와 LG Optimus Gpro(안드로이드 4.4.2)를 사용하고, Nexus 4는 안드로이드 레퍼런스 모델로 안드로이드의 일반적인 기능을 제공하며 평가에서는 서비스를 제공하는 서버의 역할을 하도록 구성한다.For this performance evaluation experiment, we implemented a remote binder prototype and used two Android devices. The Android device uses Nexus 4 (Android 4.2.1) and LG Optimus Gpro (Android 4.4.2), Nexus 4 is Android reference model and provides Android's general functions. .

종래의 연구들을 살펴보면, intent를 네트워크로 전달하여 다른 디바이스의 서비스를 호출한다. 예를 들어, intent 아이디와 데이터로 구성된 int 어레이를 소켓으로 상대편 디바이스로 전송해 구현한다. 반면, 원격 바인더에서는 자신의 액티비티(activity)를 호출할 때와 다른 디바이스의 액티비티를 호출할 때의 코드를 도 6에 도시된 내용과 동일한 방법으로 자신과 다른 디바이스의 서비스를 호출한다.In the conventional research, the intent is transmitted to the network to invoke the service of another device. For example, an int array of intent id and data is sent to the remote device as a socket and implemented. On the other hand, the remote binder invokes the service of itself and another device in the same manner as the content shown in FIG. 6 when the activity of the remote binder is called and the activity of another device is called.

또한, 안드로이드에서는 시스템의 정보나 기능을 제공해주는 와이파이 정보 제공 기능, 알람 기능과 같은 복수 개의 시스템 서비스가 존재한다. 이 시스템 서비스들은 다양한 데이터 형식을 필요로 하는 함수들로 구성되어 있으므로 intent를 통해 호출할 수 없다. 따라서 종래 기술에서는 제시한 확장된 intent를 통한 원격 서비스 호출 방법은 시스템 서비스를 호출할 수 없는 한계점이 있었다.In addition, there are a plurality of system services such as Wi-Fi information providing function and alarm function for providing information and functions of the system in Android. These system services consist of functions that require various data types, so they can not be called through intent. Therefore, there is a limit in that the remote service invocation method through the extended intent proposed in the prior art can not invoke the system service.

하지만 이와 달리, 본 발명의 원격 바인더는 상술한 서비스 등록 및 검색 방법을 통해 얻은 서비스 리스트를 가지고 대상 디바이스에서 실행시키고 싶은 서비스에 필요한 다양한 형식의 데이터들을 parcel 형식으로 대상 디바이스로 전송한다. However, the remote binder of the present invention transmits various types of data required for a service to be executed in the target device to the target device in a parcel format, using the service list obtained through the service registration and search method described above.

도 7은 시스템 서비스 호출을 나타낸 도면으로서, 특정 IP를 가진 디바이스의 와이파이 정보를 얻고 제어하는 화면을 나타낸다. 7 is a diagram showing a system service call, which shows a screen for obtaining and controlling Wi-Fi information of a device having a specific IP.

도 7에 도시된 바와 같이, 시스템 서비스들은 모두 다른 프로세스에 존재하므로, IPC를 사용해야하기 때문에 상기 대상 디바이스는 수신한 데이터들을 IPC를 통해 시스템 서비스에 전달한다. As shown in FIG. 7, since all system services exist in different processes, the target device transmits the received data to the system service through the IPC because the IPC should be used.

도 8은 데이터 크기에 따른 전송 시간을 나타낸 그래프이다.8 is a graph showing transmission time according to data size.

종래 기술의 데이터 크기에 따른 전송 시간(Distributed Intent(5))은 HTTP 프로토콜을 사용하여 JSON 형태로 변환된 데이터를 전송하므로, HTTP 오버헤드가 발생하고 JSON 형태로의 변환에서 정돈과 비정돈으로 인한 시간이 소요된다. 하지만, 안드로이드의 메인 플랫폼 시장 점유율이 84.7% (미국 시장조사업체 IDC 조사 결과 2014년 2분기 기준)인 것을 고려할 때, 비안드로이드 디바이스와의 연동을 위한 JSON 데이터로의 변환은 비효율적이라고 할 수 있다. Since the transmission time (Distributed Intent (5)) according to the data size of the related art transmits data converted into JSON using the HTTP protocol, HTTP overhead is generated and the conversion into JSON form causes It takes time. However, considering that Android's main platform market share is 84.7% (based on US market research firm IDC survey in Q2 2014), conversion to JSON data for interoperability with non-Android devices is inefficient.

하지만 본 발명에 따른 원격 바인더는 소켓을 사용하여 안드로이드 디바이스 간 빠른 데이터 전송을 위해 parcel 데이터 형식을 사용함으로써 오버헤드를 줄여 상술한 종래기술에 비해 높은 성능을 갖는다. 종래 기술의 경우, 데이터의 크기가 증가할수록 JSON으로 변환된 데이터의 크기도 증가하며 객체형식변환(marshall)과 객체형식재변환(unmarshall)의 시간도 크게 증가하기 때문에 전체 전송시간이 크게 증가하는 것을 볼 수 있다. 하지만 이와 반면에, 본 발명의 원격 바인더는 데이터의 크기에 따라 고르게 시간이 소요되었고, 종래기술보다 100KB 전송 시에는 전송시간이 약 4.5 배 향상되는 것을 알 수 있다.However, the remote binder according to the present invention uses a parcel data format for fast data transmission between the Android devices using a socket, thereby reducing the overhead, which is higher than that of the prior art. In the conventional art, as the size of data increases, the size of data converted to JSON also increases, and the time of object format conversion (marshall) and object format re-conversion (unmarshall) can see. However, it can be seen that the remote binder of the present invention takes time evenly according to the size of data, and the transmission time is improved about 4.5 times in 100 KB transmission compared to the conventional technology.

또한, 이러한 디바이스간 원격 프로시저 호출 방법은 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체에 저장될 수 있다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Also, such a method of inter-device remote procedure call can be stored in a computer-readable recording medium on which a program for executing by a computer is recorded. At this time, the computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer readable recording medium include ROM, RAM, CD-ROM, DVD 占 ROM, DVD-RAM, magnetic tape, floppy disk, hard disk, optical data storage, and the like. In addition, the computer-readable recording medium may be distributed to network-connected computer devices so that computer-readable codes can be stored and executed in a distributed manner.

본 발명의 디바이스간 원격 프로시저 호출 방법은 안드로이드 애플리케이션의 수정없이도 다른 디바이스에서 제공하는 시스템 서비스 및 서비스 내 프로시저를 로컬 디바이스 내 존재하는 것처럼 용이하게 호출할 수 있는 효과가 있다. The inter-device remote procedure call method of the present invention has an effect that it is possible to easily invoke system services and service procedures provided by other devices as if they exist in the local device without modifying the Android application.

또한 본 발명의 디바이스간 원격 프로시저 호출 방법은 intent를 사용해 액티비티와 서비스를 실행하지 않고, intent 대신에 확장된 Parcel과 바인더 노드를 참조하여 intent로는 호출할 수 없는 안드로이드 시스템 서비스 및 서비스 내 프로시저를 용이하게 호출할 수 있는 효과가 있다.In addition, the present invention's method of remote procedure call between devices uses an intent to not execute activities and services, and refers to extended Parcel and a binder node instead of an intent and can not call an intent, There is an effect that it can be called easily.

상기에서는 본 발명의 바람직한 실시 예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 본 발명의 기술 사상 범위 내에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 첨부된 특허청구범위에 속하는 것은 당연하다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, Do.

Claims (9)

복수 개의 디바이스 중 임의의 제1 디바이스가 다른 제2 디바이스에서 제공하는 서비스에 접근하기 위해 서로 다른 디바이스간에 원격 프로시저(Remote Procedure)를 호출하는 방법에 있어서,
상기 제1 디바이스 내 존재하는 원격 바인더가 상기 제2 디바이스에서 제공하는 서비스 중 접근하고자 하는 서비스를 검색하는 단계;
상기 제2 디바이스 내 존재하는 원격 바인더가 검색된 상기 서비스에 대한 바인더 참조 정보를 생성하는 단계;
상기 제2 디바이스 내 원격 바인더가 생성한 상기 바인더 참조 정보를 추출하여 상기 제1 디바이스 내 원격 바인더로 전달하는 단계; 및
상기 제1 디바이스 내 원격 바인더가 수신한 상기 바인더 참조 정보에 기초하여 상기 제2 디바이스가 제공하는 서비스를 호출하는 단계;
를 포함하는 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
A method of calling a remote procedure between different devices to access a service provided by a second device from a first device among a plurality of devices,
Searching for a service to be accessed among the services provided by the second device, the remote binder existing in the first device;
Generating binder reference information for the service in which the remote binder residing in the second device is searched;
Extracting the binder reference information generated by the remote binder in the second device and transmitting the extracted reference information to the remote binder in the first device; And
Calling a service provided by the second device based on the binder reference information received by the remote binder in the first device;
Lt; RTI ID = 0.0 > remote procedure call. ≪ / RTI >
제1항에 있어서,
상기 바인더 참조 정보는
상기 제1 디바이스가 접근하고자 하는 서비스를 제공하는 상기 제2 디바이스의 IP 주소, 포트 번호, 상기 서비스의 식별자 ID 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
The method according to claim 1,
The binder reference information
Wherein the first device includes at least one of an IP address, a port number, and identifier ID information of the second device providing the service to be accessed by the first device.
제2항에 있어서,
상기 서비스의 식별자 ID 정보는
상기 서비스에 대응되는 제2 디바이스 내 바인더 참조 노드의 ID 정보인 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
3. The method of claim 2,
The identifier ID information of the service
And the ID information of the binder reference node in the second device corresponding to the service.
제1항에 있어서,
상기 제1 디바이스 내 존재하는 원격 바인더가 접근하고자 하는 서비스를 검색하는 단계는
상기 제1 디바이스 내 존재하는 원격 바인더가 상기 제2 디바이스 내 존재하는 안드로이드 시스템을 통해 접근하고자 하는 서비스를 검색하는 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
The method according to claim 1,
The step of searching for a service to be accessed by a remote binder existing in the first device
Wherein the remote binder existing in the first device searches for a service to access through the Android system existing in the second device.
제4항에 있어서,
상기 제1 디바이스 내 존재하는 원격 바인더가 접근하고자 하는 서비스를 검색하는 단계는
상기 제2 디바이스의 원격 바인더 내 존재하는 안드로이드 프로시저 매니저가 상기 제2 디바이스 내 안드로이드 시스템과 상기 제2 디바이스의 원격 바인더간에 인터페이스를 제공하는 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
5. The method of claim 4,
The step of searching for a service to be accessed by a remote binder existing in the first device
Wherein an Android procedure manager existing in a remote binder of the second device provides an interface between the Android system in the second device and a remote binder of the second device.
제4항에 있어서,
상기 제1 디바이스 내 존재하는 원격 바인더가 접근하고자 하는 서비스를 검색하는 단계는
상기 안드로이드 시스템에 등록된 복수 개의 서비스들 중 해당 서비스를 제공하는 제2 디바이스의 내부에서만 사용되는 객체를 필요로 하는 경우, 해당 서비스를 제공하는 제2 디바이스의 원격 바인더 내 서비스 매니저에 미리 등록하는 것을 더 포함하는 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
5. The method of claim 4,
The step of searching for a service to be accessed by a remote binder existing in the first device
When an object used only in the second device providing the corresponding service is needed among a plurality of services registered in the Android system, the service manager in the remote binder of the second device providing the service registers in advance Further comprising the steps of:
제1항에 있어서,
상기 제2 디바이스 내 원격 바인더가 상기 바인더 참조 정보를 추출하여 상기 제1 디바이스 내 원격 바인더로 전달하는 단계는
상기 제2 디바이스 내 원격 바인더가 상기 제2 디바이스가 제공하는 서비스별로 각각 존재하는 바인더 참조 노드로부터 바인더 참조 정보를 추출하여 상기 제1 디바이스 내 원격 바인더로 전달하는 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
The method according to claim 1,
Wherein the step of extracting the binder reference information from the remote binder in the second device and transferring the binder reference information to the remote binder in the first device
Wherein the remote binder in the second device extracts binder reference information from a binder reference node that exists for each service provided by the second device and transfers the extracted reference information to the remote binder in the first device. Way.
제3항에 있어서,
상기 제1 디바이스 내 원격 바인더가 수신한 상기 바인더 참조 정보에 기초하여 상기 제2 디바이스가 제공하는 서비스를 호출하는 단계는
상기 서비스 식별자 ID 정보를 이용하여 상기 제2 디바이스가 제공하는 서비스를 호출하는 것을 특징으로 하는 디바이스간 원격 프로시저 호출 방법.
The method of claim 3,
The step of calling the service provided by the second device based on the binder reference information received by the remote binder in the first device
And calling the service provided by the second device using the service identifier ID information.
제1항 내지 제8항 중 어느 한 항에 따른 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.9. A computer-readable recording medium on which a program for executing the method according to any one of claims 1 to 8 is recorded.
KR1020140192370A 2014-12-29 2014-12-29 Remote procedure calling method between different devices KR101642713B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140192370A KR101642713B1 (en) 2014-12-29 2014-12-29 Remote procedure calling method between different devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140192370A KR101642713B1 (en) 2014-12-29 2014-12-29 Remote procedure calling method between different devices

Publications (2)

Publication Number Publication Date
KR20160080487A true KR20160080487A (en) 2016-07-08
KR101642713B1 KR101642713B1 (en) 2016-08-10

Family

ID=56502874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140192370A KR101642713B1 (en) 2014-12-29 2014-12-29 Remote procedure calling method between different devices

Country Status (1)

Country Link
KR (1) KR101642713B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022005522A1 (en) * 2020-06-30 2022-01-06 Futurewei Technologies, Inc. Accessing service application components across multiple devices
KR102407940B1 (en) * 2021-12-06 2022-06-13 주식회사 플랜티넷 Interface generation method of electronic device calling function or procedure of external device based on remote procedure call(rpc), program and electronic device thereof
KR102407941B1 (en) * 2021-12-06 2022-06-13 주식회사 플랜티넷 User interface generation method of electronic device calling function or procedure of external device based on remote procedure call(rpc), program and electronic device thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101927721B1 (en) * 2017-07-14 2019-02-27 한국과학기술원 Method for cross-device functionality sharing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970071321A (en) * 1996-04-23 1997-11-07 올젠 케네스 Apparatus and method for performing dynamic loading of stub information allowing a program running in one address space to invoke a remote procedure or procedure processing in another address space
JP3546394B2 (en) * 1994-08-16 2004-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション Method and system for transferring remote procedure calls and responses over a network
KR20130041540A (en) 2011-10-17 2013-04-25 엔에이치엔(주) Method and apparatus for providing remote procedure call service using coroutine
KR101337077B1 (en) * 2012-11-06 2013-12-06 숭실대학교산학협력단 Method for operating android invisible system service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3546394B2 (en) * 1994-08-16 2004-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション Method and system for transferring remote procedure calls and responses over a network
KR970071321A (en) * 1996-04-23 1997-11-07 올젠 케네스 Apparatus and method for performing dynamic loading of stub information allowing a program running in one address space to invoke a remote procedure or procedure processing in another address space
KR20130041540A (en) 2011-10-17 2013-04-25 엔에이치엔(주) Method and apparatus for providing remote procedure call service using coroutine
KR101337077B1 (en) * 2012-11-06 2013-12-06 숭실대학교산학협력단 Method for operating android invisible system service

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAZUHIRO NAKAO 외 1명. 'Toward Remote Service Invocation in Android'. 2012 9th International Conference on UIC/ATC, 2012.09, pp. 612-617* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022005522A1 (en) * 2020-06-30 2022-01-06 Futurewei Technologies, Inc. Accessing service application components across multiple devices
KR102407940B1 (en) * 2021-12-06 2022-06-13 주식회사 플랜티넷 Interface generation method of electronic device calling function or procedure of external device based on remote procedure call(rpc), program and electronic device thereof
KR102407941B1 (en) * 2021-12-06 2022-06-13 주식회사 플랜티넷 User interface generation method of electronic device calling function or procedure of external device based on remote procedure call(rpc), program and electronic device thereof

Also Published As

Publication number Publication date
KR101642713B1 (en) 2016-08-10

Similar Documents

Publication Publication Date Title
US9246844B2 (en) Method for activating and deactivating client-side services from a remote server
US10503568B2 (en) Asynchronous handling of service requests
CN106797400B (en) System and method for enabling access to third party services via a service layer
US8209378B2 (en) Methods and apparatus for widget sharing between content aggregation points
KR101642713B1 (en) Remote procedure calling method between different devices
JP2015520436A (en) Enabling web clients to provide web services
US10581993B2 (en) Method for forwarding traffic in application on mobile intelligent terminal
EP3720094A1 (en) Information processing method, apparatus, device and system
US10235189B2 (en) Isolating a redirected smart card reader to a remote session
US20180241609A1 (en) Remote casting of media content
US20020046304A1 (en) Dynamic class loading
US9986057B2 (en) UI framework support for portal systems
US11196778B2 (en) NBMP workflow management in 5G flus
US10044788B2 (en) Native client multimedia redirection
CN114586325B (en) Method, apparatus and medium for content preparation for media streaming networks
JP2016513329A (en) Method and apparatus for providing contextual context to a user device
US10742776B1 (en) Accelerating isochronous endpoints of redirected USB devices
JP2015228086A (en) Information processing system, information processing device, information processing method, and program
KR100597405B1 (en) System and method for relaying data by use of socket applicaton program
Josyula et al. Internet of things and cloud interoperability application based on Android
GB2580420A (en) Electronic message adaptation
KR20190069284A (en) Method of converting and interworking ocf resourse of internet service, and an apparatus performing the same
JP6158667B2 (en) Server device, terminal device, communication method, and computer program
US9634987B2 (en) Obtaining a MAC address from an external source
CN115834582A (en) Resource publishing method, device, gateway, cloud platform and computer storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 4