KR101122947B1 - 데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치 - Google Patents

데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치 Download PDF

Info

Publication number
KR101122947B1
KR101122947B1 KR1020050045690A KR20050045690A KR101122947B1 KR 101122947 B1 KR101122947 B1 KR 101122947B1 KR 1020050045690 A KR1020050045690 A KR 1020050045690A KR 20050045690 A KR20050045690 A KR 20050045690A KR 101122947 B1 KR101122947 B1 KR 101122947B1
Authority
KR
South Korea
Prior art keywords
workbook
data
server
metadata
data objects
Prior art date
Application number
KR1020050045690A
Other languages
English (en)
Other versions
KR20060046285A (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 KR20060046285A publication Critical patent/KR20060046285A/ko
Application granted granted Critical
Publication of KR101122947B1 publication Critical patent/KR101122947B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computer And Data Communications (AREA)

Abstract

워크북 범위를 서버 데이터 소스로서 노출하고 이용하기 위한 방법, 시스템 및 장치가 제공된다. 시스템은 데이터 오브젝트를 포함하는 범위를 포함한 워크북을 형성하기 위한 스프레드시트 어플리케이션 프로그램을 실행할 수 있는 클라이언트 컴퓨터를 포함한다. 워크북은 특정 데이터 오브젝트가 서버 데이터 소스로서 노출되는 서버 컴퓨터에 공개될 수 있다. 서버 컴퓨터는 클라이언트 어플리케이션이 서버 데이터 소스로서 워크북 내에 포함된 데이터 오브젝트를 발견하고 이에 연결될 수 있도록 한다.
워크북, 스프레드시트 어플리케이션, 서버 데이터 소스, 데이터베이스 쿼리, 데이터 오브젝트

Description

데이터 소스로서 워크북 범위를 노출하기 위한 방법, 시스템 및 장치{METHOD, SYSTEM, AND APPARATUS FOR EXPOSING WORKBOOK RANGES AS DATA SOURCES}
도 1은 본 발명의 여러 실시예에서 이용되며 이에 의해 제공되는 수개의 컴퓨터 시스템의 태양을 설명하는 컴퓨터 네트워크 도면;
도 2는 본 발명의 여러 실시예에서 이용되며 이에 의해 제공되는 클라이언트 컴퓨터 시스템의 태양을 설명하는 컴퓨터 시스템 아키텍처;
도 3은 본 발명의 일 실시예에 따른 서버 데이터 소스로서 워크북 범위를 공개하기 위한 프로세스의 태양을 설명하는 흐름도;
도 4는 유저가 워크북의 범위의 데이터 오브젝트와 관련되는 메타데이터를 편집할 수 있는 기능을 제공하기 위한 본 발명의 태양을 설명하는 화면; 및
도 5는 본 발명의 일 실시예에 따른 서버 데이터 소스로서 워크북 범위에 대한 요청을 수신하고 이에 응답하기 위한 프로세스의 태양을 설명하는 흐름도.
<도면의 주요 부분에 대한 간단한 설명>
2 : 클라이언트 컴퓨터
4 : 스프레드시트 클라이언트 어플리케이션
6 : 워크북
8 : OLAP 클라이언트 어플리케이션
10 : 네트워크
12A-12C : 서버 컴퓨터
14 : 워크북 리포지토리
16 : 데이터 소스
워크북(workbook) 구축시, 스프레드시트(spreadsheet) 어플리케이션 프로그램의 유저들은 대개 다수의 다른 소스로부터의 데이터를 이용한다. 예를 들어, 스프레드시트 어플리케이션 프로그램 내의 워크북을 형성할 때, 유저는 또 다른 워크북으로부터 데이터를 가져 오거나, 워크북에 데이터를 수동으로 입력하거나, 관계형 데이터베이스(relational database) 또는 "OLAP"(on-line analytical processing) 큐브 (cube) 상에서 쿼리(query)를 실행하여 데이터를 취득할 수 있다. 데이터가 이들 소스 중 임의의 것으로부터 입력되면, 유저는 통상적으로 워크북 내의 원하는 구성으로 데이터를 배열한다. 이 프로세스의 종단부에서, 유저는 의미 있는 수치 분석이 실행될 수 있는 데이터의 표 범위(tabular range)를 포함하는 워크북을 형성하였다.
다른 유저가 워크북의 컨텐츠를 액세스하기 위해서, 워크북이나 그 일부의 카피를 행할 수 있다. 예를 들어, 많은 시나리오에서는 워크북이 전자 메일 ("이메일") 메시지를 통해 다른 유저에게 보내진다. 워크북을 수신한 유저는 그 후 워 크북에 대해 분석을 실행하거나 워크북에 포함된 데이터를 또 다른 워크북에 추가할 수 있다. 또는, 워크북은 다수의 유저가 워크북의 컨텐츠를 액세스할 수 있는 파일 쉐어(file share)에 기억될 수 있다. 워크북의 컨텐츠를 공유하기 위해서, 데이터의 범위가 또한 카피되고 다른 문서에 붙여넣기될 수 있다.
워크북을 공유하기 위한 이들 종래의 방법은 다수의 유저가 워크북의 컨텐츠를 액세스할 수 있게 하지만, 이들 방법은 결점이 없지 않다. 먼저, 다수의 컴퓨터 및 네트워크 도메인을 통해 여러번 카피될 수 있는 워크북의 다수의 카피를 관리하는 것은 매우 어렵다. 특히, 시스템 관리자가 워크북이 안전하며 자주 백업되는 것을 확실히 하기는 매우 어렵다. 더구나, 파일 쉐어의 경우, 다수의 유저가 워크북을 동시에 액세스하는 것은 매우 어렵다. 예를 들어, 원래의 워크북 작성자가 이를 업데이트할 필요가 있는 경우, 이를 이용하는 모든 유저를 추적하고 이들의 카피를 업데이트하게 한다는 것은 매우 어려운 일이다. 많은 경우, 스프레드시트 클라이언트 어플리케이션은 워크북이 한 유저에 의해 오픈되는 경우 이를 로크하여, 다른 사람이 파일을 액세스하지 못하게 한다. 또한, 워크북의 상이한 카피에 대해 동일한 기능이 실행될 수 있어, 이중의 노력을 필요로 하여 생산성을 저하시킨다.
본 발명의 여러 실시예들은 이들 및 기타 고려 사항에 관한 것이다.
본 발명에 따르면, 전술한 그리고 다른 문제점들은 데이터 소스로서 워크북 범위를 노출하기 위한 방법, 시스템 및 장치에 의해 해결된다. 서버 데이터 소스 로서 워크북 내의 범위를 노출함으로써, 서버 데이터 소스에 연결되고 이를 쿼리할 수 있는 어플리케이션 프로그램에 의해 워크북의 컨텐츠에 대한 구조적 액세스를 용이하게 가질 수 있다. 더구나, 워크북이 공개될 때 서버 데이터 소스로서 워크북 범위가 노출되기 때문에, 스프레드시트 어플리케이션 프로그램을 운영할 수 있는 유저라면 엔터프라이즈 레벨 데이터 소스를 용이하게 형성할 수가 있다.
본 발명의 일 태양에 따르면, 서버 데이터 소스로서 워크북의 컨텐츠를 노출하고 서버 데이터 소스를 이용하는 시스템이 제공된다. 시스템은 워크북을 형성하기 위한 스프레드시트 어플리케이션 프로그램을 실행할 수 있는 클라이언트 컴퓨터를 포함한다. 워크북은 데이터 오브젝트를 포함하는 하나 이상의 범위를 포함할 수 있다. 본 명세서에서 정의된 바와 같이, 데이터 오브젝트는 데이터를 기억하는 데에 이용되는 워크시트(worksheet) 내의 임의의 오브젝트를 포함한다. 예를 들어, 데이터 오브젝트는 임의 범위의 셀, 피봇 표, "DOEs"(data exploration objects), 목록, 데이터베이스, 및 쿼리 표(이에 한정하는 것은 아님)를 포함할 수 있다.
스프레드시트 어플리케이션 프로그램은 또한 워크시트가 작성될 때 데이터 오브젝트 각각에 대해 메타데이터를 형성하도록 동작할 수 있다. 메타데이터는 워크시트로 기억될 수 있다. 메타데이터는 서버 데이터 소스로서 워크북 내의 데이터 오브젝트를 액세스하려는 요청을 수신하고 이에 응답할 때 서버 컴퓨터에 의해 이용될 수 있다. 데이터 오브젝트에 대한 메타데이터 형성은 데이터가 형성될 때, 데이터가 공개될 때, 또는 메타데이터를 형성하려는 유저 요청에 응답하여, 스프레 드시트 어플리케이션 프로그램에 의해 자동화 방식으로 수행될 수 있다. 유저가 메타데이터를 편집하게 하기 위한 기능(facility)이 또한 제공될 수 있다.
스프레드시트 어플리케이션 프로그램은 또한 서버 컴퓨터에 워크북을 공개하도록 동작한다. 워크북이 서버 컴퓨터에 공개될 때, 유저는 워크북 내의 데이터 오브젝트중 일부, 또는 전부가 서버 데이터 소스로서 노출되거나, 또는 전혀 노출되지 않도록 특정할 수 있다. 그 후, 워크북은 특정된 데이터 소스가 서버 데이터 소스로서 노출되는 서버 컴퓨터에 전송된다.
본 발명의 태양에 따르면, 시스템은 또한 서버 데이터 오브젝트로서 워크북 내의 데이터 오브젝트를 노출하기 위하여 서버 프로그램을 실행하도록 동작하는 서버 컴퓨터를 포함한다. 본 명세서에 사용되는 바와 같이, 용어 "데이터 소스" 및 "서버 데이터 소스"는 구체적으로 쿼리가 실행될 수 있는 데이터베이스를 지칭한다. 이 정의는 관계형 데이터베이스("SQL"(Structured Query Language)을 이용하여 구축되고 쿼리될 수 있는 것과 같은), 계층적 데이터베이스(hierarchical databases), 다차원 데이터베이스(OLAP 큐브와 같은), 또는 관계형 및 다차원 데이터베이스의 측면들을 결합하는 데이터베이스("UDM"(United Dimensional Model)과 같은)를 포함한다. 상기 정의는 또한 웹 서비스를 통해 쿼리될 수 있는 데이터베이스를 포함한다. 역시 본 명세서에서 사용되는 바와 같이, "데이터 소스 쿼리"는 SQL 쿼리와 같은 데이터 소스에 관한 쿼리를 의미한다.
워크북 데이터 오브젝트가 노출되면, 클라이언트 어플리케이션은 서버 데이터 소스로서 데이터 오브젝트를 발견하고 이에 연결할 수 있다. 쿼리가 서버 데이 터 소스로서 데이터 오브젝트에 대해 발급될 때, 서버 컴퓨터는 워크북을 재계산하도록 동작한다. 워크북이 다른 데이터 소스의 참조를 포함하면, 워크북을 재계산하는 데에 필요한 데이터는 재계산 이전에 데이터 소스로부터 검색될 수 있다. 워크북이 재계산되면, 서버 컴퓨터는 식별된 데이터 오브젝트의 표현(데이터베이스 표현과 같은)을 형성하도록 동작한다. 이는, 예를 들어 식별된 데이터 오브젝트에 대응하는 임시 데이터베이스 또는 큐브를 형성하는 것을 포함한다.
이 표현이 형성되면, 서버 컴퓨터는 상기 표현에 대해 요청된 쿼리를 실행하도록 동작한다. 쿼리의 결과는 요청하는 클라이언트 어플리케이션 프로그램으로 리턴된다. 이런 식으로, 예를 들어 유저는 워크북을 용이하게 작성하고, 그 데이터 오브젝트가 서버 데이터 소스로서 노출될 수 있는 서버 컴퓨터에 워크북을 공개할 수 있다. OLAP 클라이언트와 같은 데이터베이스 클라이언트 어플리케이션을 이용하는 다른 유저는 워크북에 포함된 데이터 소스를 발견하고 데이터 소스에 대해 네이티브 쿼리(native query)를 발급할 수 있다.
본 발명은 컴퓨터 프로세스, 컴퓨팅 장치, 또는 컴퓨터 프로그램 제품이나 컴퓨터 판독 가능한 매체와 같은 제품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독 가능하며 컴퓨터 프로세스를 실행하기 위한 명령의 컴퓨터 프로그램을 인코딩하는 컴퓨터 기억 매체일 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨팅 시스템에 의해 판독 가능하며 컴퓨터 프로세스를 실행하기 위한 명령의 컴퓨터 프로그램을 인코딩하는 캐리어 상의 전달 신호일 수 있다.
본 발명을 특징짓는 이들 및 다양한 다른 특징과 장점들은 이하의 상세한 설 명을 읽고 관련된 도면을 고찰함으로써 명백해질 것이다.
유사한 도면 부호가 유사한 요소를 나타내는 도면을 참조하여, 본 발명의 다양한 태양을 설명한다. 특히, 도 1 및 대응하는 설명은 본 발명의 실시예가 실현되는 적합한 컴퓨팅 환경을 간단하고 일반적으로 설명하고자 하는 것이다. 본 발명은 개인용 컴퓨터 상의 운영 시스템에서 실행되는 프로그램 모듈과 관련하여 실행되는 프로그램 모듈의 일반적인 컨텍스트에서 기재되지만, 당업자라면 본 발명이 다른 유형의 컴퓨터 시스템 및 프로그램 모듈과 조합하여 실현될 수도 있다는 것을 인식할 것이다.
일반적으로, 프로그램 모듈은 루틴, 프로그램, 구성 요소, 데이터 구조, 및 특정한 작업을 실행하거나 특정 추상 데이터 유형을 구현하는 다른 유형의 구조를 포함한다. 더구나, 당업자라면 휴대용 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래머블 가전 제품, 미니컴퓨터, 메인 프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성으로 실행될 수 있다는 것이 이해될 것이다. 본 발명은 또한 통신망을 통해 링크되는 원격 처리 장치에 의해 태스크가 실행되는 분산 컴퓨팅 환경에서 실행될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 기억 장치 모두에 위치될 수 있다.
도 1을 참조하여, 본 발명의 수개의 실시예에 대한 예시적인 운영 환경이 설명될 것이다. 도 1에 나타낸 바와 같이, 네트워크(10)는 클라이언트 컴퓨터(2) 및 수개의 서버 컴퓨터(12A-12C)를 상호 연결한다. 네트워크(10)는 인터넷과 같은 광 역 네트워크(wide area network) 또는 로컬영역 네트워크(local area network)를 포함하는 임의의 유형의 컴퓨팅 네트워크를 포함할 수 있다는 것을 인식하여야 한다. 네트워크(10)는 클라이언트 컴퓨터(2), 서버 컴퓨터(12A-12C) 및 네트워크(10)에 접속되거나 이를 통해 액세스 가능한 다른 잠재적인 컴퓨터 시스템 간의 통신을 가능하게 하기 위한 매체를 제공한다.
클라이언트 컴퓨터(2)는 하나 이상의 어플리케이션 프로그램을 실행할 수 있는 범용 데스크톱 또는 랩톱 컴퓨터를 포함한다. 특히, 본 발명의 여러 실시예에 따르면, 컴퓨터(2)는 스프레드시트 클라이언트 어플리케이션 (4)을 실행하도록 동작한다. 당업자에게는 잘 알려진 바와 같이, 스프레드시트 클라이언트 어플리케이션 프로그램(4)은 예산안을 형성하고, 재정 예측 및 다른 재정 및 수치 관련 태스크를 실행하기 위한 기능을 제공한다. 이런 기능을 제공하기 위해서, 데이터 값은 셀을 이용하여 조직될 수 있고 셀 간의 관계는 수식을 이용하여 정의될 수 있다. 하나의 셀에 대한 변경은 관련 셀의 변경을 야기한다. 스프레드시트 프로그램은 보통은 텍스트, 수치 및 그래프 특성에 대한 다양한 포맷팅 옵션(formatting option) 및 출력에 대한 그래핑 능력을 제공한다.
본 발명의 실시예에 따르면, 스프레드시트 클라이언트 어플리케이션(4)은 워크북(6)을 형성하도록 이용될 수 있다. 워크북(6)은 하나 이상의 워크시트(워크시트는 본 명세서에서 "스프레드시트"로서도 지칭될 수 있음)를 포함하는 스프레드시트 프로그램에 의해 형성되는 파일이다. 워크시트는 스프레드시트 프로그램 내의 행과 열로 조직화되고 화면 상에 나타나는 단일 페이지이며 하나의 표를 구성하는 데에 이용된다.
워크북(6) 내의 워크시트는 데이터 오브젝트를 포함하는 하나 이상의 범위(ranges)를 포함할 수 있다. 본 명세서에서 정의된 바와 같이, 데이터 오브젝트는 데이터를 기억하는 데에 이용되는 워크시트 내의 임의의 오브젝트를 포함한다. 예를 들어, 데이터 오브젝트는, 셀, 피봇 표, DOE, 목록, 데이터베이스, 및 쿼리 표(이들에 한정하지는 않음)를 포함할 수 있다. 본 명세서에서 더욱 상세히 설명되는 바와 같이, 이들 데이터 오브젝트 각각은 서버(12A)로부터 이용 가능한 서버 데이터 소스로서 노출된다. 워크북 내에서 이용되는 데이터 오브젝트의 다른 유형이 또한 서버 데이터 소스로서 노출될 수 있다.
본 발명의 일 실시예에 따르면, 스프레드시트 클라이언트 어플리케이션(4)은 워싱톤 레드몬드 마이크로소프트 코퍼레이션의 EXCEL 스프레드시트 어플리케이션 프로그램을 포함한다는 것을 인식하여야 한다. 그러나, 본 명세서에 기재된 본 발명의 여러 태양은 다른 제조사로부터의 다른 스프레드시트 어플리케이션 프로그램으로도 이용될 수 있다는 것을 인식하여야 한다. 또한, 본 명세서에 기술된 독창적인 태양이 스프레드시트 어플리케이션 프로그램의 컨텍스트로 제시되었지만, 다른 유형의 어플리케이션 프로그램이 또한 본 발명의 여러 태양을 구현하는 데에 이용될 수 있다는 것을 인식하여야 한다.
본 발명의 다른 실시예에 따르면, 클라이언트 컴퓨터(2)는 OLAP 클라이언트 어플리케이션 프로그램(8)을 실행하도록 동작될 수 있다. OLAP 클라이언트 어플리케이션(8)은 OLAP 데이터 소스로부터의 데이터에 연결되고, 이를 쿼리하고, 이용할 수 있는 어플리케이션 프로그램을 포함한다. 예를 들어, OLAP 클라이언트 어플리케이션(8)은 네트워크(10)를 통해 서버 컴퓨터(12B)에 연결될 수 있다. 서버 컴퓨터(12B)에서 실행되는 데이터베이스 소프트웨어를 통해, OLAP 클라이언트 어플리케이션(8)은 데이터 소스(16)에 대해 쿼리를 발급할 수 있다. 그 후, 서버 컴퓨터(12B)는 OLAP 클라이언트 어플리케이션(8)으로부터 쿼리를 수신하고 이에 응답하도록 동작된다.
이하에서 더욱 상세히 설명하는 바와 같이, OLAP 클라이언트 어플리케이션(8)은 또한 워크북(6)에 대해 쿼리를 발급할 수 있다. 이 기능을 가능하게 하기 위해서, 스프레드시트 클라이언트 어플리케이션(4)은 파일 서버 컴퓨터(12C)에 의해 유지되며 서버 컴퓨터(12A)에 액세스 가능한 리포지토리(repository, 14)에 워크북(6)을 공개할 수 있다. 그 후, 서버 컴퓨터(12A)에서 실행되는 스프레드시트 서버 어플리케이션(13)은 데이터 오브젝트를 포함하는 범위에 대해 워크북(6)을 파싱하고(parse) 이 데이터 오브젝트를 서버 데이터 소스로 노출할 수 있다. OLAP 클라이언트 어플리케이션(8)은 그 후 서버 컴퓨터(12B)에 의해 제공된 것과 같은 전용 OLAP 데이터 소스에 연결되는 방식과 동일하게 스프레드시트 서버 어플리케이션(12A)에 의해 노출된 데이터 소스에 연결될 수 있다. 스프레드시트 클라이언트 어플리케이션(4)은 OLAP 클라이언트 어플리케이션(8)과 동일한 방식으로 데이터 소스로부터의 데이터의 소비자로서 작용할 수 있다는 것을 인식하여야 한다. 컴퓨터(2)는 다른 유형의 데이터베이스로부터의 데이터를 쿼리하고 소비하기 위한 부가의 클라이언트 어플리케이션 프로그램을 실행하도록 동작한다는 것 또한 인식하여야 한다. 대안적인 실시예에서, 상술한 컴퓨터(2)의 기능이 두 컴퓨팅 장치 사이에서 분할될 수 있다는 것 또한 인식하여야 한다. 예를 들어, 하나의 컴퓨팅 장치는 워크북(6)을 공개하기 위해 스프레드시트 어플리케이션(4)을 실행하도록 동작하는 반면 다른 컴퓨팅 장치는 데이터를 소비하기 위해 클라이언트 어플리케이션을 실행하도록 동작할 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "데이터 소스" 및 "서버 데이터 소스"는 구체적으로는 쿼리가 실행될 수 있는 데이터베이스를 지칭한다. 이 정의는 관계형 데이터베이스(SQL 데이터베이스와 같은), 계층적 데이터베이스, 다차원 데이터베이스(OLAP 큐브와 같은), 또는 관계형 및 다차원 데이터베이스의 측면들을 조합하는 데이터베이스(UDM과 같은)를 포함한다. 상기 정의는 또한 웹 서비스를 통해 쿼리될 수 있는 데이터베이스를 포함한다. 역시 본 명세서에서 사용되는 바와 같이 용어 "데이터 소스 쿼리"는 SQL 쿼리와 같은 데이터 소스에 대한 쿼리를 의미한다.
스프레드시트 서버 어플리케이션(13)은 디스플레이 화면(헤드리스)을 이용하지 않고 실행할 수 있는 서버 기반 어플리케이션 프로그램을 포함한다. 스프레드시트 서버 어플리케이션(13)은 서버 컴퓨터 상에 스프레드시트 클라이언트 어플리케이션(4)의 많은 기능을 실행하도록 동작한다. 예를 들어, 스프레드시트 서버 어플리케이션(13)은 워크북(6)을 로드하고 계산할 수 있다. 본 명세서에 기술된 바와 같이, 스프레드시트 서버 어플리케이션(13)은 또한 네트워크(10)를 통하여 호환 가능한 클라이언트에 워크북(6) 내의 범위를 노출하기 위한 기능을 제공한다. 스 프레드시트 클라이언트 어플리케이션(4) 및 스프레드시트 서버 어플리케이션(13)에 의해 실행되는 여러 기능에 관한 부가의 설명은 도 2 내지 도 5를 참조하여 이하에 제공될 것이다.
이제, 도 2를 참조하면, 본 발명의 여러 실시예에서 이용되는 컴퓨터(2)에 대한 예시적인 컴퓨터 아키텍처를 설명한다. 도 2에 나타낸 컴퓨터 아키텍처는 중앙 프로세싱 유닛(5)("CPU"), 랜덤 액세스 메모리(9)("RAM") 및 리드 온리 메모리(11)("ROM")를 포함하는 시스템 메모리(7), 및 메모리를 CPU(5)에 연결하는 시스템 버스(12)를 포함하는, 종래의 데스크톱이나 랩톱 컴퓨터를 설명한다. 스타트업(startup)동안과 같이, 컴퓨터 내의 요소 간에 정보를 전달하는 것을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템은 ROM(11)에 기억된다. 컴퓨터(2)는 이하에서 더욱 상세히 설명되는 오퍼레이팅 시스템(18), 어플리케이션 프로그램, 및 다른 프로그램 모듈을 저장하기 위한 매스 기억 장치(mass storage device, 24)를 더 포함한다.
매스 기억 장치(24)는 버스(12)에 연결된 매스 기억 컨트롤러(도시 생략)를 통해 CPU(5)에 연결된다. 매스 기억 장치(24) 및 그의 관련된 컴퓨터 판독 가능 매체는 컴퓨터(2)에 비휘발성 기억장치를 제공한다. 본 명세서에 포함된 컴퓨터 판독 가능 매체의 설명이 하드 디스크 또는 CD-ROM 드라이브와 같은 매스 기억 장치를 지칭하지만, 당업자라면 컴퓨터 판독 가능 매체는 컴퓨터(2)에 의해 액세스될 수 있는 임의의 유용한 매체일 수 있다는 것을 인식하여야 한다.
제한이 아닌, 예로서, 컴퓨터 판독 가능 매체는 컴퓨터 기억 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 기억 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈이나 다른 데이터와 같은 정보의 기억을 위한 방법이나 기술로 실현되는 휘발성 및 비휘발성, 착탈 가능 및 착탈 불가능 매체를 포함한다. 컴퓨터 기억 매체는, 이들로 제한되지 않는 RAM, ROM, EPROM, EEPROM, 플래시 메모리, 또는 다른 고상 메모리 기술, CD-ROM, 디지털 다기능 디스크("DVD"), 또는 다른 광 기억장치, 자기 카세트, 자기 테이프, 자기 디스크 기억장치나 다른 자기 기억 장치, 또는 원하는 정보를 기억하는 데에 이용될 수 있으며 컴퓨터(2)에 의해 액세스될 수 있는 다른 매체를 포함한다.
본 발명의 여러 실시예에 따르면, 컴퓨터(2)는 인터넷과 같은 네트워크(10)를 통해 원격 컴퓨터에의 논리적 접속을 이용하는 네트워크 환경에서 동작할 수 있다. 컴퓨터(2)는 버스(12)에 연결된 네트워크 인터페이스 유닛(20)을 통해 네트워크(10)에 연결될 수 있다. 네트워크 인터페이스 유닛(20)은 다른 유형의 네트워크 및 원격 컴퓨터 시스템에 연결되도록 이용될 수도 있다는 것이 이해되어야 한다. 컴퓨터(2)는 또한 키보드, 마우스, 또는 전자 스타일러스(도 2에는 도시하지 않음)를 포함하는 다수의 다른 장치로부터 입력을 수신하고 처리하기 위한 입/출력 컨트롤러(22)를 포함할 수 있다. 유사하게, 입/출력 컨트롤러(22)는 디스플레이 화면, 프린터, 또는 다른 유형의 출력 장치에 출력을 제공한다.
위에서 간단히 언급한 바와 같이, 다수의 프로그램 모듈 및 데이터 파일은 워싱턴 레드몬드 소재의 마이크로소프트 코퍼레이션의 WINDOW XP 오퍼레이팅 시스템과 같이, 네트워크된 개인용 컴퓨터의 운영을 제어하는 데에 적합한 오퍼레이팅 시스템(18)을 포함하는, 컴퓨터(2)의 매스 기억 장치(24) 및 RAM(9)에 기억될 수 있다. 매스 기억 장치(24) 및 RAM(9)은 또한 하나 이상의 프로그램 모듈을 기억할 수 있다. 특히, 매스 기억 장치(24) 및 RAM(9)은, 상술한 바와 같이, 스프레드시트 클라이언트 어플리케이션(4) 및 OLAP 클라이언트 어플리케이션(8)을 기억할 수 있다. 매스 기억 장치(24) 및 RAM(9)은 또한 스프레드시트 클라이언트 어플리케이션(4)에 의해 형성된 워크북(6)을 기억할 수 있다.
본 발명의 일 실시예에 따르면, 스프레드시트 어플리케이션 프로그램(4)은 워크북 내에 포함된 데이터 오브젝트의 각각에 대하여 메타데이터(26)를 형성하도록 동작한다. 메타데이터(26)는 스프레드시트 클라이언트 어플리케이션(4)에 의해 자동으로 형성되거나 유저에 의해 수동으로 생성될 수 있다. 메타데이터(26)는 워크북(6) 내에 기억되고 워크북으로 저장될 수 있다. 메타데이터(26)는 서버 데이터 소스로서 워크북 내의 데이터 오브젝트를 액세스하려는 요청을 수신하고 응답할 때 서버 컴퓨터(12A)에 의해 이용될 수 있다. 일 예로, 스프레드시트 어플리케이션 프로그램(10)은 "ZIP CODE"로 명명된 워크북 내의 필드에 대해 메타데이터(26)를 형성한다. 메타데이터(26)는 필드의 이름을 나타내며 숫자로서 필드에 대한 데이터 유형을 설정할 수 있다. 메타데이터(26)는 또한 필드에 대한 디폴트 집계(default aggregation)이 "합"인 것을 나타낼 수 있다. 이 프로세스는 데이터 소스가 형성될 때, 데이터 소스가 공개될 때, 또는 메타데이터를 형성하려는 유저의 요청에 응답하여, 스프레드시트 어플리케이션 프로그램(4)에 의해 자동으로 실행될 수 있다.
본 발명의 실시예에서, 스프레드시트 클라이언트 어플리케이션 프로그램(4)은 워크북(6)에 포함된 데이터 오브젝트에 대하여 스프레드시트 어플리케이션 프로그램(4)에 의해 형성된 메타데이터(26)를 유저가 편집할 수 있게 하기 위한 기능을 제공하도록 동작하는 것을 인식해야 한다. 예를 들어, 상기의 예를 이용하여, 유저는 이를 ZIP 코드(zip code)의 합을 생성하는 데에 부적당하다고 간주할 수 있다. 따라서, 유저는 스프레드시트 클라이언트 어플리케이션(4)에 의해 제공된 기능을 이용하여 "ZIP CODE" 필드에 대한 디폴트 집계가 합이 아니라, 카운트(count)인 것을 나타내도록 메타데이터(26)를 편집할 수 있다. 그 후, 수정된 메타데이터(26)는 워크북(6)에 지속되고 서버 컴퓨터(12A)에 공개될 수 있다. 이러한 방식으로, 서버 컴퓨터(12A)는 이 필드에 포함된 데이터에 대한 데이터 소스 요청에 잘 응답할 수 있다. 스프레드시트 클라이언트 어플리케이션(4)에 의해 워크북 내의 데이터 오브젝트에 대해 형성된 메타데이터(26)를 편집하기 위한 예시적인 유저 인터페이스를 도 4를 참조하여 이하에서 더욱 상세히 설명한다.
서버 컴퓨터(12A-12C)는 도 2에서 도시되고 상술된 종래의 많은 컴퓨팅 구성 요소를 포함할 수 있다는 것이 이해되어야 한다. 부가하여, 서버 컴퓨터(12A)는 스프레드시트 서버 어플리케이션(13)을 기억하고 실행하도록 동작될 수 있다. 파일 서버 컴퓨터(12C)는, 워크북(6)과 같은 리포지토리(14)에 기억된 파일의 요청을 수신 및 응답하기 위한 파일 서버 어플리케이션(28)을 기억하고 실행하도록 동작될 수 있다. 서버 컴퓨터(12A-12C)는 도 2에는 도시되지는 않았지만 당업자에게 잘 알려진 다른 종래의 구성 요소를 포함할 수 있다는 점이 이해되어야 한다.
이제 도 3을 참조하면, 서버 데이터 소스로서 워크북 범위를 공개하기 위해 스프레드시트 클라이언트 어플리케이션 프로그램(4)에 의해 실행되는 프로세스를 설명하는 예시적인 루틴(300)을 기술한다. 본 명세서에 제시된 루틴에 대한 설명을 읽게 되면, 본 발명의 여러 실시예의 논리적 연산은 (1) 컴퓨팅 시스템에서 실행되는 컴퓨터 실행 동작이나 프로그램 모듈의 시퀀스 및/또는 (2) 컴퓨팅 시스템 내의 상호 연결된 머신 논리 회로 또는 회로 모듈로서 구현된다는 것이 이해될 것이다. 이 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 조건에 따라 선택적인 것이다. 따라서, 도 3 및 도 5에 도시되며, 본 명세서에 개시된 본 발명의 실시예를 구성하는 논리적 연산(logical operations)은 연산, 구조적 장치, 동작 또는 모듈로서 다양하게 지칭된다. 당업자라면 본 명세서에 개시된 특허청구범위 내에서 언급된 본 발명의 사상 및 범주에서 벗어남이 없이 이들 연산, 구조적 장치, 동작 및 모듈은 소프트웨어, 펌웨어, 특별한 목적의 디지털 로직 및 이들의 임의의 조합으로 실현될 수 있다는 것이 이해될 것이다.
루틴(300)은 연산(302)에서 시작하는데, 여기에서 유저는 스프레드시트 클라이언트 어플리케이션(4)을 이용하여 워크북(6)을 작성한다. 특히, 본 명세서에 기재된 바와 같이, 유저는 스프레드시트 클라이언트 어플리케이션(4)에 의해 제공된 여러 기능을 이용하여 셀의 범위, 피봇 표, DOE, 목록, 데이터베이스, 쿼리 표, 및 다른 데이터 오브젝트를 포함하는 데이터 오브젝트를 워크북 내에 형성한다. 유저는 또한 데이터 소스(16)의 워크북(6) 내에 데이터를 수동으로 입력하거나 쿼리를 형성할 수 있다. 스프레드시트 클라이언트 어플리케이션 프로그램(4) 내에서 이용 되어 워크북(6)을 생성할 수 있는 여러 기능 및 방법들은 실제로 제한적이지 않은 것으로 당업자에게는 잘 알려져 있다.
연산(302)으로부터, 루틴(300)은 연산(304)으로 이어져, 여기에서 스프레드시트 클라이언트 어플리케이션(4)이 데이터 소스로서 워크북(6)을 액세스하려는 요청에 응답할 때 서버 어플리케이션(13)에 의해 이용할 메타데이터(26)를 형성한다. 특히, 스프레드시트 클라이언트 어플리케이션 프로그램(4)은 워크북(6) 내에 포함되는 여러 데이터 소스를 분석하여 워크북(6) 내의 여러 데이터 소스를 설명하는 데에 이용될 수 있는 데이터를 식별할 수 있다. 예를 들어, 관계 데이터 소스에 관하여, 스프레드시트 클라이언트 어플리케이션(4)은 워크북(6)에 포함되는 데이터 소스의 여러 데이터 유형 및 열(column)의 이름을 식별할 수 있다. 다차원의 데이터 소스에 대해서는, 스프레드시트 클라이언트 어플리케이션(4)은 여러 데이터 소스에 대한 측정치, 계층 구조, 및 디폴트 집계를 식별할 수 있다.
이들 속성의 값은 또한 스프레드시트 클라이언트 어플리케이션(4)에 의해 지능적으로 설정될 수 있다. 예를 들어, 스트링 데이터 필드에 관련하여, 스프레드시트 클라이언트 어플리케이션(4)은 디폴트 집계를 카운트로서 지시할 수 있다. 수치 데이터 필드에 관련해서는, 스프레드시트 클라이언트 어플리케이션(4)은 디폴트 집계를 합인 것으로 설정할 수 있다. 스프레드시트 클라이언트 어플리케이션(4)에 의해 다른 유형의 지능적 판정이 행해져 워크북(6) 내의 메타데이터를 식별하고 이 메타데이터의 속성을 설정할 수 있다.
루틴(300)은 연산(304)으로부터 연산(306)으로 이어져, 여기에서 스프레드시 트 클라이언트 어플리케이션(4)은 유저가 스프레드시트 클라이언트 어플리케이션(4)에 의해 생성된 메타데이터를 편집하려는 요청을 행했는지를 판정한다. 위에서 간단히 설명한 바와 같이, 스프레드시트 클라이언트 어플리케이션(4)은 형성된 메타데이터를 편집하기 위한 유저 인터페이스를 제공한다. 이는, 예를 들어, 워크북(6) 내의 메타데이터를 식별하고 메타데이터에 여러 속성을 설정할 때 스프레드시트 클라이언트 어플리케이션(4)에 의해 행해진 지능적 결정을 유저가 오버라이드(override)하도록 하는 데에 유용할 수 있다.
연산(306)에서, 스프레드시트 클라이언트 어플리케이션(4)이 메타데이터를 편집하기 위한 요청이 수신된 것으로 판정하면, 루틴(300)은 연산(308)으로 분기된다. 연산(308)에서, 스프레드시트 클라이언트 어플리케이션(4)은 유저로부터 편집된 메타데이터를 수신한다. 유저가 메타데이터를 편집하는 것을 가능하게 하는 예시적인 유저 인터페이스가 도 4와 관련하여 이하에 더욱 상세히 설명된다. 루틴(300)은 연산(308)으로부터 연산(310)으로 이어진다.
연산(306)에서, 스프레드시트 클라이언트 어플리케이션(4)이 메타데이터를 편집하려는 요청이 수신되지 않는 것으로 판정하면, 루틴(300)은 연산(310)으로 이어진다. 연산(310)에서, 스프레드시트 클라이언트 어플리케이션(4)에 의해 형성되고, 유저에 의해 잠재적으로 편집되는 메타데이터(26)는 워크북(6)으로 저장된다. 워크북(6)의 저장은 자동으로 발생하거나 유저 요청에 응답하여 발생할 수 있다.
연산(310)으로부터, 루틴(300)은 연산(312)으로 이어지고, 여기에서, 메타데이터(26)를 포함하는 워크북(6)이 스프레드시트 서버 어플리케이션(13)에 공개된 다. 워크북(6)의 공개(publication)는 유저 명령에 응답하여 발생하거나 자동으로 발생할 수 있다. 예를 들어, 워크북(6)의 공개는 서버 컴퓨터(12A)에 스프레드시트를 업로딩하거나 스프레드시트를 프로그램으로 형성하고 이를 서버 어플리케이션 프로그램 인터페이스("API")를 통해 서버 컴퓨터(12A)에 보내는 것을 포함한다. 워크북(6)이 스프레드시트 서버 어플리케이션 프로그램(13)에 공개된 때, 워크북(6)은 리포지토리(14)에 기억된다. 스프레드시트 서버 어플리케이션(13)에는 워크북(6)의 존재가 또한 통지되고 워크북에 포함된 여러 데이터 오브젝트는 그후 서버 데이터 소스로서 공개될 수 있다. 워크북(6) 내의 여러 데이터 오브젝트 중에서 어느 것이 데이터 소스로서 스프레드시트 서버 어플리케이션(13)에 의해 노출되는지를 유저가 특정하는 것이 가능하다는 것을 인식하여야 한다. 대안적으로, 워크북(6) 내의 모든 데이터 오브젝트가 데이터 오브젝트로서 노출될 수 있거나 워크북(6) 내의 어떤 데이터 오브젝트도 데이터 소스로서 노출되지 않는 것을 유저가 나타내는 것이 가능할 수 있다.
워크북(6)이 리포지토리(14)에 전달되어 스프레드시트 서버 어플리케이션(13)에 의해 분석되면, OLAP 클라이언트 어플리케이션 프로그램(8) 또는 스프레드시트 클라이언트 어플리케이션(4)과 같은 데이터베이스 클라이언트 어플리케이션은 데이터 소스로서 워크북(6)의 컨텐츠를 쿼리하는 데에 이용될 수 있다. 데이터 소스로서 워크북(6)의 컨텐츠를 노출하고 데이터 소스 쿼리 요청을 수신하고 이에 응답하기 위해서 스프레드시트 서버 어플리케이션(13)에 의해 실행되는 여러 기능에 관한 부가의 설명을 도 5를 참조하여 이하에 더 상세히 기술한다. 루틴(300)은 연 산(312)에서 연산(314)으로 이어지고, 여기에서 종료된다.
이제, 도 4를 참조하면, 워크북(6) 내에 포함되는 여러 데이터 소스에 대해 스프레드시트 클라이언트 어플리케이션 프로그램(4)에 의해 형성되는 메타데이터를 유저가 편집할 수 있게 하는 예시적인 유저 인터페이스를 설명한다. 도 4는 메타데이터를 편집하기 위한 다수의 유저 인터페이스 구성 요소를 포함하는 유저 인터페이스 윈도우(window, 30)를 나타낸다. 특히, 워크북(6)에 포함된 데이터 소스에 대해 유용한 필드(34A-34N)의 각각을 목록화한 목록 박스(32)를 제공한다. 여러 필드(34A-34N) 간의 관계는 스프레드시트 클라이언트 어플리케이션(4)에 의해 식별된 여러 필드 간의 관계를 나타내도록 목록 박스(32) 내에서 설명될 수 있다. 예를 들어, 도 4에서 나타낸 바와 같이, 시간(TIME), 년도(YEAR), 월(MONTH) 및 날짜(DATE) 필드가 여러 필드 간에 계층 구조를 나타내도록 서로 들여쓰기될 수 있다.
수개의 유저 인터페이스 버튼(36A-36F)은 또한 유저가 목록 박스(32)에서 나타낸 필드(34A-34N)의 순서와 계층 구조를 배열할 수 있도록 제공될 수도 있다. 예를 들어, 유저 인터페이스 버튼(36A-36D)은 유저가 여러 필드를 각각 상측(UP), 하측(DOWN), 우측(RIGHT), 또는 좌측(LEFT)으로 각각 배열할 수 있게 한다. 유저 인터페이스 버튼(36E)은 필드(34A-34N) 중 하나를 카피하는 데에 이용될 수 있으며 유저 인터페이스 버튼(36F)은 새로운 데이터 필드를 형성하는 데에 이용될 수 있다.
도 4에 또한 나타낸 바와 같이, 목록 박스(32)에서 식별된 필드 중 하나는 유저에 의해 선택될 수 있고 이 필드의 속성이 유저 인터페이스 윈도우(30)에 나타 날 수 있다. 예를 들어, 도 4에 나타낸 바와 같이, ZIP 코드를 나타내는 필드(34N)가 선택된다. 따라서, 필드 이름(FIELD NAME)이 텍스트(38)를 이용하여 표시된다. 스프레드시트 클라이언트 어플리케이션(4)에 의해 ZIP 코드 필드에 할당된 데이터 유형(DATA TYPE) 및 집계(AGGREGATION)가 또한 나타난다. 예를 들어, 숫자에서 스트링으로 데이터 유형의 속성을 변경하기 위한 드롭다운 메뉴(40A)가 제공될 수 있다. 유사하게, 유저가 집계 필드의 값을 합에서 카운트로 변경할 수 있게 하기 위한 드롭다운 메뉴(40B)가 제공될 수 있다. 다른 유형의 편집 동작은 도 4에 도시되며 본 명세서에서 설명되고 있는 것 이외의 유저 인터페이스 윈도우(30)를 통해 가능하다는 것이 이해되어야 한다. 유저가 편집을 완료했을 때, 수정을 지속하도록 버튼(42)을 선택하거나 변경을 취소하도록 버튼(44)을 선택할 수 있다.
이제, 도 5를 참조하여, 데이터 소스로서 워크북에 대한 요청을 수신하고 응답하기 위한 스프레드시트 서버 어플리케이션(13)의 연산을 설명하는 설명적 루틴(500)을 기재한다. 루틴(500)은 연산(502)에서 시작하고, 여기에서 스프레드시트 서버 어플리케이션(13)은 서버 데이터 소스로서 리포지토리(14) 내에 포함된 워크북의 여러 범위를 노출한다. 본 발명의 일 실시예에 따르면, 참조로서 여기에 명시적으로 포함된, "데이터 소스를 발견하고 이에 연결하기 위한 방법, 시스템 및 장치"(Method, System, and Apparatus for Discovering and Connecting to Data Sources)의 명칭으로 동시에 출원된 미국 특허 출원(대리인 관리 번호 60001.0338US01)에 기술된 것과 같은 데이터 연결 관리자(data connection manager)를 통해 데이터 소스가 노출된다. 대안적으로, 리포지토리(14) 내에 기억 된 워크북 내에 포함된 데이터 소스는, UDM과 같은, 다른 유형의 분석 서버 인터페이스를 이용하여 노출될 수 있다. 스프레드시트 서버 어플리케이션(13)이 여러 데이터 소스를 노출하면, OLAP 클라이언트 어플리케이션(8) 또는 스프레드시트 클라이언트 어플리케이션(4) 등의 클라이언트 어플리케이션은 소스를 발견하고 여러 데이터 소스를 쿼리하는 요청을 발급할 수 있다.
루틴(500)은 연산(502)에서 연산(504)으로 이어지고, 여기에서 스프레드시트 서버 어플리케이션(13)은 서버 데이터 소스로서 워크북에 연결되는 요청을 수신한다. 예를 들어, 연산(506)에서, 스프레드시트 서버 어플리케이션(13)은 워크북의 범위 내에 포함되는 데이터 오브젝트에 대해 네이티브 쿼리를 수신할 수 있다. 예를 들어, OLAP 클라이언트 어플리케이션은 스프레드시트 서버 어플리케이션(13)에 대해 네이티브 OLAP 쿼리를 발급할 수 있다. 대안적으로, ODB, ODBC, XML-A 및 SQL 쿼리와 같은 다른 유형의 쿼리가 스프레드시트 서버 어플리케이션(13)에 발급될 수 있다. 당업자에게 잘 알려진 데이터베이스를 쿼리하기 위한 다른 유형의 표준이 또한 이용될 수도 있다.
연산(508)에서, 스프레드시트 서버 어플리케이션(13)은 쿼리가 향하는 데이터 소스를 포함하는 워크북(6)을 로드한다. 워크북(6)이 스프레드시트 서버 어플리케이션(13)에 의해 로드되면, 루틴(500)은 연산(510)으로 이어지고, 여기에서 스프레드시트 서버 어플리케이션 프로그램(13)은 워크북(6)이 다른 데이터 소스의 참조를 포함하는지 여부를 판정한다. 예를 들어, 위에서 간단히 기술한 바와 같이, 워크북은 데이터 소스(16)와 같은 데이터 소스의 참조를 포함할 수 있다.
워크북(6)이 다른 데이터 소스의 참조를 포함하면, 루틴(500)은 연산(512)으로 분기되고, 여기에서 스프레드시트 서버 어플리케이션(13)은 워크북(6)을 계산하는 데에 필요한 데이터에 대한 데이터 소스(16)를 쿼리한다. 이 데이터가 스프레드시트 서버 어플리케이션(13)에 의해 수신되면, 워크북(6)은 수신된 데이터로 업데이트된다.
연산(510)에서, 워크북(6)이 다른 데이터 소스의 참조를 포함하지 않는다고 판정하면, 루틴(500)은 연산(514)으로 이어진다. 연산(514)에서, 스프레드시트 서버 어플리케이션(13)은 워크북(6)의 컨텐츠를 재계산한다. 워크북의 컨텐츠의 재계산은 "big value-add"일 수 있다는 것을 인식할 것이다. "big value-add"는 서버 데이터 소스에서 스프레드시트 계산을 가능하게 한다. 루틴(500)은 연산(514)에서 연산(516)으로 이어지고, 여기에서 스프레드시트 서버 어플리케이션(13)은 재계산된 워크북의 데이터베이스 표현을 형성한다. 특히, 관계형 데이터베이스 또는 OLAP 큐브와 같은 임시 데이터베이스 표현이 스프레드시트 서버 어플리케이션(13)에 의해 형성된다. 데이터베이스 표현은 식별된 데이터 소스에 대해 요청된 쿼리를 실행하기 위해서 임시로 형성된다.
요청된 워크북의 데이터베이스 표현이 형성되면, 루틴(500)은 연산(518)으로 이어지고, 여기에서 스프레드시트 서버 어플리케이션(13)은 재계산된 워크북의 데이터베이스 표현에 대해 요청된 쿼리를 실행한다. 쿼리의 실행에 응답하여, 클라이언트 어플리케이션으로부터 수신된 초기 쿼리를 만족하는 쿼리 결과가 형성된다. 루틴(500)은 연산(518)으로부터, 연산(520)으로 이어지고, 여기에서 스프레드시트 서버 어플리케이션(13)은 식별된 쿼리 결과로 원래의 쿼리 요청에 응답하게 된다. 루틴(500)은 연산(520)에서 연산(522)으로 이어지고, 여기에서 종료된다.
전술한 바에 기초하여, 본 발명의 여러 실시예들은 서버 데이터 소스로서 워크북 내의 범위를 노출하고 이용하기 위한 방법, 시스템, 장치 및 컴퓨터 판독 가능 매체를 포함한다는 것을 인식하여야 한다. 전술한 상세 사항, 예 및 데이터는 본 발명의 구성의 제조 및 이용을 완전히 설명하기 위한 것이다. 본 발명의 많은 실시예들은 본 발명의 사상 및 범주로부터 벗어남이 없이 이루어질 수 있기 때문에, 본 발명은 이하에 첨부된 특허청구범위 내에 포함된다.
본 발명에 따르면, 서버 데이터 소스로서 워크북 내의 범위를 노출함으로써, 서버 데이터 소스에 연결되고 이를 쿼리할 수 있는 어플리케이션 프로그램에 의해 워크북의 컨텐츠에 대한 구조적 액세스를 용이하게 가질 수 있다. 또한, 워크북이 공개될 때 워크북 범위가 서버 데이터 소스로서 노출되므로, 스프레드시트 어플리케이션 프로그램을 운영할 수 있는 유저라면 엔터프라이즈 레벨 데이터 소스를 용이하게 형성할 수 있다.

Claims (20)

  1. 서버 데이터 소스로서 워크북의 데이터 오브젝트들을 노출하기 위한 방법으로서,
    자동으로 상기 워크북 내의 상기 데이터 오브젝트들에 대한 메타데이터를 식별하고 상기 식별된 메타데이터에 대한 속성들을 설정함으로써 상기 데이터 오브젝트들에 대한 메타데이터를 생성하는 단계 - 상기 메타데이터는 서버 데이터 소스로서 상기 워크북 내에 저장된 상기 데이터 오브젝트들에 대한 요청들에 응하여 제1 서버 컴퓨터에 의해 이용되고, 상기 서버 데이터 소스는 다차원 데이터베이스를 포함하고, 상기 메타데이터를 식별하는 것은 데이터 유형들, 측정치들(measures), 계층 구조, 및 디폴트 집계들을 식별하기 위해 상기 데이터 오브젝트들을 분석하는 것을 포함하며, 상기 속성들을 설정하는 것은 상기 메타데이터 내의 스트링 데이터 필드에 대한 카운트로서 제1 디폴트 집계를 나타내고 상기 메타데이터 내의 수치 데이터 필드에 대한 합으로서 제2 디폴트 집계를 설정하는 것을 포함함 - ;
    상기 워크북 및 상기 메타데이터를 상기 제1 서버 컴퓨터에 공개하는 단계 - 상기 공개하는 단계는 스프레드시트를 프로그램적으로 생성하는 단계 및 상기 스프레드시트를 서버 어플리케이션 프로그램 인터페이스를 통하여 상기 제1 서버 컴퓨터에 송신하는 단계를 포함하고, 상기 워크북은 상기 제1 서버 컴퓨터 상에서 실행되는 스프레드시트 서버 어플리케이션에 의해 상기 데이터 오브젝트들을 포함하는 범위들에 대하여 파싱되며, 상기 데이터 오브젝트들 중 유저 특정 데이터 오브젝트들이 서버 데이터 소스들로서 상기 제1 서버 컴퓨터에서 노출됨 - ; 및
    제2 서버 컴퓨터에 의해 제공된 전용 OLAP 데이터 소스에 연결하는 방식과 동일하게 서버 데이터 소스들로서 상기 제1 서버 컴퓨터에서 노출된 상기 유저 특정 데이터 오브젝트들에 연결하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 데이터 오브젝트들에 대한 상기 메타데이터를 편집하려는 유저로부터의 요청을 수신하는 단계;
    상기 메타데이터를 편집하려는 요청에 응하여, 유저가 상기 메타데이터를 편집하도록 하는 기능을 제공하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 메타데이터는 편집 가능한 것인 방법.
  4. 서버 데이터 소스로서 워크북 내의 데이터 오브젝트들을 노출하고 이용하기 위한 방법으로서,
    자동으로 상기 워크북 내의 상기 데이터 오브젝트들에 대한 메타데이터를 식별하고 상기 식별된 메타데이터에 대한 속성들을 설정함으로써 상기 데이터 오브젝트들에 대한 메타데이터를 생성하는 단계 - 상기 메타데이터는 서버 데이터 소스로서 상기 워크북 내에 저장된 상기 데이터 오브젝트들에 대한 요청들에 응하여 제1 서버 컴퓨터에 의해 이용되고, 상기 서버 데이터 소스는 다차원 데이터베이스를 포함하고, 상기 메타데이터의 식별은 데이터 유형들, 측정치들, 계층 구조, 및 디폴트 집계들을 식별하기 위해 상기 데이터 오브젝트들을 분석하는 것을 포함하며, 상기 속성들의 설정은 상기 메타데이터 내의 스트링 데이터 필드에 대한 카운트로서 제1 디폴트 집계를 나타내고 상기 메타데이터 내의 수치 데이터 필드에 대한 합으로서 제2 디폴트 집계를 설정하는 것을 포함함 - ;
    상기 워크북 및 상기 메타데이터를 상기 제1 서버 컴퓨터에 공개하는 단계 - 상기 워크북은 상기 제1 서버 컴퓨터 상에서 실행되는 스프레드시트 서버 어플리케이션에 의해 상기 데이터 오브젝트들을 포함하는 범위들에 대하여 파싱됨 - ;
    서버 데이터 소스들로서 상기 데이터 오브젝트들을 노출하는 단계;
    제2 서버 컴퓨터에 의해 제공된 전용 OLAP 데이터 소스에 연결하는 방식과 동일하게 서버 데이터 소스들로서 상기 제1 서버 컴퓨터에서 노출된 상기 데이터 오브젝트들에 연결하는 단계;
    상기 데이터 오브젝트들 중 한 데이터 오브젝트 내에 포함된 데이터를 참조하는 데이터 소스 쿼리를 상기 제1 서버 컴퓨터에서 수신하는 단계;
    상기 데이터 소스 쿼리를 수신하는 단계에 응하여, 상기 워크북을 로딩하고, 상기 데이터 오브젝트들의 값을 계산하는 것을 포함하여 상기 워크북을 계산하는 단계;
    상기 메타데이터를 이용하여 상기 데이터 오브젝트들의 임시 데이터베이스 표현을 생성하는 단계 - 상기 임시 데이터 베이스 표현은 OLAP 큐브를 포함함 - ;
    쿼리 결과를 형성하도록 상기 데이터 오브젝트들의 상기 데이터베이스 표현에 대하여 상기 데이터 소스 쿼리를 실행하는 단계; 및
    상기 쿼리 결과로 상기 쿼리에 응답하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 워크북을 계산하는 단계 전에,
    상기 워크북이 데이터 소스에 대한 참조를 포함하는지를 판정하는 단계;
    상기 워크북이 데이터 소스에 대한 참조를 포함한다고 판정한 것에 응답하여, 상기 워크북을 계산하는 데에 필요한 데이터를 상기 데이터 소스로부터 검색하는 단계; 및
    상기 데이터 소스로부터 검색된 데이터를 고려하여 상기 데이터 오브젝트들의 값을 계산하는 단계를 포함하여, 상기 워크북을 계산하는 단계
    를 더 포함하는 방법.
  6. 서버 데이터 소스로서 워크북 내의 데이터 오브젝트들을 노출하고 이용하기 위한 시스템으로서,
    데이터 오브젝트들을 갖는 워크북을 작성하기 위하여 스프레드시트 어플리케이션 프로그램을 실행하도록 동작하는 클라이언트 컴퓨터 - 상기 스프레드시트 어플리케이션 프로그램은 서버 어플리케이션에 의해 이용되는 메타데이터를 생성하고 상기 워크북을 제1 서버 컴퓨터에 공개하고, 상기 공개하는 것은 스프레드시트를 프로그램적으로 생성하는 것을 포함하고, 상기 스프레드시트 어플리케이션 프로그램은 자동으로 상기 워크북 내의 상기 데이터 오브젝트들에 대한 메타데이터를 식별하고 상기 식별된 메타데이터에 대한 속성들을 설정함으로써 상기 데이터 오브젝트들에 대한 메타데이터를 생성하도록 더 구성되고, 상기 메타데이터는 서버 데이터 소스로서 상기 워크북 내에 저장된 데이터 오브젝트들에 대한 요청들에 응하여 서버 컴퓨터에 의해 이용되고, 상기 서버 데이터 소스는 다차원 데이터베이스를 포함하고, 상기 메타데이터의 식별은 데이터 유형들, 측정치들, 계층 구조, 및 디폴트 집계들을 식별하기 위해 상기 데이터 오브젝트들을 분석하는 것을 포함하며, 상기 속성들의 설정은 상기 메타데이터 내의 스트링 데이터 필드에 대한 카운트로서 제1 디폴트 집계를 나타내고 상기 메타데이터 내의 수치 데이터 필드에 대한 합으로서 제2 디폴트 집계를 설정하는 것을 포함하고, 상기 스프레드시트 어플리케이션은 제2 서버 컴퓨터에 의해 제공된 전용 OLAP 데이터 소스에 연결하는 방식과 동일하게 서버 데이터 소스들로서 상기 제1 서버 컴퓨터에서 노출된 상기 데이터 오브젝트들에 연결하도록 더 구성됨 - ; 및
    서버 어플리케이션 프로그램 인터페이스를 통해 상기 클라이언트 컴퓨터로부터 상기 스프레드시트를 수신하고, 상기 데이터 오브젝트들을 포함하는 범위들에 대하여 상기 워크북을 파싱하고, 서버 데이터 소스들로서 상기 워크북 내에 포함된 데이터 오브젝트들 중에서 유저 특정 오브젝트들을 노출하고 상기 서버 데이터 소스들에 보내지는 쿼리 요청들을 수신하고 이에 응답하기 위하여 서버 프로그램을 실행하도록 구성된 상기 제1 서버 컴퓨터
    를 포함하는 시스템.
  7. 제6항에 있어서,
    상기 스프레드시트 어플리케이션 프로그램은 유저가 상기 메타데이터를 편집할 수 있게 하는 기능을 제공하도록 더 구성되는 시스템.
  8. 제7항에 있어서,
    서버 데이터 소스에 대하여 쿼리를 발급하기 위하여 어플리케이션 프로그램을 실행하도록 구성된 제2 클라이언트 컴퓨터를 더 포함하고, 상기 서버 프로그램은 상기 제2 클라이언트 컴퓨터로부터 상기 서버 데이터 소스로의 데이터베이스 쿼리를 수신하고 이에 응답하도록 더 구성되는 시스템.
  9. 제8항에 있어서,
    상기 제2 클라이언트 컴퓨터로부터의 데이터베이스 쿼리에 응답하는 것은,
    상기 워크북을 재계산하는 단계;
    상기 재계산된 워크북의 임시 데이터베이스 표현을 생성하는 단계 - 상기 임시 데이터베이스 표현은 OLAP 큐브를 포함함 - ;
    쿼리 결과를 취득하도록 상기 재계산된 워크북의 상기 데이터베이스 표현에 대하여 상기 데이터베이스 쿼리를 실행하는 단계; 및
    상기 데이터베이스 쿼리에 대한 응답으로서 상기 쿼리 결과를 상기 제2 클라이언트 컴퓨터에 전송하는 단계
    를 포함하는 시스템.
  10. 제9항에 있어서,
    상기 제2 클라이언트 컴퓨터로부터의 데이터베이스 쿼리에 응답하는 것은,
    상기 워크북이 데이터 소스에 대한 참조를 포함하는지를 판정하는 것;
    상기 워크북이 데이터 소스에 대한 참조를 포함한다고 판정한 것에 응하여, 상기 워크북을 계산하는 데에 필요한 데이터를 상기 데이터 소스로부터 검색하는 단계; 및
    상기 데이터 소스로부터 검색된 상기 데이터를 이용하여 상기 워크북을 재계산하는 단계
    를 더 포함하는 시스템.
  11. 제10항에 있어서,
    상기 제2 클라이언트 컴퓨터에서 실행되는 어플리케이션은 OLAP 클라이언트 어플리케이션을 포함하는 시스템.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020050045690A 2004-06-01 2005-05-30 데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치 KR101122947B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/858,175 2004-06-01
US10/858,175 US7664804B2 (en) 2004-06-01 2004-06-01 Method, system, and apparatus for exposing workbook ranges as data sources

Publications (2)

Publication Number Publication Date
KR20060046285A KR20060046285A (ko) 2006-05-17
KR101122947B1 true KR101122947B1 (ko) 2012-03-22

Family

ID=35063258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050045690A KR101122947B1 (ko) 2004-06-01 2005-05-30 데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치

Country Status (20)

Country Link
US (1) US7664804B2 (ko)
EP (1) EP1605367B1 (ko)
JP (1) JP4907906B2 (ko)
KR (1) KR101122947B1 (ko)
CN (1) CN100547586C (ko)
AU (1) AU2005202284B2 (ko)
BR (1) BRPI0501959B1 (ko)
CA (1) CA2508933C (ko)
CO (1) CO5710208A1 (ko)
EG (1) EG23841A (ko)
HK (1) HK1085818A1 (ko)
IL (1) IL168620A (ko)
MX (1) MXPA05005856A (ko)
MY (1) MY142330A (ko)
NO (1) NO332884B1 (ko)
NZ (1) NZ540421A (ko)
RU (1) RU2406147C2 (ko)
SG (1) SG117588A1 (ko)
TW (1) TWI411928B (ko)
ZA (1) ZA200504159B (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7226791B2 (en) * 2003-06-02 2007-06-05 Bristol-Myers Squibb Company Polynucleotides encoding novel guanylate binding proteins (GBP's)
US7664804B2 (en) 2004-06-01 2010-02-16 Microsoft Corporation Method, system, and apparatus for exposing workbook ranges as data sources
US8578399B2 (en) 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
US7991804B2 (en) * 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US7533139B2 (en) * 2004-09-27 2009-05-12 Microsoft Corporation Method and system for multithread processing of spreadsheet chain calculations
WO2006095365A2 (en) * 2005-03-11 2006-09-14 Suresh Sambandam A system and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface
US8050784B2 (en) * 2005-11-15 2011-11-01 Rockwell Automation Technologies, Inc. Integrated programmer reference for industrial control device data
US8032821B2 (en) * 2006-05-08 2011-10-04 Microsoft Corporation Multi-thread spreadsheet processing with dependency levels
US7937426B2 (en) * 2006-06-30 2011-05-03 Mircosoft Corporation Interval generation for numeric data
US20080046861A1 (en) * 2006-08-15 2008-02-21 Grieser Maria A Method and interface for creating a workbook to implement a business process
US20080126395A1 (en) * 2006-11-28 2008-05-29 Ocyrhoe Technologies Ltd Automatically creating a relational database from a spreadsheet
US20080229184A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Private sheets in shared spreadsheets
US20080243763A1 (en) * 2007-03-27 2008-10-02 International Business Machines Corporation System, method and program to provide data to another program
US10133719B2 (en) * 2007-09-28 2018-11-20 Microsoft Technology Licensing, Llc Spreadsheet workbook part libraries
US20090089315A1 (en) * 2007-09-28 2009-04-02 Tractmanager, Inc. System and method for associating metadata with electronic documents
US8121975B2 (en) * 2008-02-20 2012-02-21 Panorama Software Inc. Creating pivot tables from tabular data
US8281233B2 (en) 2009-06-15 2012-10-02 Microsoft Corporation Architecture to expose internal business data on a website
US8458186B2 (en) * 2009-11-06 2013-06-04 Symantec Corporation Systems and methods for processing and managing object-related data for use by a plurality of applications
US20110161796A1 (en) * 2009-12-31 2011-06-30 Edward Charles Laikin FormDB: a process to create a forms database in Excel without user programming
US20110225579A1 (en) * 2010-03-12 2011-09-15 Nikhil Khandelwal Configurable software deployment
US9952893B2 (en) * 2010-11-03 2018-04-24 Microsoft Technology Licensing, Llc Spreadsheet model for distributed computations
US10140352B2 (en) * 2014-07-17 2018-11-27 Oracle International Corporation Interfacing with a relational database for multi-dimensional analysis via a spreadsheet application
CN109815235B (zh) * 2018-12-29 2021-10-15 东软集团股份有限公司 生成数据源的方法、装置、存储介质及电子设备
US11886916B2 (en) 2020-06-30 2024-01-30 Microsoft Technology Licensing, Llc System for adaptive multithreaded recalculation operations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012057A (en) * 1997-07-30 2000-01-04 Quarterdeck Corporation High speed data searching for information in a computer system
US6411313B1 (en) * 1999-06-14 2002-06-25 Microsoft Corporation User interface for creating a spreadsheet pivottable

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3107826B2 (ja) * 1992-06-16 2000-11-13 サムスン エレクトロニクス カンパニー リミテッド 逆互換性を有するhdtvの記録及び再生システム
US5437006A (en) * 1993-01-27 1995-07-25 Microsoft Corporation Spreadsheet command/function capability from a dynamic-link library
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5893123A (en) * 1995-06-22 1999-04-06 Tuinenga; Paul W. System and method of integrating a spreadsheet and external program having output data calculated automatically in response to input data from the spreadsheet
US6157934A (en) * 1995-10-24 2000-12-05 Ultimus, L.L.C. Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation
US5890174A (en) * 1995-11-16 1999-03-30 Microsoft Corporation Method and system for constructing a formula in a spreadsheet
US6055548A (en) * 1996-06-03 2000-04-25 Microsoft Corporation Computerized spreadsheet with auto-calculator
US5937406A (en) * 1997-01-31 1999-08-10 Informix Software, Inc. File system interface to a database
US5933818A (en) 1997-06-02 1999-08-03 Electronic Data Systems Corporation Autonomous knowledge discovery system and method
US6282548B1 (en) * 1997-06-21 2001-08-28 Alexa Internet Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata
US6094651A (en) * 1997-08-22 2000-07-25 International Business Machines Corporation Discovery-driven exploration of OLAP data cubes
US5974416A (en) * 1997-11-10 1999-10-26 Microsoft Corporation Method of creating a tabular data stream for sending rows of data between client and server
JP2000067143A (ja) * 1998-08-26 2000-03-03 Toshiba Corp データベースシステム
US6430585B1 (en) * 1998-09-21 2002-08-06 Rn2R, L.L.C. Noise tolerant conductance-based logic gate and methods of operation and manufacturing thereof
US6269377B1 (en) * 1998-09-21 2001-07-31 Microsoft Corporation System and method for managing locations of software components via a source list
US6317750B1 (en) 1998-10-26 2001-11-13 Hyperion Solutions Corporation Method and apparatus for accessing multidimensional data
US6640234B1 (en) * 1998-12-31 2003-10-28 Microsoft Corporation Extension of formulas and formatting in an electronic spreadsheet
US7032030B1 (en) * 1999-03-11 2006-04-18 John David Codignotto Message publishing system and method
US6532458B1 (en) * 1999-03-15 2003-03-11 Microsoft Corporation Sampling for database systems
US6549907B1 (en) * 1999-04-22 2003-04-15 Microsoft Corporation Multi-dimensional database and data cube compression for aggregate query support on numeric dimensions
US7088459B1 (en) * 1999-05-25 2006-08-08 Silverbrook Research Pty Ltd Method and system for providing a copy of a printed page
US6701485B1 (en) * 1999-06-15 2004-03-02 Microsoft Corporation Binding spreadsheet cells to objects
US6477536B1 (en) * 1999-06-22 2002-11-05 Microsoft Corporation Virtual cubes
US6446059B1 (en) * 1999-06-22 2002-09-03 Microsoft Corporation Record for a multidimensional database with flexible paths
US6456999B1 (en) * 1999-06-22 2002-09-24 Microsoft Corporation Aggregations size estimation in database services
US6631497B1 (en) * 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6920443B1 (en) * 1999-09-21 2005-07-19 International Business Machines, Corporation Method, system, program, and data structure for transforming database tables
US6473750B1 (en) * 1999-10-15 2002-10-29 Microsoft Corporation Adaptive query execution in a distributed database system
US6493718B1 (en) * 1999-10-15 2002-12-10 Microsoft Corporation Adaptive database caching and data retrieval mechanism
US6898603B1 (en) * 1999-10-15 2005-05-24 Microsoft Corporation Multi-dimensional data structure caching
US7185279B2 (en) 2000-01-07 2007-02-27 Master Mine Software, Inc. Data mining and reporting
US20020010743A1 (en) * 2000-02-11 2002-01-24 Ryan Mark H. Method and system for distributing and collecting spreadsheet information
GB0011426D0 (en) * 2000-05-11 2000-06-28 Charteris Limited A method for transforming documents written in different XML-based languages
US6632249B2 (en) * 2000-06-23 2003-10-14 Microsoft Corporation Method for providing web-based services to an application program module
ATE373272T1 (de) * 2000-07-13 2007-09-15 Oracle Int Corp Durchführung von kalkulationen des tabellenkalkulationstyps in einem datenbanksystem
US6944662B2 (en) * 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
US7082569B2 (en) * 2001-01-17 2006-07-25 Outlooksoft Corporation Systems and methods providing dynamic spreadsheet functionality
US6684206B2 (en) * 2001-05-18 2004-01-27 Hewlett-Packard Development Company, L.P. OLAP-based web access analysis method and system
US20020188629A1 (en) * 2001-05-21 2002-12-12 Burfoot Daniel C. System, protocol, and methods for the creation of distributed spreadsheets
US7177855B2 (en) * 2001-06-20 2007-02-13 Oracle International Corporation Compile-time optimizations of queries with SQL spreadsheet
US7761403B2 (en) * 2001-06-20 2010-07-20 Oracle International Corporation Run-time optimizations of queries with SQL spreadsheet
US7251776B2 (en) * 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
US20030195762A1 (en) * 2002-04-12 2003-10-16 David Gleason Automated workflow
JP3868331B2 (ja) * 2002-05-20 2007-01-17 株式会社読売新聞東京本社 データベース登録装置および方法
US7266763B2 (en) * 2002-11-26 2007-09-04 Microsoft Corporation User defined spreadsheet functions
US20040103365A1 (en) * 2002-11-27 2004-05-27 Alan Cox System, method, and computer program product for an integrated spreadsheet and database
US7530012B2 (en) * 2003-05-22 2009-05-05 International Business Machines Corporation Incorporation of spreadsheet formulas of multi-dimensional cube data into a multi-dimensional cube
US7299223B2 (en) * 2003-07-16 2007-11-20 Oracle International Corporation Spreadsheet to SQL translation
US7233956B2 (en) * 2003-08-12 2007-06-19 International Business Machines Corporation Method and apparatus for data migration between databases
WO2005026991A1 (en) * 2003-09-09 2005-03-24 Ask Jeeves, Inc. Refinement of web-based search queries
US7664804B2 (en) 2004-06-01 2010-02-16 Microsoft Corporation Method, system, and apparatus for exposing workbook ranges as data sources
US7991804B2 (en) * 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US8578399B2 (en) 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
US20060069617A1 (en) * 2004-09-27 2006-03-30 Scott Milener Method and apparatus for prefetching electronic data for enhanced browsing
US7712049B2 (en) * 2004-09-30 2010-05-04 Microsoft Corporation Two-dimensional radial user interface for computer software applications
US20060112123A1 (en) * 2004-11-24 2006-05-25 Macnica, Inc. Spreadsheet user-interfaced business data visualization and publishing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012057A (en) * 1997-07-30 2000-01-04 Quarterdeck Corporation High speed data searching for information in a computer system
US6411313B1 (en) * 1999-06-14 2002-06-25 Microsoft Corporation User interface for creating a spreadsheet pivottable

Also Published As

Publication number Publication date
NZ540421A (en) 2006-11-30
CN1758247A (zh) 2006-04-12
US20050267853A1 (en) 2005-12-01
NO20052613D0 (no) 2005-05-31
MY142330A (en) 2010-11-15
CN100547586C (zh) 2009-10-07
NO20052613L (no) 2005-12-02
TW200604862A (en) 2006-02-01
RU2005116632A (ru) 2006-11-20
ZA200504159B (en) 2006-08-30
IL168620A (en) 2010-11-30
RU2406147C2 (ru) 2010-12-10
NO332884B1 (no) 2013-01-28
AU2005202284B2 (en) 2011-01-27
TWI411928B (zh) 2013-10-11
EP1605367A3 (en) 2006-07-26
AU2005202284A1 (en) 2005-12-15
EP1605367A2 (en) 2005-12-14
CA2508933A1 (en) 2005-12-01
JP4907906B2 (ja) 2012-04-04
CA2508933C (en) 2015-10-06
EP1605367B1 (en) 2016-11-02
MXPA05005856A (es) 2005-12-05
KR20060046285A (ko) 2006-05-17
HK1085818A1 (zh) 2006-09-01
US7664804B2 (en) 2010-02-16
EG23841A (en) 2007-10-16
BRPI0501959A (pt) 2006-01-24
BRPI0501959B1 (pt) 2017-10-10
JP2006004418A (ja) 2006-01-05
SG117588A1 (en) 2005-12-29
CO5710208A1 (es) 2006-12-29

Similar Documents

Publication Publication Date Title
KR101122947B1 (ko) 데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치
US7991804B2 (en) Method, system, and apparatus for exposing workbooks as data sources
US7617444B2 (en) File formats, methods, and computer program products for representing workbooks
AU2005202285B2 (en) Method, system, and apparatus for providing access to workbook models through remote function calls
US7844570B2 (en) Database generation systems and methods
US20160246769A1 (en) System and method for user collaboration in a business intelligence software tool
US20060265394A1 (en) Personalizable information networks
US20050262439A1 (en) Automatic web publishing
JP2023501098A (ja) セマンティックロールを用いたデータプレパレーション
US7587416B2 (en) Advanced desktop reporting
US8135697B2 (en) Search-friendly templates
Singh et al. Business Intelligence Basics
US9594805B2 (en) System and method for aggregating and integrating structured content
Sarmah Rochade-A Metadata Management Technology
Clegg et al. Release 2.1 of SAS® Add-In for Microsoft Office–Bringing Microsoft® PowerPoint into the Mix

Legal Events

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

Payment date: 20150121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 8