NO332246B1 - Fremgangsmate for a forsinke lasing av tjener-filer under redigering. - Google Patents
Fremgangsmate for a forsinke lasing av tjener-filer under redigering. Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 24
- 230000008859 change Effects 0.000 claims description 7
- 230000009471 action Effects 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B23/00—Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes
- G09B23/24—Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes for chemistry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2147—Locking 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.
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)
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)
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 | 株式会社東芝 | 営業支援システム |
-
2003
- 2003-02-28 US US10/376,716 patent/US8706760B2/en not_active Expired - Fee Related
-
2004
- 2004-02-10 AU AU2004200458A patent/AU2004200458A1/en not_active Abandoned
- 2004-02-12 IL IL16035504A patent/IL160355A0/xx unknown
- 2004-02-12 SG SG200400766-2A patent/SG135020A1/en unknown
- 2004-02-13 MY MYPI20040471 patent/MY150936A/en unknown
- 2004-02-16 EP EP04003415A patent/EP1452981A3/en not_active Ceased
- 2004-02-17 CA CA 2458247 patent/CA2458247C/en not_active Expired - Fee Related
- 2004-02-18 ZA ZA2004/01309A patent/ZA200401309B/en unknown
- 2004-02-20 NZ NZ531281A patent/NZ531281A/en not_active IP Right Cessation
- 2004-02-24 PL PL36555204A patent/PL365552A1/xx not_active Application Discontinuation
- 2004-02-25 CO CO04016521A patent/CO5550076A1/es not_active Application Discontinuation
- 2004-02-25 TW TW093104829A patent/TWI379193B/zh not_active IP Right Cessation
- 2004-02-25 NO NO20040830A patent/NO332246B1/no not_active IP Right Cessation
- 2004-02-26 BR BR0400358-6A patent/BRPI0400358A/pt not_active IP Right Cessation
- 2004-02-27 CN CNB2004100082898A patent/CN100386731C/zh not_active Expired - Fee Related
- 2004-02-27 MX MXPA04001925A patent/MXPA04001925A/es active IP Right Grant
- 2004-02-27 RU RU2004105882/09A patent/RU2344476C2/ru not_active IP Right Cessation
- 2004-02-27 KR KR1020040013356A patent/KR101024769B1/ko active IP Right Grant
- 2004-02-27 JP JP2004055388A patent/JP4455100B2/ja not_active Expired - Fee Related
-
2014
- 2014-04-18 US US14/256,313 patent/US9280553B2/en not_active Expired - Fee Related
-
2016
- 2016-02-01 US US15/012,179 patent/US9594925B2/en not_active Expired - Lifetime
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 |