[go: up one dir, main page]

KR101625258B1 - 플랫폼 확장성 프레임워크 - Google Patents

플랫폼 확장성 프레임워크 Download PDF

Info

Publication number
KR101625258B1
KR101625258B1 KR1020117025537A KR20117025537A KR101625258B1 KR 101625258 B1 KR101625258 B1 KR 101625258B1 KR 1020117025537 A KR1020117025537 A KR 1020117025537A KR 20117025537 A KR20117025537 A KR 20117025537A KR 101625258 B1 KR101625258 B1 KR 101625258B1
Authority
KR
South Korea
Prior art keywords
application
feature extension
visualization platform
request
determining
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020117025537A
Other languages
English (en)
Other versions
KR20120022831A (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 KR20120022831A publication Critical patent/KR20120022831A/ko
Application granted granted Critical
Publication of KR101625258B1 publication Critical patent/KR101625258B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)
  • Processing Or Creating Images (AREA)
  • Power-Operated Mechanisms For Wings (AREA)

Abstract

플랫폼 확장성 프레임워크가 제공될 수 있다. 시각화 플랫폼은 피처 익스텐션을 등록하고 오브젝트를 생성하라는 요청을 수신할 수 있다. 오브젝트는 시각화 플랫폼, 오브젝트 생성을 요청하는 애플리케이션, 및/또는 프레임 익스텐션들 중 적어도 하나에 의해 제공되는 드로잉 명령에 따라 생성될 수 있다.

Description

플랫폼 확장성 프레임워크{PLATFORM EXTENSIBILITY FRAMEWORK}
플랫폼 확장성은 피처 플러그인들(feature plug-ins)이 소프트웨어 애플리케이션들과 통신할 수 있게 해주는 프레임워크를 제공한다. 일부 상황에서, 제품 출시 스케줄이 새 피처들(features)이 애플리케이션 안에 포함될 수 있는 때를 결정한다. 예를 들어, 새 애플리케이션 버전은 년 단위로 출시될 수 있지만, 사용자들은 새로운 피처들을 더 자주 요구할 수 있다. 따라서, 종래의 전략은 선택된 피처들을 각각의 스케줄된 출시물 안에 포함시키는 것이다. 이것은 흔히 그러한 종래의 전략이 항상 사용자 요구에 응답하지는 못하기 때문에 문제를 야기한다. 예를 들어, 요구된 피처가 애플리케이션 출시물에 포함되는 데 수년이 걸릴 수 있어, 소비자의 불만족을 유발할 수 있다.
플랫폼 확장성 프레임워크가 제공될 수 있다. 이 요약은 이하의 상세한 설명에서 더 설명될 선택된 개념들을 간략한 형식으로 소개하기 위해 제공된다. 이 요약은 청구된 주제의 핵심적 특징이나 본질적 특징을 식별하고자 의도된 것이 아니다. 또한 이 요약은 청구된 주제의 범위를 제한하는데 사용하고자 의도된 것도 아니다.
플래폼 확장성 프레임워크가 제공될 수 있다. 시각화(visualization) 플랫폼은 피처 익스텐션(extensions)을 등록하고 오브젝트를 생성하라는 요청을 수신할 수 있다. 오브젝트는 시각화 플랫폼, 오브젝트 생성을 요구한 애플리케이션, 및/또는 피처 익스텐션들 중 적어도 하나에 의해 제공된 드로잉(drawing) 명령에 따라 생성될 수 있다.
상술한 일반적 내용과 이하의 상세한 설명은 보기들을 제공하며 단지 설명을 위한 것이다. 따라서 상술한 일반적인 내용과 이하의 상세한 설명이 한정적인 것으로 간주되어서는 안될 것이다. 여기 개시된 것들 외에 특징들이나 변형안들이 더 제공될 수 있다. 예를 들어, 실시예들은 상세한 설명에 기술되는 다양한 특징적 조합과 부조합에 관한 것일 수 있다.
이 개시에 통합되어 그 일부를 이루는 첨부된 도면들은 본 발명의 다양한 실시예들을 예시한다.
도 1은 운영 환경의 블록도이다.
도 2은 플랫폼 확장성 프레임워크를 제공하는 방법의 흐름도이다.
도 3은 컴퓨팅 장치를 포함하는 시스템의 블록도이다.
이하의 상세한 설명은 첨부 도면들을 참조한다. 가능한 경우에는 어디에서나, 동일한 참조 부호들이 동일하거나 유사한 구성 요소를 지시하기 위해 도면과 이하의 설명에서 사용된다. 본 발명의 실시예들이 기술될 수 있지만 수정과 각색과 다른 구현이 가능하다. 예를 들어, 도면에 도시된 구성 요소들에 대해 치환, 추가, 또는 수정이 이뤄질 수 있고, 여기 기술되는 방법들은 개시 방법들에 대해 단계를 치환하거나 재정렬하거나 추가함으로써 수정될 수 있다. 따라서, 이하의 상세한 설명은 본 발명을 한정하지 않는다. 대신, 본 발명의 적절한 범위는 첨부된 청구범위에 의해 정의된다.
플랫폼 확장성 프레임워크가 제공될 수 있다. 본 발명의 실시예들에 따르면, 시각화 플랫폼은 사용자 애플리케이션들과 확장된 피처들을 제공하는 애드온(add-on)들 사이의 중개자일 수 있다. 애드온은 제삼자에 의해 개발되고, 정규 제품 출시를 기다릴 필요 없이 시각화 플랫폼에 대한 지원기능을 포함하는 어떤 애플리케이션에 의해 사용될 수 있다.
도 1은 시각화 플랫폼(110)을 제공하는 운영 환경(100)의 블록도이다. 시각화 플랫폼(110)은 오브젝트 관리자(115)와 레이아웃(layout) 엔진(120)을 포함할 수 있다. 시각화 플랫폼(110)은 차트 같은 데이터 시각화 생성을 허용하는 구조를 포함하며, 시각화 사항 위에 상호 작용형(interactive) 피처를 노출할 수 있다. 상기 구조는 여러 렌더링 플랫폼들과의 통합을 제공할 수 있다. 사용자가 노출된 피처를 선택할 때, 구조는 그 선택을 전형적인 포맷으로 변환하며 렌더링 플랫폼과 무관한 레이아웃 규칙에 따라 데이터 시각화를 수정할 수 있다.
운영 환경(100)은 피처 익스텐션(130), 렌더링 컴포넌트(145)를 포함하는 애플리케이션(140), 및 출력 장치(150)를 더 포함할 수 있다. 피처 익스텐션(130)은 예컨대 드로잉 명령 오버라이드(override)를 제공하는 기능성 애드온, 추가 데이터, 및/또는 추가 드로잉 엘리먼트들을 포함할 수 있다. 애플리케이션(140)은 예를 들어, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 웹 브라우저, 이메일 애플리케이션 및/또는 다른 소프트웨어 애플리케이션 같은 사용자 애플리케이션을 포함할 수 있다. 출력 장치(150)는 예를 들어 스크린, 프린터, 전자 문서, 및/또는 웹 페이지를 포함할 수 있다.
시각화 플랫폼(110)은 상호 작용형 시각화를 제공하기 위해 소프트웨어 라이브러리들 및/또는 유틸리티들을 포함하는 공유 코어(shared core)를 구비할 수 있다. 공유 코어는 가령 C++ 또는 C#으로 구현될 수 있고, 플랫폼에 독립된 것일 수 있다. 공유 코어는 레이아웃, 모양 및/또는 기하구조, 라인 서비스, 3차원 렌더링, 애니메이션 프레임 생성, 및/또는 상호 작용형 핫스팟을 제공하기 위한 시각화 유틸리티들을 포함할 수 있다. 시각화 플랫폼(110)은 애플리케이션(140) 및/또는 피처 익스텐션(130)과 상호 작용하기 위한 애플리케이션 프로그래밍 인터페이스(API)들을 더 포함할 수 있다.
애플리케이션(140) 및 피처 익스텐션(130)은 애플리케이션(140)에 의해 출력 장치(150)로 렌더링될 수 있는 오브젝트들을 메모리 안에 생성할 수 있도록 시각화 플랫폼(110)과 인터페이스할 수 있다. 피처 익스텐션(130)은 애플리케이션(140)과 직접적으로 인터페이스하기 보다 시각화 플랫폼(110)과 인터페이스할 수 있다. 애플리케이션(140)과 피처 익스텐션(130)은 협동적이면서 독자적인 방식으로 함께 오브젝트를 생성하도록 되어 있을 수 있다. 예를 들어, 애플리케이션(140)은 관련된 데이터 바인딩들과 함께 차트 오브젝트를 생성할 수 있고, 피처 익스텐션(130)은 레전드(legend) 및 일련의 데이터 오브젝트들을 생성할 수 있다. 본 발명의 실시예들에 따르면, 피처 익스텐션(130)이 오브젝트를 생성할 수도 있지만 데이터를 제공하기 위해 그것을 애플리케이션(140)에 맡길 수 있다.
운영 환경(100)에 의한 운영 체제의 독립성은 복수 버전의 시각화 플랫폼(110)에 의해 지원될 수 있다. 시각화 플랫폼(110)은 워싱턴 주의 레드먼드에 있는 마이크로소프트사에 의해 개발된 .NET 프로토콜을 이용해 구현되는 동적 링크 라이브러리(DLL,dynamically linked library)에서와 같이 플랫폼에 독립적인 코드를 사용해 구현될 수 있다. 본 발명의 실시예들에 따르면, 애플리케이션들은 플랫폼에 독립적인 코드를 지원하지 않을 것이나, 운영 체제 고유 버전의 시각화 플랫폼(110) 사용을 통해 플랫폼에 독립적인 피처 익스텐션(130)의 사용을 지원할 수 있다.
도 2는 플랫폼 확장성 프레임워크를 제공하는 본 발명의 일 실시예에 따른 방법(200)에 수반되는 일반적인 단계들을 개시한 흐름도이다. 이 방법(200)은 도 3과 관련해 보다 상세히 기술되는 컴퓨팅 장치(300)를 사용해 구현될 수 있다. 방법(200)의 단계들을 구현하는 방식들이 이하에서 보다 상세히 기술될 것이다. 방법(200)은 시작 블록(205)에서 시작하여, 컴퓨팅 장치(300)가 시각화 플랫폼을 인스턴스화할 수 있는 단계(210)로 진행할 수 있다. 예를 들어 컴퓨팅 장치(300)는 다중 환경 및/또는 운영 체제 상에서 실행하도록 동작되는 단일 코드 베이스를 구비한 시각화 플랫폼(110)을 인스턴스화할 수 있다.
방법은 컴퓨팅 장치(300)가 인스턴스화 했던 단계(210)로부터 컴퓨팅 장치(300)가 적어도 하나의 피처 익스텐션을 시각화 플랫폼에 등록할 수 있는 단계(215)로 진행할 수 있다. 예를 들어, 컴퓨팅 장치(300)는 피처 익스텐션들을 위해 지정된 공통 메모리 장소에 저장된 피처 익스텐션(130)을 찾아서 가능한 기능에 관한 상세 내용을 시각화 플랫폼(110)으로 제공할 수 있다. 본 발명의 실시예들에 따르면, 시각화 플랫폼(110)은 시각화 플랫폼(110)이 생성하게 되는 오브젝트들의 리스트를 결정하여 제공할 수 있다. 생성가능한 오브젝트들의 리스트는 시각화 플랫폼(110), 피처 익스텐션(130), 및/또는 애플리케이션(140) 중 적어도 하나로부터 드로잉 명령들이 사용될 수 있게 하는 오브젝트들을 포함할 수 있다.
컴퓨팅 장치(300)가 215 단계에서 적어도 하나의 피처 익스텐션을 등록하면, 방법(200)은 컴퓨팅 장치(300)가 오브젝트를 생성하라는 요청을 수신할 수 있는 단계(220)로 계속 진행할 수 있다. 예를 들어, 시각화 플랫폼(110)이 애플리케이션(140)으로부터 차트, 그래프, 사진, 및/또는 멀티미디어 오브젝트 같은 오브젝트를 생성하라는 요청을 수신할 수 있다. 그 요청은 오브젝트 타입, 데이터 구조, 적어도 하나의 드로잉 명령, 데이터 시리즈, 및/또는 적어도 하나의 데이터 값을 포함할 수 있다.
컴퓨팅 장치(300)가 220 단계에서 오브젝트를 생성하라는 요청을 수신한 후, 방법(200)은 컴퓨팅 장치(300)가 오브젝트를 생성할 수 있는 단계(225)로 진행할 수 있다. 예를 들어, 시각화 플랫폼(110)의 오브젝트 관리자(115)가 요청된 타입의 오브젝트에 대한 시각화 플랫폼(110)과 관련된 적어도 하나의 개의 디폴트 명령에 따라 오브젝트를 생성할 수 있다.
225 단계로부터 방법(200)은 요청된 오브젝트가 적어도 하나의 피처 익스텐션과 관련되는지 여부를 컴퓨팅 장치(300)가 판단할 수 있는 단계(230)로 진행할 수 있다. 예를 들어, 컴퓨팅 장치(300)는 요청된 오브젝트의 생성 및/또는 수정이 피처 익스텐션(130)에 의해 제공될 수 있는 드로잉 명령, 데이터 값, 및/또는 피처 익스텐션(130)에 의해 제공될 수 있는 다른 제공 기능을 활용할 수 있는지 여부를 판단할 수 있다. 요청된 오브젝트가 적어도 하나의 피처 익스텐션과 관련되지 않았다고 판단되면, 방법(200)은 컴퓨팅 장치(300)가 이하에서 상세히 기술되는 것처럼 생성된 오브젝트에 대한 액세스를 요청한 애플리케이션으로 제공할 수 있는 단계(250)로 진행할 수 있다.
230 단계에서, 컴퓨팅 장치(300)가 요청된 오브젝트가 적어도 하나의 피처 익스텐션과 관련이 있다고 판단한 경우, 방법(200)은 컴퓨팅 장치(300)가 적어도 하나의 피처 익스텐션이 요청자와 호환 가능한지 여부를 파단할 수 있는 단계(235)로 진행할 수 있다. 예를 들어, 애플리케이션(140)이 피처 익스텐션(130)에 의해 제공된 데이터 시리즈의 사용을 요구할 수 있는 시각화 플랫폼(110)에 의한 차트 오브젝트의 생성을 요청할 수 있다. 시각화 플랫폼(110)은 요청된 차트 오브젝트와 요청된 데이터 시리즈 사이의 호환성을 검증할 수 있다. 본 발명의 실시예들에 따르면, 호환성 검증은 요청된 데이터 시리즈가 요청된 타입의 차트 오브젝트와 함께 사용되도록 지정되어 있다는 것을 입증하는 일을 포함할 수 있다. 또 본 발명의 실시예들에 따르면, 시각화 플랫폼(100)은 애플리케이션(140)이 피처 익스텐션(130) 및/또는 시각화 플랫폼(110)과 호환되는 버전을 포함하는지를 검증할 수 있다. 예를 들어, 시각화 플랫폼(110)은 애플리케이션(140)이 지정된 값 이상의 버전 출시 넘버(가령, 2.0)를 포함하고/하거나 애플리케이션(140)이 특정 출시 계층(가령, 스탠다드용, 프로페셔널용, 가정용, 비즈니스용, 및/또는 교육용)을 포함하는지를 검충할 수 있다.
235 단계에서, 컴퓨팅 장치(300)가 적어도 하나의 피처 익스텐션이 요구하고 있는 애플리케이션과 호환되지 않는다고 판단하면, 방법(200)은 이하에 서술되는 단계(250)로 갈 수 있다. 컴퓨팅 장치(300)가 적어도 하나의 피처 익스텐션이 요구하고 있는 애플리케이션과 호환된다고 판단한 경우, 방법(200)은 컴퓨팅 장치(300)가 그 적어도 하나의 피처 익스텐션으로부터 적어도 하나의 오브젝트 수정을 수신할 수 있는 단계(240)로 진행할 수 있다. 본 발명의 실시예들에 따르면, 피처 익스텐션(130)은 요청된 오브젝트의 생성을 위해 시각화 플랫폼(110) 및/또는 애플리케이션(140)에 의해 제공되는 적어도 하나의 드로잉 명령을 추가, 제거, 및/또는 오버라이드(무효화)할 수 있다. 예를 들어, 피처 익스텐션(130)은 차트 오브젝트에 추가될 레전드, 배경, 및/또는 추가 데이터 값 및/또는 데이터 시리즈를 제공할 수 있다. 또 본 발명의 실시예들에 따르면, 피처 익스텐션(130)은 애플리케이션에 의해 제공된 것 같은 모양 기하구조에 대한 드로잉 명령을 무효화하는 차트 오브젝트 상의 데이터 포인트들의 대안적 모양 기하구조를 포함하는 드로잉 명령을 제공할 수 있다. 예를 들어, 피처 익스텐션(130)은 애플리케이션(140)에 의해 제공되는 디폴트 원형 모양 대신, 차트 오브젝트 상의 데이터 포인트로서 사용할 팔각형을 포함하는 드로잉 명령을 제공할 수 있다. 또 하나의 예로서, 피처 익스텐션(130)은 예컨대 선형 스케일 및/또는 분리 축을 사용하는 대신 롱 스케일(long scale)로서 차트를 다시 그림으로써, 오브젝트를 수정하기 위한 드로잉 명령을 무효화할 수 있다.
컴퓨팅 장치(300)가 적어도 하나의 오브젝트 수정을 수신했던 단계(240)로부터, 방법(200)은 컴퓨팅 장치(300)가 수신된 수정에 따라 오브젝트를 수정할 수 있는 단계(245)로 진행할 수 있다. 예를 들어, 시각화 플랫폼(110)은 생성된 오브젝트의 새 엘리먼트를 그리거나 이미 그려진 엘리먼트를 다시 그릴 수 있다. 본 발명의 실시예들에 따르면, 시각화 플랫폼(110)은 피처 익스텐션(130) 및/또는 애플리케이션(140)으로부터 수정을 받을 수 있고, 그에 따라 오브젝트를 수정할 수 있다. 예를 들어, 시각화 플랫폼(110)은 애플리케이션(140)으로부터의 요청에 따라 디스플레이된 데이터 값을 가지는 차트 오브젝트를 생성하고, 피처 익스텐션(130)으로부터 수신된 수정에 따라 데이터 시리즈를 추가하며, 애플리케이션(140)으로부터 수신된 수정에 따라 오브젝트 위에 디스플레이되는 데이터 시리즈의 컬러를 수정할 수 있다.
단계(245)로부터 방법(200)은 컴퓨팅 장치(300)가 생성된 오브젝트에 대한 액세스를 요청한 애플리케이션으로 제공할 수 있는 단계(250)로 진행할 수 있다. 예를 들어, 시각화 플랫폼(110)은 시각화 플랫폼과 관련된 메모리 장소 안에 오브젝트를 생성할 수 있고, 애플리케이션 프로그래밍 인터페이스(API)를 이용해 피처 익스텐션(130) 및/또는 애플리케이션(140)으로 그 메모리 장소에 대한 액세스를 허가할 수 있다. 본 발명의 실시예들에 따르면, 시각화 플랫폼(110)은 시각화 플랫폼(110)과 관련된 메모리 장소의 오브젝트에 대한 액세스를 제공하기 보다, 요청자에게 오브젝트에 대한 사본을 제공할 수 있다.
단계(250)로부터, 방법(200)은 컴퓨팅 장치(300)가 생성된 오브젝트를 디스플레이할 수 있는 단계(255)로 진행할 수 있다. 예를 들어, 애플리케이션(140)은 생성된 오브젝트를 액세스하고 그것을 렌더링 컴포넌트(145)를 이용하는 디스플레이 장치(150)로 렌더링할 수 있다. 오브젝트를 렌더링하는 것은 그 오브젝트와 관련된 모델로부터 이미지를 생성하는 일을 포함할 수 있다. 오브젝트와 관련된 모델은 데이터 구조 안에 3차원 오브젝트들의 묘사를 포함하고 기하구조, 시점, 텍스춰, 조명, 및/또는 음영 정보를 포함할 수 있다. 이미지는 디지털 이미지 또는 래스터(raster) 그래픽 이미지를 포함할 수 있다.
컴퓨팅 장치(300)가 255 단계에서 오브젝트를 디스플레이하면, 방법(200)은 이제 260 단계에서 종료될 수 있다.
방법(200)의 예로서, 애플리케이션(140)이 시각화 플랫폼(110)으로부터 차트 오브젝트를 요청할 수 있으며, 이때 그 요청은 차트 타입, 적어도 하나의 데이터 값 및/또는 데이터 시리즈를 제공한다. 시각화 플랫폼(110)은 차트 오브젝트를 생성하고 그 차트 오브젝트를 시각화 플랫폼(110)과 관련된 드로잉 명령에 따라 레전드 및 타이틀과 함께 놓을 수 있다. 애플리케이션(140)이 차트 오브젝트를 렌더링하는 255 단계에서, 애플리케이션(140)은 시각화 플랫폼(110)에 차트 오브젝트와 관련된 모양들을 제공하도록 요청할 수 있다. 애플리케이션(140)은 그 모양들을 형식적으로 다루면서, 그것들을 프린터나 디스플레이 장치(150) 같은 출력 장치로 렌더링하기 위해 각 모양에 대한 드로잉 명령들을 수신할 수 있다. 피처 익스텐션(130)은 생성된 오브젝트에 대한 모든 종류의 시각적 엘리먼트들을 오버라이드 및/또는 부연할 수 있다. 예를 들어, 그들은 라인 시리즈, 칼럼, 및/또는 파이(pie) 시리즈 같은 새 시리즈 타입을 추가할 수 있다. 또 다른 예에서, 피처 익스텐션(130)은 특정 맵 모양, 레전드, 타이틀, 레전드 아이템, 축, 및/또는 전체 차트를 오버라이드할 수 있다.
피처 익스텐션(130)에 의해 제공되는 각각의 엘리먼트 및/또는 기능은 엘리먼트 명칭과 관련될 수 있고, 그 엘리먼트 명칭들은 시각화 플랫폼(110)이 생성에 영향을 미칠 수 있는 오브젝트들의 리스트를 제공하는 것의 일부로서 주어질 수 있다. 시각화 플랫폼(110)은 오브젝트 생성 요청시 피처 익스텐션(130)과 관련된 엘리먼트 명칭들을 포함함으로써 요청된 오브젝트가 피처 익스텐션(130)과 관련된다는 것을 판단할 수 있다. 예를 들어, 애플리케이션(140)은 사용자에 의해 선택가능한 사용가능한 차트들 및/또는 데이터 시리즈의 드롭다운(drop-down)을 제공할 수 있다. 사용자 선택을 수신함으로써, 애플리케이션(140)은 오브젝트가 시각화 플랫폼(100)에 의해 생성되도록 요청할 수 있고, 시각화 플랫폼(110)은 피처 익스텐션이 명명된 엘리먼트와 관련되는지 여부를 판단하기 위해 피처 익스텐션(130) 같은 각각의 알려진 피처 익스텐션을 조회할 수 있다. 시각화 플랫폼(110)이 적용 가능한 피처 익스텐션을 결정하면, 시각화 플랫폼(110)은 명명된 엘리먼트를 추가, 업데이트 및/또는 수정하기 위해 그 적용 가능한 피처 익스텐션으로부터 드로잉 명령들을 수신할 수 있다.
본 발명에 부합하는 일 실시예는 확장성 프레임워크를 제공하는 시스템을 포함할 수 있다. 시스템은 메모리 저장부 및 메모리 저장부와 연결된 프로세싱 유닛을 포함할 수 있다. 프로세싱 유닛은 시각화 플랫폼을 인스턴스화하고, 시각화 플랫폼에 적어도 하나의 피처 익스텐션을 등록하고, 적어도 하나의 애플리케이션으로부터 적어도 하나의 오브젝트 생성 요청을 수신하고, 그 적어도 하나의 오브젝트를 생성하고, 요청이 적어도 하나의 피처 익스텐션과 관련되는지 여부를 판단하고; 요청이 적어도 하나의 피처 익스텐션과 관련된다는 판단에 대응하여 그 적어도 하나의 피처 익스텐션으로부터 적어도 하나의 오브젝트 수정을 수신하고; 그 적어도 하나의 오브젝트 수정에 따라 오브젝트를 수정하고; 그 오브젝트를 디스플레이 장치에 렌더링하도록 동작될 수 있다.
본 발명에 부합하는 또 다른 실시예는 애플리케이션 확장성을 제공하는 시스템을 포함할 수 있다. 시스템은 메모리 저장부 및 메모리 저장부와 연결된 프로세싱 유닛을 포함할 수 있다. 프로세싱 유닛은 시각화 플랫폼과 함께 사용하도록 동작되는 적어도 하나의 피처 익스텐션을 찾고, 적어도 하나의 사용자 애플리케이션으로부터 적어도 하나의 오브젝트를 생성하라는 요청을 수신하며, 적어도 하나의 오브젝트를 생성하도록 동작될 수 있다. 시스템은 요청이 적어도 하나의 피처 익스텐션과 관련되는지 여부를 판단하고, 요청이 적어도 하나의 피처 익스텐션과 관련된다는 판단에 대응하여 그 적어도 하나의 피처 익스텐션으로부터 적어도 하나의 오브젝트 수정을 수신하고, 그 적어도 하나의 오브젝트 수정에 따라 오브젝트를 수정할 수 있다. 그런 다음 시스템은, 그 오브젝트를 디스플레이 장치에 렌더링할 수 있다.
본 발명에 부합하는 또 다른 실시예는 애플리케이션 확장성 프레임워크를 제공하는 시스템을 포함할 수 있다. 시스템은 메모리 저장부 및 메모리 저장부와 연결된 프로세싱 유닛을 포함할 수 있다. 프로세싱 유닛은 시각화 플랫폼을 인스턴스화하고, 적어도 하나의 피처 익스텐션을 등록하고, 시각화 플랫폼이 애플리케이션을 생성하고, 애플리케이션으로부터 오브젝트들의 리스트 중 적어도 하나를 생성하라는 요청을 수신하고, 요청된 오브젝트 타입과 관련되고 시각화 플랫폼에 의해 제공되는 적어도 하나의 드로잉 명령에 따라 요청된 적어도 하나의 오브젝트를 생성하게 되는 오브젝트들의 리스트를 제공할 수 있다. 오브젝트가 피처 익스텐션과 관련되고, 피처 익스텐션이 적어도 하나의 애플리케이션과 호환될 수 있으면, 시스템은 그 적어도 하나의 피처 익스텐션으로부터 적어도 하나의 오브젝트 수정을 수신하고, 그 적어도 하나의 오브젝트 수정에 따라 오브젝트를 수정하고, 그 오브젝트를 디스플레이 장치로 렌더링하도록 동작될 수 있다.
도 3은 컴퓨팅 장치(300)를 포함하는 시스템의 블록도이다. 본 발명의 일 실시예에 따르면, 상술한 메모리 저장부 및 프로세싱 유닛이 도 3의 컴퓨팅 장치(300) 같은 컴퓨팅 장치 안에서 구현될 수 있다. 메모리 저장부 및 프로세싱 유닛을 구현하기 위해 어떤 적절한 하드웨어, 소프트웨어, 또는 펌웨어의 조합이 사용될 수 있다. 예를 들어, 메모리 저장부 및 프로세싱 유닛은 컴퓨팅 장치(300)나 컴퓨팅 장치(300)와 결합된 다른 컴퓨팅 장치들(318) 중 하나를 통해 구현될 수 있다. 상술한 시스템, 장치, 및 프로세서들은 예들이며, 본 발명의 실시예들에 따라 다른 시스템, 장치, 및 프로세서들이 상술한 메모리 저장부 및 프로세싱 유닛을 포함할 수도 있다. 또, 컴퓨팅 장치(300)는 상술한 바와 같은 시스템(100)의 운영 환경을 포함할 수 있다. 시스템(100)은 다른 환경에서도 동작될 수 있으며 컴퓨팅 장치(300)에 국한되지 않는다.
도 3을 참조할 때, 본 발명의 일 실시예에 따른 시스템은 컴퓨팅 장치(300) 같은 컴퓨팅 장치를 포함할 수 있다. 기본 구성에 있어서, 컴퓨팅 장치(300)는 저겅도 한 프로세싱 유닛(302) 및 시스템 메모리(304)를 포함할 수 있다. 컴퓨팅 장치의 구성 및 타입에 좌우되어, 시스템 메모리(304)가 휘발성(가령, RAM(random access memory)), 비휘발성 (가령, ROM(read-only memory)), 플래시 메모리, 또는 어떤 조합형을 포함할 수 있으나 여기에 국한되지 않는다. 시스템 메모리(304)는 운영 체제(305), 하나 이상의 프로그래밍 모듈(306)을 포함할 수 있고, 시각화 플랫폼(110) 및/또는 피처 익스텐션(130)을 포함할 수 있다. 운영 체제(305)는 이를테면 컴퓨팅 장치(300)의 동작을 제어하는데 적합한 것일 수 있다. 일 실시예에서, 프로그래밍 모듈(306)은 사용자 애플리케이션(140)을 포함할 수 있다. 또, 본 발명의 실시예들은 그래픽 라이브러리, 다른 운영 체제들, 또는 어떤 다른 애플리케이션 프로그램과 함께 실시될 수 있으나 어느 특정 애플리케이션이나 시스템에 국한되는 것은 아니다. 이러한 기본적인 구성이 도 3에서 점선(308) 안의 엘리먼트들에 의해 예시된다.
컴퓨팅 장치(300)는 추가 특성이나 기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(300)는 가령 자기 디스크, 광 디스크, 또는 테이프 같은 추가 데이터 저장 장치들(착탈형 및/또는 비착탈형)도 포함할 수 있다. 그러한 추가 저장 장치가 도 3에서 착탈형 저장부(309) 및 비착탈형 저장부(310)로써 예시된다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터 같은 정보의 저장을 위해 어떤 방법이나 기술로 구현되는 휘발성 및 비휘발성, 착탈형 및 비착탈형 매체를 포함할 수 있다. 시스템 메모리(304), 착탈형 저장부(309), 및 비착탈형 저장부(310)는 모두 컴퓨터 저장 매체의 예들(즉, 메모리 저장부)이다. 컴퓨터 저장 매체는 비한정적인 것으로서 RAM, ROM, EEPROM(electrically erasable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광 저장부, 자기 카세트, 자기 테이프, 자기 디스크 저장부나 다른 자기 저장 장치들, 또는 컴퓨팅 장치(300)에 의해 액세스될 수 있는 정보를 저장하는데 사용될 수 있는 어떤 다른 매체를 포함할 수 있다. 그러한 어떤 컴퓨터 저장 매체는 장치(300)의 일부일 수 있다. 컴퓨팅 장치(3000는 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(들)(312)을 가질 수도 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치들(314) 역시 포함될 수 있다. 상술한 장치들은 예들이며, 다른 것들도 사용될 수 있다.
컴퓨팅 장치(300)는 또한 분산형 컴퓨팅 환경, 이를테면 인트라넷이나 인터넷 상에서 네트워크 등을 거쳐 장치(300)를 다른 컴퓨팅 장치들(318)과 통신하게 할 수 있는 통신 접속(316)을 포함할 수 있다. 통신 접속(316)은 통신 매체의 한 예이다. 통신 매체는 통상적으로, 반송파나 다른 전송 메커니즘 같은 변조된 데이터 신호 상의 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈이나 다른 데이터를 통해 구현될 수 있고, 어떤 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 안에 정보를 인코딩하기 위한 방법에 따라 설정되거나 변경된 하나 이상의 특징을 가지는 신호를 나타낼 수 있다. 비한정적 예로서, 통신 매체는 유선 네트워크나 직접 유선(direct-wired) 접속 같은 유선 매체 및 청각, 라디오 주파수(RF), 적외선 및 다른 무선 매체 같은 무선 매체를 포함할 수 있다. 여기서 사용된 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 둘 모두를 포함할 수 있다.
상술한 바와 같이, 운영 체제(305)를 포함해 여러 프로그램 모듈과 데이터 파일이 시스템 메모리(304)에 저장될 수 있다. 프로세싱 유닛(302) 상에서 실행될 때, 프로그래밍 모듈(306)(가령, 시각화 플랫폼(110) 및/또는 피처 익스텐션(130))은 가령, 상술한 바와 같은 방법(200)의 단계들 중 하나 이상을 포함하는 프로세스를 수행할 수 있다. 상술한 프로세스는 예이며, 프로세싱 유닛(302)이 다른 프로세스를 수행할 수도 있다. 본 발명의 실시예들에 따라 사용될 수 있는 다른 프로그래밍 모듈들은 전자 메일 및 연락 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 데이터베이스 애플리케이션, 슬라이드 프레젠테이션 애플리케이션, 드로잉 또는 컴퓨터 지원 애플리케이션 프로그램 등을 포함할 수 있다.
일반적으로, 본 발명의 실시예들에 따르면, 프로그램 모듈들은 특정 작업들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 또는 다른 타입의 구조를 포함할 수 있다. 또, 본 발명의 실시예들은 핸드 헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 혹은 프로그래머블 가전기, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성을 통해 실시될 수 있다. 본 발명의 실시예들은 또한, 태스크가 통신 네트워크를 통해 링크된 원격 프로세싱 장치들에 의해 수행되는 분산 컴퓨팅 환경 하에서 실시될 수도 있다. 분산 컴퓨팅 환경에서 프로그램 모듈들은 로컬 및 리모트 메모리 저장 장치 둘 모두에 위치될 수 있다.
또한 본 발명의 실시예들은 낱개 전자 엘리먼트들, 로직 게이트들을 포함하는 패키징되거나 집적된 전자 칩들을 포함하는 전기 회로, 마이크로프로세서를 활용하는 회로, 또는 전자 엘리먼트들이나 마이크로프로세서들을 포함한 단일 칩 상에서 실시될 수 있다. 본 발명의 실시예들은 또한, 기계, 광, 유체 및 양자적 기술을 포함하지만 그에 국한되지는 않는, 가령 AND, OR, 및 NOT 같은 로직 연산을 수행할 수 있는 다른 기술들을 이용해 실시될 수도 있다. 또, 본 발명의 실시예들은 범용 컴퓨터나 어떤 다른 회로나 시스템 안에서 실시될 수 있다.
본 발명의 실시예들은 이를테면, 컴퓨터 프로세서(메소드), 컴퓨팅 시스템으로서, 혹은 컴퓨터 프로그램 제품이나 컴퓨터 판독가능 매체 같은 제조품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하기 위한 명령어들로 된 컴퓨터 프로그램을 인코딩하는 컴퓨터 저장 매체일 수 있다. 컴퓨터 프로그램 제품은 또한, 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하기 위한 명령어들로 된 컴퓨터 프로그램을 인코딩하는 반송파 상의 전파 신호일 수 있다. 따라서 본 발명은 하드웨어 및/또는 소프트웨어(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함)로 구현될 수 있다. 달리 말하면, 본 발명의 실시예들은 명령어 실행 시스템에 의해 혹은 그와 함께 사용할 매체 안에 수록되는 컴퓨터 사용가능 혹은 컴퓨터 판독가능 프로그램 코드를 가진 컴퓨터 사용가능 혹은 컴퓨터 판독가능 저장 매체 상의 컴퓨터 프로그램 제품 형태를 취할 수 있다. 컴퓨터 사용가능 혹은 컴퓨터 판독가능 매체는 명령 실행 시스템, 장치, 또는 기기에 의하거나 그와 함께 사용할 프로그램을 포함하거나, 저장하거나, 통신하거나, 전파하거나 전송할 수 있는 어떤 매체일 수 있다.
컴퓨터 사용가능 혹은 컴퓨터 판독가능 매체는 예를 들어 비한정하는 것으로서, 전자, 자기, 광, 전자기, 적외선 또는 반도체 시스템, 장치, 기기, 또는 전파 매체일 수 있다. 보다 구체적인 컴퓨터 판독가능 매체의 예들(완전하지 않은 리스트)로서, 컴퓨터 판독가능 매체는 다음과 같은 것을 포함할 수 있다: 하나 이상의 선들을 가진 전기 접속, 휴대형 컴퓨터 디스켓, RAM, ROM, EPROM 또는 플래시 메모리, 광 섬유, 및 휴대형 CD-ROM. 컴퓨터 사용가능 혹은 컴퓨터 판독가능 매체는 프로그램이 예를 들어 종이나 다른 매체의 광 스캔을 통해 전기적으로 캡처되고, 그 다음 컴파일되거나 해석되거나 그렇지 않고 필요시 어느 적절한 방식으로 프로세싱되고, 그런 다음 컴퓨터 메모리에 저장될 때, 프로그램이 인쇄되는 종이나 다른 적절한 매체일 수도 있다는 것에 유의해야 한다.
본 발명의 실시예들은 예를 들어 본 발명의 실시예들에 따른 방법, 시스템, 및 컴퓨터 프로그램 제품의 블록도 및/또는 동작도를 참조하여 위에서 기술된다. 블록들에서 언급된 기능들/행위들은 어느 흐름도에 도시된 것 같은 순서와 다르게 일어날 수 있다. 예를 들어, 연속하여 보여진 두 블록들은 수반되는 기능/동작에 따라 실제로 거의 동시에 실행되거나 때때로 반대의 순서로 실행될 수도 있다.
본 발명의 소정 실시예들이 기술되었지만, 다른 실시예들도 있을 수 있다. 또, 본 발명의 실시예들은 메모리 및 다른 저장 매체에 저장되는 데이터와 관련된 것으로 기술되었지만, 데이터가 하드 디스크, 플로피 디스크, 또는 CD-ROM 같은 이차 저장 장치, 인터넷으로부터의 반송파, 또는 다른 형식의 RAM이나 ROM 같은 다른 타입의 컴퓨터 판독가능 매체 상에 저장되거나 그로부터 판독될 수 있다. 또, 개시된 방법의 단계들은 발명으로부터 벗어나지 않으면서, 단계의 순서 재정렬 및/또는 단계의 삽입이나 삭제와 같은 방법을 포함하는 어떤 방식에 따라 수정될 수 있다.
여기 포함된 코드에서 저작권을 포함한 모든 권리는 출원인에게 있으며, 출원인의 재산이다. 출원인은 여기 포함된 코드의 모든 권리를 보유 및 소유하며, 다른 목적이 아닌 허가된 특허의 재현과 관련해서만 이 자료를 복사하도록 허가한다.
명세서가 예들을 포함하고 있지만, 발명의 범위는 이하의 청구범위에 의해 지시된다. 또, 명세서가 구조적인 특징 및/또는 방법론적 행위들에 특정되는 언어를 통해 기술되었지만, 청구범위는 위에 기술된 그러한 특징이나 행위에 한정되지 않는다. 그보다 위에서 기술된 특정한 특징과 행위는 발명의 실시예들로서 개시된다.

Claims (15)

  1. 확장성 프레임워크를 제공하는 방법(200)으로서,
    시각화 플랫폼(110)을 인스턴스화하는 단계(210)와,
    적어도 하나의 피처 익스텐션(feature extension)(130)을 상기 시각화 플랫폼(110)에 등록하는 단계(215)와,
    적어도 하나의 애플리케이션(140)으로부터 적어도 하나의 오브젝트를 생성하라는 요청을 수신하는 단계(220)와,
    상기 적어도 하나의 오브젝트를 생성하는 단계(225)와,
    상기 요청이 상기 적어도 하나의 피처 익스텐션(130)과 관련되어 있는지 여부를 판정하는 단계(230)와,
    상기 요청이 상기 적어도 하나의 피처 익스텐션(130)과 관련되어 있다는 판정에 응답하여,
    상기 적어도 하나의 피처 익스텐션(130)으로부터 적어도 하나의 오브젝트 수정을 수신하는 단계(240)와,
    상기 적어도 하나의 오브젝트 수정에 따라 상기 오브젝트를 수정하는 단계(245)와,
    상기 오브젝트를 디스플레이 장치(150)에 렌더링하는 단계(255)
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 애플리케이션(140)이 상기 오브젝트를 상기 디스플레이 장치(150) 상에 렌더링하는
    방법.
  3. 제1항에 있어서,
    상기 적어도 하나의 애플리케이션(140)으로부터 적어도 하나의 제 2 오브젝트 수정을 수신하는 단계와,
    상기 적어도 하나의 제 2 오브젝트 수정에 따라 상기 오브젝트를 수정하는 단계
    를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 요청을 수신하는 단계는 시각화 타입 및 적어도 하나의 데이터 값을 수신하는 단계를 포함하고,
    상기 오브젝트는 상기 요청된 시각화 타입의 시각화 오브젝트를 포함하며,
    상기 시각화 플랫폼은 상기 시각화 타입 및 상기 적어도 하나의 데이터 값에 대한 적어도 하나의 디폴트 드로잉(drawing) 명령을 포함하는
    방법.
  5. 제1항에 있어서,
    상기 애플리케이션(140)은 시각화 플랫폼(110)이 생성하여 사용자에게 디스플레이할 복수의 오브젝트를 결정하도록 동작하는
    방법.
  6. 제5항에 있어서,
    상기 시각화 플랫폼(110)이 생성할 상기 복수의 오브젝트를 결정하는 것은 상기 시각화 플랫폼(110)으로부터 상기 복수의 오브젝트의 리스트를 검색하는 것을 포함하는
    방법.
  7. 제5항에 있어서,
    상기 시각화 플랫폼(110)이 생성할 상기 복수의 오브젝트를 결정하는 것은 상기 적어도 하나의 피처 익스텐션(130)의 적어도 하나의 위치를 검색하는 것을 포함하는
    방법.
  8. 제1항에 있어서,
    상기 요청이 상기 적어도 하나의 피처 익스텐션(130)과 관련되는지 여부를 판정하는 단계(230)는 상기 적어도 하나의 피처 익스텐션(130)이 적어도 하나의 데이터 값 및 적어도 하나의 드로잉 명령 중 적어도 하나를 포함하는지 여부를 판정하는 단계를 포함하는
    방법.
  9. 제1항에 있어서,
    상기 적어도 하나의 피처 익스텐션(130)으로부터의 상기 적어도 하나의 오브젝트 수정은 상기 오브젝트를 생성하기 위해 상기 시각화 플랫폼(110)에 의해 사용되는 적어도 하나의 드로잉 명령을 무효화하는 드로잉 명령을 포함하는
    방법.
  10. 제1항에 있어서,
    상기 적어도 하나의 피처 익스텐션(130)으로부터의 상기 적어도 하나의 오브젝트 수정은 상기 오브젝트를 생성하기 위해 상기 시각화 플랫폼(110)에 의해 사용될 적어도 하나의 드로잉 명령을 추가하는 드로잉 명령을 포함하는
    방법.
  11. 제1항에 있어서,
    상기 적어도 하나의 피처 익스텐션(130)으로부터의 상기 적어도 하나의 오브젝트 수정은 상기 오브젝트 상에 디스플레이될 복수의 데이터 포인트를 포함하는
    방법.
  12. 애플리케이션(140) 확장성을 제공하는 시스템(300)으로서,
    메모리 저장부(309, 310)와,
    상기 메모리 저장부(309, 310)와 연결된 프로세싱 유닛(302)
    을 포함하되, 상기 프로세싱 유닛(302)은
    시각화 플랫폼(110)을 인스턴스화하고(210),
    상기 시각화 플랫폼(110)과 함께 사용하도록 동작하는 적어도 하나의 피처 익스텐션(feature extension)(130)의 위치를 결정하며,
    적어도 하나의 사용자 애플리케이션(140)으로부터 적어도 하나의 오브젝트를 생성하라는 요청을 수신하고(220),
    상기 적어도 하나의 오브젝트를 생성하며(225),
    상기 요청이 상기 적어도 하나의 피처 익스텐션(130)과 관련되어 있는지 여부를 판정하고(230),
    상기 요청이 상기 적어도 하나의 피처 익스텐션(130)과 관련되어 있다는 판정에 응답하여,
    상기 적어도 하나의 피처 익스텐션(130)으로부터 적어도 하나의 오브젝트 수정을 수신하고(240),
    상기 적어도 하나의 오브젝트 수정에 따라 상기 오브젝트를 수정하며(245),
    상기 오브젝트를 디스플레이 장치(150)에 렌더링(255)
    하도록 동작하는 시스템.
  13. 제12항에 있어서,
    상기 프로세싱 유닛은 또한 상기 시각화 플랫폼(110)이 생성할 오브젝트의 리스트를 상기 적어도 하나의 사용자 애플리케이션(140)에게 제공하도록 동작하고, 상기 시각화 플랫폼(110)이 생성할 오브젝트의 리스트는 상기 적어도 하나의 피처 익스텐션(130)으로부터 상기 적어도 하나의 오브젝트 수정을 요구하는 적어도 하나의 오브젝트를 포함하는
    시스템.
  14. 제13항에 있어서,
    상기 시각화 플랫폼(110)이 생성할 오브젝트의 리스트를 상기 적어도 하나의 사용자 애플리케이션(140)에게 제공하도록 동작하는 것은
    상기 적어도 하나의 사용자 애플리케이션(140)이 상기 적어도 하나의 피처 익스텐션(130)과 호환되는지 여부를 판정하도록 동작하는 것과,
    상기 적어도 하나의 사용자 애플리케이션(140)이 상기 적어도 하나의 피처 익스텐션(130)과 호환되지 않는다는 판정에 응답하여, 상기 시각화 플랫폼(110)이 생성할 오브젝트의 리스트로부터 상기 적어도 하나의 피처 익스텐션(130)과 관련된 적어도 하나의 오브젝트를 보류하는 것
    을 포함하는 시스템.
  15. 실행될 때 애플리케이션(140) 확장성 프레임워크를 제공하는 방법(200)을 수행하는 일련의 명령어를 저장하는 컴퓨터 판독가능 매체로서,
    상기 일련의 명령어에 의해 실행되는 상기 방법(200)은,
    시각화 플랫폼(110)을 인스턴스화하는 단계(210)와,
    적어도 하나의 피처 익스텐션(feature extension)(130)을 상기 시각화 플랫폼(110)에 등록하는 단계(215)와,
    상기 시각화 플랫폼(110)이 생성할 오브젝트의 리스트를 상기 적어도 하나의 애플리케이션(140)에게 제공하는 단계 -상기 오브젝트의 리스트는 상기 시각화 플랫폼(110)이 상기 적어도 하나의 피처 익스텐션(130)에게 생성하라고 요청한 적어도 하나의 오브젝트를 포함함- 와,
    적어도 하나의 애플리케이션(140)으로부터 상기 오브젝트의 리스트 중 적어도 하나의 오브젝트를 생성하라는 요청을 수신하는 단계(220) -상기 요청은 상기 애플리케이션(140)에 제공된 상기 오브젝트의 리스트로부터의 사용자 선택을 포함함- 와,
    상기 시각화 플랫폼(110)에 의해 제공되고 상기 요청된 오브젝트 타입과 관련되는 적어도 하나의 드로잉 명령에 따라 상기 하나의 요청된 오브젝트를 생성하는 단계(225)와,
    상기 요청된 오브젝트가 상기 적어도 하나의 피처 익스텐션(130)과 관련되어 있는지 여부를 판정하는 단계(230)와,
    상기 요청이 상기 적어도 하나의 피처 익스텐션(130)과 관련되어 있다는 판정에 응답하여, 상기 적어도 하나의 피처 익스텐션(130)이 상기 적어도 하나의 애플리케이션(140)과 호환되는지 여부를 판정하는 단계(235) ― 상기 적어도 하나의 피처 익스텐션(130)이 상기 적어도 하나의 애플리케이션(140)과 호환되는지 여부를 판정하는 단계는 상기 적어도 하나의 애플리케이션(140)이 호환가능한 출시 버전을 포함하는지 여부를 판정하는 단계 및 상기 적어도 하나의 애플리케이션(140)이 상기 적어도 하나의 피처 익스텐션(130)을 사용하기 위한 라이센스를 포함하는지 여부를 판정하는 단계 중 적어도 하나를 포함함 ― 와,
    상기 적어도 하나의 피처 익스텐션(130)이 상기 적어도 하나의 애플리케이션(140)과 호환가능하다는 판정(235)에 응답하여,
    상기 적어도 하나의 피처 익스텐션(130)으로부터 적어도 하나의 오브젝트 수정을 수신하는 단계(240) ― 상기 적어도 하나의 오브젝트 수정은 드로잉 명령 무효화 및 적어도 하나의 추가 드로잉 엘리먼트 중 적어도 하나를 포함함 ― 와,
    상기 적어도 하나의 오브젝트 수정에 따라 상기 오브젝트를 수정하는 단계(245)와,
    상기 애플리케이션(140)에 의해 상기 오브젝트를 디스플레이 장치(150)에 렌더링하는 단계(255)
    를 포함하는 컴퓨터 판독가능 매체.
KR1020117025537A 2009-04-30 2010-04-23 플랫폼 확장성 프레임워크 Active KR101625258B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/433,327 2009-04-30
US12/433,327 US9250926B2 (en) 2009-04-30 2009-04-30 Platform extensibility framework
PCT/US2010/032308 WO2010126803A2 (en) 2009-04-30 2010-04-23 Platform extensibility framework

Publications (2)

Publication Number Publication Date
KR20120022831A KR20120022831A (ko) 2012-03-12
KR101625258B1 true KR101625258B1 (ko) 2016-05-27

Family

ID=43031341

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117025537A Active KR101625258B1 (ko) 2009-04-30 2010-04-23 플랫폼 확장성 프레임워크

Country Status (16)

Country Link
US (1) US9250926B2 (ko)
EP (1) EP2425332A4 (ko)
JP (1) JP5697661B2 (ko)
KR (1) KR101625258B1 (ko)
CN (1) CN102414660B (ko)
AU (1) AU2010241813B2 (ko)
BR (1) BRPI1011230A2 (ko)
CA (1) CA2756862A1 (ko)
CL (1) CL2011002656A1 (ko)
IL (1) IL215278A0 (ko)
MX (1) MX2011011347A (ko)
RU (1) RU2011143803A (ko)
SG (2) SG174919A1 (ko)
TW (1) TW201044274A (ko)
WO (1) WO2010126803A2 (ko)
ZA (1) ZA201106944B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8786628B2 (en) * 2007-09-14 2014-07-22 Microsoft Corporation Rendering electronic chart objects
US9250926B2 (en) 2009-04-30 2016-02-02 Microsoft Technology Licensing, Llc Platform extensibility framework
US8638343B2 (en) * 2009-04-30 2014-01-28 Microsoft Corporation Data visualization platform performance optimization
US8683462B2 (en) 2010-10-22 2014-03-25 Adobe Systems Incorporated Handling calls to native code in a managed code environment
US8694988B2 (en) * 2010-10-22 2014-04-08 Adobe Systems Incorporated Runtime extensions
US20130260730A1 (en) * 2012-03-28 2013-10-03 Enterproid Hk Ltd Custom application container for mobile operating systems and/or devices
US9369528B2 (en) * 2013-04-08 2016-06-14 Xerox Corporation Multi-function device application catalog with integrated discovery, management, and application designer
US10216750B2 (en) 2014-10-14 2019-02-26 Microsoft Technology Licensing, Llc Annotated geometry
US11029836B2 (en) 2016-03-25 2021-06-08 Microsoft Technology Licensing, Llc Cross-platform interactivity architecture
US10304225B2 (en) 2016-12-30 2019-05-28 Microsoft Technology Licensing, Llc Chart-type agnostic scene graph for defining a chart
US10395412B2 (en) 2016-12-30 2019-08-27 Microsoft Technology Licensing, Llc Morphing chart animations in a browser
US11086498B2 (en) 2016-12-30 2021-08-10 Microsoft Technology Licensing, Llc. Server-side chart layout for interactive web application charts
US10838614B2 (en) * 2018-04-03 2020-11-17 Palantir Technologies Inc. Graphical user interface system
US11029970B2 (en) * 2018-10-24 2021-06-08 Sap Se Operating system extension framework
CN113405769B (zh) * 2021-06-18 2022-08-30 中国科学院、水利部成都山地灾害与环境研究所 模拟冰碛湖漫顶溃决灾害全过程的实验装置及实验方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050253840A1 (en) 2004-05-11 2005-11-17 Kwon Ryan Y W Method and system for interactive three-dimensional item display
US20070101322A1 (en) 2005-11-02 2007-05-03 International Business Machines Corporation Extending markup of a browser using a plug-in framework

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228119A (en) 1990-09-28 1993-07-13 Temple University Multi-dimensional graphing in two-dimensional space
US5175805A (en) 1990-10-30 1992-12-29 Sun Microsystems, Inc. Method and apparatus for sequencing composite operations of pixels
US5461708A (en) 1993-08-06 1995-10-24 Borland International, Inc. Systems and methods for automated graphing of spreadsheet information
US5581677A (en) 1994-04-22 1996-12-03 Carnegie Mellon University Creating charts and visualizations by demonstration
US6243172B1 (en) 1995-01-18 2001-06-05 Varis Corporation Method and system for merging variable text and images into bitmaps defined by a page description language
US5859958A (en) 1995-11-14 1999-01-12 Apple Computer, Inc. Compact representation of object slices for rendering raster graphics
US6374255B1 (en) 1996-05-21 2002-04-16 Immersion Corporation Haptic authoring
US5982399A (en) 1996-06-21 1999-11-09 Autodesk, Inc. Immediate mode drawing interface for the construction of graphics software
US6023279A (en) 1997-01-09 2000-02-08 The Boeing Company Method and apparatus for rapidly rendering computer generated images of complex structures
US5936641A (en) 1997-06-27 1999-08-10 Object Technology Licensing Corp Graphics hardware acceleration method, computer program, and system
US6052125A (en) 1998-01-07 2000-04-18 Evans & Sutherland Computer Corporation Method for reducing the rendering load for high depth complexity scenes on a computer graphics display
US6529900B1 (en) 1999-01-14 2003-03-04 International Business Machines Corporation Method and apparatus for data visualization
US5972987A (en) 1999-03-16 1999-10-26 Lori Fox Reid Method for removing nits from hair
US6701383B1 (en) 1999-06-22 2004-03-02 Interactive Video Technologies, Inc. Cross-platform framework-independent synchronization abstraction layer
US6466211B1 (en) 1999-10-22 2002-10-15 Battelle Memorial Institute Data visualization apparatuses, computer-readable mediums, computer data signals embodied in a transmission medium, data visualization methods, and digital computer data visualization methods
JP3576897B2 (ja) 1999-11-11 2004-10-13 Necパーソナルプロダクツ株式会社 ウェブブラウザのプラグイン実現方式、ウェブブラウザのプラグイン実現方法およびウェブブラウザのプラグイン実現用プログラムを記録した記録媒体
US7454439B1 (en) 1999-11-24 2008-11-18 At&T Corp. System and method for large-scale data visualization
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7034828B1 (en) * 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6523074B1 (en) 2000-08-25 2003-02-18 Lucent Technologies Inc. Apparatus and method to manage the invocation of feature service
US7231606B2 (en) * 2000-10-31 2007-06-12 Software Research, Inc. Method and system for testing websites
NZ508429A (en) 2000-11-24 2003-05-30 Compudigm Int Ltd Queue management using a data visualisation system
US20020199156A1 (en) * 2001-05-23 2002-12-26 Fuel Tech, Inc. Hardware-adaptable data visualization tool for use in complex data analysis and engineering design
US7010581B2 (en) * 2001-09-24 2006-03-07 International Business Machines Corporation Method and system for providing browser functions on a web page for client-specific accessibility
CA2462165A1 (en) 2001-10-11 2003-04-17 Visual Sciences, Llc System, method, and computer program product for processing and visualization of information
US20030151604A1 (en) 2001-11-21 2003-08-14 Research Foundation Of State University Of New York Volume rendering with contouring texture hulls
US20040217956A1 (en) 2002-02-28 2004-11-04 Paul Besl Method and system for processing, compressing, streaming, and interactive rendering of 3D color image data
US6928436B2 (en) 2002-02-28 2005-08-09 Ilog Sa Interactive generation of graphical visualizations of large data structures
US6747650B2 (en) 2002-04-22 2004-06-08 Battelle Memorial Institute Animation techniques to visualize data
JP4467267B2 (ja) 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
US7071940B2 (en) 2002-10-30 2006-07-04 Iviz, Inc. Interactive data visualization and charting framework with self-detection of data commonality
US20080143725A1 (en) 2004-02-09 2008-06-19 Smart Technologies Inc. Connected and overlapped shapes enhancements
US7800631B2 (en) 2003-03-18 2010-09-21 Qualcomm Incorporated Triangle rendering using direct evaluation
US7126606B2 (en) * 2003-03-27 2006-10-24 Microsoft Corporation Visual and scene graph interfaces
US7486294B2 (en) 2003-03-27 2009-02-03 Microsoft Corporation Vector graphics element-based model, application programming interface, and markup language
US7068267B2 (en) 2003-04-14 2006-06-27 Sas Institute Inc. Computer-implemented system and method for handling linked data views
US20040233193A1 (en) 2003-04-30 2004-11-25 Sulzer Markets And Technology Ag Method for visualising a spatially resolved data set using an illumination model
US7756907B2 (en) 2003-09-16 2010-07-13 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for visualizing data
US20050183003A1 (en) * 2004-02-17 2005-08-18 Checkpoint Software Technologies Ltd. Automatic proxy form filing
US20080288889A1 (en) 2004-02-20 2008-11-20 Herbert Dennis Hunt Data visualization application
US7574709B2 (en) 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
WO2005109886A2 (en) * 2004-04-30 2005-11-17 Vulcan Inc. Controlling one or more media devices
GR1004933B (el) 2004-05-17 2005-07-11 Δημητρης Τσαγκαρης Αντικειμενοστραφης πλατφορμα αναπτυξης εφαρμογων προσομοιωσης αντιδραστηρων υδρογονοκατεργασιας
US7176923B2 (en) 2004-06-18 2007-02-13 Sap Rechnungsprufung Method and system to generate chart models
US7701455B2 (en) 2004-07-21 2010-04-20 Che-Chih Tsao Data rendering method for volumetric 3D displays
US7584415B2 (en) 2004-09-15 2009-09-01 Microsoft Corporation Common charting using shapes
US7586500B2 (en) 2004-09-24 2009-09-08 Canon Kabushiki Kaisha Dynamic render algorithm selection
US7164093B2 (en) * 2005-01-31 2007-01-16 Leviton Manufacturing Co., Inc. Motor starting switch
US7734607B2 (en) * 2005-02-01 2010-06-08 University Of Massachusetts Universal visualization platform
US20060202989A1 (en) 2005-03-10 2006-09-14 Bracco Imaging, S.P.A. Systems and methods to optimize volumetric rendering of a region of interest ("Tension Vectors")
US7593013B2 (en) 2005-03-11 2009-09-22 University Of Utah Research Foundation Systems and methods for displaying and querying heterogeneous sets of data
US7471417B1 (en) 2005-03-17 2008-12-30 Adobe Systems Incorporated Method and apparatus for locating a source point for an image-retouching tool
JP4622671B2 (ja) 2005-04-18 2011-02-02 ソニー株式会社 電子機器および方法、記録媒体、並びにプログラム
TWI269189B (en) 2005-04-25 2006-12-21 Univ Nat Chiao Tung User interface producing system and method thereof
US20060285152A1 (en) 2005-06-17 2006-12-21 Skillen William A Method and system for embedding native shape file and mapping data within a portable document format file
CN100593156C (zh) 2005-09-02 2010-03-03 北京灵图软件技术有限公司 用于二次开发平台的基于控件的插件管理系统及方法
CA2569449A1 (en) 2005-11-30 2007-05-30 Oculus Info Inc. System and method for visualizing configurable analytical spaces in time for diagrammatic context representations
US20070174762A1 (en) * 2006-01-24 2007-07-26 International Business Machines Corporation Personal web page annotation system
US20070261100A1 (en) 2006-05-05 2007-11-08 Greeson Robert L Platform independent distributed system and method that constructs a security management infrastructure
US20080172629A1 (en) 2007-01-17 2008-07-17 Microsoft Corporation Geometric Performance Metric Data Rendering
US7880749B2 (en) 2007-01-31 2011-02-01 Business Objects Software Ltd. Apparatus and method for data charting with an extensible visualization library
US20080235580A1 (en) * 2007-03-20 2008-09-25 Yahoo! Inc. Browser interpretable document for controlling a plurality of media players and systems and methods related thereto
US20090019429A1 (en) 2007-07-14 2009-01-15 Andreas Randow Virtualization of data source components in subject-oriented graphical programming environments for test and measurement applications
US20090021513A1 (en) * 2007-07-18 2009-01-22 Pixblitz Studios Inc. Method of Customizing 3D Computer-Generated Scenes
US8786628B2 (en) 2007-09-14 2014-07-22 Microsoft Corporation Rendering electronic chart objects
US20090089453A1 (en) 2007-09-27 2009-04-02 International Business Machines Corporation Remote visualization of a graphics application
CN101146175A (zh) 2007-10-25 2008-03-19 中兴通讯股份有限公司 机顶盒集成中间件通用系统
EP2223208A2 (en) * 2007-11-15 2010-09-01 Desknet SA Method enabling a computer apparatus run by an operating system to execute software modules
US8176096B2 (en) 2008-12-18 2012-05-08 Microsoft Corporation Data visualization interactivity architecture
US8638343B2 (en) 2009-04-30 2014-01-28 Microsoft Corporation Data visualization platform performance optimization
US9250926B2 (en) 2009-04-30 2016-02-02 Microsoft Technology Licensing, Llc Platform extensibility framework
US8924943B2 (en) * 2009-07-17 2014-12-30 Ebay Inc. Browser emulator system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050253840A1 (en) 2004-05-11 2005-11-17 Kwon Ryan Y W Method and system for interactive three-dimensional item display
US20070101322A1 (en) 2005-11-02 2007-05-03 International Business Machines Corporation Extending markup of a browser using a plug-in framework

Also Published As

Publication number Publication date
US20100281392A1 (en) 2010-11-04
EP2425332A4 (en) 2012-09-12
CN102414660A (zh) 2012-04-11
BRPI1011230A2 (pt) 2016-03-15
JP2012525639A (ja) 2012-10-22
AU2010241813B2 (en) 2014-09-18
EP2425332A2 (en) 2012-03-07
IL215278A0 (en) 2011-11-30
CA2756862A1 (en) 2010-11-04
TW201044274A (en) 2010-12-16
WO2010126803A2 (en) 2010-11-04
SG174919A1 (en) 2011-11-28
JP5697661B2 (ja) 2015-04-08
KR20120022831A (ko) 2012-03-12
ZA201106944B (en) 2012-11-29
AU2010241813A1 (en) 2011-10-20
CL2011002656A1 (es) 2012-04-13
WO2010126803A3 (en) 2011-02-03
RU2011143803A (ru) 2013-06-10
CN102414660B (zh) 2015-02-18
MX2011011347A (es) 2011-11-18
US9250926B2 (en) 2016-02-02
SG10201401940TA (en) 2014-06-27

Similar Documents

Publication Publication Date Title
KR101625258B1 (ko) 플랫폼 확장성 프레임워크
KR101331260B1 (ko) 메타데이터를 이용하여 사용자 인터페이스를 렌더링하기위한 장치, 사용자 인터페이스를 생성하는 방법, 및 컴퓨터판독 가능 매체
US7196712B2 (en) Dynamic, live surface and model elements for visualization and modeling
US6801224B1 (en) Method, system, and program for generating a graphical user interface window for an application program
US8675000B2 (en) Command buffers for web-based graphics rendering
TWI413933B (zh) 圖形使用者介面之應用程式介面
US20150222730A1 (en) Client server interaction for graphical/audio applications
JP2012525639A5 (ko)
JP2015534145A (ja) 宣言テンプレートを使用してコントロールをスタンプアウトするためのユーザインターフェイスコントロールフレームワーク
US20170061662A1 (en) System and method for layering using tile-based renderers
KR20050039551A (ko) 컴퓨터 플랫폼용 프로그래밍 인터페이스
JP2014525622A (ja) オペレーティングシステムのネイティブアプリケーションプログラミングインターフェイスのメタデータを用いた記述
TW201539294A (zh) 跨平台顯像引擎
KR20080021081A (ko) Xml 표현에서 z-order 엘리먼트들의 정밀립 제어
US20140047409A1 (en) Enterprise application development tool
EP1686462A2 (en) Method and system for a digital device menu editor
JP2011100447A (ja) メタモデルベースツールにおけるエンティティ変形
Movania OpenGL Development Cookbook
US8170983B2 (en) Managing data across a semantic data view and a presentation data view
CN110069725A (zh) 可视化内嵌浏览器方法和装置
US8984446B1 (en) Sharing display spaces
RU2752777C1 (ru) Способ компьютерного увеличения и центрирования объектов в веб-браузере
KR102228241B1 (ko) 웹 상에서의 가상 입력 방법 및 시스템
US7444583B2 (en) Standard graphics specification and data binding
Millas Microsoft. Net Framework 4. 5 Quickstart Cookbook

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20111027

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20150325

Comment text: Request for Examination of Application

N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20150715

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20160223

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20160523

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20160523

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20190429

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20210428

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20240424

Start annual number: 9

End annual number: 9