NO332884B1 - Fremgangsmate, system og anordning for a tilby arbeidsbokomrader som datakilder - Google Patents

Fremgangsmate, system og anordning for a tilby arbeidsbokomrader som datakilder

Info

Publication number
NO332884B1
NO332884B1 NO20052613A NO20052613A NO332884B1 NO 332884 B1 NO332884 B1 NO 332884B1 NO 20052613 A NO20052613 A NO 20052613A NO 20052613 A NO20052613 A NO 20052613A NO 332884 B1 NO332884 B1 NO 332884B1
Authority
NO
Norway
Prior art keywords
workbook
server
data
computer
data source
Prior art date
Application number
NO20052613A
Other languages
English (en)
Other versions
NO20052613D0 (no
NO20052613L (no
Inventor
Eran Megiddo
Liviu Asnash
Amir Netz
Christian Petculescu
Daniel Battagin
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of NO20052613D0 publication Critical patent/NO20052613D0/no
Publication of NO20052613L publication Critical patent/NO20052613L/no
Publication of NO332884B1 publication Critical patent/NO332884B1/no

Links

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
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (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

En fremgangsmåte, et system og en anordning er tilveiebrakt for å tilgjengeliggjøre og anvende celleintervaller i arbeidsbøker som datakilder. Systemet omfatter en klientmaskin som er i stand til å kjøre et regnearkprogram for å opprette en arbeidsbok som inneholder et celleintervall som omfatter dataobjekter. Arbeidsboken kan bli publisert til en tjenermaskin, der de spesifiserte dataobjektene blir gjort tilgjengelige som tjener-datakilder. Tjenermaskinen lar klientapplikasjoner utforske og opprette forbindelse til dataobjektene inneholdt i arbeidsboken som tjener-datakilder.

Description

BAKGRUNN FOR OPPFINNELSEN
Brukere av regnearkprogrammer anvender ofte data fra en rekke forskjellige kilder når de bygger arbeidsbøker. For eksempel, ved opprettelse av en arbeidsbok i et regnearkprogram, kan en bruker importere data fra en annen arbeidsbok, legge inn data i arbeidsboken manuelt eller fremskaffe data gjennom spørringer til en relasjonsdatabase eller en online analytisk prosesserings-("OLAP")-kube. Når dataene er lagt inn fra en hvilken som helst av disse kildene, ordner en bruker typisk dataene som ønsket i arbeidsboken. Etter denne prosessen har brukeren opprettet en arbeidsbok som omfatter et tabulert sett av data som kan anvendes for relevant numerisk analyse.
For at andre brukere skal få tilgang til innholdet i arbeidsboken kan det bli tatt kopier av arbeidsboken eller deler av den. For eksempel blir i mange tilfeller arbeidsboken sendt til andre brukere via elektronisk post ("e-post"). Brukerne som mottar arbeidsboken kan da gjøre analyser på arbeidsboken eller legge til dataene inneholdt i arbeidsboken i en annen arbeidsbok. Alternativt kan arbeidsboken bli lagret på et delt lagringsområde hvor flere brukere kan aksessere arbeidsbokens innhold. For å dele arbeidsbokens innhold kan blokker av sammenhengende data også bli kopiert og limt inn i andre dokumenter.
Selv om disse tradisjonelle metodene for deling av en arbeidsbok gir flere brukere tilgang til innholdet i en arbeidsbok, har disse metodene en rekke ulem-per. For det første er det veldig vanskelig å administrere flere kopier av en arbeidsbok, som kan være duplisert mange ganger i flere datamaskiner og nett-verksdomener. Spesielt er det veldig vanskelig for en systemadministrator å sørge for at arbeidsboken er sikker og at den blir sikkerhetskopiert ofte. Videre kan det i tilfellet med et delt lagringsområde være veldig problematisk for flere brukere å aksessere arbeidsboken samtidig. Dersom for eksempel forfatteren av den opprinnelige arbeidsboken trenger å oppdatere den, er det vanskelig å spore opp alle brukerne som anvender den og sørge for at de oppdaterer sine kopier. I mange tilfeller låser klientapplikasjonen arbeidsboken når den er åpnet av én bruker, og hindrer med det andre i å aksessere filen. I tillegg kan samme oppgave bli utført på forskjellige kopier av arbeidsboken, slik at arbeid blir duplisert og produktivite-ten reduseres.
Fra Lakshmanan L. V. et al.: "On Querying Spreadsheets" 23. februar, 1998, sidene 134 til 141 er det omtalt en fremgangsmåte for å etterspørre data i et regneark. Det er beskrevet at regneark og ordprosessorer i tillegg til tradisjonelle databaser er en kilde for elektronisk informasjon. En arkitektur for å realisere interoperabilitet mellom diverse applikasjoner er tilveiebrakt og utfordringene som opptrer spesielt i sammenheng ved etterspørsel av data lagret i regneark blir adressert.
De ovenfor nevnte hensyn er motivet for de forskjellige utførelsesformer av foreliggende oppfinnelse.
KORT OPPSUMMERING AV OPPFINNELSEN
I foreliggende oppfinnelse løses ovennevnte og andre problemer med en fremgangsmåte og et system for å tilgjengeliggjøre celleintervaller i arbeidsbøker som datakilder. Ved å gjøre tilgjengelig celleintervaller i en arbeidsbok som tjener-datakilder, muliggjøres enkel, strukturert aksess til arbeidsbokens innhold for et hvilket som helst applikasjonsprogram som er i stand til å opprette forbindelse og sende forespørsler til en tjener-datakilde. Videre, siden celleintervaller i arbeidsbøker er tilgjengelige som tjener-datakilder når arbeidsboken er publisert, kan en hvilken som helst bruker som er i stand til å bruke et regnearkprogram enkelt opprette bedriftsomspennende datakilder.
Ifølge ett aspekt ved oppfinnelsen tilveiebringes et system for å tilgjengelig-gjøre innholdet i en arbeidsbok som en tjener-datakilde og for å benytte tjener-datakilden. Systemet omfatter en klientmaskin som er i stand til å kjøre et regnearkprogram for å opprette en arbeidsbok. Arbeidsboken kan omfatte ett eller flere celleintervaller som inneholder dataobjekter. Som definert her omfatter et dataobjekt et hvilket som helst objekt i et arbeidsark som anvendes for å lagre data. For eksempel kan dataobjekter omfatte, men er ikke begrenset til, et vilkårlig celleintervall, pivottabeller, datautforskingsobjekter ("DOE" - Data Exploration Object), lister, databaser og manuelle tabeller.
Regnearkprogrammet kan også generere metadata for hvert av dataobjektene når arbeidsarket blir opprettet eller redigert. Metadataene kan bli lagret sammen med arbeidsarket. Metadataene kan anvendes av en tjenermaskin når den mottar og svarer på forespørsler om tilgang til dataobjektene i arbeidsboken som tjener-datakilder. Generering av metadata for dataobjektene kan bli gjort automatisk av regnearkprogrammet når dataene legges inn, når dataene publiseres eller som reaksjon på en forespørsel fra en bruker om å generere metadataene. Det kan også være tilveiebrakt en mekanisme som lar en bruker redigere metadataene.
Regnearkprogrammet publiserer videre en arbeidsbok til en tjenermaskin. Når en arbeidsbok publiseres til en tjenermaskin, kan en bruker spesifisere at noen av, ingen av eller alle dataobjektene i en arbeidsbok skal gjøres tilgjengelige som tjener-datakilder. Arbeidsboken blir da sendt til tjenermaskinen hvor de spesifiserte datakildene gjøres tilgjengelige som tjener-datakilder.
Det beskrives også hvordan systemet omfatter en tjenermaskin som kjører et tjenerprogram for å tilgjengeliggjøre dataobjekter i en arbeidsbok som tjener-dataobjekter. Som de anvendes her refererer betegnelsene "datakilde" og "tjener-datakilde" konkret til en database som det kan fremsettes spørringer til. Denne definisjonen omfatter relasjonsdatabaser (så som de som kan bygges opp og spørres med bruk av SQL (Structured Query Language)), hierarkiske databaser, flerdimensjonale databaser (så som en OLAP-kube) eller databaser som kombinerer trekk ved relasjonsdatabaser og flerdimensjonale databaser (så som UDM (Unified Dimensjonal Model)). Definisjonen omfatter også databaser som kan spørres via webbaserte tjenester. Med en "datakilde-spørring" menes her en forespørsel rettet til en datakilde, så som en SQL-spørring.
Når dataobjektene i en arbeidsbok er gjort tilgjengelige, kan klientapplikasjoner utforske og opprette forbindelse til dataobjektene som tjener-datakilder. Når en forespørsel fremsettes om et dataobjekt som en tjener-datakilde, kan tjenermaskinen omberegne arbeidsboken. Dersom arbeidsboken inneholder en referanse til en annen datakilde, kan hvilke som helst data som er nødvendige for å omberegne arbeidsboken bli innhentet fra datakilden før omberegningen. Når arbeidsboken er omberegnet, kan tjenermaskinen generere en representasjon (for eksempel en databaserepresentasjon) av det aktuelle dataobjektet. Dette kan for eksempel omfatte generering av en midlertidig database eller kube som svarer til det aktuelle dataobjektet.
Når representasjonen er generert, foretar tjenermaskinen den ønskede spørringen på representasjonen. Resultatet av spørringen blir deretter returnert til den forespørrende klientapplikasjonen. På denne måten kan en bruker for eksempel enkelt forfatte en arbeidsbok og publisere arbeidsboken til en tjenermaskin hvor dens dataobjekter kan bli tilgjengeliggjort som tjener-datakilder. Andre brukere som anvender database-baserte klientapplikasjoner, så som en OLAP-klient, kan da utforske datakildene inneholdt i arbeidsboken og fremsette sine egne spørringer til datakildene.
Oppfinnelsen kan realiseres som en datamaskinprosess, eller et datamaskinlesbart medium. Det omtales også et dataprogramprodukt som kan være et datalagringsmedium som kan leses av et datasystem og som koder et dataprogram med instruksjoner for eksekvere en datamaskinprosess. Data-programproduktet kan også være et overført signal i en bærer som kan leses av et datasystem og som koder et dataprogram med instruksjoner for å eksekvere en datamaskinprosess.
Disse og forskjellige andre trekk, så vel som fordeler, som kjennetegner foreliggende oppfinnelse vil fremkomme av de tilhørende patentkravene. For enklere forståelse av oppfinnelsen vises det til den følgende detaljerte beskrivelsen samt de vedlagte figurene.
KORT BESKRIVELSE AV FIGURENE
Figur 1 er et diagram som illustrerer aspekter ved flere datasystemer som anvendes i og tilveiebringes av de forskjellige utførelsesformer av oppfinnelsen, Figur 2 er et diagram som illustrerer aspekter ved et klient-datasystem som anvendes i og tilveiebringes av de forskjellige utførelsesformer av oppfinnelsen, Figur 3 er et flytdiagram som illustrerer aspekter ved en fremgangsmåte for å publisere et celleintervall i en arbeidsbok som en tjener-datakilde, ifølge én utførelsesform av oppfinnelsen, Figur 4 er et skjermvindu som illustrerer et aspekt ved oppfinnelsen for å tilveiebringe en mekanisme som en bruker kan anvende for å redigere metadata assosiert med dataobjekter i et celleintervall i en arbeidsbok, og Figur 5 er et flytdiagram som illustrerer aspekter ved en fremgangsmåte for å motta og svare på forespørsler om celleintervaller i en arbeidsbok som tjener-datakilder, ifølge én utførelsesform av oppfinnelsen.
DETALJERT BESKRIVELSE AV OPPFINNELSEN
Med henvisning til figurene, der like referansenummer representerer like elementer, vil nå forskjellige aspekter ved foreliggende oppfinnelse bli beskrevet.
Figur 1 og den tilhørende beskrivelsen har som formål å gi en kort, generell beskrivelse av et passende databehandlingsmiljø hvor utførelsesformer av oppfinnelsen kan realiseres. Selv om oppfinnelsen vil bli beskrevet i den generelle sam-menhengen programmoduler som kjører på et operativsystem på en personlig datamaskin, vil fagmannen forstå at oppfinnelsen også kan realiseres sammen med andre typer datasystemer og programmoduler.
Generelt omfatter programmoduler rutiner, programmer, komponenter, datastrukturer og andre typer strukturer som utfører bestemte oppgaver eller implementerer bestemte abstrakte datatyper. Fagmannen vil forstå at oppfinnelsen også kan praktiseres med andre typer datasystemer, omfattende håndholdte anordninger, flerprosessorsystemer, mikroprosessorbasert eller programmerbar forbrukerelektronikk, minidatamaskiner, stormaskiner og liknende. Oppfinnelsen kan også praktiseres i distribuerte databehandlingsmiljøer hvor oppgaver blir utført av fjerne prosesseringsanordninger som er forbundet gjennom et kommunika-sjonsnettverk. I et distribuert databehandlingsmiljø kan programmoduler befinne seg i både lokale og fjerne lagringsanordninger.
Nå med henvisning til figur 1 vil et eksempel på bruksmiljø for de flere ut-førelsesformer av oppfinnelsen bli beskrevet. Som illustrert i figur 1 forbinder et nettverk 10 en klientmaskin 2 og et antall tjenermaskiner 12A-12C. Man må forstå at nettverket 10 kan omfatte en hvilken som helst type datanettverk, omfattende et lokalt nettverk eller et regionalt nettverk, for eksempel Internett. Nettverket 10 danner et medium som muliggjør kommunikasjon mellom klientmaskinen 2, tjenermaskinene 12A-12C og eventuelt andre datasystemer som er koblet til eller tilgjengelige gjennom nettverket 10.
Klientmaskinen 2 omfatter en generell skrivebords- eller laptop-type datamaskin som kan kjøre ett eller flere applikasjonsprogrammer. Spesielt, i de forskjellige utførelsesformer av oppfinnelsen, kjører datamaskinen 2 en regnearkklientapplikasjon 4. Som er kjent for fagmannen tilbyr regneark-klientapplikasjonen 4 funksjonalitet for å opprette budsjetter, utføre økonomiske analyser og andre økonomi- og numeriskrelaterte oppgaver. For å støtte denne funksjonaliteten kan dataverdier organiseres med bruk av celler, og relasjonene mellom cellene kan defineres med bruk av formeler. En endring av én celle forårsaker endringer av avhengige celler. Regnearkprogrammer tilbyr vanligvis diagramfunksjonalitet for utmating og en rekke forskjellige formateringsalternativer for tekst, numeriske verdier og diagramfunksjoner.
Ifølge utførelsesformer av oppfinnelsen kan regneark-klientapplikasjonen 4 anvendes for å opprette en arbeidsbok 6. Arbeidsboken 6 er en fil som er generert av et regnearkprogram og inneholder ett eller flere arbeidsark. (Et arbeidsark kan også bli referert til her som et "regneark"). Et arbeidsark er én enkelt side som er delt inn i rader og kolonner i regnearkprogrammet, og som vises på skjermen og anvendes for å konstruere én enkelt tabell.
Arbeidsark i arbeidsboken 6 kan omfatte ett eller flere celleintervaller som inneholder dataobjekter. Som definert her omfatter et dataobjekt et hvilket som helst objekt i et arbeidsark som anvendes for å lagre data. For eksempel kan dataobjekter omfatte, men er ikke begrenset til, en vilkårlig blokk av sammenhengende celler, pivottabeller, DOE-objekter, lister, databaser og manuelle tabeller. Som vil bli beskrevet nærmere, kan hvert av disse dataobjektene bli gjort tilgjengelig som en tjener-datakilde som kan aksesseres fra tjeneren 12A. Andre typer dataobjekter som anvendes i en arbeidsbok kan også bli gjort tilgjengelig som en tjener-datakilde.
Man må forstå at ifølge én utførelsesform av oppfinnelsen, regneark-klientapplikasjonen 4 omfatter regnearkprogrammet EXCEL fra MICROSOFT CORPORATION i Redmond, Washington. Man må likevel forstå at de forskjellige aspekter ved oppfinnelsen beskrevet her kan anvendes med andre regnearkprogrammer fra andre tilbydere. Dessuten, selv om aspektene beskrevet her er for-klart i forbindelse med et regnearkprogram, må man forstå at andre typer applikasjonsprogrammer også kan anvendes for å realisere oppfinnelsens forskjellige aspekter.
Ifølge andre utførelsesformer av oppfinnelsen kan klientmaskinen 2 også kjøre en OLAP-klientapplikasjon 8. OLAP-klientapplikasjonen 8 omfatter et applikasjonsprogram som er i stand til å opprette forbindelse til, sende spørringer til og anvende data fra en OLAP-datakilde. For eksempel kan OLAP-klientapplikasjonen 8 opprette forbindelse til tjenermaskinen 12B over nettverket 10. Gjennom data-baseprogrammer som kjører på tjenermaskinen 12B, kan OLAP-klientapplikasjonen 8 fremsette forespørsler mot datakildene 16. Tjenermaskinen 12B vil da motta og spare på forespørslene fra OLAP-klientapplikasjonen 8.
Som vil bli beskrevet nærmere nedenfor kan OLAP-klientapplikasjonen 8 også fremsette forespørsler mot en arbeidsbok 6. For å muliggjøre denne funksjonaliteten kan regnearkklientapplikasjonen 4 publisere arbeidsboken 6 til et lager 14 som administreres av en filtjenermaskin 12C og som er tilgjengelig for tjenermaskinen 12A. Regneark-tjenerapplikasjonen 13, som kjører på tjenermaskinen 12A, kan da lete i arbeidsboken 6 etter celleintervaller som inneholder dataobjekter og tilgjengeliggjøre dataobjektene som tjener-datakilder. OLAP-klientapplikasjonen 8 kan da opprette forbindelse til datakildene som er tilgjengeliggjort av regnearktjenerapplikasjonen 12A på samme måte som den ville koble seg til en OLAP-datakilde, så som den som tilgjengeliggjøres av tjenermaskinen 12B. Man må forstå at regneark-klientapplikasjonen 4 kan tjene som konsument av data fra en datakilde på samme måte som OLAP-klientapplikasjonen 8. Man må også forstå at datamaskinen 2 kan kjøre ytterligere klientapplikasjoner for å fremsette spørringer til og konsumere data fra andre typer databaser. Man må videre forstå at i en alternativ utførelsesform, funksjonene til datamaskinen 2 beskrevet over kan være delt mellom to databehandlingsanordninger. For eksempel kan én databehandlingsanordning kjøre regnearkapplikasjonen 4 for å publisere arbeidsboken 6, mens den andre databehandlingsanordningen kan kjøre klientapplikasjoner for å konsumere data.
Med en "datakilde" og en "tjener-datakilde" menes her spesifikt en database som det kan fremsettes spørringer til. Denne definisjonen omfatter relasjonsdatabaser (så som SQL-databaser), hierarkiske databaser, flerdimensjonale databaser (så som en OLAP-kube) eller databaser som kombinerer trekk ved relasjonsdatabaser og flerdimensjonale databaser (så som UDM-modellen). Definisjonen omfatter også databaser som kan spørres gjennom Web-baserte tjenester. Med en "datakilde-spørring" menes videre en forespørsel rettet til en datakilde, så som en SQL-spørring.
Regneark-tjenerapplikasjonen 13 omfatter et tjener-basert applikasjonsprogram som kan kjøre uten bruk av en fremvisningsskjerm. Regnearktjenerapplika sjonen 13 utfører mange av funksjonene til regneark-klientapplikasjonen 4 på en tjenermaskin. Foreksempel kan regneark-tjenerapplikasjonen 13 laste og beregne en arbeidsbok 6. Som vil bli beskrevet her tilbyr regneark-tjenerapplikasjonen 13 også funksjonalitet for å tilgjengeliggjøre celleintervaller i en arbeidsbok 6 for kom-patible klienter over nettverket 10. Ytterligere detaljer vedrørende de forskjellige funksjoner som utføres av regnearkklientapplikasjonen 4 og
regnearktjenerapplikasjonen 13 vil bli gitt nedenfor i forbindelse med figurene 2-5.
Med henvisning til figur 2 vil nå et eksempel på arkitektur for en datamaskin 2 som anvendes i de forskjellige utførelsesformer av oppfinnelsen bli beskrevet. Dataarkitekturen i figur 2 illustrerer en tradisjonell skrivebord-type eller laptop-type datamaskin som innbefatter en sentralprosesseringsenhet ("CPU") 5, et system-minne 7, som omfatter et direkteaksessminne ("RAM") 9 og et leseminne ("ROM") 11, og en systembuss 12 som kobler minnet til CPU 5. Et BIOS (Basic Input/Output System), som inneholder de grunnleggende rutinene som hjelper til med å overføre informasjon mellom elementer i datamaskinen, for eksempel under oppstart, er lagret i ROM 11. Datamaskinen 2 omfatter videre en masselagrings-anordning 24 for å lagre et operativsystem 18, applikasjonsprogrammer og andre programmoduler, som vil bli beskrevet mer detaljert nedenfor.
Masselagringsanordningen 24 er koblet til CPU 5 gjennom en masselager-styring (ikke vist) koblet til bussen 12. Masselagringsanordningen 24 og dens til-knyttede datamaskinlesbare medium besørger ikke-volatil lagring for datamaskinen 2. Selv om beskrivelsen her av datamaskinlesbare medier henviser til en mas-selagringsanordning, så som en harddisk eller en CDROM-stasjon, vil fagmannen forstå at et datamaskin-lesbart medium kan være et hvilket som helst tilgjengelig medium som kan aksesseres av datamaskinen 2.
Som et eksempel, og ikke en begrensning, kan datamaskinlesbare medier omfatte datalagringsmedier og kommunikasjonsmedier. Datalagringsmedier omfatter volatile og ikke-volatile, flyttbare og stasjonære medier realisert med en hvilken som helst metode eller teknologi for lagring av informasjon, så som datamaskinlesbare instruksjoner, datastrukturer, programmoduler eller andre data. Datalagringsmedier omfatter, men er ikke begrenset til, RAM, ROM, EPROM, EEPROM, flash-minne eller annen "solid state" minneteknologi, CD-ROM, DVD (Digital Versatile Disk) eller andre optiske lagre, magnetkassetter, magnetbånd, magnetplatelagre eller andre magnetiske lagringsanordninger, eller et hvilket som helst annet medium som kan brukes til å lagre den ønskede informasjonen og som kan aksesseres av datamaskinen 2.
I forskjellige utførelsesformer av oppfinnelsen kan datamaskinen 2 kjøre i et nettverksmiljø som anvender logiske forbindelser til fjerne datamaskiner over et nettverk 10, for eksempel Internett. Datamaskinen 2 kan være koblet til nettverket 10 gjennom en nettverksgrensesnittenhet 20 koblet til bussen 12. Man må forstå at nettverksgrensesnittenheten 20 også kan anvendes for tilkobling til andre typer nettverk og fjerne datasystemer. Datamaskinen 2 kan også omfatte en inn/ut-kontrollenhet 22 for å motta og behandle inndata fra en rekke andre anordninger, omfattende et tastatur, en mus eller en elektronisk innmatingspenn (ikke vist i figur 2). Tilsvarende kan en inn/ut-kontrollenhet 22 forsyne utdata til en fremvisningsskjerm, en skriver eller en annen type utmatingsanordning.
Som så vidt nevnt over kan en rekke forskjellige programmoduler og data-filer være lagret i masselagringsanordningen 24 og RAM-minnet 9 i datamaskinen 2, omfattende et operativsystem 18 som er egnet til å styre en nettverkstilknyttet personlig datamaskin, for eksempel operativsystemet WINDOWS XP fra MICROSOFT CORPORATION i Redmond, Washington. Masselagringsanordningen 24 og RAM-minnet 9 kan også lagre én eller flere programmoduler. Spesielt kan masselagringsanordningen 24 og RAM-minnet 9 lagre en regnearkklientapplikasjon 4 og en OLAP-klientapplikasjon 8, som beskrevet over. Masselagringsanordningen 24 og RAM-minnet 9 kan også lagre en arbeidsbok 6 generert av regnearkklientapplikasjonen 4.
Ifølge én utførelsesform av oppfinnelsen genererer regnearkprogrammet 4 også metadata 26 for hvert av dataobjektene inneholdt i en arbeidsbok. Metadataene 26 kan bli generert automatisk av regneark-klientapplikasjonen 4 eller legges inn manuelt av en bruker. Metadataene 26 kan lagres i arbeidsboken 6 og bli skre-vet til fil sammen med arbeidsboken. Metadataene 26 kan anvendes av tjenermaskinen 12A når den mottar og svarer på forespørsler om tilgang til dataobjektene i arbeidsboken som tjener-datakilder. Som et eksempel kan regnearkprogrammet 10 generere metadata 26 for et felt i en arbeidsbok med tittelen "POSTNUMMER". Metadataene 26 kan angi feltets navn og sette en datatype for feltet som et nummer. Metadataene 26 kan også angi at default aggregering for feltet er en "sum." Denne prosessen kan bli utført automatisk av regnearkprogrammet 4 når datakilden opprettes, når datakilden publiseres eller som reaksjon på en forespørsel fra en bruker om å generere metadataene.
Man må forstå at i noen utførelsesformer av oppfinnelsen, regneark-klientapplikasjonen 4 tilbyr en mekanisme for å la en bruker redigere metadataene 26 generert av regnearkprogrammet 4 for dataobjektene inneholdt i en arbeidsbok 6. For eksempel, i eksempelet over, kan en bruker vurdere det som uhensiktsmessig å generere en sum av postnumre. Følgelig kan brukeren anvende en mekanisme tilveiebrakt av regnearkklientapplikasjonen 4 for å redigere metadataene 26 for å angi at default aggregering for feltet "POSTNUMMER" ikke skal være sum, men i stedet skal være et antall. De modifiserte metadataene 26 kan deretter bli lagret i arbeidsboken 6 og publisert til tjenermaskinen 12A. På denne måten kan tjenermaskinen 12A reagere mer fornuftig på forespørsler til datakilder om data inneholdt i dette feltet. Et eksempel på brukergrensesnitt for å redigere metadataene 26 generert for dataobjektene i en arbeidsbok av regneark-klientapplikasjonen 4 vil bli beskrevet nærmere nedenfor i forbindelse med figur 4.
Man må forstå at tjenermaskinene 12A-12C kan omfatte mange av de tradisjonelle komponentene illustrert i figur 2 og beskrevet over. I tillegg kan tjenermaskinen 12A lagre og kjøre en regnearktjenerapplikasjon 13. Filtjenermaskinen 12C kan lagre og kjøre en filtjenerapplikasjon 28 som mottar og behandler fore-spørsler om filer lagret i lageret 14, for eksempel en arbeidsbok 6. Man må forstå at tjenermaskinene 12A-12C kan omfatte andre tradisjonelle komponenter som ikke er vist i figur 2, men som er kjente for fagmannen.
Med henvisning til figur 3 vil nå et eksempel på fremgangsmåte 300 bli beskrevet som utføres av regneark-klientapplikasjonen 4 for å publisere et celleintervall i en arbeidsbok som en tjener-datakilde. Når man leser beskrivelsen av frem-gangsmåtene presentert her, må man forstå at de logiske trinnene i forskjellige utførelsesformer av foreliggende oppfinnelse er realisert (1) som en sekvens av datamaskinutførte handlinger eller programmoduler som kjører i et datasystem og/eller (2) som innbyrdes forbundne, logiske kretser eller kretsmoduler i datasystemet. Den konkrete utførelsen er et spørsmål om valg avhengig av kravet til ytelse for datasystemet som realiserer oppfinnelsen. Følgelig er de logiske trinnene illustrert i figurene 3 og 5, som representerer utførelsesformene av foreligg ende oppfinnelse beskrevet her, referert til vekselvis som trinn, anordninger, handlinger eller moduler. Fagmannen vil forstå at disse trinnene, anordningene, handlingene og modulene kan realiseres eller gjennomføres i programvare, i "firmware", i spesialisert digital logikk og i en hvilken som helst kombinasjon av dette uten å fjerne seg fra oppfinnelsens idé som defineres av de etterfølgende kravene.
Fremgangsmåten 300 begynner i trinn 302, der en bruker anvender regneark-klientapplikasjonen 4 for å opprette eller redigere arbeidsboken 6. Spesielt, som beskrevet her, kan brukeren anvende de forskjellige mekanismer som til-bys av regnearkklientapplikasjonen 4 for å opprette dataobjekter i arbeidsboken, omfattende intervaller av celler, pivottabeller, DOE-objekter, lister, databaser, manuelle tabeller og andre dataobjekter. Brukeren kan også manuelt legge inn data eller opprette en spørring i arbeidsboken 6 for en datakilde 16. De forskjellige funksjoner og fremgangsmåter som kan anvendes i en regnearkklientapplikasjon 4 for å opprette en arbeidsbok 6 er praktisk talt ubegrensede, og velkjente for fagmannen.
Fra trinn 302 fortsetter fremgangsmåten 300 til trinn 304, der regneark-klientapplikasjonen 4 genererer metadataene 26 for bruk av tjenerapplikasjonen 13 når den svarer på forespørsler om tilgang til arbeidsboken 6 som en datakilde. Spesielt kan regneark-klientapplikasjonen 4 analysere de forskjellige datakildene inneholdt i arbeidsboken 6 for å identifisere data som kan anvendes for å beskrive de forskjellige datakildene i arbeidsboken 6. For eksempel, for en relasjonsbasert datakilde, kan regneark-klientapplikasjonen 4 identifisere navnet til kolonnene og de forskjellige datatypene til datakildene inneholdt i arbeidsboken 6. For flerdimensjonale datakilder kan regneark-klientapplikasjonen 4 identifisere mål, hierarki og default aggregering for de forskjellige datakildene.
Verdier for disse egenskapene kan også bli satt av regnearkklientapplikasjonen 4 på en intelligent måte. For eksempel, for et felt som inneholder en datastreng, kan regnearkklientapplikasjonen 4 angi at default aggregering er et antall. For numeriske datafelter kan regneark-klientapplikasjonen 4 sette default aggregering til en sum. Andre former for intelligente avgjørelser kan tas av regneark-klientapplikasjonen 4 for å identifisere metadata i arbeidsboken 6 og for å sette egenskaper for metadataene.
Fra trinn 304 fortsetter fremgangsmåten 300 til trinn 306, der regneark-klientapplikasjonen 4 bestemmer om en bruker har fremsatt en forespørsel om å redigere metadataene generert av regneark-klientapplikasjonen 4. Som beskrevet kort over kan regneark-klientapplikasjonen 4 tilby et brukergrensesnitt for å redigere de genererte metadataene. Dette kan for eksempel være nyttig for å la en bruker overstyre de intelligente avgjørelsene tatt av regneark-klientapplikasjonen 4 for å identifisere metadata i arbeidsboken 6 og for å sette forskjellige egenskaper for metadataene.
Dersom i trinn 306 regneark-klientapplikasjonen 4 bestemmer at en fore-spørsel om å redigere metadataene er mottatt, hopper fremgangsmåten 300 til trinn 308.1 trinn 308 mottar regneark-klientapplikasjonen 4 redigerte metadata fra brukeren. Et eksempel på brukergrensesnitt for å la en bruker redigere metadataene vil bli beskrevet nærmere nedenfor i forbindelse med figur 4. Fra trinn 308 fortsetter fremgangsmåten 300 til trinn 310.
Dersom i trinn 306 regneark-klientapplikasjonen 4 bestemmer at det ikke er mottatt noen forespørsel om å redigere metadataene, fortsetter fremgangsmåten 300 til trinn 310.1 trinn 310 lagres metadataene 26 generert av regneark-klientapplikasjonen 4 og eventuelt redigert av brukeren sammen med arbeidsboken 6. Lagring av arbeidsboken 6 kan skje automatisk eller kan skje som reaksjon på en forespørsel fra en bruker.
Fra trinn 310 fortsetter fremgangsmåten 300 til trinn 312, der arbeidsboken 6, omfattende metadataene 26, publiseres til regneark-tjenerapplikasjonen 13. Publisering av arbeidsboken 6 kan skje som reaksjon på en kommando fra en bruker, eller kan skje automatisk. For eksempel kan publisering av arbeidsboken 6 omfatte det å laste opp et regneark til tjenermaskinen 12A eller å programmatisk generere et regneark og sende det til tjenermaskinen 12A gjennom tjenerens applikasjonsprogrammeringsgrensesnitt ("API"). Når arbeidsboken 6 publiseres til regneark-tjenerapplikasjonen 13, blir arbeidsboken 6 lagret i lageret 14. Regneark-tjenerapplikasjonen 13 blir også varslet om eksistensen av arbeidsboken 6, og de forskjellige dataobjektene inneholdt i arbeidsboken kan da bli gjort tilgjengelige som tjener-datakilder. Man må forstå at brukeren kan gis mulighet til å spesifisere hvilke av de forskjellige dataobjektene i arbeidsboken 6 som skal gjøres tilgjengelig av regnearktjenerapplikasjonen 13 som datakilder. Alternativt kan alle data objektene i en arbeidsbok 6 bli gjort tilgjengelige som dataobjekter, eller en bruker kan gis mulighet til å angi at ingen dataobjekter i arbeidsboken 6 skal gjøres tilgjengelige som datakilder.
Når arbeidsboken 6 er overført til lageret 14 og analysert av regneark-tjenerapplikasjonen 13, kan database-baserte klientapplikasjoner, så som OLAP-klientapplikasjonen 8 eller regneark-klientapplikasjonen 4, anvendes for å be om innholdet i arbeidsboken 6 som en datakilde. Ytterligere detaljer vedrørende de forskjellige funksjonene som utføres av regneark-tjenerapplikasjonen 13 for å tilgjengeliggjøre innholdet i arbeidsboken 6 som en datakilde og å motta og svare på forespørsler med spørringer til datakilden, vil bli beskrevet nærmere nedenfor i forbindelse med figur 5. Fra trinn 312 fortsetter fremgangsmåten 300 til trinn 314, der den avsluttes.
Nå med henvisning til figur 4 vil et eksempel på brukergrensesnitt bli beskrevet for å la en bruker redigere metadataene generert av regneark-klientapplikasjonen 4 for de forskjellige datakildene inneholdt i en arbeidsbok 6. Figur 4 viser et brukergrensesnitt-vindu 30 som inneholder et antall komponenter for å redigere metadataene. Spesielt er en listeboks 32 tilveiebrakt som lister hvert av de tilgjengelige feltene 34A-34N for datakildene inneholdt i arbeidsboken 6. Relasjoner mellom de forskjellige feltene 34A-34N kan være angitt i listeboksen 32 for å vise relasjonene mellom de forskjellige feltene identifisert av regneark-klientapplikasjonen 4. For eksempel, som vist i figur 4, kan feltene tid, år, måned og dato være forskjellig innrykket for å vise relasjonen mellom de forskjellige feltene.
Flere knapper 36A-36F kan også være tilveiebrakt for å la brukeren bestemme rekkefølgen og hierarkiet til feltene 34A-34N vist i listeboksen 32. For eksempel lar knappene 36A-36D henholdsvis brukeren flytte de forskjellige feltene opp, ned, til høyre eller til venstre. Knappen 36E kan anvendes for å kopiere ett av feltene 34A-34N, og knappen 36F kan anvendes for å opprette et nytt datafelt.
Som også er vist i figur 4 kan ett av feltene vist i listeboksen 32 bli selektert av en bruker og egenskapene for feltet kan bli vist i vinduet 30. Som et eksempel, som illustrert i figur 4, er feltet 34N, som representerer et postnummer, selektert. Følgelig er feltnavnet vist med bruk av tekst 38. Datatypen og aggregeringen tildelt postnummerfeltet av regneark-klientapplikasjonen 4 er også vist. En nedtrekksmeny 40A kan være tilveiebrakt for å endre datatypens egenskaper fra et nummer til en datastreng, for eksempel. Tilsvarende kan en nedtrekksmeny 40B være tilveiebrakt for å la en bruker endre verdien til aggregeringsfeltet fra en sum til et antall. Man må forstå at andre typer redigeringsoperasjoner kan muliggjøres gjennom brukergrensesnittvinduet 30 utover de som er illustrert i figur 4 og beskrevet her. Når en bruker er ferdig med å redigere, kan knappen 42 aktiveres for å lagre endringene eller knappen 44 kan aktiveres for å avbryte redigeringen og kansellere endringene.
Med henvisning til figur 5 vil nå et eksempel på fremgangsmåte 500 bli beskrevet som viser trinnene som utføres av regneark-tjenerapplikasjonen 13 for å motta og svare på forespørsler om celleintervaller i en arbeidsbok som datakilder. Fremgangsmåten 500 begynner i trinn 502, der regneark-tjenerapplikasjonen 13 tilgjengeliggjør de forskjellige celleintervallene i arbeidsbøker inneholdt i lageret 14 som tjener-datakilder. I én utførelsesform av oppfinnelsen tilgjengeliggjøres datakildene gjennom en dataforbindelsesstyrer så som den beskrevet i den samtidig innleverte U.S.-patentsøknaden med tittel "Method, System, and Apparatus for Discovering and Connecting to Data Sources", som med dette inntas her som referanse. (Attorney Docket nr. 60001.0338US01). Alternativt kan datakildene inneholdt i arbeidsboken lagret i lageret 14 tilgjengeliggjøres med bruk av andre typer tjenergrensesnitt, så som UDM. Når regneark-tjenerapplikasjonen 13 har gjort de forskjellige datakildene tilgjengelige, kan en klientapplikasjon så som OLAP-klientapplikasjonen 8 eller regneark-klientapplikasjonen 4 utforske kilder og fremsette forespørsler til de forskjellige datakildene.
Fremgangsmåten 500 fortsetter fra trinn 502 til trinn 504, der regneark-tjenerapplikasjonen 13 mottar en forespørsel om å opprette forbindelse til en arbeidsbok som en tjener-datakilde. For eksempel kan i trinn 506 en regnearktjenerapplikasjon 13 motta en intern spørring vedrørende etdataobjekt inneholdt i et celleintervall i en arbeidsbok. For eksempel kan OLAP-klientapplikasjonen sende en intern OLAP-spørring til regneark-tjenerapplikasjonen 13. Alternativt kan andre typer spørringer bli sendt til regneark-tjenerapplikasjonen 13, for eksempel ODB-, ODBC-, XML-A- og SQL-spørringer. Andre standarder for å spørre en database som er kjente for fagmannen kan også anvendes.
I trinn 508 laster regneark-tjenerapplikasjonen 13 arbeidsboken 6 som inneholder datakilden som en spørring er rettet til. Når arbeidsboken 6 er lastet av regneark-tjenerapplikasjonen 13, fortsetter fremgangsmåten 500 til trinn 510, der regneark-tjenerapplikasjonen 13 sjekker om arbeidsboken 6 inneholderen referanse til en annen datakilde. For eksempel, som beskrevet kort over, kan arbeidsboken inneholde en referanse til en datakilde, så som datakilden 16.
Dersom arbeidsboken 6 inneholder en referanse til en annen datakilde, hopper fremgangsmåten 500 til trinn 512, der regneark-tjenerapplikasjonen 13 spør datakilden 16 om eventuelle data som er nødvendige for å beregne arbeidsboken 6. Når disse dataene er mottatt av regneark-tjenerapplikasjonen 13, opp-dateres arbeidsboken 6 med de mottatte dataene.
Dersom det i trinn 510 bestemmes at arbeidsboken 6 ikke inneholder en referanse til en annen datakilde, fortsetter fremgangsmåten 500 til trinn 514.1 trinn 514 beregner regneark-tjenerapplikasjonen 13 innholdet i arbeidsboken 6 på nytt. Man vil forstå at omberegningen av arbeidsbokens innhold kan være en "big value-add". En "big value-add" muliggjør beregning av regneark i en tjenerdatakilde. Fra trinn 514 fortsetter fremgangsmåten 500 til trinn 516, der regneark-tjenerapplikasjonen 13 genererer en databaserepresentasjon av den omberegnede arbeidsboken. Spesielt blir en midlertidig databaserepresentasjon, for eksempel en relasjonsdatabase eller en OLAP-kube, generert av regneark-tjenerapplikasjonen 13. Databaserepresentasjonen genereres midlertidig for å gjennomføre den ønskede spørringen mot den identifiserte datakilden.
Når databaserepresentasjonen av den aktuelle arbeidsboken er generert, fortsetter fremgangsmåten 500 til trinn 518, der regneark-tjenerapplikasjonen 13 gjennomfører den ønskede spørringen på databaserepresentasjonen av den omberegnede arbeidsboken. Som reaksjon på spørringen blir det generert et spørreresultat som tilgodeser forespørselen innledningsvis mottatt fra klientapplikasjonen. Fra trinn 518 fortsetter fremgangsmåten 500 til trinn 520, der regneark-tjenerapplikasjonen 13 svarer på den opprinnelige forespørselen med det genererte spørreresultatet. Fra trinn 520 fortsetter fremgangsmåten 500 til trinn 522, der den avsluttes.
På grunnlag av det foregående skulle man forstå at de forskjellige utførel-sesformer av oppfinnelsen omfatter en fremgangsmåte, et system, en anordning og et datamaskin-lesbart medium for å tilgjengeliggjøre og anvende celleintervaller i en arbeidsbok som tjener-datakilder. Beskrivelsen, eksemplene og informasjonen over gir en fullstendig beskrivelse av realisering og bruk av oppfinnelsen. Siden mange utførelsesformer av oppfinnelsen er mulige innenfor oppfinnelsens ramme defineres oppfinnelsen av de etterfølgende kravene.

Claims (16)

1. Fremgangsmåte for å tilgjengeliggjøre innholdet i en arbeidsbok som en tjener-datakilde, der fremgangsmåten omfatter det å: spesifisere hvilke dataobjekter som skal gjøres tilgjengelige som tjenerdatakilder, tilgjengeliggjøre de spesifiserte dataobjekter, motta (506) en databasespørring vedrørende et celleintervall i en arbeidsbok, som reaksjon på forespørselen, omberegne (514) celleintervallet, generere (516) en databaserepresentasjon av det omberegnede celleintervallet, foreta (518) den etterspurte spørringen på databaserepresentasjonen av det omberegnede celleintervallet for å frembringe et spørreresultat, og sende (520) spørreresultatet som et svar på databasespørringen.
2. Fremgangsmåte ifølge krav 1, videre omfattende det å: bestemme hvorvidt arbeidsboken inneholder en referanse til en datakilde, som reaksjon på at det bestemmes at arbeidsboken inneholder en referanse til en datakilde, innhente fra datakilden dataene som er nødvendige for å beregne arbeidsboken, og omberegne celleintervallet med bruk av dataene innhentet fra datakilden.
3. Fremgangsmåte ifølge krav 2, der databasespørringen mottas fra en OLAP-klientapplikasjon.
4. Datamaskin-lesbart medium som lagrer datamaskin-eksekverbare instruksjoner som når de eksekveres av en datamaskin, vil forårsake at datamaskinen utfører fremgangsmåten ifølge krav 1.
5. Fremgangsmåte for å publisere et celleintervall i en arbeidsbok som en tjener-datakilde, idet fremgangsmåten omfatter det å: tilveiebringe en mekanisme for å opprette eller redigere (302) en arbeidsbok som lagrer et celleintervall som inneholder ett eller flere dataobjekter, generere (304) metadata for det ene eller de flere dataobjektene, der nevnte metadata er for bruk av en tjenermaskin når den svarer på forespørsler om det ene eller de flere dataobjektene som en tjener-datakilde, og publisere (312) arbeidsboken og metadataene til tjenermaskinen, hvorved dataobjektene gjøres tilgjengelige ved tjenermaskinen som tjener-datakilder.
6. Fremgangsmåte ifølge krav 5, videre omfattende det å: motta en forespørsel fra en bruker om å redigere metadataene for det ene eller de flere objektene, og som reaksjon på forespørselen om å redigere metadataene, tilby en mekanisme som lar en bruker redigere metadataene.
7. Datamaskin-lesbart medium som lagrer datamaskin-eksekverbare instruksjoner som når de eksekveres av en datamaskin, vil forårsake at datamaskinen ut-fører fremgangsmåten ifølge krav 5.
8. Fremgangsmåte for å tilgjengeliggjøre og bruke en blokk av celler i en arbeidsbok som en tjener-datakilde, idet fremgangsmåten omfatter det å utføre trinnene: fremgangsmåten i følge et av kravene 5 eller 6, og fremgangsmåten i følge et av kravene 1 - 3.
9. Datamaskin-lesbart medium som lagrer datamaskin-eksekverbare instruksjoner som når de eksekveres av en datamaskin, vil forårsake at datamaskinen utfører fremgangsmåten ifølge krav 8.
10. System for å tilgjengeliggjøre og anvende et celleintervall i en arbeidsbok (6) som en tjenerdatakilde, idet systemet omfatter: en klientmaskin (2) som kjører et regnearkprogram (4) for å opprette eller redigere en arbeidsbok med ett eller flere celleintervaller som inneholder ett eller flere dataobjekter, der regnearkprogrammet videre kan publisere arbeidsboken til en tjenermaskin (12A), og for å generere (304) metadata for det ene eller de flere dataobjektene for å aksessere det ene eller de flere dataobjektene, og en tjenermaskin (12A) som kjører et tjenerprogram for å tilgjengeliggjøre dataobjektene inneholdt i arbeidsboken som tjener-datakilder og for å motta og svare på forespørsler rettet mot tjenerdatakildene.
11. System ifølge krav 10, der regnearkprogrammet videre genererer og lagrer metadata i arbeidsboken for det ene eller de flere dataobjektene, der nevnte metadata er for bruk av tjenermaskinen når den svarer på forespørsler om det ene eller de flere dataobjektene som tjener-datakilder.
12. System ifølge krav 11, der regnearkprogrammet videre tilbyr en mekanisme for å la en bruker redigere metadataene.
13. System ifølge krav 12, videre omfattende en andre klientmaskin som kjører et applikasjonsprogram for å fremsette spørringer mot en tjener-datakilde, og der tjenerprogrammet videre kan motta og svare på en databasespørring fra den andre klientmaskinen til tjener-datakilden.
14. System ifølge krav 13, der det å svare på en databasespørring fra den andre klientmaskinen omfatter det å: omberegne arbeidsboken, generere en databaserepresentasjon av den omberegnede arbeidsboken, foreta den etterspurte spørringen på databaserepresentasjonen av den omberegnede arbeidsboken for å frembringe et spørreresultat, og sende spørreresultatet til den andre klientmaskinen som svar på database-spørringen.
15. System ifølge krav 14, der det å svare på en databasespørring fra den andre klientmaskinen videre omfatter det å: bestemme hvorvidt arbeidsboken inneholder en referanse til en datakilde, som reaksjon på at det blir bestemt at arbeidsboken inneholder en referanse til en datakilde, innhente fra datakilden dataene som er nødvendige for å beregne arbeidsboken, og omberegne arbeidsboken med bruk av dataene innhentet fra datakilden.
16. System ifølge krav 15, der applikasjonen som kjører på den andre klientmaskinen omfatter en OLAP-klientapplikasjon.
NO20052613A 2004-06-01 2005-05-31 Fremgangsmate, system og anordning for a tilby arbeidsbokomrader som datakilder NO332884B1 (no)

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
NO20052613D0 NO20052613D0 (no) 2005-05-31
NO20052613L NO20052613L (no) 2005-12-02
NO332884B1 true NO332884B1 (no) 2013-01-28

Family

ID=35063258

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20052613A NO332884B1 (no) 2004-06-01 2005-05-31 Fremgangsmate, system og anordning for a tilby arbeidsbokomrader som datakilder

Country Status (20)

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

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
WO2007059205A2 (en) * 2005-11-15 2007-05-24 Rockwell Automation 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
US20090089315A1 (en) * 2007-09-28 2009-04-02 Tractmanager, Inc. System and method for associating metadata with electronic documents
US10133719B2 (en) * 2007-09-28 2018-11-20 Microsoft Technology Licensing, Llc Spreadsheet workbook part libraries
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

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2096923C1 (ru) 1992-06-16 1997-11-20 Самсунг Электроникс Ко., Лтд. Аудиовизуальное средство магнитной записи, устройство для записи и устройство для восстановления сигналов
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
US6012057A (en) * 1997-07-30 2000-01-04 Quarterdeck Corporation High speed data searching for information in a computer system
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
US6549935B1 (en) 1999-05-25 2003-04-15 Silverbrook Research Pty Ltd Method of distributing documents having common components to a plurality of destinations
US6411313B1 (en) * 1999-06-14 2002-06-25 Microsoft Corporation User interface for creating a spreadsheet pivottable
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
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
US6473750B1 (en) 1999-10-15 2002-10-29 Microsoft Corporation Adaptive query execution in a distributed database system
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
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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
NO332884B1 (no) Fremgangsmate, system og anordning for a tilby arbeidsbokomrader som datakilder
US7991804B2 (en) Method, system, and apparatus for exposing workbooks as data sources
JP4726545B2 (ja) データソースを発見して接続するための方法、システムおよび装置
US8392875B2 (en) Content management framework for use with a system for application development
US20060265394A1 (en) Personalizable information networks
CN103226478A (zh) 一种自动生成并使用代码的方法
EP2800013B1 (en) Integration database framework
US7720831B2 (en) Handling multi-dimensional data including writeback data
US7587416B2 (en) Advanced desktop reporting
JP2022093293A (ja) エクセルツールを用いたオンラインレポート作成システム
Peng et al. Using object deputy model to prepare data for data warehousing
KR20020066151A (ko) 개방형 gis 기반의 공간정보 유통시스템 및 방법
Russo et al. Tabular Modeling in Microsoft SQL Server Analysis Services
Naik Accessing data from multiple heterogeneous distributed database systems
Garzinová Creation of Database Applications
Webb et al. Data Destinations

Legal Events

Date Code Title Description
CHAD Change of the owner's name or address (par. 44 patent law, par. patentforskriften)

Owner name: MICROSOFT TECHNOLOGY LICENSING, US

MM1K Lapsed by not paying the annual fees