| 번호 | 청구항 |
|---|---|
| 1 | 모바일 기기(이하 '클라이언트 기기'라 한다)의 특정 어플리케이션(이하 '클라이언트 앱'이라 한다) 수행 시 상기 클라이언트 기기의 플랫폼 역할을 수행하는 프로그램(이하 '클라이언트 플랫폼'이라 한다)의 동작에 의해 다른 모바일 기기(이하 '서버 기기'라 한다)의 앱(이하 '서버 앱'이라 한다) 기능을 이용하기 위한, 컴퓨터로 구현되는 방법으로서,(a) 서버 기기와 네트워크를 연결하는 단계;(b) 상기 서버 기기로부터, 상기 서버 기기가 제공 가능한 서버 앱 정보를 수신하여 등록하는 단계;(c) 클라이언트 앱이 실행된 경우, 클라이언트 기기의 바인더 드라이버로 전달될 파셀(parcel)을, 바인더 드라이버로 전달되지 못하도록 가로채는 단계;(d) 상기 클라이언트 앱과 상기 서버 앱 간에 기기간(cross-device) IPC(inter-process communication) 채널을 형성하는 단계;(e) 서버 앱 이용 요청을 서버 기기에 전송하는 단계; 및(f) 상기 클라이언트 앱의 RPC(remote procedure call) 호출시, 이를 상기 서버 기기로 전송하는 단계를 포함하고,상기 클라이언트 기기의 바인더 드라이버는, 클라이언트 앱으로부터의 파셀을 클라이언트 기기의 서버 앱으로 전달하는 역할을 수행하며,상기 단계(d)는,(d1) 상기 단계(c)에서 가로챈 파셀을 서버 기기로 전송하는 단계; 및(d2) 상기 클라이언트 앱과 상기 클라이언트 플랫폼 사이에 바인더 채널(binder channel)을 형성하는 단계를 포함하며,상기 단계(f)에서,상기 RPC에 포함된 호출 인자(argument)가 일반 데이터인 경우, 상기 호출 인자가 포함된 RPC를 상기 서버 기기로 전송하고,상기 RPC에 포함된 호출 인자가, 공유 메모리, 소켓, 파일 등 자원(resource)을 가리키는 식별자(identifier)로서 클라이언트 기기 내에서 지칭하는 고유의 식별자인 경우, 상기 호출 인자가 포함된 RPC를 상기 서버 기기로 전송하고, 상기 식별자에 해당하는 자원을 상기 서버 기기로 전송하는,클라이언트 앱 수행시 서버 앱 기능을 이용하기 위한, 컴퓨터로 구현되는 방법. |
| 2 | 삭제 |
| 3 | 청구항 1에 있어서,상기 단계(d2)는,(d21) 스텁(stub)을 만드는 단계;(d22) 상기 클라이언트 앱에 상기 단계(d21)의 스텁에 대한 프록시(proxy)를 제공하는 단계를 포함하고,상기 단계(d21) 및 단계(d22)에 따라, 상기 프록시를 보유한 클라이언트 앱은 상기 스텁을 가지고 있는 클라이언트 플랫폼을 서버 앱으로 인식하며 통신함으로써 클라이언트 플랫폼과 클라이언트 앱 사이에 바인더 채널(binder channel)을 형성하는 것을 특징으로 하는, 클라이언트 앱 수행시 서버 앱 기능을 이용하기 위한, 컴퓨터로 구현되는 방법. |
| 4 | 청구항 1에 있어서,상기 단계(c)와 단계(d) 사이에,(c1) 상기 클라이언트 기기의 디스플레이 화면에, 이용 가능한 서버 앱 선택 창을 제공하는 단계;(c2) 상기 클라이언트 기기의 사용자로부터, 이용할 서버 앱을 입력받는 단계를 더 포함하고,상기 단계(e)의 서버 앱은,상기 단계(c2)에서 입력된 서버 앱인 것을 특징으로 하는, 클라이언트 앱 수행시 서버 앱 기능을 이용하기 위한, 컴퓨터로 구현되는 방법. |
| 5 | 청구항 4에 있어서,상기 단계(e)와 단계(f) 사이에,(e1) 클라이언트 앱 정보를 포함하는 클라이언트 정보를 서버 기기에 전송하는 단계를 더 포함하는 것을 특징으로 하는, 클라이언트 앱 수행시 서버 앱 기능을 이용하기 위한, 컴퓨터로 구현되는 방법. |
| 6 | 삭제 |
| 7 | 청구항 1에 있어서,상기 단계(f) 이후,(g) RPC 호출된 서버 앱으로부터의 RPC 수행 결과를 대기 중인 클라이언트 앱의 액티비티(activity)(이하 '호출(caller) 액티비티'라 한다)가 클라이언트의 액티비티 스택(stack)에 있는 경우, 상기 서버 앱의 액티비티로부터의 수행 결과가 수신될 때까지 상기 호출 액티비티가 휴지(pause) 상태에 있도록, 상기 액티비티 스택의 호출 액티비티 위에 가상 액티비티(virtual activity)를 배치하는 단계를 더 포함하는 것을 특징으로 하는, 클라이언트 앱 수행시 서버 앱 기능을 이용하기 위한, 컴퓨터로 구현되는 방법. |
| 8 | 모바일 기기(이하 '서버 기기'라 한다)의 플랫폼 역할을 수행하는 프로그램(이하 '서버 플랫폼'이라 한다)의 동작에 의해, 다른 모바일 기기(이하 '클라이언트 기기'라 한다)의 앱(이하 '클라이언트 앱'이라 한다) 수행시 요청되는 상기 서버 기기 상의 앱(이하 '서버 앱'이라 한다) 기능을 제공하기 위한, 컴퓨터로 구현되는 방법으로서,(a) 클라이언트 기기와 네트워크를 연결하는 단계;(b) 상기 서버 기기가 제공 가능한 서버 앱 정보를 상기 클라이언트 기기로 전송하는 단계;(c) 상기 클라이언트 앱과 상기 서버 앱 간에 기기간(cross-device) IPC(inter-process communication) 채널을 형성하는 단계;(d) 상기 클라이언트 기기로부터, 서버 앱 이용 요청을 수신하는 단계; 및(e) 상기 클라이언트 기기로부터의 RPC(remote procedure call) 호출시, 이를 상기 서버 앱으로 전달하는 단계를 포함하고,상기 단계(c)는,(c1) 상기 클라이언트 기기로부터 파셀(parcel)을 바인더 드라이버를 거치지 않고 상기 서버 플랫폼이 직접 수신하는 단계; 및(c2) 상기 서버 플랫폼과 상기 서버 앱 사이에 바인더 채널(binder channel)을 형성하는 단계를 포함하며,상기 단계(e)에서,상기 RPC에 포함된 호출 인자(argument)가 일반 데이터인 경우, 상기 호출 인자가 포함된 RPC를 상기 서버 앱에 전달하고,상기 RPC에 포함된 호출 인자가, 공유 메모리, 소켓, 파일 등 자원(resource)을 가리키는 식별자(identifier)로서 클라이언트 기기 내에서 지칭하는 고유의 식별자인 경우, 상기 RPC 호출에 이어 수신된 자원을 상기 서버 기기에 저장한 후, 상기 RPC에 포함된 호출 인자의 자원 식별자를, 상기 데이터가 새로이 저장된 상기 서버 기기의 자원 식별자로 대체하여, 상기 호출 인자가 포함된 RPC를 상기 서버 앱에 전달하는,클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 9 | 삭제 |
| 10 | 청구항 8에 있어서,상기 단계(c2)는,(c21) 상기 서버 앱의 스텁(stub)에 대한 프록시(proxy)를 획득하는 단계를 포함하고,서버 앱은 자신이 보유한 상기 스텁에 대한 상기 프록시를 가지고 있는 서버 플랫폼을 클라이언트 앱으로 인식하며 통신함으로써 서버 앱과 서버 플랫폼 사이에 바인더 채널(binder channel)을 형성하는 것을 특징으로 하는, 클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 11 | 청구항 8에 있어서,상기 단계(d)와 단계(e) 사이에,(d1) 상기 클라이언트 기기로부터, 서버 앱 이용요청한 클라이언트 앱 정보를 포함하는 클라이언트 정보를 수신하는 단계; 및(d2) 상기 수신한 클라이언트 정보를 등록하는 단계를 더 포함하는 것을 특징으로 하는, 클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 12 | 청구항 11에 있어서,상기 단계(d1)과 단계(d2) 사이에,(d11) 상기 수신한 클라이언트 정보를 상기 서버 기기의 디스플레이 화면에 제공하는 단계; 및(d12) 상기 서버 기기의 사용자로부터, 해당 클라이언트의 서버 앱 이용 요청 허가(permission) 여부를 입력받는 단계를 더 포함하는 것을 특징으로 하는, 클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 13 | 청구항 8에 있어서,상기 단계(d2) 이후,(d3) 상기 서버 앱 이용 요청한 클라이언트 앱의 각 인스턴스(instance)에 대하여, 고유 아이디(UID)를 할당하는 단계를 더 포함하는 것을 특징으로 하는, 클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 14 | 청구항 13에 있어서,상기 단계(e) 이후,각 클라이언트의 앱 인스턴스(instance)에 대한 허가(permission) 여부 파악은,각 인스턴스의 UID를 획득하여, 해당 UID의 허가 여부를 파악함으로써 이루어지는 것을 특징으로 하는, 클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 15 | 삭제 |
| 16 | 청구항 8에 있어서,상기 단계(e) 이후,(f) 클라이언트 기기의 액티비티(activity) 스택의 최상위에 가상 액티비티(virtual activity)가 배치된 경우, 상기 가상 액티비티와 원격으로 연동된 가상 액티비티를 서버 액티비티 스택에 배치하는 단계를 더 포함하고, 상기 서버 액티비티 스택에 배치된 가상 액티비티는,상기 클라이언트 기기의 액티비티 스택에서 상기 가상 액티비티 아래에 위치하여 휴지(pause) 상태에 있는 액티비티(이하 '호출(caller) 액티비티'라 한다)에 의해 호출된 서버 액티비티(이하 '피호출(callee) 액티비티'라 한다) 아래에 배치되는 것을 특징으로 하는, 클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 17 | 청구항 16에 있어서,서버 스택의 피호출 액티비티가 클라이언트 스택의 호출 액티비티를 파악할 수 있도록, 상기 서버 스택의 가상 액티비티는 호출 액티비티의 고유 아이디를 가지고 있는 것을 특징으로 하는, 클라이언트 앱 수행시 요청되는 서버 앱 기능을 제공하기 위한, 컴퓨터로 구현되는 방법. |
| 18 | 모바일 기기(이하 '클라이언트 기기'라 한다)의 특정 어플리케이션(이하 '클라이언트 앱'이라 한다) 수행 시 다른 모바일 기기(이하 '서버 기기'라 한다)의 앱(이하 '서버 앱'이라 한다) 기능을 이용하게 하기 위하여 상기 클라이언트 기기 상에서 동작하는 컴퓨터 프로그램(이하 '클라이언트 플랫폼'이라 한다)으로서,비일시적 저장 매체에 저장되며, 프로세서에 의하여,(a) 서버 기기와 네트워크를 연결하는 단계;(b) 상기 서버 기기로부터, 상기 서버 기기가 제공 가능한 서버 앱 정보를 수신하여 등록하는 단계;(c) 클라이언트 앱이 실행된 경우, 클라이언트 기기의 바인더 드라이버로 전달될 파셀(parcel)을, 바인더 드라이버로 전달되지 못하도록 가로채는 단계;(d) 상기 클라이언트 앱과 상기 서버 앱 간에 기기간(cross-device) IPC(inter-process communication) 채널을 형성하는 단계;(e) 서버 앱 이용 요청을 서버 기기에 전송하는 단계; 및(f) 상기 클라이언트 앱의 RPC(remote procedure call) 호출시, 이를 상기 서버 기기로 전송하는 단계가 실행되도록 하고,상기 클라이언트 기기의 바인더 드라이버는, 클라이언트 앱으로부터의 파셀을 클라이언트 기기의 서버 앱으로 전달하는 역할을 수행하며,상기 단계(d)는,(d1) 상기 단계(c)에서 가로챈 파셀을 서버 기기로 전송하는 단계; 및(d2) 상기 클라이언트 앱과 상기 클라이언트 플랫폼 사이에 바인더 채널(binder channel)을 형성하는 단계를 포함하며,상기 단계(f)에서,상기 RPC에 포함된 호출 인자(argument)가 일반 데이터인 경우, 상기 호출 인자가 포함된 RPC를 상기 서버 기기로 전송하고,상기 RPC에 포함된 호출 인자가, 공유 메모리, 소켓, 파일 등 자원(resource)을 가리키는 식별자(identifier)로서 클라이언트 기기 내에서 지칭하는 고유의 식별자인 경우, 상기 호출 인자가 포함된 RPC를 상기 서버 기기로 전송하고, 상기 식별자에 해당하는 자원을 상기 서버 기기로 전송하는 명령을 포함하는, 비일시적 저장 매체에 저장된 컴퓨터 프로그램. |
| 19 | 다른 모바일 기기(이하 '클라이언트 기기'라 한다)의 앱(이하 '클라이언트 앱'이라 한다) 수행시 요청되는 서버 기기 상의 앱(이하 '서버 앱'이라 한다) 기능을 제공하기 위하여 상기 서버 기기 상에서 동작하는 컴퓨터 프로그램(이하 '서버 플랫폼'이라 한다)으로서,비일시적 저장 매체에 저장되며, 프로세서에 의하여,(a) 클라이언트 기기와 네트워크를 연결하는 단계;(b) 상기 서버 기기가 제공 가능한 서버 앱 정보를 상기 클라이언트 기기로 전송하는 단계;(c) 상기 클라이언트 앱과 상기 서버 앱 간에 기기간(cross-device) IPC(inter-process communication) 채널을 형성하는 단계;(d) 상기 클라이언트 기기로부터, 서버 앱 이용 요청을 수신하는 단계; 및(e) 상기 클라이언트 기기로부터의 RPC(remote procedure call) 호출시, 이를 상기 서버 앱으로 전달하는 단계가 실행되도록 하고,상기 단계(c)는,(c1) 상기 클라이언트 기기로부터 파셀(parcel)을 바인더 드라이버를 거치지 않고 상기 서버 플랫폼이 직접 수신하는 단계; 및(c2) 상기 서버 플랫폼과 상기 서버 앱 사이에 바인더 채널(binder channel)을 형성하는 단계를 포함하며,상기 단계(e)에서,상기 RPC에 포함된 호출 인자(argument)가 일반 데이터인 경우, 상기 호출 인자가 포함된 RPC를 상기 서버 앱에 전달하고,상기 RPC에 포함된 호출 인자가, 공유 메모리, 소켓, 파일 등 자원(resource)을 가리키는 식별자(identifier)로서 클라이언트 기기 내에서 지칭하는 고유의 식별자인 경우, 상기 RPC 호출에 이어 수신된 자원을 상기 서버 기기에 저장한 후, 상기 RPC에 포함된 호출 인자의 자원 식별자를, 상기 데이터가 새로이 저장된 상기 서버 기기의 자원 식별자로 대체하여, 상기 호출 인자가 포함된 RPC를 상기 서버 앱에 전달하는 명령을 포함하는, 비일시적 저장 매체에 저장된 컴퓨터 프로그램. |