KR101627873B1 - 컴퓨팅 환경 표현 - Google Patents

컴퓨팅 환경 표현 Download PDF

Info

Publication number
KR101627873B1
KR101627873B1 KR1020107020487A KR20107020487A KR101627873B1 KR 101627873 B1 KR101627873 B1 KR 101627873B1 KR 1020107020487 A KR1020107020487 A KR 1020107020487A KR 20107020487 A KR20107020487 A KR 20107020487A KR 101627873 B1 KR101627873 B1 KR 101627873B1
Authority
KR
South Korea
Prior art keywords
resource
objects
collection
computing environment
hierarchy
Prior art date
Application number
KR1020107020487A
Other languages
English (en)
Other versions
KR20100133380A (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 KR20100133380A publication Critical patent/KR20100133380A/ko
Application granted granted Critical
Publication of KR101627873B1 publication Critical patent/KR101627873B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컴퓨팅 환경은, 컴퓨팅 환경을 렌더링하도록 구성되어 있는 장치들과 컴퓨팅 환경 호스트 사이에 일반적으로 공유되는 객체 계층 구조 스키마에 따라서 조직될 수 있는, 전개 가능한 객체 계층 구조로서 표현될 수 있다. 컴퓨팅 환경을 표현하기 위한 특정한 객체 계층 구조 스키마가 상세히 제시되고, 컴퓨팅 환경의 다수의 객체들은 (예를 들면, RESTful 객체 계층 구조에서) 독특하게 주소 지정 가능할 수 있는 리소스들로서 모델링된다. 예시적인 객체 계층 구조 스키마를 설명하고 그에 따라서 조직된 예시적인 객체들 및 객체 계층 구조들을 예시하기 위하여 다수의 객체 유형들 및 그의 속성들이 제시된다. 다양한 객체 계층 구조 스키마들의 추가적인 속성들은 확장성, 전개 가능성, 및 다양한 이점들을 갖는 객체 주소 지정 모델들을 포함한다.

Description

컴퓨팅 환경 표현{COMPUTING ENVIRONMENT REPRESENTATION}
많은 컴퓨팅 환경들은 객체 시스템(object system)들의 세트에 의해 관리되는 크고 다양한 객체들의 세트를 포함한다. 예를 들면, 컴퓨팅 환경은 파일 시스템에 의해 관리되는 파일들의 세트, 데이터베이스 시스템에 의해 관리되는 하나 이상의 데이터베이스들, 애플리케이션들을 나타내고 어셈블리 캐시에 의해 관리되는 실행가능한 바이너리들의 세트, 운영 체제의 사용자 프로파일 컴포넌트에 의해 관리되는 사용자 프로파일들의 세트, 및 운영 체제의 복사 버퍼에 의해 관리되는 복사된 항목들의 세트, 운영 체제의 실행 취소(undo) 컴포넌트에 의해 관리되는 실행 취소 동작들의 세트, 및 운영 체제의 항목 사용 추적(item usage tracking) 컴포넌트에 의해 관리되는 "가장 최근 사용된" 항목들의 세트와 같은, 데이터 캐싱 컴포넌트들에 의해 관리되는 다양한 데이터 캐시들을 포함할 수 있다. 또한, 그러한 객체들은 하나 이상의 사용자들에 의해 조작되는 복수의 장치들 사이에, 하나 이상의 동작들(예를 들면, 2개의 객체 세트들을 병합하는 객체 동기화 동작 및 원본 객체 세트(source object set)와 매칭하도록 대상 객체 세트(target object set)를 조정하는 객체 미러링 동작(object mirroring operation))에 따라서 교환될 수 있다. 이런 식으로, 객체들은 객체 시스템들의 세트를 통하여 느슨하게 조직되고 컴퓨팅 환경을 표현하기 위해 집계(aggregate)된다.
이 개요는 아래 상세한 설명에서 더 설명되는 개념들 중 선택된 것을 단순화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 내용의 중요한 특징들 또는 본질적인 특징들을 식별하기 위해 의도된 것이 아니고, 그것은 청구된 내용의 범위를 제한하기 위해 이용되도록 의도된 것도 아니다.
해체된 느슨하게 집계된 객체 시스템들의 세트로서의 컴퓨팅 시스템 내의 객체들의 조직은 몇 가지 문제들을 일으킬 수 있다. 예를 들면, 특히 장치들이 성능들이 변화하는 경우에(예를 들면, 고성능 개인용 워크스테이션, 브라우저 기반 공용 단말기, 및 저성능 휴대폰 장치), 그 다양한 장치들을 통하여 사용자에게 일관된 컴퓨팅 환경을 제시하는 것은 어려울 수 있다. 다른 예로서, 동기화 및 백업과 같은, 서비스들을 객체들에 적용하는 것은, 그에 의해 관리되는 객체들에 영향을 미치는 각 객체 시스템과의 간섭을 수반할 수 있고, 그러한 간섭은 객체 시스템들 사이에 변화할 수 있다. 세 번째 예로서, (애플리케이션을 포함하는 모든 객체들과 같은) 다양한 객체들의 세트를 관련시키는 것은 관리하는 객체 시스템들의 불완전한 협력으로 인해 어려울 수 있다.
컴퓨팅 환경을 포함하는 객체들을 표현하기 위한 대안적인 기법은 객체들을, 컴퓨팅 환경 호스트에 의해 호스팅될 수 있는, 객체 계층 구조(object hierarchy)로 조직하는 것을 수반한다. 만일 객체들이 균등한 방식으로 표현되고 객체 시스템에 의해 일관된 방법으로 관리된다면, 컴퓨팅 환경의 모든 객체들에 적용할 서비스들의 세트가 고안될 수 있다. 또한, 객체 계층 구조는 (동일한 사용자 프로파일, 애플리케이션, 데이터 파일 등을 포함하는) 동일한 컴퓨팅 환경을 표현하기 위해 다양한 장치들에 전달될 수 있고, 각 장치는 장치의 성능들(예를 들면, 워크스테이션에 부착된 키보드 장치로부터의 데이터 입력을 수신하기 위한 하드 키보드 인터페이스, 및 휴대폰 장치로부터의 데이터 입력을 수신하기 위한 터치스크린 소프트웨어 키보드 인터페이스)에 기초하여 커스터마이즈(customize)되지만 일관된 방식으로 컴퓨팅 환경을 렌더링할 수 있다.
애플리케이션, 활동들의 세트를 포함하는 활동 컬렉션(activities collection), 및 사용자 프로파일들의 세트를 포함하는 사용자 프로파일 컬렉션과 같은, 다양한 유형의 리소스들의 세트를 정의하는 객체 계층 구조 스키마에 따라서 객체 계층 구조가 구성되는, 하나의 그러한 표현이 여기에 제시된다. 여기에 특정된 객체 계층 구조 스키마에 따른 객체들의 조직은 그러한 객체들의 다른 표현들 및 조직들보다 몇몇 이점들을 제공할 수 있다. 예를 들면, 여기에 제시된 객체들의 표현들은 특정한 종류의 메타데이터로 태깅(tagging)할 여지가 있고, 그러한 메타데이터는 도메인 특정(domain-specific) 메타데이터를 가능하게 하기 위해 (애플리케이션, 데이터 파일, 및 장치와 같은) 다양한 유형의 객체들과 유사하게 관련될 수 있다. 여기에 설명된 바와 같이 배열된 객체들은 또한 다양한 장치들에 다양한 객체들의 세트를 매핑하는 것을 용이하게 할 수 있고, 이는 상이한 사용자들 및 장치들에 관하여 컴퓨팅 환경의 바람직한 적응들을 가능케 할 수 있다. 이들 및 다른 이익들은 여기에 특정된 객체 계층 구조 스키마에 의해 성취될 수 있고, 그 이익들은 객체 계층 구조에 의해 표현되고 변화하는 성능들의 장치들에 의해 렌더링되는 컴퓨팅 환경에 의해 나타내어질 수 있다.
전술한 및 관련된 목적들을 달성하기 위해, 다음의 설명 및 첨부된 도면들은 예시적인 양태들 및 구현들을 제시한다. 이것들은 하나 이상의 양태들이 채용될 수 있는 다양한 방법들 중 소수만을 나타낸다. 본 개시의 다른 양태들, 이점들, 및 신규한 특징들은 첨부된 도면들과 함께 고려될 때 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 다양한 컴퓨팅 환경 렌더링 장치들과의 컴퓨팅 환경 호스트의 예시적인 상호 작용의 예시이다.
도 2는 예시적인 객체 계층 구조 스키마 객체 세트의 예시이다.
도 3은 예시적인 객체 계층 구조 스키마의 예시이다.
도 4는 컴퓨팅 환경을 표현하는 예시적인 방법을 예시하는 흐름도이다.
도 5는 예시적인 객체 계층 구조의 예시이다.
도 6은 객체 계층 구조의 객체들을 저장하기 위한 3개의 예시적인 저장 기법들의 예시이다.
도 7은 객체 계층 구조 스키마의 객체 유형들과 관련될 수 있는 추가적인 객체 속성들의 세트의 예시이다.
도 8은 여기에 제시된 사항들 중 하나 이상을 구체화하도록 구성된 컴퓨터 실행가능 명령어들을 포함하는 예시적인 컴퓨터 판독가능 매체의 예시이다.
도 9는 여기에 제시된 사항들 중 하나 이상이 구현될 수 있는 예시적인 컴퓨팅 환경을 예시한다.
지금부터 청구된 내용이 도면들에 관련하여 설명되고, 도면들에서 같은 참조 번호들은 전체에 걸쳐서 같은 엘리먼트들을 지시하기 위해 이용된다. 다음의 설명에서는, 설명의 목적으로, 청구된 내용의 철저한 이해를 제공하기 위하여 다수의 특정한 상세들이 제시된다. 그러나, 청구된 내용은 이들 특정한 상세들 없이 실시될 수 있다는 것은 명백할 것이다. 그 밖의 경우들에서, 잘 알려진 구조들 및 장치들은 청구된 내용의 설명을 용이하게 하기 위하여 블록도로 도시되었다.
현대의 컴퓨터 시스템들은 다수의 각종의 객체들을 포함한다. 많은 컴퓨터 시스템들은 컴퓨터 시스템을 구성하기 위한 파일들(실행 파일, 클래스 라이브러리, 구성 정보 세트, 및 리소스를 포함함) 및 하나 이상의 사용자들에 의해 생성되거나 수신된 사용자 파일들 양쪽 모두를 포함하는 파일 스토어(file store)를 특징으로 한다. 많은 컴퓨터 시스템들은 또한 컴퓨터 시스템의 하드웨어 및 장치들, 운영 체제, 쉘 사용자 인터페이스(shell user interface), 및 쉘 사용자 인터페이스 내에서 이용 가능한 애플리케이션들의 구성을 포함하는, 컴퓨터 시스템 하드웨어 및 소프트웨어를 포함하는 광범위의 구성 정보를 포함한다. 다양한 사용자 프로파일들 및 계정들이 또한 존재할 수 있고, 전자는 특정한 사용자 또는 사용자 클래스(이름, 쉘 사용자 인터페이스 선호, 홈 디렉터리 등)을 기술하는 정보를 포함하고, 후자는 사용자 또는 클래스의 권한들(파일 소유권, 판독/기록 권한, 다양한 장치들에의 액세스 등)을 기술하는 정보를 포함한다. 암호, 인증서, 공개/개인 키 쌍, 및 액세스 제어 목록과 같은 보호되는 보안 정보는 보안 객체에 저장될 수 있고, 그에 대해 운영 체제는 규제된 액세스를 가할 수 있다. 브라우저 캐시들 및 히스토리들, 애플리케이션 또는 브라우저 텍스트박스들 내의 최근 항목들, 및 최근에 사용된 파일 및 객체 목록들과 같은, 하나 이상의 데이터 캐시들이 존재할 수 있다. 다양한 애플리케이션들은, 다양한 폴더들 및 메시지들을 포함하는 전자 메일 아카이브 및 다양한 시스템 사용자들에 의해 다양한 소스들로부터 수신되고 사용자 정의된 그룹들로 조직된 콘택트 정보를 포함하는 공유 주소록과 같은, 애플리케이션 또는 태스크 특정 아카이브들을 생성할 수 있다. 마지막으로, 컴퓨터 시스템은, 동기화된 객체들 및 다양한 조건들(판독/기록 권한, 소유권, 할당량(quotas) 등)로 액세스가 승인될 수 있는 객체 세트들과 같은 특정한 정보의 세트들을 다른 컴퓨터들, 사용자들, 및 장치들과 교환하도록 구성될 수 있다. 그러한 객체 유형들은 전형적으로 컴퓨터 시스템 내의 다양한 관리 시스템들(예를 들면, 파일 시스템, 시스템 레지스트리 스토어, 사용자 계정 관리 시스템, 및 전자 메일 시스템)에 의해, 애드 혹(ad hoc) 방식으로, 액세스 방법들 또는 객체 조직의 일관성 또는 표준화가 거의 없이 관리된다.
해체된 느슨하게 집계된 객체 시스템들의 세트로서의 컴퓨팅 시스템 내의 객체들의 조직은 몇 가지 문제들을 일으킬 수 있다. 첫 번째 예로서, 특히 개인용 워크스테이션, 공용 단말기, 및 휴대폰 장치와 같은 변화하는 성능들의 장치들 사이에, (파일, 애플리케이션, 사용자 프로파일, 애플리케이션 구성, 데이터 캐시 등과 같은) 일관된 객체들의 세트를 포함하는 일관된 컴퓨팅 환경을 렌더링하고 유지하는 것은 매우 어려울 수 있다. 두 번째 예로서, 서비스들을 객체들에 적용하는 것은 다수의 객체 시스템들 내의 다양한 객체들의 저장에 의해 복잡해질 수 있다. 예를 들면, (특정한 시간 기간 내에 마지막으로 수정된 객체들과 같은) 특정한 서술과 매칭하는 객체들을 발견하는 것은 하나 이상의 파일 시스템들을 통하여 매칭하는 파일들, 데이터베이스 시스템을 통하여 매칭하는 데이터 레코드들, 시스템 레지스트리를 통하여 매칭하는 레지스트리 키들, 어셈블리 캐시를 통하여 매칭하는 애플리케이션들, 다양한 데이터 캐시들을 통하여 매칭하는 데이터 캐시 항목들, 등에 대하여 쿼리하는 것을 수반할 수 있다. 그러한 객체 시스템들은 종종 관련된 객체들을, 예를 들면 객체들의 본질에 특정한 파라미터들(예를 들면, 파일 시스템 저널을 통하여 파일 레코드들을 검사하고, 데이터 특정 타임스탬프를 통하여 데이터베이스 레코드들을 검사하는)과 함께, 비표준 방법들로 저장하기 때문에, 다양한 객체 시스템들 각각에 동작을 적용하는 것은 어려울 수 있다. 세 번째 예로서, 각 객체 시스템은 특정한 종류의 객체를 관리하도록 구성되기 때문에, 객체들의 유형들을 관련시키고 혼합하는 것은 어려울 수 있다. 예를 들면, 애플리케이션은 어셈블리 캐시에 저장된 실행가능 바이너리, 시스템 레지스트리에 저장된 어떤 구성 정보, 파일 시스템에 저장된 (다양한 언어들에 대한 디렉터리들과 같은) 보충 파일들, 및 데이터 캐시들에 저장된 (최근에 편집된 문서들과 같은) 이벤트들을 포함할 수 있다. 다양한 시스템들에서 이들 객체 유형들의 관련을 표현하고, 모든 그러한 객체들을 함께 조작하는(예를 들면, 애플리케이션을 제거(uninstall)하기 위하여 모든 그러한 객체들을 삭제하는) 것은 어려울 수 있다. 네 번째 예로서, 컴퓨터 시스템의 객체 세트는 몇몇 장치들에 걸쳐서 분산될 수 있고, 그 객체 세트들에의 일관된 액세스를 제공하는 것은 장치들의 다양한 구성들, 각 장치의 네트워크 성능들, 및 데이터를 교환하기 위해 각 장치에 의해 이용되는 와이어 포맷들에서의 비호환성들에 의해 복잡해질 수 있다(예를 들면, 제1 장치는 XML 스키마에 따라서 데이터를 교환하도록 구성될 수 있고, 제2 장치는 JSON에 따라서 데이터를 교환하도록 구성될 수 있다).
컴퓨팅 환경이 장치의 성능들에 따라서 렌더링하기 위한 장치들에 전달될 수 있는 방식으로 표현되는, 대안적인 접근법이 고안될 수 있다. 그 표현은 객체 계층 구조에 따라 조직되고 공통의 문법에 따라서 표현된 객체들의 세트를 포함한다. 객체들은 사용자에 의해 생성된 사용자 파일들 및 데이터와 같은 컴퓨터 시스템의 데이터 객체들을 포함한다. 객체들은 또한 쉘, 및 거기에 제공된 애플리케이션들과 같은 운영 체제 컴포넌트들을 포함하는 실행가능 바이너리들 및 클래스 라이브러리들을 포함한다. 객체는 또한 쉘 선호(예를 들면, 시각적 테마, 애플리케이션 시작 메뉴, 및 더블 클릭 스레시홀드), 사용자 계정 및 권한, 보안 정보(예를 들면, 암호, 보안 토큰, 및 인증서), 애플리케이션 바이너리들 및 구성 정보, 사용자 데이터 및 메타데이터(예를 들면, 파일 공유 정보), 및 데이터 캐시들(예를 들면, 가장 최근에 사용된 파일 목록들 및 브라우저 히스토리)을 포함하는, 컴퓨팅 환경의 사용자 인터페이스를 특정하는 정보를 포함한다. 이들 객체들의 다양한 본질 및 사용들에도 불구하고, 객체들은 객체 계층 구조에서 공통의 방식으로 표현될 수 있고, 계층 구조에서 임의로 조직될 수 있다. 따라서, 각각이 한 유형의 객체를 포함하는 분리된 데이터 스토어들의 세트(예를 들면, 파일들을 포함하는 파일 시스템, 구성 점보를 포함하는 레지스트리, 및 브라우저 히스토리를 포함하는 데이터 캐시)를 포함하는 이전의 시스템들과 대비하여, 이 접근법에서의 객체 계층 구조는 모든 그러한 객체들을 객체 계층 구조에서 공통의 방식으로 조직한다.
이 방식으로 표현된 컴퓨팅 환경은 임의의 장치에 전달되고 그 장치의 성능들에 적합한 방식으로 렌더링될 수 있다. 예를 들면, 워크스테이션은 강건한 범용 컴퓨팅 환경으로서 정보를 렌더링할 수 있는 반면, 공용 워크스테이션은 웹 브라우저를 통하여(예를 들면, 사용자의 세션의 끝에 폐기될 수 있는 가상 머신으로서) 상이한 컴퓨팅 환경 경험을 렌더링할 수 있고, 휴대폰은 휴대폰 관련 정보(예를 들면, 콘택트들, 캘린더, 및 내비게이션 데이터)에의 보다 신속한 액세스를 갖는 리너 인터페이스(leaner interface)를 제공할 수 있다. 또한, 정보 세트에 대한 업데이트들(예를 들면, 선호 변경들 및 거기에 포함된 데이터 파일들에 대한 업데이트들)은 정보 세트의 정규 소스(canonical source)에 적용될 수 있고, 그에 의해 그 정보 세트가 전달되는 모든 다른 장치들에 전파된다. 또한, 컴퓨팅 환경을 공유하는 장치들은 공유된 정보 세트를 통하여 통합될 수 있고, 그에 따라 하나의 장치가 그 정보 세트에서 식별되는 다른 것들과 상호 작용할 수 있고; 예를 들면, 제1 장치 상에 저장된 데이터가 제2 장치에 의해 액세스될 수 있고, 제1 장치가 통신 도관(communications conduit)을 통하여 제2 장치에 의해 제어될 수 있다. 그러므로 그 정보 세트는 각 장치의 역할들, 성능들, 및 리소스들과 함께, 통신 환경을 공유하는 장치들의 컬렉션을 식별하여, 잠재적으로 많은 수의 각종의 장치들에 걸쳐서 통합된 컴퓨팅 경험을 제공할 수 있다.
도 1은 객체 계층 구조(14)를 저장하고 관리할 수 있는, 컴퓨팅 환경 호스트(12)에 의해 컴퓨팅 환경이 호스팅될 수 있는, 하나의 그러한 시나리오(10)를 예시한다. 컴퓨팅 환경 호스트(12)는 또한 휴대폰 장치(16), 개인용 노트북 컴퓨터(20), 및 공용 워크스테이션(24)과 같은 다양한 장치들을 대신하여, 및 또한 상이한 액세스 권한들을 갖는 상이한 유형의 사용자들을 대신하여 상이한 방법들로 객체 계층 구조(14)를 렌더링할 수 있다. 그러므로 컴퓨팅 환경의 렌더링은 동일한 애플리케이션, 사용자 프로파일, 쉘 구성, 사용자 데이터 객체 등을 드러내는 모든 장치들에 걸쳐서 일관된 컴퓨팅 환경을 반영한다. 따라서, 사용자는 고성능 노트북 컴퓨터를 통하여 컴퓨팅 환경의 풀 피처 버전(full-featured version)(22), 저전력 휴대폰 장치(16) 상의 컴퓨팅 환경의 축소 버전(stripped-down version)(18), 및 공용 단말기(24)의 웹 브라우저(146)를 통하여 컴퓨팅 환경의 브라우저 호환 가능한 프라이버시 지향 버전(browser-compatible and privacy-oriented version)(28)에 액세스할 수 있다. 각각의 그러한 장치의 성능들이 컴퓨팅 환경의 렌더링을 지원하는 정도까지, 각 장치의 성능들에 맞추어 조정된 객체 계층 구조(14)의 렌더링으로 인해 일관된 사용자 인터페이스 및 데이터 세트가 제시될 수 있다. 컴퓨팅 환경들에 대한 업데이트들은 컴퓨팅 환경 호스트(12)에 전파될 수 있고, 다른 장치들과 자동으로 동기화될 수 있다. 다양한 장치들은 또한 로컬로 저장된 데이터를 다른 장치들과 공유하는 것에 의해, 및 다른 장치들을 제거하거나 다른 장치들에 의해 제어되는 것에 의해 협력할 수 있다. 따라서, 컴퓨팅 환경은 동일한 컴퓨팅 환경에의 (장치 특정 속성들을 갖는) 협력 포털들(cooperating portals)의 메쉬(mesh)를 형성하는 모든 장치들("클라이언트들")에 걸쳐서 일관된 렌더링으로서 표현된 장치 독립적인 표현("클라우드")을 포함하는, 클라우드 컴퓨팅 아키텍처로서 고안되고 제시될 수 있다. 또한, 컴퓨팅 환경 호스트(12)는 객체 계층 구조(14)를 포함하는 다양한 객체들에 서비스들을 적용할 수 있고, 객체들이 객체 계층 구조에 저장되는 공통의 포맷은 그것에 적용되는 객체들의 본질에 관계없이 서비스들의 일관된 이용 가능성 및 적용을 용이하게 할 수 있다.
이들 목적들에 더하여, 객체 계층 구조의 객체들을 특정한 방식으로 조직하기 위한 객체 계층 구조 스키마가 고안될 수 있다. 예를 들면, 객체들은 (파일들과 같은) 데이터 객체들, 사용자들 및 사용자 계정들, 장치들, 및 컴퓨팅 환경에서 나타나는 이벤트들뿐만 아니라, 파생, 소유권, 및 그것들 사이의 상호 관계들을 표현하도록 고안되고 구성될 수 있다. 객체들을 조직하는 방식은 객체들의 다른 조직들에 관하여 특정한 이점들을 발생시키고 및/또는 불리점들을 감소시킬 수 있다. 따라서, 그에 따라 객체들이 조직될 수 있는 객체 계층 구조 스키마는 그러한 객체들의 및 컴퓨팅 환경의 사용들을 고려하여 고안된다. 예를 들면, 보안 사용 권한(security permissions)은 각각의 객체들을 다양한 사용 권한들의 세트들을 갖는 하나 이상의 사용자 계정들(예를 들면, 객체에 대한 판독/기록 사용 권한을 갖는 제1 사용자 계정, 객체에 대한 판독만의 사용 권한(read-only permissions)을 갖는 제2 사용자 계정, 및 객체에 대한 어떤 사용 권한도 없는 제3 사용자 계정)과 관련시키는 것에 의해 모델링될 수 있다. 컴퓨팅 환경은 객체 계층 구조 스키마의 구조 및 의미론에 따라서 객체 계층 구조의 객체들을 이용하도록 구성될 수 있고, 그에 의해 각 장치의 구성 및 성능들에 적합하지만, 다른 점에서는 모든 그러한 장치들 사이에 일관된 방식으로 복수의 장치들에 걸쳐서 전개 가능한 컴퓨팅 환경의 제시를 가능하게 한다.
객체 계층 구조 스키마의 공식화(formulation)는 장치들 및 컴퓨팅 환경을 호스팅하는 서버의 구성에 상당히 영향을 미칠 수 있다는 것을 알 수 있다. 일례로, 장치는 컴퓨팅 환경의 일부분만을 요청할 수 있고(예를 들면, 휴대폰 장치는 전화 번호 및 전자 메일 주소와 같은 콘텍트 정보의 세트를 포함하는 객체 계층 구조의 일부분만을 요청할 수 있다), 서버는 그 부분만을 제공할 수 있지만; 만일 장치 및 서버가 상이한 객체 계층 구조 스키마들에 따라 동작하고 있다면, 그 요청은 실패할 수 있다. 예를 들면, 장치는 제1 객체 계층 구조 스키마에 따라서 객체 계층 구조의 특정한 부분(예를 들면, /Contacts)을 요청할 수 있지만, 서버는 제2 객체 계층 구조 스키마에 따라서 객체 계층 구조의 상이한 부분(예를 들면, /AddressBook/Contacts)에 그러한 정보를 저장할 수 있고, 따라서 서버에 의해 호스팅되는 객체 계층 구조에 콘택트 정보가 존재할지라도, 요청된 정보를 제공할 수 없을 수 있다. 제2 예로서, 서버는 임의의 객체 계층 구조 스키마에 따라서 객체 계층 구조들을 저장하는 것이 가능할 수 있지만, 그것에 서비스들을 제공하면서 객체 계층 구조의 일부를 이용하도록 더 유리하게 구성될 수 있고, 따라서 특정한 객체 계층 구조 스키마에 따라서 객체 계층 구조로 정의되고 조직된 객체들을 찾을 것을 기대할 수 있다. 예를 들면, 객체 계층 구조를 수신하기 위한 장치에 의한 요청에 응답하여, 서버는 객체 계층 구조에 저장된 인증 정보를 이용하여 장치를 인증하려고 시도할 수 있다. 따라서, 서버는 특정한 객체 계층 구조 스키마에 따라서 객체 계층 구조들을 호스팅하도록 더 용이하게 구성될 수 있고, 그에 따라 그것은 또한 그것에 관한 서비스들을 제공하면서 객체 계층 구조 스키마 내에 저장된 정보를 액세스하고 이용할 수 있다,
전술한 원리들을 고려하여, 서버에 의한 컴퓨팅 환경에의 서비스들의 적용, 및 일관되지만 장치 특정의 방식으로 컴퓨팅 환경을 렌더링할 수 있는 장치들에의 컴퓨팅 환경의 전개 가능성(deployability)을 용이하게 하는 특정한 방식으로 객체들이 정의되고 상호 관련되는, 하나의 그러한 객체 계층 구조 스키마가 여기에 제시된다. 여기에 설명된 객체 계층 구조 스키마는 정의된 객체들의 세트로서 제시되고, 각 정의는 컴퓨팅 환경 내의 특정한 유형의 데이터 객체(예를 들면, 사용자 프로파일, 애플리케이션, 및 장치)를 나타내고 그것에 관련된 특정한 속성들을 갖는다. 객체들 중 일부는 전문화된 다른 객체들의 유형들로서 정의되고, 예를 들면, 일반적인 "사람(person)" 객체 유형은, 컴퓨팅 환경에서 그 사람의 권한들을 나타내는 추가적인 정보를 갖는 사람일 수 있는, "사용자(user)" 객체 유형을 표현하도록 확장될 수 있다. 또한, 일부 객체들은 하나 이상의 "사람들(people)" 객체 유형들을 포함하는 "사람들 컬렉션(people collection)" 객체 유형과 같은 하나 이상의 다른 객체들에 대한 컨테이너들로서 정의된다. 또한, 여기에 제시된 객체 계층 구조 스키마는 객체 계층 구조 내에 여기에 정의된 객체들의 계층적 조직(hierarchical organization)을 정의한다; 즉, 특정한 객체 유형들이 객체 계층 구조의 특정한 위치들에 저장될 것이고, 그에 따라 객체 계층 구조 내의 그러한 객체들을 검색하는 임의의 장치 또는 컴퓨터 시스템은 객체 계층 구조 내의 알려진 설정된 위치에서 컴퓨팅 환경 내에 존재하는 임의의 것을 찾을 것이다.
도 2는 객체 계층 구조 스키마의 객체 유형들, 및 그들 사이의 확장 상호 관계들을 예시한다. 이 도면에서, 객체 관계들은 객체들 사이의 특수화들을 예시하는데, 예를 들면, "동물(animal)" 객체 유형은 "포유동물(mammal)" 객체 유형으로서 특수화될 수 있고, 그것은 "고양이(cat)" 객체 유형으로서 더 특수화될 수 있다. 객체 계층 구조 스키마 내의 각 객체의 속성들에 관한 상세들이 여기에 논의되지만, 이 도면은 여기에 제시된 객체 계층 구조 스키마에 포함된 데이터 객체들의 유형들의 개관으로서 제시된다.
도 2의 객체 계층 구조 스키마 객체 세트(30)는 객체 계층 구조에 저장된 기본적인 데이터 객체를 나타내는, 리소스(Resource) 객체 유형(32)을 포함한다. 리소스 객체 유형(32)은 객체 계층 구조 내의 뚜렷하게 주소 지정 가능한 위치를 제공하기 위한 객체 계층 구조 스키마 내의 주소 지정 가능한 객체(addressable object)를 나타낸다; 즉, 객체 계층 구조 내의 특정한 주소에 대하여, 객체 계층 구조 내의 하나의 객체만이 그 위치에 대응한다. 객체 계층 구조 스키마의 일부 실시예들에서, 리소스는 하나의 주소에 의해서만 식별될 수 있는 반면, 객체 계층 구조 스키마의 다른 실시예들에서, 리소스는 복수의 주소들에서 식별될 수 있다. 그러나, 임의의 그러한 실시예에서, 객체 계층 구조 내의 단일 주소는 기껏해야 하나의 객체와 관련될 수 있다.
도 2의 객체 계층 구조 스키마 객체 세트(30)의 리소스 객체 유형(32)은 많은 다른 객체 유형들에 대한 기본 객체 유형으로서 기능한다. 이들 객체 유형들 중 몇몇은 때때로 종래의 컴퓨팅 환경에서 하나 이상의 파일들로서 고안되는 객체들에 대응한다. 첫 번째 예로서, 객체 계층 구조 스키마 세트(30)는, 객체 계층 구조의 루트(root)에 위치하는 객체들의 세트를 포함하는 리소스의 특수화된 유형인, 코어 객체(Core Object) 객체 유형(34)을 포함한다. 객체 계층 구조 스키마 객체 세트(30)는 또한 컴퓨팅 환경에 설치된 애플리케이션을 나타내는 객체를 표시하는 리소스의 특수화된 유형인, 애플리케이션(Application) 객체 유형(36)을 포함한다. 제목(title), 애플리케이션 아이콘, 및 하나 이상의 실행가능 바이너리들과 같은, 많은 다른 객체들이 애플리케이션 객체 유형과 관련될 수 있다. 객체 계층 구조 스키마 객체 세트(30)는 또한 애플리케이션 바이너리, 문서, 애플리케이션 구성 정보의 세트, 이미지 등과 같은, 아톰 단위의 데이터(atomic unit of data)의 컨테이너를 나타내는 특수화된 리소스의 유형인, 데이터 항목(Data Entry) 객체 유형(38)을 포함한다. 객체 계층 구조 스키마 데이터 세트(30)는 또한 컴퓨팅 환경에서 주목할 만한 이벤트를 표시하는 데이터 항목 객체의 특수화된 유형인, 뉴스 항목(News Item) 객체 유형(40)을 포함한다.
리소스 객체 유형은 또한 다른 객체 유형들에 대한 기본 객체 유형으로서 기능할 수 있다. 일례로, 객체 계층 구조 스키마 객체 세트(30)는 또한 사진 앨범을 포함하는 사진 이미지들의 세트 또는 앨범을 포함하는 노래들(예를 들면, MP3 객체들)의 세트와 같은, 관련된 데이터 항목들의 컬렉션을 표시하는 리소스의 특수화된 유형인, 데이터 피드(Data Feed) 객체 유형(42)을 포함한다. 객체 계층 구조 스키마 객체 세트(30)는 또한 객체의 생성, 사용자 로그인, 및 컴퓨팅 환경 내의 장치의 추가와 같은, 컴퓨팅 환경에서 최근에 발생한 이벤트를 나타내는 리소스의 특수화된 유형인, 액티비티(Activity) 객체 유형(44)을 포함한다. (액티비티들은 텍스트의 부분을 복사하는 것과 같은, 사용자에게 일시적으로만 흥미 있을 수 있는 컴퓨팅 환경의 통상의 과정 중에 일어나는 덜 중요한 이벤트들을 나타내는 반면, 뉴스 항목들은 사진 앨범의 생성과 같은, 사용자에게 장기간 흥미 있을 수 있는 더 중요한 이벤트들을 나타낸다는 것을 알 수 있다.) 객체 계층 구조 스키마 데이터 세트(30)는 또한 코어 객체와, 예를 들면, 소유권 또는 사용 권한 세트를 통하여, 코어 객체와 관련이 있는 사용자 사이의 관계를 표시하는 리소스의 특수화된 유형인, 멤버(Member) 객체 유형(46)을 포함한다. 객체 계층 구조 스키마 객체 세트(30)는 또한 객체 계층 구조의 적어도 일부분이 그것으로의 송신을 위해 허가되고, 표현된 컴퓨팅 환경의 적어도 일부분이 그것에서의 렌더링을 위해 허가되는 장치를 나타내는 리소스의 특수화된 유형인, 장치(Device) 객체 유형(48)을 포함한다. 객체 계층 구조 스키마 객체 세트(30)는 또한 장치(즉, 장치 객체)와 장치에 전달될 수 있는 코어 객체 사이의 관계를 표시하는 리소스의 특수화된 유형인, 매핑(Mapping) 객체 유형(50)을 포함한다. 객체 계층 구조 스키마 객체 세트(30)는 또한 컴퓨팅 환경의 적어도 일부분의 권한 있는 사용자의 사용자 프로파일을 나타내는 리소스의 특수화된 유형인, 프로파일(Profile) 객체 유형(52)을 포함한다. 이들 객체 유형들은 리소스 객체 유형(32)에 기초하고, 이들 객체 유형들의 객체들은, 문서들 및 이미지들과 같은, 더 많은 종래의 객체 유형들과 유사하게 주소 지정 가능하고 액세스 가능한 방식으로 객체 계층 구조에 포함된다.
객체 계층 구조 스키마 객체 세트(30)는 또한 리소스 객체 유형(32)으로부터 특수화되지 않은 객체 유형들을 포함한다. 이들 객체들은 객체 계층 구조 스키마에 포함되지만, 객체 계층 구조 스키마(30)의 주소 지정 모델(addressing model)에 따라 주소 지정 가능한 엔티티들로서 포함되지 않을 수 있다. 그보다는, 이들 객체들은 다른 객체들의 액세스 가능한 멤버들, 또는 객체 계층 구조 스키마(30)의 주소 지정 모델의 밖에 있는 객체들에 캡슐화(encapsulate)되는 객체 계층 구조 스키마의 특수화된 특징들을 포함할 수 있다. 일례로, 객체 계층 구조 스키마 객체 세트(30)는 전체 객체 계층 구조에 관한 정보를 포함하는, 메쉬(Mesh) 객체 유형(54)을 포함한다. 전형적으로, 단일 메쉬 객체가 특정한 객체 계층 구조와 관련될 수 있지만, 이 관련의 변형들이 객체 계층 구조 스키마의 다른 실시예들에 포함될 수 있다. 객체 계층 구조 스키마 객체 세트(30)는 또한 객체 계층 구조의 일부분(예를 들면, 하나 이상의 코어 객체들)이 위치하는 저장 장치를 나타내는, 저장 서비스(Storage Service) 객체 유형(56)을 포함한다. 객체 계층 구조 스키마(20)는 또한 특정한 객체 유형의 리소스들의 컬렉션을 나타내는, 리소스 컬렉션(Resource Collection) 객체 유형(58)을 포함한다. 예를 들면, 장치 객체는 그 장치와 관련된 매핑 객체들의 리소스 컬렉션을 포함할 수 있는, 하나 이상의 각각의 매핑 객체들을 통하여 하나 이상의 코어 객체와 관련될 수 있다. 유사하게, 컴퓨팅 환경의 사용자 프로파일들은 객체 계층 구조의 메쉬 싱글턴 객체(mesh singleton object)와 관련된 프로파일 객체들의 리소스 컬렉션으로 표현될 수 있다. 객체 계층 구조 스키마(20)는 또한 특정한 사용자, 예를 들면, 컴퓨팅 환경에서 그 사용자에 수여된 사용 권한들을 서술하는, 아이덴티티(지시자entity) 객체 유형(60)을 포함한다. 객체 계층 구조 스키마(20)는 또한 특정한 유형의 역할(예를 들면, 소유자(owner), 독자(reader), 및 공헌자(contributor))에 따라서 멤버 객체를 코어 객체와 관련시키는, 역할(Role) 객체 유형(62)을 포함한다.
도 2에 예시된 객체 유형들은, 함께, 객체 계층 구조 스키마의 중요한 부분을 포함하고, 컴퓨팅 환경의 많은 객체들은 이들 상호 관련된 객체들의 유형들에 따라서 표현될 수 있다. 이들 객체 유형들 및 그러한 객체 유형들의 객체들을 포함하는 객체 계층 구조들을 고려하여, 도 3은 제1 객체로부터 제2 객체로의 단일 화살이 제2 객체와의 제1 객체의 관계를 나타내는, 객체 계층 구조 스키마(70)의 구조를 예시한다. 또한, 도 3에서, 제1 객체로부터 제2 객체로의 이중 화살은 제1 객체가 제2 객체에 의해 표시되는 유형의 하나 이상의 객체들의 컬렉션이라는 것을 나타낸다. 예를 들면, 메쉬 객체(72)는, (이중 화살에 의해 표시된 바와 같이) 장치 객체들(80)의 컬렉션을 포함하는, (단일 화살에 의해 표시된 바와 같이) 장치 컬렉션(78)과 관련된다. 도 2의 객체 계층 구조 스키마 객체 세트(30)는 객체 유형들의 특수화(예를 들면, 제1 객체는 제2 객체의 특수화된 유형임)를 예시하는 반면, 도 3의 객체 계층 구조 스키마(70)는 객체 계층 구조에서의 이들 객체 유형들의 객체들의 조직(예를 들면, 제1 객체는 제2 객체의 하나 이상과 관련됨)을 예시한다는 것을 알 수 있다.
도 3은 이 예시적인 객체 계층 구조 스키마(70)에서, 컴퓨팅 환경을 서술하는 싱글턴 객체를 포함하는, 메쉬 객체(72)를 포함하는, 여기에 설명된 예시적인 객체 계층 구조 스키마(70)를 제시한다. 메쉬 객체(72)는 6개의 유형의 객체들 및 객체 컬렉션들과 관련된다. 우선, 메쉬 객체(72)는, 이 예시적인 객체 계층 구조 스키마(70)에서, 현재의 사용자의 프로파일을 나타내는 싱글턴 객체를 포함하는, 프로파일 객체(74)와 관련된다. 메쉬 객체(72)는 또한 객체 계층 구조의 부분들이 저장될 수 있는 상이한 위치들을 나타내는 0개 이상의 저장 서비스 객체들(78)을 포함하는, 저장 서비스 컬렉션(76)과 관련된다. (저장 서비스 컬렉션(76)도 저장 서비스(78)도 "리소스"로 불리지 않는 것을 알 수 있는데, 이는 이들 객체들이 리소스 객체 유형(32)에 기초하지 않기 때문이다.) 메쉬 객체(72)는 또한 객체 계층 구조에 의해 표현되는 컴퓨팅 환경에서 이용 가능한 애플리케이션들을 나타내는 0개 이상의 애플리케이션 리소스 객체들(82)을 포함하는, 애플리케이션 리소스 컬렉션(80)과 관련된다. 메쉬 객체(72)는 또한 컴퓨팅 환경의 적어도 일부분이 렌더링 될 수 있는 장치들을 나타내는 0개 이상의 장치 리소스 객체들(84)을 포함하는 장치 리소스 컬렉션(76)과 관련된다. 마지막으로, 메쉬 객체(72)는 또한 객체 계층 구조의 루트에 위치하는 객체들의 세트를 포함하는 0개 이상의 코어 리소스 객체들(94)을 포함하는, 코어 객체 리소스 컬렉션(92)과 관련된다.
도 3의 예시적인 객체 계층 구조 스키마(70)에서 더 예시된 바와 같이, 코어 리소스 객체(94)는 4개의 객체들의 컬렉션들과 판련된다. 우선, 코어 리소스 객체(94)는 적어도 0개의 매핑 리소스 객체들(98)을 포함하는, 매핑 리소스 컬렉션(96)과 관련된다. 매핑 리소스 객체들(98)은 코어 리소스 객체(98)가 렌더링될 수 있는 장치와의 코어 리소스 객체(94)의 관계를 나타내고; 따라서, 각각의 매핑 리소스 객체들(98)은 적어도 하나의 장치 리소스 객체(86)와 관련된다. 코어 리소스 객체(94)는 또한 다양한 변경들과 같은, 코어 리소스 객체(94)에 관하여 발생하는 덜 중요한 이벤트들을 나타내는 0개 이상의 액티비티 리소스 객체들(102)을 포함하는, 액티비티 리소스 컬렉션(100)과 관련된다. 코어 리소스 객체(94)는 또한 코어 리소스 객체(94)에의 액세스의 다양한 레벨들을 제공받은 사용자들을 나타내는 하나 이상의 멤버 리소스 객체들(106)을 포함하는, 멤버 리소스 컬렉션(106)과 관련된다. 각각의 멤버 리소스 객체들(106)은 멤버 리소스 객체들(106)에 의해 표현되는 멤버에 관한 추가적인 정보를 제공하는, 하나 이상의 아이덴티티 객체들(108)과 관련된다. 마지막으로, 코어 리소스 객체(94)는 또한 관련된 데이터 항목들의 다양한 컬렉션들(예를 들면, 음악 앨범 내의 노래들과 같은, 관련된 사용자 객체들의 컬렉션들)을 나타내는 0개 이상의 데이터 피드 리소스 객체들(112)을 포함하는, 데이터 피드 리소스 컬렉션(110)과 관련된다. 데이터 피드 리소스 객체(112)는 각각 데이터 항목 리소스 객체들(116)의 데이터 항목 리소스 컬렉션(114)과 관련된다. 데이터 피드 리소스 객체(112)는 또한 데이터 피드 리소스 객체들(112)에 관하여 다양한 사용자들에 확장된 액세스 권한들을 나타내는 역할 객체들(120)의 역할 컬렉션(118)과 관련되고; 따라서, 역할 객체들(120)은 그러한 역할들을 차지하는 사용자들을 나타내는 하나 이상의 멤버 리소스 객체들(106)과 관련된다.
그러므로 도 3의 예시적인 객체 계층 구조 스키마(70)는 전형적인 컴퓨터 시스템을 포함하는 다양한 각종의 데이터 객체들을 나타내는 방식으로 도 2에 예시된 데이터 유형들의 예시적인 조직을 제시한다. 예시적인 객체 계층 구조 스키마(70) 후에 (도 1의 시나라오(10)에서의 예시적인 객체 계층 구조(14)와 같은) 객체 계층 구조가 모델링될 수 있고, 컴퓨팅 환경을 변경하고 유지하기 위하여 객체 계층 구조(14)의 객체들에 서비스들의 세트를 적용할 수 있는, (컴퓨팅 환경 호스트(12)와 같은) 서버에 의해 호스팅될 수 있다. 객체 계층 구조(14)는 또한 도 3의 예시적인 객체 계층 구조 스키마(70) 후에 모델링된 객체 계층 구조들을 수신하도록 구성되는 (휴대폰 장치(16), 개인용 노트북 컴퓨터(20), 및 공용 워크스테이션(24)과 같은) 하나 이상의 장치들에 전개될 수 있고, 따라서 그에 의해 일관된 방식으로 표현된 컴퓨팅 환경을 렌더링할 수 있다.
객체 계층 구조 스키마의 공식화는 컴퓨팅 환경을 표현하는 객체 계층 구조의 인스턴스를 생성하기 위해 이용될 수 있다는 것을 알 수 있다. 따라서, 도 4는 컴퓨팅 환경을 표현하는 예시적인 방법(130)을 예시하고, 여기에서 예시적인 방법(130)은 도 3의 예시적인 객체 계층 구조 스키마(70)와 같은, 객체 계층 구조 스키마에 따라서 조직된 객체 계층 구조로서 컴퓨팅 환경을 표현하는 것을 수반한다. 도 4의 예시적인 방법(130)은 132에서 시작하고 컴퓨팅 환경을 서술하는 메쉬 객체를 포함하는 객체 계층 구조로서 컴퓨팅 환경을 표현하는 것(134)을 수반한다. 메쉬 객체는 적어도 하나의 프로파일 리소스 객체, 저장 서비스 객체들의 저장 서비스 컬렉션; 애플리케이션 리소스 객체들의 애플리케이션 리소스 컬렉션; 장치 리소스 객체들의 장치 리소스 컬렉션; 뉴스 항목 리소스 객체들의 뉴스 항목 리소스 컬렉션; 및 코어 리소스 객체들의 코어 객체 리소스 컬렉션을 포함한다. 각각의 코어 리소스 객체들은 코어 객체를 적어도 하나의 장치 객체에 관련시키는 매핑 리소스 객체들의 매핑 리소스 컬렉션; 액티비티 리소스 객체들의 액티비티 리소스 컬렉션; 코어 객체를 적어도 하나의 아이덴티티 객체에 관련시키는 멤버 리소스 객체들의 멤버 리소스 컬렉션; 및 데이터 피드 리소스 객체들의 데이터 피드 리소스 컬렉션을 포함한다. 마지막으로, 각각의 데이터 피드 리소스 객체들은 데이터 항목 리소스 객체들의 데이터 항목 리소스 컬렉션, 및 데이터 피드 리소스 객체들을 코어 리소스 객체의 멤버 리소스 객체에 관련시키는 역할 리소스 객체들의 역할 리소스 컬렉션을 포함한다. 이런 식으로 객체 계층 구조의 객체들을 조직하고 상호 관련시킴으로써, 예시적인 방법은 전개 가능한 방식으로 컴퓨팅 환경의 표현을 성취하고, 그래서 136에서 종료한다.
도 5는 도 3의 예시적인 객체 계층 구조 스키마(70)에 기초하고, 도 2의 객체 계층 구조 스키마 객체 세트(30)에 예시된 객체 유형들을 이용하는 예시적인 객체 계층 구조(140)를 예시한다. 예시적인 객체 계층 구조(140)는 현재의 사용자를 나타내는 프로파일 리소스 객체(144); (컴퓨터 환경 호스트 및 휴대폰 장치와 같은) 예시적인 객체 계층 구조(140)가 저장되는 저장 서비스들을 나타내는 저장 서비스 컬렉션(146); (캘린더 애플리케이션 및 계산기 애플리케이션과 같은) 컴퓨팅 환경에서 이용 가능한 애플리케이션들의 세트를 나타내는 애플리케이션 리소스 컬렉션(148); (워크스테이션 컴퓨터 시스템 및 휴대폰 장치와 같은) 컴퓨팅 환경을 함께 포함하는 장치들을 나타내는 장치 리소스 컬렉션(150); 및 (새로운 사진 앨범의 생성 및 음악 앨범의 추가와 같은) 컴퓨팅 환경에서 발생하는 주목할 만한 이벤트들을 서술하는 뉴스 항목 리소스 컬렉션(152)을 포함하는 메쉬 객체(142)를 포함한다. 메쉬 객체(142)는 또한 사진 앨범들의 세트를 나타내는 제1 코어 리소스 객체(156) 및 음악 앨범들의 세트를 나타내는 제2 코어 리소스 객체(166)를 포함하는 코어 리소스 객체 컬렉션(154)을 포함한다. 제1 코어 리소스 객체(156)는 제1 코어 리소스 객체(156)에 관하여 발생하는 덜 중요한 이벤트들을 나타내는 액티비티 리소스 컬렉션, 제1 리소스 객체(156)에의 액세스의 다양한 레벨들을 제공받은 멤버들을 나타내는 멤버 리소스 컬렉션, 및 그를 통하여 제1 코어 리소스 객체(156)가 액세스될 수 있는 장치들에 제1 코어 리소스 객체(156)를 관련시키는 매핑 컬렉션을 포함한다. 제1 코어 리소스 객체(156)는 또한 사진 앨범 컬렉션 내의 사진 앨범을 나타내는 데이터 피드 리소스 객체(158)를 포함하는, 데이터 피드 리소스 컬렉션을 포함한다. 데이터 피드 리소스 객체(158)는 사진 앨범의 사진들을 포함하는 데이터 항목 리소스 컬렉션(162), 및 사진 앨범에 관하여 멤버들의 다양한 역할들(제1 멤버가 차지하는 "소유자" 역할, 및 제2 멤버가 차지하는 "공헌자" 역할)을 나타내는 역할 리소스 컬렉션(164)을 포함한다. 유사하게, 제2 코어 리소스 객체(166)는 액티비티들, 멤버들, 매핑들, 및 음악 앨범 상의 다양한 노래들을 나타내는 데이터 항목 리소스 컬렉션(172), 및 (제1 멤버가 차지하는 "소유자" 역할 및 제2 멤버가 차지하는 "청취자(listener)" 역할을 포함하는) 음악 앨범에 액세스할 수 있는 멤버들을 나타내는 역할 리소스 컬렉션(174)을 갖는 음악 앨범을 나타내는 데이터 피드 리소스 객체(170)를 포함하는 데이터 피드들의 컬렉션들을 포함한다.
(도 3의 예시적인 객체 계층 구조 스키마(70)와 같은) 여기에 논의된 바와 같이 고안된 객체 계층 구조 스키마들은 다양한 양태들에서 변형들을 갖도록 구현될 수 있다. 일부 변형들은 이들 및 다른 기법들의 다른 변형들에 관하여 추가적인 이점들을 제시하고 및/또는 불리점들을 감소시킬 수 있다. 그러한 변형들은 그러한 추가적인 이점들 및/또는 감소된 불리점들에 더하여 (도 4의 예시적인 방법(130)과 같은) 이들 기법들의 실시예들에서, 단독으로 또는 다른 변형들과 공동하여 포함될 수 있다.
이들 기법들의 구현들 사이에 변화할 수 있는 제2 양태는 객체 계층 구조 스키마에 따라서 조직된 객체 계층 구조의 객체들을 저장하는 방식과 관련이 있다. 여기에 설명된 객체 계층 구조 스키마는 객체 계층 구조들의 많은 모델들에서 구체화될 수 있다. 일부 예시적인 실시예들이 도 6에 예시되어 있고, 각각은 (속성들 "Fname" 및 "Lname"을 갖는) 사람, (속성 "Device지시자"를 갖는) 장치, 및 (속성들 "Title" 및 "Binary"를 갖고, 후자는 실행가능 바이너리의 내용들을 포함하는) 애플리케이션을 나타내는 객체들의 저장을 예시한다. 첫 번째 예(180)로서, 객체 계층 구조 스키마는 C#와 같은 객체 지향 언어로 객체들의 세트로서 명시될 수 있고, 여기에서 객체들은 클래스들로부터 인스턴스화되고, 클래스들은 명명된 속성들 및 메서드들의 잘 유형된(well-typed) 컬렉션들로서 정의된다. 이 모델에서는, 클래스들의 세트가 정의될 수 있고, 클래스에 의해 모델링된 객체의 유형의 인스턴스를 나타내기 위채 각 클래스로부터 객체들이 인스턴스화될 수 있다. 예를 들면, 클래스 유형은 사람을 나타내기 위하여 정의될 수 있고, 클래스는 제1 사람("Dav지시자 Smith")을 나타내는 제1 클래스 인스턴스("Person 1") 및 제2 사람("John Lee")을 나타내는 제2 클래스 인스턴스("Person 2")로서 인스턴스화될 수 있다. 두 번째 예(190)로서, 객체 계층 구조 스키마는 관계 데이터베이스와 같은 데이터 스토어에 저장된 객체들의 세트로서 명시될 수 있다. 객체의 각 유형은 객체의 속성들에 따라서 구성되는 특정한 관계 테이블에 저장될 수 있다. 예를 들면, 테이블은 다양한 사람들의 표현들을 저장하도록 구성될 수 있고, 제1 사람("David Smith")을 나타내는 제1 레코드("Person 1") 및 제2 사람("John Lee")을 나타내는 제2 레코드("Person 2")를 포함할 수 있다. 세 번째 예(200)로서, 객체 계층 구조의 객체들은 객체 계층 구조 스키마의 객체들 후에 모델링될 수 있지만, 속성 이름들 및 값들의 디렉터리를 제공하는 구조 불가지론적 방식(structure-agnostic manner)으로 저장될 수 있다. 임의의 이름의 객체가 키/값 튜플들(key/value tuples)의 임의의 세트로서 선언될 수 있는 튜플 시스템이 이용될 수 있다. 예를 들면, 사람들의 표현들은 제1 사람("David Smith")을 나타내는 제1 2-튜플("Person 1") 및 제2 사람("John Lee")을 나타내는 제2 2-튜플("Person 2")로서 저장될 수 있다. 객체 계층 구조 스키마의 이들 및 다른 실시예들은 여기에 논의된 기법들을 구현하는 동안에 통상의 기술을 가진 당업자들에 의해 고안될 수 있다.
이들 기법들의 구현들 사이에 변화할 수 있는 제2 양태는 이들 객체 유형들의 확장성 및/또는 새로운 객체 유형들의 추가를 증진하는 방식으로 객체 계층 구조 스키마의 공식화와 관련이 있다. 도 2에 예시된 객체 유형들은 컴퓨팅 환경의 객체들의 다수 또는 전부를 표현하기에 충분히 적절할 수 있다. 그러나, 도 2에 예시된 예시적인 객체 계층 구조 스키마 객체 세트(30)는 객체 계층 구조 스키마에서 정의되고 통합될 수 있는 객체 유형들의 총망라한 목록으로서 제시되어 있지 않다. 객체 계층 구조 스키마의 다양한 실시예들은 도 2에 예시된 객체 유형들의 특수화된 형태에 더하여, 및/또는 그의 작은 변경들로서 다른 객체 유형들을 포함하고 정의할 수 있다. 또한, 객체 계층 구조 스키마의 일부 실시예들은 그에 의해 조직된 객체 계층 구조들에 다른 객체 유형들이 저장되는 것을 허용할 수 있다. 그러므로 객체 계층 구조 스키마는 확장 가능한 객체 시스템으로서 고안될 수 있고, 새로운 객체 유형들에 따라서 객체 계층 구조에 객체들이 생성될 수 있고, 객체 유형들이 새로운 속성들과 함께 확장될 수 있다. 첫 번째 예로서, 완전히 새로운 객체 유형들이 다양한 사용자들에 의해 고안되어 객체 계층 구조에 삽입될 수 있다. 두 번째 예로서, 사용자는 의미론적 관계를 갖는 객체들을 나타내기 위하여 메타데이터를 객체들과 관련시키기를 원할 수 있다. 이 메타데이터는 사용자에 대한 값의 정보로 객체 계층 구조 스키마의 객체들을 보충할 수 있고, 객체 계층 구조 스키마는 메타데이터가 객체 계층 구조 내의 객체들의 표현을 방해하지 않는 방식으로 고안될 수 있다.
객체 계층 구조 스키마의 확장성에 더하여, 객체 계층 구조의 각각의 객체들은 재귀 가능한 기본 표현 포맷(recursable base representation format)에 따라서 특정되고 저장될 수 있고, 객체의 컴포넌트들은 기본적인 방식으로 표현될 수 있다. 예를 들면, 객체들은 전형적으로 3가지 유형의 데이터 엘리먼트들을 포함할 수 있다: 아톰들(수 또는 문자와 같은 단일 데이터 단위들), 레코드들(함께 작용하는 단일 데이터 단위들의 컬렉션들), 및 시퀀스들(엘리먼트들의 집계들). 레코드는 일반적으로 날짜 1776년 7월 4일(July 4th, 1776)을 함께 표현하는 수들 7, 4, 및 1776과 같은, 표현으로서 분할할 수 없게 함께 기능하는 엘리먼트들의 세트를 나타내는 반면; 시퀀스는 소수들(prime numbers)의 세트를 포함하는 2, 3, 5 및 7과 같은, 분할할 수 있는 항목들의 세트를 나타낸다. 또한, 문법은, 특정한 종류의 엘리먼트들의 네스팅(nesting)(예를 들면, 시퀀스들의 시퀀스들, 또는 레코드의 하나의 엘리먼트로서 시퀀스를 포함하는 레코드)을 허용할 수 있는 재귀(recursion)와 함께 고안될 수 있다. 이런 식으로 객체들을 조직함으로써, 객체 계층 구조 스키마는 (도 2에 예시된 것들과 같은) 알려진 객체 유형들의 객체들의 표현뿐만 아니라 알려지지 않은 객체 유형들의 객체들의 표현, 및 또한 사용자 정의된 메타데이터와 같은 새로운 정보를 갖는 알려진 객체 유형들의 확장을 허용할 수 있다. 통상의 기술을 가진 당업자들은 여기에 논의된 기법들을 구현하면서 확장 가능한 객체 계층 구조 스키마들 및 그의 포맷들을 고안할 수 있을 것이다.
이들 기법들의 구현들 사이에 변화할 수 있는 제3 양태는 그를 통하여 객체 계층 구조의 객체들이 식별될 수 있는 주소 지정 모델(addressing model)과 관련이 있다. 주소 지정 모델은 객체 계층 구조를 포함하는 객체들의 계층적 배열들을 반영하기 위해 유리하게 선택될 수 있다(즉, 만일 제1 객체가 계층적으로 제2 객체보다 하위이면, 제1 객체에 대한 주소는 계층적으로 제2 객체에 대한 주소보다 하위이다). 주소 지정 모델은 또한 각 주소에 대하여 기껏해야 하나의 객체를 지정하기 위해, 및 객체가 객체 계층 구조에서 위치를 변경하거나 제거될 때까지 및 객체가 객체 계층 추조에서 위치를 변경하거나 제거되지 않는 한 그 객체가 특정한 주소에서 주소 지정 가능한 상태로 남도록 유리하게 선택될 수 있다. 객체 계층 구조 스키마들의 일부 실시예들에서, 주소 지정 모델은 각각의 객체들이 단일 주소에서 이용 가능하도록, 제1 주소에서 이용 가능한 제1 객체가 제2 주소에서 이용 가능한 제2 객체와 비교하여 사실상 상이한 객체이도록 고안될 수 있다. 객체 계층 구조 스키마들의 다른 실시예들에서, 객체는 2개 이상의 주소들에서 액세스 가능할 수 있다. 일례로, 객체는 객체 계층 구조에서의 계층적 주소, 및 또한 그 객체가 객체 계층 군조에서의 그의 위치와 관계없이 독특하게 식별될 수 있는 전역적으로 독특한 주소(globally distinctive address) 양쪽 모두를 가질 수 있다. 예를 들면, 객체 계층 구조의 객체들은 전역적으로 고유한 식별자들(GUIDs: globally unique identifiers)을 할당받을 수 있고, 객체 계층 구조에서 하나 이상의 계층적 주소들에 따라서 또는 그의 GUID에 따라서 비계층적으로 액세스될 수 있다. 따라서, John Lee에 대한 콘택트 정보를 나타내는 객체는 생성시에 0xF451D3E0의 GUID를 지정받을 수 있고, 계층적 위치 또는 이름(예를 들면, /Contacts/JohnLee)을 통하여 또는 그의 GUID(예를 들면, /GUIDs/F451D3E0)를 통하여 액세스 가능할 수 있다. 통상의 기술을 가진 당업자들은 여기에 논의된 기법들을 구현하면서 객체 계층 추조 스키마들에 대한 다수의 주소 지정 모델들을 고안할 수 있다.
유리할 수 있는 하나의 그러한 주소 지정 모델은 객체 계층 구조의 각각의 주소들에 대하여 기껏해야 리소스 객체 유형의 하나의 객체를 정의하는 계층적 주소 지정 모델을 수반한다. 이 주소 지정 모델은 도 2의 예시적인 객체 계층 구조 스카마 객체 세트(30)에서 예시된 것과 같은 객체 유형들을 포함하는 객체 계층 구조 스키마에 적용될 수 있고, 다수의 객체 유형들이 기본 리소스 객체 유형(32)으로부터 파생한다. 그로부터 파생된 임의의 그러한 객체는 객체 계층 구조 내의 단일 계층적으로 지향된 주소를 할당받을 수 있고; 반대로, 리소스 객체 유형(32)으로부터 파생되지 않은 객체들은 주소 지정 모델을 통하여 이용 가능하지 않을 수 있다. 특히, 계층적 주소 지정 모델은 URI(uniform resource identifier) 계층적 주소 지정 모델에 따라서 정의될 수 있다. URI들은 전형적으로 다음의 구문에 따라서 정의된다:
scheme://authority/path/resource_name
여기에서 스킴(scheme)은 통신 프로토콜(HTTP, FTP, 텔넷(telnet) 등)을 나타내고, 오소리티(authority)는 서버 또는 데이터 소스를 나타내고, 패스(path)는 명명된 리소스가 존재하는 계층 구조의 노드로의 슬래시로 구분된 경로(slash-delimited path)를 나타낸다. (도 3의 예시적인 객체 계층 구조 스키마(70)와 같은) 객체 계층 구조 스키마들에 기초한 객체 계층 구조의 객체들은 다음과 같이 이런 식으로 주소 지정될 수 있다:
http://mycomputer.com/Contacts/JohnLee
이 주소 지정 모델은 몇몇 양태들에서 유리할 수 있다. 첫째로, 이런 식으로 주소 지정 가능한 객체 계층 구조는 공통의 웹서버에 의해 호스팅될 수 있고, 이것은 그 웹서버가 컴퓨팅 환경을 나타내는 객체 계층 구조의 객체들을 저장하도록 특별히 구성되어 있지 않는 경우에도 해당된다. 둘째로, 이런 식으로 특정된 객체 액세스들은 주로 URI 기반 요청들을 처리하도록 구성되어 있는 네트워킹 하드웨어(예를 들면, 방화벽들 및 라우터들)에 의해 더 용이하게 처리될 수 있다. 셋째로, 이런 식으로 주소 지정 가능한 객체 계층 구조는 표현 상태 전달(representational state transfer)("RESTful") 인터페이스에 따라서 표현될 수 있고, 여기에서 객체 계층 구조의 객체들은 명확한 동작들(well-defined operations)의 제한된 세트를 통하여 조작될 수 있다; 예를 들면, 공통의 HTTP 메서드들(PUT, GET, POST, 및 DELETE)은 컴퓨팅 환경을 나타내는 객체 계층 구조의 객체들에 액세스하기 위한 공통의 동사들(Create, Read, Update, 및 Delete)을 가능하게 하기에 완전히 적당하다. 다양한 객체 계층 구조 스키마들에 대한 다른 주소 지정 모델들과 비교하여 다른 이점들이 제공될 수 있고 및/또는 다른 불리점들이 감소될 수 있다.
이들 기법들의 구현들 사이에 변화할 수 있는 제4 양태는 객체 계층 구조 스키마에서 정의된 알려진 객체 유형들의 컴포넌트들과 관련이 있다. 도 2에 예시된 예시적인 객체 계층 구조 스키마 객체 세트(30)는 객체 계층 구조 스키마에서 정의되고 통합될 수 있는 객체 유형들의 총망라한 목록으로서도, 이들 객체 유형들을 포함하는 속성들의 완전한 세트로서도 제시되어 있지 않다. 도 7은 객체 계층 구조 스키마의 객체 유형들과 관련될 수 있는 추가적인 객체 속성들을 포함하는 예시적인 추가적인 객체 속성 세트(210)를 예시한다. 이들 추가적인 객체 속성들은 객체 계층 구조 스키마에 따라서 조직된 객체 계층 구조들의 객체들을 더 정의하기 위해 (단독으로 또는 다른 추가적인 객체 속성들과 공동하여) 선택될 수 있고, 이것은 객체 속성들의 상이한 세트들을 갖는 객체 유형들을 정의하는 객체 계층 구조 스키마들에 관하여 추가적인 이점들을 제시하고 및/또는 불리점들을 감소시킬 수 있다.
예시적인 추가적인 객체 속성 세트(210)에 예시된 바와 같이, 메쉬(Mesh) 객체 유형(54)은 메쉬의 주소(예를 들면, http://mycomputer.com과 같은 메쉬의 서버 또는 소스를 정의하는 부분 URI)를 특정하는 자기 링크 객체(self link object), 및/또는 객체 계층 구조 및 그에 의해 표현되는 컴퓨팅 환경의 이름을 특정하는 제목 객체(title object)를 포함하는 추가적인 속성들과 관련될 수 있다. 리소스(Resource) 객체 유형(32) 및 리소스 컬렉션(Resource Collection) 객체 유형(58) 양쪽 모두는 리소스 또는 리소스 컬렉션의 저자들(authors)을 식별하는 저자 컬렉션(authors collection); 리소스 컬렉션에 포함된 항목들 또는 리소스에 대한 기본 주소(예를 들면, 기본 URI)를 특정하는 기본 주소 객체(base address object); 리소스 또는 리소스 컬렉션을 서술하는 몇몇 사용자 정의된 카테고리들을 특정하는 카테고리 컬렉션(categories collection); 리소스 또는 리소스 컬렉션에의 공헌자들을 특정하는 공헌자 컬렉션(contributors collection); 리소스 또는 리소스 컬렉션에 관하여 저작권 문(copyright statement)을 식별하는 저작권 객체(copyright object); 전역적으로 고유한 식별자(GUID)와 같은 식별 객체(identification object); 리소스 또는 리소스 컬렉션과 관련이 있는 링크들(예를 들면, URL들)을 식별하는 링크 컬렉션(links collection); 리소스 또는 리소스 객체의 독특한 주소(예를 들면, URI)를 특정하는 자기 링크 객체(self link object), 리소스 또는 리소스 컬렉션의 텍스트 요약(textual summary)을 포함하는 요약 객체(summary object); 및/또는 리소스 또는 리소스 컬렉션에 대한 이름을 특정하는 제목 객체(title object)를 포함하는 광범위의 속성들과 관련될 수 있다.
예시적인 객체 속성 세트(210)에 더 예시된 바와 같이, 코어 객체(Core Object) 유형(34)은 그 코어 객체와 관련된 사용자 데이터(예를 들면, 도메인 특정 메타데이터)의 임의로 할당된 세트를 포함하는 사용자 데이터 객체(user data object)와 관련될 수 있다. 애플리케이션(Application) 객체 유형(36)은 애플리케이션을 독특하게 식별하는 애플리케이션 식별 객체(application identification object)(예를 들면, 애플리케이션 이름), 애플리케이션에 대한 흠페이지를 식별하는 홈페이지 위치(homepage location)(예를 들면, 웹사이트 URL), 객체 계층 구조에서 애플리케이션의 현재 버전을 식별하는 설치된 버전 위치(installed version location)(예를 들면, 계산기(Calculator) 버전 1.2.1.1600); 애플리케이션 매니페스트(application manifest)의 위치를 식별하는 매니페스트 위치 객체(manifest location object)(예를 들면, 객체 계층 구조에서 리소스 객체를 식별하는 URI, 또는 웹 액세스 가능한 애플리케이션 매니페시트를 식별하는 URL); 및/또는 매니페스트 위치에서 이용 가능한 애플리케이션 매니페스트의 버전을 식별하는 매니페스트 버전 객체(manifest version object)와 관련될 수 있다. 데이터 항목(Data Entry) 객체 유형(38)은 데이터 항목 객체의 계층적 부모를 나타내는 부모 식별 객체(parent identification object); 객체 동기화 정보를 포함하는 동기화 객체(synchronization object)(예를 들면, 최신의 객체 동기화 지시자, 이 데이터 항목이 컴퓨팅 환경 호스트와 마지막으로 동기화된 날짜 및 시간, 등); 및/또는 데이터 항목과 관련된 사용자 데이터의 임의로 할당된 세트를 포함하는 사용자 데이터 객체(user data object)와 관련될 수 있다. 데이터 피드(Data Feed) 객체 유형(42)은 동기화 관련된 액티비티들 또는 뉴스 항목들의 세트를 포함하는 동기화 항목 컬렉션(synchronization entries collection), 및/또는 데이터 피드의 유형을 나타내는 데이터 피드 유형 객체(data feed type object)(예를 들면, 이미지들 또는 사운드들의 컬렉션, 멀티미디어 문서의 컴포넌트들, 등)와 관련될 수 있다.
예시적인 추가적인 객체 속성 세트(210)에 더 예시된 바와 같이, 액티비티(Activity) 객체 유형(44)은 액티비티의 유형(예를 들면, 데이터 항목 생성, 판독, 업데이팅, 또는 삭제)을 서술하는 액티비티 유형 객체(activity type object), 및/또는 그것을 넘어서는 액티비티가 더 이상 유용하게 저장되고 사용자들에게 제시되지 않는 쓸모없게 된 이벤트(obsolete event)를 나타낼 수 있는, 액티비티의 최대 유용한 수명을 정의하는 최대 연령 객체(maximum age object)와 관련될 수 있다. 멤버(Member) 객체 유형(46)은 리소스 또는 리소스 컬렉션의 멤버가 되도록 초청된 개인이 그 초청을 수락하였는지 여부를 나타내는 초청 수락 지시자 객체(invitation acceptance indicator object), 리소스 또는 리소스 컬렉션의 멤버가 되는 초청이 만료하였는지를 나타내는 초청 만료 지시자 객체(invitation expiration indicator object); 멤버가 리소스 또는 리소스 컬렉션의 소유자인지를 나타내는 소유자 지시자 객체(owner indicator object); 및/또는 리소스 또는 리소스 컬렉션에 관하여 멤버가 차지하는 역할의 유형(예를 들면, 저자(Author), 독자(Reader) 등)을 나타내는 역할 유형 객체(role type object)와 관련될 수 있다. 장치(Device) 객체 유형(48)은 표현된 장치가 속하는 장치들의 일반적인 클래스를 서술하는 장치 유형 객체(object type object), 및/또는 컴퓨팅 장치를 현재 표현하고 있는 장치에 장치가 현재 액세스 가능한지를 여부를 나타내는 장치 온라인 지시자 객체(device online indicator object)와 관련될 수 있다. 매핑(Mapping) 객체 유형(50)은 장치에 매핑되는 코어 리소스 객체 내의 특정한 데이터 피드들을 식별하는 데이터 피드 매핑 컬렉션(data feed mappings collection)과 관련될 수 있다. 예를 들면, 장치는 매핑 객체 유형(50)의 객체를 통하여 코어 객체의 서브세트에 매핑될 수 있지만, 그 매핑은 매핑 객체의 데이터 피드 매핑 컬렉션에서 식별된 특정한 데이터 피드들에 제한될 수 있다. 프로파일(Profile) 객체 유형(52)은 사용자의 이름을 나타내는 이름 객체(name object), 및/또는 사용자에 대한 전자 메일 콘택트를 나타내는 전자 메일 주소 객체(email address object)와 관련될 수 있다. 마지막으로, 역할(Role) 객체 유형(62)은 생성 사용 권한 지시자 객체(creation permission indicator object), 삭제 사용 권한 지시자 객체(deletion permission indicator object), 판독 사용 권한 지시자 객체(read permission indicator object), 및/또는 역할과 관련된 사용 권한들을 식별하는 업데이트 사용 권한 지시자 객체(update permission indicator object), 및/또는 이 역할에서 사용자가 차지하는 역할 유형을 식별하는 역할 유형 객체(role type object)와 관련될 수 있다.
그러므로 도 7의 예시적인 추가적인 객체 속성들(210)은 객체 계층 구조 스키마의 다양한 객체 유형들과 (단독으로 또는 공동하여) 더 관련될 수 있는 일부 객체 속성들을 예시한다. 그러나, 추가적인 객체 속성 세트(210)는 그러한 객체 계층 구조 스키마들의 다양한 객체 유형들과 관련될 수 있는 객체 속성들의 총망라한 목록으로서 제시되어 있지 않다는 것과, 다수의 다른 객체 속성들이 대안적으로 또는 추가적으로 다양한 객체 유형들과 관련될 수 있다는 것을 알 수 있다. 통상의 기술을 가진 당업자들은 여기에 논의된 기법들을 구현하면서 객체 계층 구조 스키마의 다양한 알려진 객체 유형들의 정의에서 다수의 추가적인 또는 대안적인 객체 속성들을 포함할 수 있을 것이다.
여기에 논의된 기법들의 다른 실시예는 객체 계층 구조에 따라 컴퓨팅 환경을 표현하는 방법을 수행하도록 구성된 프로세서 실행가능 명령어들을 포함하는 컴퓨터 판독가능 매체를 수반한다. 이들 방법들로 고안될 수 있는 예시적인 컴퓨터 판독가능 매체가 도 8에 예시되어 있고, 여기에서 구현(220)은 컴퓨터 판독가능 매체(222)(예를 들면, CD-R, DVD-R, 또는 하드 디스크 드라이브의 원반(platter))를 포함하고, 그 위에 컴퓨터 판독가능 데이터(224)가 인코딩되어 있다. 이 컴퓨터 판독가능 데이터(224)는 여기에 제시된 원리들에 따라서 동작하도록 구성된 컴퓨터 명령어들(226)의 세트를 포함한다. 하나의 그러한 실시예(220)에서, 프로세스 실행가능 명령어들(226)은 도 4의 예시적인 방법(130)과 같은, 객체 계층 구조에 따라서 컴퓨팅 환경을 표현하는 방법을 수행하도록 구성될 수 있다. 여기에 제시된 기법들에 따라서 동작하도록 구성되어 있는 다수의 그러한 컴퓨터 판독가능 매체들이 통상의 기술을 가진 당업자들에 의해 고안될 수 있다.
본 내용은 구조상의 특징들 및/또는 방법론적 단계들에 특정한 언어로 설명되었지만, 부속된 청구항들에서 정의된 내용은 반드시 위에 설명된 특정한 특징들 또는 단계들에 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 위에 설명된 특정한 특징들 및 단계들은 청구항들을 구현하는 형태들의 예로서 개시되어 있다.
이 출원에서 사용될 때, "컴포넌트", "모듈", "시스템", "인터페이스" 등의 용어들은 일반적으로 컴퓨터 관련 엔티티로서, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중의 소프트웨어를 지칭하도록 의도되어 있다. 예를 들면, 컴포넌트는 프로세서 상에서 실행하는 프로세스, 프로세서, 객체, 실행 파일, 실행의 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들에 제한되는 것은 아니다. 예시로서, 컨트롤러 상에서 실행하는 애플리케이션 및 컨트롤러 양쪽 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트들이 프로세스 및/또는 실행의 스레드 내에 존재할 수 있고 컴포넌트가 하나의 컴퓨터 상에 국한되거나 및/또는 2개 이상의 컴포넌트들 사이에 분산될 수 있다.
또한, 청구된 내용은 개시된 내용을 구현하도록 컴퓨터를 제어하기 위한 소프트웨어, 펌웨어, 하드웨어, 또는 그의 임의의 조합을 생성하기 위해 표준 프로그래밍 및/또는 엔지니어링 기법들을 이용하는 방법, 장치, 또는 제조물로서 구현될 수 있다. 여기에서 사용되는 "제조물(article of manufacture)"이라는 용어는 임의의 컴퓨터 판독가능 장치, 캐리어, 또는 매체로부터 액세스 가능한 컴퓨터 프로그램을 포함하도록 의도되어 있다. 물론, 숙련된 당업자들은 청구된 내용의 범위 또는 정신에서 벗어나지 않고 이 구성에 대해 다수의 변경들이 이루어질 수 있다는 것을 인지할 것이다.
도 9 및 다음의 논의는 여기에 제시된 사항들 중 하나 이상의 실시예들을 구현하기 위한 적합한 컴퓨팅 환경의 간결한 일반 설명을 제공한다. 도 9의 동작 환경은 적합한 컴퓨팅 환경의 일례에 불과하며, 동작 환경의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 예시적인 컴퓨팅 장치들은 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 컴퓨터, (모바일 폰, PDA(Personal Digital Assistant), 미디어 플레이어 등과 같은) 모바일 장치, 멀티프로세서 시스템, 소비자 전자 장치, 미니 컴퓨터, 메인프레임 컴퓨터, 상기 시스템들 또는 장치들 중 임의의 것을 포함하는 분산된 컴퓨팅 환경 등을 포함하지만, 이들에 제한되는 것은 아니다.
실시예들은 하나 이상의 컴퓨팅 장치들에 의해 실행되는 "컴퓨터 판독가능 명령어들"과 관련하여 기술될 수 있다. 컴퓨터 판독가능 명령어들은 (아래에 논의되는) 컴퓨터 판독가능 매체를 통해 배포될 수 있다. 컴퓨터 판독가능 명령어들은 특정 태스크를 수행하거나 특정한 추상 데이터 유형들을 구현하는 함수, 객체, API(Application Programming Interface), 데이터 구조 등과 같은 프로그램 모듈들로서 구현될 수 있다. 전형적으로, 컴퓨터 판독가능 명령어들의 기능성은 다양한 실시예들에서 원하는 대로 조합되거나 분산될 수 있다.
도 9는 여기에 제공된 하나 이상의 실시예들을 구현하도록 구성된 컴퓨팅 장치(232)를 포함하는 시스템(230)의 예를 예시한다. 하나의 구성에서, 컴퓨팅 장치(232)는 적어도 하나의 처리 장치(236) 및 메모리(238)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라서, 메모리(238)는 (예를 들면, RAM과 같은) 휘발성, (예를 들면, ROM, 플래시 메모리 등과 같은) 비휘발성 또는 이 둘의 어떤 조합일 수 있다. 이 구성은 도 9에서 점선(234)에 의해 예시되어 있다.
다른 실시예들에서, 장치(232)는 추가적인 특징들 및/또는 기능성을 포함할 수 있다. 예를 들면, 장치(232)는 또한 자기 저장 장치, 광 저장 장치 등을 포함하지만 이에 제한되지 않는 추가적인 저장 장치(예를 들면, 이동식 및/또는 비이동식)를 포함할 수 있다. 그러한 추가적인 저장 장치는 도 9에서 저장 장치(240)에 의해 예시되어 있다. 일 실시예에서, 여기에 제공된 하나 이상의 실시예들을 구현하기 위한 컴퓨터 판독가능 명령어들은 저장 장치(240)에 있을 수 있다. 저장 장치(240)는 또한 운영 체제, 애플리케이션 프로그램 등을 구현하기 위한 다른 컴퓨터 판독가능 명령어들을 저장할 수 있다. 컴퓨터 판독가능 명령어들은, 예를 들면, 처리 장치(236)에 의한 실행을 위해 메모리(238)에 로딩될 수 있다.
여기에서 사용되는 "컴퓨터 판독가능 매체"라는 용어는 컴퓨터 저장 매체를 포함한다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 메모리(238) 및 저장 장치(240)는 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(Digital Versatile Disk) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 장치(232)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 이용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 임의의 그러한 컴퓨터 저장 매체는 장치(232)의 부분일 수 있다.
장치(232)는 또한 장치(232)가 다른 장치들과 통신할 수 있게 하는 통신 접속(들)(246)을 포함할 수 있다. 통신 접속(들)(246)은 모뎀, 네트워크 인터페이스 카드(NIC), 통합 네트워크 인터페이스, 라디오 주파수 송신기/수신기, 적외선 포트, USB 접속, 또는 컴퓨팅 장치(232)를 다른 컴퓨팅 장치들에 접속하기 위한 기타 인터페이스들을 포함하지만 이에 제한되는 것은 아니다. 통신 접속(들)(246)은 유선 접속 또는 무선 접속을 포함할 수 있다. 통신 접속(들)(246)은 통신 매체를 송신 및/또는 수신할 수 있다.
"컴퓨터 판독가능 매체"라는 용어는 통신 매체를 포함한다. 통신 매체는 전형적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 변조된 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어 또는 기타 데이터를 구현하고 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 그것의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 포함할 수 있다.
장치(232)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 적외선 카메라, 비디오 입력 장치, 및/또는 임의의 다른 입력 장치와 같은 입력 장치(들)(244)를 포함할 수 있다. 하나 이상의 디스플레이, 스피커, 프린터, 및/또는 임의의 다른 출력 장치들과 같은 출력 장치(들)(242)도 장치(232)에 포함될 수 있다. 입력 장치(들)(244) 및 출력 장치(들)(242)는 유선 접속, 무선 접속, 또는 그의 임의의 조합을 통해 장치(232)에 접속될 수 있다. 일 실시예에서, 다른 컴퓨팅 장치로부터의 입력 장치 또는 출력 장치가 컴퓨팅 장치(232)를 위한 입력 장치(들)(244) 또는 출력 장치(들)(242)로서 이용될 수 있다.
컴퓨팅 장치(232)의 컴포넌트들은 버스와 같은 다양한 상호 접속들에 의해 접속될 수 있다. 그러한 상호 접속들은 PCI Express와 같은 PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), 파이어와이어(firewire)(IEEE 1394), 광 버스 구조 등을 포함할 수 있다. 다른 실시예에서, 컴퓨팅 장치(232)의 컴포넌트들은 네트워크에 의해 상호 접속될 수 있다. 예를 들면, 메모리(238)는 네트워크에 의해 상호 접속된 상이한 물리적 버스들에 위치하는 다수의 물리적 메모리 장치들로 이루어질 수 있다.
숙련된 당업자들은 컴퓨터 판독가능 명령어들을 저장하기 위해 이용되는 저장 장치들이 네트워크에 걸쳐서 분산될 수 있다는 것을 이해할 것이다. 예를 들면, 네트워크(248)를 통해 액세스 가능한 컴퓨팅 장치(250)는 여기에 제공된 하나 이상의 실시예들을 구현하기 위한 컴퓨터 판독가능 명령어들을 저장할 수 있다. 컴퓨팅 장치(232)는 컴퓨팅 장치(250)에 액세스하고 실행을 위한 컴퓨터 판독가능 명령어들의 일부 또는 전부를 다운로드할 수 있다. 대안적으로, 컴퓨팅 장치(232)는, 필요한, 컴퓨터 판독가능 명령어들의 부분들을 다운로드할 수 있고, 또는 일부 명령어들은 컴퓨팅 장치(232)에서 실행되고 일부는 컴퓨팅 장치(250)에서 실행될 수 있다.
실시예들의 다양한 동작들이 여기에 제공되어 있다. 일 실시예에서, 설명된 동작들 중 하나 이상의 동작은, 컴퓨팅 장치에 의해 실행될 경우, 그 컴퓨팅 장치로 하여금 설명된 동작들을 수행하게 할, 하나 이상의 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 판독가능 명령어들을 구성할 수 있다. 동작들의 일부 또는 전부가 설명되어 있는 순서는 이들 동작들이 반드시 순서 의존적인 것임을 암시하도록 해석되지 않아야 한다. 이 설명의 이익을 얻은 숙련된 당업자들에 의해 대안적인 순서가 이해될 것이다. 또한, 여기에 제공된 각 실시예들에 모든 동작들이 반드시 존재하는 것은 아니라는 것을 이해할 것이다.
또한, "예시적인"이라는 단어는 여기에서 예, 사례, 또는 예시로서 소용되는 것을 의미하기 위해 이용된다. "예시적인"으로서 여기에 설명된 임의의 양태 또는 설계는 반드시 다른 양태들 또는 설계들에 비하여 유리한 것으로 해석되어서는 안 된다. 오히려, 예시적인이라는 단어의 사용은 개념들을 구체적인 방식으로 제시하도록 의도되어 있다. 이 출원에서 사용될 때, "또는"이라는 용어는 배타적인 "또는"이 아니라 포괄적인 "또는"을 의미하도록 의도되어 있다. 즉, 다르게 특정되거나, 또는 문맥으로부터 명백하지 않은 한, "X가 A 또는 B를 채용한다"는 것은 당연한 포괄적인 치환들 중 임의의 것을 의미하도록 의도되어 있다. 즉, X가 A를 채용하고; X가 B를 채용하고; 또는 X가 A와 B 양쪽을 채용한다면, "X가 A 또는 B를 채용한다"는 것은 상기 경우들 중 임의의 경우에 만족된다. 또한, 이 출원 및 부속된 청구항들에서 사용되는 관사 "a" 및 "an"은 다르게 특정되거나 또는 단수 형식에 관한 것임이 문맥으로부터 명백하지 않은 한 일반적으로 "하나 이상"을 의미하는 것으로 해석될 수 있다.
또한, 본 개시는 하나 이상의 구현들에 관하여 도시되고 설명되었으나, 이 명세서 및 첨부된 도면들을 읽고 이해한 것에 기초하여 숙련된 당업자들에게는 동등한 변경들 및 수정들이 착상될 것이다. 본 명세서는 모든 그러한 수정들 및 변경들을 포함하고 다음의 청구항들에 의해서만 제한된다. 특히 위에 설명된 컴포넌트들(예를 들면, 엘리먼트, 리소스 등)에 의해 수행되는 다양한 기능들에 관하여, 그러한 컴포넌트들을 설명하기 위해 이용되는 용어들은, 다르게 지시되지 않는 한, 여기에 예시된 본 개시의 예시적인 실시예들에서 기능을 수행하는 개시된 구조와 구조적으로 동등하지는 않을지라도, (예를 들면, 기능적으로 동등한) 설명된 컴포넌트의 특정된 기능을 수행하는 임의의 컴포넌트에 대응하도록 의도되어 있다. 또한, 본 개시의 특정한 특징이 몇몇 구현들 중 하나의 구현에 관해서만 개시되었을 수 있지만, 그러한 특징은 임의의 주어진 또는 특정한 응용에 대하여 요망되고 유리할 수 있는 다른 구현들의 하나 이상의 다른 특징들과 조합될 수 있다. 또한, "includes", "having", "has", "with"라는 용어들, 또는 이들의 변형 용어들이 상세한 설명 또는 청구항들에서 사용되는 한은, 그러한 용어들은 "comprising"이라는 용어와 유사한 방식으로 포괄적인 것으로 의도된다.

Claims (16)

  1. 프로세서를 포함하는 장치상에서 컴퓨팅 환경을 표현하는 방법으로서,
    상기 프로세서상에서 명령어들을 실행하는 단계를 포함하고,
    상기 명령어들은,
    상기 컴퓨팅 환경을 표현하는 객체 계층 구조(object hierarchy)를 생성하고,
    상기 장치상에 상기 컴퓨팅 환경을 렌더링하기 위한 요청을 수신하면, 상기 객체 계층 구조를 사용하여 상기 컴퓨팅 환경을 렌더링하며,
    상기 컴퓨팅 환경을 변경하기 위한 요청을 수신하면, 상기 객체 계층 구조의 적어도 하나의 객체를 변경하도록 구성되며,
    상기 객체 계층 구조는, 표현 상태 전달(representational state transfer) 인터페이스에 따라 객체 계층 구조의 각각의 주소에 대해 리소스 객체 유형의 하나 이하의 객체를 정의하는 일정한 리소스 식별자 계층적 주소 지정 모델(uniform resource identifier hierarchical addressing model)을 가지며,
    상기 객체 계층 구조는 상기 컴퓨팅 환경을 기술하는 메쉬 객체(mesh object)를 포함하되,
    상기 메쉬 객체는,
    적어도 하나의 프로파일 리소스 객체와,
    저장 서비스 객체들의 저장 서비스 컬렉션과,
    애플리케이션 리소스 객체들의 애플리케이션 리소스 컬렉션과,
    장치 리소스 객체들의 장치 리소스 컬렉션과,
    뉴스 항목 리소스 객체들의 뉴스 항목 리소스 컬렉션과,
    코어 리소스 객체들의 코어 객체 리소스 컬렉션
    을 포함하고,
    상기 코어 리소스 객체들 각각은,
    각각이 적어도 하나의 장치 객체와 관련되는 매핑 리소스 객체들의 매핑 리소스 컬렉션과,
    액티비티(Activity) 리소스 객체들의 액티비티 리소스 컬렉션과,
    각각이 적어도 하나의 아이덴티티 객체와 관련되는 멤버 리소스 객체들의 멤버 리소스 컬렉션과,
    데이터 피드 리소스 객체들의 데이터 피드 리소스 컬렉션
    을 포함하고,
    상기 데이터 피드 리소스 객체들 각각은,
    데이터 엔트리 리소스 객체들의 데이터 엔트리 리소스 컬렉션과,
    상기 데이터 피드 리소스 객체들을 상기 코어 리소스 객체의 멤버 리소스 객체와 관련시키는 역할(role) 리소스 객체들의 역할 리소스 컬렉션
    을 포함하고,
    상기 프로파일 리소스 객체, 애플리케이션 리소스 객체들, 장치 리소스 객체들, 뉴스 항목 리소스 객체들, 코어 리소스 객체들, 매핑 리소스 객체들, 액티비티 리소스 객체들, 멤버 리소스 객체들, 데이터 피드 리소스 객체들, 데이터 엔트리 리소스 객체들 및 역할 리소스 객체들은 리소스 객체 유형에 기초하되,
    상기 리소스 객체 유형은,
    저자 컬렉션(authors collection)과,
    기본 주소 객체(base address object)와,
    카테고리 컬렉션(categories collection)과,
    공헌자 컬렉션(contributors collection)과,
    저작권 객체(copyright object)와,
    식별 객체(identification object)와,
    링크 컬렉션(links collection)과,
    자기 링크 객체(self link object)와,
    요약 객체(summary object)와,
    제목 객체(title object)를 포함하는
    컴퓨팅 환경 표현 방법.
  2. 제1항에 있어서,
    상기 코어 리소스 객체는 사용자 데이터 객체를 포함하는 상기 코어 리소스 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  3. 제1항에 있어서,
    상기 애플리케이션 리소스 객체는,
    애플리케이션 식별 객체, 홈페이지 위치 객체, 설치된 버전 위치, 매니페스트 위치 객체(manifest location object), 및 매니페스트 버전 객체(manifest version object)를 포함하는 애플리케이션 리소스 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  4. 제1항에 있어서,
    상기 데이터 엔트리 리소스 객체 및 뉴스 항목 리소스 객체는, 부모 식별 객체(parent identification object), 동기화 객체, 및 사용자 데이터 객체를 포함하는 상기 데이터 엔트리 리소스 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  5. 제1항에 있어서,
    상기 데이터 피드 리소스 객체는, 동기화 관련 데이터 엔트리 리소스 객체의 동기화 엔트리 컬렉션과, 데이터 피드 유형 객체를 포함하는 상기 데이터 피드 리소스 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  6. 제1항에 있어서,
    상기 멤버 리소스 객체는, 초청 수락 지시자 객체(invitation acceptance indicator object), 초청 만료 지시자 객체(invitation expiration indicator object), 소유자 지시자 객체(owner indicator object) 및 역할 유형 객체를 포함하는 상기 멤버 리소스 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  7. 제1항에 있어서,
    상기 장치 리소스 객체는, 장치 유형 객체 및 장치 온라인 지시자 객체를 포함하는 장치 리소스 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  8. 제1항에 있어서,
    상기 매핑 리소스 객체는 데이터 피드 리소스 객체 컬렉션을 포함하는 상기 리소스 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  9. 제1항에 있어서,
    상기 역할 리소스 객체들은
    생성 사용 권한 지시자 객체(creation permission indicator object)와,
    삭제 사용 권한 지시자 객체(deletion permission indicator object)와,
    판독 사용 권한 지시자 객체(read permission indicator object)와,
    업데이트 사용 권한 지시자 객체(update permission indicator object)와,
    역할 유형 객체(role type object)
    를 포함하는 역할 객체 유형에 기초하는
    컴퓨팅 환경 표현 방법.
  10. 제1항에 있어서,
    상기 객체 계층 구조는 재귀 가능한 기본 표현 포맷(recursable base representation format)에 따라 객체를 표현하도록 구성되는
    컴퓨팅 환경 표현 방법.
  11. 제10항에 있어서,
    상기 재귀 가능한 기본 표현 포맷은 아톰들의 레코드들의 재귀 가능한 시퀀스를 포함하는
    컴퓨팅 환경 표현 방법.
  12. 프로세서 실행가능 명령어를 저장하는 컴퓨터 판독가능 저장 장치로서,
    상기 명령어는 장치의 프로세서상에서 실행되는 경우에, 상기 장치의 컴퓨팅 환경을 표현하는 방법을 수행하고,
    상기 방법은,
    상기 컴퓨팅 환경을 표현하는 객체 계층 구조를 생성하는 단계 - 상기 객체 계층 구조는, 표현 상태 전달 인터페이스에 따라 객체 계층 구조의 각각의 주소에 대해 리소스 객체 유형의 하나 이하의 객체를 정의하는 일정한 리소스 식별자 계층적 주소 지정 모델(uniform resource identifier hierarchical addressing model)을 가지며,
    상기 객체 계층 구조는 상기 컴퓨팅 환경을 기술하는 메쉬 객체(mesh object)를 포함하되,
    상기 메쉬 객체는,
    적어도 하나의 프로파일 리소스 객체와,
    저장 서비스 객체들의 저장 서비스 컬렉션과,
    애플리케이션 리소스 객체들의 애플리케이션 리소스 컬렉션과,
    장치 리소스 객체들의 장치 리소스 컬렉션과,
    뉴스 항목 리소스 객체들의 뉴스 항목 리소스 컬렉션과,
    코어 리소스 객체들의 코어 객체 리소스 컬렉션
    을 포함하고,
    상기 코어 리소스 객체들 각각은,
    각각이 적어도 하나의 장치 객체와 관련되는 매핑 리소스 객체들의 매핑 리소스 컬렉션과,
    액티비티(Activity) 리소스 객체들의 액티비티 리소스 컬렉션과,
    각각이 적어도 하나의 식별 객체와 관련되는 멤버 리소스 객체들의 멤버 리소스 컬렉션과,
    데이터 피드 리소스 객체들의 데이터 피드 리소스 컬렉션
    을 포함하고,
    상기 데이터 피드 리소스 객체들 각각은,
    데이터 엔트리 리소스 객체들의 데이터 엔트리 리소스 컬렉션과,
    상기 데이터 피드 리소스 객체를 상기 코어 리소스 객체의 멤버 리소스 객체와 관련시키는 역할(role) 리소스 객체들의 역할 리소스 컬렉션
    을 포함함 - 와,
    상기 장치상에 상기 컴퓨팅 환경을 렌더링하기 위한 요청의 수신 시에, 상기 객체 계층 구조를 사용하여 상기 컴퓨팅 환경을 렌더링하는 단계 - 상기 프로파일 리소스 객체, 애플리케이션 리소스 객체들, 장치 리소스 객체들, 뉴스 항목 리소스 객체들, 코어 리소스 객체들, 매핑 리소스 객체들, 액티비티 리소스 객체들, 멤버 리소스 객체들, 데이터 피드 리소스 객체들, 데이터 엔트리 리소스 객체들 및 역할 리소스 객체들은,
    저자 컬렉션(authors collection)과,
    기본 주소 객체(base address object)와,
    카테고리 컬렉션(categories collection)과,
    공헌자 컬렉션(contributors collection)과,
    저작권 객체(copyright object)와,
    식별 객체(identification object)와,
    링크 컬렉션(links collection)과,
    자기 링크 객체(self link object)와,
    요약 객체(summary object)와,
    제목 객체(title object)
    를 포함하는 리소스 객체 유형에 기초함 - 와,
    상기 컴퓨팅 환경을 변경하기 위한 요청의 수신 시에, 상기 객체 계층 구조의 적어도 하나의 객체를 변경하는 단계
    를 포함하는
    컴퓨터 판독가능 저장 장치.
  13. 프로세서를 포함하는 장치 상에서 컴퓨팅 환경을 표현하는 방법으로서,
    상기 프로세서상에서 명령어들을 실행하는 단계를 포함하되,
    상기 명령어들은,
    표현 상태 전달 인터페이스에 따라 상기 컴퓨팅 환경을 표현하는 객체 계층 구조를 생성하고,
    상기 장치상에 상기 컴퓨팅 환경을 렌더링하기 위한 요청의 수신 시에, 상기 객체 계층 구조를 사용하여 상기 컴퓨팅 환경을 렌더링하며,
    상기 컴퓨팅 환경을 변경하기 위한 요청의 수신 시에, 상기 객체 계층 구조의 적어도 하나의 객체를 변경하도록 구성되며,
    상기 객체 계층 구조는 아톰들의 레코드들의 재귀 가능한 시퀀스를 포함하는 재귀 가능한 기본 표현 포맷에 따라 표현되고, 상기 컴퓨팅 환경을 기술하는 메쉬 객체(mesh object)를 포함하며,
    상기 메쉬 객체는,
    자기 링크 객체(self link object)와,
    제목 객체(title object)와,
    이름 객체 및 이메일 주소 객체를 포함하는 적어도 하나의 프로파일 리소스 객체와,
    저장 서비스 객체들의 저장 서비스 컬렉션과,
    애플리케이션 리소스 객체들의 애플리케이션 리소스 컬렉션 - 애플리케이션 리소스 객체들 각각은, 애플리케이션 식별 객체, 홈페이지 위치 객체, 설치된 버전 객체, 매니페스트 위치 객체, 및 매니페스트 버전 객체를 포함함 - 과,
    각각이 장치 유형 객체 및 장치 온라인 지시자 객체를 포함하는 장치 리소스 객체들의 장치 리소스 컬렉션과,
    뉴스 항목 리소스 객체들의 뉴스 항목 리소스 컬렉션과,
    코어 리소스 객체들의 코어 객체 리소스 컬렉션
    을 포함하고,
    상기 코어 리소스 객체들 각각은,
    사용자 데이터 객체와,
    매핑 리소스 객체들의 매핑 리소스 컬렉션 - 상기 매핑 리소스 객체들 각각은 적어도 하나의 장치 객체와 관련되고, 데이터 피드 리소스 객체 컬렉션을 포함함 - 과,
    각각이 액티비티 유형 객체 및 최대 연령 객체(maximum age object)를 포함하는 액티비티(Activity) 리소스 객체들의 액티비티 리소스 컬렉션과,
    각각이 적어도 하나의 아이덴티티 객체와 관련되는 멤버 리소스 객체들의 멤버 리소스 컬렉션 - 상기 멤버 리소스 객체들 각각은, 초청 수락 지시자 객체(invitation acceptance indicator object), 초청 만료 지시자 객체(invitation expiration indicator object), 소유자 지시자 객체(owner indicator object), 및 역할 유형 객체(role type object)를 포함함 - 과,
    데이터 피드 리소스 객체들의 데이터 피드 리소스 컬렉션
    을 포함하고,
    상기 데이터 피드 리소스 객체들 각각은,
    동기화 관련 데이터 엔트리 리소스 객체들의 동기화 엔트리 컬렉션과,
    데이터 피드 유형 객체와,
    각각이 부모 식별 객체(parent identification object), 동기화 객체 및 사용자 데이터 객체를 포함하는 데이터 엔트리 리소스 객체들의 데이터 엔트리 리소스 컬렉션과,
    상기 데이터 피드 리소스 객체를 상기 코어 리소스 객체의 멤버 리소스 객체와 관련시키는 역할 리소스 객체들의 역할 리소스 컬렉션 - 상기 역할 리소스 객체들 각각은, 생성 사용 권한 지시자 객체(creation permission indicator object), 삭제 사용 권한 지시자 객체(deletion permission indicator object), 판독 사용 권한 지시자 객체(read permission indicator object), 업데이트 사용 권한 지시자 객체, 역할 유형 객체를 포함함 -
    을 포함하고,
    상기 프로파일 리소스 객체, 애플리케이션 리소스 객체들, 장치 리소스 객체들, 뉴스 항목 리소스 객체들, 코어 리소스 객체들, 매핑 리소스 객체들, 액티비티 리소스 객체들, 멤버 리소스 객체들, 데이터 피드 리소스 객체들, 데이터 엔트리 리소스 객체들 및 역할 리소스 객체들은 리소스 객체 유형에 기초하되,
    상기 리소스 객체 유형은,
    저자 컬렉션(authors collection)과,
    기본 주소 객체(base address object)와,
    카테고리 컬렉션(categories collection)과,
    공헌자 컬렉션(contributors collection)과,
    저작권 객체(copyright object)와,
    식별 객체(identification object)와,
    링크 컬렉션(links collection)과, 자기 링크 객체(self link object)와,
    요약 객체(summary object)와,
    제목 객체(title object)를 포함하고,
    상기 애플리케이션 리소스 컬렉션, 장치 리소스 컬렉션, 뉴스 항목 리소스 컬렉션, 코어 객체 리소스 컬렉션, 매핑 리소스 컬렉션, 액티비티 리소스 컬렉션, 멤버 리소스 컬렉션, 데이터 피드 리소스 컬렉션, 데이터 엔트리 리소스 컬렉션 및 역할 리소스 컬렉션은 리소스 컬렉션 객체 유형에 기초하되,
    상기 리소스 컬렉션 객체 유형은,
    저자 컬렉션(authors collection)과,
    기본 위치 객체(base location object)와,
    카테고리 컬렉션(categories collection)과,
    공헌자 컬렉션(contributors collection)과,
    저작권 객체(copyright object)와,
    식별 객체(identification object)와,
    링크 컬렉션(links collection)과,
    자기 링크 객체(self link object)와,
    요약 객체(summary object)와,
    제목 객체(title object)를 포함하고,
    상기 객체 계층 구조는 객체 계층 구조의 각각의 주소에 대해 리소스 객체 유형의 하나 이하의 객체를 정의하는 일정한 리소스 식별자 계층 구조 주소 지정 모델을 포함하는
    컴퓨팅 환경 표현 방법.
  14. 제1항에 있어서,
    상기 장치상에 상기 컴퓨팅 환경을 렌더링하는 것은,
    상기 객체 계층 구조의 적어도 하나의 객체를 특정하는 HTTP GET 요청을 상기 장치로부터 수신할 경우, 상기 객체 계층 구조의 적어도 하나의 객체를 HTTP GET 요청에 대한 HTTP 응답 내에서 상기 장치로 송신하는 것을 포함하고,
    상기 컴퓨팅 환경을 변경하는 것은,
    적어도 하나의 객체를 포함하는 HTTP PUT 요청을 장치로부터 수신할 경우, 상기 객체의 상기 객체 계층 구조에 저장하는 것과,
    상기 객체 계층 구조의 적어도 하나의 객체의 업데이트를 특정하는 HTTP POST 요청을 상기 장치로부터 수신할 경우, 상기 업데이트를 상기 객체 계층 구조의 적어도 하나의 객체에 적용하는 것과,
    상기 객체 계층 구조의 적어도 하나의 객체를 특정하는 HTTP DELET 요청을 상기 장치로부터 수신할 경우, 상기 객체 계층 구조로부터 적어도 하나의 객체를 제거하는 것
    을 포함하는 컴퓨팅 환경 표현 방법.
  15. 제1항에 있어서,
    장치에 대한 상기 컴퓨팅 환경을 렌더링하는 것은, 상기 객체 계층 구조의 적어도 하나의 객체를 상기 장치로 송신하는 것을 포함하는
    컴퓨팅 환경 표현 방법.
  16. 제15항에 있어서,
    장치에 대한 상기 컴퓨팅 환경을 렌더링하는 것은, 상기 장치의 적어도 하나의 상기 객체 계층 구조의 적어도 하나의 객체를 상기 장치의 적어도 하나의 성능에 기초하여 맞춤화된 컴퓨팅 환경을 렌더링하는 것을 포함하는
    컴퓨팅 환경 표현 방법.
KR1020107020487A 2008-03-20 2009-02-19 컴퓨팅 환경 표현 KR101627873B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/052,554 2008-03-20
US12/052,554 US8484174B2 (en) 2008-03-20 2008-03-20 Computing environment representation

Publications (2)

Publication Number Publication Date
KR20100133380A KR20100133380A (ko) 2010-12-21
KR101627873B1 true KR101627873B1 (ko) 2016-06-13

Family

ID=41089915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107020487A KR101627873B1 (ko) 2008-03-20 2009-02-19 컴퓨팅 환경 표현

Country Status (7)

Country Link
US (1) US8484174B2 (ko)
EP (1) EP2289004A4 (ko)
JP (1) JP5559140B2 (ko)
KR (1) KR101627873B1 (ko)
CN (1) CN101978369A (ko)
TW (1) TWI498751B (ko)
WO (1) WO2009117201A2 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753712B2 (en) 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US9037711B2 (en) * 2009-12-02 2015-05-19 Metasecure Corporation Policy directed security-centric model driven architecture to secure client and cloud hosted web service enabled processes
US8473595B2 (en) * 2009-12-30 2013-06-25 Bmc Software, Inc. Method and system to automatically adapt web services from one protocol/idiom to another protocol/idiom
US9904733B2 (en) * 2010-01-15 2018-02-27 Microsoft Technology Licensing, Llc Name hierarchies for mapping public names to resources
US8756617B1 (en) * 2010-05-18 2014-06-17 Google Inc. Schema validation for secure development of browser extensions
US10715457B2 (en) 2010-06-15 2020-07-14 Oracle International Corporation Coordination of processes in cloud computing environments
WO2011159842A2 (en) * 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US9021093B2 (en) 2010-08-17 2015-04-28 International Business Machines Corporation Managing and securing manageable resources in stateless web server architecture using servlet filters
US8856260B2 (en) * 2011-06-14 2014-10-07 Microsoft Corporation Providing access to shared state data
US9390255B2 (en) 2011-09-29 2016-07-12 Oracle International Corporation Privileged account manager, dynamic policy engine
EP2812809A4 (en) 2012-02-10 2016-05-25 Oracle Int Corp FRAMEWORK FOR CLOUD COMPUTING SERVICES
CN104335179B (zh) * 2012-02-13 2018-01-23 甲骨文国际公司 云计算环境中的过程的协调
US9058471B2 (en) 2012-06-08 2015-06-16 Oracle International Corporation Authorization system for heterogeneous enterprise environments
US9619540B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Subscription order generation for cloud services
US9069979B2 (en) 2012-09-07 2015-06-30 Oracle International Corporation LDAP-based multi-tenant in-cloud identity management system
US9467355B2 (en) 2012-09-07 2016-10-11 Oracle International Corporation Service association model
US9276942B2 (en) 2012-09-07 2016-03-01 Oracle International Corporation Multi-tenancy identity management system
US9619545B2 (en) 2013-06-28 2017-04-11 Oracle International Corporation Naïve, client-side sharding with online addition of shards
US9674168B2 (en) 2013-09-19 2017-06-06 Oracle International Corporation Privileged account plug-in framework-step-up validation
US9602545B2 (en) 2014-01-13 2017-03-21 Oracle International Corporation Access policy management using identified roles
US10574745B2 (en) * 2015-03-31 2020-02-25 Western Digital Technologies, Inc. Syncing with a local paired device to obtain data from a remote server using point-to-point communication
US11005773B2 (en) * 2015-12-10 2021-05-11 Microsoft Technology Licensing, Llc Data driven automated provisioning of telecommunication applications
EP3328016A1 (de) * 2016-11-29 2018-05-30 Siemens Aktiengesellschaft Verfahren zum verbinden von geräten mit der sogenannten cloud, computerprogramm mit einer implementation des verfahrens und verarbeitungseinheit zur ausführung des verfahrens
US20190026360A1 (en) * 2017-07-18 2019-01-24 GM Global Technology Operations LLC Data processing using an enumeration utility
US10479356B1 (en) 2018-08-17 2019-11-19 Lyft, Inc. Road segment similarity determination
US11928557B2 (en) 2019-06-13 2024-03-12 Lyft, Inc. Systems and methods for routing vehicles to capture and evaluate targeted scenarios
US11449475B2 (en) 2019-06-28 2022-09-20 Lyft, Inc. Approaches for encoding environmental information
US11157007B2 (en) * 2019-06-28 2021-10-26 Lyft, Inc. Approaches for encoding environmental information
US11788846B2 (en) 2019-09-30 2023-10-17 Lyft, Inc. Mapping and determining scenarios for geographic regions
US11816900B2 (en) 2019-10-23 2023-11-14 Lyft, Inc. Approaches for encoding environmental information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242541A (ja) 1999-02-24 2000-09-08 Pfu Ltd オブジェクト処理装置及びそのプログラム記憶媒体
US20060015538A1 (en) 2004-06-30 2006-01-19 Letourneau Jack J File location naming hierarchy
US20070061349A1 (en) 2005-09-15 2007-03-15 Microsoft Corporation Hierarchically describing shapes

Family Cites Families (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5504852A (en) 1991-09-09 1996-04-02 Apple Computer, Inc. Method for creating a collection of aliases representing computer system files
US5437025A (en) 1993-01-26 1995-07-25 International Business Machines Corporation System and method for run time configuration of objects in an object oriented computing environment
US5548726A (en) 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
WO1996034350A1 (en) 1995-04-24 1996-10-31 Aspect Development, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US5850090A (en) 1995-05-24 1998-12-15 Mitsubishi Denki Kabushiki Kaisha Dynamic semiconductor memory device on SOI substrate
US5764543A (en) 1995-06-16 1998-06-09 I2 Technologies, Inc. Extensible model network representation system for process planning
JP3598183B2 (ja) * 1996-10-16 2004-12-08 株式会社東芝 多次元データ管理方法、多次元データ管理装置、多次元データ管理プログラムを記録した媒体
US6678724B2 (en) 1997-03-12 2004-01-13 Microsoft Corporation Common namespace for internet and local filesystem objects
US6573907B1 (en) 1997-07-03 2003-06-03 Obvious Technology Network distribution and management of interactive video and multi-media containers
US6105062A (en) 1998-02-26 2000-08-15 Novell, Inc. Method and system for pruning and grafting trees in a directory service
US6330717B1 (en) 1998-03-27 2001-12-11 Sony Corporation Of Japan Process and system for developing an application program for a distributed adaptive run-time platform
US6209029B1 (en) 1998-05-12 2001-03-27 Silverstream Software, Inc. Method and apparatus for accessing data sources in a three tier environment
US6243746B1 (en) 1998-12-04 2001-06-05 Sun Microsystems, Inc. Method and implementation for using computer network topology objects
US7062532B1 (en) 1999-03-25 2006-06-13 Autodesk, Inc. Method and apparatus for drawing collaboration on a network
US6519679B2 (en) 1999-06-11 2003-02-11 Dell Usa, L.P. Policy based storage configuration
US6826760B1 (en) 1999-06-16 2004-11-30 Microsoft Corporation Methods of factoring operating system functions, methods of converting operating systems, and related apparatus
US6732172B1 (en) 2000-01-04 2004-05-04 International Business Machines Corporation Method and system for providing cross-platform access to an internet user in a heterogeneous network environment
US6594664B1 (en) 2000-01-04 2003-07-15 International Business Machines Corporation System and method for online/offline uninterrupted updating of rooms in collaboration space
US6546554B1 (en) 2000-01-21 2003-04-08 Sun Microsystems, Inc. Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
WO2001059569A2 (en) 2000-02-09 2001-08-16 Apriva, Inc. Communication systems, components, and methods with programmable wireless devices
US6662192B1 (en) 2000-03-29 2003-12-09 Bizrate.Com System and method for data collection, evaluation, information generation, and presentation
EP1148322A1 (de) 2000-04-18 2001-10-24 Gretag-Macbeth AG Verfahren zur Erzeugung einer elektronischen Farbinformationsdatei und Verfahren zur Farbkommunikation
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6685090B2 (en) 2000-05-24 2004-02-03 Fujitsu Limited Apparatus and method for multi-profile managing and recording medium storing multi-profile managing program
US6611837B2 (en) 2000-06-05 2003-08-26 International Business Machines Corporation System and method for managing hierarchical objects
US7219304B1 (en) 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US20020138617A1 (en) 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US7089295B2 (en) 2000-09-06 2006-08-08 Oracle International Corporation Customizing content provided by a service
US7836458B1 (en) 2000-11-02 2010-11-16 Microsoft Corporation Configuration system
US20040006566A1 (en) 2000-11-07 2004-01-08 Matt Taylor System and method for augmenting knowledge commerce
US6961909B2 (en) 2001-01-05 2005-11-01 Hewlett-Packard Development Company, L.P. System for displaying a hierarchical directory
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US20020103811A1 (en) 2001-01-26 2002-08-01 Fankhauser Karl Erich Method and apparatus for locating and exchanging clinical information
US7054927B2 (en) 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
JP2002229902A (ja) 2001-01-31 2002-08-16 Justec:Kk 情報提供方法、情報提供システム、地理情報提供方法、地図情報提供システム、及びコンピュータ読み取り可能なプログラム
WO2002078286A2 (en) * 2001-03-27 2002-10-03 Bea Systems, Inc. System and method for managing objects and resources with access rights embedded in nodes within a hierarchical tree structure
US20030004746A1 (en) 2001-04-24 2003-01-02 Ali Kheirolomoom Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US8290762B2 (en) 2001-08-14 2012-10-16 National Instruments Corporation Graphically configuring program invocation relationships by creating or modifying links among program icons in a configuration diagram
US6907451B1 (en) 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
JP2005505051A (ja) 2001-10-02 2005-02-17 サイトリックス システムズ,インコーポレイテッド クライアント−サーバネットワークにおいてファイルタイプの関連性により分散型のプログラムの実行方法
US6952714B2 (en) 2001-10-02 2005-10-04 Citrix Systems, Inc. Method for distributed program execution with server-based file type association
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US7330872B2 (en) 2001-10-02 2008-02-12 Citrix Systems, Inc. Method for distributed program execution with web-based file-type association
AU2002330242A1 (en) 2001-10-05 2003-04-22 Vitria Technology, Inc. System and method for vocabulary-based data transformation
JP3857571B2 (ja) 2001-11-15 2006-12-13 タイコ エレクトロニクス レイケム株式会社 ポリマーptcサーミスタおよび温度センサ
KR100426307B1 (ko) 2001-12-12 2004-04-08 한국전자통신연구원 에스오에이피-엑스엠엘을 이용한 데이터 액세스 장치 및방법
US7088995B2 (en) 2001-12-13 2006-08-08 Far Eastone Telecommunications Co., Ltd. Common service platform and software
US7266563B2 (en) 2001-12-28 2007-09-04 Fotomedia Technologies, Llc Specifying, assigning, and maintaining user defined metadata in a network-based photosharing system
WO2003075158A2 (en) 2002-03-01 2003-09-12 Green Border Technologies Method and system for assured denotation of application semantics
US7552481B2 (en) 2002-03-18 2009-06-23 Sun Microsystems, Inc. Method of assessing an organization's network identity capability
US6968535B2 (en) 2002-03-21 2005-11-22 Sun Microsystems, Inc. Service mapping method of enterprise application modeling and development for multi-tier service environments
US7437731B2 (en) 2002-05-30 2008-10-14 Oracle International Corporation Coordinated collaboration system in an integration platform
US20040031029A1 (en) 2002-08-06 2004-02-12 Kyu-Woong Lee Methods and systems for automatically updating software components in a network
US6909721B2 (en) 2002-10-31 2005-06-21 Nokia Corporation Device detection and service discovery system and method for a mobile ad hoc communications network
JP2004171107A (ja) 2002-11-18 2004-06-17 Sony Corp ソフトウエア提供システム、ソフトウエア提供装置および方法、記録媒体、並びにプログラム
CA2412383A1 (en) 2002-11-22 2004-05-22 Ibm Canada Limited-Ibm Canada Limitee Meta-model for associating multiple physical representations of logically equivalent entities in messaging and other applications
US7613812B2 (en) 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
US7386530B2 (en) 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing content including addressability features
US7512703B2 (en) * 2003-01-31 2009-03-31 Hewlett-Packard Development Company, L.P. Method of storing data concerning a computer network
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7099888B2 (en) 2003-03-26 2006-08-29 Oracle International Corporation Accessing a remotely located nested object
US7203711B2 (en) 2003-05-22 2007-04-10 Einstein's Elephant, Inc. Systems and methods for distributed content storage and management
US7240327B2 (en) 2003-06-04 2007-07-03 Sap Ag Cross-platform development for devices with heterogeneous capabilities
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US8001187B2 (en) 2003-07-01 2011-08-16 Apple Inc. Peer-to-peer active content sharing
US7594015B2 (en) * 2003-07-28 2009-09-22 Sap Ag Grid organization
US20050060566A1 (en) 2003-09-16 2005-03-17 Chebolu Anil Kumar Online user-access reports with authorization features
US20050060315A1 (en) 2003-09-16 2005-03-17 Aleksey Sanin Metadata database lookup system
CA2539474C (en) 2003-09-17 2012-04-03 Research In Motion Limited System and method for dynamic generation and customization of web service client applications for terminals
US7721254B2 (en) 2003-10-24 2010-05-18 Microsoft Corporation Programming interface for a computer platform
US20050138156A1 (en) 2003-12-19 2005-06-23 Alexander Gebhart Grid application customization
WO2005072114A2 (en) 2004-01-19 2005-08-11 Pantero Corporation Enterprise interoperability using shared data services
US20050177600A1 (en) 2004-02-11 2005-08-11 International Business Machines Corporation Provisioning of services based on declarative descriptions of a resource structure of a service
US20050192962A1 (en) 2004-02-26 2005-09-01 Patricia Furrer Apparatus, system, method for enabling web-applications to access enterprise managed data
US20050203931A1 (en) 2004-03-13 2005-09-15 Robert Pingree Metadata management convergence platforms, systems and methods
US20050251812A1 (en) 2004-04-27 2005-11-10 Convertabase, Inc. Data conversion system, method, and apparatus
US20050251786A1 (en) 2004-05-07 2005-11-10 International Business Machines Corporation System and method for dynamic software installation instructions
US7650432B2 (en) 2004-05-20 2010-01-19 Bea Systems, Inc. Occasionally-connected application server
WO2005121959A2 (en) 2004-06-08 2005-12-22 Dartdevices Corporation Architecture, apparatus and method for device team recruitment and content renditioning for universal device interoperability platform
US20050289454A1 (en) 2004-06-28 2005-12-29 D & Wayne & Co. Interactive website configuration, display and management application
US20060036602A1 (en) 2004-08-13 2006-02-16 Unangst Marc J Distributed object-based storage system that stores virtualization maps in object attributes
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US20070038642A1 (en) 2004-09-15 2007-02-15 Scott Durgin Method for providing extensible software components within a distributed synchronization system
CA2622404A1 (en) 2004-09-15 2006-03-23 Adesso Systems, Inc. System and method for managing data in a distributed computer system
US7266370B2 (en) 2004-09-20 2007-09-04 Trilibis Inc. System and method for developing and deploying device independent applications
US20060129972A1 (en) 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
US7760746B2 (en) 2004-11-30 2010-07-20 Computer Associates Think, Inc. Cascading configuration using one or more configuration trees
KR100714683B1 (ko) 2004-12-24 2007-05-04 삼성전자주식회사 디지털 컨텐츠를 글로벌로 공유하고 거래하는 방법 및시스템
US9535679B2 (en) 2004-12-28 2017-01-03 International Business Machines Corporation Dynamically optimizing applications within a deployment server
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US20060190608A1 (en) * 2005-02-18 2006-08-24 Nokia Corporation Method for the obtaining of deployment components to electronic devices
EP1869827B1 (en) * 2005-02-22 2019-01-09 BlackBerry Limited Determining operational status of a mobile device capable of executing server-side applications
US7680835B2 (en) 2005-02-28 2010-03-16 Microsoft Corporation Online storage with metadata-based retrieval
US8554916B2 (en) 2005-04-11 2013-10-08 Accenture Global Services Gmbh Service delivery platform and development of new client business models
US7743373B2 (en) 2005-05-06 2010-06-22 International Business Machines Corporation Method and apparatus for managing software catalog and providing configuration for installation
US7694287B2 (en) 2005-06-29 2010-04-06 Visa U.S.A. Schema-based dynamic parse/build engine for parsing multi-format messages
US7577681B1 (en) * 2005-06-29 2009-08-18 Emc Corporation Methods and apparatus for managing contents of a database
US20070028175A1 (en) 2005-07-29 2007-02-01 Moore Dennis B Grid processing user tools
US7702686B2 (en) * 2005-07-29 2010-04-20 Microsoft Corporation Retrieving and persisting objects from/to relational databases
US20070073770A1 (en) 2005-09-29 2007-03-29 Morris Robert P Methods, systems, and computer program products for resource-to-resource metadata association
US8005879B2 (en) 2005-11-21 2011-08-23 Sap Ag Service-to-device re-mapping for smart items
US8140624B2 (en) 2005-12-01 2012-03-20 Computer Associates Think, Inc. Automated deployment and configuration of applications in an autonomically controlled distributed computing system
US8306990B2 (en) 2006-01-10 2012-11-06 Unz.Org Llc Transferring and displaying hierarchical data between databases and electronic documents
CN101583940B (zh) 2006-01-17 2012-10-31 基达罗(以色列)有限公司 多计算环境的无缝集成
CN1801086A (zh) 2006-01-17 2006-07-12 浙江大学 应用于Java操作系统中设备支持的实现方法
US8424020B2 (en) 2006-01-31 2013-04-16 Microsoft Corporation Annotating portions of a message with state properties
US7793343B2 (en) 2006-03-03 2010-09-07 Oracle America, Inc. Method and system for identity management integration
US7483978B2 (en) * 2006-05-15 2009-01-27 Computer Associates Think, Inc. Providing a unified user interface for managing a plurality of heterogeneous computing environments
US7508787B2 (en) * 2006-05-31 2009-03-24 Cisco Technology, Inc. Graphical selection of information display for wireless mesh hierarchies
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US7814460B2 (en) 2006-07-13 2010-10-12 Scriptlogic Corporation Hierarchical modular software packages and associated development tool
US8122111B2 (en) * 2006-07-25 2012-02-21 Network Appliance, Inc. System and method for server configuration control and management
US7822594B2 (en) 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US7739411B2 (en) 2006-08-11 2010-06-15 Samsung Electronics Co., Ltd. Method and system for content synchronization and detecting synchronization recursion in networks
US7606588B2 (en) 2006-08-31 2009-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Hierarchical point-to-multipoint group communications between multiple active communication groups
US8683352B2 (en) * 2006-09-05 2014-03-25 International Business Machines Corporation Selectable flattening hierarchical file browser
US7934194B2 (en) * 2006-10-17 2011-04-26 The Mathworks, Inc. User-defined hierarchies of user-defined classes of graphical objects in a graphical modeling environment
US20080249994A1 (en) * 2006-11-28 2008-10-09 Calder Group, Inc. System and process for server side stateless data interchange
US7734717B2 (en) 2006-12-05 2010-06-08 Nokia Corporation Software distribution via peer-to-peer networks
US7844912B2 (en) 2006-12-22 2010-11-30 Sap Ag System and method using transformation nodes with enhancement layers
WO2008103608A2 (en) 2007-02-19 2008-08-28 Ondeego, Inc. Methods and system to create applications and distribute applications to a remote device
US7853669B2 (en) 2007-05-04 2010-12-14 Microsoft Corporation Mesh-managing data across a distributed set of devices
US8185891B2 (en) 2007-05-14 2012-05-22 Red Hat, Inc. Methods and systems for provisioning software
US9280402B2 (en) 2007-12-20 2016-03-08 Sap Se System and method for updating a dual layer browser
US9298747B2 (en) 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US8572033B2 (en) 2008-03-20 2013-10-29 Microsoft Corporation Computing environment configuration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242541A (ja) 1999-02-24 2000-09-08 Pfu Ltd オブジェクト処理装置及びそのプログラム記憶媒体
US20060015538A1 (en) 2004-06-30 2006-01-19 Letourneau Jack J File location naming hierarchy
US20070061349A1 (en) 2005-09-15 2007-03-15 Microsoft Corporation Hierarchically describing shapes

Also Published As

Publication number Publication date
US8484174B2 (en) 2013-07-09
WO2009117201A3 (en) 2009-11-19
TWI498751B (zh) 2015-09-01
TW200941240A (en) 2009-10-01
CN101978369A (zh) 2011-02-16
US20090240728A1 (en) 2009-09-24
WO2009117201A2 (en) 2009-09-24
EP2289004A2 (en) 2011-03-02
JP5559140B2 (ja) 2014-07-23
JP2011515761A (ja) 2011-05-19
EP2289004A4 (en) 2015-12-09
KR20100133380A (ko) 2010-12-21

Similar Documents

Publication Publication Date Title
KR101627873B1 (ko) 컴퓨팅 환경 표현
CN112654973B (zh) 跨平台集成云内容项的技术
JP2021509191A (ja) クライアント同期における違反の解決
US20090248737A1 (en) Computing environment representation
US20140351346A1 (en) Providing information for shared content
US20190114287A1 (en) Workflow functions of content management system enforced by client device
JP2010519625A (ja) ライブエンティティインターネットストアサービス
JP7374232B2 (ja) コンテキスト付きのコンテンツ・アイテム共有
US20190332687A1 (en) Comment previews displayed in context within content item
US20220188273A1 (en) Per-node metadata for custom node behaviors across platforms
US20230350855A1 (en) Binding local device folders to a content management system for synchronization
US20190332688A1 (en) Aggregated details displayed within file browser interface
US11182348B2 (en) Sharing collections with external teams
US11112948B2 (en) Dynamic preview in a file browser interface
CN113095778A (zh) 通过多个邮箱在通信应用中进行海量数据管理的架构
AU2019261524B2 (en) Aggregated Details Displayed Within File Browser Interface
US11445018B2 (en) Technologies for synchronizing content items across content management systems
US20210056155A1 (en) Truncated search results that preserve the most relevant portions

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 4