KR20140068966A - 동일한 타입의 다수의 메타데이터 표현을 효율적으로 제공하는 기법 - Google Patents

동일한 타입의 다수의 메타데이터 표현을 효율적으로 제공하는 기법 Download PDF

Info

Publication number
KR20140068966A
KR20140068966A KR1020147006679A KR20147006679A KR20140068966A KR 20140068966 A KR20140068966 A KR 20140068966A KR 1020147006679 A KR1020147006679 A KR 1020147006679A KR 20147006679 A KR20147006679 A KR 20147006679A KR 20140068966 A KR20140068966 A KR 20140068966A
Authority
KR
South Korea
Prior art keywords
metadata
native
encoding
type
reader
Prior art date
Application number
KR1020147006679A
Other languages
English (en)
Other versions
KR101941641B1 (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 KR20140068966A publication Critical patent/KR20140068966A/ko
Application granted granted Critical
Publication of KR101941641B1 publication Critical patent/KR101941641B1/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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • 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/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

본 명세서에서 기술된 실시예들은 네이티브 데이터 인코딩(native data encoding)에 사용되는 메타데이터를 동적으로 적응시키는 것, 및 객체 모델 타입 참조(object model type reference)를 효율적으로 변경하는 것에 관한 것이다. 일 실시예에서, 컴퓨터 시스템은 객체 모델 기술 내의 메타데이터의 다양한 부분들을 액세스하기 위해 객체 모델 기술에 걸쳐 메타데이터 리더(reader)를 인스턴스화한다. 메타데이터 리더는 네이티브 메타데이터를 판독하도록 구성되는데, 네이티브 메타데이터는 메타데이터 리더가 기대하는 인코딩으로 표현되는 메타데이터이다. 메타데이터 리더는 액세스된 메타데이터가 비(non)-네이티브 인코딩으로 인코딩되어 있음을 판정하고 그런 다음 비-네이티브 인코딩을 네이티브 인코딩으로 변환하기 위해서는 어떤 메타데이터 변경이 수행되어야 하는지를 결정한다. 컴퓨터 시스템은 결정된 변경에 따라 비-네이티브 인코딩을 네이티브 인코딩으로 객체 모델의 메타데이터를 동적으로 적응시킨다. 그에 따라, 객체 모델은 네이티브 런타임에 의해 판독가능하다.

Description

동일한 타입의 다수의 메타데이터 표현을 효율적으로 제공하는 기법{EFFICIENTLY PROVIDING MULTIPLE METADATA REPRESENTATIONS OF THE SAME TYPE}
컴퓨터는 노동인력, 가정, 모바일 디바이스 및 다수의 다른 장소에서 매우 통합되어져 왔다. 컴퓨터는 대량의 정보를 빠르고 효율적으로 처리할 수 있다. 컴퓨터 시스템상에서 실행하도록 설계된 소프트웨어 애플리케이션은, 사용자가 사무 응용, 학업, 엔터테인먼트 등을 포함하는 광범위한 다양한 기능을 수행할 수 있게 한다. 소프트웨어 애플리케이션은 종종 문서 초안을 작성하기 위한 워드 프로세서 애플리케이션, 또는 이메일을 전송, 수신 및 정리하기 위한 이메일 프로그램과 같은 특정한 작업을 수행하도록 설계된다.
몇몇 경우, 소프트웨어 애플리케이션은 다양한 형태의 메타데이터를 구현하도록 설계된다. 이 메타데이터는 상이한 메타데이터 타입으로 표현될 수 있다. 각 사용자가 어느 메타데이터 타입을 보기를 기대하는 지에 기초하여, 상이한 사용자들에 대해 상이한 타입이 사용될 수 있다. 이러한 상황에서, 일반적으로 다양한 메타데이터 타입을 제공하기 위해 다수의 상이한 메타데이터 파일이 저장 및 사용된다. 이러한 메타데이터 파일들의 어레이를 저장 및 구현하게 되면 정확한 메타데이터 파일을 검색 및 적용하는데 있어서 비효율성을 가져올 수 있다.
본 명세서에서 기술된 실시예들은 네이티브 데이터 인코딩(native data encoding)에 사용되도록 메타데이터를 동적으로 적응시키는 것, 및 객체 모델 타입 참조(object model type reference)를 효율적으로 변경하는 것에 관한 것이다. 일 실시예에서, 컴퓨터 시스템은 객체 모델 기술 내의 메타데이터의 다양한 부분들을 액세스하기 위해 객체 모델 기술에 걸쳐 메타데이터 리더(reader)를 인스턴스화한다(instantiate). 메타데이터 리더는 네이티브 메타데이터를 판독하도록 구성되는데, 네이티브 메타데이터는 메타데이터 리더가 기대하는 인코딩으로 표현되는 메타데이터이다. 메타데이터 리더는 액세스된 메타데이터가 비(non)-네이티브 인코딩으로 인코딩되어 있음을 판정하고 그런 다음 비-네이티브 인코딩을 네이티브 인코딩으로 변환하기 위해서는 어떤 메타데이터 변경이 수행되어야 하는지를 결정한다. 컴퓨터 시스템은 결정된 변경에 따라 비-네이티브 인코딩을 네이티브 인코딩으로 객체 모델의 메타데이터를 동적으로 적응시킨다. 그에 따라, 객체 모델은 네이티브 런타임에 의해 판독가능하다.
또 다른 실시예에서, 컴퓨터 시스템은 타입 정의 요청을 수신하고 그에 응답하여 적절한 타입 정의를 제공하도록 구성된 타입 참조 테이블을 인스턴스화한다. 타입 참조 테이블은 메타데이터 리더에 의해 판독가능한 메타데이터를 포함한다. 인스턴스화된 타입 참조 테이블은 지정된 타입에 대한 타입 정의 요청을 타입 요청자로부터 수신한다. 컴퓨터 시스템은 타입 참조들을 타입 참조 테이블로 구현하여 어떤 타입이 요청되었는지 및 메타데이터 리더의 현재 컨슈머(consumer)에 대해 어떤 타입이 적절한지에 기초하여 메타데이터 리더에 대해 다양한 타입을 동적으로 대체한다. 컴퓨터 시스템은 동적으로 대체된 타입에 기초하여 요청된 타입 정의를 타입 요청자에게 제공한다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 개념들 중 선택된 것들을 단순화된 형식으로 소개하기 위해 제공되는 것이다. 본 요약은 청구항에 기재된 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니며, 청구항에 기재된 청구대상의 범위를 한정하는데 도움을 주려고 하는데 사용되지도 않는다.
본 발명의 추가적인 특징 및 장점은 이하의 상세한 설명에서 설명될 것이며 그 상세한 설명으로부터 부분적으로 자명할 것이며, 또는 본 발명의 실시를 통해 학습될 수 있다. 본 발명의 특징 및 장점은 특히 청구항에 기재된 도구 및 조합들에 의해 실현 및 획득될 수 있다. 본 발명의 이들 및 다른 특징은 후속하는 상세한 설명 및 첨부한 청구항으로부터 보다 완전히 드러날 것이며, 또는 이하에서 설명된 본 발명의 실시를 통해 학습될 수 있다.
본 발명의 전술한 및 다른 장점 및 특징이 얻어질 수 있는 방식을 설명하기 위해, 앞서 간략히 설명한 발명의 보다 특정한 설명이 첨부한 도면에 도시되어 있는 본 발명의 특정 실시예를 참조하여 표현될 것이다. 이들 도면은 본 발명의 전형적인 실시예를 나타낼 뿐이며 따라서 본 발명의 범주를 제한하는 것으로 간주되지 않음을 알 수 있다. 본 발명의 실시예는 첨부한 도면과 함께 보다 구체적이고 자세하게 기술 및 설명될 것이다.
도 1은 본 발명의 실시예들이 네이티브 데이터 인코딩에 사용되도록 메타데이터를 동적으로 적응시키는 것 및 객체 모델 타입 참조를 효율적으로 변경하는 것을 비롯한 동작을 수행할 수 있는 컴퓨터 아키텍처를 나타내는 도면.
도 2는 네이티브 데이터 인코딩에 사용되도록 메타데이터를 동적으로 적응시키는 예시적인 방법의 흐름도.
도 3은 객체 모델 타입 참조를 효율적으로 변경하는 예시적인 방법의 흐름도.
도 4는 포어린(foreign) 메타데이터가 네이티브 메타데이터로 변환되는 실시예를 나타내는 도면.
도 5는 타입 참조를 사용하여 메타데이터가 인코딩되는 실시예를 나타내는 도면.
도 6은 타입 참조의 인-플레이스(in-place) 변경을 통해 포어린 타입 시스템이 네이티브 타입 시스템으로 변환되는 실시예를 나타내는 도면.
도 7은 메타데이터 컨테이너의 실시예를 나타내는 도면.
도 8은 메타데이터 컨테이너의 뷰(view)가 제공되는 실시예를 나타내는 도면.
도 9는 메타데이터 컨테이너의 뷰가 제공되는 또 다른 실시예를 나타내는 도면.
본 명세서에서 기술된 실시예들은 네이티브 데이터 인코딩(native data encoding)에 사용되도록 메타데이터를 동적으로 적응시키는 것, 및 객체 모델 타입 참조(object model type reference)를 효율적으로 변경하는 것에 관한 것이다. 일 실시예에서, 컴퓨터 시스템은 객체 모델 기술 내의 메타데이터의 다양한 부분들을 액세스하기 위해 객체 모델 기술에 걸쳐 메타데이터 리더(reader)를 인스턴스화한다. 메타데이터 리더는 네이티브 메타데이터를 판독하도록 구성되는데, 네이티브 메타데이터는 메타데이터 리더가 기대하는 인코딩으로 표현되는 메타데이터이다. 메타데이터 리더는 액세스된 메타데이터가 비(non)-네이티브 인코딩으로 인코딩되어 있음을 판정하고 그런 다음 비-네이티브 인코딩을 네이티브 인코딩으로 변환하기 위해서는 어떤 메타데이터 변경이 수행되어야 하는지를 결정한다. 컴퓨터 시스템은 결정된 변경에 따라 비-네이티브 인코딩을 네이티브 인코딩으로 객체 모델의 메타데이터를 동적으로 적응시킨다. 그에 따라, 객체 모델은 네이티브 런타임에 의해 판독가능하다.
또 다른 실시예에서, 컴퓨터 시스템은 타입 정의 요청을 수신하고 그에 응답하여 적절한 타입 정의를 제공하도록 구성된 타입 참조 테이블을 인스턴스화한다. 타입 참조 테이블은 메타데이터 리더에 의해 판독가능한 메타데이터를 포함한다. 인스턴스화된 타입 참조 테이블은 지정된 타입에 대한 타입 정의 요청을 타입 요청자로부터 수신한다. 컴퓨터 시스템은 타입 참조를 타입 참조 테이블로 구현하여 어떤 타입이 요청되었는지 및 메타데이터 리더의 현재 컨슈머에 대해 어떤 타입이 적절한지에 기초하여 메타데이터 리더에 대한 다양한 타입을 동적으로 대체한다. 컴퓨터 시스템은 동적으로 대체된 타입에 기초하여 요청된 타입 정의를 타입 요청자에게 제공한다.
이하의 설명은 수행될 수 있는 다수의 방법 및 방법 동작들을 참조한다. 방법 동작들은 소정의 순서로 설명될 수 있고 또는 특정 순서로 발생하는 흐름도로 기술될 수 있지만, 특별히 언급하지 않는다면 특정 순서가 반드시 요구되지 않고, 또는 하나의 동작이 수행되기 전에 그 동작은 다른 동작이 완료된 이후에 수행되어야 하기 때문에, 특정 순서가 요구될 수 있다.
본 발명의 실시예는 이하에서 더 자세히 설명되는 바와 같이 예를 들어 하나 이상의 프로세서 및 시스템 메모리와 같은 컴퓨터 하드웨어를 포함하는 전용 또는 범용 컴퓨터를 포함 또는 이용할 수 있다. 본 발명의 범주 내의 실시예들은 또한 컴퓨터 실행가능 명령어들 및/또는 데이터 구조를 전달 또는 저장하기 위한 물리적 및 다른 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는 전용 또는 범용 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 이용가능 매체일 수 있다. 컴퓨터 실행가능 명령어들을 저장하는 컴퓨터 판독가능 매체는 컴퓨터 저장 매체(장치)이다. 컴퓨터 실행가능 명령어들을 전달하는 컴퓨터 판독가능 매체는 전송 매체이다. 따라서, 예를 들어, 본 발명의 실시예는 적어도 두 개의 구별되는 상이한 종류의 컴퓨터 판독가능 매체, 즉 컴퓨터 저장 매체(장치) 및 전송 매체를 포함할 수 있다.
컴퓨터 저장 매체(장치)는 RAM, ROM, EEPROM, CD-ROM, (예를 들어, RAM에 기초한) 고체 상태 드라이브("SSD"), 플래시 메모리, 상 변화 메모리("PCM"), 다른 유형의 메모리, 다른 광학 디스크 저장소, 자기 디스크 저장소, 또는 다른 자기 저장 장치, 또는 컴퓨터 실행가능 명령어들의 형태의 원하는 프로그램 코드 수단, 데이터 또는 데이터 구조를 저장하는데 사용될 수 있고 전용 또는 범용 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다.
"네트워크"는 컴퓨터 시스템 및/또는 모듈 및/또는 다른 전자 장치 사이에서 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크 및/또는 데이터 스위치로서 정의된다. 네트워크(유선, 무선 또는 유선과 무선의 조합)을 통해 정보가 컴퓨터로 전송 또는 제공되는 경우, 컴퓨터는 사실 그 연결을 전송 매체로서 여긴다. 전송 매체는 컴퓨터 실행가능 명령어들의 형태 또는 데이터 구조의 형태의 원하는 데이터 또는 프로그램 코드 수단을 전달하는데 사용될 수 있고 또한 전용 또는 범용 컴퓨터에 의해 액세스될 수 있는 네트워크를 포함할 수 있다. 전술한 것들의 조합이 컴퓨터 판독가능 매체의 범주 내에 포함되어야 한다.
또한, 다양한 컴퓨터 시스템 구성요소에 도달하게 되면, 컴퓨터 실행가능 명령어들의 형태의 프로그램 코드 수단 또는 데이터 구조는 전송 매체로부터 컴퓨터 저장 매체(장치)로 (또는 그 반대로) 자동으로 전송될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신된 컴퓨터 실행가능 명령어들 또는 데이터 구조는 네트워크 인터페이스 모듈(예를 들어, 네트워크 인터페이스 카드, 즉 "NIC") 내의 RAM에 버퍼링될 수 있고, 그럼 다음 최종적으로 컴퓨터 시스템 RAM 및/또는 컴퓨터 시스템에서의 소규모의 휘발성 컴퓨터 저장 매체로 전송될 수 있다. 따라서, 컴퓨터 저장 매체는 전송 매체를 또한 (또는 심지어 주로) 이용하는 컴퓨터 시스템 컴포넌트에 포함될 수 있다.
컴퓨터 실행가능(또는 컴퓨터 해석가능) 명령어들은 예를 들어 범용 컴퓨터, 전용 컴퓨터, 또는 전용 처리 장치로 하여금 소정의 기능 또는 기능들의 그룹을 수행하게 하는 명령어들을 포함한다. 컴퓨터 실행가능 명령어들은 이진수, 어셈블리 언어와 같은 중간 포맷 명령어, 또는 심지어 소스 코드일 수 있다. 본 발명은 구조적 특징 및/또는 방법론적 동작에 특정한 언어로 기술되었지만, 청구항에 정의된 본 발명은 전술한 특징들 또는 동작들에 반드시 국한될 필요는 없음을 이해해야 한다. 그보다, 기술된 특징들 및 동작들은 청구항을 구현하는 예시적인 형태로서 개시된다.
당업자라면, 본 발명은 개인용 컴퓨터, 데스크톱 컴퓨터, 랩탑 컴퓨터, 메시지 프로세서, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능 소비자 전자기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 이동 전화기, PDA, 태블릿, 페이저, 라우터, 스위치 등을 비롯하여, 여러 유형의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있음을 알 수 있을 것이다. 본 발명은 또한 네트워크를 통해 (유선 데이터 링크, 무선 데이터 링크 또는 유선 및 무선 데이터 링크의 조합에 의해) 링크되는 로컬 및 원격 컴퓨터 시스템 모두가 작업(예를 들어, 클라우드 컴퓨팅, 클라우드 서비스 등)을 수행하는 분산형 시스템 환경에서 실시될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수 있다.
도 1은 본 발명의 원리들이 채용될 수 있는 컴퓨터 아키텍처(100)를 나타낸다. 컴퓨터 아키텍처(100)는 컴퓨터 시스템(100)을 포함한다. 컴퓨터 시스템(101)은 클라우드 컴퓨팅 시스템을 포함한 임의의 타입의 로컬 또는 분산형 컴퓨터 시스템일 수 있다. 컴퓨터 시스템은 다양한 상이한 작업을 수행하기 위한 다양한 상이한 모듈을 포함할 수 있다. 컴퓨터 시스템은 다양한 상이한 인터페이스를 사용하여 그 시스템과의 사용자 상호작용을 가능하게 한다. 몇몇 실시예에서, 컴퓨터 시스템은 개발자가 소프트웨어 프로그램을 개발할 수 있도록 해주는 집적 개발 환경(IDE)(107)을 제공할 수 있다. 따라서, 몇몇 경우, 사용자(105)는 개발자일 수 있고, IDE와 상호작용하기 위한 입력(106)을 전송할 수 있다. IDE는 다양한 상이한 프로그래밍 구조 및 다른 요소를 제공할 수 있다. 몇몇 경우, 이것은 메타데이터 리더(115)를 포함할 수 있다.
본 명세서에서 기술된 몇몇 실시예는 단일 타입의 다른 뷰를 상이한 메타데이터 컨슈머에게 제시하는 단일 메타데이터 파일을 제공한다. 이러한 다른 뷰는 메타데이터가 판독되는 경우 메타데이터 리더(115)로 하여금 이들 변경을 그때그때 행하도록 강제하지 않고 제시될 수 있다. 객체 모델 기술(116)에 걸쳐 메타데이터 리더가 인스턴스화되는 경우, 그 리더는 메타데이터의 인코딩을 검출할 수 있고 메타데이터가 리더의 컨슈머에게 자연스럽게 보이도록 하기 위해 어떤 변경이 필요할 수 있는지를 결정할 수 있다. 러더는 메타데이터 리더의 컨슈머가 변경없이 포어린 (또는 "네이티브") 인코딩(예를 들어, 117)에 걸쳐 동작할 수 있도록 메타데이터의 인코딩을 변경하는 어댑터(예를 들어, 적응 모듈(125))에 메타데이터를 래핑(wrap)한다. 실시예는 또한 효율적인 방식의 변환을 가능하게 하기 위한 메타데이터의 인코딩을 기술한다. 본 명세서에서 사용되는 바와 같이, "네이티브" 인코딩은 메타데이터 리더가 기대하는 포맷을 갖는 메타데이터 인코딩을 지칭한다. "비-네이티브" 또는 포어린 인코딩은 메타데이터 리더가 기대하지 않는 메타데이터 인코딩을 지칭한다.
변경이 많이 있는 경우, 단일 타입에 대해 메타데이터의 다수의 사본이 생성될 수 있다. 이들 사본 각각은 메타데이터 리더가 어떤 메타데이터 컨슈머에게 어떤 뷰가 제시될 것인지를 결정할 수 있도록 하는 뚜렷한 특징을 포함한다. 일단 그 결정이 이루어지면, 결정된 뷰는 각 컨슈머에게 제공된다. 메타데이터 컨슈머는 그들의 선호하는 뷰 타입을 식별하는 옵션을 리더에 전달할 수 있다. 메타데이터 리더는 그 옵션을 사용하여 어떤 뷰 타입이 제시될 것인지를 선택할 수 있다. 뷰의 나머지 부분은 그 컨슈머로부터 숨겨진다.
본 명세서에서 기술된 몇몇 실시예는 다음의 측면, 즉 1) 포어린 객체 모델 인코딩을 네이티브 객체 모델 인코딩에 적응시키는데 필요한 변경을 메타데이터 리더가 자동으로 검출하는 것, 2) 객체 모델에 의해 참조되는 타입을 대신 다른 객체 모델로부터의 타입이 되도록 변경하는 것, 3) 두 개의 상이한 객체 모델의 타입 시스템들 간의 효율적인 변환을 가능하게 하는 메타데이터의 인코딩, 4) 메타데이터 리더의 컨슈머가 기대하는 메타데이터 인코딩 표준에 부합하도록 하는 메타데이터 인코딩의 변경, 5) 메타데이터 컨슈머가 변경없이 변경된 메타데이터 인코딩을 투명하게 소비할 수 있도록 하는 것, 및 6) 상이한 컨슈머에 의해 직접 사용되는 단일 엔티티의 다수의 뷰를 포함하는 단일 메타데이터 파일을 포함할 수 있다. 뷰들은 완전하고 각 컨슈머에 대해 일관되며 각 컨슈머에 대해 상이한 뷰를 필요로 하는 엔티티만이 다수의 뷰를 갖는다(즉, 이것은 간단히 말해 메타데이터 파일의 세 개의 사본을 갖는 집(zip) 파일이 아니다). 따라서, 메타데이터 컨슈머들은 이들이 어떤 타입의 뷰를 원하는지를 쉽게 지정할 수 있다. 메타데이터 리더는 컨슈머의 선택에 기초하여 완전하고 일관된 메타데이터 뷰를 선택할 수 있다.
메타데이터 어댑터(125)가 객체 모델 기술(116)에 걸쳐 인스턴스화되는 경우, 그 어댑터는 특정 네이티브 인코딩의 객체 모델을 기대하는 클라이언트에 의해 소비된다. 판독되는 객체 모델이 그 네이티브 인코딩이 아닌 경우, 메타데이터 리더는 포어린 인코딩을 네이티브 인코딩(126)으로 변환하기 위해 어떤 변경(121)이 필요한지를 감지할 수 있다. 이후, 클라이언트가 다양한 포어린 인코딩(117)의 메타데이터를 투명하게 판독할 수 있도록 하기 위해, 메타데이터 리더는 어댑터를 인스턴스화하여 클라이언트가 메타데이터를 판독하는 경우 그 메타데이터를 변경할 것이다. 다른 메타데이터 리더는 두 포맷 간의 변환을 동적으로 가능하게 하기 보다는, 하나의 특정 포맷의 판독만을 가능하게 한다.
메타데이터 리더(115)의 클라이언트가 그 리더를 사용하여 객체 모델을 이해하는 경우, 메타데이터 어댑터는 네이티브 클라이언트가 비-네이티브 메타데이터를 직접 이해할 수 있도록 하기 위해 비-네이티브 메타데이터에 대한 여러 부류의 변경을 투명하게 행할 수 있다. 이것은 포어린 타입 시스템에 의해 참조되는 타입을 네이티브 타입 시스템에 의해 사용되는 타입으로 변경하는 것, 및 메타데이터 플래그를 네이티브 시스템에서의 등가 플래그로 변경하는 것을 포함한다.
객체 모델 기술(116)은 최소의 런타임 처리 시간 및 최소의 공간 요건을 갖는 효율적인 변환을 제공하도록 인코딩될 수 있다. 본 명세서에서 기술된 실시예들은 포어린 타입 시스템이 메타데이터 리더의 네이티브 타입 시스템으로 인-플레이스 변환되도록 하는 인코딩을 기술한다. 이 인코딩에서, 객체 모델에 의해 사용되는 타입에 대한 참조는 타입 참조에 의해 이루어진다. 몇몇 경우, 다른 메타데이터 인코딩이 타입 참조와 타입 정의 토큰의 결합을 그 토큰과 정의의 상대적 위치에 기초하여 사용할 수 있다(예를 들어, 이들이 모두 동일한 메타데이터 파일에 있는 경우, 타입 정의 토큰이 선택되는 한편, 이들이 상이한 메타데이터 파일에 있는 경우, 타입 참조 토큰이 선택된다). 실시예에서, 타입 정의 토큰이 이용가능한 경우에도, 토큰은 정의와 동일한 메타데이터 파일에 있기 때문에, 타입 참조 토큰이 사용된다. 타입 정의 토큰 대신에 타입 참조 토큰을 사용하면 시스템들은 타입들을 효율적으로 리다이렉트할 수 있는데, 이 경우 타입들이 타입 참조 토큰 보다 타입 정의 토큰을 통해 참조되면 비용이 많이 들 것이다.
비-네이티브 객체 모델에 의해 사용되는 타입이 타입 참조를 사용하여 인코딩된 경우, 어댑터(125)는 해당 타입 참조의 타겟을 변환함으로써 타입 시스템들 사이에서 변환하는 한편, 메타데이터 내에서 변경되지 않은 그 참조의 다른 사용은 내버려둔다. 이것은 메타데이터 테이블의 전체 스캔 및 업데이트를 요구하는 일 없이 포어린 타입의 모든 사용을 네이티브 타입으로 재타겟하는 것을 허용한다.
또한, 메타데이터 컨테이너에 기술된 대부분의 타입은 다수의 상이한 컨슈머들 간에 공유될 수 있는 단일 뷰를 가지거나, 또는 앞서 설명한 바와 같이 최소의 적응만을 필요로 한다. 그러나, 각 컨슈머에 대해 상이한 뷰들을 사용할 수 있는 부류의 타입도 존재한다. 다른 실시예는 전형적으로 전체 메타데이터 파일의 다수의 별개의 사본(뷰 당 하나의 완전한 사본)을 가지며, 또는 컨슈머에 따라 메타데이터를 그때그때 적응 또는 재기록할 것을 시도할 수 있다. 다수의 사본 솔루션은 메타데이터 배치자(deployer)로 하여금 두 개의 별개의 파일들을 관리하도록 강제하기 때문에 복잡성을 증가시킬 수 있고, 또한 양 컨슈머에 대해 공유된 표현을 갖는 타입의 불필요한 사본으로 인해 성능을 저하시킬 수 있다. 그때그때 적응 및 재기록하는 것은 매우 간단한 변환에 대해서만 잘 동작하며, 임의의 심각한 변환은 판독을 매우 느리게 할 것이며 심지어 메타데이터의 전체 새로운 사본이 메모리 또는 디스크 상에 일시적으로 생성될 수 있는 것을 요구할 수 있다.
본 명세서에서 기술된 실시예들은 모든 컨슈머에 대해 해당 뷰가 동일해야 하는 타입에 대한 메타데이터의 단일 정의를 보유하는 단일 메타데이터 컨테이너를 포함한다. 이 메타데이터 컨테이너는 또한 해당 뷰가 상이한 (또는 상이할 필요가 있는) 타입의 다수의 사본을 보유한다. 메타데이터 리더는 컨테이너의 다른 뷰를 각 컨슈머에 제공하고 그들을 갖는 타입에 대해서는 일반적인 뷰만을 컨슈머에게 보여주고 나머지에 대해서는 컨슈머 지정 뷰만을 보여준다. 이들 개념은 도 2의 방법(200) 및 도 3의 방법(300)과 관련하여 이하에서 더 설명될 것이다.
전술한 시스템 및 아키텍처의 관점에서, 개시되어 있는 주제에 따라 구현될 수 있는 방법은 도 2 및 도 3의 흐름도를 참조하여 보다 잘 이해될 것이다. 설명을 간단히 하기 위해, 방법은 일련의 블록으로서 도시 및 기술된다. 그러나, 본 발명은 그 블록의 순서에 국한되지 않는데, 그 이유는 일부 블록은 다른 순서로 발생할 수 있고 및/또는 본 명세서에서 개시 및 도시되어 있는 것 이외의 다른 블록과 동시에 발생할 수 있다. 또한, 이하에서 기술되는 방법을 구현하기 위해 도시되어 있는 모든 블록들이 필요한 것은 아닐 수 있다.
도 2는 네이티브 데이터 인코딩에 사용되는 메타데이터를 동적으로 적응시키는 방법(200)의 흐름도를 나타낸다. 이 방법(200)은 환경(100)의 구성요소들 및 데이터를 자주 참조하여 설명될 것이다.
방법(200)은 객체 모델 기술에서 메타데이터의 하나 이상의 부분을 액세스하기 위해 객체 모델 기술에 걸쳐 메타데이터 리더를 인스턴스화하는 동작(210)을 포함하되, 메타데이터 리더는 네이티브 메타데이터를 판독하도록 구성되고, 네이티브 메타데이터는 메타데이터 리더가 기대하는 인코딩으로 표현된 메타데이터를 포함한다. 예를 들어, 인스턴스화 모듈(110)은 객체 모델 기술(116)에 걸쳐 메타데이터 리더(115)를 인스턴스화할 수 있다. 객체 모델 기술 내에서 메타데이터의 부분들에 액세스하기 위해 메타데이터 리더가 인스턴스화될 수 있다. 메타데이터는 네이티브 타입(126), 또는 포어린, 비-네이티브 타입(117)일 수 있다. 메타데이터 리더는 네이티브 포맷으로 인코딩된 메타데이터를 판독하도록 구성되나, 임의의 다양한 상이한 비-네이티브 포맷으로 인코딩된 메타데이터를 판독할 수는 없다. 따라서, 메타데이터 리더는 액세스된 메타데이터가 비-네이티브 인코딩으로 인코딩되어 있는지를 판정할 수 있고(동작(220)) 또한 비-네이티브 인코딩을 네이티브 인코딩으로 변환하기 위해 어떤 메타데이터 변경이 수행되어야 하는지를 결정할 수 있다(동작(230)).
변경은 비-네이티브 인코딩에 의해 참조되는 타입을 네이티브 인코딩에 의해 사용되는 타입으로 변경(또는 재-인코딩)하는 것을 포함할 수 있다. 이 변경은 또한 비-네이티브 인코딩의 메타데이터 플래그를 네이티브 인코딩의 메타데이터 플래그로 변경하는 것을 포함할 수 있다. 그에 따라, 변경 이후, 메타데이터 리더는 메타데이터 플래그를 인식할 수 있을 것이다. 전술한 변경과는 별개로, 또는 그에 덧붙여 다른 변경이 또한 수행될 수 있다. 몇몇 경우, 데이터 타입은 네이티브 인코딩에 부합하도록 재작성될 수 있다. 이들 데이터 타입은 메타데이터 리더에 판독가능 또는 액세스가능하도록 동적으로 재작성될 수 있다.
방법(200)은 또한 객체 모델이 네이티브 런타임에 의해 판독가능하도록, 결정된 변경에 따라 객체 모델의 메타데이터를 비-네이티브 인코딩으로부터 네이티브 인코딩으로 동적으로 적응시키는 동작(240)을 포함한다. 예를 들어, 적응 모듈(125)이 모듈(120)에 의해 결정된 변경(121)을 사용하여 비-네이티브 메타데이터(117)를 네이티브 인코딩(126)에 동적으로 적응시킬 수 있다. 변경이 적용된 이후, 객체 모델(116)은 네이티브 런타임에 의해 판독가능하다. 따라서, 동적 적응은 사용자가 복수의 상이한 비-네이티브 인코딩의 메타데이터를 판독할 수 있도록 해준다. 메타데이터가 어떤 비-네이티브 인코딩으로 인코딩되어 있는지와는 무관하게, 기술된 시스템은 하나 이상의 상이한 변경을 사용하여 메타데이터 리더에 의해 판독가능한 네이티브 인코딩에 메타데이터를 적응시킬 것이다.
몇몇 실시예에서, 동적 적응은 메타데이터 호출-판독 레벨(importing-reading level)에서 발생할 수 있다. 메타데이터를 호출-판독 레벨에서 적응시킴으로써, 런타임에서의 후속 적응은 방지될 수 있다. 몇몇 경우, 적응된 메타데이터를 내부적으로 또는 공개적으로 보이도록 하기 위해 가시성 변경자(visibility modifier)가 적용될 수 있다. 이 가시성 변경자는 개발자(105)에 의해 원하는 대로 메타데이터 내에서 변경될 수 있다.
도 3은 객체 모델 타입 참조를 효율적으로 변경하는 방법(300)의 흐름도를 나타낸다. 이 방법(300)은 환경(100)의 구성요소들 및 데이터를 자주 참조하여 설명될 것이다.
방법(300)은 타입 정의 요청을 수신하고 그에 응답하여 메타데이터 리더에 의해 판독가능한 메타데이터에 저장된 하나 이상의 타입 참조 토큰을 사용하여 적절한 타입 정의를 제공하도록 구성된 타입 참조 테이블을 인스턴스화하는 동작(310)을 포함한다. 예를 들어, 인스턴스화 모듈(110)은 타입 정의 요청을 수신하고 그에 응답하여 메타데이터(117)에 저장된 다양한 타입 참조 토큰을 사용하여 타입 정의(131)를 제공하는 타입 참조 테이블(130)을 인스턴스화할 수 있다. 타입 참조 테이블(130)은 메타데이터 리더(115)에 의해 판독가능한 메타데이터를 포함한다. 인스턴스화된 타입 참조 테이블은 타입 요청자로부터 지정된 타입에 대한 타입 정의 요청을 수신한다(동작(320)). 이후, 타입 참조 토큰이 어떤 타입이 요청되었는지 및 어떤 타입이 메타데이터 리더에 의해 판독가능한지에 기초하여 메타데이터 리더(115)에 대한 하나 이상의 타입을 동적으로 대체하도록 타입 참조 테이블(130)의 메타데이터에서 구현된다(동작(330)). 따라서, 타입들은 타입 참조 테이블을 사용하여 요청된 대로 또한 필요에 따라 동적으로 대체된다. 비-네이티브 타입 참조는 적소에서 네이티브 타입 참조를 대체한다. 이들 동적 대체는 비-네이티브 타입의 표준화된 뷰를 메타데이터 리더에 제공한다.
방법(300)은 또한 메타데이터 내의 타입 참조 토큰에 의해 제공된 동적으로 대체된 타입에 기초하여 요청된 타입 정의를 타입 요청자에게 제공하는 동작(340)을 포함한다. 따라서, 타입 참조 테이블(130)은 동적으로 대체된 타입에 기초하여 타입 정의(131)를 타입 요청자에게 제공할 수 있다. 타입 참조 테이블은 타입 요청자의 요청이 타입 참조를 통해 수신되도록 인스턴스화될 수 있다. 타입들은 타입 참조 테이블에서 대체된다. 이러한 방식으로, 사용자 요청은 변경되지 않은 채 유지되는 한편, 네이티브 타입 정의가 비-네이티브 타입 정의 대신에 사용된다.
메타데이터의 네이티브 및 비-네이티브 인코딩은 동일한 메타데이터 파일에서 생성될 수 있다. 따라서, 동일한 메타데이터 파일은 둘 이상의 인코딩을 포함할 수 있다. 단일 메타데이터 파일이 다수의 인코딩을 갖는 경우, 메타데이터 리더는 어느 사용자가 메타데이터 파일을 요청하는지를 판정할 수 있고, 그 판정에 기초하여, 적절한 인코딩의 메타데이터 파일을 사용자에게 전달할 수 있다. 따라서, 사용자가 네이티브 인코딩을 요청한 경우, 네이티브 뷰 또는 네이티브 인코딩이 사용자에게 전송될 것이다. 이러한 방식으로, 인코딩은 각 사용자에게 완전하고 일관적이다. 효율적인 실행을 제공하기 위해, 상이한 타입의 사용자들에 의해 액세스되는 메타데이터 파일들만이 네이티브 및 비-네이티브 인코딩으로 인코딩된다. 앞서 언급한 바와 같이, 동적 적응은 비-네이티브 인코딩에 의해 참조되는 타입을 네이티브 인코딩에 의해 사용되는 타입으로 변경하는 것 및 비-네이티브 인코딩의 메타데이터 플래그를 네이티브 인코딩의 메타데이터 플래그로 변경하는 것을 비롯하여 다양하고 상이한 변경 방법을 포함할 수 있다. 따라서, 비-네이티브 메타데이터의 다양한 타입은 네이티브 데이터 인코딩에 사용되도록 동적으로 적응될 수 있다.
추가의 실시예들이 도 4 내지 도 9에서 설명된다. 예를 들어, 도 4에서, 네이티브 클라이언트, 메타데이터 리더, 어댑터 및 포어린 객체 모델 간의 상호작용이 도시되어 있다. 포어린 인코딩으로 수신된 메타데이터(454)는 메타데이터 적응 모듈(453)로 전송되어 메타데이터 리더(452)에 의해 판독가능한 네이티브 인코딩에 적응될 수 있다. (API 경계(451)의 다른 측에 있는) 네이티브 메타데이터 클라이언트(450)는 (예를 들어, API를 사용하여) 메타데이터 리더와 상호작용하여 네이티브 인코딩된 메타데이터를 액세스할 수 있다.
도 5는 다수의 타입을 사용하는 경우 타입 참조를 사용하는 메타데이터 인코딩을 나타낸다. 예를 들어, 타입 컨슈머(510)는 타입 1(511A) 및 하나 이상의 다른 타입(타입 n(511N))을 포함할 수 있다. 이들 타입은 타입 참조(506A)를 통해 포어린 타입 정의(예를 들어, 502A)에 링크될 수 있다. 따라서, 타입 1(511A)은 타입 참조(506A)를 통해 포어린 타입 정의(예를 들어, 502A)에 링크될 수 있다. 유사하게, 다른 타입(타입 n)이 타입 참조(506A)를 통해 포어린 타입 정의(502N)에 링크될 수 있다. 포어린 타입 정의는 타입 정의 테이블(501)에 저장되고, 타입 참조는 타입 참조 테이블(505)에 저장된다.
도 6은 타입 참조의 인-플레이스 변경을 통해 포어린 타입 시스템을 네이티브 타입 시스템으로 변환하는 것을 나타낸다. 따라서, 타입 참조(506A, 560N)는 앞서 포어린 타입 정의(502A,502N)를 포인팅하였기 때문에(도 5에서), 타입 참조는 다른 네이티브 타입 정의를 포인팅하도록 변경될 수 있다. 따라서, 타입 참조(506A)는 네이티브 타입 정의(626A)를 포인팅하도록 변경될 수 있고, 타입 참조(506N)는 네이티브 타입 정의(626N)를 포인팅하도록 변경될 수 있다. 그에 따라, 포어린 타입 시스템은 네이티브 타입 시스템으로 변환될 수 있다.
도 7은 메타데이터 컨테이너 내에서, 다수의 메타데이터 뷰를 요구하는 각 엔티티는 뷰의 별개의 사본을 가질 수 있음을 나타낸다. 이들 사본은 다른 뷰를 필요로 하지 않는 엔티티들에 대한 공유된 뷰를 참조한다. 따라서, 메타데이터 컨테이너(705) 내의 엔티티 A는 두 개의 상이한 뷰, 즉 제1 뷰(710A) 및 제2 뷰(710B)를 가질 수 있다. 또한, 엔티티 A가 두 개의 뷰를 가지지만, 엔티티 B 및 C는 각각 그들 자신의 일반적 메타데이터 뷰(각각 711 및 712)를 갖는다. 도 8은 메타데이터 리더가 제1 메타데이터 컨슈머(701A)에게 그가 원하는 뷰에 부합하는 메타데이터 컨테이너(705) 내의 엔티티의 뷰를 자동으로 제공할 수 있는 것을 나타낸다. 따라서, 컨슈머(701A)가 메타데이터 뷰(710A)를 선호하기 때문에, 메타데이터 리더(702)는 뷰(710A)를 갖는 엔티티 A를 보여주고 일반적인 뷰를 갖는 엔티티(B, C)(711,712)를 보여준다. 도 9는 메타데이터 리더가 메타데이터 컨슈머(701B)에게 그가 원하는 뷰에 부합하는 메타데이터 컨테이너 내의 엔티티의 뷰를 자동으로 제공할 수 있는 것을 나타낸다. 따라서, 컨슈머(701B)가 메타데이터 뷰(710B)를 선호하기 때문에, 메타데이터 리더(702)는 뷰(710B)를 갖는 엔티티 A를 보여주고 일반적인 뷰를 갖는 엔티티(B, C)(711,712)를 보여준다.
따라서, 네이티브 데이터 인코딩에 사용되도록 메타데이터를 동적으로 적응시키는 방법, 시스템 및 컴퓨터 프로그램 제품이 제공된다. 또한, 객체 모델 타입 참조를 효율적으로 변경하는 방법, 시스템 및 컴퓨터 프로그램 제품이 제공된다.
본 발명은 본 발명의 사상 또는 본질적 특성을 벗어나지 않으면 다른 특정 형태로 구현될 수 있다. 기술된 실시예들은 모든 측면들이 예시적일 뿐 제한적이지 않은 것으로 간주되어야 한다. 따라서, 본 발명의 범주는 전술한 설명보다는 첨부한 청구항에 의해 표현된다. 청구항과 균등한 의미 및 범위 내에 속하는 모든 변경들은 본 발명의 범주 내에 포함된다.

Claims (15)

  1. 복수의 컴퓨팅 시스템을 포함하는 컴퓨터 네트워킹 환경 내의 적어도 하나의 프로세서 및 메모리를 포함하는 컴퓨터 시스템에서, 네이티브 데이터 인코딩에 사용되도록 메타데이터를 동적으로 적응시키는 컴퓨터 구현 방법으로서,
    객체 모델 기술(object model description)에서 메타데이터의 하나 이상의 부분을 액세스하기 위해 상기 객체 모델 기술에 걸쳐 메타데이터 리더(reader)를 인스턴스화(instantiate)하는 동작- 상기 메타데이터 리더는 네이티브 메타데이터(native metadata)를 판독하도록 구성되고, 상기 네이티브 메타데이터는 상기 메타데이터 리더가 기대하는 인코딩으로 표현된 메타데이터를 포함함 -,
    상기 메타데이터 리더가, 상기 액세스된 메타데이터가 비-네이티브(non-native) 인코딩으로 인코딩되어 있다고 판정하는 동작,
    상기 메타데이터 리더가, 상기 비-네이티브 인코딩을 네이티브 인코딩으로 변환하기 위해 어떤 메타데이터 변경이 수행되어야 하는지를 결정하는 동작,
    객체 모델이 네이티브 런타임에 의해 판독가능하도록, 상기 결정된 변경에 따라 상기 객체 모델의 메타데이터를 비-네이티브 인코딩으로부터 네이티브 인코딩으로 동적으로 적응시키는 동작
    을 포함하는 컴퓨터 구현 방법.

  2. 제1항에 있어서,
    상기 동적 적응은 사용자가 복수의 상이한 비-네이티브 인코딩의 메타데이터를 판독할 수 있도록 해주는
    컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 동적 적응은 메타데이터 호출-판독 레벨(importing-reading level)에서 발생하는
    컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 메타데이터 호출-판독 레벨에서의 동적 적응은 런타임 레벨에서의 하나 이상의 후속 적응을 방지하는
    컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 동적으로 적응된 메타데이터를 내부적으로 또는 공개적으로 보이도록 하기 위해 가시성 변경자(visibility modifer)가 적용되는
    컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 네이티브 인코딩에 부합하도록 하기 위해 하나 이상의 데이터 타입이 재작성되는
    컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 메타데이터의 상기 네이티브 및 비-네이티브 인코딩은 동일한 메타데이터 파일에서 생성되는
    컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 메타데이터 리더는 어느 사용자가 상기 메타데이터 파일을 요청하고 있는지를 판정하고, 상기 판정에 기초하여, 적절한 인코딩의 상기 메타데이터 파일을 상기 사용자에게 전달하도록 구성된
    컴퓨터 구현 방법.
  9. 제7항에 있어서,
    상기 인코딩은 각 사용자에 대해 완전하고 일관된
    컴퓨터 구현 방법.
  10. 제7항에 있어서,
    네이티브 및 비-네이티브 사용자들에 대해 상이하게 인코딩되어 있는 메타데이터 엔티티만이 네이티브 및 비-네이티브 인코딩으로 인코딩되는
    컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 사용자들은 자신들에게 어떤 타입의 인코딩이 제공되어야 하는지를 지정하는
    컴퓨터 구현 방법.
  12. 복수의 컴퓨팅 시스템을 포함하는 컴퓨터 네트워킹 환경 내의 적어도 하나의 프로세서 및 메모리를 포함하는 컴퓨터 시스템에서, 객체 모델 타입 참조를 효율적으로 변경하는 컴퓨터 구현 방법으로서,
    타입 정의 요청을 수신하고 그에 응답하여 메타데이터 리더에 의해 판독가능한 메타데이터에 저장된 하나 이상의 타입 참조 토큰을 사용하여 적절한 타입 정의를 제공하도록 구성된 타입 참조 테이블을 인스턴스화하는 동작,
    상기 인스턴스화된 타입 참조 테이블이 지정된 타입에 대한 타입 정의 요청을 타입 요청자로부터 수신하는 동작,
    어떤 타입이 요청되었는지 및 상기 메타데이터 리더의 현재 컨슈머에 대해 어떤 타입이 적절한지에 기초하여 상기 메타데이터 리더에 대해 하나 이상의 타입을 동적으로 대체하기 위해 타입 참조 토큰을 상기 타입 참조 테이블의 메타데이터에 구현하는 동작, 및
    상기 메타데이터 내의 상기 타입 참조 토큰에 의해 제공된 동적으로 대체된 타입에 기초하여 상기 요청된 타입 정의를 상기 타입 요청자에게 제공하는 동작
    을 포함하는 컴퓨터 구현 방법.
  13. 제12항에 있어서,
    비-네이티브 타입 참조가 사용중인 네이티브 타입 참조를 대체하는
    컴퓨터 구현 방법.
  14. 제12항에 있어서,
    상기 동적 대체는 비-네이티브 타입의 표준화된 뷰를 상기 메타데이터 리더에 제공하는
    컴퓨터 구현 방법.
  15. 컴퓨터 시스템으로서,
    하나 이상의 프로세서,
    시스템 메모리, 및
    컴퓨터 실행가능 명령어들을 저장한 하나 이상의 컴퓨터 판독가능 저장 매체를 포함하되,
    상기 컴퓨터 실행가능 명령어들은 상기 하나 이상의 프로세서에 의해 실행되는 경우 상기 컴퓨터 시스템으로 하여금 네이티브 데이터 인코딩에 사용되도록 메타데이터를 동적으로 적응시키는 방법을 수행하게 하고,
    상기 방법은
    객체 모델 기술에서 메타데이터의 하나 이상의 부분을 액세스하기 위해 상기 객체 모델 기술에 걸쳐 메타데이터 리더를 인스턴스화(instantiate)하는 동작- 상기 메타데이터 리더는 네이티브 메타데이터를 판독하도록 구성되고, 상기 네이티브 메타데이터는 상기 메타데이터 리더가 기대하는 인코딩으로 표현된 메타데이터를 포함함 -,
    상기 메타데이터 리더가, 상기 액세스된 메타데이터가 비-네이티브 인코딩으로 인코딩되어 있다고 판정하는 동작,
    상기 메타데이터 리더가, 상기 비-네이티브 인코딩을 네이티브 인코딩으로 변환하기 위해 어떤 메타데이터 변경이 수행되어야 하는지를 결정하는 동작,
    객체 모델이 네이티브 런타임에 의해 판독가능하도록, 상기 결정된 변경에 따라 상기 객체 모델의 메타데이터를 비-네이티브 인코딩으로부터 네이티브 인코딩으로 동적으로 적응시키는 동작- 상기 메타데이터의 상기 네이티브 및 비-네이티브 인코딩은 동일한 메타데이터 파일에서 생성됨 -,
    어느 사용자가 상기 메타데이터 파일을 요청하고 있는지를 상기 메타데이터 리더가 판정하는 동작, 및
    상기 판정에 기초하여, 적절한 인코딩의 상기 메타데이터 파일을 상기 사용자에게 전달하는 동작
    을 포함하는, 컴퓨터 시스템.
KR1020147006679A 2011-09-12 2012-09-10 동일한 타입의 다수의 메타데이터 표현을 효율적으로 제공하는 기법 KR101941641B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161533744P 2011-09-12 2011-09-12
US61/533,744 2011-09-12
US13/350,604 2012-01-13
US13/350,604 US8849996B2 (en) 2011-09-12 2012-01-13 Efficiently providing multiple metadata representations of the same type
PCT/US2012/054353 WO2013039801A2 (en) 2011-09-12 2012-09-10 Efficiently providing multiple metadata representations of the same type

Publications (2)

Publication Number Publication Date
KR20140068966A true KR20140068966A (ko) 2014-06-09
KR101941641B1 KR101941641B1 (ko) 2019-04-11

Family

ID=47830839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147006679A KR101941641B1 (ko) 2011-09-12 2012-09-10 동일한 타입의 다수의 메타데이터 표현을 효율적으로 제공하는 기법

Country Status (7)

Country Link
US (2) US8849996B2 (ko)
EP (1) EP2756433B1 (ko)
JP (1) JP6101269B2 (ko)
KR (1) KR101941641B1 (ko)
CN (1) CN102999545B (ko)
TW (2) TWI598813B (ko)
WO (1) WO2013039801A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849996B2 (en) 2011-09-12 2014-09-30 Microsoft Corporation Efficiently providing multiple metadata representations of the same type
US9959114B2 (en) * 2015-03-16 2018-05-01 Microsoft Technology Licensing, Llc Representation of customizable types in a development environment
US10078501B2 (en) 2015-03-16 2018-09-18 Microsoft Technology Licensing, Llc Domain specific language modeling framework in a development environment
US10067755B2 (en) 2015-03-16 2018-09-04 Microsoft Technology Licensing, Llc Model driven customization framework
US10915531B2 (en) * 2015-08-14 2021-02-09 California Institute Of Technology Algebraic query language (AQL) database management system
JP6398944B2 (ja) * 2015-10-28 2018-10-03 オムロン株式会社 データ流通管理システム
US10838819B2 (en) * 2017-01-18 2020-11-17 Microsoft Technology Licensing, Llc Including personal relationship metadata within duplicated resources shared across partitioned storage
US11222274B2 (en) 2017-12-01 2022-01-11 At&T Intellectual Property I, L.P. Scalable integrated information structure system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097462A1 (en) * 2001-09-26 2003-05-22 Parent Sean R. Marked foreign data blocks
US6904515B1 (en) * 1999-11-09 2005-06-07 Ati International Srl Multi-instruction set flag preservation apparatus and method
US7325007B2 (en) * 2005-03-07 2008-01-29 Microsoft Corporation System and method for supporting non-native data types in a database API
KR20080047444A (ko) * 2005-10-13 2008-05-28 마이크로소프트 코포레이션 확장 가능한 메타 데이터

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0486833B1 (de) 1990-11-22 1995-02-15 Ascom Tech Ag Empfänger für ein DSSS-Signal
BR9909896A (pt) * 1998-03-27 2001-09-11 Informix Software Inc Processamento de vistas pré-computadas
US6430575B1 (en) 1999-09-10 2002-08-06 Xerox Corporation Collaborative document management system with customizable filing structures that are mutually intelligible
EP1249002B1 (en) 2000-01-13 2011-03-16 Digimarc Corporation Authenticating metadata and embedding metadata in watermarks of media signals
US6523046B2 (en) 2000-02-25 2003-02-18 Microsoft Corporation Infrastructure and method for supporting generic multimedia metadata
US6760721B1 (en) 2000-04-14 2004-07-06 Realnetworks, Inc. System and method of managing metadata data
US7099946B2 (en) * 2000-11-13 2006-08-29 Canon Kabushiki Kaishsa Transferring a media browsing session from one device to a second device by transferring a session identifier and a session key to the second device
US8195760B2 (en) * 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US7295755B2 (en) * 2001-06-22 2007-11-13 Thomson Licensing Method and apparatus for simplifying the access of metadata
US7197158B2 (en) 2002-06-28 2007-03-27 Microsoft Corporation Generation of metadata for acquired images
JP2004133675A (ja) * 2002-10-10 2004-04-30 Murata Mach Ltd 文書管理サーバ
KR100511785B1 (ko) 2002-12-20 2005-08-31 한국전자통신연구원 멀티미디어 컨텐츠 기술 메타데이터 저작 시스템 및 저작방법
US7069270B1 (en) 2003-02-05 2006-06-27 Oracle International Corporation Automated method and mechanism for converting a single instance application to a multiple instance application
TWI227853B (en) * 2003-08-29 2005-02-11 Rdc Semiconductor Co Ltd Data accessing method and system for processing unit
US8374284B2 (en) 2004-02-12 2013-02-12 Apple, Inc. Universal decoder
JP2005234634A (ja) * 2004-02-17 2005-09-02 Sony Corp データ管理方法
US8953908B2 (en) 2004-06-22 2015-02-10 Digimarc Corporation Metadata management and generation using perceptual features
US7730012B2 (en) 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
EP1792256B1 (en) 2004-09-03 2018-03-07 Red Hat, Inc. Methods, systems and computer program products for implementing single-node and cluster snapshots
KR20060025100A (ko) * 2004-09-15 2006-03-20 삼성전자주식회사 다국어를 지원하는 메타 데이터를 기록한 정보저장매체 및메타 데이터 처리방법
US7243207B1 (en) 2004-09-27 2007-07-10 Network Appliance, Inc. Technique for translating a pure virtual file system data stream into a hybrid virtual volume
US7480654B2 (en) 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US20060184576A1 (en) 2005-02-17 2006-08-17 Microsoft Corporation System and method for extensible metadata architecture for digital images
US20060184554A1 (en) 2005-02-17 2006-08-17 Microsoft Corporation System and method for extensible metadata architecture for digital images using in-place editing
US20070231781A1 (en) 2006-03-31 2007-10-04 Birgit Zimmermann Estimation of adaptation effort based on metadata similarity
US9064010B2 (en) 2006-12-13 2015-06-23 Quickplay Media Inc. Encoding and transcoding for mobile media
JP4901880B2 (ja) * 2007-01-09 2012-03-21 日本電信電話株式会社 符号化装置、復号化装置、それらの方法、その方法のプログラム及びそのプログラムを記録した記録媒体
US8958483B2 (en) * 2007-02-27 2015-02-17 Adobe Systems Incorporated Audio/video content synchronization and display
WO2008130983A1 (en) * 2007-04-16 2008-10-30 Attune Systems, Inc. File aggregation in a switched file system
US20080270351A1 (en) 2007-04-24 2008-10-30 Interse A/S System and Method of Generating and External Catalog for Use in Searching for Information Objects in Heterogeneous Data Stores
KR101105970B1 (ko) * 2009-09-02 2012-01-17 한국전자통신연구원 다양한 포맷의 컨텐츠를 관리하는 미디어 미디에이터 시스템 및 방법
US20110208761A1 (en) 2010-02-24 2011-08-25 Microsoft Corporation Coordinating content from multiple data sources
US20110264495A1 (en) * 2010-04-22 2011-10-27 Apple Inc. Aggregation of tagged media item information
US20110289445A1 (en) * 2010-05-18 2011-11-24 Rovi Technologies Corporation Virtual media shelf
US8849996B2 (en) 2011-09-12 2014-09-30 Microsoft Corporation Efficiently providing multiple metadata representations of the same type

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904515B1 (en) * 1999-11-09 2005-06-07 Ati International Srl Multi-instruction set flag preservation apparatus and method
US20030097462A1 (en) * 2001-09-26 2003-05-22 Parent Sean R. Marked foreign data blocks
US7325007B2 (en) * 2005-03-07 2008-01-29 Microsoft Corporation System and method for supporting non-native data types in a database API
KR20080047444A (ko) * 2005-10-13 2008-05-28 마이크로소프트 코포레이션 확장 가능한 메타 데이터

Also Published As

Publication number Publication date
TW201706835A (zh) 2017-02-16
WO2013039801A2 (en) 2013-03-21
US20130067053A1 (en) 2013-03-14
TWI569208B (zh) 2017-02-01
EP2756433A4 (en) 2016-01-06
US9390152B2 (en) 2016-07-12
WO2013039801A3 (en) 2013-05-02
US8849996B2 (en) 2014-09-30
JP2014534488A (ja) 2014-12-18
US20140379740A1 (en) 2014-12-25
EP2756433A2 (en) 2014-07-23
JP6101269B2 (ja) 2017-03-22
CN102999545A (zh) 2013-03-27
EP2756433B1 (en) 2020-09-09
CN102999545B (zh) 2016-11-23
KR101941641B1 (ko) 2019-04-11
TWI598813B (zh) 2017-09-11
TW201312464A (zh) 2013-03-16

Similar Documents

Publication Publication Date Title
KR101941641B1 (ko) 동일한 타입의 다수의 메타데이터 표현을 효율적으로 제공하는 기법
RU2419847C2 (ru) Интегрирование диаграмм в документы
JP5154002B2 (ja) リモートファンクションコールによるワークブックモデルへのアクセスを提供する方法、システム、および装置
US8756512B2 (en) Dynamic GUI rendering by aggregation of device capabilities
CN104508660A (zh) 数据到数据库上的用户定义加载
CN103312803B (zh) 一种Web访问体验优化方法及装置
CN1684034A (zh) 用以执行命令绑定的数据绑定机制的应用
AU2012352719B2 (en) Autonomous network streaming
CN102016833A (zh) 使用潜在传送表面来修改文档的技术
US8139872B2 (en) Splitting file types within partitioned images
CN103970855A (zh) 一种数据处理设备和方法
US8666997B2 (en) Placeholders returned for data representation items
CN102591710A (zh) 共享对象表示
US20170371977A1 (en) Unbounded list processing
KR101552914B1 (ko) 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
US10706225B2 (en) Form management system and method
JP2011501327A (ja) 宣言型モデルの解釈
CN103347059A (zh) 实现用户配置参数传递的方法、客户端和系统
CN115427960A (zh) 使用完全依存森林的关系提取
CN112130811A (zh) 数据处理方法与装置、存储介质、电子设备
US20230297346A1 (en) Intelligent data processing system with metadata generation from iterative data analysis
US20090006942A1 (en) Embedded markup resources
US20230297353A1 (en) Intelligent data processing system with multi-interface frontend and backend
US10102122B2 (en) Personal computing device for editing mainframe data
CN117492855A (zh) 页面缓存方法、装置、设备及存储介质

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right