NO332884B1 - Fremgangsmate, system og anordning for a tilby arbeidsbokomrader som datakilder - Google Patents
Fremgangsmate, system og anordning for a tilby arbeidsbokomrader som datakilderInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000004044 response Effects 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements 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.
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)
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)
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 |
-
2004
- 2004-06-01 US US10/858,175 patent/US7664804B2/en active Active
-
2005
- 2005-05-17 SG SG200503165A patent/SG117588A1/en unknown
- 2005-05-17 IL IL168620A patent/IL168620A/en unknown
- 2005-05-18 TW TW094116168A patent/TWI411928B/zh not_active IP Right Cessation
- 2005-05-23 ZA ZA200504159A patent/ZA200504159B/en unknown
- 2005-05-24 AU AU2005202284A patent/AU2005202284B2/en not_active Ceased
- 2005-05-27 CN CNB2005100896528A patent/CN100547586C/zh active Active
- 2005-05-27 MY MYPI20052414A patent/MY142330A/en unknown
- 2005-05-30 NZ NZ540421A patent/NZ540421A/en not_active IP Right Cessation
- 2005-05-30 KR KR1020050045690A patent/KR101122947B1/ko active IP Right Grant
- 2005-05-30 EG EG2005050260A patent/EG23841A/xx active
- 2005-05-31 CA CA2508933A patent/CA2508933C/en active Active
- 2005-05-31 BR BRPI0501959-1A patent/BRPI0501959B1/pt not_active IP Right Cessation
- 2005-05-31 NO NO20052613A patent/NO332884B1/no not_active IP Right Cessation
- 2005-05-31 RU RU2005116632/08A patent/RU2406147C2/ru active
- 2005-05-31 EP EP05104661.3A patent/EP1605367B1/en active Active
- 2005-06-01 JP JP2005161207A patent/JP4907906B2/ja active Active
- 2005-06-01 CO CO05053195A patent/CO5710208A1/es not_active Application Discontinuation
- 2005-06-01 MX MXPA05005856A patent/MXPA05005856A/es active IP Right Grant
-
2006
- 2006-05-18 HK HK06105755.8A patent/HK1085818A1/zh not_active IP Right Cessation
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 |