KR101366965B1 - 프로세스간 통신을 통해 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품 - Google Patents

프로세스간 통신을 통해 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR101366965B1
KR101366965B1 KR1020117024315A KR20117024315A KR101366965B1 KR 101366965 B1 KR101366965 B1 KR 101366965B1 KR 1020117024315 A KR1020117024315 A KR 1020117024315A KR 20117024315 A KR20117024315 A KR 20117024315A KR 101366965 B1 KR101366965 B1 KR 101366965B1
Authority
KR
South Korea
Prior art keywords
resource
rights
share
resources
message
Prior art date
Application number
KR1020117024315A
Other languages
English (en)
Other versions
KR20110138242A (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 노키아 코포레이션
Publication of KR20110138242A publication Critical patent/KR20110138242A/ko
Application granted granted Critical
Publication of KR101366965B1 publication Critical patent/KR101366965B1/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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)

Abstract

프로세스간 통신을 통해 상호접속 프로세스들 사이에서 자원들을 공유하는 장치는 프로세서 및 실행가능한 명령어들이 저장된 메모리를 포함할 수 있으며, 상기 실행가능한 명령어들은 상기 프로세서에 의한 실행에 응답하여, 상기 장치로 하여금 하나 이상의 자원들을 관리하는 적어도 하나의 제1 프로세스로부터 요청을 수신하는 동작을 적어도 수행하게 한다. 상기 요청은 적어도 제2 프로세스와 상기 자원들 중 적어도 하나를 공유하도록 하는 하나 이상의 권한들의 할당을 요청하는 데이터를 포함할 수 있다. 상기 명령어들은, 상기 장치로 하여금, 상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들을 할당하는 동작 및 제1 메시지의 수신시 상기 제2 프로세스로부터 상기 자원을 공유하도록 하는 상기 권한들을 해지하는 동작을 더 수행하게 한다. 대응하는 컴퓨터 프로그램 생성물들 및 방법들이 또한 제공된다.

Description

프로세스간 통신을 통해 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품{Method, apparatus and computer program product for sharing resources via an interprocess communication}
본 발명의 실시예들은 일반적으로 기술하면 프로세스간 통신에 관한 것이며, 좀더 구체적으로 기술하면, 안전하고 유연한 방식으로 프로세스간 통신을 통해 하나 이상의 프로세스들 사이에서 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품에 관한 것이다.
최근 들어 유선 및 무선 네트워크들이 엄청나게 확장된 통신 시대가 되었다. 소비자의 요구에 부응하는 전례없는 기술 확장은 컴퓨터 네트워크들, 텔레비전 네트워크들, 및 전화 네트워크들을 통해 체험될 수 있다. 무선 및 이동 네트워킹 기술들은, 정보를 보다 유연하고 직접적으로 전송하면서 관련 소비자의 요구사항들을 해결해 왔다.
현재 및 향후의 네트워킹 기술들은 계속 정보 전송을 용이하게 하고 사용자들의 편의를 촉진하려고 할 것이다. 정보 전송을 좀더 용이하게 하고 사용자들의 편의를 좀더 촉진해 달라는 요구가 있는 한 분야는 (예컨대, 컴퓨터 프로그램의 경우) 상이한 프로세스들 간의 자원들의 공유에 관련된 것이다. 이러한 프로세스들은 서로에 대해 상호접속될 수 있고 단일의 전자 장치 상에서 실행될 수도 있으며 여러 전자 장치들 상에서 실행될 수도 있다. 프로세스들 사이에서 자원들을 공유하는 이점의 일례는, 전자 장치들에서의 자원들의 효율적인 이용을 도모하는 상이한 프로세스들로부터의 하나 이상의 명령어들의 동시 실행을 허용하는 것이다. 상호접속된 프로세스들 사이에서 자원들을 공유하는 이점의 다른 일례는, 상호접속된 프로세스들 사이에서의 자원들의 공유를 통해 상이한 프로세스들이 전자 장치들의 저장 공간을 보존하도록 메모리에서 동일한 명령어 집합을 공유할 수 있다는 것이다.
프로세스들 사이에서 자원들을 공유하는 것에 관련된 기존의 해결방안들은 파일 기술자(file descriptor)들을 프로세스들에 제공하는 구성으로 이루어지는 것이 전형적이다. 이와 관련하여, 상기 파일 기술자들은 프로세스간 통신을 통해 파일, 디렉토리, 메모리 등등과 같은 공유될 자원들에 액세스하기 위한 키(key)들로서의 역할을 수행할 수 있다. 그러나, 프로세스들 사이에서 자원들을 공유하는 것에 관련된 기존의 해결방안들은 매우 유연하지 못하다는 결함에 직면하고 있다. 예를 들면, UNIX 도메인 소켓은 하나 이상의 프로세스들 간에 데이터를 송신하는데 사용될 수 있으며 이러한 프로세스들은, 자원들의 공유를 위해, 소프트웨어 구성 관리(Software Configuration Management; SCM)에 관한 권한들을 가진 sendmsg() 및 recvmsg() 시스템 호출들을 사용하는 UNIX 도메인 소켓 접속을 통해 서로에 대해 파일 기술자들을 송신할 수 있다. 그러나, SCM에 관한 권한들을 가진 sendmsg() 및 recvmsg() 함수들을 사용하는 UNIX 도메인 소켓과 같은 기존의 해결방안들은 프로세스간 통신이 종료된 후에 자원의 이용을 해지하는 메커니즘을 제공하지 못하는 것이 전형적이다. 또한, 일단 자원이 공유되면 한 프로세스로부터 다른 한 프로세스로 자원을 전달하는 것을 제한하는 적합한 메커니즘이 존재하지 않는다. 이 때문에, 현재에는 프로세스들 간에 이러한 자원들이 공유될 수 있는 기간을 제한하는 적합한 메커니즘이 존재하지 않는다. 다시 말하면, 이러한 자원들에 대한 액세스가 부여되면, 그러한 액세스는 무기한으로 부여되는 것이 전형적이고 일단 공유 자원에 대한 액세스 권한들이 프로세스에 대해 부여되면 공유 자원에 대한 액세스 권한들을 제거하는 적합한 메커니즘이 존재하지 않으며 이는 심지어 프로세스들 간의 접속이 제거된 경우조차도 마찬가지인 것이 전형적이다.
공유 자원들에 대한 액세스를 부여하는 기존의 해결방안들을 사용하는 다른 한 결함은 이러한 해결방안들이 SCM에 관한 권한들을 가진 sendmsg() 및 recvmvg() 함수를 사용하는 UNIX 도메인 소켓과 같은 특정 프로토콜 및 애플리케이션 프로그래밍 인터페이스(application programming interface; API)에 밀결합 및 결속된다는 것이다. 이러한 특정 프로토콜 및 API의 사용으로 상호접속된 프로세스들에 대한 모든 통신이 강제로 이러한 특정 프로토콜 및 API에 순응하도록 재기록되게 하는데, 이는 종종 바람직하지 못한 것이며 결과적으로는 비효율적인 자원들의 사용을 초래시킬 수 있다. 이와 관련하여, 기존의 해결방안들에 의하면 애플리케이션은, 공유 자원에 대해 이러한 애플리케이션 또는 프로세스가 사용하게 되는 것이 일반적인 API 대신에 그러한 공유 자원에 액세스하기 위한 특정 API(예컨대, UNIX 도메인 소켓)를 강제로 사용하게 될 수 있다. 예를 들면, UNIX API는 예를 들면 공유 자원에 액세스하도록 특정 "dup()" 함수를 사용할 수 있는 반면에 일반 API는 자원에 액세스하도록 일반 open() 함수를 사용할 수 있다. 상기 UNIX API를 사용하는 경우에, 일반 open() 함수는 예를 들면 특정 "dup()" 함수 호출과 같은 상기 UNIX API에 해당하는 다른 함수로 재기록 또는 변경될 필요가 있을 수 있다. 가장 중요한 점으로는, 전형적인 UNIX 시스템들이 다중 사용자 장치들이기 때문에 액세스 제어 메커니즘들의 사용은 다른 사용자들의 프로세스들 및 자원들을 서로로부터 보호하도록 제한되는 것이 전형적이다. 이와는 대조적으로, 임의의 이동 장치가 단일의 사용자 장치, 예컨대 개인용 장치인 것이 전형적이기 때문에, UNIX 시스템들에서 사용되는 전형적인 액세스 제어 메커니즘들은 적용가능하지 않은 것이 전형적이다. 그러므로, 프로세스들 및 프로세스들의 자원들을 서로 보호하는 새로운 액세스 제어 메커니즘이 필요하다. 이러한 변화의 중요성은 증가하여 왔는데, 그 이유는 UNIX 표준들(예컨대 이동 장치들에서의 Unix용 휴대용 운영 체계 인터페이스(Portable Operating System Interface for Unix; POSIX) 및 UNIX 기반 운영 체계들(예컨대, 리눅스 운영 체계(Linux Operating System; Linux OS) 및 버클리 소프트웨어 배포(Berkeley Software Distribution; BSD) OS 수정판들))이 광범위하게 채택되고 있기 때문이다.
따라서, 안전하고 유연한 방식으로 상호접속된 프로세스들 사이에서 자원들을 공유하는 것을 허용하기 위해 프로세스간 자원들을 공유하는 다른 메커니즘을 제공하는 것이 바람직할 수 있다.
본 발명의 목적은 안전하고 유연한 방식으로 전자 장치들의 상호접속된 프로세스들 사이에서 자원들을 공유하는 것을 허용하기 위해 프로세스간 자원들을 공유하는 다른 메커니즘을 제공하는 것이다.
그러므로, 안전하고 유연한 방식으로 전자 장치들의 상호접속된 프로세스들 사이에서 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 본원 명세서에서 언급되는 프로세스는, 프로세서, 제어기 등등에 의해 실행가능한, 애플리케이션, 프로그램의 하나 이상의 인스턴스(instance)들, 소프트웨어 코드, 소프트웨어 명령어들, 알고리즘 따위에 관련된 것일 수 있다. 대표적인 실시예들은 sendmsg() 및 recvmsg() 함수 호출들을 이용하는 프로세스간 통신 프로토콜에 대해 UNIX API로부터 감결합되는 프로세스들의 자원들에 대한 액세스 권한들의 부여를 용이하게 한다. 또한, 프로세스들의 자원들에 대한 액세스 권한들은 언제든지 제거될 수 있으며 사전에 개방된 자원들에 대한 임의의 동작들(예컨대, 판독 및 기록 동작들)은 프로세스간 통신이 종료될 때 거부될 수 있다.
대표적인 실시예들은 개방 프로세스간 통신 채널에 자원에 대한 액세스 권한들을 링크시킬 수도 있고 프로세스간 통신 채널을 통해 자원들을 공유하는 안전하고 유연한 방식을 제공할 수도 있다. 대표적인 실시예들의 메커니즘은 UNIX API의 sendmsg() 및 recvmsg() 함수의 사용에 특정되지 않고 UNIX API의 sendmsg() 및 recvmsg() 함수의 사용을 요구하지 않으며 이와 관련하여 대표적인 실시예들의 프로세스간 통신의 메커니즘은 기존의 해결방안들보다 폭넓게 이용될 수 있는데, 그 이유는 기존의 해결방안들이, UNIX 프로토콜 및 API에 순응하도록 상호접속된 프로세스들에 관련된 코드의 재기록을 요구할 수 있는 특정 프로토콜 및 API(예컨대, UNIX 도메인 소켓들)에서 상호접속된 프로세스들 사이의 모든 통신이 이루어지게 하는 것을 요구하기 때문이다.
여기서 알아야 할 점은 대표적인 실시예들의 운영 체계(OS) 애플리케이션 프로그래밍 인터페이스(API)가 프로세스간 통신 채널 상의 단지 하나의 프로세스만이 자원에 액세스할 수 있게 하는 것을 보장할 수 있다는 점이다. 그 외에도, 자원에 대한 액세스 권한들은 언제든지 하나 이상의 프로세스들에 추가될 수도 있고 하나 이상의 프로세스들로부터 제거될 수도 있다. 자원을 소유 또는 관리하는 것으로 지정되는 프로세스는 원격 피어 장치가 자원에 대한 액세스 권한들을 다른 어떤 프로세스에도 넘겨주지 못하게 할 수 있다. 마찬가지로, 자원을 소유 또는 관리하는 프로세스는 원격 피어 장치가 자원에 대한 액세스 권한들을 다른 임의의 프로세스에 전달하지 못하게 할 수 있다. 그 외에도, 프로세스간 통신 채널이 폐쇄될 경우에 대표적인 실시예들에 의하면, 모든 액세스 권한들이 임의의 자원들에 대해 제거될 수도 있고 사전에 개방된 자원들에 대한 임의의 액세스(예컨대, 판독 및/또는 기록 액세스)가 종료될 수도 있다.
대표적인 실시예에서는, 상호접속된 프로세스들 사이에서 자원들을 공유하는 방법이 제공된다. 상기 방법은 하나 이상의 자원들을 관리하는 적어도 하나의 제1 프로세스로부터 요청을 수신하는 단계를 포함할 수 있다. 상기 요청은 적어도 제2 프로세스와 상기 자원들 중 적어도 하나의 자원을 공유하도록 하는 적어도 하나의 권한들의 할당을 요청하는 데이터를 포함할 수 있다. 상기 방법은 상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들을 할당하는 단계 및 제1 메시지의 수신시 상기 제2 프로세스로부터 상기 자원을 공유하도록 하는 상기 권한들을 해지하는 단계를 더 포함할 수 있다.
다른 대표적인 실시예에서는, 상호접속된 프로세스들 사이에서 자원들을 공유하는 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은 컴퓨터-실행가능 프로그램 코드 명령어들이 저장된 적어도 하나의 컴퓨터-판독가능 저장 매체를 포함한다. 상기 컴퓨터-실행가능 프로그램 코드 명령어들은 하나 이상의 자원들을 관리하는 적어도 하나의 제1 프로세스로부터 요청을 수신하는 프로그램 코드 명령어들을 포함할 수 있다. 상기 요청은 적어도 제2 프로세스와 상기 자원들 중 적어도 하나의 자원을 공유하도록 하나 이상의 권한들의 할당을 요청하는 데이터를 포함할 수 있다. 상기 프로그램 코드 명령어들은 또한 상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들을 할당하는 프로그램 코드 명령어들 및 제1 메시지의 수신시 상기 제2 프로세스로부터 상기 자원을 공유하도록 하는 상기 권한들을 해지하는 프로그램 코드 명령어들을 제공할 수도 있다.
다른 대표적인 실시예에서는, 상호접속된 프로세스들 사이에서 자원들을 공유하는 장치가 제공된다. 상기 장치는 프로세서 및 실행가능한 명령어들이 저장된 메모리를 포함할 수 있으며, 상기 실행가능한 명령어들은 상기 프로세서에 의한 실행에 응답하여 상기 장치로 하여금 적어도, 하나 이상의 자원들을 관리하는 적어도 하나의 제1 프로세스로부터 요청을 수신하는 동작을 포함하는 동작들을 수행하게 한다. 상기 요청은 적어도 제2 프로세스와 상기 자원들 중 적어도 하나의 자원을 공유하도록 하는 하나 이상의 권한들의 할당을 요청하는 데이터를 포함할 수 있다. 상기 명령어들은 부가적으로 상기 장치로 하여금 상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들을 할당하는 동작을 수행하게 할 수 있고 제1 메시지의 수신시 상기 제2 프로세스로부터 상기 자원을 공유하도록 하는 상기 권한들을 해지하는 동작을 수행하게 할 수 있다.
본 발명의 실시예들은 안전하고 유연한 방식으로 서로 간에 자원들을 공유하는 방법, 컴퓨터 프로그램 제품 및 장치를 제공할 수 있다. 그 결과로, 예를 들면, 장치 사용자들은 프로세스간 통신 채널을 통해 자원들을 획득할 수 있는 개선된 능력을 향유할 수 있다.
본 발명의 실시예들은 안전하고 유연한 방식으로 서로 간에 자원들을 공유하게 함으로써, 예를 들면, 장치 사용자들이 프로세스간 통신 채널을 통해 자원들을 획득할 수 있는 개선된 능력을 향유할 수 있게 해 준다.
지금까지 일반적인 관점에서 본 발명을 설명하였지만, 지금부터는 반드시 일정한 비율로 도시될 것을 요하지 않는 첨부도면들이 참조될 것이다.
도 1은 본 발명의 대표적인 실시예에 따른 통신 시스템의 일례를 예시한 도면이다.
도 2는 본 발명의 대표적인 실시예에 따른 프로세스간 통신을 통해 자원들을 공유하는 장치를 개략적인 블록 다이어그램으로 예시한 도면이다.
도 3은 본 발명의 대표적인 실시예에 따른 프로세스간 통신을 통해 자원에 대한 액세스 권한들을 공유하는 것을 예시한 도면이다.
도 4는 본 발명의 대표적인 실시예에 따른 프로세스간 통신을 통해 메모리를 공유하는 방법에 관련된 신호 흐름도이다.
도 5는 본 발명의 대표적인 실시예에 따른 프로세스간 통신을 통해 파일(들)을 공유하는 방법에 관련된 신호 흐름도이다.
지금부터 본 발명의 실시예들은 본 발명의 일부 실시예들이 도시되어 있지만 본 발명의 모든 실시예들이 도시된 것이 아닌 첨부도면들을 참조하여 이하에서 좀더 상세하게 설명될 것이다. 실제로, 본 발명의 실시예들은 다른 여러 형태들로 구현될 수 있으므로 본원 명세서에 기재된 실시예들에 국한되는 것으로서 이해되어선 안 되며, 오히려 이러한 실시예들은 본원 명세서가 적용가능한 법적 요건들을 충족시키도록 제공된 것이다. 본원 명세서 전반에 걸쳐, 동일 부호들은 동일 요소들을 지칭한다. 본원 명세서에서 사용되는 용어들, 즉 "데이터", "콘텐츠", "정보" 및 유사한 용어들은 본 발명의 실시예들에 따라 전송, 수신 및/또는 저장될 수 있는 데이터를 지칭하도록 상호 교환 방식으로 사용될 수 있다. 더욱이, 본원 명세서에서 사용되는 "대표적인(exemplary)"이라는 용어는 정량적인 평가를 의미하도록 제공된 것이 아니고 그 대신에 일례의 한가지 예시를 의미하도록 제공된 것뿐이다. 따라서, 그러한 용어들의 사용은 본 발명의 실시예들의 사상 및 범위를 제한하도록 취해져선 안 된다.
도 1에는 이동 단말기(10)와 같은 장치가 대표적인 통신 환경에서 도시된 일반적인 시스템 다이어그램이 예시되어 있다. 도 1에 도시된 바와 같이, 본 발명의 대표적인 실시예에 따른 시스템의 한 실시예는 네트워크(30)를 통해 서로와의 통신이 가능한 제1 통신 장치(예컨대, 이동 단말기(10)) 및 제2 통신 장치(20)를 포함할 수 있다. 몇몇 경우들에 있어서, 본 발명의 실시예들은 하나 이상의 추가 통신 장치들을 더 포함할 수 있는데, 이러한 하나 이상의 추가 통신 장치들 중 하나가 도 1에서 제3 통신 장치(25)로서 나타나 있다. 몇몇 실시예들에서는, 본 발명의 실시예들을 채용하는 시스템들이 본원 명세서에 예시 및/또는 설명된 모든 장치들을 모두 포함하지 않아도 된다. 이동 단말기(10) 및/또는 제2 및 제3 통신 장치들(20,25)의 몇몇 실시예들이 예시될 수 있고 예를 들어 설명될 수 있지만, 휴대 정보 단말기(portable digital assistant; PDA)들, 페이저들, 이동 텔레비전들, 이동 전화들, 게임 장치들, 랩톱 컴퓨터들, 카메라들, 비디오 레코더들, 오디오/비디오 플레이어들, 라디오들, 위성 위치 확인 시스템(Global Positioning System; GPS) 장치들, 블루투스 헤드셋들, 유니버설 시리얼 버스(Universal Serial Bus; USB) 장치들 또는 앞서 언급된 것들의 임의 조합, 및 다른 타입들의 음성 및 텍스트 통신 시스템들에는 본 발명의 실시예들이 용이하게 채용될 수 있다.
네트워크(30)에는 해당하는 유선 및/또는 무선 인터페이스들을 통해 서로 통신할 수 있는 (제2 및 제3 통신 장치들(20,25)이 예들일 수 있는) 다른 여러 노드들, 장치들 또는 기능들의 집합체가 포함될 수 있다. 이 때문에, 도 1의 예시는 시스템의 특정 요소들의 거시적 측면의 일례이고 시스템 또는 네트워크(30)의 총괄적이거나 세부적인 측면 모두는 아닌 것으로 이해되어야 한다. 반드시 필요하지는 않지만, 몇몇 실시예들에서는, 네트워크(30)가 다수의 1-세대(1G), 2-세대(2G), 2.5G, 3-세대(3G), 3.5G, 3.9G, 4-세대(4G) 이동 통신 프로토콜들, 장기 진화(Long Term Evolution; LTE), 및/또는 이와 유사한 것 중 어느 하나 이상의 것들에 따른 통신을 지원하는 것이 가능할 수 있다. 몇몇 실시예들에서는, 네트워크(30)가 점-대-점(point-to-point; P2P) 네트워크일 수 있다.
이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)과 같은 하나 이상의 통신 단말기들은 네트워크(30)를 통해 서로 통신할 수 있으며 각각은, 예를 들면 하나 이상의 셀룰러 또는 이동 네트워크들 중 일부인 기지국 또는 근거리 통신 네트워크(Local Area Network; LAN)와 같은 데이터 네트워크, 도시권 통신 네트워크(Metropolitan Area Network; MAN), 및/또는 인터넷과 같은 광역 통신 네트워크(Wide Area Network; WAN)에 연결될 수 있는 액세스 포인트(access point)일 수 있는 기지 사이트(base site)로부터 신호들을 수신하고 상기 기지 사이트에 신호들을 전송하기 위한 안테나 또는 안테나들을 포함할 수 있다. 또한, 처리 요소들(예컨대, 개인용 컴퓨터들, 서버 컴퓨터들 또는 이와 유사한 것들)과 같은 다른 장치들이 네트워크(30)를 통해 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)에 연결될 수 있다. 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)(및/또는 다른 장치들)을 네트워크(30)에 직접 또는 간접적으로 접속함으로써, 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)은, 예를 들면 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol; HTTP) 및/또는 이와 유사한 것을 포함하는 여러 통신 프로토콜들에 따라 다른 장치들과 통신하거나 또는 서로 간에 통신하여 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)의 여러 통신 및 다른 기능들을 각각 수행하도록 허용될 수 있다.
더군다나, 비록 도 1에는 도시되어 있지는 않지만, 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)은 예를 들면 무선 주파수(radio frequency; RF), 블루투스(Bluetooth), 적외선(Infrared; IR) 또는 LAN, 무선 LAN(WLAN), WiMAX(Worldwide Interoperability for Microwave Access), WiFi, 초광대역(Ultra-Wide Band; UWB), 와이브리(Wibree) 기법들 및/또는 이와 유사한 것을 포함하는 다수의 다른 유선 또는 무선 통신 기법들 중 어느 하나에 따라 통신할 수 있다. 이 때문에, 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)은 다른 여러 액세스 메커니즘들 중 어느 하나에 의해 네트워크(30)와 통신하고 그리고 서로 간에 통신하도록 허용될 수 있다. 예를 들면, 광대역 코드 분할 다중 액세스(Wideband Code Division Multiple Access; W-CDMA), CDMA2000, 이동 통신 세계화 시스템(Global System for Mobile Communication; GSM), 일반 패킷 무선 서비스(General Packet Radio Service; GPRS) 및/또는 이와 유사한 것과 같은 이동 액세스 메커니즘들은, WLAN, WiMAX, 및/또는 이와 유사한 것과 같은 무선 액세스 메커니즘들 및 디지털 가입자 회선(Digital Subscriber Line; DSL), 케이블 모뎀들, 이더넷 및/또는 이와 유사한 것과 같은 고정 액세스 메커니즘들과 함께, 지원될 수 있다. 그 외에도, 여기서 알아야 할 점은 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)이 하나 이상의 통신 채널들을 통해 서로 통신할 수 있다는 점이다. 이와 관련하여, 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)은 프로세스간 통신 채널들로서 지정된 하나 이상의 통신 채널들을 이용하여 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25) 내에서 실행될 수 있는 하나 이상의 프로세스들 사이에서와 아울러, 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)의 외부에 존재할 수 있는 하나 이상의 프로세스들 사이에서 자원들을 공유할 수 있다.
대표적인 실시예들에서는, 제1 통신 장치(예컨대, 이동 단말기(10))가 예를 들면 개인 휴대 정보 단말기(personal digital assistant; PDA), 무선 전화, 이동 컴퓨팅 장치, 카메라, 비디오 레코더, 오디오/비디오 플레이어, 위치 확인 장치, 게임 장치, 라디오 장치, 또는 다른 여러 유사한 장치들 또는 이들의 조합과 같은 이동 통신 장치일 수 있다. 제2 통신 장치(20)는 이동 또는 고정 통신 장치일 수 있다. 그러나, 한 실시예에서는, 제2 통신 장치(20)가 개인용 컴퓨터(PC) 또는 랩톱 컴퓨터와 같은 단말기 또는 원격 컴퓨터일 수 있다.
대표적인 실시예에서는, 네트워크(30)가 스마트 공간(smart space)이 되도록 구성된 애드 혹(ad hoc) 또는 분산 네트워크(distributed network)일 수 있다. 따라서, 장치들이 네트워크(30)에 진입 및/또는 탈출할 수 있고 네트워크(30)의 장치들은 개별 장치들 또는 노드들 및 이들에 해당하는 기능들의 추가 또는 제거에 대한 원인으로 다른 장치들의 진입 및/또는 탈출에 기반하여 동작들을 조정하는 것이 가능할 수 있다. 대표적인 실시예에서는, 네트워크(30)와 통신하는 하나 이상의 장치들이 프로세스간 엔진을 이용하여 장치들(예컨대, 이동 단말기(10), 제2 및 제3 통신 장치들(20,25)) 상에서 실행되는 하나 이상의 상호접속 장치들(예컨대, 애플리케이션들, 프로그램의 인스턴스들 또는 이와 유사한 것들) 사이에서 자원들을 공유하는 것을 용이하게 하는 데 도움을 줄 수 있다. 그러한 프로세스간 엔진은 상호접속 프로세스들 사이에서 안전하고 유연한 방식으로 하나 이상의 파일들, 하나 이상의 메모리들 또는 메모리 오브젝트들, 하나 이상의 디렉토리들, 및/또는 하나 이상의 소켓들 및 다른 로컬 자원들과 같은 자원들을 공유하는 것을 용이하게 할 수 있다. 이 때문에, 예를 들면, 장치의 프로세스는 프로세스간 엔진을 이용하여 다른 장치로부터 하나 이상의 자원들을 요청할 수 있으며 장치의 프로세스는 또한 프로세스간 엔진을 이용하여 하나 이상의 자원들에 대한 액세스를 거부할 수 있다. 대표적인 실시예에서는, 이동 단말기(10) 및 제2 및 제3 통신 장치들(20,25)은 프로세스간 엔진을 포함하도록 구성될 수 있다. 위에서 지적한 바와 같이, 대표적인 실시예에서는, 프로세스들이 특정 장치에 대해 로컬 관계에 있기 때문에 프로세스간 엔진은 도 1의 네트워크에 대한 임의의 접속에 관련해서나 도 1의 네트워크에 대한 임의의 접속에 무관하게 프로세스들 또는 애플리케이션들 사이에서 자원들을 공유하는 것을 용이하게 할 수 있으므로 도 1에서는 그러한 장치들이 종종 발견될 수 있는 전형적인 환경 내에서 본 발명의 실시예를 채용할 수 있는 몇몇 장치들의 일례를 제공하는 것임을 이해하여야 한다.
도 2에는 본 발명의 전형적인 실시예에 따른, 상호접속 프로세스들 사이에서 안전하고 유연한 방식으로 하나 이상의 자원들을 공유하는 것을 용이하게 하는 장치가 개략적인 블록 다이어그램으로 예시되어 있다. 도 2를 참조하여 본 발명의 대표적인 실시예가 지금부터 설명될 것인데, 도 2에서는 상호접속 프로세스들 사이에서 하나 이상의 자원들을 공유하는 것을 용이하게 하는 장치(50)의 몇몇 요소들이 도시되어 있다. 도 2의 장치(50)는 예를 들면 이동 단말기(10)(및/또는 제2 통신 장치(20) 또는 제3 통신 장치(25)) 상에서 이용될 수 있다. 변형적으로는, 장치(50)가 네트워크(30)의 네트워크 장치 상에서 구현될 수 있다. 그러나, 장치(50)는 변형적으로 (예를 들면 위에서 열거된 장치들 중 어느 하나와 같은) 이동식 및 고정식의 다른 여러 장치들에서 구현될 수 있다. 몇몇 경우들에서는, 실시예들이 장치들의 조합 상에서 이용될 수 있다. 따라서, 본 발명의 몇몇 실시예들은 단일의 장치(예컨대, 이동 단말기(10))에서, 분산 방식으로 이루어진 복수의 장치들에 의해서(P2P 네트워크에서의 하나 또는 복수의 장치들을 통해서) 또는 클라이언트/서버 관계를 이루는 장치들에 의해서 완전하게 구현될 수 있다. 더군다나, 여기서 유념해야 할 점은 이하에서 설명되는 장치들 또는 요소들이 반드시 필수적인 것이 아니므로 장치들 또는 요소들 중 일부가 특정 실시예들에서는 생략될 수 있다는 점이다.
지금부터 도2를 참조하면, 도 2에는 상호접속 프로세스들 사이에서 하나 이상의 자원들을 공유하는 것을 용이하게 하는 장치(50)가 제공되어 있다. 장치(50)는 프로세서(70), 사용자 인터페이스(72), 통신 인터페이스(74) 및 메모리 장치(76)를 포함할 수도 있고 이와는 달리 프로세서(70), 사용자 인터페이스(72), 통신 인터페이스(74) 및 메모리 장치(76)와 통신할 수도 있다. 메모리 장치(76)는 예를 들면 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있다. 메모리 장치(76)는 상기 장치가 본 발명의 대표적인 실시예들에 따른 여러 기능들을 수행할 수 있게 하기 위해 정보, 데이터, 파일들, 디렉토리들, 애플리케이션들, 하나 이상의 프로세스들(예컨대, 프로세스(83)), 명령어들 또는 이와 유사한 것들을 저장하도록 구성될 수 있다. 예를 들면, 메모리 장치(76)는 프로세서(70)에 의한 처리를 위한 입력 데이터를 버퍼링하도록 구성될 수 있다. 그 외에도, 즉 변형적으로는, 메모리 장치(76)가 프로세서(70)에 의한 실행을 위한 명령어들을 저장하도록 구성될 수 있다. 또 다른 변형예로서는, 메모리 장치(76)가 정보 및/또는 미디어 콘텐츠를 저장하는 복수의 데이터베이스들 중 하나일 수 있다.
프로세서(70)는 다른 여러 방식들로 구체화될 수 있다. 예를 들면, 프로세서(70)는 프로세싱 요소, 코프로세서, 제어기 또는 예를 들면 주문형 반도체(application specific integrated circuit; ASIC), 필드 프로그램가능 게이트 어레이(field programmable gate array; FPGA), 하드웨어 가속기, 또는 이와 유사한 것과 같은 집적회로들을 포함하는 다른 여러 프로세싱 장치들로서 구현될 수 있다. 대표적인 실시예에서는, 프로세서(70)가 메모리 장치(76)에 저장되거나 이와는 달리 프로세서(70)가 이용할 수 있는 명령어들을 실행하도록 구성될 수 있다. 이 때문에, 하드웨어 또는 소프트웨어 방식들로 구성되든, 또는 이들의 조합에 의해 구성되든, 프로세서(70)는 본 발명의 실시예들에 따라 구성되면서 본 발명의 실시예들에 따른 동작들을 실행하는 것이 가능한 (예컨대, 실제로 회로로 구현되는) 엔티티(entity)를 나타낼 수 있다. 따라서, 예를 들면, 프로세서(70)가 ASIC, FPGA 또는 이와 유사한 것으로서 구현될 경우에, 프로세서(70)는 본원 명세서에 기술된 동작들을 수행하기 위한 특정하게 구성된 하드웨어일 수 있다. 변형적으로는, 다른 일례로서, 프로세서(70)가 소프트웨어 명령어들의 실행자로서 구현될 경우에, 상기 명령어들은, 본원 명세서에서 설명되는 알고리즘들 및 동작들을 수행하기 위해, 상기 명렁어들에 의해 제공되는 특정 구성을 위한 것이 아닌 경우에 달리 범용 프로세싱 요소 또는 기능적으로 구성가능한 다른 회로일 수도 있는 프로세서(70)를 특정하게 구성할 수 있다. 그러나, 몇몇 경우들에서는, 프로세서(70)가 본원 명세서에서 설명되는 알고리즘들 또는 동작들을 수행하기 위한 명령어들에 의한 프로세서(70)의 부가적인 구성을 통해 본 발명의 실시예들을 이용하기에 적합한 특정 장치(예컨대, 이동 단말기)의 프로세서일 수 있다.
한편, 통신 인터페이스(74)는, 장치(50)와 통신하는 네트워크 및/또는 다른 임의의 장치 또는 모듈로부터/로 데이터를 수신 및/또는 전송하도록 구성되는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합 중 어느 하나에서 구현되는 장치 또는 회로와 같은 임의 수단일 수 있다. 이와 관련하여, 통신 인터페이스(74)는 예를 들면 무선 통신 네트워크(예컨대, 네트워크(30))와의 통신을 허용하기 위한 안테나(또는 다수의 안테나들) 및 지원용 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 통신 인터페이스(74)는 하나 이상의 통신 채널들을 통해 데이터를 수신 및/또는 전송할 수 있다. 이와 관련하여, 통신 인터페이스(74)는 프로세스간 통신 채널(들)로서 지정된 통신 채널(들)을 통해 상호접속 프로세스들 사이에서 하나 이상의 자원들을 전달 또는 제공할 수 있지만, 반드시 프로세스간 통신 채널(들)로서 지정된 통신 채널(들)을 통해 상호접속 프로세스들 사이에서 하나 이상의 자원들을 전달 또는 제공할 필요는 없다. 고정 환경에서는, 통신 인터페이스(74)가 변형적으로나 또한 유선 통신을 지원할 수 있다. 이 때문에, 통신 인터페이스(74)는 케이블, 디지털 가입자 회선(DSL), 유니버설 시리얼 버스(USB), 이더넷 또는 다른 메커니즘을 통해 통신을 지원하기 위한 통신 모뎀 및/또는 다른 하드웨어/소프트웨어를 포함할 수 있다.
사용자 인터페이스(72)는 프로세서(70)와 통신하여 사용자 인터페이스(72)에서의 사용자 입력의 표시를 수신하며 그리고/또는 가청적, 가시적, 기계적 또는 다른 출력을 사용자에게 제공할 수 있다. 이 때문에, 사용자 인터페이스(72)는 예를 들면 키보드, 마우스, 조이스틱, 디스플레이, 터치 스크린, 마이크로폰, 스피커, 또는 다른 입력/출력 메커니즘들을 포함할 수 있다. 상기 장치가 서버 또는 기타 네트워크 장치들로서 구현되는 대표적인 실시예에서는, 사용자 인터페이스(72)가 제한될 수도 있고 원격 배치될 수도 있으며, 제거될 수도 있다.
대표적인 실시예에서는, 프로세서(70)가 프로세스간 엔진(80)으로서 구현될 수도 있고 프로세스간 엔진(80)을 포함할 수도 있으며 이와는 달리 프로세스간 엔진(80)을 제어할 수도 있다. 프로세스간 엔진(80)은 소프트웨어에 따라 동작하거나 이와는 달리 하드웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현되는 장치 또는 회로와 같은 임의의 수단(예컨대, 소프트웨어 제어 하에서 동작하는 프로세서(70), 본원 명세서에서 설명되는 동작들을 수행하도록 특정하게 구성된 ASIC 또는 FPGA로서 구현되는 프로세서(70), 또는 이들의 조합)임으로써, 이하에서 설명되는 프로세스간 엔진(80)의 해당 기능들을 수행하도록 그러한 장치 또는 회로를 구성할 수 있다. 따라서, 소프트웨어가 이용되는 예들에서는, 소프트웨어를 실행하는 장치 또는 회로(예컨대, 한 예에서는 프로세서(70))는 그러한 수단에 관련된 구조물을 형성한다. 이와 관련하여, 예를 들면, 프로세스간 엔진(80)은 그중에서도 특히 상호접속 프로세스들 사이에서 안전하고 유연한 방식으로 하나 이상의 자원들을 공유하는 기능을 제공하도록 구성될 수 있다.
몇몇 실시예들에서는, 프로세스간 엔진(80)이 (또한 본원 명세서에서 애플리케이션들로서 언급되는) 하나 이상의 프로세스들(82,84)과 통신할 수 있다. 도 2의 대표적인 실시예에서는 프로세스간 엔진(80)이 2개의 프로세스들(즉, 프로세스들(82,84))과 통신할 수 있음이 도시되어 있지만, 여기서 알아야 할 점은 프로세스간 엔진(80)이 본 발명의 사상 및 범위로부터 벗어나지 않고서도 다수의 프로세스들과 통신할 수 있다는 점이다. 예를 들면, 위에서 설명한 바와 같이, 메모리 장치(76)는 하나 이상의 프로세스들(예컨대, 프로세스(83))을 포함할 수 있으며 프로세스간 엔진(80)은 메모리 장치(76)의 프로세스들과 아울러 다른 임의의 프로세스들과 통신할 수 있다. 프로세스들(82,84)은 장치(50)(예컨대, 이동 단말기(10)의 외부에 배치될 수 있지만, 반드시 장치(50)(예컨대, 이동 단말기(10)의 외부에 배치될 필요는 없으며 이와 관련하여, 프로세스들(82,84)은 통신 인터페이스(74), 좀더 구체적으로는 예를 들면 프로세스간 통신 채널과 같은 통신 채널을 통해 프로세스간 엔진(80)(및/또는 프로세서(70))과 통신할 수 있다. 대표적인 실시예에서는, 프로세스들(82,84) 양자 모두가 제2 통신 장치(20)에 배치될 수도 있고 제3 통신 장치(25)에 배치될 수도 있다. 변형적으로는, 프로세스(82)는 제2 통신 장치(20)에 배치될 수 있고 프로세스(84)는 제3 통신 장치(25)에 배치될 수 있다. 그러나, 여기서 또한 알아야 할 점은 프로세스(82)가 제3 통신 장치(25)에 배치될 수 있으며 프로세스(84)가 제2 통신 장치(20)에 배치될 수 있다.
더욱이, 여기서 알아야 할 점은 전형적인 실시예들의 프로세스들이 프로세스간 엔진(80)을 통해, 하나 이상의 프로세스들 사이에서 자원들을 공유하는 것에 관련된 동작들을 조정할 수 있는 운영 체계(OS) 애플리케이션 프로그래밍 인터페이스(API)(85)와 통신할 수 있다는 점이다. 그러한 OS API(85)는 통신 장치(예컨대, 이동 단말기(10) 및/또는 제2 및 제3 통신 장치들(20,25))의 메모리에 저장되고 프로세서(70)에 의해 실행되는 명령어들로서 컴퓨터 프로그램 제품에 수록될 수 있다. 변형적으로는, 상기 OS API(85)는 프로세서(70)로서(예컨대, FPGA, ASIC, 또는 이와 유사한 것으로서) 구현될 수 있다. 추가로, 상기 OS API(85)는 소프트웨어에 따라 동작하거나 이와는 달리 하드웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현되는 임의의 장치 또는 회로임으로써, 본원 명세서에서 설명되는 OS API(85)의 해당 기능들을 수행하도록 그러한 장치 또는 회로를 구성할 수 있다. 비록 상기 OS API(85)가 도 2에 도시된 장치(50)의 외부에 배치되는 것으로 도시되어 있지만, 여기서 알아야 할 점은 상기 OS API(85)가 본 발명의 사상 및 범위로부터 벗어나지 않고서도 장치(50)의 내부에 배치될 수 있다는 점이다.
상기 OS API(85)는 서비스들 또는 데이터에 액세스하는 기능을 프로세스들에 제공하도록 구성될 수 있으며 시스템 호출들을 이용하여 프로세스들 사이에서 하나 이상의 자원들에 대한 매개변수들 및 액세스 권한들을 전달 또는 제공할 수 있다. 상기 OS API(85)는 개별 프로세스의 하나 이상의 자원들에 대한 액세스 권한들이 다른 프로세스에 부여되거나 다른 프로세스로부터 해지될 것을 요청하는 하나 이상의 프로세스들로부터 하나 이상의 호출들(또는 호출 함수들)을 수신할 수 있다. 이와 관련하여, 상기 OS API(85)는 한 프로세스(예컨대, 프로세스(83))에 의해 제어될 수 있는 하나 이상의 자원들에 대한 액세스 권한들을 다른 프로세스(예컨대, 프로세스(82))에 할당하여 그 자원이 이러한 프로세스들에 의해 공유될 수 있게 한다. 마찬가지로, 상기 OS API(85)는 프로세스에 부여된 하나 이상의 자원들에 대한 액세스 권한들을 해지할 수 있다. 이와 관련하여, 상기 OS API(85)는 프로세스들 사이에서 하나 이상의 자원들을 공유하는 것을 용이하게 했던 통신 채널을 폐쇄할 수 있다. 상기 OS API(85)가 그러한 통신 채널을 폐쇄할 경우에는 공유 자원들에 대한 액세스 권한들 모두가 해지될 수 있으며 그 자원들에 관한 계속중이거나 장래에 이루어질 동작들이 종료될 수 있다. 여기서 알아야 할 점은 상기 OS API(85)에 의해 수신되는 호출들 또는 메시지들은 프로세스간 엔진(80)에 의해 생성될 수 있다.
추가로, 여기서 알아야 할 점은 상기 OS API(85)가 하나 이상의 운영 체계들과 통신할 수 있다는 점이다. 이와 관련하여, 상기 OS API(85)는 Unix용 휴대용 운영 체계 인터페이스(Portable Operating System Interface for Unix; POSIX) 및 UNIX OS, Linux OS), 버클리 소프트웨어 배포(Berkeley Software Distribution; BSD) OS, 마이크로소프트 윈도우즈 OS, Mac OS, 또는 다른 임의의 적합한 운영 체계와 완전하게 또는 부분적으로 호환가능한 임의의 OS를 포함하지만 이들에 국한되지 않는 상이한 운영 체계들과 통신할 수 있다. 대표적인 실시예에서는, 상기 OS API(85)가 대표적인 실시예의 프로세스들이 서로 통신할 수 있게 하도록 이용될 수 있지만, 그러한 프로세스들 중 일부 또는 모두가 상이한 운영 체계들에서 실행될 수 있다. 예를 들면, 상기 OS API(85)에 관련된 소프트웨어는 상기 OS API(85)가 특정 운영 체계와는 독립적으로 동작할 수 있게 하는 방식으로 기록될 수 있다.
장치(50)의 프로세스간 엔진(80)은 하나 이상의 프로세스들(예컨대, 프로세스(83) 간의 로컬 소켓 접속을 개방하여 프로세스(예컨대, 프로세스(83))가 소유 또는 관리하는 하나 이상의 자원들에 대한 액세스 권한들을 생성하도록 구성될 수 있으며 상기 자원들이 다른 프로세스들(예컨대, 프로세스(82))과 공유될 수 있게 하기 위해 상기 액세스 권한들을 상기 OS API(85)에 전송 또는 전달할 수 있다. 예를 들면, 위에서 설명한 바와 같이, 프로세스간 엔진(80)에 의해 생성된 액세스 권한들은 상기 OS API(85)에 의해 수신될 수 있으며 상기 OS API(85)는 하나 이상의 자원들이 프로세스들 간에 공유될 수 있게 하는 다른 프로세스에 상기 액세스 권한들을 할당할 수 있다. 추가로, 프로세스간 엔진(80)은 한 프로세스에 부여되었던 이전에 부여된 액세스 권한들을 해지하고 한 프로세스에 부여되었던 이전에 부여된 액세스 권한들에 관한 계속중이거나 장래에 이루어질 동작들을 종료시킬 수 있다. 이와 관련하여, 프로세스간 엔진(80)은 한 프로세스가 소유 또는 관리하는 자원에 대한 액세스 권한들을 종료 또는 거부하도록 하는 요청을 상기 OS API(85)에 전송 또는 전달할 수 있고 이와 관련하여 상기 OS API(85)는 한 프로세스에 이미 부여되었던 자원(들)에 대한 액세스 권한들을 해지할 수 있다. 이와 관련하여, 한 프로세스에 부여된 자원들에 대한 액세스 권한들이 상기 OS API(85)에 의해 해지될 경우에, 상기 액세스 권한들이 종료되며 이러한 프로세스가 현재 사용하고 있는 상기 자원들의 계속중인 동작들은 종료된다. 또한 여기서 알아야 할 점은 프로세스간 엔진(80)은 하나 이상의 함수 호출들을 이용하여, 이하에서 좀더 상세하게 설명되겠지만 하나 이상의 자원들에 대한 액세스 권한들을 허용하도록 하거나 상기 OS API(85)가 수신한 하나 이상의 자원들에 대한 액세스 권한들을 종료하도록 하는 요청들을 전송할 수 있다.
도 3에는 프로세스간 통신을 통해 하나 이상의 프로세스들에 의해 자원(들)에 대한 액세스 권한들이 공유되는 것에 관련된 대표적인 실시예가 예시되어 있다. 도 3의 대표적인 실시예에서 알아야 할 점은 프로세스들(87,88,89)이 예를 들면 장치(50)와 같은 단일의 장치에 의해 유지될 수 있다는 점이다. 변형적으로는, 프로세스들(87,88,89) 각각이 이동 단말기(10), 제2 통신 장치(20) 및 제3 통신 장치(25) 중 어느 하나에 의해 유지될 수 있다. 추가로, 여기서 알아야 할 점은 (또한 인증된 프로세스간 통신 채널로서 언급되는) 통신 채널(71)이 개방된다는 점이고 이와 관련하여 프로세스들(87,88,89)이 서로 통신할 수 있고 또한 통신 채널을 통해 상기 OS API(85)와 통신할 수 있다. 자원(들)(81)은 하나 이상의 메모리들 또는 메모리 오브젝트들, 하나 이상의 파일들, 하나 이상의 디렉토리들, 하나 이상의 소켓들 또는 다른 임의의 적합한 자원들을 포함할 수 있지만 이들에 국한되지 않는다. 프로세스(87)는 프로세스(87)가 자원(들)(81)과 통신하는 것(77)으로 나타낸 바와 같이 하나 이상의 자원들(81)을 소유 또는 관리할 수 있고 이와 관련하여 자원(87)을 유지하는 장치(예컨대, 이동 단말기(10))에 관련된 프로세스간 엔진(80)은 프로세스들(88,89)이 자원(들)(81)을 프로세스(87)와 공유할 수 있게 하는 자원(들)(81)에 대한 액세스 권한들을 생성할 수 있다.
이와 관련하여, 프로세스간 엔진(80)은 통신 채널(71)을 통해 상기 OS API(85)에게 자원(들)(81)이 프로세스들(88,89)에 의해 공유될 수 있게 하도록 지시하는 OS API(85)에 요청(78)을 전송할 수 있다. 이와 관련하여, 상기 OS API(85)는 자원(들)(81)에 대한 액세스 권한들을 프로세스들(88,89)에 할당할 수 있다. 상기 OS API(85)는 각각의 프로세스가 프로세스들(88,89)에 각각 통신들(73,75)을 전송함으로써 자원(들)(81)을 공유할 액세스 권한들을 갖는다는 것을 프로세스들(88,89)에 통지할 수 있다. 이와 관련하여, 프로세스들(88,89)은 자원(들)(81)의 사용자들일 수 있다. 비록 도 3에는 도시되어 있지 않지만, 프로세스간 엔진(80)은 또한 프로세스들(88,89)에 의한 자원(들)(81)의 공유를 종료하도록 하는 요청을 상기 OS API(85)에 전송할 수 있고 이와 관련하여 상기 OS API(85)는 프로세스들(88,89)에 대한 자원(들)(81)에 대한 액세스를 종료시킬 수 있는 자원(들)(81)을 사용할 액세스 권한들을 해지할 수 있다. 이 때문에, 프로세스들(88,89)이 자원(들)(81)(예컨대, 메모리)에 대한 액세스를 요청하는 동작들(예컨대, 판독 및/또는 기록 동작들)을 수행하고 있는 경우에, 이러한 동작들은 이루어지지 않을 수 있다. 추가로, 대표적인 변형 실시예에서 알아야 할 점은 프로세스들(87,88,89) 각각이 프로세스들(88,89)을 유지하는 장치들(예컨대, 제2 및 제3 통신 장치들(20,25))이 예를 들면 약 10 미터의 거리에 걸쳐 다른 장치들(예컨대, 프로세스(87)를 유지할 수 있는 이동 단말기(10))과 데이터를 교환할 수 있는 근접장 통신 장치들일 수 있다는 점이다.
지금부터 도 4를 참조하면, 도 4에는 대표적인 실시예에 따른 프로세스간 통신을 통해 예를 들면 메모리 또는 메모리 오브젝트와 같은 자원을 공유하는 메커니즘에 대한 신호 흐름이 제공되어 있다. 여기서 알아야 할 점은 도 4에서 공유되는 자원들로서 설명되는 메모리가 예시를 위한 것이고 제한하고자 한 것이 아니라는 점이고 이와 관련하여 도 4의 자원은 하나 이상의 파일들, 하나 이상의 디렉토리들, 하나 이상의 파이프들(예컨대, 소켓들), 또는 다른 임의의 자원들을 포함할 수 있지만, 이들에 국한되지는 않는다. 이러한 실시예에 의하면, 단계 1에서 프로세스들 1 및 2(예컨대, 프로세스들(83,82) 각각)는 개방 프로세스간 통신 채널(예컨대, 프로세스간 통신 채널(71))을 통해 통신하도록 로컬 소켓을 각각 개방할 수 있다. 여기서 알아야 할 점은 도 4에 대해 설명된 프로세스들 1 및 2에 관련된 기능들 각각이 프로세스간 엔진(80)과 같은 프로세스간 엔진에 의해 수행될 수 있다는 점이다. 단계 2에서, 프로세스 1은 프로세스 1이 메모리 또는 메모리 오브젝트와 같은 프로세스 1의 제어 하에서 하나 이상의 자원들을 공유하기를 원하는 것으로 판단할 수 있고 이와 관련하여 프로세스 1은 "myregion"이라 지칭된 공유 메모리(shm)를 개방 및 생성하기 위한 파일 디스크립터(file descriptor; fd)를 생성하도록 OS API에 요청할 수 있다. OS API는 프로세스 1에 대하여 메모리에 대한 판독 및/또는 기록(RDWR) 액세스 권한들을 부여할 수 있다. 이는 프로세스 1 자체가 그러한 액세스 권한들을 다른 프로세스들에 잔달할 수 있기 전에 개방된 자원에 필요한 액세스 권한들을 지니게 한다. 단계 3에서, 프로세스 1은 "myregion"이라 지칭된 공유 메모리의 크기를 규정하는 호출 함수를 생성할 수 있다.
단계 4에서는, 프로세스 1이 "myregion" 공유 메모리를 프로세스 1의 가상 메모리에 매핑할 것을 OS API에 요청할 수 있다. OS API는 매핑된 공유 메모리에 대한 메모리 어드레스를 (예컨대, "rptr" 포인터를 통해) 회신할 수 있다. 이러한 예에서의 액세스 권한들은 공유 메모리에 대한 판독 및/또는 공유 메모리에 대한 기록에 관련된 것들이다. 단계 5에서, 프로세스 1은 프로세스간 통신 채널에 대한 디스크립터를 할당할 수 있으며 이는 프로세스간 통신 채널에 대한 메모리를 할당함으로써 상기 메모리가 단독으로 전달되게 할 수도 있으며 다른 프로세스(예컨대, 프로세스 2)와 공유되게 할 수도 있다. 동시에, 프로세스 1은, 공유 메모리에 대한 액세스 권한들이 프로세스간 통신 접속의 수명(예컨대, "bnd" 부울(Boolean))에 관련되는 지의 여부에 관계없이 그리고 프로세스 2가 자원에 대한 액세스 권한들을 다른 프로세스(예컨대, "fwd" 부울)에 포워드(forward)하는 지의 여부에 관계없이, 프로세스 2를 위한 공유 메모리에 대한 액세스 권한들(예컨대, 판독 전용, 기록 전용 또는 판독 및 기록 양자 모두, 예컨대, "O_RDWR)을 한정할 수 있다. 여기서 알아야 할 점은 예컨대 각각의 데이터 구조가 위의 정보(디스크립터, 액세스 권한들, 액세스 권한들의 수명, 액세스 권한들을 포워드 방식으로 전달할 수 있는 능력) 모두를 포함하는 데이터 구조 어레이를 제공함으로써 2개 이상의 자원들에 대한 액세스 권한들을 동시에 부여하는 것이 가능하다는 점이다. 추가로, 여기서 알아야 할 점은 액세스 권한들, 액세스 권한들의 수명 및 액세스 권한들을 포워드 방식으로 다른 프로세스에 전달할 수 있는 능력이 언제든지 변경될 수 있다(그러나 이는 그러한 변경이 이루어져야 할 때와 관련된 프로세스들 사이에서 소정의 동의 프로토콜/행위를 필요한 것이 일반적이다)는 점이다. 예를 들면 프로세스 1은 자신이 원하는 시간이면 언제든지 공유 메모리에 대한 액세스 권한들을 변경할 수 있다.
단계 6에서, 상기 OS API는 프로세스간 통신 채널을 사용하여 "myregion"이라 지칭된 메모리에 대한 판독 및 기록을 위한 액세스 권한들을 프로세스 2에 할당할 수 있다. 그러한 할당 전에, 상기 OS API는 요청된 액세스 권한들이 프로세스 1이 공유 자원에 대해 이미 가지고 있던 것들임을 체크할 수 있다. 이와 관련하여, 상기 OS API는 하나 이상의 원격 프로세스들에 자원(들)에 대한 액세스 권한들을 할당할 있는 새로운 API이다. 단계 7에서, 프로세스 2는 프로세스 2가 "myregion"이라 지칭된 공유 메모리에 액세스함을 표시 또는 검증하고 프로세스 2가 판독 및/또는 기록 액세스 권한들을 가지고 있음을 명시하는 파일 디스크립터(fd)를 OS API로부터 요청할 수 있다. 단계 8에서, OS API는 프로세스 2가 "myregion"이라 지칭된 메모리에 대한 액세스 권한들을 가지고 있음을 보장하도록 체크할 수 있다. 선택적으로는, 단계 9에서, 프로세스 2가 메모리에 대한 액세스 권한들을 가지고 있음을 상기 OS API가 판단할 경우에, 상기 OS API는, 프로세스 2가 메모리에 대한 권한을 가지고 있음을 명시하고 상기 메모리가 성공적으로 개방되었음을 명시하는 데이터를 포함하는 파일 디스크립터를 생성할 수 있다. 상기 OS API는 상기 파일 디스크립터를 프로세스 2에 전송할 수 있다. 상기 파일 디스크립터는 또한 메모리에 대한 포인터를 제공할 수 있으며 메모리의 크기를 나타낼 수 있다. 여기서 알아야 할 점은 프로세스 2가 메모리에 대한 액세스 권한들을 지니고 있지 않음을 상기 OS API가 판단할 경우에 메모리의 개방이 이루어지지 않을 수 있으며 프로세스 2가 메모리에 대한 액세스 권한들을 지니고 있지 않음을 나타내는 파일 디스크립터(도시되지 않음)를 상기 OS API가 프로세스 2에 전송할 수 있다는 점이다. 단계 10에서, 프로세스 2는 "myregion"이라 지칭되는 공유 메모리를 프로세스 2의 가상 메모리에 매핑할 것을 상기 OS API에 요청할 수 있다. 프로세스 2는 또한 프로세스 2가 공유 메모리에 대한 판독 및/또는 기록 액세스 권한들을 갖기를 원한다는 것을 명시할 수 있다. 단계 11에서, 상기 OS API는 프로세스 1 및 프로세스 2 양자 모두로 하여금 부여된 액세스 권한들에 따라 공유 메모리에 대한 판독 및 기록을 수행할 수 있게 해 준다.
단계 12에서, 프로세스 2는 자신의 가상 메모리로부터 공유 메모리를 매핑하지 못하게 할 것을 OS API에 요청할 수 있다. 단계 13에서, 프로세스 2는 공유 메모리의 파일 디스크립터를 제공함으로써 공유 메모리를 해지할 것(예컨대, 공유 메모리의 공유를 중지할 것)을 OS API에 요청할 수 있다. 폐쇄(fd) 호출의 수신에 응답하여, 단계 14에서는, 프로세스 1이 공유 메모리의 파일 디스크립터를 제공함으로써 프로세스간 통신 채널로부터 공유 메모리에 대한 액세스 권한들을 해지할 것을 상기 OS API에 요청할 수 있다. 프로세스 2가 메모리의 공유를 중단했을 때를 알 수 있는 실제적인 방법은 그다지 의미가 없다. 예를 들면, 메모리의 공유는 프로세스 2가 사용 종료를 나타내는 프로세스간 통신 채널을 통해 메시지를 프로세스 1에 전송할 경우에 중단될 수 있다. 여기서 알아야 할 점은 프로세스 1이 프로세스간 통신 채널로부터 메모리에 대한 액세스 권한들을 해지함으로써 프로세스 2가 공유 메모리를 해지 또는 언링크(unlink)하기를 원한다는 것을 나타내는 프로세스 2로부터 전송된 파일 디스크립터를 포함하는 임의의 호출 또는 메시지를 상기 OS API가 수신함에 관계없이 메모리가 더이상 공유될 수 없게 된다는 점이다. 예를 들면, 프로세스 1은 소정의 시간에 공유 메모리에 대한 액세스 권한들을 해지할 수 있다. 추가로, 여기서 알아야 할 점은 프로세스 1이 프로세스 1이 관리하는 메모리 또는 다른 임의의 자원에 대한 액세스를 획득하도록 하는 프로세스 2에 의한 요청을 거부할 수 있다는 점이다.
프로세스간 통신 채널로부터 공유 메모리를 해지하도록 하는 요청을 수신함에 따라, 상기 OS API는 단계 15에서 프로세스 2로부터 "myregion"이라 지칭되는 공유 메모리에 대한 판독 및 기록에 관련된 액세스 권한들을 해지할 수 있다. 이와 관련하여, 상기 OS API는 하나 이상의 원격 프로세스들로부터 자원(들)에 대한 액세스 권한들을 해지 또는 해제할 수 있는 새로운 API이다.
단계 16에서, 프로세스 1은 자신의 가상 메모리로부터 "myregion"이라 지칭되는 메모리를 매핑하지 못하게 할 것을 상기 OS API에 요청할 수 있고 매핑되지 않게 하는 메모리에 대한 포인터를 제공할 수 있다. 단계 17에서, 프로세스 1은 프로세스 2와 공유되었던 메모리를 언링크할 것을 상기 OS API에 요청할 수 있다. 이와 관련하여, 프로세스 1이 관리하는 메모리에 관련된 모든 액세스 권한들이 프로세스 2로부터 해지된다. 단계 18에서, 프로세스 1은 공유 메모리를 해지할 것을 상기 OS API에 요청할 수 있다. 이 때문에, 프로세스 2에 의한 메모리에 대한 액세스 권한들(예컨대, 판독 및/기록)을 위한 차후의 호출들은 이루어지지 않을 수 있으며 프로세스 2에 의한 메모리의 사용에 관련된 임의의 동작들은 프로세스 2에 (예컨대, "fwd" 부울에 의해) 자원을 전달할 권한이 부여되지 않는 한 이루어지지 않을 수 있다.
지금부터 도 5를 참조하면, 도 5에는 대표적인 실시예에 따른 프로세스간 통신을 통해 예를 들면 파일(들)과 같은 하나 이상의 자원들을 공유하기 위한 신호 흐름이 제공되어 있다. 여기서 알아야 할 점은 도 5에서 공유되는 자원으로서 설명되는 파일이 예를 위한 것이며 제한하고자 한 것이 아니라는 점이고 이와 관련하여 도 5의 자원은 메모리, 메모리 오브젝트, 하나 이상의 디렉토리들, 하나 이상의 파이프들(예컨대, 소켓들), 또는 다른 임의의 로컬 자원들을 포함할 수 있지만, 이들에 국한되지 않는다. 이러한 실시예에 의하면, 단계 1에서, 프로세스들 1 및 2(예컨대, 프로세스들(83,82) 각각)는 개방 프로세스간 통신 채널(예컨대, 프로세스간 통신 채널(71))을 통해 통신하도록 로컬 소켓을 각각 개방할 수 있다. 여기서 알아야 할 점은 도 5와 관련하여 설명되는 프로세스들 1 및 2에 관련된 기능들 각각이 프로세스간 엔진(80)과 같은 프로세스간 엔진에 의해 수행될 수 있다는 점이다. 단계 2에서, 프로세스 1은 파일이 하나 이상의 다른 프로세스들과 공유될 수 있게 하기를 프로세스 1이 원한다는 것을 판단할 수 있다. 이와 관련하여, 프로세스 1은 프로세스 1이 특정 액세스 타입(예컨대, 판독, 기록 또는 판독 및 기록 양자 모두)에 대해 소유 또는 관리하는 "myfile"이라 지칭되는 파일을 개방할 것을 OS API(예컨대, OS API(85))에 요청할 수 있다. 프로세스 1이 상기 파일에 대해 적합한 액세스 권한들(예컨대, 판독, 기록 또는 판독 및 기록 양자 모두)을 가지고 있는 경우에 상기 OS API는 파일 디스크립터(fd)를 생성하고 이를 프로세스 1에 회신할 수 있다. 이는 프로세스 1이 상기 파일에 대해 적합한 액세스 권한들 중 어느 하나를 다른 프로세스에 전달할 수 있기 전에 상기 파일에 대해 적합한 액세스 권한들을 가지고 있음을 보장한다. 단계 3에서, 프로세스 1은 프로세스간 통신 채널을 통해 공유될 파일에 대한 특정 액세스 권한들(예컨대, 판독 및 기록 액세스를위한 O_RDWR)을 할당하도록 OS API에 요청함으로써 상기 파일이 그러한 액세스 권한들과 공유될 수 있도록 하기 위해 상기 파일이 단독으로 전달되게 할 수도 있고 프로세스 2에서 입수되게 할 수도 있다. 또한, 프로세스 1은 전달된 액세스 권한들이 (예컨대, "bnd" 부울을 사용하여) 개방 프로세스간 통신 채널의 수명에 관련되는 지의 여부에 관계없이 제한할 수 있고 프로세스 2는 (예컨대, "fwd" 부울을 사용하여) 그러한 액세스 권한들을 다른 프로세스에 전달할 수 있다, 추가로, 여기서 알아야 할 점은 액세스 권한들, 액세스 권한들의 수명 및 액세스 권한들을 포워드 방식으로 다른 프로세스에 전달할 수 있는 능력이 언제든지 변경될 수 있다(그러나 이는 그러한 변경이 이루어져야 할 때와 관련된 프로세스들 사이에서 소정의 동의 프로토콜/행위를 필요한 것이 일반적이다)는 점이다. 예를 들면 프로세스 1은 자신이 원하는 시간이면 언제든지 파일에 대한 액세스 권한들을 변경할 수 있다.
단계 4에서, 상기 OS API는 프로세스간 통신 채널의 원격 피어(remote peer)인 프로세스 2에 예를 들면 "myfile"이라 지칭된 파일에 대한 판독 및 기록과 같은 액세스 권한들을 할당할 수 있다. 이와 관련하여, 상기 OS API는 하나 이상의 원격 프로세스들에 자원(들)에 대한 액세스 권한들을 할당할 수 있는 새로운 API이다. 단계 5에서, 프로세스 2는 "myfile"이라 지칭된 파일을 개방할 것을 상기 OS API에 요청하여 상기 판독 및/또는 기록 액세스 권한들이 부여되어야 할 것을 요청할 수 있다. 단계 6에서, 상기 OS API는 프로세스 2가 "myfile"이라 지칭된 요청 파일에 대한 액세스 권한들을 가지고 있음을 판단하도록 하는 체크를 수행할 수 있다. 여기서 알아야 할 점은 프로세스 2가 일반적으로 상기 파일에 대한 액세스 권한들을 가지고 있지 않기 때문에 상기 체크를 수행할 수 있다는 점이다. 선택적으로는, 단계 7에서, 프로세스 2가 상기 파일에 대한 액세스 권한들을 가지고 있음을 판단한 경우에, 상기 OS API는 프로세스 2가 액세스 권한들을 가지고 있음을 나타내고 상기 파일의 개방이 성공적이었음을 나타내는 정보를 포함하는 파일 디스크립터를 생성할 수 있다. 이와 관련하여, 상기 OS API는 이러한 파일 디스크립터를 프로세스 2에 전송할 수 있다. 여기서 알아야 할 점은 프로세스 2가 상기 파일에 대한 액세스 권한들을 가지고 있지 않음을 판단할 경우에 상기 파일의 개방이 이루어지지 않을 수 있으며 프로세스 2가 상기 파일에 대한 액세스 권한들을 가지고 있지 않음을 나타내는 유효하지 않은 파일 디스크립터(예컨대, "-1"(도시되지 않음))를 상기 OS API가 프로세스 2에 전송할 수 있다는 점이다. 단계 8에서, 상기 OS API는 프로세스 2가 "myfile"이라 지칭된 파일에 대한 판독 및 기록을 수행할 수 있게 하는데, 그 이유는 프로세스 2가 상기 파일에 대한 액세스 권한들을 가지고 있었음을 상기 OS API가 판단했기 때문이다. 프로세스 2가 더이상 공유 파일에 대한 액세스를 필요로 하지 않을 경우에, 프로세스 2는 폐쇄(fd) 호출을 생성하여 상기 파일을 폐쇄하거나 상기 파일의 사용을 해제할 수 있고 이러한 폐쇄(fd) 호출은 단계 9에서 상기 OS API에 전송될 수 있다. 상기 폐쇄(fd) 호출의 수신에 응답하여, 프로세스 1은 프로세스간 통신 채널로부터 상기 파일에 대한 액세스 권한들을 해지함으로써 상기 파일이 단계 10에서 더이상 공유되지 않게 할 수 있다. 프로세스 2가 상기 파일을 폐쇄했을 때를 알 수 있는 실제적인 방법은 그다지 의미가 없다. 예를 들면, 프로세스 2가 상기 파일의 폐쇄를 나타내는 메시지를 프로세스간 통신 채널을 통해 프로세스 1에 전송할 때 상기 파일이 폐쇄될 수 있다. 여기서 알아야 할 점은 프로세스 1이 프로세스간 통신 채널로부터 상기 파일에 대한 액세스 권한들을 해지함으로써 프로세스 2가 더이상 공유 파일에 대한 액세스를 필요로 하지 않음을 나타내는 프로세스 2로부터의 임의의 호출 또는 메시지를 수신함과 무관하게 상기 파일이 더이상 공유되지 않게 할 수 있다는 점이다. 예를 들면, 프로세스 1은 소정의 시간에 공유 파일에 대한 액세스 권한을 해지할 수 있다. 추가로, 프로세스 1은 프로세스 1이 관리하는 상기 파일 및 다른 임의의 자원에 대한 액세스를 획득하도록 하는 프로세스 2에 의한 임의의 요청을 거부할 수 있다.
단계 11에서, 상기 OS API는 프로세스간 통신 채널로부터 "myfile"이라 지칭된 파일에 대한 판독 및/또는 기록 액세스 권한들을 해지할 수 있다. 이는 프로세스 2로부터 상기 파일에 대한 모든 액세스를 해지할 수 있다. 이 때문에, 프로세스 2에 의한 액세스 권한들(예컨대, 판독 및/또는 기록)에 대한 차후의 호출들은 이루어지지 않을 수 있으며 프로세스 2에 의한 파일의 사용에 관련된 동작들이 이루어지지 않을 수 있다. 이와 관련하여, 상기 OS API는 하나 이상의 원격 프로세스들로부터 자원(들)에 대한 액세스 권한들을 해지 또는 해제할 수 있는 새로운 API이다. 단계 12에서, 프로세스 1은 상기 파일에 대한 액세스를 폐쇄하도록 하는 폐쇄(fd) 호출을 생성할 수 있다.
여기서 알아야 할 점은 도 4 및 도 5가 본 발명의 대표적인 실시예들에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 흐름도들이다는 점이다. 당업자라면 상기 흐름도들의 각각의 블록 또는 단계, 및 상기 흐름도들에 있는 블록들의 조합들이 하나 이상의 컴퓨터 프로그램 명령어들을 포함하는 소프트웨어의 실행에 관련된 하드웨어, 펌웨어, 프로세서, 회로 및/또는 다른 장치와 같은 여러 수단들에 의해 구현될 수 있음을 알 수 있을 것이다. 예를 들면, 위에서 설명한 하나 이상의 절차들이 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다. 이와 관련하여, 위에서 설명한 절차들을 구체화하는 컴퓨터 프로그램 명령어들은 이동 단말기 또는 네트워크 장치의 하나 이상의 메모리 장치에 의해 저장될 수 있다. 몇몇 실시예들에서는, 위에서 설명한 절차들을 구현하는 컴퓨터 프로그램 제품(들)을 포함하는 컴퓨터 프로그램 명령어들은 복수의 컴퓨팅 장치들의 메모리 장치들에 의해 저장될 수 있다. 당업자라면 알 수 있는 바와 같이, 그러한 컴퓨터 프로그램 명령어들 중 어느 컴퓨터 프로그램 명령어라도, 컴퓨터 또는 다른 프로그램가능한 장치 상에서 실행하는 명령어들이 상기 흐름도들에 명시된 기능들을 구현하기 위한 수단을 생성하게 하는 머신(machine)을 생성하도록 컴퓨터 또는 다른 프로그램가능한 장치(즉, 하드웨어) 상에 로드될 수 있다. 이러한 컴퓨터 프로그램 명령어들은 또한, 컴퓨터 판독가능 메모리에 저장되어 있는 명령어들이 상기 흐름도들에 명시된 기능들을 구현하는 명령어 수단을 포함하는 제조 물품을 생성하게 하는 특정 방식으로 컴퓨터 또는 다른 프로그램가능한 장치에 기능을 수행하도록 지시할 수 있는 컴퓨터-판독가능 메모리에 저장될 수 있다. 상기 컴퓨터 프로그램 명령어들은 또한, 컴퓨터 또는 다른 프로그램가능한 장치 상에서 실행하는 명령어들이 상기 흐름도들에서 명시된 기능들을 구현하기 위한 단계들을 제공하도록 하는 컴퓨터-구현 프로세스를, 상기 컴퓨터 또는 다른 프로그램가능한 장치 상에서 수행될 일련의 동작 단계들이 생성하게 하도록 컴퓨터 또는 다른 프로그램가능한 장치 상에 로드될 수 있다.
따라서, 상기 흐름도들의 블록들 또는 단계들은 특정 기능들을 수행하기 위한 수단들의 조합, 상기 특정 기능들을 수행하기 위한 단계들의 조합들 및 상기 특정 기능들을 수행하기 위한 프로그램 명령어 수단들을 지원한다. 또한 당업자라면 이해하겠지만, 상기 흐름도들의 하나 이상의 블록들 또는 단계들, 및 상기 흐름도들에 있는 블록들 또는 단계들의 조합들은 특정 기능들 또는 단계들을 수행하는 특정 목적 하드웨어-기반 컴퓨터 시스템들, 또는 특정 목적 하드웨어 및 컴퓨터 프로그램 제품(들)에 의해 구현될 수 있다.
위에서 설명한 기능들은 여러 방식으로 수행될 수 있다. 예를 들면, 위에서 설명한 기능들 각각을 수행하기 위한 적합한 임의의 수단은 본 발명의 실시예들을 실시하도록 이용될 수 있다. 한 실시예에서, 적합하게 구성된 프로세서는 본 발명의 요소들 중 일부 또는 모두를 제공할 수 있다. 다른 실시예에서, 본 발명의 실시예들 중 일부 또는 모두는 컴퓨터 프로그램 제품에 의해 구성되어 컴퓨터 프로그램 제품의 제어 하에서 동작가능하다. 본 발명의 실시예들의 방법들을 수행하기 위한 컴퓨터 프로그램 생성물은 비-휘발성 저장 매체와 같은 컴퓨터 판독가능 저장 매체, 및 상기 컴퓨터 판독가능 저장 매체에 수록된 일련의 컴퓨터 명령어들과 같은 컴퓨터 판독가능 프로그램 코드를 포함할 수 있다.
대표적인 실시예에서, 위에서 설명한 도 4 및 도 5의 방법들을 수행하기 위한 장치는 도 4에 관련된 동작들(단계 1 내지 단계 17) 및 위에서 설명한 도 5에 관련된 동작들(단계 1 내지 단계 12) 중 일부 또는 각각을 수행하도록 구성된 프로세서(예컨대, 프로세서(70))를 포함할 수 있다. 상기 프로세서는 예를 들면 하드웨어 구현 기능들을 수행하고 저장된 명령어들을 실행하거나 상기 동작들 각각을 수행하기 위한 알고리즘들을 실행함으로써, (도 4의) 동작들(단계 1 내지 단계 17) 및 (도 5의) 동작들(단계 1 내지 단계 12)을 수행하도록 구성될 수 있다. 변형적으로는, 상기 장치가 위에서 설명한 동작들 각각을 수행하기 위한 수단을 포함할 수 있다. 이와 관련하여, 대표적인 실시예에 의하면, (도 4의) 동작들(단계 1 내지 단계 17) 및 (도 5의) 동작들(단계 1 내지 단계 12)을 수행하는 수단의 예들은 예를 들면 위에서 설명한 바와 같은 프로세서(70), 프로세스간 엔진(80), OS API(85) 및/또는 명령어들을 실행하거나 정보 처리 알고리즘을 실행하기 위한 장치 또는 회로를 포함할 수 있다.
이 때문에, 본 발명의 몇몇 실시예들은 이리하여 컴퓨팅 장치들, 컴퓨터 장치 사용자들 및 네트워크 오퍼레이터들에 몇가지 이점들을 제공한다. 예를 들면, 본 발명의 실시예들은 상호접속 프로세스들 사이에서 안전하고 유연한 방식으로 자원들을 공유하기 위한 메커니즘을 제공할 수 있다. 추가로, 대표적인 실시예들은 프로세스들의 공유 자원들에 대한 액세스 권한들이 소정의 시간에 해지 또는 종료될 수 있게 해 준다.
본원 명세서에 기재된 본 발명의 여러 변형예들 및 다른 실시예들은 앞서 언급한 설명들 및 관련 도면들에 제시된 교시들의 혜택을 가지는 본 발명이 속하는 당업자에게 숙고될 수 있을 것이다. 그러므로, 여기서 이해하여야 할 점은 본 발명이 개시된 특정 실시예들에 국한된 것이 아니며 변형예들 및 다른 실시예들이 첨부된 청구항들의 범위 내에 포함되도록 의도된 것이라는 점이다. 더욱이, 비록 앞서 언급한 설명들 및 관련 도면들이 요소들 및/또는 기능들의 대표적인 특정 조합들에 관련된 대표적인 실시예들을 설명하고 있지만, 여기서 이해해야 할 점은 요소들 및/또는 기능들의 다른 조합들이 첨부된 청구항들의 범위로부터 벗어나지 않고서도 변형 실시예들에 의해 제공될 수 있다는 점이다. 이와 관련하여, 예를 들면, 위에서 명시적으로 설명한 요소들 및/또는 기능들의 조합들과는 다른 요소들 및/또는 기능들의 다른 조합들이 또한 첨부된 청구항들 중 몇몇 청구항들에 기재된 바와 같이 숙고될 수 있다. 비록 본원 명세서에서는 특정 용어들이 사용되고는 있지만, 그러한 특정 용어들은 단지 일반적이고 설명적인 의미로 사용된 것뿐이며 제한하려는 목적으로 사용된 것이 아니다.

Claims (20)

  1. 통신 장치에 의해 수행되는 방법에 있어서,
    하나 이상의 자원들을 관리하는 적어도 하나의 제1 프로세스로부터, 적어도 제2 프로세스와 상기 자원들 중 적어도 하나의 자원을 공유하도록 하는 하나 이상의 권한들의 할당을 요청하는 데이터를 포함하는 요청을 수신하고,
    상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들을 할당하며,
    제1 메시지의 수신시 상기 제2 프로세스로부터 상기 자원을 공유하도록 하는 상기 권한들을 해지하는 것을 포함하는
    방법.
  2. 제1항에 있어서,
    상기 제1 메시지는, 상기 자원의 사용을 더이상 상기 제2 프로세스가 필요로 하지 않음을 나타내는 정보 또는 상기 제1 프로세스가 상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들의 해지를 요청함을 명시하는 콘텐츠를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 요청을 수신하기 전에, 상기 자원이 개방되었고 상기 제2 프로세스와의 공유를 위한 통신 채널에 할당되었다는 표시를 수신하는 것을 포함하는
    방법.
  4. 제1항에 있어서,
    해지하기 전에, 상기 제2 프로세스가 상기 자원을 공유하도록 하는 상기 권한들을 초기에 가지고 있었는지를 판단하고, 상기 제2 프로세스가 초기에 상기 권한들을 가지고 있지 않다는 판단이 내려지는 경우에, 상기 권한들이 상기 제2 프로세스에 정식으로 할당되었는지를 판단하도록 하는 체크를 수행하는 것을 포함하는
    방법.
  5. 제4항에 있어서,
    상기 제2 프로세스가 상기 체크의 결과들에 적어도 부분적으로 기초하여 상기 제1 프로세스와 상기 자원을 공유할 수 있게 하는 것을 더 포함하는
    방법.
  6. 제4항에 있어서,
    상기 권한들이 정식으로 상기 제2 프로세스에 할당되지 않았다는 체크가 이루어지면, 상기 방법은,
    액세스 권한들이 상기 제2 프로세스에 부여되지 않음을 명시하고 상기 자원의 공유가 허용되지 않음을 나타내는 데이터를 포함하는 제2 메시지를 생성하며,
    상기 제2 프로세스에 상기 제2 메시지를 전송하는 것을 더 포함하는
    방법.
  7. 제1항에 있어서,
    해지하는 것에는 상기 제1 프로세스에 의해 생성된 제2 메시지의 수신에 기초하여 상기 자원들을 공유하도록 하는 상기 권한들을 해지하는 것이 포함되며, 상기 제2 메시지는 통신 채널로부터 상기 자원을 공유하도록 하는 상기 권한들의 해지를 요청하는 정보를 포함하는
    방법.
  8. 제7항에 있어서,
    상기 통신 채널로부터 상기 권한들을 해지하는 것에는 상기 제2 프로세스에 의한 상기 자원의 사용을 종료하고 상기 제2 프로세스에 의한 상기 자원의 사용에 관련된 어떠한 동작들도 이루어지지 않게 하는 것이 포함되는
    방법.
  9. 프로세서와,
    실행가능한 명령어들이 저장된 메모리를 포함하는 장치로서,
    상기 실행가능한 명령어들은,
    상기 프로세서에 의한 실행에 응답하여, 상기 장치로 하여금, 적어도
    하나 이상의 자원들을 관리하는 적어도 하나의 제1 프로세스로부터, 적어도 제2 프로세스와 상기 자원들 중 적어도 하나의 자원을 공유하도록 하는 하나 이상의 권한들의 할당을 요청하는 데이터를 포함하는 요청을 수신하는 동작과,
    상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들을 할당하는 동작과,
    제1 메시지의 수신시 상기 제2 프로세스로부터 상기 자원을 공유하도록 하는 상기 권한들을 해지하는 동작을 수행하게 하는
    장치.
  10. 제9항에 있어서,
    상기 제1 메시지는, 상기 자원의 사용을 더이상 상기 제2 프로세스가 필요로 하지 않음을 나타내는 정보 또는 상기 제1 프로세스가 상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들의 해지를 요청함을 명시하는 콘텐츠를 포함하는
    장치.
  11. 제9항에 있어서,
    상기 명령어들은, 상기 장치로 하여금, 상기 요청을 수신하기 전에, 상기 자원이 개방되었고 상기 제2 프로세스와의 공유를 위한 통신 채널에 할당되었다는 표시를 수신하는 동작을 더 수행하게 하는
    장치.
  12. 제9항에 있어서,
    상기 권한들을 할당함에 응답하여, 상기 명령어들은, 상기 장치로 하여금, 상기 제2 프로세스가 상기 자원을 공유하도록 하는 상기 권한들을 초기에 가지고 있었는지를 판단하는 동작을 더 수행하게 하고, 상기 제2 프로세스가 초기에 상기 권한들을 가지고 있지 않다는 판단이 내려지는 경우에, 상기 명령어들은, 상기 장치로 하여금, 상기 권한들이 상기 제2 프로세스에 정식으로 할당되었는지를 판단하도록 하는 체크를 수행하는 동작을 더 수행하게 하는
    장치.
  13. 제12항에 있어서,
    상기 명령어들은, 상기 장치로 하여금, 상기 제2 프로세스가 상기 체크의 결과들에 적어도 부분적으로 기초하여 상기 제1 프로세스와 상기 자원을 공유할 수 있게 하는 동작을 더 수행하게 하는
    장치.
  14. 제12항에 있어서,
    상기 권한들이 정식으로 상기 제2 프로세스에 할당되지 않았다는 체크가 이루어지면, 상기 명령어들은, 상기 장치로 하여금, 액세스 권한들이 상기 제2 프로세스에 부여되지 않음을 명시하고 상기 자원의 공유가 허용되지 않음을 나타내는 데이터를 포함하는 제2 메시지를 생성하는 동작과,
    상기 제2 프로세스에 상기 제2 메시지를 전송하는 동작을 더 수행하게 하는
    장치.
  15. 제9항에 있어서,
    해지하는 것에는 상기 제1 프로세스에 의해 생성된 제2 메시지의 수신에 기초하여 상기 자원들을 공유하도록 하는 상기 권한들을 해지하는 것이 포함되며, 상기 제2 메시지는 통신 채널로부터 상기 자원을 공유하도록 하는 상기 권한들의 해지를 요청하는 정보를 포함하는
    장치.
  16. 제15항에 있어서,
    상기 통신 채널로부터 상기 권한들을 해지하는 것에는 상기 제2 프로세스에 의한 상기 자원의 사용을 종료하고 상기 제2 프로세스에 의한 상기 자원의 사용에 관련된 어떠한 동작들도 이루어지지 않게 하는 것이 포함되는
    장치.
  17. 컴퓨터 실행가능 프로그램 코드를 기록한 컴퓨터 판독가능 기록 매체로서,
    상기 컴퓨터 실행가능 프로그램 코드는,
    하나 이상의 자원들을 관리하는 적어도 하나의 제1 프로세스로부터, 적어도 제2 프로세스와 상기 자원들 중 적어도 하나의 자원을 공유하도록 하는 하나 이상의 권한들의 할당을 요청하는 데이터를 포함하는 요청을 수신하는 프로그램 코드 명령어들과,
    상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들을 할당하는 프로그램 코드 명령어들과,
    제1 메시지의 수신시 상기 제2 프로세스로부터 상기 자원을 공유하도록 하는 상기 권한들을 해지하는 프로그램 코드 명령어들을 포함하는
    컴퓨터 판독가능 기록 매체.
  18. 제17항에 있어서,
    상기 제1 메시지는, 상기 자원의 사용을 더이상 상기 제2 프로세스가 필요로 하지 않음을 나타내는 정보 또는 상기 제1 프로세스가 상기 제2 프로세스와 상기 자원을 공유하도록 하는 상기 권한들의 해지를 요청함을 명시하는 콘텐츠를 포함하는
    컴퓨터 판독가능 기록 매체.
  19. 제17항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는,
    상기 요청을 수신하기 전에, 상기 자원이 개방되었고 상기 제2 프로세스와의 공유를 위한 통신 채널에 할당되었다는 표시를 수신하는 프로그램 코드 명령어들을 더 포함하는
    컴퓨터 판독가능 기록 매체.
  20. 제17항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드는,
    해지하기 전에, 상기 제2 프로세스가 상기 자원을 공유하도록 하는 상기 권한들을 초기에 가지고 있었는지를 판단하고, 상기 제2 프로세스가 초기에 상기 권한들을 가지고 있지 않다는 판단이 내려지는 경우에, 상기 권한들이 상기 제2 프로세스에 정식으로 할당되었는지를 판단하도록 하는 체크를 수행하는 프로그램 코드 명령어들을 더 포함하는
    컴퓨터 판독가능 기록 매체.
KR1020117024315A 2009-04-17 2010-04-16 프로세스간 통신을 통해 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품 KR101366965B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/425,630 US8220004B2 (en) 2009-04-17 2009-04-17 Method, apparatus and computer program product for sharing resources via an interprocess communication
US12/425,630 2009-04-17
PCT/IB2010/000857 WO2010119337A1 (en) 2009-04-17 2010-04-16 Method, apparatus and computer program product for sharing resources via an interprocess communication

Publications (2)

Publication Number Publication Date
KR20110138242A KR20110138242A (ko) 2011-12-26
KR101366965B1 true KR101366965B1 (ko) 2014-02-24

Family

ID=42981985

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117024315A KR101366965B1 (ko) 2009-04-17 2010-04-16 프로세스간 통신을 통해 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품

Country Status (6)

Country Link
US (1) US8220004B2 (ko)
EP (1) EP2419830A4 (ko)
KR (1) KR101366965B1 (ko)
CN (1) CN102378965B (ko)
TW (1) TWI486878B (ko)
WO (1) WO2010119337A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101794058B1 (ko) * 2011-03-08 2017-12-04 삼성전자주식회사 간섭 회피를 위한 무선 네트워크 채널 할당 방법
US9535765B1 (en) 2011-03-28 2017-01-03 Google Inc. Opportunistic job Processing of input data divided into partitions of different sizes
DE102011078630A1 (de) * 2011-07-05 2013-01-10 Robert Bosch Gmbh Verfahren zum Einrichten einer Anordnung technischer Einheiten
CN102591727B (zh) 2012-01-04 2014-09-17 华为终端有限公司 对应用数据进行处理的方法和计算节点
US8751451B2 (en) 2012-04-12 2014-06-10 Nokia Corporation Method and apparatus for facilitating switching between devices
US9130939B2 (en) * 2012-12-28 2015-09-08 Intel Corporation Ad hoc decentralized cloud infrastructure
CN103970601B (zh) * 2013-02-06 2019-03-05 北京壹人壹本信息科技有限公司 执行操作指令方法和装置
CN104601546B (zh) * 2014-12-22 2017-12-01 深圳市鼎泰富科技有限公司 一种利用设备通信资源提高网络带宽的系统及方法
US10586076B2 (en) * 2015-08-24 2020-03-10 Acronis International Gmbh System and method for controlling access to OS resources
CN105357266B (zh) * 2015-09-30 2018-11-16 山东乾云启创信息科技股份有限公司 适合多种场景的socket通信与进程管理通用平台及方法
CN106341905B (zh) * 2016-08-31 2019-09-20 广州视睿电子科技有限公司 一种基于无线网络的文件共享方法、设备及系统
CN106778245A (zh) * 2016-11-29 2017-05-31 北京元心科技有限公司 移动终端及其文件共享方法
US10318209B2 (en) * 2017-01-30 2019-06-11 Forcepoint Llc Secure file transfer to process
JP6926627B2 (ja) * 2017-04-21 2021-08-25 富士通株式会社 情報処理システム、情報処理装置、api制御方法及びプログラム
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
CN111124466A (zh) * 2018-10-31 2020-05-08 上海哔哩哔哩科技有限公司 差异化通知方法、系统、计算机设备及可读存储介质
US20200174814A1 (en) * 2018-11-30 2020-06-04 Nutanix, Inc. Systems and methods for upgrading hypervisor locally
KR20200125258A (ko) * 2019-04-26 2020-11-04 삼성전자주식회사 어플리케이션 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
CN111897666B (zh) * 2020-08-05 2024-02-06 北京图森未来科技有限公司 用于多进程之间通信的方法、设备及系统
CN113010333B (zh) * 2021-03-24 2021-10-15 北京中电兴发科技有限公司 适用于Linux服务器集群的多场景进程间通信方法
CN115086296B (zh) * 2022-05-27 2024-04-05 阿里巴巴(中国)有限公司 一种日志传输系统、日志传输方法及相关装置
WO2024119497A1 (en) * 2022-12-09 2024-06-13 Nvidia Corporation Application programming interface to deallocate fifth generation new radio (5g-nr) statically-sized linked storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980086609A (ko) * 1997-05-28 1998-12-05 제프리 엘. 포맨 동시적인 프로세서 요구에 의한 데이터 자원의 액세싱을 직렬화하기 위한 컴퓨터 시스템내에서의 블로킹 심볼 제어
KR20040015702A (ko) * 2001-08-13 2004-02-19 콸콤 인코포레이티드 컴퓨터 장치의 저장 영역에 대한 애플리케이션 레벨 액세스 특권을 부여하는 방법 및 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649099A (en) 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security
DE69739779D1 (de) 1997-05-28 2010-04-08 Ericsson Telefon Ab L M Verfahren zum Abhandeln von Interaktionen zwischen Datenprozessen
US6385658B2 (en) * 1997-06-27 2002-05-07 Compaq Information Technologies Group, L.P. Method and apparatus for synchronized message passing using shared resources
US6205466B1 (en) * 1998-07-17 2001-03-20 Hewlett-Packard Company Infrastructure for an open digital services marketplace
US6412070B1 (en) 1998-09-21 2002-06-25 Microsoft Corporation Extensible security system and method for controlling access to objects in a computing environment
US6412034B1 (en) * 1999-04-16 2002-06-25 Oracle Corporation Transaction-based locking approach
US7640315B1 (en) * 2000-08-04 2009-12-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
TWI281107B (en) 2001-08-13 2007-05-11 Qualcomm Inc Using permissions to allocate device resources to an application
US20040025166A1 (en) 2002-02-02 2004-02-05 International Business Machines Corporation Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel
US6990560B2 (en) * 2003-01-16 2006-01-24 International Business Machines Corporation Task synchronization mechanism and method
GB2411253A (en) 2003-06-05 2005-08-24 Clink Systems Ltd Network on which a user classifies resources held in their account using a realm name created by them to give access to other users to the resources
GB2420642B (en) 2004-11-30 2008-11-26 Sendo Int Ltd Memory management for portable electronic device
JP2006221629A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサのリソース管理によるコンテンツ制御方法および装置
US20100083268A1 (en) * 2008-09-29 2010-04-01 Morris Robert P Method And System For Managing Access To A Resource By A Process Processing A Media Stream
US7792916B2 (en) * 2008-10-20 2010-09-07 International Business Machines Corporation Management of cluster-wide resources with shared variables
US8108519B2 (en) * 2008-11-07 2012-01-31 Samsung Electronics Co., Ltd. Secure inter-process communication for safer computing environments and systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980086609A (ko) * 1997-05-28 1998-12-05 제프리 엘. 포맨 동시적인 프로세서 요구에 의한 데이터 자원의 액세싱을 직렬화하기 위한 컴퓨터 시스템내에서의 블로킹 심볼 제어
KR20040015702A (ko) * 2001-08-13 2004-02-19 콸콤 인코포레이티드 컴퓨터 장치의 저장 영역에 대한 애플리케이션 레벨 액세스 특권을 부여하는 방법 및 장치

Also Published As

Publication number Publication date
CN102378965B (zh) 2014-04-16
US8220004B2 (en) 2012-07-10
TW201135596A (en) 2011-10-16
WO2010119337A1 (en) 2010-10-21
KR20110138242A (ko) 2011-12-26
EP2419830A1 (en) 2012-02-22
US20100269120A1 (en) 2010-10-21
EP2419830A4 (en) 2013-09-25
TWI486878B (zh) 2015-06-01
CN102378965A (zh) 2012-03-14

Similar Documents

Publication Publication Date Title
KR101366965B1 (ko) 프로세스간 통신을 통해 자원들을 공유하는 방법, 장치 및 컴퓨터 프로그램 제품
CN113490918B (zh) 用于从数据仓库调用外部函数的系统和方法
US10762204B2 (en) Managing containerized applications
EP3074867B1 (en) Managing containerized applications
US9165139B2 (en) System and method for creating secure applications
US9483646B2 (en) Data exfiltration prevention from mobile platforms
WO2015070784A1 (zh) 一种网络访问控制方法及装置
WO2021036706A1 (zh) 可信应用的运行方法、信息处理和内存分配方法及装置
US20160057228A1 (en) Application execution program, application execution method, and information processing terminal device that executes application
KR101465966B1 (ko) 클라우드 환경에서의 데이터 암호화 처리 장치 및 방법
US20150150119A1 (en) Framework for fine-grain access control from high-level application permissions
US11386199B2 (en) Isolating an application running inside a native container application
WO2021238399A1 (zh) 安全访问数据的方法及电子设备
US11928349B2 (en) Access control configurations for shared memory
EP3846054A1 (en) Data processing method for security authentication, server, client device, and medium
US10110510B2 (en) Method and apparatus for security domain management in trusted execution environment
WO2023169271A1 (zh) 一种数据存储方法及数据处理设备
CN112115500A (zh) 一种访问文件的方法、装置及系统
US20230015537A1 (en) Reducing latency of hardware trusted execution environments
WO2020187008A1 (zh) 服务调用控制方法、服务调用方法、装置及终端
US11151022B1 (en) Testing of executable code for local device coordinator
KR20210060281A (ko) 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법

Legal Events

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

Payment date: 20170119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 6