NO332246B1 - Fremgangsmate for a forsinke lasing av tjener-filer under redigering. - Google Patents

Fremgangsmate for a forsinke lasing av tjener-filer under redigering. Download PDF

Info

Publication number
NO332246B1
NO332246B1 NO20040830A NO20040830A NO332246B1 NO 332246 B1 NO332246 B1 NO 332246B1 NO 20040830 A NO20040830 A NO 20040830A NO 20040830 A NO20040830 A NO 20040830A NO 332246 B1 NO332246 B1 NO 332246B1
Authority
NO
Norway
Prior art keywords
file
user
computer
edit
trigger event
Prior art date
Application number
NO20040830A
Other languages
English (en)
Other versions
NO20040830L (no
Inventor
Noah Edelstein
Hani Saliba
Hai Liu
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 NO20040830L publication Critical patent/NO20040830L/no
Publication of NO332246B1 publication Critical patent/NO332246B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B23/00Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes
    • G09B23/24Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes for chemistry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • 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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Chemical & Material Sciences (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Medicinal Chemistry (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

En tjener er implementert med en modifisert filåpningshandling som, når en bruker utfører den modifiserte filåpningen, innledningsvis åpner en fil uten å låse filen. Når en bruker angir (enten eksplisitt eller implisitt) at han eller hun forøker eller har til hensikt å åpne filen, kan filen da bli låst for redigering. På denne måten er standardhandlingen når en bruker ber om en fil det å åpne filen uten å nekte andre brukere tilgang til filen. Deretter, når brukeren angir at han eller hun vil editere filen, blir låsen for filen akkvirert.

Description

[0001] Den foreliggende oppfinnelse vedrører området dokumentstyring, og spesielt en fremgangsmåte og et system for å forsinke låsing av tjenerfiler som aksesseres av en bruker.
[0002] Tjenerdatamaskiner så som webservere kan tjene to formål. En tjener kan bli anvendt som et publiseringssted hvor en bruker kan aksessere innhold. En tjener kan også bli anvendt som et samarbeidsmiljø, hvor to eller flere brukere kan samarbeide om et dokument. Hver bruker kan oppdatere eller på annen måte redigere dokumentet. Når en tjener blir anvendt som et publiseringssted, kan den levere ut en individuell kopi av en fil til en hvilken som helst bruker som ber om filen, mens versjonen på tjeneren opprettholdes uten endringer. Når en tjener blir anvendt som et samarbeidsmiljø, kan den tillate en bruker som ønsker å redigere filen tilgang til den nyeste versjonen. Ofte blir imidlertid en tjener anvendt for begge disse formålene samtidig, idet den støtter både publiserings- og samarbeids-funksjonalitet.
[0003] En slik todelt bruk skaper et problem. Dersom for eksempel tjeneren er en webserver, vil standardmekanismen for å aksessere en fil på en webserver (ved å klikke på en hyperlenke) bare utføre én av to mulige handlinger. Avhengig av typen hyperlenke og webserver, vil det å klikke på en hyperlenke enten føre til at det blir generert en kopi av filen som brukeren kan lese uten å endre den originale filen, eller føre til at filen blir åpnet på tjeneren, der brukeren tillates å redigere filen. Når en fil åpnes for redigering, blir den låst, og ingen andre brukere tillates å redigere den.
[0004] Generelt kan en fil bli åpnet med forskjellige rettigheter gitt til den brukeren som åpner filen. Når filen åpnes for lesing, blir den åpnet med kun leserettigheter, hvilket tillater brukeren å lese/browse filen eller på annen måte se eller anvende dataene i filen, så lenge dataene ikke blir endret. Når filen åpnes for redigering, blir den åpnet med både lese- og skriverettigheter, hvilket gir brukeren samme privilegier som over, men også tillater brukeren å modifisere dataene eller føye til dem. Når en fil blir åpnet med både lese- og skriveaksess, låses filen. Denne låsingen av filen sikrer at kun én bruker modifiserer filen om gangen, og hindrer med det konflikt mellom endringer foretatt av to eller flere brukere.
[0005] Et problem oppstår når standardhandlingen ikke er den som brukeren ønsker. Dersom for eksempel brukeren ønsker å redigere filen, og standardhandlingen er å åpne en kopi for lesing, gis ikke brukeren den ønskede funksjonaliteten. Tilsvarende, dersom standardhandlingen er å åpne filen for redigering, men brukeren kun ønsker å lese filen, låses filen, og en annen bruker som ønsker å redigere filen vil ikke være i stand til dette. En bruker som åpner filen for lesing og senere ønsker å redigere filen, må lukke filen og deretter åpne den på nytt for redigering. Vest, M.J., "Vice file system services", 7 august 1984, beskriver et vise-filsystem samt tjenester og datastrukturer som er knyttet til dette. Låsekommandoen brukes for å serialisere bruken av en fil. Låseforespørsler kan kun sendes til bestyreren av filen. Låsen kan kun frigjøres på den samme forbindelse som den ble ervervet. Forespørselen returnerer et tidsstempel fra filen, der tidsstempelet som returneres er den sist modifiserte tiden. En leseforespørsel får en tilsvarende returkode i tilfellet av at brukeren allerede innehar en lese- eller skrive-lås på det samme bane-navn, eller i tilfellet av at noen andre har en skrive-lås på banenavnet. En skrive-forespørsel vil få en tilsvarende returkode hvis brukeren innehar en skrive-lås på banenavnet, eller hvis brukeren innehar lese-låsen på banenavnet vil låsen endres til en skrive-lås, eller hvis noen andre har en lese- eller skrive-lås for banenavnet.
[0006] Det er et formål med den foreliggende oppfinnelse å forbedre fleksibiliteten til en fremgangsmåte for låsing av en fil. Dette formålet løses ved hjelp av oppfinnelsen ifølge de selvstendige patentkrav. Ytterligere trekk ved oppfinnelsen er angitt i de uselvstendige patentkrav. En tjener er implementert med en modifisert filåpningshandling som, når en bruker utfører den modifiserte filåpningen, innledningsvis åpner en fil uten å låse filen. Når en bruker angir (enten eksplisitt eller implisitt) at han eller hun forsøker eller har til hensikt å åpne filen, kan filen da bli låst for redigering. På denne måten er standardhandlingen når en bruker ber om en fil å åpne filen uten å nekte andre brukere tilgang til filen. Deretter, når brukeren angir at han eller hun ønsker å editere filen, blir låsen for filen akkvirert.
[0007] Den foregående oppsummeringen, så vel som den følgende detaljerte beskrivelsen av foretrukne utførelsesformer, vil bli forstått bedre når de leses sammen med de vedlagte figurene. For det formål å illustrere oppfinnelsen, er det i figurene vist eksempler på utførelse av oppfinnelsen. Oppfinnelsen er imidlertid ikke begrenset til de spesifikke fremgangsmåter og virkemidler som er beskrevet.
[0008] Figur 1 er et blokkdiagram som viser et eksempel på datamiljø i hvilket aspekter ved oppfinnelsen kan bli realisert,
[0009] Figur 2 er et funksjonelt diagram som illustrerer et eksempel på en relasjon mellom en tjenerdatamaskin, et nettverk, en brukerdatamaskin og andre datamaskiner,
[0010] Figur 3 er et flytdiagram som viser forsinket låsing i henhold til én utførelses-form av foreliggende oppfinnelse, og
[0011] Figur 4 er et flytdiagram som viser forsinket låsing i henhold til én utførelses-form av oppfinnelsen.
[0012] For å gi fleksibilitet når en bruker åpner et dokument på en felles tjener, er en modifisert åpning implementert. Når den modifiserte åpningen blir anvendt for å åpne en fil, blir filen åpnet med kun leseaksess. Bare når og dersom den brukeren som har åpnet filen med bruk av den modifiserte åpningen angir av han eller hun ønsker å redigere filen, blir låsen for filen akkvirert, hvilket gir brukeren både lese-og skriverettigheter og hindrer at andre brukere får skriveaksess til den aktuelle filen.
Eksempel på databehandlingsanordning
[0013] Figur 1 og den følgende beskrivelsen er ment for å gi en kort, generell beskrivelse av et egnet databehandlingsmiljø i hvilket oppfinnelsen kan bli implementert. Det skal imidlertid forstås at håndholdte, bærbare og andre dataanordninger og databehandlende objekter av alle typer er tenkelige for anvendelse i forbindelse med foreliggende oppfinnelse, som beskrevet over. Selv om en generell datamaskin er beskrevet nedenfor, er dette således kun ett mulig eksempel, og foreliggende oppfinnelse kan bli implementert i andre databehandlingsanordninger, så som en tynn klient som har nettverk/buss-interopera-bilitetog -vekselvirkning. Foreliggende oppfinnelse kan således implementeres i et miljø av nettverksomfattede tjenester der veldig lite eller minimalt med klient-ressurser er påkrevet, f.eks. et nettverksmiljø der klientanordningen kun tjener som et grensesnitt mot nettverket/bussen, så som et objekt anordnet i et apparat, eller også andre databehandlende anordninger og objekter. Kort sagt er hvor som helst hvor data kan bli lagret eller hvorfra data kan bli hentet ut et egnet sted for operasjon i henhold til oppfinnelsen.
[0014] Selv om det ikke er nødvendig, kan oppfinnelsen være implementert via et operativsystem, for bruk av en utvikler av tjenester for en anordning eller et objekt, og/eller innlemmet i applikasjonsprogrammer som opererer i henhold til oppfinnelsen. Programvare kan beskrives i den generelle sammenhengen datamaskin-eksekverbare instruksjoner, så som programmoduler, som blir eksekvert av én eller flere datamaskiner, så som klientarbeidsstasjoner, tjenere eller andre anordninger. Generelt omfatter programmoduler rutiner, programmer, objekter, komponenter, datastrukturer og liknende som utfører spesifikke oppgaver eller implementerer spesifikke abstrakte datatyper. Funksjonaliteten til program-modulene kan typisk kombineres eller distribueres som ønsket i forskjellige utførelsesformer. Videre vil fagmannen forstå at oppfinnelsen kan tilpasses andre typer datastrukturer. Andre velkjente datasystemer, -miljøer og/eller -strukturer som kan være egnet for anvendelse med oppfinnelsen omfatter, men er ikke begrenset til, personlige datamaskiner (PCer), automatiserte kassaapparater, tjenerdatamaskiner, håndholdte anordninger eller laptop-anordninger, fler-prosessorsystemer, mikroprosessorbaserte systemer, programmerbar forbruker-elektronikk, personlige datamaskiner i nettverk, husholdningsapparater, lamper, miljøstyringselementer, minidatamaskiner, stormaskiner og liknende. Oppfinnelsen kan også tilpasses distribuerte databehandlingsmiljøer der oppgaver blir utført av fjernprosesseringsanordninger som er forbundet gjennom et kommunikasjons-nettverk eller en buss, eller et annet dataoverføringsmedium. I et distribuert databehandlingsmiljø kan programmoduler befinne seg i både lokale og eksterne datamaskinlagringsmedier som omfatter minnelagringsanordninger, og klientnoder kan også opptre som tjenernoder.
[0015] Figur 1 illustrerer således et eksempel på et egnet datamiljø 100 i hvilket oppfinnelsen kan bli implementert, selv om, som presisert ovenfor, datamiljøet 100 bare er ett mulig eksempel på et egnet datamiljø og ikke er ment for å antyde noen begrensning vedrørende oppfinnelsens bruksområde eller funksjonalitet. Heller ikke skal datamiljøet 100 fortolkes å ha noen som helst avhengighet eller krav vedrørende noen enkelt eller noen kombinasjon av komponenter som er illustrert i det eksemplifiserte datamiljøet 100.
[0016] Som kan sees i figur 1, omfatter et eksempel på system for å implementere oppfinnelsen en generell databehandlingsanordning i form av et datasystem 110. Komponenter av datasystemet 110 kan omfatte, men er ikke begrenset til, en prosesseringsenhet 120, et systemminne 130 og en systembuss 121 som kopler forskjellige systemkomponenter omfattende systemminnet til prosesseringsenheten 120. Systembussen 121 kan være en hvilken som helst av mange typer busstrukturer, omfattende en minnebuss eller minnekontroller, en periferenhet-buss og en lokal buss, som anvender en hvilken som helst av en rekke alternative bussarkitekturer. Som eksempler, og uten begrensning, omfatter slike arkitekturer en ISA (Industry-Standard-Architecture)-buss, en MCA (Micro-Channel-Architecture)-buss, en EISA (Enhanced ISA)-buss, en lokal VESA (Video-Electronics-Standards-Association)-buss og en PCI (Peripheral-Component-lnterconnect)-buss (også kjent som en Mezzanine-buss).
[0017] Datasystemet 110 omfatter typisk et antall datamaskinlesbare medier. Et datamaskinlesbart medium kan være et hvilket som helst tilgjengelig medium som kan aksesseres av datasystemet 110, og omfatter både volatile og ikke-volatile medier samt flyttbare og ikke-flyttbare medier. Som eksempler, uten begrensning, kan datamaskinlesbare medier omfatte datamaskinlagringsmedier og kommunikasjonsmedier. Datamaskin-lagringsmedier omfatter både volatile og ikke-volatile og flyttbare og ikke-flyttbare medier som er realisert med en hvilken som helst fremgangsmåte eller teknologi for lagring av informasjon så som datamaskinlesbare instruksjoner, datastrukturer, programmoduler eller andre data. Datamaskin-lagringsmedier omfatter, men er ikke begrenset til, RAM (Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable Program-mable Read Only Memory), flash-minne eller annen minneteknologi, CD-ROM (Compact Dise Read Only Memory), DVD (Digital Versatile Disk) eller andre optisk-disk lagre, magnetkasetter, magnetbånd, magnetdisklagre eller andre magnet-lagringsanordninger, eller et hvilket som helst annet medium som kan anvendes for å lagre den ønskede informasjonen og som kan aksesseres av datasystemet 110. Kommunikasjonsmedier inneholder typisk datamaskinlesbare instruksjoner, data strukturer, programmoduler eller andre data i et modulert datasignal så som en bærebølge eller en annen transportmekanisme, og omfatter ethvert informasjons-leveringsmedium. Med betegnelsen "modulert datasignal" menes et signal som får én eller flere av sine karakteristika satt eller endret på en slik måte at det innkodes informasjon i signalet. Som et eksempel, og uten begrensning, omfatter kommunikasjonsmedier kablede medier så som et kabelnettverk eller en direktekoplet forbindelse, samt trådløse medier så som akustiske, RF-baserte, infrarøde og andre trådløse medier. Enhver kombinasjon av det ovennevnte er også omfattet innenfor rammen av datamaskinlesbare medier.
[0018] Systemminnet 130 omfatter datamaskinlagringsmedier i form av volatilt og/eller ikke-volatilt minne så som et leseminne (ROM) 131 og et direkteaksess-minne (RAM) 132. Et BIOS (basic input/output system) 133, som inneholder de grunnleggende rutinene som hjelper til å overføre informasjon mellom elementer i datasystemet 110, for eksempel under oppstart, er typisk lagret i ROM 131. RAM 132 inneholder typisk data og/eller programmoduler som er umiddelbart tilgjenge-lige for og/eller som opereres på av prosesseringsenheten 120. Som et eksempel, og uten begrensning, illustrerer figur 1 et operativsystem 134, applikasjonsprogrammer 135, andre programmoduler 136 og programdata 137.
[0019] Datasystemet 110 kan også omfatte andre flyttbare/ikke-flyttbare, volatile/ikke-volatile datamaskinlagringsmedier. Kun som et eksempel illustrerer figur 1 en harddiskstasjon 141 som leser fra eller skriver til ikke-flyttbare, ikke-volatile magnetiske medier, en magnetdiskstasjon 151 som leser fra eller skriver til en flyttbar, ikke-volatil magnetdisk 152 og en optisk-disk stasjon 155 som leser fra eller skriver til en flyttbar, ikke-volatil optisk disk 156, så som et CD-ROM eller et annet optisk medium. Andre flyttbare/ikke-flyttbare, volatile/ikke-volatile datamaskinlagringsmedier som kan anvendes i det eksemplifiserte kjøremiljøet omfatter, men er ikke begrenset til, magnetbånd kassetter, flashminnekort, DVD-plater, digitale videobånd, statisk RAM, statisk ROM og liknende. Harddiskstasjonen 141 er typisk koplet til systembussen 121 via et ikke-flyttbart minne-grensesnitt, så som grensesnittet 140, og magnetdiskstasjonen 151 og optisk-disk stasjonen 155 er typisk koplet til systembussen 121 via et flyttbart minne-grensesnitt, så som grensesnittet 150.
[0020] De stasjonene og deres tilknyttede datamaskinlagringsmedier som er diskutert ovenfor og illustrert i figur 1 besørger lagring av datamaskinlesbare instruksjoner, datastrukturer, programmoduler og andre data for datasystemet 110. I figur 1 er for eksempel harddiskstasjonen 141 vist som lagrende et operativsystem 144, applikasjonsprogrammer 145, andre programmoduler 146 og programdata 147. Merk at disse komponentene enten kan være de samme som eller forskjellige fra operativsystem 134, applikasjonsprogrammer 135, andre programmoduler 136 og programdata 137. Operativsystem 144, applikasjonsprogrammer 145, andre programmoduler 146 og programdata 147 er gitt forskjellige referansenummer herfor å illustrere det at de i det minste er forskjellige kopier. En bruker kan mate inn kommandoer og informasjon til datasystemet 110 via innmatingsanordninger så som et tastatur 162 og en pekeranordning 161, vanligvis omfattende en mus, en styreball eller en berøringsmatte. Andre innmatingsanordninger (ikke vist) kan omfatte en mikrofon, styrespak, spillkontroll, parabol-antenne, skanner eller liknende. Disse og andre innmatingsanordninger er ofte koplet til prosesseringsenheten 120 via et brukerinnmatingsgrensesnitt 160 som er koplet til systembussen 121, men kan også være tilkoplet via andre grensesnitts-og busstrukturer, så som en parallellport, en spillutgang eller en universell seriell buss (USB-port). Et grafikkgrensesnitt 182, så som Northbridge, kan også være koplet til systembussen 121. Northbridge er et chipset som kommuniserer med CPU-enheten, eller vertsprosesseringsenheten 120, og har ansvaret for akselerert grafikkport(AGP)-kommunikasjon. Én eller flere grafikkprosesseringsenheter (GPU-enheter) 184 kan stå i kommunikasjon med grafikkgrensesnittet 182.1 denne henseende omfatter GPU-enhetene 184 generelt interne (on-chip) minnelagre, så som registerlagre, og GPU-enhetene 184 kommuniserer med et videominne 186. GPU-enhetene 184 er imidlertid kun ett eksempel på en koprosessor, og det kan således være tilveiebragt en rekke forskjellige koprosesseringsanordninger i datasystemet 110. En monitor 191 eller en annen type fremvisningsanordning er også koplet til systembussen 121 via et grensesnitt, så som et skjermkort 190, som i sin tur kan kommunisere med videominnet 186. I tillegg til monitoren 191 kan datasystemer også omfatte andre periferiske utmatingsanordninger så som høyttalere 197 og en skriver 196, som kan være tilkoplet via et utmatingsgrensesnitt 195.
[0021] Datasystemet 110 kan operere i et nettverket eller distribuert miljø som anvender logiske forbindelser til én eller flere fjerndatamaskiner, så som en fjern-datamaskin 180. Fjerndatamaskinen 180 kan være en personlig datamaskin, en tjener, en ruter, en nettverks-PC, en peer-anordning eller en annen vanlig nett-verksnode, og omfatter typisk mange av eller alle de elementene som er beskrevet ovenfor i forbindelse med datasystemet 110, selv om kun en minnelagrings-anordning 181 er illustrert i figur 1. De logiske forbindelsene som er vist i figur 1 omfatter et lokalt nettverk (LAN) 171 og et regionalt nettverk (WAN) 173, men kan også omfatte andre typer nettverk/busser. Slike nettverksmiljøer er vanlige i private hjem, kontorer, bedriftsomspennende datanettverk, intranett og Internett.
[0022] Når det blir anvendt i et LAN-nettverksmiljø, er datasystemet 110 forbundet til LAN 171 via et nettverksgrensesnitt eller nettverkskort 170. Når det blir anvendt i et WAN-nettverksmiljø, omfatter datasystemet 110 typisk et modem 172 eller andre midler for å etablere kommunikasjon over WAN 173, for eksempel Internett. Modemet 172, som kan være internt eller eksternt, kan være koplet til systembussen 121 via brukerinnmatingsgrensesnittet 160 eller en annen dertil egnet mekanisme. I et nettverksmiljø kan programmoduler som er vist i forbindelse med datasystemet 110, eller deler av disse, være lagret i den eksterne minnelagrings-anordningen. Som et eksempel, og uten begrensning, illustrerer figur 1 eksterne applikasjonsprogrammer 185 som lagret i minneanordningen 181. En vil forstå at de viste nettverksforbindelsene kun er eksempler, og at andre midler for å etablere en kommunikasjonslink mellom datamaskinene kan anvendes.
[0023] Forskjellige strukturer for distribuert databehandling er og blir nå utviklet som følge av sammensmeltingen av personlig databehandling og Internett. Privatpersoner og på samme måte bedriftsbrukere er tilveiebragt med et sømløst samspillende og Web-bevisst grensesnitt for applikasjoner og dataanordninger, noe som gjør databehandlingsaktiviteter mer og mer nettleser- eller nettverks-orientert.
[0024] For eksempel omfatter MICROSOFT<®>sin .NET-plattform tjenere, bygge-blokk-tjenester, så som Web-basert datalagring, og nedlastbar anordnings-programvare. Selv om utførelseseksempler her er beskrevet i forbindelse med programvare tilveiebragt i en databehandlingsanordning, kan én eller flere deler av oppfinnelsen også bli implementert i et operativsystem, et API eller et "mellom-mann"-objekt mellom hva som helst av en koprosessor, en fremvisningsanordning og et forespørrende objekt, slik at funksjonalitet i henhold til oppfinnelsen kan utføres av, støttes i eller aksesseres via alle .NET sine språk og tjenester, så vel som i andre distribuerte databehandlingsstrukturer.
Forsinket låsing
[0025] Som kan sees i figur 2, er en fil lagret på en tjenerdatamaskin 200. En bruker med rettigheter for dette fremsetter en forespørsel om å åpne filen. Brukeren kan være koplet til tjenerdatamaskinen på mange mulige måter. For eksempel kan brukeren være direkte tilkoplet, via et lokalt nettverk (LAN), eller fjerntilkoplet via et nettverk så som Internett. I eksempelet i figur 2, er brukerdatamaskinen 230 koplet via nettverket 220 til tjenerdatamaskinen 200.
[0026] Brukeren ber om å få åpnet filen. Én mulig måte å fremlegge en slik forespørsel er ved å selektere en hyperlenke på en nettside opprettholdt av tjenerdatamaskinen 200. Når forespørselen mottas av tjeneren, lar tjeneren brukerdatamaskinen 230 åpne filen. Filen blir åpnet på brukerens datamaskin av en applikasjon 240. Denne applikasjonen kan for eksempel være en tekstbehandler, et regneark en lydavspiller eller en hvilken som helst applikasjon gjennom hvilken en bruker kan anvende dataene som blir lastet ned. I én utførelsesform selekterer brukeren en hyperlenke på en nettside som er åpnet i en nettleser på brukerdatamaskinen 230, og nettleseren åpner filen med den relevante applikasjonen.
[0027] Når filen åpnes, i én utførelsesform, blir en kopi av filen overført til et hurtigminne i brukerdatamaskinen 230. Det er kopien på tjenerdatamaskinen 200 som brukeren browser eller leser (eller på annen måte vekselvirker med, for eksempel ved å spille den av på en lydavspiller dersom filen omfatter lyddata). Innledningsvis blir filen åpnet med kun leserettigheter. På denne måten kan flere enn én bruker aksessere filen og bruke den.
[0028] I en alternativ utførelsesform, i stedet for at det blir overført en lokal kopi til brukerdatamaskinen 230, leser alle brukere med kun leserettigheter filen direkte fra tjeneren.
[0029] Låsing av filen skjer bare ved mottak av en angivelse om at brukeren ønsker å redigere filen. Låsen vil gi brukeren skriverettigheter til filen. Brukeren kan da
modifisere eller legge til data i filen.
[0030] Denne angivelsen av et ønske om å redigere kan være én av mange mulige ting. I én utførelsesform angis ønsket om å redigere ved at brukeren modifiserer filen på en eller annen måte. I en annen utførelsesform angis ønsket om å redigere eksplisitt av brukeren. Dette kan skje gjennom en spesialisert "rediger"-kommando innlemmet i applikasjonen, eller når brukeren ber om at endringer som allerede er fortatt blir lagret. I en annen utførelsesform skjer bestemmelsen av ønsket om å redigere indirekte ved at brukeren har hatt den aktuelle filen åpen en forhåndsdefinert tidsperiode. Dersom for eksempel brukeren har hatt filen åpen i lesemodus i ti minutter, kan det bli antatt at brukeren ønsker å redigere filen.
[0031] I én utførelsesform, når låsen akkvireres, blir det bestemt hvorvidt kopien av filen i hurtigminnet i brukerdatamaskinen 230 er den samme versjonen som den versjonen som på det aktuelle tidspunkt befinner seg hos tjeneren. Dette er for å sikre at redigering ikke har skjedd i mellomtiden. For eksempel åpner bruker A en første versjon av filen, men angir ikke noe ønske om å redigere den (og akkvirerer derfor ikke en lås). Dersom bruker A senere aktiverer låsing ved å fremsette et ønske om å redigere, må det sikres at den versjonen av filen som da befinner seg hos tjeneren er den samme som den bruker A har åpnet og har til hensikt å redigere. Dersom bruker B har åpnet og modifisert filen på tjenerdatamaskinen 200 i tidrommet mellom den gang bruker A åpnet filen og da bruker A angir ønske om å redigere, kan det oppstå en konflikt. I dette tilfellet bør brukeren bli presentert for konflikthåndteringsvalg.
[0032] For eksempel vil bruker A kunne ha gjort betydelige endringer av filen, og kan beslutte at endringene skal overskrive eventuelle endringer som har blitt gjort i mellomtiden. Versjonen på brukerdatamaskinen 230 blir da skrevet til tjenerdatamaskinen 200 som filen 210, og filen låses slik at bruker A har skriverettigheter. Alternativt kan bruker A beslutte å lagre den versjonen som han eller hun jobber på lokalt med et annet navn, og gjenåpne filen 210 på tjenerdatamaskinen for redigering. Andre konflikthåndteringsvalg kan også bli presentert for brukeren.
[0033] For å kunne bestemme hvorvidt kopien av filen i brukerdatamaskinen 230 er den samme versjonen som den versjonen av filen 210 som for tiden befinner seg hos tjeneren, kan versjonsinformasjon bli lagret og sammenliknet. Dette kan omfatte et versjonsnummer, informasjon om tid og dato for lagring eller andre versjonsdata. Alternativt kan det bli foretatt en full sammenlikning av tjenerfilen 210 og den lagrede versjonen i brukerdatamaskinen 230 for å bestemme hvorvidt innholdet i filene er det samme.
[0034] I en alternativ utførelsesform der en bruker ikke kopierer filen 210 til brukerdatamaskinen 230, men i stedet åpner den direkte fra tjenerdatamaskinen 200, når triggerhendelsen som angir ønsket om å redigere filen mottas, blir låsen for å redigere filen 210 aktivert for brukeren.
[0035] Som vist i figur 3, mottas i trinn 300 en forespørsel om å åpne filen. I trinn 310 blir filen åpnet. I én utførelsesform blir filen åpnet direkte fra tjeneren i lese-rmodus. I en alternativ utførelsesform tas en kopi av filen, som blir åpnet. I trinn 320 blir det bestemt at en redigeringstriggerhendelse har inntruffet. Denne redigeringstriggerhendelsen kan være at brukeren lagrer endringer av en lokal kopi av filen, når en slik eksisterer. Denne redigeringstriggerhendelsen kan også være at brukeren forsøker å endre filen selv om tjenerkopien av filen ble åpnet med kun leserettigheter. Denne redigeringstriggerhendelsen kan også være at en forbestemt tidsperiode har forløpt, en "rediger"-kommando mottatt fra en bruker eller en hvilken som helst annen hendelse som nødvendiggjør låsing av tjenerfilen for redigering.
[0036] I trinn 330 akkvireres låsen for filen. Dette låser tjenerkopien av filen for at brukeren skal kunne redigere den uten mulighet for konflikter med andre endinger.
[0037] Som vist i figur 4, kan konflikthåndtering være implementert i én utførelses-form. Som i figur 3, er det første trinnet 410 at det mottas en forespørsel om å åpne filen. I det andre trinnet 420 blir det tatt en lokal kopi av filen, og denne lokale kopien blir åpnet for redigering. I det tredje trinnet, 430, bestemmes det at en redigeringstriggerhendelse har forekommet. En sammenlikning 440 blir da gjort for å avgjøre hvorvidt versjonen av filen hos tjeneren er den samme som den versjonen som ble kopiert i trinn 420. Dersom det er den samme versjonen, blir da låsen akkvirert for filen i trinn 450. Dersom brukeren har gjort endringer i den lokale kopien av filen, kan tjenerkopien av filen bli oppdatert for å reflektere disse endringere. Dersom versjonen har blitt endret, blir konflikthåndteringsvalg presentert for brukeren i trinn 460. Dette kan føre til at låsen blir akkvirert for filen, trinn 450, men det kan imidlertid også føre til andre konflikthåndteringsvalg.
[0038] På denne måten kan en fil bli åpnet av flere brukere samtidig, som alle kan anvende innholdet i filen. Når en bruker ønsker å endre filen, blir da låsen akkvirert for brukeren, og brukeren vil bli gitt skriverettigheter til filen.
Konklusjon
[0039] Som nevnt ovenfor, selv om eksempler på utførelsesformer av foreliggende oppfinnelse har blitt beskrevet i forbindelse med forskjellige databehandlingsanordninger og nettverksarkitekturer, kan de underliggende konseptene bli anvendt med hvilke som helst databehandlingsanordninger eller datasystemer der det er ønskelig å implementere en modifisert filåpning. Fremgangsmåtene og systemene ifølge foreliggende oppfinnelse kan således anvendes med en rekke forskjellige applikasjoner og anordninger. Selv om illustrerende programmeringsspråk, navn og eksempler er valgt her for å representere forskjellige muligheter, er ikke disse språkene, navnene og eksemplene ment å være begrensende. Fagmannen vil forstå at det finnes mange måter å tilveiebringe objektkode som frembringer samme, tilsvarende eller ekvivalente systemer og fremgangsmåter som frembragt av oppfinnelsen.
[0040] De forskjellige teknikkene som er beskrevet her kan bli implementert i forbindelse med maskinvare eller programvare eller, der det er hensiktsmessig, med en kombinasjon av begge. Fremgangsmåtene og anordningene ifølge foreliggende oppfinnelse, eller visse aspekter ved eller andeler av disse, kan således være i form av programkode (dvs. instruksjoner) inneholdt i fysiske medier, så som floppy-disketter, CD-ROM, harddisker eller et hvilket som helst annet maskinlesbart lagringsmedium, idet, når programkoden blir lastet inn i og eksekvert av en maskin, så som en datamaskin, maskinen blir en anordning for å praktisere oppfinnelsen. I tilfellet med eksekvering av programkode i programmerbare datamaskiner, vil databehandlingsanordningen generelt omfatte en prosessor, et lagringsmedium som er lesbart for prosessoren (som omfatter volatile og ikke-volatile minne- og/eller lagringselementer), minst én innmatingsanordning og minst én utmatingsanordning. Ett eller flere programmer som kan anvende signal-behandlingstjenestene ifølge foreliggende oppfinnelse, f.eks. ved anvendelse av et dataprosesserings-API eller tilsvarende, er fortrinnsvis implementert i et høynivå prosedyre- eller objektorientert programmeringsspråk for å kommunisere med en datamaskin. Programmet eller programmene kan imidlertid om ønsket bli implementert i assembler- eller maskinspråk. I alle tilfeller kan språket være et kompilert eller interpretert språk, og være kombinert med maskinvare-implementasjoner.
[0041] Fremgangsmåtene og anordningene ifølge foreliggende oppfinnelse kan også praktiseres via kommunikasjoner tilveiebragt i form av programkode som blir overført over et transmisjonsmedium, for eksempel elektriske ledninger eller kabler, fiberoptikk eller en hvilken som helst annen form for overføringsmekanisme, idet, når programkoden er mottatt av, lastet inn i og blir eksekvert av en maskin, så som et EPROM, en gate-array, en programmerbar logikkanordning (PLD), en klientdatamaskin, en videoopptaker eller lignende, eller en mottakende maskin som har signalprosesseringsmulighetene som beskrevet i utførelseseksemplene ovenfor, denne maskinen blir et apparat for å praktisere oppfinnelsen. Når den er implementert i en generell prosessor, samvirker programkoden med prosessoren i å tilveiebringe et unikt apparat som opererer ved å kalle opp funksjonaliteten ifølge foreliggende oppfinnelse. I tillegg vil enhver lagringsteknikk som blir anvendt i forbindelse med foreliggende oppfinnelse alltid kunne være en kombinasjon av maskinvare og programvare.
[0042] Selv om foreliggende oppfinnelse har blitt beskrevet i forbindelse med de foretrukne utførelsesformer i de forskjellige figurene, må det forstås at andre tilsvarende utførelsesformer kan anvendes eller at det kan foretas modifikasjoner av og suppleringer til de beskrevne utførelsesformene for å utføre samme funksjon som foreliggende oppfinnelse uten å avvike fra denne. Videre skal det under-strekes at en rekke forskjellige datamaskinplattformer, omfattende operativ-systemer for håndholdte anordninger og andre applikasjonsspesifikke operativ-systemer er tenkelige, spesielt ettersom antallet trådløse nettverkede anordninger fortsetter å øke raskt. Foreliggende oppfinnelse skal derfor ikke begrenses til noen enkelt utførelsesform, men skal i stedet fortolkes i bredde og omfang i overens-stemmelse med de etterfølgende patentkravene.

Claims (22)

1. Fremgangsmåte for å forsinke låsing av en fil som blir åpnet på en data-maskinanordning, idet fremgangsmåten omfatter følgende trinn: å motta (300) en første forespørsel fra en første bruker om å åpne filen; som svar på den første forespørsel, å åpne (310) filen for lesing i en modus med kun leserettigheter, slik at filen forblir låst; å bestemme (320) at en redigeringstriggerhendelse har inntruffet med hensyn til den første bruker og den åpne filen, hvor det å bestemme at en redigeringstriggerhendelse har inntruffet omfatter trinnet med å motta, mens filen er åpen, en endring til filen; som svar på redigeringstriggerhendelsen, å akkvirere (330) en lås på filen for å endre filen fra en modus med kun leserettigheter til en lese/skrive-modus; å motta en andre forespørsel fra en andre bruker om å redigere filen; som svar på den andre forespørsel, å bestemme om filen er ulåst; hvis ulåst, å åpne filen i en modus kun for lesing; og hvis låst, å avslå forespørselen.
2. Fremgangsmåte ifølge krav 1, der trinnet med å bestemme (320) at en redigeringstriggerhendelse har inntruffet omfatter trinnet med å motta en forespørsel om å redigere filen fra den første bruker.
3. Fremgangsmåte ifølge krav 1, der trinnet med å bestemme (320) at en redigeringstriggerhendelse har inntruffet omfatter trinnet med å bestemme at den første bruker har hatt filen åpen i en forbestemt tidsperiode.
4. Fremgangsmåte ifølge krav 1, der trinnet med å åpne (310) filen omfatter trinnet med å generere en brukerkopi av filen.
5. Fremgangsmåte ifølge krav 4, der filen befinner seg på en tjenerdatamaskin og den første bruker anvender en brukerdatamaskin, idet tjenerdatamaskinen og brukerdatamaskinen er operativt forbundet, og brukerkopien av filen lagres lokalt i brukerdatamaskinen.
6. Fremgangsmåte ifølge krav 4, videre omfattende, før trinnet med å akkvirere en lås på nevnte fil, følgende trinn: å avgjøre hvorvidt filen har blitt endret siden brukerkopien ble generert, og hvor trinnet med å akkvirere en lås på filen er som svar på dersom filen ikke har blitt endret.
7. Fremgangsmåte ifølge krav 6, der trinnet med å avgjøre hvorvidt filen har blitt endret omfatter trinnet med å sammenlikne versjonsinformasjon for en gjeldende versjon av filen på tjenerdatamaskinen med versjonsinformasjon for brukerkopien.
8. Fremgangsmåte ifølge krav 6, der versjonsinformasjonen for en spesifisert versjon av filen omfatter informasjon vedrørende tidspunktet for den siste endringen av nevnte spesifiserte versjon.
9. Fremgangsmåte ifølge krav 6, videre omfattende, dersom filen har blitt endret, trinnet med å tilby ett eller flere konflikthåndteringsvalg for den første brukeren.
10. Fremgangsmåte ifølge krav 9, der nevnte konflikthåndteringsvalg omfatter mulighet for å lagre brukerkopien av filen.
11. Fremgangsmåte ifølge krav 9, der nevnte konflikthåndteringsvalg omfatter mulighet for å hente den gjeldende versjonen av filen på tjenerdatamaskinen.
12. Datamaskinlesbart lagringsmedium som har lagret derpå datamaskin-eksekverbare instruksjoner for implementering av en fremgangsmåte omfattende følgende trinn: å motta (300) en første forespørsel fra en første bruker om å åpne filen; som svar på den første forespørsel, å åpne (310) filen for den første brukeren for lesing i en modus med kun leserettigheter; å motta en andre forespørsel fra en andre bruker om å åpne filen; som svar på den andre forespørsel, å åpne filen for den andre brukeren for lesing i en modus med kun leserettigheter; å bestemme (320) at en første redigeringstriggerhendelse har inntruffet med hensyn til den første bruker og den åpne filen, hvor det å bestemme at en redigeringstriggerhendelse har inntruffet omfatter å motta, mens filen er åpen, en endring til filen; som svar på den første redigeringstriggerhendelsen, å akkvirere (330) en lås på filen for å endre filen fra en modus med kun leserettigheter til en lese/skrive-modus; å bestemme (320) at en andre redigeringstriggerhendelse har inntruffet med hensyn til den andre brukeren og den låste filen; og som svar på den andre redigeringstriggerhendelsen, å avslå redigering av den låste filen av den andre brukeren.
13. Datamaskinlesbart lagringsmedium ifølge krav 12, der bestemmelsen av (320) at en første eller en andre redigeringstriggerhendelse har inntruffet omfatter mottakelse av en forespørsel om redigering av filen fra en bruker.
14. Datamaskinlesbart lagringsmedium ifølge krav 12, der bestemmelsen av (320) at en første eller en andre redigeringstriggerhendelse har inntruffet omfatter bestemmelse at en bruker har hatt filen åpen i en forbestemt tidsperiode.
15. Datamaskinlesbart lagringsmedium ifølge krav 12, der filåpningen (310) omfatter generering av en brukerkopi av filen.
16. Datamaskinlesbart lagringsmedium ifølge krav 15, der filen befinner seg på en tjenerdatamaskin og den første bruker anvender en brukerdatamaskin, idet tjenerdatamaskinen og brukerdatamaskinen er operativt forbundet og brukerkopien av filen er lokalt i brukerdatamaskinen.
17. Datamaskinlesbart lagringsmedium ifølge krav 15, videre omfattende før akkvireringen av en lås på nevnte fil: avgjørelse om hvorvidt filen har blitt endret siden brukerkopien ble generert, og hvor trinnet med å akkvirere en lås på filen er som svar på dersom filen ikke har blitt endret.
18. Datamaskinlesbart lagringsmedium ifølge krav 17, der avgjørelsen om hvorvidt filen har blitt endret omfatter sammenlikning av versjonsinformasjon for en gjeldende versjon av filen på tjenerdatamaskinen med versjonsinformasjon for brukerkopien.
19. Datamaskinlesbart lagringsmedium ifølge krav 18, der versjonsinformasjonen for en spesifisert versjon av filen omfatter informasjon vedrørende tidspunktet for den siste endringen av nevnte spesifiserte versjon.
20. Datamaskinlesbart lagringsmedium ifølge krav 17, videre omfattende, dersom filen har blitt endret, trinnet med å tilby ett eller flere konflikthåndteringsvalg for den første brukeren.
21. Datamaskinlesbart lagringsmedium ifølge krav 20, der nevnte konflikthåndteringsvalg omfatter mulighet for lagring av brukerkopien av filen.
22. Datamaskinlesbart lagringsmedium ifølge krav 20, der nevnte konflikthåndteringsvalg omfatter mulighet for henting av den gjeldende versjonen av filen på tjenerdatamaskinen.
NO20040830A 2003-02-28 2004-02-25 Fremgangsmate for a forsinke lasing av tjener-filer under redigering. NO332246B1 (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/376,716 US8706760B2 (en) 2003-02-28 2003-02-28 Method to delay locking of server files on edit

Publications (2)

Publication Number Publication Date
NO20040830L NO20040830L (no) 2004-09-01
NO332246B1 true NO332246B1 (no) 2012-08-06

Family

ID=32771504

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20040830A NO332246B1 (no) 2003-02-28 2004-02-25 Fremgangsmate for a forsinke lasing av tjener-filer under redigering.

Country Status (19)

Country Link
US (3) US8706760B2 (no)
EP (1) EP1452981A3 (no)
JP (1) JP4455100B2 (no)
KR (1) KR101024769B1 (no)
CN (1) CN100386731C (no)
AU (1) AU2004200458A1 (no)
BR (1) BRPI0400358A (no)
CA (1) CA2458247C (no)
CO (1) CO5550076A1 (no)
IL (1) IL160355A0 (no)
MX (1) MXPA04001925A (no)
MY (1) MY150936A (no)
NO (1) NO332246B1 (no)
NZ (1) NZ531281A (no)
PL (1) PL365552A1 (no)
RU (1) RU2344476C2 (no)
SG (1) SG135020A1 (no)
TW (1) TWI379193B (no)
ZA (1) ZA200401309B (no)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706760B2 (en) * 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US20040236752A1 (en) * 2003-05-19 2004-11-25 Keli Han Document sharing in a distributed server system
US20050091215A1 (en) * 2003-09-29 2005-04-28 Chandra Tushar D. Technique for provisioning storage for servers in an on-demand environment
US8135755B2 (en) 2005-06-29 2012-03-13 Microsoft Corporation Templates in a schema editor
US7716168B2 (en) 2005-06-29 2010-05-11 Microsoft Corporation Modifying table definitions within a database application
US7487548B1 (en) * 2004-04-21 2009-02-03 Symantec Corporation Granular access control method and system
JP2006243883A (ja) * 2005-03-01 2006-09-14 Hitachi Information Technology Co Ltd 電子データファイル管理システム、管理方法及び管理プログラム
EP1927922A1 (en) * 2005-09-22 2008-06-04 JustSystems Corporation Data managing apparatus, data editing apparatus, data browsing apparatus, data managing method, data editing method, and data browsing method
CN100438416C (zh) * 2005-12-02 2008-11-26 无锡永中科技有限公司 一种实现文件协同处理的方法
US7743026B2 (en) 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
JP2007265135A (ja) * 2006-03-29 2007-10-11 Murata Mach Ltd データ管理サーバおよび通信システム
US20070233844A1 (en) 2006-03-29 2007-10-04 Murata Kikai Kabushiki Kaisha Relay device and communication system
JP4222397B2 (ja) * 2006-09-12 2009-02-12 村田機械株式会社 中継サーバ
EP1912404B1 (en) * 2006-10-11 2011-06-01 Murata Machinery, Ltd. File transfer server
EP1926285B1 (en) * 2006-10-11 2011-07-13 Murata Machinery, Ltd. Relay server
FR2912520B1 (fr) * 2007-02-13 2009-05-15 Stg Interactive Sa Procede de gestion de fichiers.
US8433693B2 (en) * 2007-04-02 2013-04-30 Microsoft Corporation Locking semantics for a storage system based on file types
US20080243847A1 (en) * 2007-04-02 2008-10-02 Microsoft Corporation Separating central locking services from distributed data fulfillment services in a storage system
US8606941B2 (en) * 2007-05-02 2013-12-10 Murata Machinery, Ltd. Relay server and relay communication system
EP1990975B1 (en) * 2007-05-09 2013-02-20 Murata Machinery, Ltd. Relay server and relay communication system
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
JP4591875B2 (ja) * 2007-12-25 2010-12-01 村田機械株式会社 中継サーバ及び中継通信システム
JP4645915B2 (ja) * 2007-12-27 2011-03-09 村田機械株式会社 中継サーバ及び中継通信システム
JP4416035B2 (ja) * 2007-12-28 2010-02-17 村田機械株式会社 中継サーバ及び中継通信システム
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
TWI455547B (zh) * 2008-09-01 2014-10-01 Murata Machinery Ltd Relay server and relay communication system
CN102239667B (zh) * 2008-09-05 2014-03-12 村田机械株式会社 中继服务器、中继通信系统和通信装置
EP2408153B1 (en) 2009-03-13 2018-10-03 Murata Machinery, Ltd. First relay server and second relay server
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
CN102193927A (zh) * 2010-03-05 2011-09-21 新奥特(北京)视频技术有限公司 一种文稿系统中文稿编辑的控制方法及装置
US8661063B2 (en) * 2010-10-12 2014-02-25 Nasuni Corporation Versioned file system with sharing
US9542237B2 (en) * 2012-09-04 2017-01-10 Red Hat Israel, Ltd. Shared locking for storage centric exclusive locks
RU2526282C2 (ru) * 2012-09-21 2014-08-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов
RU2577200C1 (ru) * 2014-10-31 2016-03-10 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
US20170193001A1 (en) * 2015-12-30 2017-07-06 Dropbox, Inc. Control transfer of shared content
GB2560010B (en) * 2017-02-24 2021-08-11 Sage Uk Ltd Data collaboration
CN110968563B (zh) * 2018-09-29 2023-11-17 华为技术有限公司 一种数据存储方法、元数据服务器及客户端
US10657228B1 (en) 2018-11-06 2020-05-19 Dropbox, Inc. Technologies for integrating cloud content items across platforms
CN114090503B (zh) * 2021-11-10 2024-06-14 中国航空工业集团公司雷华电子技术研究所 一种文件管理方法、系统、电子设备及其可读存储介质
US20230418624A1 (en) * 2022-06-24 2023-12-28 Microsoft Technology Licensing, Llc File opening optimization

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340042A (ja) 1989-07-06 1991-02-20 Nec Corp 多重アクセス装置
US5799320A (en) * 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
EP0569605A1 (de) * 1992-05-06 1993-11-18 International Business Machines Corporation Verfahren zur Zugriffsverwaltung und -steuerung mehrerer Rechner auf gemeinsame Daten
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5689699A (en) * 1992-12-23 1997-11-18 International Business Machines Corporation Dynamic verification of authorization in retention management schemes for data processing systems
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
EP1298947B1 (en) 1993-06-15 2012-01-25 RPX Corporation Telecommunications system
GB9505939D0 (en) 1995-03-23 1995-05-10 Intelligence Quotient Int A method of operating a computer system
US5615373A (en) * 1993-08-26 1997-03-25 International Business Machines Corporation Data lock management in a distributed file server system determines variable lock lifetime in response to request to access data object
US5678040A (en) * 1993-10-29 1997-10-14 Motorola, Inc. Method for managing a hierarchical design transaction
JP3488500B2 (ja) * 1994-02-07 2004-01-19 富士通株式会社 分散ファイルシステム
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
JPH0816553A (ja) * 1994-06-27 1996-01-19 Canon Inc 文書処理システム及び文書処理方法
US5628005A (en) * 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
FI98587C (fi) 1995-07-06 1997-07-10 Nokia Telecommunications Oy Järjestelmä pakettiverkon yhdistämiseksi digitaaliseen radioverkkoon
US5892954A (en) * 1995-07-07 1999-04-06 Sun Microsystems, Inc. Method and apparatus for refreshing file locks to minimize conflicting accesses to data files
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US5960173A (en) * 1995-12-22 1999-09-28 Sun Microsystems, Inc. System and method enabling awareness of others working on similar tasks in a computer work environment
ATE262196T1 (de) * 1996-08-02 2004-04-15 Hewlett Packard Co Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt
US6151609A (en) * 1996-08-16 2000-11-21 Electronic Data Systems Corporation Remote editor system
US6182247B1 (en) * 1996-10-28 2001-01-30 Altera Corporation Embedded logic analyzer for a programmable logic device
DE19647833B4 (de) 1996-11-19 2005-07-07 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur gleichzeitigen Funkübertragung digitaler Daten zwischen mehreren Teilnehmerstationen und einer Basisstation
US6021413A (en) * 1997-04-01 2000-02-01 The University Of Illinois Board Of Trustees Application-directed variable-granularity caching and consistency management
US6081807A (en) * 1997-06-13 2000-06-27 Compaq Computer Corporation Method and apparatus for interfacing with a stateless network file system server
JPH1196209A (ja) 1997-09-24 1999-04-09 Oki Electric Ind Co Ltd 共有データベースの編集方法
US6094659A (en) * 1997-09-26 2000-07-25 3Com Corporation Web server for use in a LAN modem
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6801911B1 (en) * 1997-11-21 2004-10-05 International Business Machines Corporation Data processing system and method for accessing files
US6516351B2 (en) * 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US6073161A (en) * 1997-12-16 2000-06-06 International Business Machines Corporation Method and apparatus for determining editing conflicts in a multi-authoring system
US6393437B1 (en) * 1998-01-27 2002-05-21 Microsoft Corporation Web developer isolation techniques
US6405225B1 (en) * 1998-06-17 2002-06-11 Microsoft Corporation Integrating email functionality into a word processor by incorporating an email GUI within the word processor
JP2000181863A (ja) * 1998-12-14 2000-06-30 Dream Technologies Kk 排他制御を行うクライアントサーバシステム
US6393419B1 (en) * 1999-02-08 2002-05-21 Telefonaktiebolaget Lm Ericsson (Publ) Multipoint database synchronization protocol to avoid data corruption
US6343301B1 (en) * 1999-02-24 2002-01-29 Navigation Technologies Corp. Method and system for collecting data for updating a geographic database
JP2000305831A (ja) 1999-04-22 2000-11-02 Tadamitsu Ryu 分散環境におけるファイル管理の方法、システム。
CN1154054C (zh) * 1999-06-04 2004-06-16 网络装置公司 对不同文件锁定协议强制实施统一文件锁定的方法及文件服务器
US6529905B1 (en) * 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
US7484183B2 (en) * 2000-01-25 2009-01-27 Autodesk, Inc. Method and apparatus for providing access to and working with architectural drawings on the internet
US6535893B1 (en) * 2000-02-24 2003-03-18 International Business Machines Corporation Method for estimating the elapsed time required for a log apply process
US6289000B1 (en) 2000-05-19 2001-09-11 Intellon Corporation Frame control encoder/decoder for robust OFDM frame transmissions
CN1200369C (zh) 2000-06-16 2005-05-04 未来理想科技股份有限公司 客户机服务器系统、排他控制方法和数据同步方法
AU2001287421A1 (en) * 2000-08-21 2002-03-04 Thoughtslinger Corporation Simultaneous multi-user document editing system
US8719703B2 (en) * 2000-12-08 2014-05-06 Xerox Corporation Systems and methods for editing a web page
US7222291B2 (en) * 2000-12-29 2007-05-22 International Business Machines Corporation Method and system for importing HTML forms
US7107518B2 (en) * 2001-04-03 2006-09-12 Microsoft Corporation Automating a document review cycle
US7398323B1 (en) * 2001-09-19 2008-07-08 Juniper Networks, Inc. Configuring a network router
US7051031B2 (en) * 2001-10-09 2006-05-23 Sun Microsystems, Inc. Method, system, and program for managing accesses to data objects by multiple user programs over a network
US6708313B2 (en) * 2001-12-10 2004-03-16 Charles Pfeil Parallel electronic design automation: shared simultaneous editing
US20030225764A1 (en) * 2002-05-29 2003-12-04 Smith Keith W. Method and system for displaying data in a collaborative work environment
US6993713B2 (en) * 2002-06-06 2006-01-31 International Business Machines Corporation Web content management software utilizing a workspace aware JSP servlet
US20040068505A1 (en) * 2002-10-04 2004-04-08 Chung-I Lee System and method for synchronously editing a file on different client computers
US8706760B2 (en) * 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US7602933B2 (en) 2004-09-28 2009-10-13 Westone Laboratories, Inc. Conformable ear piece and method of using and making same
EP2029614B1 (en) * 2006-05-10 2013-01-23 Janssen Pharmaceutica, N.V. Cold menthol receptor-1 antagonists
US7926748B2 (en) 2008-03-10 2011-04-19 Illinois Tool Works Inc. Generator for air-powered electrostatically aided coating dispensing device
JP5010665B2 (ja) 2009-11-02 2012-08-29 株式会社東芝 営業支援システム

Also Published As

Publication number Publication date
MY150936A (en) 2014-03-14
JP2004265415A (ja) 2004-09-24
NO20040830L (no) 2004-09-01
TW200506605A (en) 2005-02-16
US9280553B2 (en) 2016-03-08
US9594925B2 (en) 2017-03-14
CN1525324A (zh) 2004-09-01
KR101024769B1 (ko) 2011-03-24
EP1452981A2 (en) 2004-09-01
US8706760B2 (en) 2014-04-22
US20160171230A1 (en) 2016-06-16
JP4455100B2 (ja) 2010-04-21
CA2458247C (en) 2015-04-07
RU2344476C2 (ru) 2009-01-20
IL160355A0 (en) 2004-07-25
RU2004105882A (ru) 2005-08-10
PL365552A1 (en) 2004-09-06
CO5550076A1 (es) 2005-08-31
MXPA04001925A (es) 2005-04-25
CA2458247A1 (en) 2004-08-28
US20040172395A1 (en) 2004-09-02
SG135020A1 (en) 2007-09-28
BRPI0400358A (pt) 2004-12-28
AU2004200458A1 (en) 2004-09-16
KR20040077531A (ko) 2004-09-04
US20140229507A1 (en) 2014-08-14
CN100386731C (zh) 2008-05-07
ZA200401309B (en) 2005-11-30
TWI379193B (en) 2012-12-11
NZ531281A (en) 2005-07-29
EP1452981A3 (en) 2005-02-09

Similar Documents

Publication Publication Date Title
NO332246B1 (no) Fremgangsmate for a forsinke lasing av tjener-filer under redigering.
US11799984B2 (en) Installable web applications
US20230123014A1 (en) System and Methods for Integration of an Application Runtime Environment Into a User Computing Environment
US8627269B2 (en) Runtime library including a virtual file system
US20170272478A1 (en) Method To Initiate Server Based Collaboration On E-Mail Attachments
US8914730B2 (en) Unified secure virtual machine player and remote desktop client
US20070233686A1 (en) Isolated access to named resources
WO2008039241A1 (en) Methodology, system and computer readable medium for detecting and managing malware threats
MXPA04001929A (es) Un metodo para manejar estados de archivos multiples para archivos replicados.
MXPA04001927A (es) Metodo para manejar la replicacion de archivos en aplicaciones.
WO2006132770A2 (en) Changing the personality of a device
US7591021B2 (en) Object model document for obfuscating object model therein
US9026578B2 (en) Systems and methods for persisting data between web pages
JP2000347915A (ja) ドキュメント管理システムおよびドキュメント管理システムのドキュメント提供方法
Selkäinaho Web Portal for Home Buyer’s Selections
JP2003162440A (ja) ファイルサーバおよびファイルアクセス方法
Apostol et al. Objects, Properties, Methods, and Events

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