KR100876212B1 - 이동통신단말기의 읽기 전용 파일 시스템 상에서의소프트웨어 업데이트 방법 - Google Patents

이동통신단말기의 읽기 전용 파일 시스템 상에서의소프트웨어 업데이트 방법 Download PDF

Info

Publication number
KR100876212B1
KR100876212B1 KR1020070137448A KR20070137448A KR100876212B1 KR 100876212 B1 KR100876212 B1 KR 100876212B1 KR 1020070137448 A KR1020070137448 A KR 1020070137448A KR 20070137448 A KR20070137448 A KR 20070137448A KR 100876212 B1 KR100876212 B1 KR 100876212B1
Authority
KR
South Korea
Prior art keywords
file
file system
system image
read
new file
Prior art date
Application number
KR1020070137448A
Other languages
English (en)
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 웹싱크 주식회사
Priority to KR1020070137448A priority Critical patent/KR100876212B1/ko
Application granted granted Critical
Publication of KR100876212B1 publication Critical patent/KR100876212B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

읽기 전용 파일 시스템 이미지 상에 파일의 갱신 또는 추가 시에 메모리의 효율성을 높이는 소프트웨어 업데이트 방법이 개시된다. 읽기 전용 파일 시스템 이미지 상에서 신규 파일이 기록될 연속된 여유 공간이 있는지 확인하고, 신규 파일이 기록될 연속된 여유 공간이 있는 경우에는, 확인된 신규 파일이 기록될 연속된 여유 공간에 신규 파일을 기록하며, 신규 파일이 기록될 연속된 여유 공간이 없는 경우에는, 읽기 전용 파일 시스템 이미지에 포함된 적어도 하나의 파일들의 위치를 재구성하여 신규 파일이 기록될 연속된 여유 공간을 확보한 다음 신규 파일을 기록하는 방식으로 읽기 전용 파일 시스템의 소프트웨어 업데이트 방법을 구성한다. 따라서, 읽기 전용 파일 시스템 이미지에 대한 패치가 반복된 경우에도 추가 또는 변경될 신규 파일의 크기에 유연하게 대응하는 소프트웨어 업그레이드가 가능해진다.
소프트웨어, 펌웨어, 패치, 업데이트, 이동통신단말기

Description

이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법{METHOD OF UPDATING SOFTWARE ON READ-ONLY FILE SYSTEM IN MOBILE TELEPHONE}
본 발명은 이동통신단말기의 소프트웨어 업데이트 방법에 관한 것으로, 더욱 상세하게는 읽기 전용 파일 시스템을 이용하는 이동통신단말기에서 구 버전 펌웨어를 패치 단위로 신 버전 펌웨어로 업데이트하는 방법에 있어서 효율적인 메모리 공간의 활용을 가능하도록 하는 소프트웨어 업그레이드 방법에 관한 것이다.
최근의 이동통신단말기는 사용자의 요구를 반영하는 다양한 기능들을 수용하고 있다. 특히, 최근의 이동통신단말기는 제품 출시 단계에서 모든 개발이 완료되는 것이 아니라, 제품의 최초 출시 이후에도 끊임없이 탑재된 소프트웨어의 진화를 추구하고 있다. 또한, 이동통신단말기에는 콜-프로세싱(call-processing) 등의 이동통신단말기의 본연적인 기능뿐만 아니라, 다양한 부가기능들이 탑재되어 있는데, 이러한 기능들은 점차적으로 복잡화되어 가고 있을 뿐 아니라 탑재된 어플리케이션들의 크기 역시도 증가되어 가고 있는 추세이다. 통상적으로 이동통신단말기 소프트웨어는 펌웨어(firmware)로서 이동통신단말기 내부의 비휘발성 메모리(non-volatile memory) 소자에 저장된다.
따라서, 이동통신단말기의 개발 및 생산 업체의 경우에는 제품 최초 출시 이후 단계에서도 출시된 제품에 탑재된 펌웨어의 수정, 보완 작업을 지속적으로 진행한다. 이동통신단말기와 같이 라이프사이클(life-cycle)이 극도로 짧은 제품의 경우나, 끊임없이 개선하고 보완하여야 하는 소프트웨어의 관점에서는 핵심적인 기능들의 완전성이 담보된다면 시장에 출시를 하고, 세부적인 문제점들은 지속적인 수정, 보완 작업으로 해결해나가는 것이 필요할 수 있기 때문이다. 이러한 수정, 보완 작업의 대상은 제품 출시 이후에 발견된 이동통신단말기의 기능적 장애 사항을 해결하기 위한 것일 수도 있으며, 보다 완벽한 제품을 위한 기능 추가나 사용자의 요구사항들을 반영한 기능 보완 및 수정일 수 있다.
특히, 이동통신단말기의 양산 과정에 있어서는, 이동통신단말기의 조립 공정에 소요되는 시간 및 부품 재고 부담을 줄이고 시장에 대한 즉각적인 출시를 가능하도록 하기 위해서 소프트웨어에 대한 보완 및 수정 작업이 계속되는 상태에서도, 생산을 시작하여 일정량의 양산 물량을 미리 완성하는 경우가 많다. 예컨대, 일단 출시 상태의 펌웨어 버전을 확정하고 모델별로 생산 라인에서 생산을 하게 되는 것이다. 따라서, 생산 라인에서 초기 버전의 펌웨어를 탑재하게 된 이후에도 실제 출시단계에서는 아주 작은 펌웨어의 변경이 반영되어 이미 탑재된 펌웨어를 갱신할 필요성이 생기게 된다.
통상적으로 이동통신단말기에 탑재되는 비휘발성 메모리로는 NAND 플래시 메모리 또는 NOR 플래시 메모리가 이용되는데, 현재 이동통신단말기의 소프트웨어는 다양한 기능을 수용하기 위하여 그 용량이 지속적으로 증가하고 있는 추세이다. 예 컨대, 최근의 이동통신단말기의 경우에는 32메가바이트(megabyte) 이상의 비휘발성 메모리에 소프트웨어가 탑재되는 경우가 많아지고 있으며, 이 용량 또한 증가되고 있는 추세이다.
이 경우, 이동통신단말기에 탑재된 메모리에 소프트웨어를 업그레이드시키기 위하여서는 비휘발성 메모리에 탑재된 전체 메모리의 내용을 지우고(erase), 새로운 버전의 소프트웨어를 기록하게 되는 방식이 주로 이용된다. 따라서, 이동통신단말기 1대당 약 3~4분(NOR 플래시 메모리, 32메가바이트 기준)에서 10분(NAND 플래시 메모리, 32메가바이트 기준)이 소요된다. 이는 생산 라인에 있어서, 상당한 부담으로 작용되어 생산성 향상에 지장을 주게 된다. 실제 탑재되는 펌웨어의 변경은 전체 펌웨어의 크기 대비 1~2% 이하의 차이만을 가져오는 경우가 대부분이지만 전면적인 펌웨어의 갱신에 소모되는 시간은 생산성에 나쁜 영향을 주게 되는 것이다.
특히, 이동통신단말기의 펌웨어 업그레이드를 위해서는, 이동통신단말기와 이동통신단말기의 펌웨어를 업그레이드할 수 있는 컴퓨터 장치를 소정의 인터페이스 방식으로 연결하여 이동통신단말기의 비휘발성 메모리를 지우고 새로운 버전의 소프트웨어를 기록하는 공정이 이루어지는데, 전체 생산 공정에서 상당한 병목(bottle neck)으로 작용될 수 있다. 이를 위한 해결로서, 새로운 버전의 펌웨어 전체 또는 구 버전과 신 버전의 펌웨어의 차이점만을 포함한 파일(delta file)을 이동통신단말기에 다운로드하고 이동통신단말기 자체적으로 펌웨어를 갱신하는 패치(patch) 방식이 이용될 수 있다.
한편, 최근의 이동통신단말기들의 소프트웨어들은 커널(kernel)과 다양한 어 플리케이션 파일들을 포함한 파일 시스템 이미지(file system image)로서 분리되어 이동통신단말기내의 불휘발성 메모리 내에 저장된다. 이때 어플리케이션 파일들을 포함하는 파일 시스템 이미지의 파일 시스템은 읽기 전용 파일 시스템이 이용되며, 리눅스 시스템에서 이용되는 압축 읽기 전용 파일 시스템인 CRAMFS(Compressed Read-only Memory File System) 또는 노키아(Nokia) 사의 심비안(Symbian) 파일 시스템(ROMFS 혹은 ROFS: Read Only File System) 등이 이용되고 있다.
이와 같은 파일 시스템들은 사용자가 직접적으로 파일 시스템내의 내용들을 변경할 수 없도록 하는 예정되어 있는 읽기 전용 파일 시스템이므로, 기존의 범용적인 파일 시스템들과 비교하면, 유연성 있는 파일들의 관리가 어렵다는 제한사항들을 가지고 있다. 대표적으로, 파일 시스템 이미지 내에 존재하는 각 파일들은 연속적으로 바이너리 상태로서 존재하여야 하며, 하나의 파일들이 나눠진 상태로 링크(link)되어 파일 시스템 내에 유연성 있게 저장될 수 없다. 이로 인해서, 읽기 전용 파일 시스템내의 파일들에 대한 갱신 작업이 이루어질 경우에는 효율적인 공간 활용이 어려워진다는 문제점이 발생된다.
예컨대, 읽기 전용 파일 시스템 이미지 상의 어느 한 기존 파일을 신규의 파일로 업데이트할 경우에는 기존 파일이 파일 시스템 이미지 상에서 차지하는 공간이 신규 파일의 크기보다 같거나 클 경우에는 신규 파일이 기존 파일을 대체하여 기존 파일이 차지한 공간에 저장될 수 있다. 그러나, 기존 파일이 파일 시스템 이미지 상에서 차지하는 공간이 신규 파일의 크기보다 작을 경우에는, 신규 파일이 기록될 수 있을만한 연속된 공간을 파일 시스템 이미지의 다른 영역에서 확보하여 신규 파일을 기록하여야만 한다.
따라서, 기존 파일의 크기와 신규 파일의 크기가 차이가 나는 경우가 반복되어 여러 차례 읽기 전용 파일 시스템 이미지 상의 파일들이 업데이트될 경우에는 필연적으로 읽기 전용 파일 시스템 이미지 내에는 비효율적인 자투리 공간들이 생성되게 된다. 결과적으로는, 파일 시스템 이미지 내에 존재하는 자투리 공간의 총합은 새롭게 기록되어야 할 신규 파일의 크기보다 훨씬 큰 경우에도 연속적으로 신규 파일을 수용할 수 있는 공간이 존재하지 않는 경우가 발생되어 파일의 업데이트가 불가능해지는 상황이 발생될 수 있다.
이런 문제점을 방지하기 위한 방법으로서, 파일들을 기록할 경우에 해당 파일이 신규 파일로 업데이트될 경우를 미리 감안하여 일정 크기의 여유 공간(hole)을 파일의 뒷부분에 추가하여 기록해두는 방식이 이용될 수 있지만, 이 또한 공간의 효율성 측면에서는 바람직하지 않으며, 신규 파일의 크기가 기존 파일의 크기와 여유 공간(hole)을 합한 공간의 크기보다 커질 경우에는 상술한 동일한 문제점이 발생되어 근본적인 문제의 해결 방법은 될 수 없다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 읽기 전용 파일 시스템 이미지 내에 존재하는 파일들에 대한 패치가 반복되어 자투리 공간이 증가된 상황에서도, 추가 또는 변경될 신규 파일의 크기에 유연하게 대응 가능한 소프트웨어 업데이트 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 형태는, 읽기 전용 파일 시스템 이미지 상에서 기존 파일을 신규 파일로 변경하기 위한 소프트웨어 업데이트 방법에 있어서, 상기 신규 파일의 크기와 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간의 크기를 비교하는 크기 비교 단계, 상기 신규 파일의 크기가 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간의 크기 이하일 경우에는, 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간에 상기 신규 파일을 기록하는 기존 위치 기록 단계, 상기 신규 파일의 크기가 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간의 크기보다 클 경우에는, 상기 파일 시스템 이미지 상에서 상기 신규 파일이 기록될 연속된 여유 공간이 있는지 확인하는 기록 공간 확인 단계, 상기 신규 파일이 기록될 연속된 여유 공간이 있는 경우에는, 상기 확인된 신규 파일이 기록될 연속된 여유 공간에 상기 신규 파일을 기록하는 신규 파일 기록 단계 및 상기 신규 파일이 기록될 연속된 여유 공간이 없는 경우에는, 상기 읽기 전용 파일 시스템 이미지에 포함된 적어도 하나의 파일들의 위치를 재구성하여 상기 신규 파일이 기록될 연속된 여유 공간을 확보하고, 상기 신규 파일을 기록하는 재구성 및 신규 파일 기록 단계로 구성된 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법을 제공한다.
상기 목적을 달성하기 위한 본 발명의 다른 형태는, 읽기 전용 파일 시스템 이미지 상에 신규 파일을 추가하는 소프트웨어 업데이트 방법에 있어서, 상기 읽기 전용 파일 시스템 이미지 상에서 상기 신규 파일이 기록될 연속된 여유 공간이 있는지 확인하는 기록 공간 확인 단계, 상기 신규 파일이 기록될 연속된 여유 공간이 있는 경우에는, 상기 확인된 신규 파일이 기록될 연속된 여유 공간에 상기 신규 파일을 기록하는 신규 파일 기록 단계 및 상기 신규 파일이 기록될 연속된 여유 공간이 없는 경우에는, 상기 읽기 전용 파일 시스템 이미지에 포함된 적어도 하나의 파일들의 위치를 재구성하여 상기 신규 파일이 기록될 연속된 여유 공간을 확보하고, 상기 신규 파일을 기록하는 재구성 및 신규 파일 기록 단계로 구성된 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법을 제공한다.
여기에서, 상기 읽기 전용 파일 시스템 이미지는 CRAMFS(Compressed Read-only File System) 파일 시스템 이미지일 수 있다.
여기에서, 상기 읽기 전용 파일 시스템 이미지는 심비안 파일 시스템(ROFS) 이미지일 수 있다.
여기에서, 상기 기록 공간 확인 단계에서, 상기 신규 파일이 기록될 연속된 공간은 상기 신규 파일의 크기보다 같거나 크면서, 상기 읽기 전용 파일 시스템 이미지 내에 존재하는 연속된 여유 공간들 중에서는 가장 작은 여유 공간이 선택되는 것이 바람직하다.
여기에서, 기 재구성 및 신규 파일 기록 단계에서, 상기 적어도 하나의 파일들의 위치를 재구성하여 상기 신규 파일이 기록될 연속된 여유 공간을 확보하는 것은, 상기 파일 시스템 이미지 내에 존재하는 파일들 간에 개입된 여유 공간을 감소시키고, 모든 파일들의 이후에 존재하는 여유 공간의 크기를 늘리도록 구성될 수 있다.
상기와 같은 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법을 이용하면, 읽기 전용 파일 시스템 이미지 상에 파일들이 여러 차례 추가되거나, 변경될 경우에는 필연적으로 발생되는 비효율적인 자투리 공간들의 문제를 해결할 수 있다. 즉, 파일 시스템 이미지 내에 존재하는 자투리 공간들이 산재됨에 의해서, 자투리 공간들의 총합이 새롭게 기록되어야 할 신규 파일의 크기보다 큰 경우에도 신규 파일을 수용하지 못하여 파일의 업데이트가 불가능해지는 상황을 방지할 수 있는 효과가 있다.
따라서, 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법을 이용할 경우에는, 읽기 전용 파일 시스템에서 업데이트를 대비하여 마련해두는 홀(hole)의 숫자를 없애거나 최소화할 수 있고, 이동통신단말기 내에 장착되는 비휘발성 메모리 사이즈를 효율적으로 이용하는 소프트웨어의 구성이 가능해진다.
이하 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법의 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법이 적용되는 읽기 전용 파일 시스템 이미지의 구조를 설명하기 위한 블록도이다.
도 1에서 예시한 읽기 전용 파일 시스템 이미지의 구조는 통상적인 읽기 전용 파일 시스템 이미지의 구성을 예시한 것이며, 특히 CRAMFS 파일 시스템 이미지를 예시한 것이다. 그러나, CRAMFS 이외의 일반적인 읽기 전용 파일 시스템 이미지(예컨대, 심피안 파일 시스템 ROFS)의 구조 역시 이에 상응하는 구성요소들을 가지는 것이 당업자에게 있어 자명하다.
도 1을 참조하면, 통상적인 읽기 전용 파일 시스템 이미지(100)는 파일 시스템 헤더부(file system header; 110), 디렉터리(directory) 및 파일 정보부(120) 및 파일 데이터부(130)를 포함하여 구성될 수 있다.
여기에서, 읽기 전용 파일 시스템이 CRAMFS 파일 시스템이라면, 하나의 파일 시스템 이미지의 크기는 256MB(mega byte)로 제한되며, 파일 시스템 이미지 내에 포함되는 각각의 파일 크기도 16MB로 제한된다. 또한, CRAMFS 파일 시스템의 경우는 각 파일들을 4KB(Kilo byte) 단위로 압축하고 저장하여 효율성을 높이고 있다.
먼저, 파일 시스템 헤더부(110)는 해당 읽기 전용 파일 시스템 이미지를 구 분할 수 있는 매직 코드(magic code; 111), 서명(signature; 112), 파일 시스템 이미지의 크기(size; 113) 및 오류를 확인할 수 있는 CRC(Cyclic Redundancy Checking; 114) 코드 등을 포함하여 구성될 수 있다. 물론, 세부적인 파일 시스템 헤더부(110)의 구성요소들은 이용되는 파일 시스템의 종류에 따라서 다양하게 구성될 수 있음이 자명하다.
다음으로, 디렉터리 및 파일 정보부(120)는 파일 시스템 이미지(100) 내에 포함된 디렉터리 및 파일들 각각 마다 할당된 노드(예컨대, CRAMFS 이미지의 경우는 I-node라 명칭됨)들(노드#1; 121-1 내지 노드#N; 121-N)을 포함하여 구성된다. 각 I-node는 도 1에서 예시한 바와 같이, 해당 노드가 디렉터리에 대한 정보를 포함하고 있는지, 파일에 대한 정보를 포함한 것인지를 지정하는 모드(MODE), 해당 디렉터리 또는 파일을 식별하기 위한 유저 아이디(UID) 및 그룹 아이디(GID), 해당 디렉터리 또는 파일의 전체 크기를 지정하는 크기(SIZE), 디렉터리 및 파일 명칭을 지정하는 네임(NAME) 및 네임길이(LEN) 필드를 포함하여 구성된다. 마지막으로, 옵셋(OFFSET) 필드는 해당 노드가 지정하는 파일의 파일 데이터부(130)에서의 시작 위치를 지정하는 값이다. 만약, 해당 노드가 디렉터리 노드일 경우에는 옵셋(OFFSET) 필드는 디렉터리 및 파일 정보부(120)내에서 해당 디렉터리가 포함하는 파일 또는 디렉터리의 노드의 시작 위치를 지정하고 있게 된다.
마지막으로, 파일 데이터부(130)는 파일들(파일#1; 130-1 내지 파일#M; 130-M)의 데이터를 저장하고 있는 부분으로, 각 파일의 데이터는 파일을 구성하는 L개의 세그먼트들의 끝 위치를 지정하고 있는 옵셋 부분(OFFSET1 내지 OFFSETL)과 세 그먼트들을 포함한 압축 데이터 부분((DATA1 내지 DATAL))으로 구성된다. 즉, 해당 파일의 시작 위치는 상술한 파일 노드의 옵셋 필드(OFFSET)에 의해서 지정되며, 각 파일들은 4KB 단위로 세그먼트(segment) 단위로 나뉘어져서 압축되므로, 여러 개의 옵셋들에 의하여 각 세그먼트들의 끝 지점들이 지정되도록 구성된다.
도 2는 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법이 적용되는 패치 단위 소프트웨어 업데이트 방법을 설명하기 위한 순서도이다.
도 2를 참조하면, 패치 단위 소프트웨어 업데이트 방법은 메모리 테이블 생성 단계(S210), 패치 정보 수신 단계(S220), 패치 커맨드 판별 단계(S230), 파일 추가 단계(S240), 파일 변경 단계(S250) 및 파일 삭제 단계(S260)를 포함하여 구성될 수 있다.
메모리 테이블 생성 단계(S210)는 읽기 전용 파일 시스템 이미지 내에 존재하는 모든 파일들에 관한 정보와, 해당 파일들이 이미지 내에서 차지하는 공간의 시작 위치, 끝 위치 및 크기 정보를 취합하여 메모리 테이블(memory table)을 작성하는 단계이다. 파일 시스템 이미지 내에 존재하는 모든 파일들의 일람을 작성하면, 해당 이미지 내에서 파일들이 차지하고 있는 공간(used space)과, 파일들에 의해서 사용되고 있지 않은 공간(unused space)들의 일람이 작성될 수 있다.
여기에서, 메모리 테이블의 구성 및 그 작성 방법은 다양하게 구성될 수 있으며, 도 1을 통하여 설명된 파일 시스템 이미지의 구조에서 디렉터리 및 파일 정보부(120)와 파일 데이터부(130)를 분석하는 것에 의하여 메모리 테이블은 작성될 수 있을 것이다.
패치 정보 수신 단계(S220)는 해당 파일 시스템 이미지에 대한 업데이트를 수행하기 위한 패치 정보를 수신하는 단계이다. 패치 정보 수신 단계(S220)에서 패치 정보의 수신은 소프트웨어 업데이트의 대상이 되는 이동통신단말기가 접속된 이동통신망을 통한 수신이 가능하다. 또는, 소프트웨어 업데이트 대상이 되는 이동통신단말기가 소정의 인터페이스로 소프트웨어 업데이트를 하기 위한 컴퓨터 장치에 연결된 경우에는, 해당 컴퓨터 장치로부터의 수신도 가능할 것이다. 이 경우 해당 컴퓨터 장치는 유무선으로 인터넷에 연결되어 해당 이동통신단말기 제조사의 서버에 연결되어 패치 정보를 수신하도록 구성될 수 있다.
여기에서, '패치 정보'는 파일 시스템 이미지 내에 존재하는 파일 단위에 대하여 추가(insert), 변경(modify) 또는 삭제(delete) 등의 동작을 수행하기 위한 커맨드(command)와 해당 커맨드에 대응되는 데이터(data)를 포함하여 구성된다.
패치 커맨드 판별 단계(S230)는 수신된 패치 정보에서 커맨드 부분을 추출하여, 읽기 전용 파일 시스템 이미지 내에서 해당 패치 정보가 지정하는 기존 파일에 대해서 어떠한 패치 동작이 이루어져야 할 것인지를 결정하는 단계이다.
상술한 바와 같이, ‘패치 정보’는 파일 시스템 이미지 내에 존재하는 파일에 대하여 수행되어야 하는 동작을 규정하는 커맨드, 예컨대 추가(insert), 변경(modify) 또는 삭제(delete)를 포함하고 있으며, 패치 커맨드 판별 단계(S230)는 상기 커맨드에 따라서 이후의 동작을 분기하기 위한 단계이다.
패치 커맨드 판별 단계(S230)에 의해서 패치 정보의 커맨드에 따라서 분기되 는 경우는 파일 추가 단계(S240), 파일 변경 단계(S250) 및 파일 삭제 단계(S260)를 포함할 수 있다.
먼저, 파일 삭제 단계(S260)의 경우는, 종래의 읽기 전용 파일 시스템 이미지 내에 존재하던 파일을 삭제하는 경우에 해당되며, 삭제 대상이 되는 파일에 관련된 노드를 도 1에서 설명된 디렉터리 및 파일 정보부(120)에서 삭제하는 것에 의하여 수행될 수 있다. 이때, 바람직하기로는, 해당 파일의 정보를 디렉터리 및 파일 정보부(120)에서만 삭제하고, 파일 데이터부(130) 부분에 존재하는 실제 파일의 데이터는 삭제하지 않는 것이 비휘발성 메모리의 삭제(erase)에 걸리는 시간을 절약할 수 있을 것이다.
본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법은 상기 파일 추가 단계(S240) 및 파일 변경 단계(S250)에 대해서 적용될 수 있다. 상기 파일 추가 단계(S240) 및 파일 변경 단계(S250)의 동작은 도 3 내지 도 5를 통하여 설명된다.
도 3은 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법에서 파일 추가의 경우를 설명하기 위한 순서도이다.
도 3을 참조하면, 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법에서 파일 추가 경우는 기록 공간 확인 단계(S240-1), 신규 파일 기록 단계(S240-2), 재구성 및 신규 파일 기록 단계(S240-3)를 포함하여 구성될 수 있다.
기록 공간 확인 단계(S240-1)는 상기 읽기 전용 파일 시스템 이미지 상에서 상기 신규 파일이 기록될 연속된 공간이 있는지 확인하는 단계이다. 이때, 상기 신규 파일이 기록될 연속된 공간을 파악하기 위해서는, 도 2를 통하여 설명된 메모리 테이블 생성 단계(S210)에서 생성된 해당 파일 시스템 이미지에 대한 메모리 테이블을 참조하여 신규 파일이 기록될 연속된 공간이 있는지를 확인할 수 있다.
기록 공간 확인 단계(S240-1)에서는 상기 신규 파일이 기록될만한 연속된 공간으로서, 해당 신규 파일의 크기와 동일하거나 큰 여유 공간을 확인한다. 이때, 해당 신규 파일의 크기와 동일하거나 크면서도 해당 파일 시스템 이미지 내에서는 가장 작은 연속된 여유공간을 확인하여, 신규파일이 기록될 수 있도록 하는 것이 바람직하다. 왜냐하면, 가장 효율적인 메모리 활용이 가능하여 지기 때문이다.
신규 파일 기록 단계(S240-2)는, 기록 공간 확인 단계(S240-1)에서 상기 신규 파일이 기록될 연속된 공간이 있는 것으로 판별하여, 신규 파일이 기록될 연속된 공간을 확인한 경우에는 상기 신규 파일이 기록될 연속된 공간의 내용을 지우고(erase), 상기 신규 파일을 기록(write)하는 단계이다.
재구성 및 신규 파일 기록 단계(S240-3)는, 기록 공간 확인 단계(S240-1)에서 상기 신규 파일이 기록될 연속된 공간이 없는 것으로 판별된 경우의 동작을 규정하고 있으며, 세부적으로 재구성 단계(S240-3-1) 및 신규 파일 기록 단계(S240-3-2)를 포함하여 구성된다.
기록 공간 확인 단계(S240-1)에서 상기 신규 파일이 기록될 연속된 공간이 없는 것으로 판별된 경우는, 종래 기술의 문제점에서 상술된 바와 같이, 파일 시스템 이미지 내에 존재하는 파일들에 대한 업데이트가 반복됨에 따라서, 파일 시스템 이미지 내에 존재하는 여유 공간들이 산재(spread)되어 있는 경우일 가능성이 높다.
즉, 여유 공간(unused space)들의 총합이 새롭게 기록되어야 할 신규 파일의 크기보다 훨씬 큰 경우에도 연속적으로 신규 파일을 수용할 수 있는 공간이 존재하지 않는 경우가 발생된 상황일 가능성이 높다. 따라서, 이 경우는 재구성 단계(S240-3-1)를 통하여 파일 시스템 이미지 내에 존재하는 파일들을 재구성하는 단계를 거치게 된다.
여기에서, '재구성'이라함은 파일 시스템 이미지 내에서 미 사용되는 공간들을 후방으로 모으는 것을 의미한다. 즉, 디렉터리 및 파일 정보부(120)에서 파악된 모든 파일들을 파일 데이터부(130)의 처음부터 가능한 빈틈없이 위치 이동을 시켜서 기록하는 것을 의미한다. 예컨대, 상기 파일 시스템 이미지 내에 존재하는 파일들 간에 개입된 여유 공간을 감소시키고, 여유 공간을 모든 파일들의 이후로 모으는 것을 의미할 수 있다. 그러나, 어떠한 재구성 방식을 취하든지 간에 파일 시스템 이미지 내에 존재하는 파일들 간에 개입된 여유 공간들의 크기는 감소시키고, 모든 파일들의 이후에 존재하는 여유 공간의 크기는 늘이는 방식으로 재구성이 이루어져야 하는 것은 자명하다.
도 4a와 도 4b는 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법에서 파일 시스템 재구성을 예시한 개념도이다.
도 4a를 참조하면, 파일 시스템 이미지의 대한 재구성을 실행하기 이전의 파일 시스템 이미지의 파일 데이터부의 상태를 예시한 개념도로서, 파일#1(410-1) 내 지 파일#N(410-N)까지 N개의 파일들이 여유공간#1(420-1) 내지 여유공간#M(420-M)들이 개입된 상태로 비정렬 상태에 놓여 있는 것이 예시되어 있다.
이때, 재구성이 필요한 상태라 함은 추가로 기록되어야 할 신규 파일의 크기가 상기 여유공간#1(420-1) 내지 여유공간#M(420-M) 중에서 어느 하나의 여유 공간의 크기보다도 더 큰 상태이어서 기록되어야 할 신규 파일이 기록되지 못하는 상태를 의미한다.
도 4b를 참조하면, 도 4a에서 예시한 상태의 파일 시스템 이미지에 대하여 재구성을 실행한 이후의 파일 시스템 이미지 상태를 예시한 개념도로서, 파일#1(410-1) 내지 파일#N(410-N)까지 N개의 파일들이 개입되는 여유공간들이 없이(빈틈없이) 정렬되어 있음을 알 수 있다. 따라서, 결과적으로는 하나의 큰 여유공간(430) 만이 파일 시스템 이미지의 후방에 존재하게 됨을 알 수 있다.
한편, 재구성의 경우에도 모든 파일들 간에 개입되는 여유 공간을 반드시 ‘0’으로 만들지는 않을 수 있는데, 이는 종래 기술에 언급된 바와 같이, 일정 크기의 여유 공간(hole)을 파일의 뒷부분에 추가하여 기록해두는 방식이 이용될 경우이다.
한편, 위와 같은 재구성 단계(S240-3-1)를 거친 이후에도 생성된 여유 공간의 크기가 기록되어야 할 신규 파일을 수용하지 못할 경우가 발생될 수 있는데, 이 경우에는 해당 파일 시스템 이미지 내에 더 이상의 파일을 추가할 수 없는 상태임을 의미하게 된다. 따라서, 이 경우에는 상기 재구성 단계(S240-3-1)가 반복적으로 수행될 필요는 없으며, 소정의 오류 처리를 하고 소프트웨어 업데이트 동작을 마무 리할 수 있을 것이다.
재구성 단계(S240-3-1) 이후에는 다시 신규 파일 기록 단계(S240-3-2)가 실행된다. 신규 파일 기록 단계(S240-3-2)의 동작은 앞서 설명된 신규 파일 기록 단계(S240-2)의 동작과 동일하므로 설명은 생략된다.
도 5는 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법에서 파일 변경의 경우를 설명하기 위한 순서도이다.
도 5를 참조하면, 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법에서 파일 변경의 경우는 크기 비교 단계(S250-1), 기존 위치 기록 단계(S250-2), 기록 공간 확인 단계(S250-3), 신규 파일 기록 단계(S250-4) 및 재구성 및 신규 파일 기록 단계(S250-5)를 포함하여 구성될 수 있다.
크기 비교 단계(S250-1)는 파일 시스템에 기록되어야 할 신규 파일의 크기와 상기 신규 파일에 의하여 갱신되어야할 기존 파일이 상기 읽기 전용 파일 시스템 이미지 상에서 차지하는 공간의 크기를 비교하는 단계이다.
이때, 기존 파일이 상기 읽기 전용 파일 시스템 이미지 상에서 차지하는 공간의 크기는, 도 1을 통하여 상술된 메모리 테이블 생성 단계(S210)에서 생성한 메모리 테이블의 정보를 이용하여 산출될 수 있다.
기존 위치 기록 단계(S250-2)는, 상기 크기 비교 단계(S250-1)에서의 비교 결과, 상기 신규 파일의 크기가 상기 기존 파일이 상기 읽기 전용 파일 시스템 이미지 상에서 차지하는 공간의 크기보다 작거나 같은 경우에 상기 기존 파일이 상기 읽기 전용 파일 시스템 이미지 상에서 차지하는 공간을 지우고, 상기 신규 파일을 기록하는 단계이다.
기록 공간 확인 단계(S250-3)는, 상기 크기 비교 단계(S250-1)에서의 비교 결과, 상기 신규 파일의 크기가 상기 기존 파일이 상기 읽기 전용 파일 시스템 이미지 상에서 차지하는 공간의 크기보다 클 경우의 동작을 규정한다.
이 경우는, 기존 파일의 위치에 신규 파일을 기록할 수가 없는 상태이므로, 상기 읽기 전용 파일 시스템 이미지 상에서 상기 신규 파일이 기록될 연속된 공간을 파악하는 단계이다. 이때, 상기 신규 파일이 기록될 연속된 공간을 파악하기 위해서는, 도 2를 통하여 설명된 메모리 테이블 생성 단계(S210)에서 생성된 해당 파일 시스템 이미지에 대한 메모리 테이블을 참조하여 신규 파일이 기록될 연속된 공간이 있는지를 확인할 수 있다.
기록 공간 확인 단계(S250-3)에서는 도 3을 통하여 상술된 기록 공간 확인 단계(S250-1)와 마찬가지로, 상기 신규 파일이 기록될만한 연속된 공간으로서, 해당 신규 파일의 크기와 동일하거나 큰 여유 공간을 확인한다. 이때, 해당 신규 파일의 크기와 동일하거나 크면서도 해당 파일 시스템 이미지 내에서는 가장 작은 연속된 여유공간을 확인하여, 신규파일이 기록될 수 있도록 하는 것이 바람직하다. 왜냐하면, 가장 효율적인 메모리 활용이 가능하여 지기 때문이다.
신규 파일 기록 단계(S250-4)는, 기록 공간 확인 단계(S250-3)에서 상기 신규 파일이 기록될 연속된 공간이 있는 것으로 판별하여, 신규 파일이 기록될 연속된 공간을 확인한 경우에는 상기 신규 파일이 기록될 연속된 공간의 내용을 지우 고(erase), 상기 신규 파일을 기록(write)하는 단계이다.
재구성 및 신규 파일 기록 단계(S250-5)는, 기록 공간 확인 단계(S250-3)에서 상기 신규 파일이 기록될 연속된 공간이 없는 것으로 판별된 경우의 동작을 규정하고 있으며, 세부적으로 재구성 단계(S250-5-1) 및 신규 파일 기록 단계(S250-5-2)를 포함하여 구성된다.
한편, 이 경우의 재구성 단계(S250-5-1) 및 신규 파일 기록 단계(S250-5-2)의 동작은 도 3, 도 4a 및 도 4b를 통하여 설명된 재구성 단계(S240-3-1) 및 신규 파일 기록 단계(S240-3-2)의 동작과 동일하므로 자세한 설명은 생략된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법이 적용되는 읽기 전용 파일 시스템 이미지의 구조를 설명하기 위한 블록도이다.
도 2는 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법이 적용되는 패치 단위 소프트웨어 업데이트 방법을 설명하기 위한 순서도이다.
도 3은 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법에서 파일 추가의 경우를 설명하기 위한 순서도이다.
도 4a와 도 4b는 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서 소프트웨어 업데이트 방법에서 파일 시스템 재구성을 예시한 개념도이다.
도 5는 본 발명에 따른 이동통신단말기의 읽기 전용 파일 시스템 상에서의 소프트웨어 업데이트 방법에서 파일 추가의 경우를 설명하기 위한 순서도이다.

Claims (10)

  1. 읽기 전용 파일 시스템 이미지 상에서 기존 파일을 신규 파일로 변경하기 위한 소프트웨어 업데이트 방법에 있어서,
    상기 신규 파일의 크기와 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간의 크기를 비교하는 크기 비교 단계;
    상기 신규 파일의 크기가 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간의 크기 이하일 경우에는, 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간에 상기 신규 파일을 기록하는 기존 위치 기록 단계;
    상기 신규 파일의 크기가 상기 기존 파일이 상기 파일 시스템 이미지에서 차지하는 공간의 크기보다 클 경우에는, 상기 파일 시스템 이미지 상에서 상기 신규 파일이 기록될 연속된 여유 공간이 있는지 확인하는 기록 공간 확인 단계;
    상기 신규 파일이 기록될 연속된 여유 공간이 있는 경우에는, 상기 확인된 신규 파일이 기록될 연속된 여유 공간에 상기 신규 파일을 기록하는 신규 파일 기록 단계; 및
    상기 신규 파일이 기록될 연속된 여유 공간이 없는 경우에는, 상기 읽기 전용 파일 시스템 이미지에 포함된 적어도 하나의 파일들의 위치를 재구성하여 상기 신규 파일이 기록될 연속된 여유 공간을 확보하고, 상기 신규 파일을 기록하는 재구성 및 신규 파일 기록 단계로 구성된 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  2. 제 1 항에 있어서,
    상기 읽기 전용 파일 시스템 이미지는 CRAMFS(Compressed Read-only File System) 파일 시스템 이미지인 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  3. 제 1 항에 있어서,
    상기 읽기 전용 파일 시스템 이미지는 심비안 파일 시스템(ROFS) 이미지인 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  4. 제 1 항에 있어서,
    상기 기록 공간 확인 단계에서, 상기 신규 파일이 기록될 연속된 공간은 상기 신규 파일의 크기보다 같거나 크면서, 상기 읽기 전용 파일 시스템 이미지 내에 존재하는 연속된 여유 공간들 중에서는 가장 작은 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  5. 제 1 항에 있어서,
    상기 재구성 및 신규 파일 기록 단계에서, 상기 적어도 하나의 파일들의 위치를 재구성하여 상기 신규 파일이 기록될 연속된 여유 공간을 확보하는 것은,
    상기 파일 시스템 이미지 내에 존재하는 파일들 간에 개입된 여유 공간을 감 소시키고, 모든 파일들의 이후에 존재하는 여유 공간의 크기를 늘리는 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  6. 읽기 전용 파일 시스템 이미지 상에 신규 파일을 추가하는 소프트웨어 업데이트 방법에 있어서,
    상기 읽기 전용 파일 시스템 이미지 상에서 상기 신규 파일이 기록될 연속된 여유 공간이 있는지 확인하는 기록 공간 확인 단계;
    상기 신규 파일이 기록될 연속된 여유 공간이 있는 경우에는, 상기 확인된 신규 파일이 기록될 연속된 여유 공간에 상기 신규 파일을 기록하는 신규 파일 기록 단계; 및
    상기 신규 파일이 기록될 연속된 여유 공간이 없는 경우에는, 상기 읽기 전용 파일 시스템 이미지에 포함된 적어도 하나의 파일들의 위치를 재구성하여 상기 신규 파일이 기록될 연속된 여유 공간을 확보하고, 상기 신규 파일을 기록하는 재구성 및 신규 파일 기록 단계로 구성된 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  7. 제 6 항에 있어서,
    상기 읽기 전용 파일 시스템 이미지는 CRAMFS(Compressed Read-only File System) 파일 시스템 이미지인 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  8. 제 6 항에 있어서,
    상기 읽기 전용 파일 시스템 이미지는 심비안 파일 시스템(ROFS) 이미지인 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  9. 제 6 항에 있어서,
    상기 기록 공간 확인 단계에서, 상기 신규 파일이 기록될 연속된 공간은 상기 신규 파일의 크기보다 같거나 크면서, 상기 읽기 전용 파일 시스템 이미지 내에 존재하는 연속된 여유 공간들 중에서는 가장 작은 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
  10. 제 6 항에 있어서,
    상기 재구성 및 신규 파일 기록 단계에서, 상기 적어도 하나의 파일들의 위치를 재구성하여 상기 신규 파일이 기록될 연속된 여유 공간을 확보하는 것은,
    상기 파일 시스템 이미지 내에 존재하는 파일들 간에 개입된 여유 공간을 감소시키고, 모든 파일들의 이후에 존재하는 여유 공간의 크기를 늘리는 것을 특징으로 하는 이동통신단말기의 소프트웨어 업데이트 방법.
KR1020070137448A 2007-12-26 2007-12-26 이동통신단말기의 읽기 전용 파일 시스템 상에서의소프트웨어 업데이트 방법 KR100876212B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070137448A KR100876212B1 (ko) 2007-12-26 2007-12-26 이동통신단말기의 읽기 전용 파일 시스템 상에서의소프트웨어 업데이트 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070137448A KR100876212B1 (ko) 2007-12-26 2007-12-26 이동통신단말기의 읽기 전용 파일 시스템 상에서의소프트웨어 업데이트 방법

Publications (1)

Publication Number Publication Date
KR100876212B1 true KR100876212B1 (ko) 2008-12-31

Family

ID=40373265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070137448A KR100876212B1 (ko) 2007-12-26 2007-12-26 이동통신단말기의 읽기 전용 파일 시스템 상에서의소프트웨어 업데이트 방법

Country Status (1)

Country Link
KR (1) KR100876212B1 (ko)

Similar Documents

Publication Publication Date Title
US8200886B2 (en) Efficient system and method for updating a memory device
KR101139224B1 (ko) 소거/재기록 가능 메모리를 위해 고안된 호스트 장치에사용할 수 있는 한 번 또는 몇 번의 프로그램이 가능한메모리를 위한 방법 및 장치
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
US20090265403A1 (en) File system
JP4825433B2 (ja) 比較的限られた記憶スペースを備えたコンピューティング装置およびそのオペレーティングシステム/ファイルシステム
KR100927446B1 (ko) 이동통신단말기의 트랜잭션 단위 펌웨어 업그레이드 방법및 이를 이용한 펌웨어 업그레이드 시스템
CN101983376B (zh) 访问装置、信息记录装置、信息记录系统、文件管理方法和程序
JP2008059228A (ja) ファイルシステム
CN109086078B (zh) 安卓系统升级方法、装置、服务器及移动终端
CN101211265A (zh) 一种终端嵌入式系统的软件更新方法和装置
CN111562934B (zh) 一种基于热补丁的软件系统升级方法、终端及存储介质
WO2024113717A1 (zh) 基于zns ssd的文件系统控制方法、装置及设备
CN103430178A (zh) 数据更新方法及装置和产品
CN112182010B (zh) 脏页刷新方法和装置、存储介质和电子设备
US11726668B2 (en) Device with flash memory and method for writing/erasing/updating data in flash memory thereof
KR100698655B1 (ko) 이동통신 단말기의 파일 업데이트 시스템과, efs 영역헤더 손실로 인한 치명적인 에러를 방지하는 이동통신단말기의 부팅 관리 시스템과, 이동통신 단말기의 파일업데이트 방법 및 efs 영역 헤더 손실로 인한 치명적인에러를 방지하는 이동통신 단말기의 부팅 방법
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
CN111949287B (zh) 软件升级方法和装置
CN103475521A (zh) 一种部署服务器的方法和装置
KR100876212B1 (ko) 이동통신단말기의 읽기 전용 파일 시스템 상에서의소프트웨어 업데이트 방법
US20070079279A1 (en) Embedded device with software registry
KR100319254B1 (ko) 플레쉬 메모리를 이용한 비휘발성 데이터 영역 복구 방법
JP2008262574A (ja) 高信頼性ファイルシステム
KR100316584B1 (ko) 시스템에서 부팅 및 수행 프로그램을 공유하는 플래시메모리 및 그 메모리 갱신 방법
JP2005251045A (ja) 情報処理装置及び格納位置管理方法及びプログラム

Legal Events

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

Payment date: 20121213

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141106

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151104

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170116

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181218

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191205

Year of fee payment: 12