KR20140099892A - 상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법 - Google Patents

상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법 Download PDF

Info

Publication number
KR20140099892A
KR20140099892A KR1020147015120A KR20147015120A KR20140099892A KR 20140099892 A KR20140099892 A KR 20140099892A KR 1020147015120 A KR1020147015120 A KR 1020147015120A KR 20147015120 A KR20147015120 A KR 20147015120A KR 20140099892 A KR20140099892 A KR 20140099892A
Authority
KR
South Korea
Prior art keywords
application data
application
server
data
instance
Prior art date
Application number
KR1020147015120A
Other languages
English (en)
Other versions
KR102032583B1 (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 KR20140099892A publication Critical patent/KR20140099892A/ko
Application granted granted Critical
Publication of KR102032583B1 publication Critical patent/KR102032583B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에 따르면 애플리케이션에 대한 프라이머리 데이터가 클라우드 스토리지와 같이 원거리에 위치된 제 1 서버에 저장된다. 애플리케이션의 사용자는 제 1 서버 내의 저장이 지원되지 않는 보조 데이터를 생성하도록 프라이머리 데이터에 대해 수정 또는 추가하길 원할 수 있다. 본 발명의 구성은 제 2 저장 서비스 제공자(예를 들어, 기업 인트라넷)에서 제 2 서버 상에 보조 데이터(예를 들어 편집, 추가 등)를 저장하기 위한 방법을 포함한다. 동일한 사용자에 의해 서로 다른 컴퓨터 디바이스 상에서 실행중인 애플리케이션의 서로 다른 인스턴스들은 제 1 저장 서비스 제공자로부터의 프라이머리 데이터뿐 아니라 제 2 저장 서비스 제공자로부터의 보조 데이터를 검색할 수 있다.

Description

상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법{ACCESS TO SUPPLEMENTAL DATA BASED ON IDENTIFIER DERIVED FROM CORRESPONDING PRIMARY APPLICATION DATA}
컴퓨터 및 네트워크 기술 영역에서, "클라우드(cloud)" 및 "클라우드 컴퓨팅(cloud computing)"이라는 용어가 종종 인터넷과 같은 소정의 네트워크 기술에 대한 비유로서 사용되며, 이는 다수의 서로 다른 타입의 컴퓨터 리소스 사이에서의 접속성을 지원하는 컴퓨터, 라우터, 서버 등의 언더라잉 네트워크 인프라구조의 추상적 개념이다.
소위 "클라우드 컴퓨팅"은 가상현실화, 서비스 지향 아키텍처, 자율 및 유틸리티 컴퓨팅의 광범위한 수용의 자연적인 진화이다. 소정의 경우에서, 클라우드 컴퓨팅은 소정의 애플리케이션 특성을 제어하는 데에 능숙해지거나 제어해야할 필요를 없애며, 이러한 특성은 클라우드 내의 서비스에 의해 관리되고 클라우드 스토리지는 종종 클라우드 저장 서비스 제공자로서 알려진 제 3 자 엔티티에 의해 제공된다. 따라서, 클라우드 컴퓨팅은 새로운 인프라구조에 투자하거나, 새로운 인력을 훈련하거나, 새로운 소프트웨어에 대한 허가를 취득하는 등의 필요 없이 (클라우드 저장 서비스 제공자와는 별개의 엔티티인) 기업과 같은 엔티티 내의 사용자를 위한 컴퓨터 시스템에 성능을 추가하거나 용량을 증가시키기 위한 방법을 제공할 수 있다. 종래의 클라우드 컴퓨팅 기술은, 사용자가 클라우드에 접속하기 위해서 어떤 디바이스를 사용하는지와 무관하게, 원격 문서 관리 및 저장, 이메일 및 연락처 관리 등과 같은 예시적인 서비스를 사용자에게 제공한다. 이러한 방식으로, 사용자는 자신의 사무실에서 데스크톱 컴퓨터와 같은 하나의 컴퓨팅 디바이스 상의 클라우드 내에서 문서에 액세스할 수 있고, 그 후에 자신의 집 컴퓨터와 같은 다른 컴퓨팅 디바이스로부터 동일한 문서에 액세스할 수 있다. 클라우드 스토리지에 액세스하는 애플리케이션은 표준화되고 잘 공개된 애플리케이션 프로그래밍 인터페이스(API) 및 프리셋 클라우드 스토리지 저장 포맷들의 세트를 이용하여 이를 수행한다.
따라서 클라우드는 각각의 사용자에게 유용한 서비스를 제공하는 도구이며, 사용자에 의해 동작되는 각각의 디바이스는 클라우드에 의해 제공된 서비스에 크게 또는 전적으로 의존할 수 있다. 이것은 단일 컴퓨터 디바이스와 같은 제한적인 위치 내의 애플리케이션과 연관된 데이터를 저장해야만 하는 귀찮은 일들 없이 복수의 서로 다른 컴퓨터들 중 하나에 대해 컴퓨터 애플리케이션의 인스턴스를 실행하는 능력을 제공한다.
서로 다른 컴퓨팅 디바이스 상의 소프트웨어 애플리케이션의 서로 다른 인스턴스들의 실행을 가능하게 하는 클라우드 컴퓨팅과 같은 종래의 기술의 사용은 결함을 가질 수 있다. 예를 들어, 제 3 자 클라우드 저장 서비스가 특정한 API를 이용하여 특정한 데이터 포맷으로 특정한 데이터의 클라우드 저장을 제공한다고 가정하자(예를 들어, XML과 같은 데이터 포맷 또는 주어진 사전결정된 기록 포맷의 연락처 데이터). 복수의 제 3 자 소프트웨어 기업은 이러한 특정한 데이터 포맷으로 클라우드 내에 저장된 데이터에 액세스하는 소프트웨어 프로그램(예를 들어, 연락처 관리자 소프트웨어)을 각각 개발하여 판매할 수 있다. 이러한 소프트웨어의 일 판매자는 사용자로 하여금 보조 데이터를 자신의 연락처 정보에 추가할 수 있게 하는 소프트웨어의 새로운 또는 업데이트된 버전을 생성하길 원할 수 있다. 예시로서, 소프트웨어의 새로운 버전은 사용자로 하여금 사람들에 대한 연락처 정보를 선호하는 또는 즐겨찾는 것으로서 식별하게 할 수 있다. 이러한 경우에, 사전정의된 연락처 기록 또는 클라우드 스토리지의 데이터 포맷이 보조 데이터의 추가를 가능하게 하도록 적응되지 않기 때문에 클라우드 저장 서비스 제공자는 이러한 보조 데이터의 저장을 지원하지 않을 수 있다. 이는 연락처 데이터를 관리하는 서로 다른 소프트웨어 프로그램의 다수의 판매자가 동일한 클라우드 저장 서비스를 이용할 수 있기 때문일 수 있으며, 따라서 연락처 데이터 포맷은 소정의 판매자로부터의 새로운 데이터 저장 요구사항에 신속하게 적응하지 않는다. 이러한 문제가 종래의 상황에서 나타날 때, 새로운 버전의 소프트웨어는 반드시 로컬 저장 디바이스(예를 들어, 새로운 버전의 소프트웨어의 인스턴스가 현재 동작중이며 설치된 해당 사용자의 데스크톱 컴퓨터의 디스크 시스템) 내에 보조 데이터를 저장해야만 한다. 이러한 종래의 접근법이 갖는 하나의 문제점은, 만약 사용자가 다른 컴퓨팅 디바이스(예를 들어, 사용자의 모바일 디바이스 상에서 실행중인 소프트웨어의 다른 인스턴스) 상에서 동일한 소프트웨어를 동작시키면, 클라우드 스토리지가 보조 데이터의 저장을 지원하지 않으며 모바일 디바이스는 사용자가 보조 데이터를 생성하기 위해 사용한 다른 컴퓨팅 디바이스의 로컬 디스크에 액세스할 방법이 없기 때문에 다른 컴퓨터 시스템 상에서 생성된 보조 데이터가 모바일 디바이스 상의 동일한 사용자에 대한 소프트웨어의 동일한 버전에서 이용가능하지 않을 것이라는 점이다.
본 명세서에 개시된 실시예는 실질적으로 전술된 종래의 기술의 결함들을 극복한다. 본 발명의 실시예는 사용자에 의해 동작되는 복수의 디바이스에 의해 (예를 들어, 클라우드로부터 분리되거나 클라우드 스토리지에 추가된) 액세스 가능한 2차 원격 위치에서 보조 데이터(예를 들어, 클라우드 스토리지와 같은 제 3 자 스토리지 제공자에 의해 저장되는 프라이머리 데이터에 대한 수정 또는 추가와 연관된 데이터)를 저장하기 위한 하나 이상의 방법을 포함한다. 본 명세서에 개시된 바와 같이, 보조 데이터가 복수의 디바이스 각각에서 이용가능하기 때문에, 서로 다른 컴퓨팅 디바이스 상에 주어진 소프트웨어 애플리케이션을 사용하는 사용자는 임의의 서로 다른 디바이스 상의 애플리케이션의 인스턴스를 실행할 수 있으며, 본 명세서에 개시된 기술 및 메커니즘은 소프트웨어의 개별적인 인스턴스에 클라우드에 의해 저장된 데이터에 추가로 2차 저장 위치(예를 들어, 보조 데이터의 저장을 지원하고 복수의 사용자 컴퓨팅 디바이스에 액세스 가능한 기업 서버 또는 제 2 클라우드 저장 영역) 내에 저장된 보조 데이터가 제공되게 한다.
일 예시에서, 사용자는 네트워크 내의 제 1 컴퓨터 디바이스 상에서 애플리케이션의 제 1 인스턴스를 실행한다. 제 1 인스턴스가 사용자로 하여금 개별적인 사람들에 대한 연락처 데이터를 관리할 수 있게 하는 연락처 관리 소프트웨어 프로그램이라고 가정하자. 애플리케이션의 제 1 인스턴스를 통해서, 사용자는 제 1 서버로부터 프라이머리 애플리케이션 데이터를 검색한다. 프라이머리 애플리케이션 데이터는 예를 들어 주어진 클라우드 스토리지 판매자에 의해 운영되는 (제 1 서버에 의해 저장된) 클라우드 스토리지에 대해 요청되는 바와 같은 사전정의된 또는 고정된 데이터 포맷으로 저장된 데이터일 수 있다. 애플리케이션의 제 1 인스턴스를 이용하는 동안, 사용자는 프라이머리 애플리케이션 데이터와 연관되는 보조 애플리케이션 데이터를 생성하도록 제 1 인스턴스를 동작시킬 수 있다. 예를 들어, 사용자는 사용자가 프라이머리 애플리케이션 데이터 내의 즐겨찾는 연락처를 식별할 수 있게 하는 연락처 관리자 소프트웨어의 새로운 버전을 구매할 수 있다. 클라우드 저장 데이터 포맷이 보조 데이터의 저장을 수용하지 않기 때문에, 주어진 데이터 포맷으로 프라이머리 애플리케이션 데이터를 저장하는 제 1 저장 서비스 제공자(예를 들어, 클라우드 스토리지 판매자에 의해 운영되는 클라우드 컴퓨팅 환경) 또는 제 1 서버는 보조 애플리케이션 데이터의 저장을 지원할 수 없을 수도 있다. 이러한 문제점을 극복하기 위해서, 애플리케이션의 제 1 인스턴스는 (예를 들어 사용자로부터의) 보조 애플리케이션 데이터를 수신하여 이것을 프라이머리 애플리케이션 데이터와 연관시킨다. 예를 들어 일 실시예에서, 보조 데이터를 프라이머리 애플리케이션 데이터와 연관시키기 위해서, 애플리케이션의 제 1 인스턴스가 프라이머리 애플리케이션 데이터에 적어도 부분적으로 기초하여 고유 식별자 값(unique identifier value)(예를 들어, 해시 값)을 계산한다. 특정한 실시예에서, 고유 식별자 값을 생성하는 것을 고유 식별자 값을 생성하기 위해 프라이머리 애플리케이션 데이터의 적어도 일부분에 해시 함수를 적용하는 것을 포함할 수 있다. 다른 예시는, 고유 식별자 내에 애플리케이션의 제 1 인스턴스를 운영하는 사용자와 연관된 사용자 아이덴티티의 해시를 포함하는 것을 포함한다. 애플리케이션의 제 1 인스턴스는 고유 식별자 값뿐 아니라 보조 애플리케이션 데이터를 보조 애플리케이션 데이터의 후속하는 검색을 위해 제 2 서버에 포워딩한다. 제 2 서버는 예를 들어 클라우드 스토리지와 상이하지만 (각각이 연락처 관리자 소프트웨어 프로그램의 독립적인 인스턴스들을 운영하는) 사용자의 다양한 컴퓨팅 디바이스에 액세스 가능한 기업 인트라넷 상에 스토리지를 제공하는 서버일 수 있다. 제 2 서버는 고유 식별자를 통해 사용자 디바이스 상의 애플리케이션의 임의의 하나 이상의 다른 인스턴스에 의해 보조 애플리케이션 데이터의 후속 검색을 가능하게 하며, 따라서 클라우드 스토리지(즉, 제 1 서버)가 보조 데이터의 저장을 지원하지 않음에도 각 디바이스 상에서의 사용자 경험이 보조 데이터로의 액세스를 포함하는 것을 가능하게 한다.
예시적인 실시예의 추가적인 세부사항이 도면과 상세한 설명 및 특허청구범위를 참조하여 아래에서 제공될 것이다. 이러한 예시적인 실시예에 대한 예비적 논의는 본 명세서 또는 청구된 발명(들)의 모든 실시예 및/또는 신규한 측면을 명시하지 않음을 인지하여라. 대신, 이러한 간략한 설명은 단지 일반적인 실시예 및 종래의 기술에 대한 신규성의 상응하는 포인트를 제시한다. 본 발명(들)의 추가적인 세부사항 및/또는 가능한 관점들(치환) 및 추가적인 신규성의 포인터를 위해서, 독자에게 아래에 추가로 논의된 바와 같은 본 발명의 상세한 설명과 상응하는 도면들이 제공된다. 서로 다른 실시예들과 연관된 추가적인 세부사항을 제공하는 것에 추가하여, 아래의 상세한 설명은 실시예의 추가적인 요약을 포함한다. 따라서, 이러한 간략한 설명은 본 발명의 범주 및/또는 첨부된 특허청구범위를 제한하지 않는다.
도 1은 본 발명의 실시예에 따라 애플리케이션의 제 1 인스턴스가 제 2 서버에서 보조 애플리케이션 데이터의 생성 및 후속한 저장을 개시하는 네트워크 환경을 도시한 예시적인 도면.
도 2는 본 발명의 실시예에 따라 애플리케이션의 제 1 인스턴스가 제 2 서버에서 보조 애플리케이션 데이터에 후속하여 인덱싱하기 위해 고유 식별자 값을 생성하는 네트워크 환경을 도시한 예시적인 도면.
도 3은 본 발명의 실시예에 따라 애플리케이션의 제 2 인스턴스가 제 2 서버로부터 저장된 보조 애플리케이션 데이터의 검색을 개시하는 네트워크 환경을 도시한 예시적인 도면.
도 4는 본 발명의 실시예에 따라 애플리케이션의 제 2 인스턴스가 고유 식별자 값을 사용하여 제 2 서버로부터 저장된 보조 애플리케이션 데이터의 검색을 개시하는 네트워크 환경을 도시한 보다 구체적인 예시적인 도면.
도 5는 본 발명의 실시예에 따라 프라이머리 애플리케이션 데이터와 보조 애플리케이션 데이터를 맵핑하는 고유 식별자 값의 사용을 도시한 예시적인 도면.
도 6은 본 발명의 실시예에 따라 그래픽 사용자 인터페이스에서 정보를 디스플레이하도록 애플리케이션 인스턴스에 의해 프라이머리 애플리케이션 데이터와 보조 애플리케이션 데이터의 사용을 도시한 예시적인 도면.
도 7은 본 발명의 실시예에 따라 애플리케이션의 인스턴스의 구현을 위한 예시적인 컴퓨터 아키텍처를 도시한 예시적인 도면.
도 8은 본 발명의 실시예에 따라 상응하는 보조 애플리케이션 데이터의 후속 검색을 위해 고유 식별자 값을 생성하는 예시적인 방법을 도시한 순서도.
도 9는 본 발명의 실시예에 따라 상응하는 보조 애플리케이션 데이터의 후속 검색을 위해 검색된 프라이머리 애플리케이션 데이터에 기초하는 고유 식별자 값의 생성을 도시한 예시적인 도면.
본 발명의 전술된 목적, 특성 및 장점과 그외의 목적, 특성 및 장점이 본 발명의 바람직한 실시예에 대한 아래의 보다 구체적인 설명으로부터 명백해질 것이며, 첨부된 도면에서 서로 다른 도면들에 걸쳐 동일한 참조번호는 동일한 부분을 지칭한다. 도면들은 반드시 실제 축적대로 도시되지 않았으며, 실시예, 원리 및 개념 등을 설명하는데에 있어서 강조가 사용되었다.
본 명세서에 개시된 예시적인 실시예는 서로 다른 컴퓨팅 디바이스 상의 소프트웨어 애플리케이션(예를 들어, 랩탑 컴퓨터, 데스크톱 컴퓨터 및 모바일 디바이스 상의 동일한 프로그램)의 복수의 인스턴스(instance)를 사용하는 사용자로 하여금 그러한 애플리케이션 인스턴스들에 의해 생성된 모든 데이터에 액세스할 수 있게 하는 메커니즘을 제공한다. 이러한 시스템은, 애플리케이션에 의해 생성 및 저장된 데이터의 일부(즉, 프라이머리 데이터)가 예를 들어 제한된 또는 사전정의된 데이터 포맷을 갖는 제 3 자 판매자에 의해 운영될 수 있는 클라우드 스토리지에 저장되는 상황을 수용한다. 만약 애플리케이션이 사용자로 하여금 보조 데이터를 생성할 수 있게 한다면(예를 들어, 애플리케이션의 새로운 버전이 데이터 포맷 제한이 주어진 클라우드 스토리지에 저장될 수 없는 보조 사용자 데이터의 저장을 요청하는 개선된 사용자 특성을 제공할 수 있다), 본 명세서에 개시된 메커니즘은 이러한 보조 데이터를 제 2 저장 서비스 제공자에 의해 제공되는 2차 스토리지(예를 들어, 사용자의 컴퓨팅 디바이스가 액세스할 수 있는 기업 인트라넷에 의해 운영되는 비-클라우드 스토리지) 내에 저장한다.
일 실시예에 따르면, 애플리케이션에 대한 프라이머리 데이터는 클라우드 컴퓨팅 환경 내의 원거리에 위치된 제 1 저장 서비스 제공자에 저장될 수 있다. 본 명세서에서 사용되는 프라이머리 데이터(primary data)라는 용어는 예를 들어 클라우드 서버일 수 있는 제 1 서버 상의 제 1 서비스 제공자 내에 애플리케이션이 저장할 수 있는 데이터를 포함한다. 애플리케이션의 사용자는 제 1 스토리지 서비스 제공자에 의해 지원되지 않는 방식으로 프라이머리 데이터를 수정하길 바랄 수 있다. 본 명세서에서 이러한 수정, 추가 등은 제 1 저장 서비스 제공자에 의해 운영되는 제 1 서버 내에 저장될 수 없는 (즉, 예를 들어 클라우드 스토리지가 이러한 보조 데이터를 자신의 데이터 또는 기록 포맷으로 제공하지 않기 때문에 클라우드 내에 저장될 수 없는) 보조 데이터(supplemental data)로 지칭된다. 다시 말하면, 제 1 저장 서비스 제공자는 사용자가 프라이머리 데이터에 대해 수행하길 원하고 사용자가 자신의 컴퓨팅 디바이스 상에서 액세스할 수 있길 원하는 변경 및/또는 추가(보조 데이터)의 저장을 지원하지 않을 수 있다. 종래의 솔루션은 보조 데이터를 사용자의 디바이스 내에 로컬로 저장하는 것이다. 그러나 이러한 종래의 솔루션에서, 사용자는 이러한 보조 데이터에 대한 액세스를 갖는 동시에 복수의 디바이스 상의 애플리케이션을 사용할 수 없었을 것이다(또는 사용하기 어려웠을 것이다). 이는 사용자가 하나의 디바이스에서 다른 디바이스로 이동하고 모든 데이터, 변경 및 추가가 모든 디바이스 상에서 이용가능하길 기대하는 경우에 문제가 된다.
사용자가 모든 데이터에 대한 액세스를 갖는 동시에 단일 컴퓨터 디바이스 상에서만 애플리케이션을 실행하도록 제한되는 것으로부터 자유로워지기 위해, 본 발명의 구성은 네트워크 접속 상의 제 2 저장 서비스 제공자에서 수정 데이터(예를 들어, 프라이머리 애플리케이션 데이터와 연관된 편집 또는 추가와 같은 보조 애플리케이션 데이터)를 저장하기 위한 메커니즘 및 기술을 제공한다. 본 명세서에 개시된 시스템을 이용하여, 서로 다른 컴퓨터 디바이스 상에서 실행중인 애플리케이션의 서로 다른 인스턴스들은 제 1 저장 서비스 제공자(예를 들어, 제 3 자 판매자에 의해 운영되는 클라우드)로부터의 프라이머리 데이터를 검색할 수 있을 뿐 아니라 제 2 저장 서비스 제공자(예를 들어, 소프트웨어의 사용자의 고용인에 의해 운영되며 제 3 자 클라우드 저장 서비스 제공자와 상이한 엔티티인 기업 인트라넷 서버)로부터의 보조 애플리케이션 데이터를 검색할 수 있다. 따라서, 각각의 사용자는 단일 머신 상에서만 애플리케이션의 인스턴스를 실행하는 것으로 제한되지 않으며, 복수의 사용자 컴퓨팅 디바이스 상에서 프라이머리 및 보조 데이터 모두에 대한 액세스를 획득할 수 있다.
도 1은 본 발명의 실시예에 따라 애플리케이션의 제 1 인스턴스(instance)가 제 2 서버에서 보조(supplemental) 애플리케이션 데이터를 생성 및 저장하는 네트워크 환경의 예시적인 도면이다.
이러한 예시에서, 네트워크 환경(100)은 복수의 저장 서비스 제공자(120)(예로서, 저장 서비스 제공자(120-1, 120-2, 등)) 및 네트워크(190)를 포함한다. 저장 서비스 제공자(120-1)는 서버(110-1) 및 데이터를 저장하기 위한 각각의 저장소(180-1)를 포함한다. 저장 서비스 제공자(120-1)는 이러한 예시에서 주어진 클라우드 서버 저장 제공자에 의해 동작되는 클라우드 저장 서비스(cloud storage service)일 수 있다. 저장 서비스 제공자(120-2)는 서버(110-2) 및 데이터를 저장하기 위한 각각의 저장소(180-2)를 포함한다. 이러한 예시에서 저장 서비스 제공자(120-2)는 기업 인트라넷일 수 있다. 저장 서비스 제공자(120)는 동일하거나 서로 다른 엔티티, 기업 또는 조직일 수 있다.
네트워크(190)는 인터넷, 모바일폰 네트워크 등과 같은 리소스를 포함할 수 있으며, 동일한 사용자 또는 서로 다른 사용자에 의해 동작될 수 있는 하나 이상의 컴퓨터 디바이스(115)를 더 포함할 수 있다.
각각의 컴퓨터 디바이스(115)는 하나 이상의 사용자 대신 애플리케이션(140)의 인스턴스를 실행할 수 있다. 이러한 예시에서, 컴퓨터 디바이스(115-1)는 애플리케이션 인스턴스(140-1)를 실행하고 컴퓨터 디바이스(115-2)는 애플리케이션 인스턴스(140-2)를 실행한다. 다른 실시예에 따르면, 동일한 컴퓨터 디바이스는 서로 다른 애플리케이션 인스턴스(140)를 실행하도록 사용될 수 있다. 애플리케이션 인스턴스(140-1, 140-2)는 동일한 또는 서로 다른 시간에 실행될 수 있다. 이러한 예시에서, 저장 서비스 제공자(120-1)는 인터넷과 같은 공용 네트워크 상에서 액세스 가능한 제 3 자 클라우드 저장 서비스(제 1 저장 서비스 제공자)에 의해 동작되는 클라우드 저장 시스템일 수 있다. 반면에 이러한 동일한 예시에서, 저장 서비스 제공자(120-2)는 애플리케이션 인스턴스(140)에 대해 권한이 부여된 사용자만이 액세스 가능한 기업 인트라넷 내에서 이용가능한 스토리지일 수 있다. 애플리케이션 인스턴스(140-1, 140-2)의 사용자는 제 2 서버(110-2)에 대한 액세스를 동작 및/또는 제어하는 기업의 직원(예를 들어, 제 2 저장 서비스 제공자(120-2))일 수 있다.
일반적으로, 본 명세서의 도면 및 설명에서 논의되는 바와 같이, 실행 중에 애플리케이션 인스턴스(140-1)는 저장소(180-1)(예를 들어, 특정한 사전정의된 데이터 포맷으로 제한될 수 있거나 요청하는 클라우드 내의 데이터 저장) 내의 프라이머리 애플리케이션 데이터(210-1)(프라이머리 데이터로도 지칭됨)의 저장을 생성 및 개시하기 위해 클라이언트 디바이스 상에서 동작하고 서버(110-1)와 통신한다. 이러한 예시에서, 컴퓨터 디바이스(115-1)의 사용자가 보조 데이터(250-1)(보조 애플리케이션 데이터로도 지칭됨)도 생성한다고 가정하자. 보조 데이터(250-1)는 애플리케이션(140)의 사용자 운영 인스턴스로부터 생성될 수 있다. 보조 데이터(250-1)의 예시는 사용자가 자신의 연락처 리스트 내에 주어진 연락처들에 대한 즐겨찾기의 표시를 제공하는 것을 포함한다. 이러한 예시가 제한을 의미하는 것은 아니다. 보조 데이터(250-1)는 제 1 저장 서비스 제공자(120-1)에 의해 동작되는 제 1 서버(110-1)에 의해 프라이머리 애플리케이션 데이터(210-1)와 함께 저장될 수 없는 애플리케이션(140)(인스턴스(140-1) 또는 인스턴스(140-2))에 의해 생성되는 임의의 데이터이다. 보조 데이터(250-1)가 프라이머리 데이터(210-1)와 저장될 수 없는 다수의 이유가 존재할 수 있다. 예시들은 데이터 포맷, 기록 포맷, 프로토콜, 데이터 타입, 크기, 보안 요구사항, 또는 그외의 보조 애플리케이션 데이터(250-1)의 측면 또는 특징이 저장 서버 제공자(120-1)에 의해 제공되는 것이 기술적으로 지원되거나, 호환가능하거나, 또는 허용되지 않는 하나 이상의 상황을 포함한다.
예시로서, 프라이머리 데이터(210-1)를 저장하기 위해 요구되는 데이터 또는 기록 포맷의 보조 데이터를 포함하기 위해 (즉, 제 1 저장 서비스 제공자(120-1)에 의해 저장되는 데이터에 의해) 클라우드 스토리지 내에서 확장될 수 없기 때문에, 저장 서비스 제공자(120-1)는 저장소(180-1) 내의 보조 데이터(250-1)와 같은 소정의 타입의 데이터를 저장하도록 구성되지 않았을 수 있다. 만약 다수의 엔티티가 제 1 저장 서비스 제공자(120-1)에 의해 제공되는 클라우드 스토리지를 이용하여 데이터를 저장하는 서로 다른 소프트웨어 애플리케이션을 가지고 클라우드 저장 데이터 포맷이 빈번하게 업데이트되지 않으면 이러한 상황이 존재할 수 있다. 반면에, 애플리케이션(140)의 소프트웨어 판매자는 사용자가 애플리케이션(140)의 앞선 버전 또는 릴리즈(release)에서 존재하지 않았던 추가 정보를 추가할 수 있게 하는 (예를 들어, 즐겨찾기 연락처로서 주어진 연락처를 식별) 애플리케이션(140)의 새로운 릴리즈를 배포할 수 있다. 이러한 예시에서, 새로운 즐겨찾기 연락처 정보는 제 1 저장 서비스 제공자(120-1)에 의해 저장을 위해 지원되지 않는 보조 데이터(250-1)이다. 본 명세서에서 설명되는 바와 같은 서버(110-2)와의 통신을 통해서, 애플리케이션 인스턴스(140-1)는 저장소(180-2) 내의 보조 데이터의 저장을 개시한다.
따라서, 애플리케이션 데이터의 부분이 네트워크 환경(100) 내의 복수의 서로 다른 위치들에서 저장될 수 있다. 예를 들어, 애플리케이션 데이터의 제 1 부분이 저장소(180-1) 내에 저장될 수 있고; 애플리케이션 데이터의 제 2 부분이 저장소(180-2) 내에 저장될 수 있다. 본 명세서에 개시된 시스템은 서로 다른 디바이스(115) 상에서 동작하는 애플리케이션(140)의 복수의 인스턴스가 이용가능한 (즉, 2차 위치(120-2, 180-2) 내에 저장된) 보조 애플리케이션 데이터가 존재하는 상황을 식별할 수 있게 하고, 애플리케이션 프라이머리 저장 서비스 제공자(120-1)(예를 들어, 클라우드 저장 환경)와 연관된 데이터 포맷, 프로토콜, 저장 메커니즘 등에 대한 수정을 필요로 하지 않고 이러한 보조 데이터에 대한 액세스(판독, 기록, 업데이트)를 허용한다. 시스템은 예를 들어 소프트웨어 애플리케이션(140)이 클라우드 스토리지 내에 데이터(프라이머리 데이터로 지칭됨)를 저장하도록 동작가능한 사전정의된 데이터 포맷에 대한 액세스를 허용하는 제 1 버전으로 처음 배포되었을 때 발생하는 이슈들을 극복한다. 그 다음 애플리케이션(140)은 사용자에게 보조 데이터(250-1)로도 지칭되는 추가 데이터를 생성, 저장 및/또는 업데이트할 수 있게 하도록 더욱 새로운 릴리즈에서 수정될 수 있다. 클라우드 스토리지는 데이터 타입, 저장 포맷 등의 수정을 허용하지 않는 제 3 자 저장 서비스에 의해 제공될 수 있다. 구체적인 예시로서, 제 1 저장 서비스 제공자(120-1)는 이러한 보조 데이터(250-1)의 저장을 지원하도록 클라우드 저장 데이터 포맷을 업데이트하지 않을 수 있다. 본 명세서에 개시된 시스템은 제 2 서버(110-2)를 이용하여 보조 데이터(250-1)를 저장함으로써 이러한 보조 데이터(250-1)에 대한 액세스 및 저장을 가능케 한다. 이렇게, 시스템은 애플리케이션(140)이 수정되는 것을 가능하게 하며, 여전히 프라이머리 애플리케이션 데이터의 저장을 위해 클라우드 스토리지(예를 들어, (120-1))를 사용하는 동시에 2차 또는 보조 스토리지 제공자(120-2)가 추가적인 보조 데이터(250-1)를 저장하는 것을 허용한다. 시스템은 또한 주어진 사용자가 서로 다른 컴퓨터 시스템(예를 들어, 랩탑, 데스크톱 및 모바일 디바이스) 상에서 동작할 수 있는 애플리케이션(140)의 서로 다른 인스턴스가 프라이머리 및 보조 애플리케이션 데이터 모두의 존재를 전부 식별하고 해당 사용자에 대해 이러한 두 개의 데이터의 세트에 액세스할 수 있게 한다.
도 2는 본 발명의 실시예에 따라 애플리케이션의 제 1 인스턴스가 보조 애플리케이션 데이터를 인덱싱하기 위한 고유 식별자 값을 생성하는 네트워크 환경의 예시적인 도면이다.
예를 들어, 도시된 바와 같이, 사용자는 제 1 컴퓨터 디바이스(115-1) 상에서 애플리케이션 인스턴스(140-1)를 실행한다. 애플리케이션(140-1)을 통해서, 사용자는 저장 서비스 제공자(120-1)의 서버(110-1)와의 통신을 통해 프라이머리 애플리케이션 데이터(210-1)를 검색한다. 사용자는 그래픽 사용자 인터페이스 내에 정보를 디스플레이하기 위한 것과 같은 임의의 적절한 목적을 위해서 프라이머리 애플리케이션 데이터(210-1)를 사용하도록 애플리케이션 인스턴스(140-1)에 입력을 제공한다.
만약 프라이머리 애플리케이션 데이터(210-1)가 아직 저장소(180-1) 내에 저장되지 않았다면, 사용자는 이러한 데이터를 생성하여 저장소(180-1) 내에 저장하도록 애플리케이션 인스턴스(140-1)에 입력을 제공할 수 있다.
이러한 예시에서, 애플리케이션 인스턴스(140-1)를 사용하는 동안, 사용자는 저장소(180-1) 내에 저장된 프라이머리 애플리케이션 데이터(210-1)와 관련된 보조 애플리케이션 데이터(250-1)를 생성한다. 보조 애플리케이션 데이터(250-1)는 프라이머리 애플리케이션 데이터(210-1)와 관련된 개선, 수정, 편집, 추가 정보 등을 표시할 수 있다. 따라서, 보조 애플리케이션 데이터(250-1)는 프라이머리 애플리케이션 데이터(210-1)와 일부 방식으로 연관될 수 있다. 한정적이지 않은 예시로서, 본 명세서에서 이후에 논의되는 바와 같이, 프라이머리 애플리케이션 데이터(210)는 사용자가 네트워크 환경 내의 하나 이상의 다른 사람들과 통신할 수 있게 하는 연락처 정보일 수 있다.
전술된 바와 같이, 이러한 예시에서 프라이머리 애플리케이션 데이터(210-1)를 저장하는 서버(110-1) 및 저장 서비스 제공자(120-1)가 사용자에 의해 생성된 보조 애플리케이션 데이터(250-1)의 저장을 지원할 수 없다고 가정하자. 본 발명의 실시예에 따르면, 애플리케이션 인스턴스(140-1)는 컴퓨터 디바이스(115-1)의 사용자로부터 입력된 보조 애플리케이션 데이터(250-1)를 수신한다. 본 명세서에서 설명된 바와 같이, 컴퓨터 디바이스(115-1) 상에서 실행하는 애플리케이션(140)은 보조 애플리케이션 데이터(250-1)를 프라이머리 애플리케이션 데이터(210-1)와 연관시킨다. 예를 들어 일 실시예에서, 보조 애플리케이션 데이터(250-1)를 프라이머리 애플리케이션 데이터(210-1)와 연관시키기 위해서, 애플리케이션 인스턴스(140-1)는 예를 들어 프라이머리 애플리케이션 데이터(210-1)의 적어도 일부분에 기초하여 고유 식별자 값(230-1)을 계산하기 위해서 프로세싱 함수(225)를 활용한다. 구체적인 실시예에서, 프로세싱 함수(225)는 애플리케이션의 제 1 인스턴스를 운영하는 사용자의 사용자 아이덴티티와 함께 프라이머리 애플리케이션 데이터(210-1)의 적어도 일부분에 해시 함수를 적용함으로써 고유 식별자 값(230-1)을 생성한다. 이것은 다른 디바이스 상에서 애플리케이션의 제 2 인스턴스의 사용자에 의해 보조 애플리케이션 데이터에 액세스하는 것을 허용하도록 보조 애플리케이션 데이터에 대한 고유 식별자 값을 생성한다. 이러한 방식으로, 사용자가 서로 다른 디바이스들 상의 동일한 소프트웨어를 동작하였을 때, 보조 애플리케이션 데이터가 각 인스턴스에 대해 이용가능해질 것이다.
애플리케이션 인스턴스(140-1)는 고유 식별자 값(230-1)을 서버(110-2)로 포워딩한다. 애플리케이션 인스턴스(140-1)는 또한 저장소(180-2) 내의 저장을 위해 보조 애플리케이션 데이터(250-1)를 제 2 저장 서비스 제공자(120-2)로 포워딩한다. 고유 식별자(230-1) 및 보조 애플리케이션 데이터(250-1)는 제 2 저장 서비스 제공자(120-2)에 별개로 전송될 수 있거나 또는 단일 기록으로 함께 전송될 수 있다. 일 실시예에서, 저장 서비스 제공자(120-2)는 UIV(Unique Identifier Value)(230-1)의 엔트리 및 보조 애플리케이션 데이터(250-1)로의 포인터를 맵(260) 내에 포함시킴으로써 고유 식별자 값(UIV)(230-1)을 보조 애플리케이션 데이터(250-1)와 연관시킨다.
일 실시예에서, 맵(260) 내의 UIV(230-1)는 보조 애플리케이션 데이터(250-1)로의 인덱스로서의 역할을 한다. 예를 들어, 논의된 바와 같이 저장 서비스 제공자(120-1)가 보조 애플리케이션 데이터(250-1)를 저장할 수 없거나 저장하도록 구성되지 않았기 때문에, 애플리케이션 인스턴스(140-1)는 저장 서비스 제공자(120-2)의 저장소(180-2) 내의 보조 애플리케이션 데이터(250-1)의 저장을 개시한다.
전술된 바와 같이, 애플리케이션 인스턴스(140-1)는 또한 저장 서비스 제공자(120-2)에게 고유 식별자 값(230-1)이 보조 애플리케이션 데이터(250-1)와 일치한다는 것을 통지한다. 따라서, 일 실시예에서, 애플리케이션 인스턴스(140-1)는 맵(260) 내의 인덱스 엔트리로서 UIV(230)를 효율적으로 생성한다. 예를 들어, 맵(260) 내의 엔트리는 UIV(230-1)를 저장소(180-2) 내에 저장된 보조 애플리케이션 데이터(250-1)로의 포인터와 연관시킨다.
저장 서비스 제공자(120-2)의 서버(110-2)는 네트워크 환경(100) 내에서 동작하는 애플리케이션(140)의 임의의 하나 이상의 다른 인스턴스에 의해 보조 애플리케이션 데이터(250-1)의 후속 검색을 가능하게 한다. 일반적으로, 그리고 아래에서 보다 자세하게 설명되는 바와 같이, 이는 실행시에 애플리케이션(140)의 임의의 인스턴스를 구비하고, 프라이머리 애플리케이션 데이터(210-1)의 검색된 세트에 대한 UIV 값을 계산하며, 그 다음 보조 애플리케이션 데이터 서버(110-2)로 이것을 전송함으로써 수행된다. 서버(110-2)는 임의의 보조 애플리케이션 데이터(250-1)가 존재하는지 여부를 결정하기 위해서 맵(260)을 검사하도록 UIV를 사용할 수 있다.
주어진 사용자는 시간의 제 1 포인트에 애플리케이션 인스턴스(140-1)를 실행할 수 있다. 주어진 사용자는 이후에 애플리케이션 인스턴스(140-2)를 실행할 수 있다. 저장 서비스 제공자(120)로의 액세스를 통해서, 주어진 사용자는 저장 서비스 제공자(120-2) 내의 수정을 저장할 수 있고 (예를 들어, 보조 애플리케이션 데이터를 통해) 동일하거나 서로 다른 컴퓨터 디바이스 상에서 실행되는 애플리케이션(140)의 인스턴스를 이용하여 이후에 이를 검색할 수 있다.
도 3은 애플리케이션의 제 2 인스턴스를 동작하는 사용자가 UIV(230)를 이용하여 본 발명의 실시예에 따라 제 2 서버로부터 저장된 보조 애플리케이션 데이터의 검색을 개시하는 네트워크 환경의 예시적인 도면이다.
도시된 바와 같이, 애플리케이션 인스턴스(140-2)는 저장소(180-1) 내에 저장된 프라이머리 데이터를 검색하도록 저장 서비스 제공자(120-1)와 통신한다. 애플리케이션 인스턴스(140-2)는 저장소(180-2)로부터 보조 데이터를 검색하도록 UIV(130)를 생성하여 UIV(130)를 저장 서비스 제공자(120-2)에 전달한다. 전술되고 아래에서 추가로 논의되는 바와 같이, UIV를 이용하여 저장 서비스 제공자(120-2)로부터 보조 애플리케이션 데이터를 저장 및 검색하기 위한 능력은 하나 이상의 사용자가 컴퓨터 디바이스 내에 데이터를 로컬로 저장해야 하거나 데이터를 잃지 않고 네트워크 환경(100) 내의 임의의 위치에서 컴퓨터 디바이스로부터 애플리케이션(140)의 인스턴스를 실행할 수 있게 한다.
도 4는 본 발명의 실시예에 따라 애플리케이션의 제 2 인스턴스가 고유 식별자 값을 이용하여 제 2 서버로부터 저장된 보조 애플리케이션 데이터의 검색을 개시하는 네트워크 환경의 예시적인 도면이다.
이러한 예시에서 네트워크 환경(100) 내의 사용자가 컴퓨터 디바이스(115-2)(도 1)와 같은 각각의 컴퓨터 디바이스 상에서 애플리케이션 인스턴스(140-2)의 실행을 개시한다고 가정하자.
애플리케이션 인스턴스(140-2)는 사용자가 보기 위한 그래픽 사용자 인터페이스를 디스플레이한다. 그래픽 사용자 인터페이스와 관련된 입력을 통해서, 사용자는 저장소(180-1) 또는 저장소(180-2), 또는 둘 모두에 저장될 애플리케이션(140)과 연관된 데이터(프라이머리 또는 보조 데이터)를 보기 위해 요청할 수 있다.
이러한 예시에서, 애플리케이션 인스턴스(140-2)의 사용자가 적어도 저장소(180-1)로부터 프라이머리 애플리케이션 데이터(210-1)의 검색을 요청하는 정보를 디스플레이하도록 그래픽 사용자 인터페이스를 동작한다고 가정하자. 입력에 응답하여, 애플리케이션 인스턴스(140-2)는 저장 서비스 제공자(120-1)로부터 프라이머리 애플리케이션 데이터(210-1)를 검색한다. 아래에서 논의되는 바와 같이, 애플리케이션 인스턴스(140-2)의 그래픽 사용자 인터페이스는 애플리케이션 인스턴스(140-2)에 보조 애플리케이션 데이터(250-1)를 검색하도록 요청하는 방식으로(예를 들어, 사용자가 자신의 즐겨찾기 연락처를 보기를 요청한다) 사용자에 의해 동작될 수 있다.
이러한 예시에서 저장 서비스 제공자(120-1)의 서버(110-1)가 저장소(180-1) 내의 보조 애플리케이션 데이터(250-1)를 저장할 수 없다는 것을 상기하여라(예를 들어, 보조 데이터(250-1)는 클라우드 저장 시스템 내에 저장가능하지 않다). 비한정적인 예시로서, 보조 애플리케이션 데이터(250-1)는 그래픽 사용자 인터페이스 상에 데이터를 디스플레이할 때 적용하기 위한 구체적인 특성을 표시할 수 있으며, 데이터, 기록 포맷, 프로토콜 또는 제공자(120-1)에 의해 제공되는 클라우드 저장 시스템의 다른 동작은 이러한 보조 데이터(250-1)의 저장을 지원하지 않는다.
일 실시예에서, 애플리케이션 인스턴스(140-2)는 수정 또는 보조 애플리케이션 데이터가 저장 서비스 제공자(120-2)로부터의 검색을 위해 이용가능한지 여부를 검사하도록 서버(110-2)에 대한 쿼리를 수행한다. 아래에 설명되는 바와 같이, 이는 프라이머리 데이터(210-1)에 대한 UIV(130)를 계산하고 이러한 UIV 값을 2차(보조) 저장 서비스 제공자(120-2)에게 전송함으로써 수행된다. 만약 프라이머리 애플리케이션 데이터(210-1)에 대해 이용가능한 보조 애플리케이션 데이터가 존재한다면, 애플리케이션 인스턴스는 저장 서비스 제공자(120-2)로부터 이러한 데이터의 검색을 개시한다.
보조 애플리케이션 데이터(250-1)를 검색하기 위해서, 프라이머리 애플리케이션 데이터(210-1)의 카피를 검색한 것에 후속하여, 애플리케이션 인스턴스(140-2)가 서버(110-1)로부터 검색된 프라이머리 애플리케이션 데이터(210-1)의 프로세싱(즉, 검색)에 적어도 부분적으로 기초하여 고유 식별자 값(애플리케이션 인스턴스(140-1)에 의해 이전에 생성된 것과 동일한 UIV)을 생성한다. 예를 들어 일 실시예에서, 애플리케이션 인스턴스(140-2)는 고유 식별자 값(230-1)을 생성하기 위해서 프라이머리 애플리케이션 데이터(210-1)의 적어도 일부분에 해시 함수와 같은 프로세싱 함수(225)를 적용한다. 해시 함수는 UIV(130-1)를 획득하기 위해서 프라이머리 애플리케이션 데이터(210-1)의 일부 부분 또는 복수의 서로 다른 부분들 또는 전부를 해싱하는 것을 포함할 수 있다. 사용자 아이덴티티는 해당 애플리케이션(즉, 해당 버전)에 대한 보조 애플리케이션 데이터(250)의 구체적인 적절한 세트를 해당 사용자에 연관시키도록 사용될 수 있도록 UIV(230-1)를 생성하기 위해 이러한 해시에 포함될 수 있다.
일 실시예에서, 프로세싱 함수(225)는 보조 애플리케이션 데이터가 처음 생성되었을 때 고유 식별자 값(230-1)을 생성하도록 제 1 애플리케이션 인스턴스(140-1)에 의해 사용되는 동일한 프로세싱 함수이다.
이러한 예시에서,애플리케이션 인스턴스(140-1)가 프라이머리 애플리케이션 데이터(210-1)가 저장소(180-1) 내의 프라이머리 애플리케이션 데이터(210-1)에 저장된 이래로 프라이머리 애플리케이션 데이터(210-1)가 변경되지 않았다고 가정하면, 애플리케이션 인스턴스(140-2)의 프로세싱 함수(225)는 저장 서비스 제공자(120-2) 내의 보조 애플리케이션 데이터(250-1)의 저장을 시작할 때 애플리케이션 인스턴스(140-1)가 생성하였던 동일한 인덱스 값을 생성한다.
예를 들어, 애플리케이션 인스턴스(140-2)는 프라이머리 애플리케이션 데이터(210-1)에 기초하여 고유 식별자 값(230-1)을 생성한다. 이러한 예시에서, 애플리케이션의 두 인스턴스(140) 모두가 동일한 프라이머리 애플리케이션 데이터(210-1)에 동일한 프로세싱 함수를 적용하기 때문에, 애플리케이션 인스턴스(140-2)에 의해 생성된 고유 식별자 값(230-1)은 애플리케이션 인스턴스(140-1)에 의해 생성된 고유 식별자 값(230-1)과 동일하다.
애플리케이션 인스턴스(140-2)는 저장 서비스 제공자(120-2)로부터 검색하기 위해 보조 애플리케이션 데이터를 식별하도록 고유 식별자 값(230-1)을 생성된 대로 인덱스로서 활용한다. 예를 들어, 애플리케이션 인스턴스(140-2)는 생성된 고유 식별자 값(230-1)을 서버(110-2)로 포워딩함으로써 보조 애플리케이션 데이터(250-1)의 검색을 개시한다. 서버(110-2)는 보조 애플리케이션 데이터(250-1)가 저장소(180-2) 내에 저장된 위치에 고유 식별자 값(230-1)을 맵핑한다.
서버(110-2)는 저장소(180-2)로부터 보조 애플리케이션 데이터(250-1)를 검색하여 이것을 애플리케이션 인스턴스(140-2)로 포워딩한다. 애플리케이션 인스턴스(140-2)는 따라서 서버(110-2)로부터 보조 애플리케이션 데이터(250-1)를 수신한다.
일 실시예에서, 애플리케이션 인스턴스(140-2)는 프라이머리 설정 정보를 식별하도록 검색된 프라이머리 애플리케이션 데이터(210-1)를 활용한다. 애플리케이션 인스턴스(140-2)는 프라이머리 애플리케이션 데이터(210-1)에 의해 명시된 것과 같이 프라이머리 설정과 관련된 수정을 식별하도록 검색된 보조 애플리케이션 데이터(250-1)를 활용한다.
이러한 방식으로, 동일한 실행된 애플리케이션의 복수의 서로 다른 애플리케이션 인스턴스들 각각이 애플리케이션의 이용을 잠재적으로 제한할 수 있는 단일 컴퓨터 디바이스 내에서 데이터를 로컬로 저장해야 할 필요 없이 클라우드 내의 하나 이상의 서로 다른 위치에 저장된 애플리케이션 데이터에 액세스할 수 있다.
전술된 바와 같이, 프라이머리 애플리케이션 데이터(210-1) 및 상응하는 보조 애플리케이션 데이터(250-1)는 주소록 애플리케이션 내에서 사용되는 연락처 정보일 수 있다. 이러한 실시예에서, 네트워크 환경(100) 내에 위치된 저장 서비스 제공자(120-1)에 애플리케이션 데이터가 다시 기록될 수 없는 동작, 커맨드 등을 사용자가 개시할 때, 애플리케이션 인스턴스(140-1)는 프라이머리 애플리케이션 데이터(210-1)(예를 들어, 특정한 연락처 정보)의 특성에 기초하여 고유 식별자 값(230-1)(예를 들어, 인덱스 값, 해시 기반 키, 등)을 생성한다. 애플리케이션 인스턴스(140-1)는 키에 의해서만 식별되는 추가적인 연락처 정보를 저장하도록 키 또는 인덱스 값으로서 고유 식별자 값(230-1)을 사용한다. 예를 들어, 일 실시예에서, 클라이언트 또는 애플리케이션 인스턴스(140-1)는 저장 서비스 제공자(120-2)로 고유 식별자 값(230-1)을 전송한다. 서버(110-2)는 고유 식별자 값(예를 들어, 키, 인덱스 값, 해시 값, 등)을 저장하며 보조 애플리케이션 데이터(250-1)가 주소록과 각각의 애플리케이션 데이터에 대한 액세스를 갖는 임의의 클라이언트(예를 들어, 네트워크 환경(100) 내의 애플리케이션 인스턴스(140))에 (본 명세서에 개시된 메커니즘을 통해서) 제공되도록 허용한다.
일 실시예에서, 애플리케이션 인스턴스(140-2)가 동기화를 시도할 때, 애플리케이션 인스턴스(140-2)가 저장 서비스 제공자(120-1)로부터 검색되고 저장된 프라이머리 애플리케이션 데이터에 의해 명시되는 바와 같은 연락처 각각에 대한 고유 식별자 값을 생성한다. 애플리케이션 인스턴스(140-2)는 보조 데이터가 각각의 연락처에 대해 이용가능한지 여부를 검사하도록 고유 식별자 값을 서버(110-2)에 포워딩한다. 만약 그렇다면, 서버(120-2)는 적절한 보조 애플리케이션 데이터를 애플리케이션 인스턴스(140-2)에 포워딩한다. 주소록 내의 각각의 연락처에 대한 보조 애플리케이션 데이터 및 프라이머리 애플리케이션 데이터의 검색을 통해서, 애플리케이션 인스턴스(140-2)가 적절하게 동기화될 수 있다.
소정의 경우에, 저장소(180-1) 내에 저장된 프라이머리 데이터의 주어진 세트에 대한 임의의 보조 애플리케이션 데이터가 존재하지 않을 수 있다. 이러한 인스턴스에서, 애플리케이션 인스턴스(140-2)는 그래픽 사용자 인터페이스 내에서 상응하는 정보의 디스플레이를 개시하도록 저장 서비스 제공자(120-1)로부터 검색된 프라이머리 애플리케이션 데이터만을 활용한다.
도 5는 본 발명의 실시예에 따라 프라이머리 애플리케이션 데이터를 보조 애플리케이션 데이터와 맵핑하기 위한 고유 식별자 값의 사용을 도시한 예시적인 도면이다.
전술된 바와 같이, 각각의 애플리케이션(140)의 사용자는 저장 서비스 제공자(120-1)의 저장소(180-1) 내의 프라이머리 애플리케이션 데이터(210)(예를 들어, 프라이머리 애플리케이션 데이터(210-1), 프라이머리 애플리케이션 데이터(210-2), 프라이머리 애플리케이션 데이터(210-3) 등)의 복수의 세트의 저장을 개시한다. 전술된 바와 같이, 비한정적인 예시로서, 프라이머리 애플리케이션 데이터는 연락처 정보일 수 있다.
앞서 논의된 바와 같이, 각각의 사용자는 보조 애플리케이션 데이터의 생성을 통해 프라이머리 애플리케이션 데이터를 수정할 수 있다. 이러한 예시에서, 사용자는 보조 애플리케이션 데이터(250-1)를 생성한다.
앞서 논의된 방식으로, 각각의 애플리케이션 인스턴스(140-1)는 고유 식별자 값(230-1)을 생성하고 저장 서비스 제공자(120-2)에서 고유 식별자 값(230-1) 및 보조 애플리케이션 데이터(250-1)의 저장을 개시한다.
이러한 예시에서 추가로 나타내어지는 바와 같이, 사용자는 프라이머리 애플리케이션 데이터(210-3)와 연관된 보조 애플리케이션 데이터(250-3)를 생성한다. 각각의 애플리케이션 인스턴스(140-1)는 고유 식별자 값(230-3)을 생성하고 저장 서비스 제공자(120-2) 내에 고유 식별자 값(250-3) 및 상응하는 보조 애플리케이션 데이터(250-3)를 저장하기 시작한다.
전술된 바와 같이, 맵(260)은 각각의 프라이머리 애플리케이션 데이터에 대해 생성된 보조 데이터와 고유 식별자 값 사이의 연관성을 저장한다.
일 실시예에서, 저장 서비스 제공자(120-2)는 복수의 서로 다른 사용자들 각각에 대한 보조 데이터를 저장할 수 있다. 이러한 인스턴스에서, 맵은 사용자에 기초하여 식별자 값을 그룹화하도록 구성될 수 있다. 예를 들어, 보조 애플리케이션을 검색하도록 요청하는 애플리케이션 인스턴스는 보조 애플리케이션 데이터의 이용가능성을 검사할 때 서버(110-2)에 사용자 식별자를 제공할 수 있다.
사용자의 식별자를 통해서, 저장 서비스 제공자(120-2)는 보조 애플리케이션 데이터가 사용자에 대한 저장 서비스 제공자(120-2) 내에 저장되었는지 여부를 식별하기 위해서 (맵(260) 내의 모든 고유 식별자 값을 검사하기보다는) 맵(260) 내에서 검사하기 위한 고유 식별자 값들의 상응하는 그룹을 식별할 수 있다.
도 6은 본 발명의 실시예에 따른 애플리케이션 인스턴스에 의한 프라이머리 애플리케이션 데이터 및 보조 애플리케이션 데이터의 사용을 도시한 예시적인 도면이다.
이러한 예시에서, 애플리케이션 인스턴스(140-1)를 통해 각각의 사용자에 의해 생성된 프라이머리 애플리케이션 데이터가 주소록 내의 엔트리들의 연락처 정보와 일치한다고 가정하자. 예를 들어, 프라이머리 애플리케이션 데이터(210-1)가 Joseph Smith와 같은 제 1 연락처와 연관된 정보(예를 들어, 이름, 이메일 정보, 전화번호 정보 등)를 포함하고; 프라이머리 애플리케이션 데이터(210-2)가 John Doe와 같은 제 2 연락처와 연관된 정보를 포함하고; 프라이머리 애플리케이션 데이터(210-3)가 David Johnson과 같은 제 3 연락처와 연관된 정보를 포함한다고 가정하자.
전술된 바와 같이, 프라이머리 애플리케이션 데이터(210)는 사용자 또는 일부 다른 리소스에 의해 생성될 수 있다.
저장 서비스 제공자(120-1)는 각각의 연락처와 연관된 이름, 이메일 정보, 전화번호 정보 등과 같은 소정의 정보를 저장할 수 있다. 그러나, 이러한 예시에서 애플리케이션(140)은 그래픽 사용자 인터페이스 내에 디스플레이될 때, 연락처 근처에 디스플레이하기 위한 여분 텍스트의 추가 등의 경우에 (즐겨찾기를 표시하기 위해 텍스트를 볼드체로 표시하는 것과 같은) 기능을 지원한다고 가정한다.
전술된 바와 같이, 저장 서비스 제공자(120-1)가 이러한 정보의 저장을 지원하지 않을 수 있는 몇몇 이유가 존재한다. 언급된 바와 같이, 애플리케이션 인스턴스는 이러한 상황에서 보조 애플리케이션 데이터(250)의 생성을 개시하도록 구성될 수 있다. 예를 들어, 애플리케이션 인스턴스(140-1)는 Joseph Smith를 즐겨찾기로서 강조하는 선택을 나타내도록 보조 애플리케이션 데이터(250-1)를 생성하고, 애플리케이션 인스턴스(140-1)는 엔트리 David Johnson에 대해 디스플레이될 추가 정보(예를 들어, 기업 및 제목 정보)를 나타내도록 추가 애플리케이션 데이터(250-3)를 생성한다. 애플리케이션 인스턴스(140-1)가 개발자(예를 들어, 소프트웨어 엔지니어)에 의해 기록되었을 때(예를 들어, 코딩되었을 때), 개발자는 프라이머리 저장 서비스 제공자(120-1) 내에 프라이머리 데이터(210)로서 저장될 수 없는 임의의 데이터에 대해 보조 저장 서비스 제공자(120-2) 내에 보조 애플리케이션 데이터(250)를 저장하도록 본 명세서에 개시된 메커니즘을 활용할 수 있다. 애플리케이션 프로그래밍 인터페이스(API)는 본 명세서에 개시된 프라이머리 애플리케이션 데이터의 검색, UIV의 생성 및 UIV의 통신과, 보조 저장 서비스 제공자(120-2)를 이용한 보조 애플리케이션 데이터의 저장 및 검색과 같은 일반적인 기능을 위해 제공될 수 있다.
전술된 바와 같은 방식으로, 애플리케이션 인스턴스(140-1)는 저장 서비스 제공자(120-2) 내의 보조 애플리케이션 데이터 및 상응하는 고유 식별자 값의 저장을 개시한다.
서로 다른 사용자들 중 일부가 네트워크 환경(100) 내의 연락처 정보를 보기 위해 애플리케이션 인스턴스(140-2)의 실행을 개시할 때, 애플리케이션 인스턴스(140-2)는 프라이머리 애플리케이션 데이터의 검색을 개시한다. 프라이머리 애플리케이션 데이터의 전부 또는 선택된 부분에 대한 프로세싱 함수(225)의 적용을 통해서, 애플리케이션 인스턴스(140-2)는 고유 식별자 값의 생성 및 각각의 보조 애플리케이션 데이터의 검색을 개시한다. 이러한 경우에서, 애플리케이션 인스턴스는 보조 애플리케이션 데이터(250-1), 보조 애플리케이션 데이터(250-3) 등의 검색을 개시하며, 보조 애플리케이션 데이터에 의해 명시된 바와 같은 설정을 연락처 관리자 그래픽 사용자 인터페이스(630) 내의 주소록에 결국 디스플레이되는 연락처 정보에 적용한다.
일 실시예에서, 애플리케이션 인스턴스(140-2)가 주소록에 디스플레이될 프라이머리 애플리케이션 데이터 정보에 대한 추가적인 수정을 개시할 수 있다. 이러한 경우에, 만약 주어진 인스턴스(140)가 저장 서비스 제공자(120-1)에 의해 저장된 프라이머리 애플리케이션 데이터의 세트에 대한 변경을 개시하면, 주어진 인스턴스는 프라이머리 애플리케이션 데이터의 세트에 대한 변경에 기초하여 새로운 고유 식별자 값을 생성하고 업데이트된 고유 식별자 값을 맵(260)에 저장하기 위해 서버(110-2)에 포워딩한다. 이러한 방식으로, UIV는 항상 프라이머리 애플리케이션 데이터의 가장 최근 세트인 "커런트(current)"이다. 만약 사용자가 상응하는 보조 애플리케이션 데이터도 수정한다면, 애플리케이션 인스턴스는 저장 및 후속 검색을 위해 업데이트된 보조 애플리케이션 데이터를 저장 서비스 제공자(120-2)에 포워딩한다. 따라서, 업데이트된 고유 식별자 값을 통해, 다른 애플리케이션 인스턴스는 프라이머리 애플리케이션 데이터가 변경되었다고 할지라도 보조 애플리케이션 데이터를 여전히 검색할 수 있으며, 보조 애플리케이션 데이터에 대한 임의의 변경이 이후의 검색을 위해서 (저장 서비스 제공자(120-2)에 의해) 캡처 및 저장된다.
도 7은 본 발명의 실시예에 따라 애플리케이션 인스턴스(140)와 연관된 기능을 실행하기 위한 컴퓨터 시스템의 예시적인 블록도이다.
컴퓨터 시스템(700)은 서버, 클라이언트 등으로서 동작하는 개인 컴퓨터, 워크스테이션, 휴대용 컴퓨팅 디바이스, 콘솔, 네트워크 단말, 프로세싱 디바이스, 네트워크 디바이스 등과 같은 하나 이상의 컴퓨터화된 디바이스를 포함할 수 있다.
아래에서는 본 발명의 실시예에 따라 애플리케이션 인스턴스(140)와 연관된 기능을 실행하는 방법을 나타내는 기본적인 실시예를 제공한다. 그러나, 본 명세서에 기술된 바와 같은 동작을 수행하기 위한 실질적인 구성은 각각의 응용에 따라서 다를 수 있음을 인지해야만 한다. 또한 각각의 서버(110-1), 서버(110-2) 등이 본 명세서에서 논의된 바와 같은 기능을 수행하기 위해 각각의 하나 이상의 프로세서 디바이스 및 컴퓨터 판독가능한 저장 매체와 같은 유사한 리소스로 구성될 수 있음을 인지하여라.
도시된 바와 같이, 본 예시의 컴퓨터 시스템(700)은 디지털 정보가 저장 및 검색될 수 있는 비일시적 타입의 컴퓨터 판독가능한 저장 매체와 같은 컴퓨터 판독가능한 저장 매체(312)를 연결하는 상호접속(311)을 포함한다. 컴퓨터 시스템(700)은 또한 프로세서 디바이스(313), I/O 인터페이스(314) 및 통신 인터페이스(317)를 더 포함한다.
I/O 인터페이스(314)는 저장소(780)와 같은 입력/출력 디바이스 및, 만약 존재한다면 디스플레이 스크린(730), 주변 디바이스(316)(예를 들어, 키보드, 컴퓨터 마우스 등) 등과 같은 다른 디바이스로의 접속성을 제공한다.
컴퓨터 판독가능한 저장 매체(312)는 메모리, 광학 스토리지, 하드 드라이브, 플로피 디스크 등과 같은 임의의 적절한 디바이스일 수 있다. 일 실시예에서, 컴퓨터 판독가능한 저장 매체(312)는 명령 및/또는 데이터를 저장하도록 구성된 저장 매체(즉, 하드웨어 저장 매체)이다.
통신 인터페이스(317)는 컴퓨터 시스템(700) 및 프로세서 디바이스(313)가 다른 컴퓨터, 서버 등과 같은 복수의 서로 다른 원격 리소스로 정보를 포워딩하고/하거나 그로부터 정보를 검색하도록 네트워크(190) 상에서 통신할 수 있게 한다. 전술된 바와 같이, I/O 인터페이스(314)는 프로세서 디바이스(313)로 하여금 저장소(780)로부터 각각의 정보를 검색할 수 있게 한다.
도시된 바와 같이, 컴퓨터 판독가능한 저장 매체(312)는 프로세서 디바이스(313)에 의해 실행되는 애플리케이션 인스턴스(140)(예를 들어, 소프트웨어, 펌웨어 등)로 인코딩될 수 있다.
일 실시예의 동작 동안에, 프로세서 디바이스(313)는 컴퓨터 판독가능한 저장 매체(312) 상에 저장된 애플리케이션(140-X)의 명령을 론칭, 구동, 실행, 해석 또는 그외의 방식으로 수행하기 위해서 상호접속(311)을 사용하여 컴퓨터 판독가능한 저장 매체(312)에 액세스한다.
애플리케이션(140-X)의 실행은 프로세서 디바이스(313) 내의 프로세스(141)와 같은 프로세싱 기능을 생성한다. 다시 말하면, 프로세서 디바이스(313)와 연관된 애플리케이션(140-X)은 컴퓨터 시스템(700) 내의 프로세서 디바이스(313) 상의 또는 그 안의 실행중인 애플리케이션(140)의 인스턴스를 나타낸다.
당업자는 애플리케이션(140)을 실행하기 위해 하드웨어 리소스의 할당 및 이용을 제어하는 운영 시스템과 같은 다른 프로세스 및/또는 소프트웨어 및 하드웨어 구성요소를 포함할 수 있다.
다른 실시예에 따르면, 컴퓨터 시스템(700)은 개인 컴퓨터 시스템, 데스크톱 컴퓨터, 랩탑, 노트북, 넷북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 애플리케이션 서버, 저장 디바이스, 카메라, 캠코더, 셋톱박스, 모바일 디바이스, 비디오 게임 콘솔, 핸드헬드 비디오 게임 디바이스, 스위치, 모뎀, 라우터와 같은 주변 디바이스와 같은 소비자 전자기기 디바이스, 또는 일반적으로 임의의 타입의 컴퓨팅 또는 전자 디바이스를 포함하는 다양한 타입의 임의의 디바이스일 수 있지만, 이것으로 한정되는 것은 아님을 인지하여라.
애플리케이션 인스턴스(140)에 의해 지원되는 기능이 도 8 및 9의 순서도를 통해 논의될 것이다. 도 1 내지 7에 대해 전술된 개념들과 관련하여 일부 겹쳐질 수 있다. 또한, 아래의 순서도에서의 단계들이 항상 도시된 순서대로 실행되어야만 하는 것은 아님을 인지하여라. 즉, 단계들은 임의의 적절한 순서대로 실행될 수 있다.
도 8은 본 발명의 실시예에 따라 프라이머리 애플리케이션 데이터를 프로세싱하는 방법을 도시한 순서도(800)이다.
단계(810)에서, 애플리케이션 인스턴스(140-1)는 프라이머리 애플리케이션 데이터(210-1)를 검색한다. 프라이머리 애플리케이션 데이터(210-1)는 서버(110-1)로부터 검색될 수 있거나 또는 사용자에 의해 생성될 수 있다.
단계(820)에서, 애플리케이션 인스턴스(140-1)는 프라이머리 애플리케이션 데이터(210-1)와 연관될 보조 애플리케이션 데이터를 수신한다.
단계(830)에서, 애플리케이션 인스턴스(140-1)는 프라이머리 애플리케이션 데이터(210-1)에 적어도 부분적으로 기초하여 고유 식별자 값(230-1)을 컴퓨팅한다.
하위 단계(840)에서, 애플리케이션 인스턴스(140-1)는 보조 애플리케이션 데이터(250-1)와 연관시키기 위한 고유 식별자 값(230-1)을 생성하도록 프라이머리 애플리케이션 데이터(210-1)의 적어도 일부분(예를 들어, 이메일 어드레스, 전화번호 등)에 해시 함수와 같은 프로세싱 함수를 적용한다.
단계(850)에서, 애플리케이션 인스턴스(140-1)는 고유 식별자 값(230-1)을 서버(110-2)에 포워딩하고; 서버(110-2)는 애플리케이션 인스턴스(140-2)에 의해 추가 애플리케이션 데이터(250-1)의 후속 검색을 가능하게 한다.
단계(860)에서, 애플리케이션 인스턴스(140-1)는 서버(120-2) 내의 보조 애플리케이션 데이터(250-1)의 저장을 개시한다.
단계(870)에서, 서버(110-2)는 고유 식별자 값(230-1)을 저장소(180-2)에 저장된 보조 애플리케이션 데이터(250-1)에 연관시키는 맵(260) 내의 인덱스 엔트리의 저장을 개시한다.
도 9는 본 발명의 실시예에 따라 애플리케이션 데이터를 프로세싱하는 방법을 도시한 순서도(900)이다.
단계(910)에서, 애플리케이션 인스턴스(140-2)는 서버(110-1)로부터 프라이머리 애플리케이션 데이터(210-1)를 검색한다.
단계(920)에서, 애플리케이션 인스턴스(140-2)는 서버(110-1)로부터 검색된 프라이머리 애플리케이션 데이터(210-1)에 적어도 부분적으로 기초하여 고유 식별자 값(230-1)을 생성한다.
하위 단계(930)에서, 애플리케이션 인스턴스(140-2)는 고유 식별자 값(230-1)을 생성하도록 프라이머리 애플리케이션 데이터(210-1)의 적어도 일부분에 해시 또는 다른 적절한 함수를 적용한다.
단계(940)에서, 애플리케이션 인스턴스(140-2)는 저장 서비스 제공자(120-2) 내에 저장된 보조 애플리케이션 데이터(250-1)를 식별하기 위해 (애플리케이션 인스턴스(140-2)에 의해 생성되는) 고유 식별자 값(230-1)을 인덱스로서 활용한다.
하위 단계(950)에서, 애플리케이션 인스턴스(140-2)는 고유 식별자 값(230-1)을 서버(110-2)에 포워딩한다. 제 2 서버(110-2)는 애플리케이션 인스턴스(140-2)에 의해 생성된 것과 같은 고유 식별자 값(230-1)을 보조 애플리케이션 데이터(250-1)에 맵핑한다.
단계(960)에서, 애플리케이션 인스턴스(140-2)는 서버(110-2)로부터 보조 애플리케이션 데이터(250-1)의 검색을 개시한다.
하위 단계(965)에서, 애플리케이션 인스턴스(140-2)는 서버(110-2)로부터 보조 애플리케이션 데이터(250-1)를 수신한다.
단계(970)에서, 애플리케이션 인스턴스(140-2)는 애플리케이션 인스턴스(140-2)와 연관된 프라이머리 설정을 식별하기 위해 검색된 프라이머리 애플리케이션 데이터(210-1)를 활용한다.
단계(980)에서, 애플리케이션 인스턴스(140-2)는 프라이머리 애플리케이션 데이터(210-1)에 의해 명시된 바와 같은 프라이머리 설정과 관련된 수정을 식별하도록 보조 애플리케이션 데이터(250-1)를 활용한다.
본 명세서에 개시된 기술을 이용하여, 동일한 실행된 애플리케이션의 복수의 서로 다른 인스턴스 각각은 클라우드 컴퓨팅 환경에 의해 제공되는 데이터 서비스에 액세스할 수 있는 반면, 동시에 컴퓨터 시스템의 이용을 제한할 수 있는 보조 데이터의 로컬 저장을 해야할 필요 없이 하나 이상의 서로 다른 위치에서 저장된 보조 애플리케이션 데이터에 액세스함으로써 애플리케이션의 맞춤화를 허용한다. 이러한 방식으로, 클라우드 컴퓨팅 환경이 추가적인 특성을 지원하지 않을 수 있지만, 본 명세서에 개시된 시스템을 이용하는 애플리케이션은 사용자에 추가적인 서비스를 제공할 수 있으며 (추가 데이터의 저장 및 액세스를 필요로 하는) 이러한 서비스는 사용자에 의해 사용되는 서로 다른 디바이스 상에서 이용가능할 것이다.
보조 애플리케이션 데이터를 검색하기 위해 고유 식별자 값을 생성하도록 서로 애플리케이션의 서로 다른 인스턴스들에 의해서 사용되는 동일한 프로세싱 함수는 애플리케이션의 사용자에 대해서 고유할 수 있다. 따라서, (가능할 수 있는 애플리케이션들 중에서) 오직 사용자의 애플리케이션만이 보조 애플리케이션 데이터를 검색하기 위한 적절한 키 또는 인덱스 값을 생성할 수 있을 것이다. 따라서, 본 발명의 실시예는 종래의 기술을 뛰어넘는 보안 레벨을 제공할 수 있다.
전술된 바와 같이, 예시적인 실시예에서 프라이머리 애플리케이션 데이터 및 보조 애플리케이션 데이터는 주소록에서 사용되는 연락처 정보와 관련될 수 있다. 이러한 실시예에서, 애플리케이션의 제 1 인스턴스에서 사용자가 네트워크 내에 위치된 제 1 저장 서비스 제공자에게 다시 기록될 수 없는 데이터를 생성 또는 수정하도록 애플리케이션을 동작할 때, 애플리케이션(140)은 프라이머리 애플리케이션 데이터(예를 들어, 특정한 연락처 정보)의 특성에 기초하여 고유 식별자 값(예를 들어, 인덱스 값, 해시 기반 키 등)을 생성하며, 키에 의해서만 식별되는 추가 연락처 정보를 저장하도록 이러한 키를 사용한다. 애플리케이션은 그 다음 제 2 저장 서비스 제공자에게 이러한 고유 식별자 값을 전송한다. 제 2 저장 서비스 제공자는 고유 식별자 값을 제공하여 보조 애플리케이션 데이터가 사용자에 의해 동작되는 해당 애플리케이션의 임의의 다른 인스턴스에 동기화되게 한다.
애플리케이션의 제 2 인스턴스가 동기화를 시도할 때, 애플리케이션의 제 2 인스턴스는 연락처 각각에 대한 해시 값을 생성한다. 애플리케이션의 제 2 인스턴스는 해시 값(즉, 고유 식별자 값)을 보조 서버에 포워딩하여 보조 데이터가 각각의 연락처에 대해서 이용가능한지 여부를 검사한다. 만약 그렇다면, 보조 서버는 데이터를 애플리케이션의 제 2 인스턴스로 포워딩한다. 제 1 저장 서비스 제공자로부터의 프라이머리 애플리케이션 데이터 검색 및 제 2 저장 서비스 제공자로부터의 각각의 연락처에 대한 보조 애플리케이션 데이터의 검색을 통해, 애플리케이션의 제 2 인스턴스가 적절하게 동기화될 수 있다.
본 명세서에 개시된 기술은 소프트웨어의 복수의 인스턴스들이 개별적으로 위치되어 네트워크에 접속된 복수의 디바이스 상에서 실행될 수 있는 애플리케이션에서의 이용에 적절하다. 그러나, 본 발명의 실시예가 이러한 애플리케이션에서의 사용으로 한정되는 것이 아니며, 본 명세서에 개시된 기술이 다른 애플리케이션들에도 적합하다는 것을 인지해야만 한다.
본 발명의 실시예는 본 명세서에 개시된 방법 동작들의 일부 또는 전부를 수행 및/또는 지원하기 위한 하나 이상의 컴퓨터화된 디바이스, 워크스테이션, 핸드헬드 또는 랩탑 컴퓨터 등의 구성을 포함할 수 있음을 인지하여라. 다시 말하면, 하나 이상의 컴퓨터화된 디바이스 또는 프로세서가 본 발명의 서로 다른 실시예들을 실행하기 위해 본 명세서에서 설명된 바와 같이 동작하도록 프로그램 및/또는 구성될 수 있다.
본 발명의 또 다른 실시예는 위에서 요약되고 아래에서 보다 구체적으로 기술된 단계 및 동작들을 수행하기 위한 소프트웨어 프로그램을 포함한다. 이러한 일 실시예는 소프트웨어 명령이 이후의 실행을 위해서 인코딩된 컴퓨터 판독가능한 저장 매체(즉, 임의의 타입의 하드웨어 저장 매체)를 포함하는 컴퓨터 프로그램 제품을 포함한다. 명령 및/또는 프로그램이 프로세서를 구비하는 컴퓨터화된 디바이스 내에서 실행되면, 프로세서로 하여금 본 명세서에 개시된 동작들을 수행하게 한다. 이러한 구성은 전형적으로 소프트웨어, 코드, 명령, 및/또는 광학 매체(예를 들어, CD-ROM), 플로피 디스크, 하드 디스크, 메모리 스틱 등과 같은 비일시적 컴퓨터 판독가능한 저장 매체, 또는 하나 이상의 ROM, RAM, PROM 등에 있는 펌웨어 또는 마이크로코드와 같은 다른 매체 상에서 구성 또는 인코딩된 다른 데이터(예를 들어, 데이터 구조), 또는 애플리케이션 특정 집적 회로(ASIC) 등으로서 제공된다. 소프트웨어 또는 펌웨어 또는 다른 이러한 구성이 컴퓨터화된 디바이스로 하여금 본 명세서에 설명된 기술을 수행하도록 하기 위해 컴퓨터화된 디바이스 상에 설치될 수 있다.
본 발명의 다른 실시예는 위에서 요약되고 아래에서 상세하게 개시된 임의의 방법 실시예의 단계 및 동작을 수행하기 위한 소프트웨어 프로그램 및/또는 각각의 하드웨어를 포함한다. 명확성을 위해서 단계들의 순서가 추가되었다. 이러한 단계들은 임의의 적절한 순서로 수행될 수 있다.
본 명세서에 개시된 바와 같은 시스템, 방법, 장치, 컴퓨터 판독가능한 저장 매체 상의 명령이 소프트웨어 프로그램, 또는 소프트웨어와 하드웨어의 혼합, 또는 프로세서, 운영 시스템 또는 소프트웨어 애플리케이션 내의 하드웨어로서 정확하게 구현될 수 있음이 이해될 것이다. 본 발명의 예시적인 실시예는 미국 워싱턴 Redmond에 소재한 Microsoft Corporation사에 의해 제작된 것과 같은 소프트웨어 애플리케이션 및/또는 제품 내에 구현될 수 있다.
또한, 본 발명의 각각의 서로 다른 특성, 기술, 구성 등이 본 명세서의 서로 다른 부분들에서 논의되었지만, 적절한 경우 각각의 개념이 서로 독립적으로 실행될 수 있거나, 또는 서로 결합하여 사용될 수 있다. 따라서, 본 명세서에 기술된 본 발명은 다수의 서로 다른 방식으로 구현되고 나타내어질 수 있다.
본 명세서에 개진된 설명에 기초하여, 다수의 특정한 세부사항이 청구된 청구사항에 대한 철저한 이해를 제공하도록 기술되었다. 그러나, 당업자는 청구된 청구사항이 이러한 특정한 세부사항 없이 실시될 수 있음을 이해할 것이다. 다른 경우에서, 당업자에게 잘 알려진 방법, 장치, 시스템 등은 청구된 청구사항을 불필요하게 흐리지 않도록 상세하게 기술되지 않았다. 상세한 설명의 일부분은 컴퓨터 메모리와 같은 컴퓨팅 시스템 메모리 내에 저장된 데이터 비트 또는 바이너리 디지털 신호에 대한 동작의 상징적인 표현 또는 알고리즘에 관해서 제시되었다. 이러한 알고리즘 기술 또는 표현은 데이터 프로세싱 분야의 당업자가 그들의 작업의 실체를 다른 당업자에게 전달하기 위해 당업자에 의해서 사용되는 기술의 예시이다. 본 명세서에 기술된 바와 같은 알고리즘은 일반적으로 원하는 결과를 도출하는 동작들의 자기-일관적(self-consistent) 시퀀스 또는 유사한 프로세싱으로 간주된다. 이러한 맥락에서, 동작 또는 프로세싱은 물리적 양의 물리적 조작을 포함한다. 전형적으로, 이러한 물리적 양은 프로세싱 회로 및/또는 소프트웨어를 통해 저장, 전달, 결합, 비교 또는 그외의 방식으로 조작될 수 있는 전기적 또는 자기적 신호의 형태를 취할 수 있지만, 반드시 그러한 것은 아니다. 비트, 데이터, 값, 요소, 심볼, 문자, 용어, 숫자, 수사(numerals) 등과 같은 신호를 지칭하는 것이 일반적인 사용의 이유로 편리하다는 것이 증명되었다. 그러나, 이러한 모든 용어들과 유사한 용어들이 적절한 물리적 양과 연관되며 단지 편의를 위한 라벨이라는 것을 이해해야만 한다. 달리 구체적으로 언급되지 않는 한, 아래의 논의로부터 명백한 바와 같이, 본 명세서 전반에 걸쳐 "프로세싱", "컴퓨팅", "계산", "결정" 등과 같은 용어들을 이용하여 메모리, 레지스터 또는 다른 정보 저장 디바이스, 전송 디바이스, 또는 컴퓨팅 플랫폼의 디스플레이 디바이스 내의 물리적 전자 또는 자기적인 양으로서 표현되는 데이터를 조작 또는 변형하는 컴퓨터와 같은 컴퓨팅 플랫폼 또는 유사한 전자 컴퓨팅 디바이스의 동작 또는 프로세스를 지칭한다는 것이 이해될 것이다.
본 발명이 바람직한 실시예를 참조하여 구체적으로 도시되고 기술되었지만, 첨부된 특허청구범위에 의해 정의된 바와 같은 본 발명의 사상 및 범주로부터 벗어나지 않고 당업자는 형태 및 세부사항에서의 다양한 변경이 이루어질 수 있음이 이해될 것이다. 이러한 변경은 본 발명의 범주에 의해 커버된다. 이렇게, 본 발명의 실시예에 대한 전술된 설명은 한정을 위한 것이 아니다. 오히려, 본 발명에 대한 임의의 한정은 아래의 특허청구범위에서 제시된다.

Claims (15)

  1. 애플리케이션의 제 1 인스턴스(instance)에서,
    제 1 서버로부터 프라이머리 애플리케이션 데이터(primary application data)를 검색하는 단계와,
    상기 프라이머리 애플리케이션 데이터와 연관된 보조 애플리케이션 데이터(supplemental application data)를 수신하는 단계와,
    상기 프라이머리 애플리케이션 데이터에 적어도 부분적으로 기초하여 제 1 고유 식별자 값(unique identifier value)을 계산하는 단계와,
    상기 제 1 고유 식별자 값을 제 2 서버에 포워딩하는 단계를 포함하되,
    상기 제 2 서버는 상기 제 1 고유 식별자 값을 이용하여 상기 애플리케이션의 제 2 인스턴스에 의한 상기 보조 애플리케이션 데이터의 후속 검색을 가능하게 하는
    방법.
  2. 제 1 항에 있어서,
    상기 애플리케이션의 상기 제 2 인스턴스에서,
    상기 제 1 서버로부터 상기 프라이머리 애플리케이션 데이터를 검색하는 단계와,
    상기 프라이머리 애플리케이션 데이터에 적어도 부분적으로 기초하여 제 2 고유 식별자 값을 계산하는 단계와,
    상기 보조 애플리케이션 데이터를 식별하여 상기 보조 애플리케이션 데이터를 상기 제 2 서버로부터 검색하기 위해 상기 제 2 인스턴스에 의해 생성된 상기 제 2 고유 식별자 값을 인덱스로서 사용하는 단계를 더 포함하는
    방법.
  3. 제 2 항에 있어서,
    상기 제 2 인스턴스에 의해 생성된 상기 제 2 고유 식별자 값을 사용하는 단계는,
    상기 애플리케이션의 상기 제 2 인스턴스에 의해 생성된 상기 제 2 고유 식별자 값을 상기 제 2 서버에 포워딩하는 단계 -상기 제 2 서버는 상기 제 2 고유 식별자 값을 상기 제 1 고유 식별자 값에 비교함으로써 상기 제 2 고유 식별자 값을 상기 보조 애플리케이션 데이터에 맵핑함- 와,
    상기 제 2 서버로부터 상기 보조 애플리케이션 데이터를 수신하는 단계를 포함하는
    방법.
  4. 제 3 항에 있어서,
    제 1 저장 서비스 제공자에 의해 상기 제 1 서버를 운영하는 단계와,
    제 2 저장 서비스 제공자로서 상기 제 2 서버를 운영하는 단계를 더 포함하되,
    상기 제 2 저장 서비스 제공자는 상기 제 1 저장 서비스 제공자와 상이한 엔티티이며, 상기 보조 애플리케이션 데이터는 상기 제 1 서버 내에 프라이머리 애플리케이션 데이터로서 저장될 수 없는 데이터인
    방법.
  5. 제 2 항에 있어서,
    상기 애플리케이션의 상기 제 2 인스턴스를 통해서,
    상기 애플리케이션에 의해 사용되는 프라이머리 설정을 식별하기 위해 상기 검색된 프라이머리 애플리케이션 데이터를 사용하는 단계와,
    상기 프라이머리 설정과 관련된 수정(modification)을 식별하기 위해 상기 보조 애플리케이션 데이터를 사용하는 단계를 더 포함하되,
    상기 수정은 상기 제 1 서버 내에 상기 프라이머리 애플리케이션 데이터와 함께 저장될 수 없는 데이터인
    방법.
  6. 제 1 항에 있어서,
    상기 애플리케이션의 상기 제 1 인스턴스를 통해,
    상기 제 2 서버 내에 상기 보조 애플리케이션 데이터를 저장하는 단계와,
    상기 제 1 고유 식별자 값을 상기 제 2 서버 내에 저장된 상기 보조 애플리케이션 데이터에 연관시키는 인덱스 엔트리를 생성하는 단계와,
    상기 제 2 서버로부터 상기 보조 애플리케이션 데이터를 검색하기 위해 상기 인덱스 엔트리를 저장하는 단계를 더 포함하는
    방법.
  7. 제 1 항에 있어서,
    상기 애플리케이션의 제 2 인스턴스를 통해,
    상기 보조 애플리케이션 데이터를 식별하기 위해 상기 제 1 고유 식별자 값을 인덱스로서 사용하는 단계와,
    상기 제 2 서버로부터 상기 보조 애플리케이션 데이터를 수신하는 단계를 더 포함하는
    방법.
  8. 제 1 항에 있어서,
    상기 프라이머리 애플리케이션 데이터에 적어도 부분적으로 기초하여 상기 제 1 고유 식별자 값을 계산하는 단계는,
    상기 보조 애플리케이션 데이터와 연관시키기 위한 상기 제 1 고유 식별자 값을 생성하기 위해서 상기 애플리케이션의 제 1 인스턴스를 운영하는 사용자의 사용자 아이덴티티 및 상기 프라이머리 애플리케이션 데이터의 적어도 일부분에 해시 함수(hash function)를 적용함으로써 상기 애플리케이션의 제 2 인스턴스의 상기 사용자에 의한 상기 보조 애플리케이션 데이터로의 액세스를 허용하는 단계를 포함하되,
    상기 프라이머리 애플리케이션 데이터는 상기 애플리케이션의 상기 제 1 인스턴스에 의해 사용되는 설정 정보를 적어도 부분적으로 명시하고,
    상기 제 1 고유 식별자 값에 의해 인덱싱되는 상기 보조 애플리케이션 데이터는 상기 프라이머리 애플리케이션 데이터와 관련된 수정을 명시하는
    방법.
  9. 제 1 항에 있어서,
    상기 애플리케이션의 상기 제 2 인스턴스를 통해서,
    상기 제 1 서버로부터 상기 프라이머리 애플리케이션 데이터를 검색하는 단계와,
    상기 프라이머리 애플리케이션 데이터를 수정하는 단계와,
    상기 수정된 프라이머리 애플리케이션 데이터를 상기 제 1 서버에 저장하는 단계와,
    상기 수정된 프라이머리 애플리케이션 데이터에 기초하여 상기 제 2 고유 식별자 값을 계산하는 단계와,
    상기 수정된 프라이머리 애플리케이션 데이터에 대한 상기 제 2 고유 식별자 값을 상기 제 2 서버에 포워딩하는 단계를 더 포함하되,
    상기 제 2 고유 식별자는 상기 애플리케이션의 상기 후속 인스턴스의 사용자를 위해 상기 애플리케이션의 후속 인스턴스가 상기 프라이머리 애플리케이션 데이터에 연관된 보조 애플리케이션 데이터를 식별할 수 있게 하는
    방법.
  10. 제 9 항에 있어서,
    상기 사용자는 네트워크 환경 내의 제 1 위치에 있는 제 1 컴퓨터 상에서 상기 애플리케이션의 상기 제 1 인스턴스를 실행하고,
    상기 사용자는 상기 네트워크 환경 내의 제 2 위치에 있는 적어도 하나의 제 2 컴퓨터 상에서 상기 제 2 인스턴스 및 상기 애플리케이션의 상기 후속 인스턴스를 실행하는
    방법.
  11. 컴퓨터 디바이스 상에서 실행되는 애플리케이션의 제 1 인스턴스를 통해서,
    제 1 서버로부터 프라이머리 애플리케이션 데이터를 검색하는 단계와,
    상기 프라이머리 애플리케이션 데이터에 적어도 부분적으로 기초해서 고유 식별자 값을 계산하는 단계와,
    제 2 서버에 의해 저장된 보조 애플리케이션 데이터를 식별하기 위해 상기 제 1 인스턴스에 의해 생성된 상기 고유 식별자 값을 인덱스로서 사용하는 단계와,
    상기 제 2 서버로부터 상기 식별된 보조 애플리케이션 데이터를 검색하는 단계를 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 제 1 인스턴스에 의해 계산된 상기 고유 식별자 값을 사용하는 단계는 상기 애플리케이션의 상기 제 1 인스턴스에 의해 생성된 상기 고유 식별자 값을 상기 제 2 서버에 포워딩하는 단계를 포함하되,
    상기 제 2 서버는 상기 고유 식별자 값을 상기 보조 애플리케이션 데이터에 맵핑하고,
    상기 제 2 서버로부터의 상기 보조 애플리케이션 데이터의 검색 개시는 상기 제 2 서버로부터 상기 보조 애플리케이션 데이터를 수신하는 것을 포함하는
    방법.
  13. 제 12 항에 있어서,
    제 1 저장 서비스 제공자에 의해 상기 제 1 서버를 운영하는 단계와,
    제 2 저장 서비스 제공자로서 상기 제 2 서버를 운영하는 단계를 더 포함하되,
    상기 제 2 저장 서비스 제공자는 상기 제 1 저장 서비스 제공자와 상이한 엔티티이며, 상기 보조 애플리케이션 데이터는 상기 제 1 서버 내에 프라이머리 애플리케이션 데이터로서 저장될 수 없는 데이터인
    방법.
  14. 제 11 항에 있어서,
    상기 애플리케이션의 제 2 인스턴스는, 상기 보조 애플리케이션 데이터를 식별하기 위해 상기 고유 식별자 값을 인덱스로서 사용하기에 앞서
    상기 제 1 서버로부터 상기 프라이머리 애플리케이션 데이터를 검색하는 단계와,
    상기 프라이머리 애플리케이션 데이터와 연관되는 상기 보조 애플리케이션 데이터를 수신하는 단계와,
    상기 프라이머리 애플리케이션 데이터에 적어도 부분적으로 기초하여 상기 고유 식별자 값을 계산하는 단계와,
    상기 제 2 서버에 상기 고유 식별자 값을 포워딩하는 단계
    의 실행을 개시하는
    방법.
  15. 제 11 항에 있어서,
    상기 애플리케이션에 의해 사용되는 프라이머리 설정을 식별하기 위해 상기 검색된 프라이머리 애플리케이션 데이터를 사용하는 단계와,
    상기 프라이머리 설정과 관련된 수정을 식별하기 위해 상기 보조 애플리케이션 데이터를 사용하는 단계를 더 포함하되,
    상기 고유 식별자 값을 생성하는 단계는 상기 고유 식별자 값을 생성하기 위해 상기 프라이머리 애플리케이션 데이터의 적어도 일부분에 해시 함수를 적용하는 단계를 포함하고,
    상기 프라이머리 애플리케이션 데이터는 상기 애플리케이션의 상기 제 1 인스턴스에 의해 사용되는 설정 정보를 적어도 부분적으로 명시하며,
    상기 고유 식별자 값에 의해 인덱싱되는 상기 보조 애플리케이션 데이터는 상기 프라이머리 애플리케이션 데이터와 관련된 수정을 명시하는
    방법.
KR1020147015120A 2011-12-09 2012-11-29 상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법 KR102032583B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/315,304 US9396277B2 (en) 2011-12-09 2011-12-09 Access to supplemental data based on identifier derived from corresponding primary application data
US13/315,304 2011-12-09
PCT/US2012/066916 WO2013085779A1 (en) 2011-12-09 2012-11-29 Access to supplemental data based on identifier derived from corresponding primary application data

Publications (2)

Publication Number Publication Date
KR20140099892A true KR20140099892A (ko) 2014-08-13
KR102032583B1 KR102032583B1 (ko) 2019-11-08

Family

ID=48573056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147015120A KR102032583B1 (ko) 2011-12-09 2012-11-29 상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법

Country Status (6)

Country Link
US (2) US9396277B2 (ko)
EP (1) EP2788886B1 (ko)
JP (2) JP6150816B2 (ko)
KR (1) KR102032583B1 (ko)
CN (1) CN104011698B (ko)
WO (1) WO2013085779A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229771B2 (en) * 2012-03-08 2016-01-05 Microsoft Technology Licensing, Llc Cloud bursting and management of cloud-bursted applications
US9317709B2 (en) 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
US9444896B2 (en) 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US20150127770A1 (en) * 2013-11-06 2015-05-07 Pax8, Inc. Distributed Cloud Disk Service Provisioning and Management
EP3158713B1 (en) * 2014-06-19 2021-05-26 InterDigital CE Patent Holdings Cloud service supplementing embedded natural language processing engine
US11381476B2 (en) 2018-12-11 2022-07-05 Sap Se Standardized format for containerized applications
US11212366B2 (en) * 2018-12-11 2021-12-28 Sap Se Kubernetes as a distributed operating system for multitenancy/multiuser
CN110189171B (zh) * 2019-05-27 2021-08-06 北京金山安全软件有限公司 特征数据的生成方法、装置及设备
US20210092199A1 (en) * 2019-09-24 2021-03-25 International Business Machines Corporation Cachability of single page applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300143A1 (en) * 2006-06-12 2007-12-27 David Michael Vanderport Electronic documentation
WO2008010473A1 (fr) * 2006-07-19 2008-01-24 Panasonic Corporation Système de gestion de fichiers distribués
JP2010287036A (ja) * 2009-06-11 2010-12-24 Nippon Hoso Kyokai <Nhk> ストレージサーバー装置及びコンピュータプログラム
JP2011513863A (ja) * 2008-03-04 2011-04-28 アップル インコーポレイテッド 同期サーバープロセス

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651108B2 (en) * 1995-08-14 2003-11-18 Next Software, Inc. Method and apparatus for generating object-oriented world wide web pages
US6799298B2 (en) * 1998-03-11 2004-09-28 Overture Services, Inc. Technique for locating an item of interest within a stored representation of data
US6173287B1 (en) * 1998-03-11 2001-01-09 Digital Equipment Corporation Technique for ranking multimedia annotations of interest
AU2001243513A1 (en) * 2000-03-07 2001-09-17 Broadcom Corporation An interactive system for and method of automating the generation of legal documents
US20020123334A1 (en) * 2000-05-09 2002-09-05 Dana Borger Systems, methods and computer program products for dynamically inserting content into web documents for display by client devices
US7007068B2 (en) 2000-06-27 2006-02-28 Peoplestreet Systems and methods for managing contact information
US7080076B1 (en) * 2000-11-28 2006-07-18 Attenex Corporation System and method for efficiently drafting a legal document using an authenticated clause table
US20030104470A1 (en) * 2001-08-14 2003-06-05 Third Wave Technologies, Inc. Electronic medical record, library of electronic medical records having polymorphism data, and computer systems and methods for use thereof
US6988124B2 (en) 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20040012618A1 (en) * 2002-07-18 2004-01-22 Finney Randolph L. Legal document generating system
US6671698B2 (en) * 2002-03-20 2003-12-30 Deere & Company Method and system for automated tracing of an agricultural product
US6952697B1 (en) * 2002-06-21 2005-10-04 Trust Licensing, Llc Media validation system
US20040001099A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation Method and system for associating actions with semantic labels in electronic documents
US7337115B2 (en) * 2002-07-03 2008-02-26 Verizon Corporate Services Group Inc. Systems and methods for providing acoustic classification
EP2131296A1 (en) * 2003-11-14 2009-12-09 Research in Motion Limited System and method of retrieving and presenting partial (skipped) document content
US7707039B2 (en) * 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
WO2005081802A2 (en) 2004-02-24 2005-09-09 Caretouch Communications, Inc. Intelligent message delivery system
JP4519573B2 (ja) * 2004-08-27 2010-08-04 株式会社日立製作所 データ処理システム及び方法
US7506006B2 (en) 2004-09-03 2009-03-17 Microsoft Corporation Synchronization for smart clients
US7916649B2 (en) * 2004-09-30 2011-03-29 Alcatel-Lucent Usa Inc. Apparatus and method for monitoring and analysis of communication over a wireless network
JP4377790B2 (ja) * 2004-09-30 2009-12-02 株式会社日立製作所 リモートコピーシステムおよびリモートコピー方法
US7316347B2 (en) * 2005-01-07 2008-01-08 Ctb Mcgraw-Hill Linking articles to content via RFID
US7317907B2 (en) 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
US9286388B2 (en) * 2005-08-04 2016-03-15 Time Warner Cable Enterprises Llc Method and apparatus for context-specific content delivery
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US7606810B1 (en) * 2006-04-27 2009-10-20 Colin Jeavons Editorial related advertising content delivery system
US7734065B2 (en) * 2006-07-06 2010-06-08 Abbyy Software Ltd. Method of text information recognition from a graphical file with use of dictionaries and other supplementary data
US20080040768A1 (en) * 2006-08-14 2008-02-14 Alcatel Approach for associating advertising supplemental information with video programming
US7685177B1 (en) 2006-10-03 2010-03-23 Emc Corporation Detecting and managing orphan files between primary and secondary data stores
US8185826B2 (en) * 2006-11-30 2012-05-22 Microsoft Corporation Rendering document views with supplemental information content
US7818396B2 (en) * 2007-06-21 2010-10-19 Microsoft Corporation Aggregating and searching profile data from multiple services
JP5046863B2 (ja) * 2007-11-01 2012-10-10 株式会社日立製作所 情報処理システム及びデータ管理方法
JP5214228B2 (ja) * 2007-11-30 2013-06-19 株式会社日立製作所 コンテンツ配信システム
US8775647B2 (en) * 2007-12-10 2014-07-08 Deluxe Media Inc. Method and system for use in coordinating multimedia devices
US20090300169A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US8219524B2 (en) 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8209437B2 (en) 2008-09-25 2012-06-26 Rockliffe Systems, Inc. Personal information management data synchronization
JP2011186616A (ja) * 2010-03-05 2011-09-22 Nec Corp 分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラム
US8266243B1 (en) * 2010-03-30 2012-09-11 Amazon Technologies, Inc. Feedback mechanisms providing contextual information
US9185116B2 (en) * 2010-11-10 2015-11-10 Sony Corporation Methods and systems for use in providing access through a secondary device to services intended for a primary device
CN102801766B (zh) 2011-11-18 2015-01-07 北京安天电子设备有限公司 一种云服务器负载均衡及数据冗余备份的方法及系统
US8291041B1 (en) * 2012-05-31 2012-10-16 Google Inc. Systems and methods for disseminating content to remote devices
US8909736B1 (en) * 2012-07-12 2014-12-09 Juniper Networks, Inc. Content delivery network referral

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300143A1 (en) * 2006-06-12 2007-12-27 David Michael Vanderport Electronic documentation
WO2008010473A1 (fr) * 2006-07-19 2008-01-24 Panasonic Corporation Système de gestion de fichiers distribués
JP2011513863A (ja) * 2008-03-04 2011-04-28 アップル インコーポレイテッド 同期サーバープロセス
JP2010287036A (ja) * 2009-06-11 2010-12-24 Nippon Hoso Kyokai <Nhk> ストレージサーバー装置及びコンピュータプログラム

Also Published As

Publication number Publication date
CN104011698A (zh) 2014-08-27
JP6298197B2 (ja) 2018-03-20
JP2015501050A (ja) 2015-01-08
KR102032583B1 (ko) 2019-11-08
US20130151657A1 (en) 2013-06-13
EP2788886A4 (en) 2016-01-20
CN104011698B (zh) 2016-11-16
JP6150816B2 (ja) 2017-06-21
EP2788886B1 (en) 2018-10-03
EP2788886A1 (en) 2014-10-15
WO2013085779A1 (en) 2013-06-13
US9396277B2 (en) 2016-07-19
JP2017162506A (ja) 2017-09-14
US20160316002A1 (en) 2016-10-27

Similar Documents

Publication Publication Date Title
KR102032583B1 (ko) 상응하는 프라이머리 애플리케이션 데이터로부터 유래된 식별자에 기초한 보조 데이터로의 액세스 기법
US10956652B2 (en) Support for non-native file types in web application environment
US8495621B2 (en) Catalog-based software component management
US20150254286A1 (en) Truncating data associated with objects in a multi-tenant database
JP7150830B2 (ja) クライアントデバイスによって実施されるコンテンツ管理システムのワークフロー機能
US11836112B2 (en) Path resolver for client access to distributed file systems
US10210229B2 (en) File creation through virtual containers
JP2010521721A (ja) ウェブデータ使用のプラットフォーム
US7698280B2 (en) Active cache offline sharing of project files
US10855637B2 (en) Architecture for large data management in communication applications through multiple mailboxes
US20220141227A1 (en) Managing Metadata for External Content within a Computing Environment
US20180314723A1 (en) Managing multi-tenant keys in multi-tenant computing environments
US20180341717A1 (en) Providing instant preview of cloud based file
US20170366916A1 (en) Programming organizational links that propagate to mobile applications
US10176155B2 (en) Modifying a document graph to reflect information relating to a document it represents
JP2015143975A (ja) ワークフローシステム、ワークフロー管理装置、ワークフロー管理方法及びプログラム
JP2009015384A (ja) ファイル管理方法、装置、及びプログラム

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant