KR100295725B1 - 공유데이터파일의사본관리방법,데이터관리시스템및컴퓨터시스템 - Google Patents

공유데이터파일의사본관리방법,데이터관리시스템및컴퓨터시스템 Download PDF

Info

Publication number
KR100295725B1
KR100295725B1 KR1019970003546A KR19970003546A KR100295725B1 KR 100295725 B1 KR100295725 B1 KR 100295725B1 KR 1019970003546 A KR1019970003546 A KR 1019970003546A KR 19970003546 A KR19970003546 A KR 19970003546A KR 100295725 B1 KR100295725 B1 KR 100295725B1
Authority
KR
South Korea
Prior art keywords
change
file
copy
shared data
shared
Prior art date
Application number
KR1019970003546A
Other languages
English (en)
Other versions
KR970066947A (ko
Inventor
스테판 지 힐드
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR970066947A publication Critical patent/KR970066947A/ko
Application granted granted Critical
Publication of KR100295725B1 publication Critical patent/KR100295725B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이동 통신 네트워크를 통해 접속될 수 있는 다수의 컴퓨터 시스템에 유지관리되는 공유 데이터 파일의 사본을 관리하는 데이터 관리 시스템 및 방법을 제공한다. 이 시스템은, 공유 데이터 파일의 각 사본(420)과 관련되며, 그 사본에 행해지는 변경의 레코드(540)를 유지하는 로깅 수단(410), 이동 통신 네트워크(460)에 대한 접속을 통하여 공유 데이터 파일의 다른 사본(420)을 위해 유지관리되는 레코드(550)를 검색하는 검색 수단, 검색된 레코드를 병합하여 변경 시퀀스를 생성하는 병합 수단(560), 변경 시퀀스에 사전정의된 규칙을 적용하여 이 변경 시퀀스 내의 충돌을 해결하는 충돌 해결 수단(590), 충돌이 해결된 변경 시퀀스를 기반으로 공유 파일의 사본(420)을 변경하는 수단(590)을 포함한다.
본 발명은 종래의 응용 프로그램이 이동 데이터 접속을 효율적으로 사용할 수 있게 하는 포괄적인 플랫폼을 제공한다. 본 발명의 해결 방법은 하나의 응용 프로그램 또는 특정 응용 프로그램 세트로 제한되지 않는 포괄적인 것이다. 또한, 응용 프로그램으로부터 통신의 자율성을 가지며, 효율적인 방식으로 데이터를 처리하므로 효율성을 향상시킨다. 더욱이, 응용 프로그램이 제공된 기능요소를 사용하도록 변경할 필요가 없으므로 사용이 용이하다.

Description

공유 데이터 파일의 사본 관리 방법, 데이터 관리 시스템 및 컴퓨터 시스템{SYSTEM AND METHOD FOR MANAGING REPLICATED DATA BY MERGING THE RETRIEVED RECORDS TO GENERATE A SEQUENCE OF MODIFICATIONS}
본 발명은 복제 데이터(replicated data)를 관리하는 방법 및 시스템에 관한 것으로, 특히 이동 통신 네트워크를 통하여 접속될 수 있는 다수의 컴퓨터 시스템 상에서 유지관리되는 공유 데이터 파일의 사본(copies of a shared data file)을 관리하는 방법 및 시스템에 관한 것이다.
컴퓨팅 기술은 이제, 신속한 정보교환을 제공하는 국가적 통신 네트워크 및 국제적인 통신 네트워크와 함께 생활의 모든 분야에 큰 영향을 미치고 있다. 그러나, 현재의 네트워크는 전형적으로 위치가 고정되어 여전히 제한적이다. 국제 네트워크 특히, 범세계적 네트워크인 '인터넷'에 대한 액세스가 점차 중요해지고 있지만, 그 액세스는 비교적 빈약한 액세스 지점을 갖는 유선 네트워크로 제한된다.
1980 년대의 이동 통신 시스템에서 이러한 제약은 광대한 지리학적 영역을 커버할 수 있는 셀룰러 레이아웃(layout)을 갖는 송신기 시스템으로 인하여 완화될 수 있었고, 이들 송신기는 소량의 주파수 세트를 사용하므로 비교적 작은 대역폭을 차지한다. 이러한 지리학적 통신가능 구역(coverage area)내에서,통신회선(communication links)은 즉시 사용가능한 장비로 쉽게 셋업될 수 있다. 이러한 하부구조는 처음에 음성 교환('이동전화')을 위하여 개발되었지만 데이터 교환을 위하여 보다 신속하게 확장되었다.
오늘날, 데이터 접속은 대부분 음성 수준의 이동 통신 시스템 및 여러 나라에서 작동 중인 몇몇 데이터 전용 네트워크 상에 설정될 수 있다. 예를 들면, 최근에 도입된 'Global System of Mobile Telephone(GSM)'는 현재는 범유럽적인 통신 구역을 제공하지만 가까운 장래에는 전세계적 통신 가능 구역을 제공할 수 있을 뿐만 아니라, 양질의 음성 교환 및 데이터 접속을 제공한다.
업계는 이미 그 국제적 통신 가능 구역에 대하여 GSM을 채택했다. 데이터 접속은 부가적인 네트워크 비용없이 동일한 하드웨어를 통해 제공될 수 있으므로, 올바른 패키징이 주어질 경우 특정 사용자 집단이 e-메일 등과 같은 이동 데이터의 이점을 보다 잘 받아들일 것으로 기대된다. 하드웨어 및 소프트웨어 개발자들은 현재 사용자의 요구에 적합한 서비스 및 응용 프로그램을 제공하기 위해 노력하고 있다.
그러나, 여기에는 언급할 필요가 있는 몇몇 문제가 있다. 공중으로 데이터를 전송하는 특성으로 인하여, 더 많은 에러 정정이 필요하며, 따라서, 대역폭이 제한된다. 현재, 최대 초당 9600 비트를 얻을 수 있다. 동시에, GSM과 같은 네트워크 상의 이동 데이터 접속은 이동 음성 접속과 동일한 방식, 즉, 실제 전송된 데이터량을 기본으로 하지 않고 접속 시간을 기본으로 하여 요금이 청구된다. 이동전화 산업에 있어 유료 접속 비용과 낮은 속도를 감안할 때, 1 메가바이트의 데이터 전송 시 현재 대략 $10로 접속 시간에 대해 비용이 든다. 반면에, 이보다 다소 저가이지만 느린 패킷 지향형 데이터 전용 네트워크는 높은 네트워크 반환 시간(turnaround time)이 걸린다(영국에서, 20 초 이상의 반환 시간은 드문 일이 아니다). 이동 회선은 비싸고 대부분의 유명한 네트워크에 있어 접속 시간을 기초하여 요금이 청구되므로, 데이터 회선을 비효율적으로 사용하는 응용 프로그램은 돈을 낭비하기 쉽다. 사용자는 이동 회선을 효과적으로 사용하기를 원하고, 고가의 회선의 사용을 제어할 수 있기를 원한다.
부가적인 문제는 사용의 용이성이다. 소정의 범위까지 향상된 압축 방법을 적용함으로써 효율적으로 이동 접속을 관리하는 다수의 응용 프로그램이 이미 사용가능하다. 그러나, 불행히도 이들 응용 프로그램을 사용하려면 사용자는 새로우며 특별한 특정 대화형 패턴을 익혀야만 한다. 모든 경우에, 이들은 통상적인 응용 프로그램과 상이한 '룩 앤 필(look and feel)'을 줄 것이다. 컴퓨터 사용자는 흔히 적은 세트의 응용 프로그램에 익숙하며, 새로운 인터페이스를 채택하는 것을 원치 않는데, 특히 새로운 인터페이스가 기존의 디자인을 대체하는 것이 아니라 기존의 디자인과 병행해서 사용될 경우에는 더욱 그러하다.
또한, 정확하게 모든 통신 구성요소를 셋업하고 이동 접속을 개시한다는 것은 여전히 만만치 않은 작업이다. 이상적으로, 이동 응용 프로그램은 종래의 응용 프로그램과 동일하지는 않더라도 유사해야 하며, 이동 회선의 사용은 사용자에게 가능한 한 인식되지 않아야(transparent) 한다.
네트워크의 내부구조는 주어진 대로 수용되어야 하며, 응용 프로그램 개발자의 영향이 미치는 범위 밖에 있으므로, 과거에 이동 접속의 사용에 내재한 각종 도전 및 문제들에 대한 해결방안은 두 가지 영역, 즉 응용 프로그램 그 자체 또는 기초가 되는 통신 프로토콜에 집중되었다. 이제, 이들 두 접근방법을 고려할 것이다.
개별 응용 프로그램의 향상:
지난 몇 년 동안 다수의 응용 프로그램이 이동 회선 상에서 수행될 수 있도록 변경되었다. 메일 리더(mail-reader) 및 뉴스 리더 또는 WWW-브라우저와 같은 프로그램들이 특히 유명하지만, (일반 대중에 잘 알려지지 않은) 상당수의 주문형 이동 응용 프로그램도 사용되고 있다. 응용 프로그램을 미세하게 튜닝(fine-tuning)하는 것은 통상적으로 이동 회선을 위해서 뿐만 아니라 특히 하나의 특정 이동 네트워크를 위해서도 커스텀화될 수 있다는 이점을 가진다. 따라서, 이들은 네트워크에 의해 특정된 전송 특성 및 대역폭을 충분히 사용할 수 있으므로, 가능한 최상의 데이터 관리를 제공한다. 한편, 이러한 미세 튜닝은 저레벨 응용 프로그램에 대해 다수의 변경을 초래하기 쉬우며, 결과적으로 원래 응용 프로그램과의 호환성을 상실하게 되고 다른 플랫폼 및 네트워크에 대한 응용 프로그램의 이식가능성(portability)을 심각하게 제한시킬 수 있다. 또한, 응용 프로그램의 특성들 중 응용 프로그램에 의해 특정된 특성들과 응용 프로그램의 통신과 관련된 특성들 간의 분리를 불가능하게 만든다.
통신 프로토콜의 향상:
다른 접근 방법으로 기초가 되는 통신 프로토콜을 향상시키고자 하는 방법은응용 프로그램과 독립적이며 전술한 접근방법이 가지는 다수의 문제점(pitfalls)을 피할 수 있다는 분명한 이점을 가지고 있다. (예를 들면, 브이 제콥슨(V Jacobson)의 논문 "Compressing TCP/IP headers for low-speed serial links"의 'Request for Comment' (RFC) 1144 (1990년 2월)에서 언급된 VJ-헤더 압축을 적용하거나 또는 'Mobile IP' 또는 'Indirect TCP'와 같은 증보판의 TCP/IP를 사용함으로써) 이동 회선을 위해 TCP/IP와 같은 기존의 프로토콜을 미세하게 튜닝하거나 또는, (예를 들면 IBM 사의 ARTour 시스템에서와 같이) 이들 표준 프로토콜을 따르지 않는 네트워크 상에서 이들 표준 프로토콜들을 사용가능하게 만드는 것은 상당수의 응용 프로그램이 이러한 노력으로부터 이득을 가질 수 있다는 분명한 장점을 가진다. 또한, 이는 응용 프로그램의 통신적인 면과 응용 프로그램 그 자체 간에 분명한 구분을 제공한다. 불행히도, 이들 통신 플랫폼은 데이터를 포괄적(generically)으로 처리하므로, 응용 프로그램에 의해 특정되는 감축(reduction) 및 압축 방법을 사용할 수 없다. 따라서, 통신 플랫폼은 응용 프로그램을 이식가능하게 만들고 최적화된 데이터 전송 서브 시스템을 제공하지만, 그들 자체만으로는 응용 프로그램의 성능을 향상시킬 수는 없다.
분명히, 상기 두 접근방법은 이들 방법의 장점, 즉 효율적인 데이터 처리 및 효율적인 데이터 전송이라는 장점을 결합함으로써 최상의 결과를 주도록 적용될 수 있다. 특히, 이것은 비디오 또는 이미지 전송과 같이 작업량이 과중한 응용 프로그램에 유용하지만, 두 접근방법의 문제점도 결합시키므로 일반적인 경우에는 바람직하지 않다.
두 접근방법은 상이한 레벨에서 전송 서브시스템의 효율성을 증가시킨다. 그러나, 이들 방안은 전술한 '경제성(budgetability)' 및 '사용의 용이성'의 두 문제를 해결하지 못한다. 초기 시스템은 종종 이동 네트워크 내의 전용 프로토콜의 상부에 표준 프로그래밍 환경을 제공함으로써 이동 회선 상에서 종래의 네트워크 응용 프로그램이 수행될 수 있도록 개발된 반면에, 이 접근방법은 종래의 응용 프로그램이 고속 회선의 상부에 상주하고 통상적으로 대역폭을 너무 많이 차지하여 이동 회선 상에 작동될 수 없거나 또는 단순히 너무 고가여서 실행될 수 없으므로 실현하기 어려운 것으로 입증되었다. 어느 접근방법도 실제 데이터 전송이 응용 프로그램의 총 실행시간 중의 작은 비율(종종 1 % 미만)을 차지하는 대화형 응용 프로그램을 효율적으로 지원할 수 없다. 물론, 통화(call) 비용이 (GSM 네트워크와 같이) 접속 시간을 기반으로 하는 회선 교환 네트워크와 함께 사용되는 경우에, 이것은 심각한 제한이다. 소정 시간 동안 교환이 없는 경우에 GSM 접속이 접속해제될 수 있지만, 현재 GSM-네트워크 상에서 모뎀 접속을 재설정하기 위해서는 평균적으로 28초가 걸리며 따라서 처리하기 어렵게 된다.
본 발명의 목적은 이동 통신 네트워크를 통해 통신하는 다수의 컴퓨터에 걸쳐 복제 데이터를 관리하는 개선된 방법 및 시스템을 제공하는 데 있다.
따라서, 본 발명은 이동 통신 네트워크를 통하여 접속될 수 있는 다수의 컴퓨터 시스템 상에서 유지관리되는 공유 데이터 파일의 사본을 관리하는 방법을 제공한다. 이 방법은 (a) 공유 데이터 파일의 각 사본에 대하여, 그 사본에 대해 행해지는 변경의 레코드를 유지관리하고, (b) 이동 통신 네트워크에 대한 접속을 통해, 공유 데이터 파일의 다른 사본에 대하여 유지관리되는 레코드를 검색(retrieve)하고, (c) 검색된 레코드들을 병합하여 변경 시퀀스(a sequence of modifications)를 생성하고, (d) 변경 시퀀스에 사전정의된 규칙을 적용하여 변경 시퀀스 내 충돌(conflicts)을 해결하고, (e) 충돌이 해결된 변경 시퀀스를 기반으로 공유 파일의 사본을 변경하는 단계들을 포함한다.
전술한 발명은 종래의 응용 프로그램이 이동 데이터 접속을 효율적으로 이용할 수 있게 하는 포괄적인 플랫폼을 제공함으로써 전술한 문제들을 경감시킨다. 본 발명은 하나의 응용 프로그램 또는 특정 응용 프로그램 세트로 제한되지 않는다는 점에서 포괄적이다. 또한, 본 발명은 응용 프로그램으로부터 통신의 자율성을 가지며 효율적인 방식으로 데이터를 처리하도록 배치되므로 효율성을 향상시킨다. 더욱이, 본 발명은 제공된 기능요소(facilities)를 사용하기 위하여 변경될 필요가 없으므로 사용이 용이하다.
'공유' 데이터 파일이라고 하는 경우 반드시 다수의 사용자가 존재해야 한다는 것을 의미하는 것은 아니라는 데에 주목해야만 한다. 본 발명은 단일 사용자가 상이한 머신들(machines)에 걸쳐 파일을 '공유'하는 상황, 예를 들어, 사용자가 사무실 밖에서 사무실의 컴퓨터 및 사용자가 휴대한 휴대용 컴퓨터를 가지고 작업할 때에도 동일하게 적용될 수 있다.
바람직한 실시예에서, 상기 레코드 유지관리 단계 (a)는 다수의 컴퓨터 시스템의 각각에서 수행되고, 다수의 컴퓨터 시스템은 단계 (a) 동안 이동 통신 네트워크로부터 접속해제된다. 또한, 다수의 컴퓨터 시스템은 바람직하게 상기 검색 단계 (b) 동안에만 이동 통신 네트워크에 접속된다.
바람직한 실시예에서, 상기 단계 (a) 내지 단계 (d)의 각각은 상기 다수의 컴퓨터 시스템 중의 소정 컴퓨터 상에서 수행되고, 상기 단계 (b)는 이동 통신 네트워크로의 접속을 통하여 상기 다수의 컴퓨터 시스템 중 소정 컴퓨터에 의해 유지관리되는 레코드의 변경을 포함하고, 상기 단계 (e)는 공유 파일의 로컬 사본(local copy)의 변경을 포함한다. 이러한 접근방법에 의해, 이동 통신 네트워크에 단지 한 번 접속함으로써 공유 데이터 파일의 로컬 사본을 갱신시킬 수 있다.
변경들 간의 충돌을 자동적으로 해결하기 위하여, 바람직한 실시예에서 우선순위 정보는 상기 레코드 유지관리 단계 (a) 동안 각각의 변경이 기록되어진 대로 각 변경과 함께 저장되고, 상기 병합 단계 (c)에서, 우선순위 정보는 상기 충돌 해결 단계 (d)의 후속되는 해결을 위해 충돌하는 변경에 상대적인 우선순위를 할당하는 데 사용된다. 바람직하게, 상기 레코드 유지관리 단계 (a)에서 저장된 우선순위 정보는 변경을 일으키는 사용자의 신원(identity)을 포함한다. 또한, 바람직한 실시예에서 우선순위 정보는 타임 스탬프(time stamp) 정보를 포함하여, 이전 변경이 차후 변경보다 높은 우선순위를 가지도록 한다. 그러나, 충돌하는 변경에 우선순위를 할당할 수 있도록 하는 다른 적당한 우선순위 정보가 저장될 수 있다.
바람직한 실시예에서, 전술한 바와 같은 소정 형태의 레코드 우선순위화가주어질 때, 충돌하는 낮은 우선 순위의 변경은 충돌 해결 단계 (d) 동안 완전히 무효가 된다. 이러한 접근방법을 사용하면, 파일 포맷은 보존되지만 정보는 손실된다. 다른 방법으로, 낮은 우선 순위를 갖는 변경의 단지 충돌하는 부분만을 무효로 만드는 다른 접근 방안이 사용될 수 있다. 이것은 변경의 충돌하지 않는 세트를 얻기 위해 필요한 최소량의 정보만을 제거하는 이점을 가지지만, 파일 포맷을 보존하지는 못한다. 단계 (d)에서 충돌을 해결할 방법을 정의하는 데 다른 방법이 사용될 수 있다는 것을 명백히 알 수 있을 것이다.
이동 통신 네트워크를 통한 데이터 전송의 효율성을 향상시키기 위하여, 레코드는 바람직하게 검색 단계 (b) 동안 압축된 후 이동 통신 네트워크 상으로 송신된다.
본 발명의 두 번째 특징은 공유 데이터 파일의 사본을 유지관리하기 위한 컴퓨터 시스템을 제공하는 것이며, 공유 데이터 파일의 사본은 이동 통신 네트워크를 통하여 컴퓨터 시스템에 접속될 수 있는 다수의 다른 컴퓨터 시스템에서 또한 유지관리되며, 각 컴퓨터 시스템은 이동 통신 네트워크로부터 접속해제된 동안 공유 파일의 사본에 행해진 변경 레코드를 유지시키도록 구성되고, 이 시스템은, 컴퓨터 시스템을 이동 통신 네트워크에 접속시켜 다수의 다른 컴퓨터 시스템에서 유지관리되는 공유 데이터 파일의 사본을 위해 유지되는 레코드를 검색하는 검색 수단, 공유 데이터 파일의 로컬 사본을 위해 유지되는 레코드와 검색된 레코드를 병합하여 변경 시퀀스를 생성하는 병합 수단, 변경 시퀀스에 사전정의된 규칙을 적용하여 변경 시퀀스 내의 충돌을 해결하는 충돌 해결 수단, 충돌이 해결된 변경 시퀀스를 기반으로 공유 파일의 로컬 사본을 변경하는 수단을 구비한다.
본 발명의 세 번째 특징은 이동 통신 네트워크를 통하여 접속될 수 있는 다수의 컴퓨터 시스템 상에서 유지관리되는 공유 데이터 파일의 사본을 관리하기 위한 데이터 관리 시스템을 제공하는 것이며, 이 시스템은, 공유 데이터 파일의 각 사본과 관련하여 그 사본에 행해진 변경 레코드를 유지하기 위한 로깅(logging) 수단, 이동 통신 네트워크에 대한 접속을 통하여 공유 데이터 파일의 다른 사본을 위해 유지관리되는 레코드를 검색하는 검색 수단, 검색된 레코드를 병합하여 변경 시퀀스를 생성하는 병합 수단, 변경 시퀀스에 사전정의된 규칙을 적용하여 변경 시퀀스 내의 충돌을 해결하는 충돌 해결 수단, 충돌이 해결된 변경 시퀀스를 기반으로 공유 파일의 사본을 변경하는 수단을 구비한다.
도 1은 데이터 통신 시스템 내의 상이한 소프트웨어 구성요소를 도시한 도면,
도 2는 본 발명의 바람직한 실시예에 따른 데이터 관리 시스템을 도시한 도면,
도 3은 본 발명의 바람직한 실시예에 따른 이동 애플리케이션 프레임워크의 상이한 동작 모드를 도시한 도면,
도 4는 본 발명의 바람직한 실시예에 따른 이동 애플리케이션 프레임워크의 구성요소를 도시하는 도면,
도 5는 본 발명의 바람직한 실시예에서 각종 모델의 구성요소들이 어떻게 사용되는지를 도시하는 도면,
도 6은 본 발명의 바람직한 실시예와 관련하여 사용될 수 있는 '프레임워크-인식' 응용 프로그램의 스크린 뷰를 도시하는 도면.
도면의 주요 부분에 대한 부호의 설명
100 : 응용 프로그램 130 : 네트워크
200 : 이동 애플리케이션 프레임워크 410 : 로거
본 발명은 단지 예로서 첨부 도면에 도시된 바람직한 실시예를 참조하여 보다 상세히 기술될 것이다.
도 1은 데이터 통신 시스템 내의 각종 소프트웨어 구성요소들의 기본적인 분류를 도시한다. 응용 프로그램(100)은 사용자 인터페이스(UI)(105)와 응용 프로그램의 엔진(110)으로 나누어진다. 운영체제 레벨(115)에서, 저장 시스템(120)과 외부 구성요소를 위한 운영체제의 구동기(drivers)(125)는 엄격히 구별된다. 네트워크(130)는 하부에 위치하며, 운영체제(115)에 의해 구동된다. 도 1의 중간 열은 상이한 구성요소들과 관련된 데이터를 분류하고, 우측에는 각 구성요소에 의해 처리되는 데이터 크기 및 유형결정도(typeability), 즉, 데이터 유닛을 관찰함으로써 추론될 수 있는 상세한 유형 정보가 표시되어 있다.
응용 프로그램 레벨에서 데이터가 쉽게 유형이 결정될 수 있는 큰 다발로 처리되지만, 유형결정도와 마찬가지로 크기도 저레벨에서 일정하게 감소한다. 마지막으로, 프로토콜 레벨('구동기')에서 데이터는 작은 다발('패킷')로 처리되며, 유형 정보를 추론하기 어려워진다.
이상적으로, 이동 통신은 상당수의 응용 프로그램에 이득이 되기에 충분히 낮으며, 특별한 압축 및 정리 방법을 사용할 수 있도록 전송되는 데이터 유형을 간파하기에는 충분히 높은 층에서 처리된다. 대부분의 응용 프로그램은 데이터 입력 및 출력을 위하여 파일을 사용하므로, 본 발명의 바람직한 실시예에 따라, 이동 통신은 파일 시스템 레벨에서 처리된다. 따라서, 넓은 범위의 응용 프로그램에 이득이 될 수 있다. 또한, 파일은 데이터 조각(pieces of data)보다는 데이터 유닛(data-units)을 포함하므로, 종종 파일 유형을 추론할 수 있다. 더욱이, 모든 응용 프로그램은 국부적으로 사용가능한 데이터 상에서 동작할 수 있으며, 대화형 응용 프로그램에 대해 합리적인 지원을 할 수 있으므로, 정상 동작 중 계속 접속할 필요가 없다는 것이 인식되었다. 접속은 단지 파일을 재동기(resynchronise)시키기 위해서만 가끔 요구된다.
이동 통신 네트워크에 반대되는 유선 ('지상') 통신 네트워크의 영역에서, 소정의 분산 파일처리 시스템(distributed filing-system)이 개발되었다. 유선 네트워크 상에서 원격노드에 유지되는 데이터 파일을 액세스하기 위해 선 마이크로시스템 사(Sun Microsystems Inc)의 네트워크 파일 시스템(Network File System: NFS) 또는 트랜사르크 사(Transarc Corp)의 앤드류 파일 시스템(Andrew File System: AFS)과 같은 네트워크 파일 시스템이 사용되다. 따라서, 로컬 응용 프로그램은 원격 사이트(remote sites)에 유지되는 데이터 상에서 작동할 수 있고, 파일은 다수의 사용자들 간에 공유될 수 있다. 실제로, 네트워크의 사용은 완전히 사용자로부터 숨겨지며(hidden), 사용자는 모든 파일을 국부적인 것으로 인식한다. 가장 단순한 형태로, 이들 시스템은 소정 종류의 원격 프로시쥬어 호출 기능요소를 사용하여 네트워크를 통하여 판독/기록 동작을 리디렉팅(redirecting)함으로써 동작한다. 네트워크 상의 통화량 로드(traffic load)를 감소시키기 위하여 종종 캐시기능(caching)이 사용된다.
동시 편집이 허용되는 경우 통상적인 파일 시스템은 다양한 록킹(locking) 방법을 사용하여 데이터 일관성(data consistency)을 보장한다. 록킹 대신에 보우팅(voting)이 제안되었지만, 기록-액세스는 여전히 파일을 액세스하기 전에 충분한 다수의 사본에 대한 기록-허용을 얻어야 하는 한 사이트로 제한된다. 많은 시스템이 복제 파일에 대한 액세스를 조정(reconcile)하기 위해 토큰(tokens)을 사용하지만, 토큰을 전달하기 위해서는 다시 사이트들 간의 통신 회선이 동작할 것이 요구된다. 논문 "Consistency and recovery control for replicated files", Proceedings of 10th ACM Symposium on Operating Systems Principles, December 1985에서, 다브세브(Davcev) 및 버카드(Burkhard)는 네트워크가 부분적으로 접속해제될 때 기록-액세스를 허용하는 시스템을 제안했지만, 이 경우는 소위 '다수-파티션(majority-partition)' 내로 한정되었다. 논문 "An overview of reliability mechanisms for a distributed data base system", Proceedings of the spring COMPCON, February 1978에서, 해머(Hammer) 및 쉽맨(Shipman)은 기록-동작을 위한 로크를 요구하지 않으며, 파일이 다소 발산(diverge)하게 하지만, 엄격한 시간적 제한조건 내에서 결과적인 불일치를 해결하기 위해 통신 회선에 의지하는 기법을 제안했다.
로터스 노츠(Lotus Notes)는 자신의 특별한 데이터베이스에 대해 다수의 판독/기록 복제를 허용한다. 복제는 통상 하루에 단지 한 번 또는 두 번 주기적으로 조정(reconcile)된다. 복제들 간에 충돌이 검출되면 충돌을 자동적으로 해결하려 하지 않고 별도의 버전을 생성하게 되고, 그 결과 충돌이 발생할 때마다 상당한 수동 작업의 부담이 생긴다. 유럽 특허출원 EP-A-O,684,558에서 논의된 다른 접근방법은 갱신가능한 파일 복제를 유지관리하는 다수의 서버(servers)가 있는 복제 시스템을 기술한다. 여기에서는 갱신 전달 프로토콜(update propagation protocol)이 사용되는데, 이는 데이터의 불일치를 일으키는 실패(failure)를 식별한 후에 가능한 한 신속하게 복제를 갱신한다는 점에서 '적극적인(aggressive)' 것으로 기술된다. 실제적으로, 서버는 복제 불일치를 검출하기 위해 그들 간을 조정하고, 데이터에 대한 고객의 요청을 기다리지 않고 갱신 프로토콜을 개시하여 구형(stale) 또는 충돌을 일으키는 복제를 검출한다. 충돌 중 일부는 자동적으로 해결되지만, 충돌을 일으키는 파일을 복원시키는 데에는 수동 작업이 요구될 수 있다.
최근에, 마이크로소프트 사(Microsoft Corporation)는 윈도우 95 제품의 일부로서 '서류가방 폴더(Briefcase Folder)' 기능요소를 발표했다. 이 기능요소는 서류가방 기능요소의 상부에 기록된 응용 프로그램을 위한 충돌 해결 기능요소를 제공하며, 단지 이 응용 프로그램의 서브셋에만 적용가능하다. 또한, 자동적으로 조정(reconciliations)을 개시하지는 않으며 상당한 수동적 안내를 요구한다.
전술한 파일 시스템 레벨 기법은 고속의 연속적으로 사용가능한 통신 회선 에 의존하고/하거나 접속해제형 동작의 연장 기간을 심각하게 제한시키는 록킹 방법을 과도하게 사용하므로 이동 환경에 적합하지 않다.
도 2는 바람직한 실시예의 데이터 관리 시스템의 셋업을 도시하며, 이후 '이동 애플리케이션 프레임워크(Mobile Application Framework)'(200)로 지칭된다. 도 2의 예에서, 두 사용자(210, 220)는 [디스크 심볼(205)에 의해 표시되는] 공유 파일의 로컬 사본을 가지고 동작하고, 반면에 기초적인 프레임워크(200)는 두 사본이 동기화 상태로 유지될 수 있도록 노력한다. 이 프레임워크에 있어서, 통신하거나 또는 전송을 개시하는 것은 응용 프로그램이 아니라 기초적인 프레임워크라는 점에 주목하는 것이 중요하다.
소정의 파일 시스템, 특히 "CODA" (제이 키슬러(J Kistler) 및 엠 사티아나라야난(M Satyanarayanan)에 의한 논문 "Disconnected Operation in the Coda File System", ACM Transactions on Computer Systems, 10(1), 1992년 2월 참조)는 이제, 다운된 네트워크의 기간 동안 접속해제 동작을 허용하고, 따라서, 이런 방향으로 진보하도록 확장되고 있다. 또한, 모니카 와코위쯔(Monica Wachowicz) 및 스테판 힐드(Stefan Hild)에 의한 논문 "Combining Location and Data Management inan Environment for Total Mobility", Proceedings of the International Workshop on Information Visualization and Mobile Computing, Rostock, Germany(1996년 2월)은 '전체적 이동성(total mobility)' 구조를 기술하는데, 여기서 사용자는 더 이상 자신의 휴대용 컴퓨터를 가지고 다니지 않는 대신에 자신의 목적지에서 임대한 컴퓨터로 등록한다. 이러한 구조의 일부로서, 접속해제형 동작이 고려되는데, 이때 데이터는 이동 호스트 상에서 실행되는 응용 프로그램에 의해 접속해제 모드에서 조작된다. 데이터 파일에 대한 변경은 차후에 그 파일의 다른 사본과의 조정을 용이하게 하기 위해 저장된다. 전체적 이동성 구조의 일부를 형성하는 데이터 관리 서브시스템의 최초의 개요는 스테판 힐드에 의한 현황 보고서 "Disconnected Operation for Wireless Nodes", Proceedings of the ECOOP '95 Workshop on Mobility and Replication, European Conference on Object Oriented Programming(1996년 8월)에서 제공된다. 이 논문은 간단히, 이동 환경 내의 접속해제형 파일 액세스 및 조정의 일반적 개념을 기술한다.
'이동 애플리케이션 프레임워크'는 접속해제형 동작(즉, 고정 호스트와 설정된 접속이 없음)이 정상이고 접속 기간은 예외인 것으로 보며, 그 반대로는 보지 않는다. 결과적으로, 바람직한 실시예의 "이동 애플리케이션 프레임워크"는 종래의 네트워크 파일 시스템 및 허용된 접속해제 동작과 다수의 방식에서 차이가 나는데, 이는 후속되는 상세한 설명으로부터 보다 명백해질 것이다.
바람직한 실시예에서, '프레임워크'는 소수의 사용자들 간에 가장 중요한 소수의 파일을 공유하는 툴(tool)로서 사용된다. 이러한 '워크그룹(work-group)'을셋업하는 것은 간단하지만 신중한 프로세스이다. '공유'의 개념에 이와 같이 신중한 접근방법을 취함으로써, '프레임워크'는 좀더 여유를 가지고 파일 일관성을 처리할 수 있게 된다. 따라서, '프레임워크'는 종래의 네트워크 파일 시스템에 대한 대체 또는 확장이 아니며, 복제 파일의 관리를 용이하게 하는 것이다. 이제, 몇몇 주된 특징을 보다 상세히 기술할 것이다.
전술한 개요에 따라, 프레임워크는 접속해제형 동작에 크게 의존한다. 도 3의 상태도는 동작의 상이한 모드들을 나타내며, 나머지 네트워크와의 접속 상태의 개요를 나타낸다.
정상 (접속해제형) 동작 동안, 프레임워크는 '로그(Log)'-모드이다[단계(300)]. 이 기간 동안 공유 파일 상에 수행되는 모든 변경이 로그에 기록 및 저장된다. 공유 파일에 대한 액세스에 관한 제약은 없으며, 판독 및 기록 동작은 동시에 동일 파일을 공유하는 모든 노드 상에서 지원된다.
재접속 시에, 프레임워크는 공유 파일의 사본을 보유하는 소정의 다른 사이트(반드시 모든 사이트는 아님)에 접속을 재설정하고, 이들 사이트와 기록된 로그를 교환한다[단계(310)]. 이것은 네트워크 접속을 요구하는 유일한 단계이다('교환').
나머지 세 상태는 공유 파일을 재동기시키도록 기능한다. 먼저, 다른 사이트로부터 수신한 로그 및 로컬 로그는 고유한 변경 시퀀스로 병합되고('병합')[단계(320)], 충돌이 해결된 후('해결')[단계(310)], 마지막으로 파일은 병합 및 해결된 로그와 함께 회선으로 전송된다('재실행')[단계(340)].
도 4는 프레임워크의 내부 구성요소를 도시하고, 그 명칭에 대한 소정의 정의를 제공한다. 이동 응용 프로그램이 실행될 플랫폼을 제공하는 대신, 응용 프로그램과 동일한 레벨 상에서 실행되는 구성요소(특히 로거(410))로 구성되므로, 실행을 위해 응용 프로그램에 '프레임워크'를 제공한다. 상세히 말하면, 상이한 구성요소는 로거(logger)(410)로서, 로거는 공유 데이터 파일의 로컬 사본 상에 수행되는 모든 변경을 로깅(logging)하며, 이 파일은 도면에서 디스크(420)에 의해 표시된다. 로거(410)는 사용가능한 다수의 모델(430)을 가지며, 이들 모델은 변경의 검출을 지원하기 위한 파일의 내용 유형 및 각종 파일 유형에 대한 가능한 편집 동작의 형식적 기술이다. 임의의 파일 유형과 함께 동작하도록 설계된 디폴트(defaults)가 사용가능하다. 이들 모델은 이후에 보다 상세히 기술될 것이다.
제어기(440)는 대부분 논리회로로 이루어져 있으며, 조정을 개시하고(즉, 재접속 이벤트를 송신하고), 조정 과정을 관리하는 역할을 담당한다. 마지막으로, 통신 모듈(450)은 기초적인 이동 통신 네트워크(460)와의 실제 인터페이싱을 처리한다.
바람직한 실시예에서, 이동 애플리케이션 프레임워크의 전술한 요소의 각각은 공유 데이터 파일의 사본(420)을 유지관리하고 있는 각 컴퓨터 시스템(400)에 포함된다. 특정 컴퓨터 시스템(400) 상의 제어기(440)가 공유 데이터 파일의 사본을 그 데이터 파일의 다른 사본과 재동기시켜야 한다고 판단할 때마다, 이동 통신네트워크(460)를 통하여 접속을 설정하고, 기록된 변경 로그를 유지관리하는 다른 컴퓨터 시스템과 기록된 변경 로그를 교환한다. 그 후, 제어기(440)에 의해 도 3의 단계(320, 330, 340)가 수행되어 공유 데이터 파일의 로컬 사본(420)을 갱신한다.
그러나, 당업자라면 제어기(440) 및 통신 모듈(450)이 별도의 전용 컴퓨터 시스템에 위치될 수 있다는 것을 명백히 알 수 있을 것이다. 공유 데이터 파일의 사본을 유지관리하는 각 시스템은 그 파일 사본에 행해지는 변경을 기록하기 위해 이동 애플리케이션 프레임워크의 다른 요소를 포함할 수 있다. 주기적으로, 제어기(440)는 이동 네트워크 상을 통해 컴퓨터 시스템(400)에 접속되어 이들 시스템에 의해 공유 파일의 사본에 행해진 로깅된 변경을 검색한다. 그 다음, 단계(320, 330)가 제어기(440)에 의해 적용되어, 사본들을 병합시키고 충돌을 해결한다. 그 후, 제어기(440)는 네트워크에 재접속되어 충돌이 해결된 변경 시퀀스를 각 컴퓨터 시스템(400)으로 송신한다. 단계(340)는 각 컴퓨터 시스템(400)에 적용되어, 공유 파일의 로컬 사본을 갱신한다.
바람직한 실시예에서, 후자의 접근방법은 공유 데이터 파일의 사본을 갱신하기 위해 두 번 네트워크에 접속되어야 하고, 이는 동작의 오버헤드(overhead)를 가중시키므로 사용되지 않는다. 또한, 제어기는 소정 중앙 머신에 위치되고, 공유 데이터 파일의 특정 사본에 행해지는 변경의 수에 대한 세부사항이 사용될 수 없으므로, 제어기는 소정 다른 기준, 예를 들면, 마지막 갱신 이래 경과한 시간을 기반으로 파일을 갱신할 시기를 결정해야만 한다. 이것은 바람직한 실시예의 시스템을사용할 때 행해질 수 있는 공유 데이터 파일의 사본에 대한 실제 변경 활동 상에 갱신 동작을 하는 만큼 효율적이지 않을 수 있다. 그러나, 후자의 접근방법은 단지 하나의 제어기만을 필요로 하며, 파일의 사본을 언제 교환할 것인가에 대한 결정이 중앙적으로 관리된다는 이점을 가진다. 따라서, 몇몇 경우에, 추후의 접근방법을 사용할 가치가 있다고 판단할 수 있다.
어느 접근방법이 사용되든 임의의 형태의 록킹이 없는 경우 접속해제형 동작의 기간이 연장되면, 고도의 동적 공유 파일들 간에 충돌이 발생되기 쉽다는 것이 명백하다. 따라서, 프레임워크는 사용성(availability)을 위해 일관성을 어느 정도 희생시킨다. 파일의 발산 및 불일치 발생은 프레임워크만의 문제는 아니다. 정도는 작지만 분산 시스템은 이와 같은 문제를 겪으며, 충돌 검출 및 버전-병합의 분야에 더 많은 연구가 행해지고 있다. 그러나, 종래의 모든 기법은 일단 충돌이 검출되면 이를 해결하기 위해 사용자 상호작용(user interaction)에 의존하거나 또는 처음부터 충돌을 피한다. 대부분은 록킹 또는 이의 파생물을 사용한다. 그러나, 프레임워크에 있어, 접속해제형 동작의 기간이 길기 때문에 모든 형태의 록킹이 불가능하다는 것이 명백하다.
충돌의 해결에 있어, 파일과 쉽게 관련될 수 있는 중요한 내용이 없는 경우에는 충돌을 해결하기가 매우 어렵다는 것은 분명하다. 대부분의 접근방법에 있어 사용자는 수동으로 충돌을 해결해야 하지만, 접속해제형 동작은 충돌이 자동적으로 해결될 수 있는 경우에만 사용자에게 수용될 수 있을 것으로 믿어진다. 자동적인 충돌 해결이 가능한 모든 경우에 논리적으로 일관된 결과를 생성할 것으로 기대될수 없다는 것은 분명하다. 그러나, 조정은 함께 작업할 수 있는 파일을 생성할 것으로 기대된다. 텍스트-파일의 경우에, 수동으로 '클린-업'될 수 있는 파일을 얻기를 원한다. 데이터-파일의 경우에, 조정 프로세스는 파일을 액세스하는 응용 프로그램이 여전히 판독할 수 있는 방식의 파일 포맷을 유지해야 한다.
따라서, 바람직한 실시예의 프레임워크는 한편으로 접속해제형 동작동안 파일에 대한 판독 액세스 및 기록 액세스에 관해 제약이 없으며, 다른 한편으로 타당한 자동적인 충돌 해결을 가능하게 하기에 충분한 정보를 로깅하는 파일 로깅 및 충돌 검출 방법을 요구한다.
본 발명의 바람직한 실시예에 따라, 우선, 프레임워크 내의 파일은 문자의 시퀀스(sequence)로서 간주된다. 파일의 내용-유형에 관한 가정을 조심스럽게 피하는 대신에 현 파일과 로거에 의해 보유된 백업-사본을 주기적으로 비교하고, '편집-디스턴스(editing-distance)'에 제 1 근사치를 계산함으로써 변경이 로깅된다. 편집-디스턴스는 제1 스트링을 제 2 스트링으로 변환하는 일련의 편집 동작이므로, 본질적으로 사용자가 파일을 어떻게 변경했는지를 식별한다. 그러나, 이것은 계산하기가 어렵고 고가이므로, 본 발명의 바람직한 실시예에서는 계산하기 간단하고 저가이면서도 합당한 결과를 제공하는 편집 거리에 대한 제 1 근사치를 사용한다.
이 접근방법에 따라서, 두 기본적인 동작, 즉, "삽입" 및 "삭제"가 정의된다. 로거는 일련의 이들 동작에 의해 로깅된 파일에 구현된 변경을 모델링하려고 한다. 바람직하게, 이것은 두 스트링(즉, 현재의 파일 및 백업 파일)을 그의 한 종단부로부터 비교하고, 두 스트링이 상이한 제 1 및 마지막 문자 위치를 결정함으로써 행해진다. 이로부터, 삽입, 삭제 또는 삭제 후의 삽입이 수행되었는지에 대한 추론이 행해진다.
또한, 로그의 모든 변경은 시간이 기록되어 차후의 자동적인 충돌 해결을 위한 기반을 제공한다. 특별한 파일 포맷에 대한 로깅 프로세스 및 편집 동작을 커스텀화(customize)하는 데 모델이 사용될 수 있다. 예를 들면, 로깅 과정은 모델(430) 내의 파일 유형 정의를 바꿈으로써 변경되어, 예를 들면, 로거(410)가 파일을 조각으로 분할시키고 각 조각을 개별적으로 고려하도록 지시하는 정보를 포함할 수 있다.
자동적인 충돌 해결을 위해서는 두 가지 문제가 해결되어야 한다.
먼저, 두 개의 충돌하는 변경이 주어질 때 하나를 다른 하나 위에 덧쓰기(overwrite)할 수 있도록 각 변경에 우선순위를 할당할 필요가 있다. 이 우선순위 할당은 전형적으로 파일 사본의 위치를 근거로 한다. 즉, 접속해제형 동작을 허용하는 소정의 파일 시스템은 충돌의 경우에 다른 모든 사본보다 높은 우선순위를 가지는 '마스터-사본'을 정의한다. 사용자는 머신들 사이에서 변경할 가능성이 크며, 이러한 경우 변경의 우선순위를 그 실행 위치에 구속하는 것은 바람직하지 못하므로, 이러한 접근방법은 바람직한 실시예에서는 사용되지 않는다. 대신에, 바람직한 실시예에서는 파일을 변경한 사용자의 신원(identity)을 근거로 우선순위 레벨을 할당한다. 또한, 변경과 함께 기록된 타임 스탬프가 우선순위의 할당에 사용된다. 선행하는 변경이 후속하는 변경을 무효화시킨다는 관점이 바람직하게 채택되는데, 그 이유는 이와 반대의 정책을 사용할 경우 이후에 수행되는 변경이 성공적으로 이루어질 더 큰 기회를 갖는다는, 직관에 반대되는 상황이 야기될 수 있기 때문이다.
다음으로, 충돌하는 변경의 처리가 정의되어야 한다. 본 발명의 바람직한 실시예에서는 두 가지 정책이 특히 유용한 것으로 판단되었다. '전체적 무효화 정책(Total Invalidation Policy)'의 경우, 충돌하는 낮은 우선순위의 변경은 완전히 무효화된다. 이것은 많은 정보를 손실할 수 있지만, 파일 포맷을 보존하는 것을 보장할 수 있다. 다른 방법으로, 낮은 우선순위를 갖는 충돌하는 부분만을 버리는 '부분적 무효화 정책(Partial Invalidation Policy)'이 정의될 수 있다. 분명하게, 이것은 충돌하지 않는 변경의 세트를 이끌어내는데 필요한 최소량의 정보만을 제거하는 이점을 가지지만, 파일 포맷을 보존하지 못할 수도 있다.
프레임워크 내에서, 사용자에 의해 우선순위 할당 규칙 및 무효화 정책이 모델(430) 내에서 전역적으로(globally) 정의될 수 있다. 도 5는 조정 프로세스 내에서 커스텀화될 수 있는 구성요소('모델')의 개략도이다. 로거(410)는 주기적으로 사용자의 데이터 파일(420)과 백업 파일(500)을 비교하고, 사용자에 의해 수행된 변경을 판단한다. 이 목적을 위하여, 파일 포맷의 개요를 기술하는 '파일 모델'(510), 사용자에 의해 수행될 수 있는 '편집 동작' 세트(520), 마지막으로, 이들 편집 동작을 일련의 디폴트 삽입 및 삭제 동작으로 변환하기 위한 변환 규칙 세트(530)를 사용한다. '파일 모델', '편집 동작' 및 '변환 규칙'은 특정 파일 유형 및 포맷에 대해 로거(410)를 안내하는 데 사용될 수 있다. 디폴트에 의해 바람직한 실시예의 로거(410)는 단지 삽입 및 삭제 동작에 의존하며 균일한 파일 포맷을가정한다.
이러한 방식으로 검출된 변경은 로그(540)에 저장된다. 조정 시에, 동일한 네트워크를 통하여 파일의 다른 사본으로부터 수신한 로그(550)는 '우선순위 규칙' 세트(570)를 사용하여 우선순위 순으로 병합기(560)에 의해 병합된다. 그 다음, 해결/재실행 수단(590)에 의해 '무효화 규칙'(580)이 적용되어, 병합된 변경 세트에서 충돌이 제거된다. 마지막으로, 병합되고 조정된 로그는 로컬 파일 사본(420) 상에서 수행된다. 로깅 과정과 동일한 방식으로, 병합 및 조정에 디폴트가 사용가능하다. 그러나, 사용자는 대안적인 '우선순위 규칙' 및/또는 '무효화 규칙' 세트를 제공하여 두 프로세스를 커스텀화하도록 결정할 수 있다.
커스텀화가능한 모든 부분의 세트가 '모델'(430)을 형성한다. 모델은 하나의 파일 세트, 예를 들면, 특정한 파일 유형을 갖는 모든 파일 또는 특정 파일에 대해 정의될 수 있다.
바람직한 실시예의 이동 애플리케이션 프레임워크에 사용하기에 적합한 자동 충돌 해결 알고리즘은 스테판 힐드 및 피터 로빈슨(Peter Robinson)에 의한 논문 "File Replication in a Mobile Environment"에 상세히 기술되어 있는데, 이는 현 출원의 우선일에 공개되지 않았다. 이 논문의 사본은 본 출원의 파일에 참조하기 위하여 개시되었고, 내용은 참조로서 본 명세서에 인용되었다. 이 논문은 편집 거리에 대한 제 1 근사치를 계산하는 로깅 메커니즘의 상세한 개요를 알려주며, 기술한 병합 및 조정 단계가 실제로 공유 파일의 각 로컬 사본에 수행될 수 있는 충돌없는 변경의 고유한 시퀀스를 생성한다는 수학적 증거를 제공한다. 또한, 이 논문은 조정 과정이 부분적인 조정 시퀀스, 즉 모든 파일 사본이 동시에 동기될 수 없는 상황, 예를 들면, 개별 노드가 이동 통신 네트워크의 통신가능 영역을 벗어났거나 또는 다른 이유로 인하여 사용될 수 없는 경우에 적용될 수 있다는 증거를 제공한다.
프레임워크의 전형적인 예 가운데, 데이터 전송은 더 이상 응용 프로그램에 의해 개시되지 않고 프레임워크 그 자체 내에서, 즉 도 3의 상태도에 도시된 바와 같이 조정 과정을 일으킴으로써 개시된다. 따라서, 통신은 기지의 파일 유형을 가지는 파일에 수행된 변경을 제어에 의해 교환하는 것으로 구성된다. 바람직한 실시예에서, 전송에 앞서 로그 내에 포함된 데이터는 각종 레벨에서 최적화될 수 있다.
먼저, 무손실 압축(lossless compression) 방법이 적용될 수 있다. 이것은 직접적인 과정으로서 거의 또는 아무런 패널티없이 행해질 수 있다. 대부분의 통신 서브시스템은 이미 패킷 레벨에서 소정 형태의 사전 기반(dictionary-based) 압축 방법을 적용한다. 이들 기법에 의한 압축이 적당하다.
다음으로, 유형 정보가 활용될 수 있으며, 특화된 압축 방법이 사용될 수 있다. 정확한 파일 유형에 따라, 이들 손실 압축(lossy compression) 방법은 크기 면에서 무손실 압축 방법보다 효율적으로 행해질 수 있지만, 일반적으로 사용하기에 보다 고가이다.
마지막으로, 데이터는 원격 노드의 능력을 반영하기 위해 재스케일링될 수 있다. 예를 들면, 고해상 이미지 파일은 픽셀 해상도 및 색상 해상도를 반영하도록 재스케일링된다. 전체 해상도의 이미지를 재생하는 데 필요한 모든 정보는 전체 해상도의 이미지를 재생할 필요가 있는 경우, 예를 들면, 또 다른 고해상도 노드로 전달되는 경우에 원격 노드로부터 이에 대한 포인터와 함께 원래의 사이트에 남겨진다.
이동 애플리케이션 프레임워크의 주된 목표중의 하나는 기존의 툴 및 프로그램을 사용할 수 있게 하는 것이다. 그러나, 본래 이들은 파일 조정과 같이 프레임워크에 의해 특정되는 기능을 지원할 수 없다. 따라서, 우리는 '프레임워크-인식(framework-aware)'이며, 프레임워크에 의해 특정되는 기능으로 사용자를 지원하는 데 사용될 수 있는 프레임워크의 내부적 정보에 대한 액세스를 가지는 응용 프로그램이 기록될 수 있다고 생각한다. 예를 들면, 조정 프로세스동안 실패한 변경이 저장(save)될 수 있으며, 필요한 경우에 복원될 수 있다. 다른 사용자에 의해 수행된 변경은 표시될 수 있다. 따라서, 그들은 조정 과정을 보다 투명하게 만들 수 있으며, 손실될 데이터를 복원하도록 도울 수 있다.
예를 들면, 간단한 프레임워크-인식 아스키-텍스트 편집기(ascii-text editor)가 고려될 수 있다(도 6 참조). 변경의 소스에 직접 대응하는 칼라 코드(610)를 사용하여 변경 영역을 표시함으로써 조정 프로세스동안 어떠한 변경이 행해졌는지를 사용자가 '볼 수(see)' 있게 한다(삭제 및 실패한 변경은 텍스트의 적절한 위치에 인위적인 마커(artificial marker)를 삽입함으로써 표시된다). 이들 마커를 클릭함으로써, 사용자는 이러한 변경에 관한 부가적인 정보(620)를 검색할 수 있고, 필요하다면, 그 결과를 되돌릴 수 있다. 도 6은 예시적인 스크린 화면을 도시한다. 이것을 통해, 조정 프로세스동안 손실될 수도 있는 데이터를 회복할 수 있는 간단한 툴이 사용자에게 주어진다. 결과적인 사용자 인터페이스는 오버로드에 의한 인식이 없이도 풍부한 정보를 포함한다.
전술한 설명으로부터, 바람직한 실시예의 프레임워크는 그 구조 내의 단일 모듈에 모든 통신 특성을 포함한다(도 4 참조). 이것은 프레임워크 그 자체의 통신 지향적 측면과 기능성 지향 모듈 간에 분명한 구분을 제공할 뿐 만 아니라, 한편으로 통신과 다른 한편으로 프레임워크 내에 실행되는 응용 프로그램 사이에 분명한 구분을 제공한다. 통신은 응용 프로그램에 의해 개시되지 않으며, 프레임워크에 의해 개시된다. 응용 프로그램 세트가 그들 자신을 위해 독립적으로 통신을 구동하는 경우, 모든 통신을 엄격하게 제어하는 것은 불가능하였으나, 모든 통신 동작을 한곳으로 집중함으로써 이러한 것이 가능하게 되었다.
종래의 통신 시스템과 이동 애플리케이션 프레임워크 간의 두 번째 중요한 차이는 통신이 개시되는 이유이다. 종래 시스템에서, 응용 프로그램은 연속적인 동작을 보장하기 위해 다른 사이트와 정보 및 데이터를 교환하도록 통신한다. 데이터는 '요구 기반(on-demand)' 원리로 교환된다. 프레임워크 내에서, 데이터는 국부적으로 유지되며, 따라서 응용 프로그램이 동작중인 상태로 유지하기 위한 통신이 필요없게 된다. 그러나, 국부적으로 유지된 데이터는 필수적으로 진부하게 되고, 프레임워크는 데이터 파일을 갱신하기 위해서만 통신을 개시한다. 이것은 예를 들어, 대화형 응용 프로그램이 동작을 계속하기 위해 외부 데이터에 의존하는 경우와 같이, 통신이 실행 중인 응용 프로그램의 페이스에 의해 규정된 스케줄에구속되지 않는다는 것을 의미한다. 조정의 주파수 및 타이밍 대신에, 동기 접속이 폭넓게 변경될 수 있다. 정확한 타이밍은 다수의 요인에 의해 결정될 수 있다.
로그-구동 갱신:각 파일에 대하여, 임의의 한 순간에 허용되는 발산량은 로깅된 변경에 의해 명시될 수 있다. 더 많은 변경이 수행되는 경우[즉, 모든 변경의 가중화 총 길이(weighted aggregate length)가 소정의 명시된 범위를 초과하는 경우], 조정 프로세스가 기동된다. 극히 적은 량의 허용가능한 발산을 갖는 소위 '파이프라인-파일(pipeline-files)'이 설정될 수 있으며, 이는 사실 상, 파일에 대한 각 변경은 다른 모든 사이트로 즉시 전달된다는 것을 의미한다. 이들 파일은 사이트들간의 편리한 메시지 교환 기능요소로서 사용될 수 있다.
주기적 갱신: 모든 사이트는 주기적 간격으로 접속될 수 있다. 이것은 로그에 의해 구동되는 갱신을 일으키기 위한 임계치를 초과하지 않더라도 작은 변경도 종국적으로 전달되도록 보장하다.
현 네트워크 비용 및 사용성: 조정을 일으키는 상황은 네트워크 접속이 보다 저가의 율로 사용가능한 동안 또는 보다 저가의 네트워크가 사용가능한 피크 이외의(off-peak) 시간동안 완화될 수 있다. 예를 들면, 노드가 실제로 소정의 시간주기동안 자유 유선 네트워크에 접속되어, 조정이 영구히 수행될 수 있도록 하는 경우를 생각할 수 있다. 그러면, 프레임워크는 실제로 종래의 "네트워크 파일 시스템" 과 같이 동작한다. 변경은 즉시 모든 사본에 전달되고, 결과적으로 충돌이 있을 가능성이 적다. 다른 극단적 경우로, 이동 데이터 채널의 질이 낮은 것으로 검출되는 경우에 조정 단계가 지연되어, 결과적으로 높은 에러율, 다수의 재전송및 결과적인 높은 전송 비용을 야기할 수 있다.
요구 기반 갱신: 소정의 중요한 응용 프로그램은 최신 데이터를 요구한다. 따라서, 응용 프로그램이 조정을 요청할 수 있고, 일반적으로 즉시 프레임워크에 의해 조정이 행해진다. 분명히, 이들 응용 프로그램은 프레임워크-인식 응용 프로그램으로 기록되어야만 한다.
사용자는 조정을 위해 프레임워크에 의해 사용될 수 있는 소정의 재정적 예산을 정의할 수 있을 것이다. 이것은 전형적인 변경의 패턴을 감시하고 이에 따라 재접속을 변경함으로써 가능하다.
전술한 설명을 통해 바람직한 실시예의 이동 애플리케이션 프레임워크를 기술하였다. 이는 표준 응용 프로그램으로 하여금 경제적이며 제어가능한 방식으로 이동 데이터 회선을 사용할 수 있도록 하는 포괄적인 시스템이다. 이것은 파일 시스템 레벨 상에 접속해제형 동작에 대한 지원을 부가함으로써 성취된다. 긴 기간의 접속해제형 동작동안 무제한적인 액세스로 인해 파일이 발산하는 문제는 각 복제 파일에 대한 상세한 변경 히스토리를 생성하는 로거(logger)를 사용함으로써 해결되며, 완전히 자동적으로 충돌을 해결할 수 있다. 포괄적인 알고리즘이 모든 가능한 경우에 최적 결과를 생성할 것으로 기대할 수 없지만, 항상 결과 파일을 함께 작업할 수 있으며 필요한 경우 수동으로 클린업할 수 있다.
몇몇 사용자들간에 개별 파일을 공유하는 것은 동일한 사용자에 대한 상이한머신 상에 파일을 복제하는 것보다는 훨씬 적게 발생될 것이다. 예를 들면, 대형의 고정 데스크탑 머신의 파일 공간은 소형 이동 노트북상의 프레임워크를 통하여 미러화(mirrored)될 수 있다. 이들 경우에, 사용자는 두 머신 상에서 동일한 작업 환경을 대할 뿐만 아니라 동일한 응용 프로그램을 대할 것이다. 따라서, 프레임워크는 본질적으로 사용이 용이하다. 프레임워크에 의해 저속의 이동 데이터 접속을 사용하는 경우에도 사용자에게 투명하게 이루어질 수 있다.
파일 시스템 레벨에 프레임워크를 위치시키면, 통신 서브시스템은, 전송에 앞서 특화된 압축 및 감축 방법을 파일에 적용함으로써 쉽게 추론될 수 있는 유형 정보를 사용할 수 있다.
또한, 하나의 모듈 및 단일 구성요소의 제어 하에 모든 통신 특성을 포함함으로써, 전송이 쉽게 감시될 수 있고, 접속해제형 동작의 이점으로 인하여 전송 주파수는 전송 비용의 경제성에 맞게 폭넓게 변경될 수 있다.

Claims (18)

  1. 이동 통신 네트워크(460)를 통하여 접속될 수 있는 다수의 컴퓨터 시스템 상에 유지관리되는 공유 데이터 파일의 사본(copies)을 관리하는 방법에 있어서,
    (a) 상기 공유 데이터 파일의 각 사본(205, 420)에 대하여, 그 사본에 행해지는 변경의 레코드(540)를 유지관리하는 단계와,
    (b) 상기 이동 통신 네트워크(460)에 대한 접속을 통하여 상기 공유 데이터 파일의 사본 중 적어도 일부에 대해 유지관리되는 유지관리 레코드(550)를 검색하는 단계와,
    (c) 변경 시퀀스를 생성하기 위하여 상기 검색된 레코드를 병합(560)하는 단계와,
    (d) 상기 변경 시퀀스에 사전정의된 규칙(580)을 적용하여 상기 변경 시퀀스내의 충돌(conflicts)을 해결하는 단계와,
    (e) 상기 충돌이 해결된 변경 시퀀스를 근거로 상기 공유 파일의 적어도 하나의 사본(205, 420)을 변경하는 단계를 포함하는
    공유 데이터 파일의 사본 관리 방법.
  2. 제 1 항에 있어서,
    상기 단계 (a)는 상기 다수의 컴퓨터 시스템의 각각에서 수행되고,
    상기 다수의 컴퓨터 시스템은 상기 단계 (a) 동안 상기 이동 통신 네트워크로부터 접속해제되는
    공유 데이터 파일의 사본 관리 방법.
  3. 제 2 항에 있어서,
    상기 다수의 컴퓨터 시스템은 단지 상기 검색 단계 (b) 동안 상기 이동 통신 네트워크(460)에 접속되는
    공유 데이터 파일의 사본 관리 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 단계 (a) 내지 단계 (d)의 각각은 상기 다수의 컴퓨터 시스템 중의 소정 컴퓨터 시스템 상에서 수행되고,
    상기 단계 (b)는 상기 이동 통신 네트워크(460)에 대한 접속을 통하여 상기 다수의 컴퓨터 시스템 중의 소정 컴퓨터 시스템에 의해 유지관리되는 상기 레코드(550)를 교환하는 단계를 포함하며,
    상기 단계 (e)는 상기 공유 파일의 상기 적어도 하나의 사본(420)을 수정하는 단계를 포함하는
    공유 데이터 파일의 사본 관리 방법.
  5. 제 1 항에 있어서,
    상기 단계 (a) 동안 각 변경이 기록되는 대로 우선순위 정보가 상기 각 변경과 함께 저장되고,
    상기 단계 (c)에서 상기 우선순위 정보는 상기 단계 (d)의 후속되는 해결을 위하여 충돌하는 변경에 상대적인 우선순위를 할당하는
    공유 데이터 파일의 사본 관리 방법.
  6. 제 5 항에 있어서,
    상기 단계 (a)에서 저장된 상기 우선순위 정보는 변경을 행하는 사용자의 신원(identity)을 포함하는
    공유 데이터 파일의 사본 관리 방법.
  7. 제 6 항에 있어서,
    상기 단계 (a)에서 저장된 상기 우선순위 정보는 충돌하는 변경의 우선순위를 결정하는 데 사용되는 타임 스탬프(time stamp) 정보를 포함하는
    공유 데이터 파일의 사본 관리 방법.
  8. 제 7 항에 있어서,
    상기 단계 (d) 동안, 충돌하는 낮은 우선순위를 갖는 변경은 완전히 무효화되는
    공유 데이터 파일의 사본 관리 방법.
  9. 제 7 항에 있어서,
    상기 단계 (d) 동안, 낮은 우선순위를 갖는 변경의 충돌하는 부분만이 무효화되는
    공유 데이터 파일의 사본 관리 방법.
  10. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 단계 (b) 동안, 상기 레코드는 상기 이동 통신 네트워크(460) 상으로 전송되기에 앞서 압축되는
    공유 데이터 파일의 사본 관리 방법.
  11. 공유 데이터 파일의 사본(420)을 유지관리하는 제 1 컴퓨터 시스템으로서,상기 공유 데이터 파일의 사본은 이동 통신 네트워크(460)를 통하여 상기 제 1 컴퓨터 시스템에 접속될 수 있는 다수의 다른 컴퓨터 시스템에서 또한 유지관리되고, 각각의 제 1 컴퓨터 시스템은 상기 이동 통신 네트워크(460)로부터 접속해제된 동안 상기 공유 파일의 사본에 행해지는 변경의 레코드(540, 550)를 유지하도록 구성되는 상기 컴퓨터 시스템에 있어서,
    (a) 상기 제 1 컴퓨터 시스템을 상기 이동 통신 네트워크(460)에 접속시켜, 상기 다수의 다른 컴퓨터 시스템에서 유지관리되는 상기 공유 데이터 파일의 사본을 위해 유지된 상기 레코드(550)를 검색하는 검색 수단(440, 450)과,
    (b) 상기 공유 데이터 파일의 상기 제 1 컴퓨터 시스템(420)을 위해 유지된 상기 레코드(540)와 상기 검색된 레코드(550)를 병합하여 변경 시퀀스를 생성하는 병합 수단(560)과,
    (c) 상기 변경 시퀀스에 사전정의된 규칙(580)을 적용하여 상기 변경 시퀀스내의 충돌을 해결하는 충돌 해결 수단(590)과,
    (d) 상기 충돌이 해결된 변경 시퀀스를 기반으로 상기 제 1 컴퓨터 시스템 내의 공유 파일의 사본(420)을 변경하는 수단(590)을 포함하는
    컴퓨터 시스템.
  12. 제 11 항에 있어서,
    상기 검색 수단(440, 450)이 상기 변경 레코드를 검색하는 동안에만, 상기다수의 컴퓨터 시스템이 상기 이동 통신 네트워크에 접속되는
    컴퓨터 시스템.
  13. 제 11 항에 있어서,
    각 변경이 기록되는 대로 우선순위 정보가 상기 각 변경과 함께 저장되고, 상기 병합 수단(560)은 상기 병합 과정동안 상기 우선순위 정보를 사용하도록 구성되어, 상기 충돌 해결 수단(590)에 의한 후속 해결을 위해 충돌하는 변경에 상대적인 우선순위를 할당하는
    컴퓨터 시스템.
  14. 제 13 항에 있어서,
    변경과 함께 저장된 상기 우선순위 정보는 상기 변경을 행한 사용자의 신원을 포함하는
    컴퓨터 시스템.
  15. 제 13 항에 있어서,
    변경과 함께 저장된 상기 우선순위 정보는 타임 스탬프 정보를 포함하여, 이전의 변경은 차후의 변경보다 높은 우선순위를 가지는
    컴퓨터 시스템.
  16. 제 13 항에 있어서,
    상기 충돌 해결 수단(590)은 충돌하는 낮은 우선순위를 갖는 변경을 완전히 무효화시키도록 구성되는
    컴퓨터 시스템.
  17. 제 13 항에 있어서,
    상기 충돌 해결 수단(590)은 낮은 우선순위를 갖는 변경의 충돌하는 부분만을 무효화시키도록 구성되는
    컴퓨터 시스템.
  18. 이동 통신 네트워크(460)를 통하여 접속될 수 있는 다수의 컴퓨터 시스템에서 유지관리되는 공유 데이터 파일의 사본을 관리하는 데이터 관리 시스템에 있어서,
    (a) 상기 공유 데이터 파일의 각 사본(420)과 관련하여, 상기 사본에 행해지는 변경의 레코드(540, 550)를 유지하는 로깅(logging) 수단(410)과,
    (b) 상기 이동 통신 네트워크(460)에 대한 접속을 통하여 상기 공유 데이터 파일의 사본 중 적어도 일부를 위해 유지관리되는 레코드를 검색하는 검색 수단(440, 450)과,
    (c) 상기 검색된 레코드를 병합하여 변경 시퀀스를 생성하는 병합 수단(560)과,
    (d) 상기 변경 시퀀스에 사전정의된 규칙(580)을 적용하여 상기 변경 시퀀스내의 충돌을 해결하는 충돌 해결 수단(590)과,
    (e) 상기 충돌이 해결된 변경 시퀀스를 기반으로 상기 공유 파일의 적어도 하나의 사본(420)을 변경하는 수단(590)
    을 포함하는 데이터 관리 시스템.
KR1019970003546A 1996-03-08 1997-02-05 공유데이터파일의사본관리방법,데이터관리시스템및컴퓨터시스템 KR100295725B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9604987.9A GB9604987D0 (en) 1996-03-08 1996-03-08 Data management system and method for replicated data
GB9604987.9 1996-03-08

Publications (2)

Publication Number Publication Date
KR970066947A KR970066947A (ko) 1997-10-13
KR100295725B1 true KR100295725B1 (ko) 2001-08-07

Family

ID=10790107

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970003546A KR100295725B1 (ko) 1996-03-08 1997-02-05 공유데이터파일의사본관리방법,데이터관리시스템및컴퓨터시스템

Country Status (7)

Country Link
US (1) US6088706A (ko)
EP (1) EP0794646B1 (ko)
JP (1) JPH09244936A (ko)
KR (1) KR100295725B1 (ko)
CN (1) CN1099785C (ko)
DE (1) DE69729399T2 (ko)
GB (1) GB9604987D0 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048368A (ko) 2017-10-31 2019-05-09 최재호 공유폴더 파일 관리 장치 및 방법
KR20190066230A (ko) 2017-12-05 2019-06-13 최재호 스마트 로그파일 관리 장치 및 방법
KR20190084543A (ko) 2018-01-08 2019-07-17 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체
KR20190084905A (ko) 2019-02-26 2019-07-17 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체
KR20190086913A (ko) 2018-01-15 2019-07-24 최재호 폴더 연동형 업무객체 관리 장치, 이에 의해 수행되는 폴더 연동형 업무객체 관리 방법 및 이를 저장하는 기록매체
KR20190087337A (ko) 2018-01-15 2019-07-24 최재호 폴더 연동형 업무객체 관리 장치, 이에 의해 수행되는 폴더 연동형 업무객체 관리 방법 및 이를 저장하는 기록매체
KR20210008132A (ko) 2019-02-26 2021-01-20 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0926608B1 (en) * 1997-12-24 2004-03-10 Nortel Networks Limited Distributed persistent storage for intermittently connected clients
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US7949779B2 (en) * 1998-02-10 2011-05-24 Level 3 Communications, Llc Controlling subscriber information rates in a content delivery network
JP3578385B2 (ja) 1998-10-22 2004-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ、及びレプリカ同一性保持方法
US7167860B1 (en) 1999-03-25 2007-01-23 Nortel Networks Limited Fault tolerance for network accounting architecture
US7243143B1 (en) 1999-03-25 2007-07-10 Nortel Networks Limited Flow probe connectivity determination
US6625657B1 (en) 1999-03-25 2003-09-23 Nortel Networks Limited System for requesting missing network accounting records if there is a break in sequence numbers while the records are transmitting from a source device
US20020091636A1 (en) * 1999-03-25 2002-07-11 Nortel Networks Corporation Capturing quality of service
US6751663B1 (en) * 1999-03-25 2004-06-15 Nortel Networks Limited System wide flow aggregation process for aggregating network activity records
US7363330B1 (en) * 1999-06-07 2008-04-22 Symantec Corporation Work monitor with file synchronization
US6473855B1 (en) * 1999-06-18 2002-10-29 Phoenix Technologies Ltd. Method and apparatus for providing content on a computer system based on usage profile
US6859821B1 (en) 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US6393434B1 (en) * 1999-09-14 2002-05-21 International Business Machines Corporation Method and system for synchronizing data using fine-grained synchronization plans
WO2001035211A2 (en) * 1999-11-09 2001-05-17 Jarna, Inc. Synchronizing data among multiple devices in a peer-to-peer environment
US6973464B1 (en) 1999-11-15 2005-12-06 Novell, Inc. Intelligent replication method
US6625623B1 (en) * 1999-12-16 2003-09-23 Livevault Corporation Systems and methods for backing up data files
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6748403B1 (en) * 2000-01-13 2004-06-08 Palmsource, Inc. Method and apparatus for preserving changes to data
US6415299B1 (en) * 2000-04-12 2002-07-02 Unisys Corp. Method for merging versions of a model in an object oriented repository
US6931454B2 (en) * 2000-12-29 2005-08-16 Intel Corporation Method and apparatus for adaptive synchronization of network devices
WO2002073409A1 (en) 2001-03-13 2002-09-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangements for node recovery
US6748402B1 (en) * 2001-04-02 2004-06-08 Bellsouth Intellectual Property Corporation System and method for converting and loading interactive pager address books
US20020152262A1 (en) * 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US20020152261A1 (en) * 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US20030069987A1 (en) * 2001-10-05 2003-04-10 Finnur Sigurdsson Communication method
US7038696B2 (en) * 2002-01-04 2006-05-02 Hewlett-Packard Development Company Method and apparatus for implementing color graphics on a remote computer
GB0202600D0 (en) * 2002-02-05 2002-03-20 Ibm Consolidation of replicated data
US7149759B2 (en) 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
DE10227560A1 (de) * 2002-06-20 2004-01-22 Siemens Ag Bearbeitungsverfahren für Daten, die zu mehreren Datensätzen zusammengefasst sind, durch mehrere Applikationen
US8195714B2 (en) 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US7925246B2 (en) 2002-12-11 2011-04-12 Leader Technologies, Inc. Radio/telephony interoperability system
GB0229572D0 (en) * 2002-12-19 2003-01-22 Cognima Ltd Quality of service provisioning
US7739583B2 (en) * 2003-03-31 2010-06-15 Ricoh Company, Ltd. Multimedia document sharing method and apparatus
US7406487B1 (en) * 2003-08-29 2008-07-29 Symantec Operating Corporation Method and system for performing periodic replication using a log
US7191284B1 (en) * 2003-09-04 2007-03-13 Veritas Operating Corporation Method and system for performing periodic replication using a log and a change map
US7283994B2 (en) * 2003-09-15 2007-10-16 Sap Ag Merging of products into a database
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7698428B2 (en) * 2003-12-15 2010-04-13 International Business Machines Corporation Apparatus, system, and method for grid based data storage
US7418464B2 (en) * 2004-01-27 2008-08-26 International Business Machines Corporation Method, system, and program for storing data for retrieval and transfer
DE602004021084D1 (de) * 2004-02-10 2009-06-25 Research In Motion Ltd Vorrichtung und zugeordnetes Verfahren zur Sperrung und Identifizierung einer Änderungsliste, die entsprechend von Datenbanksynchronisierungsabläufen in einem Funkkommunikationssystem verwendet wird
US7246258B2 (en) * 2004-04-28 2007-07-17 Lenovo (Singapore) Pte. Ltd. Minimizing resynchronization time after backup system failures in an appliance-based business continuance architecture
US7487471B2 (en) * 2004-07-23 2009-02-03 Sap Ag User interface for conflict resolution management
US8933941B2 (en) * 2004-08-23 2015-01-13 Hewlett-Packard Development Company, L.P. Method and apparatus for redirection of video data
JP4717464B2 (ja) * 2005-02-18 2011-07-06 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
FR2877459A1 (fr) * 2005-03-30 2006-05-05 France Telecom Localisation de fichiers dans des dispositifs de traitement de donnees
US7305420B2 (en) * 2005-05-25 2007-12-04 Microsoft Corporation Synchronizing modifiable documents with multiple clients using document subsections
US20070038681A1 (en) * 2005-08-10 2007-02-15 Spare Backup, Inc. System and method of remote storage of data through connection from a server to a client
US7882156B2 (en) * 2005-11-02 2011-02-01 Requisite Software, Inc. System and method for storing item attributes in an electronic catalog
KR100725415B1 (ko) * 2005-12-24 2007-06-07 삼성전자주식회사 데이터베이스의 로그병합 방법 및 장치
US7756829B2 (en) * 2006-04-18 2010-07-13 Sandeep Bhanote Method and apparatus for mobile data collection and management
CN101110020B (zh) * 2006-07-21 2011-01-26 国际商业机器公司 维护关于可编辑对象中的元素的与原创性有关的信息的方法和系统
US8327456B2 (en) * 2007-04-13 2012-12-04 Microsoft Corporation Multiple entity authorization model
CN101315621B (zh) * 2007-05-29 2010-10-06 北京书生国际信息技术有限公司 一种实现文档共享编辑的方法
US8185095B2 (en) * 2007-06-06 2012-05-22 Mspot, Inc. Method and apparatus for tracking version of digital content
EP2028813A1 (en) * 2007-07-02 2009-02-25 British Telecmmunications public limited campany Method of synchronizing intermittently connected mobile terminals
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
KR101437687B1 (ko) * 2007-12-20 2014-09-03 주식회사 엘지씨엔에스 금융단말 및 그 업무파일 동기화 방법, 그리고 그를 이용한금융시스템
US8239345B2 (en) * 2007-12-27 2012-08-07 Microsoft Corporation Asynchronous replication
US8166002B2 (en) * 2008-06-24 2012-04-24 International Business Machines Corporation Flexible configuration item reconciliation based on data source prioritization and persistent ownership tracking
CN101783740B (zh) * 2009-01-21 2012-02-15 大唐移动通信设备有限公司 消息文件管理方法及装置
US9104715B2 (en) 2010-06-23 2015-08-11 Microsoft Technology Licensing, Llc Shared data collections
US9330148B2 (en) * 2011-06-30 2016-05-03 International Business Machines Corporation Adapting data quality rules based upon user application requirements
US9104748B2 (en) * 2011-10-21 2015-08-11 Microsoft Technology Licensing, Llc Providing a search service including updating aspects of a document using a configurable schema
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US9053079B2 (en) 2011-12-12 2015-06-09 Microsoft Technology Licensing, Llc Techniques to manage collaborative documents
US9218406B2 (en) * 2012-04-26 2015-12-22 Connected Data, Inc. System and method for managing user data in a plurality of storage appliances over a wide area network for collaboration, protection, publication, or sharing
GB2515703B (en) * 2012-04-26 2020-04-08 Connected Data Inc System and method for managing user data in a plurality of storage appliances over a wide area network
US9396156B2 (en) 2012-04-26 2016-07-19 Connected Data, Inc. System and method for socially organized storage and shared access to storage appliances
US10601799B2 (en) 2012-04-26 2020-03-24 Connected Data, Inc. System and method for visualizing data sharing arrangements for an organization
US9881017B2 (en) * 2012-08-03 2018-01-30 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
US9021431B2 (en) 2013-01-07 2015-04-28 Abb Inc. System and method for developing, deploying and implementing power system computer applications
JP6303391B2 (ja) * 2013-10-22 2018-04-04 富士ゼロックス株式会社 履歴情報管理装置及びシステム並びにプログラム
WO2016014592A1 (en) 2014-07-21 2016-01-28 Egnyte, Inc. System and method for policy based synchronization of remote and local file systems
JP6341013B2 (ja) * 2014-09-11 2018-06-13 富士ゼロックス株式会社 端末装置、通信システムおよびプログラム
US10437789B2 (en) 2015-04-10 2019-10-08 Egnyte, Inc. System and method for delete fencing during synchronization of remote and local file systems
US11144510B2 (en) 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US20170177613A1 (en) 2015-12-22 2017-06-22 Egnyte, Inc. Event-Based User State Synchronization in a Cloud Storage System
US10970302B2 (en) 2017-06-22 2021-04-06 Adobe Inc. Component-based synchronization of digital assets
US10795867B2 (en) * 2017-11-06 2020-10-06 International Business Machines Corporation Determining available remote storages in a network to use to replicate a file based on a geographical requirement with respect to the file
US11321012B2 (en) * 2018-10-12 2022-05-03 Adobe Inc. Conflict resolution within synchronized composite-part-based digital assets
CN112163024B (zh) * 2020-09-11 2024-03-19 重庆誉存大数据科技有限公司 一种基于层级关联结构的配置信息导出和导入方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0431467A1 (en) * 1989-12-04 1991-06-12 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Multiprocessor system having distributed shared resources and dynamic global data replication

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB684558A (en) * 1949-03-17 1952-12-17 Platt Brothers & Co Ltd Improvements in weft stop motion devices for looms for weaving tufted pile fabrics
US5261051A (en) * 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
EP0462914A3 (en) * 1990-06-21 1993-06-02 International Business Machines Corporation A method of creating documents using existing documents
US5471617A (en) * 1991-06-24 1995-11-28 Compaq Computer Corporation Computer management system and associated management information base
JPH0824291B2 (ja) * 1993-03-25 1996-03-06 日本電気株式会社 ネットワーク管理システム
US5469503A (en) * 1993-07-27 1995-11-21 Aspect Telecommunications Corporation Method for resynchronizing secondary database and primary database with preservation of functionality of an automatic call distribution system
US5608426A (en) * 1993-09-28 1997-03-04 Ncr Corporation Palette management for application sharing in collaborative systems
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US5490270A (en) * 1994-06-16 1996-02-06 International Business Machines Corporation Simultaneous updates to the modification time attribute of a shared file in a cluster having a server and client nodes
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
US5706510A (en) * 1996-03-15 1998-01-06 Hewlett-Packard Company Zymbolic history management system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0431467A1 (en) * 1989-12-04 1991-06-12 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Multiprocessor system having distributed shared resources and dynamic global data replication

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048368A (ko) 2017-10-31 2019-05-09 최재호 공유폴더 파일 관리 장치 및 방법
KR20190066230A (ko) 2017-12-05 2019-06-13 최재호 스마트 로그파일 관리 장치 및 방법
KR20190084543A (ko) 2018-01-08 2019-07-17 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체
KR20190086913A (ko) 2018-01-15 2019-07-24 최재호 폴더 연동형 업무객체 관리 장치, 이에 의해 수행되는 폴더 연동형 업무객체 관리 방법 및 이를 저장하는 기록매체
KR20190087337A (ko) 2018-01-15 2019-07-24 최재호 폴더 연동형 업무객체 관리 장치, 이에 의해 수행되는 폴더 연동형 업무객체 관리 방법 및 이를 저장하는 기록매체
KR20190084905A (ko) 2019-02-26 2019-07-17 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체
KR20210008132A (ko) 2019-02-26 2021-01-20 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체

Also Published As

Publication number Publication date
DE69729399D1 (de) 2004-07-15
EP0794646A3 (en) 2000-01-26
EP0794646A2 (en) 1997-09-10
JPH09244936A (ja) 1997-09-19
US6088706A (en) 2000-07-11
CN1169628A (zh) 1998-01-07
KR970066947A (ko) 1997-10-13
DE69729399T2 (de) 2005-06-16
CN1099785C (zh) 2003-01-22
GB9604987D0 (en) 1996-05-08
EP0794646B1 (en) 2004-06-09

Similar Documents

Publication Publication Date Title
KR100295725B1 (ko) 공유데이터파일의사본관리방법,데이터관리시스템및컴퓨터시스템
US7013316B1 (en) System and method for synchronizing multiple database files
CN100449500C (zh) 用于确定对源文件作出的改变以便传输到目标位置的方法和系统
CN1744603B (zh) 通过远程协议的远程文件更新的方法和计算机
CN100377099C (zh) 为复制文件管理多个文件状态的方法
US6311213B2 (en) System and method for server-to-server data storage in a network environment
AU2002344297B2 (en) Management and synchronization application for network file system
EP1148416B1 (en) Computer system and snapshot data management method
US6526434B1 (en) System and method for efficient transfer of data blocks from client to server
US6430625B1 (en) System and corresponding method for providing redundant storage of a data file over a computer network
US6675177B1 (en) Method and system for backing up digital data
US7127509B2 (en) System and method for synchronizing objects between two devices
CN1805394B (zh) 在同步和异步通信模式之间过渡的方法和系统
US6751674B1 (en) Method and system for replication in a hybrid network
US6941327B2 (en) Apparatus and method for database synchronization in a duplex system
US5987497A (en) System and method for managing the configuration of distributed objects
EP0974895A2 (en) System for user control of version synchronization in mobile computing
JP4677406B2 (ja) モバイル装置のユーザ設定を保存するための方法、システム、およびコンピュータ・プログラム
EA002931B1 (ru) Система и способ синхронизации и организации баз данных
JP2000259474A (ja) 異なるデータファイルを調停する方法
US8805927B2 (en) Methods and systems for a distributed group activity network
CN1271812C (zh) 无线设备同步系统及方法
US20020073175A1 (en) Updating world wide web pages in a storage area network environment
US5615372A (en) Network definition modifying system
JP4398042B2 (ja) 送信装置、受信装置、送受信装置、送信方法および受信方法

Legal Events

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

Payment date: 20130419

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140418

Year of fee payment: 14

EXPY Expiration of term