KR20060087758A - 모바일 기기용 인터넷 디스크 시스템 및 방법 - Google Patents

모바일 기기용 인터넷 디스크 시스템 및 방법 Download PDF

Info

Publication number
KR20060087758A
KR20060087758A KR1020050008578A KR20050008578A KR20060087758A KR 20060087758 A KR20060087758 A KR 20060087758A KR 1020050008578 A KR1020050008578 A KR 1020050008578A KR 20050008578 A KR20050008578 A KR 20050008578A KR 20060087758 A KR20060087758 A KR 20060087758A
Authority
KR
South Korea
Prior art keywords
mobile device
midisk
pdu
client
server
Prior art date
Application number
KR1020050008578A
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 KR1020050008578A priority Critical patent/KR20060087758A/ko
Publication of KR20060087758A publication Critical patent/KR20060087758A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62MRIDER PROPULSION OF WHEELED VEHICLES OR SLEDGES; POWERED PROPULSION OF SLEDGES OR SINGLE-TRACK CYCLES; TRANSMISSIONS SPECIALLY ADAPTED FOR SUCH VEHICLES
    • B62M1/00Rider propulsion of wheeled vehicles
    • B62M1/12Rider propulsion of wheeled vehicles operated by both hand and foot power
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B23/00Exercising apparatus specially adapted for particular parts of the body
    • A63B23/035Exercising apparatus specially adapted for particular parts of the body for limbs, i.e. upper or lower limbs, e.g. simultaneously
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62JCYCLE SADDLES OR SEATS; AUXILIARY DEVICES OR ACCESSORIES SPECIALLY ADAPTED TO CYCLES AND NOT OTHERWISE PROVIDED FOR, e.g. ARTICLE CARRIERS OR CYCLE PROTECTORS
    • B62J1/00Saddles or other seats for cycles; Arrangement thereof; Component parts
    • B62J1/02Saddles resiliently mounted on the frame; Equipment therefor, e.g. springs
    • B62J1/06Saddles capable of parallel motion up and down
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62MRIDER PROPULSION OF WHEELED VEHICLES OR SLEDGES; POWERED PROPULSION OF SLEDGES OR SINGLE-TRACK CYCLES; TRANSMISSIONS SPECIALLY ADAPTED FOR SUCH VEHICLES
    • B62M1/00Rider propulsion of wheeled vehicles
    • B62M1/18Rider propulsion of wheeled vehicles by movement of rider's saddle

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

본 발명은 모바일 기기의 저장공간 제약을 해결하기 위해 원격지 서버의 저장공간을 인터넷을 통해 모바일 기기의 저장장치로 이용할 수 있도록 구현한 모바일 기기용 인터넷 디스크 시스템(Mobile Internet DISK: MIDISK) 및 방법에 관한 것이다. 즉, 본 발명은 최근 Netspot 과 같은 무선인터넷이 확산되고 전송속도가 점점 더 개선될 것이라는 점에 착안해서 원격지의 저장공간을 모바일기기에 부착된 메모리카드로 인식될 수 있도록 하는 모바일 기기용 인터넷 디스크에 관련된 것이다. 본 발명의 기술을 이용하면 원격지에 존재하는 대용량의 저장공간이 PDA, Smart Phone 과 같은 모바일 정보기기의 메모리 카드로 인식되어 저장공간의 한계를 극복할 수 있다. 또한 모바일 기기의 OS는 WIN CE 계열, 리눅스, Palm 과 같은 것들이 사용되고 있는데, 본 발명의 제안 기술은 WIN CE 기반 및 리눅스나 Palm OS 계열의 모바일 기기에서도 구현될 수 있으며, 인터넷 디스크는 클라이언트 서버구조로 되어 있어, 서버는 대용량의 저장공간을 보유하며 모바일 기기의 요청에 따라서 일부 또는 전체 저장공간을 모바일 기기가 사용할 수 있도록 관리해주고, 클라이언트는 모바일기기에서 가상 디바이스로 구현한다. 즉, MIDISK 의 클라이언트 드라이버와, 통신 프로토콜, 그리고 서버를 구축하여 원격지의 대용량 저장장치의 일부를 논리 볼륨화 하여 모바일 기기를 통해 디스크를 제어하듯 간편하게 접근 할 수 있도록 한다.
모바일, 가상 저장장치, 모바일 인터넷 디스크, 클라이언트, 서버

Description

모바일 기기용 인터넷 디스크 시스템 및 방법{INTERNET DISK SYSTEM FOR MOBLIE DEVICES AND METHOD THEREOF}
도 1은 종래 모바일 기기용 인터넷 디스크 시스템의 개략적인 구성도,
도 2는 종래 모바일 기기용 인터넷 디스크 시스템의 화면 구현 예시도,
도 3은 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템 개념도,
도 4는 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템 구성도,
도 5는 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템에서 로그인 절차 예시도,
도 6은 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템에서 로그아웃 절차 예시도,
도 7은 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템의 클라이언트와 서버 개념도,
도 8은 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템의 PDU 포맷 예시도,
도 9는 본 발명의 실시 예에 따른 로그인 요청 PDU 데이터 구성도,
도 10은 본 발명의 실시 예에 따른 로그인 요청에 대한 응답 PDU 데이터 구성도,
도 11은 본 발명의 실시 예에 따른 로그아웃 요청 PDU 데이터 구성도,
도 12는 본 발명의 실시 예에 따른 로그아웃 요청에 대한 응답 PDU 데이터 구성도,
도 13은 본 발명의 실시 예에 따른 읽기 요청 PDU 데이터 구성도,
도 14는 본 발명의 실시 예에 따른 읽기 요청에 대한 응답 PDU 데이터 구성도,
도 15는 본 발명의 실시 예에 따른 쓰기 요청 PDU 데이터 구성도,
도 16은 본 발명의 실시 예에 따른 쓰기 요청에 대한 응답 PDU 데이터 구성도,
도 17은 본 발명의 실시 예에 따른 Window CE의 스택구조도,
도 18은 본 발명의 실시 예에 따른 스트림 인터페이스 구조도,
도 19는 본 발명의 실시 예에 따른 MIDISK 클라이언트 구성도,
도 20은 본 발명의 실시 예에 따른 OS상 MIDISK 클라이언트 드라이버의 위치 예시도,
도 21은 본 발명의 실시 예에 따른 MIDISK 관리 서버 구성도,
도 22는 본 발명의 실시 예에 따른 서버를 통한 리소스 할당 예시도,
도 23은 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템에서 MIDISK 클라이언트 드라이버 설치 화면 예시도,
도 24는 본 발명의 실시 예에 따른 MIDISK 클라이언트 드라이버 설정 화면 예시도,
도 25는 본 발명의 실시 예에 따른 MIDISK 클라이언트 드라이버에서 API 호출에 따른 함수 예시도,
도 26은 본 발명의 실시 예에 따른 MIDISK 클라이언트를 이용한 가상 저장장치 생성 예시도,
도 27은 본 발명의 실시 예에 따른 가상 저장장치의 제어화면 예시도,
도 28a 내지 도 28b는 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현을 위한 동작 제어 흐름도.
본 발명은 모바일 기기용 저장장치에 관한 것으로, 특히 모바일 기기(Mobile devices)의 저장공간 제약을 해결하기 위해 원격지 서버의 저장공간을 인터넷을 통해 모바일 기기의 저장장치로 이용할 수 있도록 구현한 모바일 기기용 인터넷 디스크 시스템 및 방법에 관한 것이다.
최근 유비쿼터스 관련 국가적인 사업이 진행 중이며, 무선 LAN( Local Area Network) 을 이용 할 수 있는 스마트폰의 보급 증가 등으로 무선 네트워크를 사용하는 모바일 기기의 사용이 점점 증가하고 있다.
이렇게 무선 네트워크의 사용이 빈번한 상황에서 모바일 기기는 가장 강점인 이동성과 작고 간편한 특성으로 더욱 사용가치가 높아지고 있으며, 또한 모바일 정보기기의 사용이 증가하면서 사용자의 요구가 다양해져, 모바일 정보기기는 단순한 일정관리나 메모 기능뿐 아니라 멀티미디어 기능 및 업무의 연장 수단으로 활용되고 있다.
그러나, 위와 같이 사용자의 요구에 따른 다양한 기능을 수행하여야 하는 모바일 기기는 특성상 저장 공간에 한계로 인해서 동영상 등의 대용량 멀티미디어 데이터나 다양한 데이터의 저장이 곤란한 문제점이 있다.
이를 위해 종래에는 모바일 기기용 대용량 스토리지 카드 장치가 개발되고 있지만 아직까지는 상당한 고가이다. 따라서 위의 모바일 기기용 대용량 스토리지 카드 장치를 대체하여 사용자들에게 대용량 저장 공간을 제공하기 위한 방법으로 기존의 데스크 탑 환경에서 대용량 원격 저장장치로 사용되어오던 인터넷 디스크를 모바일기기에 적용시키는 방법이 제안되고 있다.
위와 같은 인터넷 디스크는 두 가지 방법으로 구현된다. 하나는 모바일 기기에서 작업한 데이터를 원격지의 저장공간에 업로드해 두었다가 필요할 때 다시 다운로드해서 사용하는 것이다. 다른 하나는 원격지의 서버가 제공하는 저장공간을 모바일 기기의 로컬 하드디스크로 인식하게 하는 기술이다. 즉, 원격지의 저장공간은 모바일 기기의 또 다른 하드디스크가 되므로 업/다운로드가 필요없이 자신의 하드디스크를 사용하듯이 사용할 수 있다.
그러나 위와 같은 인터넷 디스크는 필요한 데이터를 인터넷 디스크에서 다운 로드해서 사용하고 다시 업로드해서 보관해 두는 방식으로, 대부분 PC에서 이루어지던 다운로드와 업로드 형태의 인터넷 디스크 개념의 한계를 벗어나지 못하고 있는 실정으로, 모바일 기기의 저장 공간 부족 현상을 해결하기 위한 노력 이라하기 보다는 자료의 공유가 목적이다.
도 1은 종래 모바일 기기용 인터넷 디스크의 개념을 도시한 것이다. 이하 상기 도 1을 참조하여 종래 모바일 기기용 인터넷 디스크 개념을 좀더 상세히 살펴보면, 상기 도 1에서 보여지는 바와 같이 종래 모바일 기기용 인터넷 디스크(Mobile Internet DISK: MIDISK)는 웹(Web) 상에 특정한 사용자 전용 공간(102)을 두어 그곳에 데이터를 업로드 혹은 다운로드 하는 형태의 구조이다.
즉, 위와 같은 종래 모바일 기기용 인터넷 디스크 개념에서는 사용자가 모바일 기기(100)를 이용하여 서버(Server)의 주소를 통해 인터넷 디스크에 접근하고 아이디(ID)와 비밀번호(Password)를 입력하여 로그인 한 후 자신이 올려놓은 자료를 받거나 다른 자료를 올릴 수 있도록 한 것으로, 이들은 앞서 설명한 바와 같이 대부분 PC에서 이루어지던 다운로드(Download)와 업로드(Upload) 형태의 인터넷 디스크 개념의 한계를 벗어나지 못하고 있으며, 또한 다운받으려고 하는 데이터의 크기(104)가 모바일 기기(100)의 남은 저장공간(106) 보다 클 때는 데이터의 다운자체가 불가능하여 재생 및 편집이 불가능한 문제점이 있었다.
도 2는 종래 실제로 서비스되고 있는 인터넷 디스크 서비스 화면 예시도로, 종래 모바일 기기용 인터넷 디스크 개념에서는, 도 2에서와 같이 사용자가 무선 인터넷이 가능한 자신의 모바일 기기를 통해 웹 상의 사이트를 방문하여 특정 업로드 /다운로드 프로그램을 통해 자신의 웹 상 공간에 사용자의 전용 공간을 수정하는 정도의 사용범위를 가지고 있다. 하지만 이것은 대부분 기업이나 단체 내에서 공동 작업등을 위한 공유 공간으로 사용되어지는 것이 일반적이었다.
따라서, 본 발명의 목적은 기존 개발된 모바일 기기용 인터넷 디스크와 비교할 때 단순한 업/다운로드를 탈피해서 원격지의 저장공간을 모바일 기기의 메모리 카드 형식으로 인식할 수 있게 해주므로 보다 사용이 직관적이고 저장공간의 한계를 극복할 수 있도록 하는 모바일 기기용 인터넷 디스크 시스템 및 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명은 모바일 기기용 인터넷 디스크 시스템으로서, 모바일 기반의 인터넷 디스크 프로토콜에 맞추어 웹 상에 구현되는 실제 저장장치와의 네트워킹 I/O를 통해 모바일 기기의 저장장치 기능을 수행하는 가상 저장장치 드라이버인 모바일 인터넷 디스크(MIDISK) 클라이언트와, 상기 MIDISK 클라이언트와 인터넷 디스크 프로토콜에 따른 네트워킹 I/O를 통해 각 모바일 기기로 대용량의 가상 저장장치를 제공하며, 모바일 기기로부터 사용자의 가상 저장장치 사용에 따른 데이터 처리 요구를 수신하여 원격지에 존재하는 실제 저장장치에서 해당 요구에 따른 데이터 읽기/쓰기 동작을 수행하고 그 결과를 제공하는 MIDISK 관리 서버와, MIDISK 관리 서버에 의해 관리되며, 모바일 인터넷 디스크 시스템에 등록된 모바일 기기별 저장공간을 구비하고, 모바일 기기 가상 저장장치 사용에 따른 상기 관리 서버의 데이터 읽기/쓰기 수행결과를 해당 모바일 기기의 저장공간에 갱신 저장시키는 대용량 저장장치를 포함하는 것을 특징으로 한다.
또한 본 발명은 인터넷상 또는 원격지에 위치하여 대용량 저장장치를 구비하는 모바일 인터넷 디스크(MIDISK) 관리서버와, 모바일 기반의 인터넷 디스크 프로토콜에 따른 네트워킹 I/O를 통해 MIDISK 관리 서버와 연결하여 모바일 기기내 가상 저장장치를 구현하는 MIDISK 클라이언트를 포함하는 모바일 기기용 인터넷 디스크 시스템에서 모바일 기기내 가상 저장장치 구현 방법으로서, (a)모바일 기기내 가상 저장장치 사용 요구 시 MIDISK 클라이언트를 이용하여 모바일 기기 상 가상 저장장치를 구동시키는 단계와, (b)상기 MIDISK 클라이언트를 통해 인터넷상 또는 원격지 대용량 저장장치를 구비한 MIDISK 관리 서버에 연결하는 단계와, (c)상기 모바일 기기의 가상 저장장치 사용에 따른 데이터 처리 요구 명령을 관리 서버로 전송하는 단계와, (d)상기 관리 서버에서 MIDISK 클라이언트에 의해 전송된 데이터 처리 요구에 대응한 데이터 처리를 인터넷상 또는 원격지 해당 모바일 기기에 할당된 대용량 저장장치에서 수행하는 단계와, (e)상기 관리 서버에 의해 수행된 데이터 처리 결과를 MIDISK 클라이언트를 통해 모바일 기기에 디스플레이시키는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예의 동작을 상세하게 설명한다.
도 3은 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템의 개념을 도시한 것이다. 상기 도 3을 참조하면, 본 발명에서 모바일 기기의 저장 공간 의 한계를 극복하기 위해 모바일 기기(300)에 가상 디스크 저장 장치(302)를 생성 할 수 있게 한다. 이 가상 저장 장치(302)는 사용자에게 모바일 기기에 직접 부착되는 저장 장치를 사용하는 것과 동일한 인터페이스(Interface)를 제공한다. 즉, 가상 저장 장치를 구동하는 가상 장치 드라이버에 의해 데이터의 읽기나 쓰기 등의 동작을 인터넷상 또는 원격지에 위치한 원격지의 대용량 저장 장치를 구비한 서버(304)로 보내거나 받아서 마치 모바일 기기(300)에 하나의 물리적인 대용량 저장 장치(302)를 연결 한 것과 같은 효과를 얻도록 한다.
이와 같은 시스템의 구현을 위해 본 발명에서는 첫 번째로, 모바일 인터넷 디스크(MIDISK) 서버와 모바일 기기내 탑재되는 MIDISK 클라이언트(Client) 사이에 데이터를 주고 받을 수 있는 프로토콜(Protocol)을 제공한다. 원격지에 있는 자료를 현재 모바일 기기 자신의 저장장치에 존재하는 형태로 제공하기 위해 가상 저장 장치(302)를 가지고 있는 모바일 기기 상 MIDISK 클라이언트와 서버 사이의 인터페이스를 담당하기 위한 통신 규약이 필요하며 클라이언트와 서버는 이에 대한 내용에 따라 필요한 사항을 요구하거나 요구에 따라 적절히 응답하도록 구현한다.
두 번째로, 모바일 기기의 OS용 가상 저장장치 드라이버(Driver)를 개발한다. 상기 가상 저장장치 드라이버는 사용자가 모바일 기기내 저장장치를 제어하는 것과 같은 인터페이스 환경을 제공하기 위한 클라이언트의 핵심 기술이며 가상 저장장치(302)를 담당하여 인터페이스를 처리하고 데이터를 원격지 관리 서버(304)에서 가져오거나 보낼 수 있도록 네트워킹(Networking)을 제공하여야 한다.
세 번째로, MIDISK 서버를 담당할 서버를 개발한다. 서버(304)는 모바일 기 기의 제어 요구에 대해 적절한 처리를 수행할 수 있도록 모바일 기기와 MIDISK의 통신 규약에 준하여 통신이 이루어져야 하며 대용량 저장 장치와 연결되어 논리 볼륨을 할당하여 모바일 기기에게 제공 할 수 있어야 한다.
도 4는 본 발명의 실시 예에 따른 모바일 기기용 인터넷 디스크 시스템 구성을 개략적으로 도시한 것이다. 상기 도 4에서 보여지는 바와 같이 MIDISK 서버(400)를 중심으로 하여 대용량 저장 장치(402)의 논리 볼륨을 할당 및 관리하고 모바일 기기(404)의 MIDISK 클라이언트의 요구에 적절히 응답하도록 하여 대용량 저장장치(402)의 풍부한 리소스(Resource)를 효율적으로 이용한다.
MIDISK 클라이언트와 서버간 통신 규약에는 연결 관리, 로그인(Log in), 로그아웃(Log out) 및 데이터의 읽기(Read)와 쓰기(Write) 등의 요청과 응답이 있으며, 이와 같은 요청과 응답은 PDU에 의해 전송된다.
연결관리에서의 클라이언트(404)와 서버(400)간 연결은 로그인 절차와 함께 협상단계가 이루어지며 협상은 사용자 인증과 장치 가능 여부로 나뉘며 모두가 인증되면 연결 상태가 설정된다. 연결 상태가 되면 사용자는 지속적으로 모바일 인터넷 디스크(402) 사용이 가능하며 아이디에 대한 연결 가능 접속 수를 결정하여 설정된 접속자 수만큼 접속할 수 있도록 허용한다. 만약 접속자수를 초과하는 연결 요청이 오면 서버(400)는 나중에 연결요청을 한 사용자에게 기존 연결유지 및 연결 해제 여부를 묻게 되며 제일 먼저 로그인 절차를 거친 사용자가 연결 해제되며 나중에 연결을 요청한 사용자가 연결되어지게 된다. 또한, 한 개의 연결이 일정시간동안 통신이 없거나, 로그아웃 요청을 하면 그 연결은 연결이 해제되어진다.
이하 상기한 모바일 인터넷 디스크(MIDISK) 클라이언트와 서버간 통신 규약 및 PDU(Packet Data Unit) 구성에 대해서 해당 도면을 참조하여 보다 상세히 살펴보기로 한다.
먼저 도 5는 상기 모바일 인터넷 디스크 시스템에서의 로그인 과정을 도시한 것으로, 로그인 시작 이전에 서버(400)는 모바일 기기(404) 상 탑재되는 클라이언트(500)의 연결 요청을 기다리는 상태이며 연결요청이 들어오면 협상과 함께 로그인 절차가 시작된다. 로그인은 PDU의 명령 항목에 로그인을 의미하는 번호와 함께 전달되며 PDU에 포함된 사용자의 아이디와 패스워드를 관리자에 의해 등록된 값과 비교하여 일치할 경우에만 로그인을 허용한다. 연결을 허용하기 이전에 기존 연결 중에 현재 연결을 요구한 사용자와 비교하여 이미 사용 중이므로 다시 처리한다. 또한 일치하지 않는 경우에는 설정 창에 입력해 놓은 내용이 잘못 되었음을 알리고 아이디 혹은 패스워드를 교체하도록 요구한다.
도 6은 모바일 인터넷 디스크 시스템에서의 클라이언트(500)와 서버(400)간 로그아웃 과정을 도시한 것으로, 로그아웃은 로그아웃 명령을 의미하는 PDU와 함께 전달되며 서버(400)는 로그아웃 요청이 들어올 경우 현재 남은 작업이 있는지 여부에 대해 조사하고 작업이 남아있는 경우 사용자에게 남은 작업에 대해 종료 여부를 묻고 작업 자체를 종료시킬 경우 로그아웃이 수행되며 남은 작업을 계속 수행하도록 할 경우 연결 종료 요청은 취소된다.
도 7은 모바일 인터넷 디스크 시스템에서의 데이터 읽기/쓰기 과정을 도시한 것으로, MIDISK의 모든 시스템이 정상 동작하여 연결설정 상태가 되면 읽기 요청과 쓰기 요청이 가능해진다. 사실상 연결 설정 후에 이루어지는 동작의 거의 모든 요청과 응답은 데이터의 읽기와 쓰기 동작일 것이다. 데이터 읽기와 쓰기는 각각 읽기 명령 혹은 쓰기 명령을 실은 PDU를 전달함으로써 이루어진다. 상기 도 7에서 보여지는 바와 같이 모바일 기기의 클라이언트(500)는 디바이스 관리자(Device Manager: DM)/파일시스템(700)과 함께 모바일 기기의 일반적인 저장장치인 스토리지 카드(Storage card)와 거의 동일한 사용자 인터페이스(User Interface)를 제공하면서 서버(400)와 데이터를 주고받으며, 서버(400)는 연결된 대용량 저장 장치(402)에 실제 데이터를 유지 보수하며 관리한다.
한편, 위와 같은 MIDISK 클라이언트와 서버간 통신에 따른 로그인, 로그아웃 및 데이터의 읽기와 쓰기 등의 요청과 응답은 전술한 바와 같이 클라이언트와 서버간 전송되는 PDU에 의해 이루어지는데, 모바일 디스크 PDU형식은 도 8에 도시된 바와 같다. 위 도 8에서와 같이 모바일 PDU형식은 PDU와 함께 전달될 데이터의 길이를 나타내는 데이터 세그먼트길이(Data segment Length)가 있다 그리고 PDU의 특성을 결정할 헤더(Header)에는 클라이언트에서는 요청 메시지를 서버에서는 응답 메시지를 담아서 전달하며 각각의 메시지마다 해석 방식이 다를 수 있다.
아래의 [표 1]은 클라이언트 요청 PDU의 종류를 보여준다. 각 PDU 마다 각각의 고유의 특성이 있으며 그 특성에 대한 내용은 [표 1]의 번호를 PDU에 넣음으로써 전달 할 수 있다. MIDISK 는 현재 [표 1]에서 나타내고 있는 4개의 요청 메시지와 그에 대응하는 아래의 [표 2] 에서 나타내고 있는 4개의 응답 메시지가 있으며 각각에 대한 내용은 후술하도록 한다.
코드번호 정의된 키워드
001 LOGIN_REQ
003 LOGOUT_REQ
005 READ_DATA
007 WRITE_DATA
코드번호 정의된 키워드
002 LOGIN_ANSWER
004 LOGOUT_ANSWER
006 READ_ANSWER
008 WRITE_ANSWER
도 9 및 도 10은 모바일 인터넷 디스크 시스템에서 로그인 요청에 대한 PDU 데이터 구성을 도시한 것으로, 사용자에 의해 로그인이 요청되는 경우 도 9와 같이 PDU에 로그인 요청 명령(LOGIN_REQ)와 함께 사용자의 아이디(User ID)와 패스워드(Password)를 담는다. 그런 후 이것을 전달함으로써 서버(400) 측에서 그 내용을 점검하여 일치 혹은 중복 로그인 처리를 수행한다. 서버(400)는 로그인 처리가 모두 끝나면 도 10과 같이 로그인 응답(LOGIN_ANSWER)을 포함한 응답 PDU를 전달한다. 각각의 항목에 로그인 처리의 성공 혹은 실패 등의 에러 코드(Error code)와 서버의 장치 아이디(Device ID), 시작 블록 주소(Start Block address), 클라이언트에 할당된 저장장치의 크기(Client Device size)를 포함하여 보낸다.
도 11 및 도 12는 모바일 인터넷 디스크 시스템에서 로그아웃 요청에 대한 PDU 데이터 구성을 도시한 것으로, 사용자의 모바일 기기가 일정시간 동안 통신이 이루어지지 않거나 사용자가 직접 로그아웃을 요구하는 경우 도 11과 같이 PDU에 로그아웃 요청 명령(LOGOUT_REQ)와 함께 사용자의 아이디(User ID)와 패스워드 (Password)를 포함하여 전달된다. 이렇게 사용자 혹은 시간지연에 의해 로그아웃 요청이 발생하면 서버는 연결을 끊기 전 도 12와 같이 로그아웃 응답(LOGOUT_ANSWER)과, 로그아웃처리 과정의 사항을 에러코드(Error code)에 포함함 PDU를 전달한다. 이로써 해당 클라이언트의 서비스를 중단한다.
도 13 및 도 14는 모바일 인터넷 디스크 시스템에서 데이터 읽기 요청에 대한 PDU 데이터 구성을 도시한 것으로, 상기 도 13에 도시된 PDU의 각 항목은 쓰기 요청 명령(READ_DATA)과 함께 원격지 저장 공간의 데이터를 읽기 위해 사용자에게 할당된 저장장치 아이디(Disk ID)와 데이터 크기(Data size) 등을 포함하여 원격지의 데이터를 효과적으로 전달받을 수 있도록 한다.
상기 읽기 요청에 대해 서버(400)는 전달받은 값을 토대로 어떤 데이터를 전송할지를 결정한 후 데이터를 블록으로 나눈다. 그 후 도 14에서와 같이 읽기 요청 응답(READ_ANSWER)과 함께 데이터의 블록 넘버(Block Number)와 저장장치 아이디(Disk ID), offset 그리고 데이터 크기(Data size)를 포함하여 전달한다. 클라이언트(500)는 응답 메시지 의 각 항목을 확인 후, 제일 끝에 붙어 전달되는 데이터가 정확히 읽혀졌음을 확인한다.
도 15 및 도 16은 모바일 인터넷 디스크 시스템에서 데이터 읽기 요청에 대한 PDU 데이터 구성을 도시한 것으로, 사용자가 가상 저장장치에 데이터를 쓰고자 할 때 클라이언트 드라이버에 의해 쓰기 요청이 전달된다. 쓰기 요청은 상기 도 15에서와 같이 PDU에 쓰기 요청 명령(WRITE_DATA)와 함께 사용자 아이디와 데이터 블록 넘버(Block Number), 저장장치 아이디(Disk ID), 그리고 데이터의 크기(Data size)를 포함한다. 이런 값들을 이용하여 요청 PDU 끝에 전달되는 실제 데이터가 실제 원격지의 저장 공간의 정확한 위치에 쓰여질 수 있도록 한다.
데이터 쓰기 요청에 대한 과정이 정상적으로 끝나면 서버(400)는 정상적으로 쓰여졌을 경우와 에러가 발생했을 경우를 구분하여 도 16에서와 같이 응답 PDU의 에러코드(Error code)로 전달한다.
도 17은 본 발명의 실시 예에 따른 모바일 인터넷 디스크가 구현되는 모바일 기기의 Windows CE 구조를 도시한 것이다. 상기 도 17을 참조하면, OEM(Original equipment manufacturer)은 본 발명에서는 모바일 기기를 제작하여 판매하는 업체를 말하며, 하드웨어(Hardware)와 터치 패드, 가상 키보드, 액정 화면, 버튼, 무선 네트워크 장치 등의 내장된 드라이버(Built-in driver)를 구성하여 OAL(OEM Adaptation Layer)(600)을 이룬다.
OAL(600)은 Windows CE OS를 판매하는 마이크로소프트에서 모바일 기기의 특성상 OEM마다 특성이 다른 하드웨어를 구성하는데 있어서 OS를 적절히 구성 하도록 Platform Builder 라는 툴을 제공한다. 하지만 이러한 툴로도 해결할 수 없는 OEM만의 특별한 구조(부트 로더, OEM만의 유일한 하드웨어의 드라이버 등)를 OEM이 직접 작성 및 구성하도록 하는 계층이다. 이는 Windows CE 기반 장치의 개발단계에서 이루어지는 과정이며 Windows CE 의 일부를 적절히 구성하여 OAL에 얹음으로써 장치 개발이 완료된다.
클라이언트 드라이버는 장치가 출시되어진 이후에 사용자의 필요에 의해 설치되는 드라이버로 설치 가능 드라이버(Installable Drivers)라 한다. MIDISK 클라 이언트 드라이버 역시 사용자가 모바일 기기의 저장 공간 확장을 위함이므로 설치가능 드라이버라 하겠다. 그러나 장치 출시이전 OEM과의 합의나 계약에 의하여 플랫폼 내에 포함 할 수도 있다. 상기 설치가능 드라이버는 스트림 인터페이스(Stream-Interface) 드라이버 구조를 가지는데, 그 구조는 도 18에서와 같다. Stream-Interface 드라이버는 디바이스 관리자에 의해 관리되며 MIDISK 드라이버 역시 이러한 구조를 갖는다.
드라이버 개발에 대한 형태는 Windows NT의 부분 집합 으로 Windows NT와 많이 닮은 형태이며 API 집합을 최소화하여 커널의 크기를 줄임으로써 모바일 기기 적합하도록 구성되어졌다. MIDISK 클라이언트는 클라이언트 설치 프로그램과 클라이언트 드라이버의 요구를 적절히 처리할 서버, 그리고 서버와 클라이언트간 통신 규약으로 구성된다. 상기 MIDISK 클라이언트 설치 프로그램은 다음과 같이 설계된다. Windows CE 는 설치된 드라이버에 대한 목록을 레지스트리의 특정 부분에 저장하여 내장된 드라이버나 설치할 드라이버의 목록을 동일하게 유지한다. 설치할 드라이버에 대한 목록과 설치되어진 내용은 저장 장치의 특성상 전원을 완벽히 차단하거나 콜드 리셋(Cold reset)을 하였을 경우 모두 사라진다.
설치과정은 드라이버 목록을 유지하는 레지스트리 키 안에 설치할 드라이버의 키를 추가하고 장치 드라이버를 실행 폴더에 복사함으로써 장치를 추가하는 효과를 얻을 수 있으며 MIDISK에서 사용되는 설치 프로그램은 레지스트리 키를 추가한 후 레지스트리 변경에 대한 내용을 디바이스 관리자(Device Manager)에게 알려주고 장치를 추가하도록 유도한다. 설치가 끝나면 설치프로그램은 재설치가 이루어 지기 전까지는 필요가 없다. 리셋이 이루어지면 디바이스 관리자는 레지스트리 값으로 인해 장치를 로드하고 등록하게 된다. 이때 장치드라이버는 디바이스 관리자가 요구하는 조건에 만족해야한다.
도 19는 본 발명의 실시 예에 따른 MIDISK 클라이언트 드라이버 설계 구조를 도시한 것으로, 상기 도 19에서 볼 수 있듯이 Windows CE에서 인스톨 드라이버는 응용 프로그램(Application program) 수준으로 관리되어진다. 드라이버는 가상 볼륨을 생성하고 가상의 파일 시스템으로 디스크를 구축하여 모바일 기반의 인터넷 디스크 프로토콜에 맞추어 네트워킹 I/O를 담당한다.
도 20은 상기 모바일 인터넷 디스크 클라이언트 드라이버의 위치를 도시한 것으로, MIDISK 클라이언트 드라이버(Client driver)(700)는 가상 저장 장치(Virtual storage device)(706)를 생성하여 디바이스 관리자(Device Manager)(702)를 이용하여 등록하고 디바이스 관리자(702)와 사용자 사이에 위치하여 디스크와 같은 인터페이스를 제공하도록 돕는다. 그리고 NDIS (Network Device Interface Specification)(704)와 연계하여 디스크 I/O로 원격지에 존재하는 대용량 저장 장치를 제어할 수 있도록 한다.
위와 같은 MIDISK 클라이언트에서의 서비스가 가능하도록 하기 위해서는 대용량 저장 공간을 클라이언트가 접근할 수 있도록 하는 서버의 역할이 매우 중요하다. 도 21은 본 발명의 실시 예에 따른 MIDISK 서버 구조를 도시한 것으로, 이하 상기 도 21을 참조하여 MIDISK 서버 구조를 상세히 설명하기로 한다.
먼저 서버(400)는 대용량 저장장치로 구성되어 있는 저장장치 풀(Pool)(800) 과 연결되며 저장 공간을 할당받는다. 이렇게 할당 은 공간을 클라이언트(500)에게 제공할 수 있도록 각가지 기능을 하는 여러 개의 컴포넌트(Component)로 구성된다. 논리 볼륨(802)은 다양한 형태로 구성되는 저장장치 풀(800)을 하나의 또는 여러 개의 논리적인 저장장치로 보이게 한다. 파일 시스템(804)은 논리볼륨(802)을 사용자가 원하는 형태로 구성하는 역할을 한다. 공간 할당 관리자(806)는 논리 볼륨(802)이나 파일 시스템(804)을 사용자가 원하는 양만큼 분할하여 제공하고 할당한 공간의 확장이나 축소 회수와 같은 역할을 담당한다. I/O 관리자(808)는 클라이언트(500)로 전송될 데이터를 패킷화 하거나 클라이언트(500)로부터 전송된 데이터를 해석하는 역할을 한다. 도 22는 모바일 인터넷 디스크 시스템에서 서버(400)가 클라이언트(500)에게 논리 볼륨을 할당하는 개념을 도시한 것으로, MIDISK 클라이언트(500)는 서버의 논리 볼륨 할당 관리자에 의해 네트워크 내의 대용량 저장 장치에 연결된다.
도 23은 본 발명의 실시 예에 따라 모바일 기기내 MIDISK 클라이언트 가상 드라이버 설치 화면을 도시한 것으로, 이하 상기 도 23을 참조하여 모바일 기기내 MIDISK 클라이언트 가상 드라이업 설치과정을 상세히 설명하도록 한다.
도 23에서 보여지는 바와 같이 설치 파일의 이름은 현재 LOADER.EXE 이며 클릭하여 실행하면 설치를 시작한다. 그러면 Windows CE 커널(Kernel)(602)은 드라이버 로드 절차를 수행한다. 로드 순서의 레지스트리가 설치 프로그램에 의해 모두 편집되고, 또 설치 프로그램은 장치를 액티브 시킨다. 그러면 디바이스 관리자는 드라이버의 시작점을 호출할 것이고 이것은 드라이버 파일 자체가 OS에 의해 로드 가 시작되었음을 의미한다. 그러면 MIDISK 드라이버가 DLL (Dynamic Linked Library)인 특성이기 때문에 호출되는 부분이므로 이 부분에서 초기화 과정이 필요 없다.
장치관리자는 장치를 초기화하기 위한 함수를 드라이버에서 호출한다. 여기서 드라이버는 장치에 대해 적절한 초기화 정책을 수행하여야 하며 장치관리자는 조건에 만족하지 않는 동작을 하는 드라이버는 로드하지 않는다. 최초의 로드가 되거나 설정내용이 인증을 받지 못하게 되는 경우 디스크 설정 창이 뜨며 정확한 설정내용을 기입하도록 유도한다. 여러 번을 인증 받지 못하면 디스크 로드가 실패하며 디스크는 생성되지 않고 더불어 설치는 종료된다.
사용자는 등록 절차를 거쳐야하며 가상 저장장치 드라이브 클라이언트를 설치함으로써 서버에 접근이 가능하다. 등록 후, 로그인은 도 24에서와 같은 대화 상자를 통해 PDU에 전달되어질 내용을 입력하며 서버의 아이피(IP) 입력함으로써 주소를 입력하면 네트워킹 API를 이용해 해당 서버(400)에 접속한다. 드라이버는 사용자가 가상 디스크 드라이브를 제어함에 있어 각 항목에 해당하는 처리 함수를 가지고 있다. 함수는 API 에 호출되는 것이 대부분이고 그렇지 않은 것은 디바이스 관리자가 직접 호출한다. API 함수와 드라이버가 포함한 함수와의 관계는 도 25와 같이 각각 대응되는 형태를 갖는다. 또 드라이버내의 함수는 원격지에서 자료를 가져오는 형태의 기능을 하는 또 다른 함수를 포함한다. 그러므로 드라이버는 MIDISK 클라이언트의 역할을 수행한다. 또한 Windows CE의 모든 드라이버는 시스템의 전원에 대한 적절한 처리 할 수 있어야 한다.
MIDISK 서버는 MIDISK 드라이버가 MIDISK 통신 규약에 준한 요청 메시지를 보내면 그에 대해 전송하기 위한 응답 메시지를 작성하는데 요청 메시지의 유형에 따라 상황에 맞는 형식에 맞추어 응답 메시지를 작성한다. 그 후 IP 네트워크를 이용하여 응답 메시지를 전송한다. 클라이언트를 설치하면 도 26에서와 같은 화면을 모바일 기기에서 볼 수 있다. MIDISK 라는 이름의 디스크가 생성되며 Windows CE에서는 폴더 형태 아이콘으로 나타난다. 폴더를 클릭하면 도 27과 같이 동시에 서버와 통신하고, 읽기와 쓰기 등을 수행 할 수 있다.
도 28a 및 도 28b는 본 발명의 실시 예에 따른 모바일 인터넷 디스크 시스템에서 모바일 기기용 가상저장장치의 구현을 위한 모바일 기기 내 MIDISK 클라이언트와 원격지 MIDISK 서버간 프로토콜 처리 흐름을 도시한 것이다. 이하 상기 도 28a 및 도 28b을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.
먼저 MIDISK 드라이버가 설치된 모바일 기기의 사용자는 모바일 기기용 가상 저장장치를 사용하고자 하는 경우 도 26에서 보여지는 바와 같이 모바일 기기에 구현된 MIDISK 폴더를 선택하여 MIDISK 기능을 활성화시키게 된다.
그러면 MIDISK 클라이언트(500)는 인터넷상 또는 원격지에 위치한 MIDISK 서버(400)로 인터넷 가상 저장장치의 이용을 위한 연결 설정을 요구하고(C100), 로그인을 위한 로그인 요구 명령(LOGIN_REQ)을 포함하는 로그인 요구 PDU(LIREQ PDU)를 작성하여(C102) 서버(400)로 상기 작성된 로그인 요구 PDU를 전송시킨 후(C104), MIDISK 서버(400)로부터의 응답을 수신대기 하게 된다(C106). 이때 상기 로그인 요구 PDU에는 제어 코드(Control code)와 사용자 아이디 및 패스워드, 볼륨 이름 (Volume name)과 블록 크기(Block size) 등의 정보가 포함된다.
한편, 서버(400)는 모바일 기기의 클라이언트(500)로부터 연결 설정 요구를 대기하는 중(S100) 상기 클라이언트(500)로부터 연결 설정 요청을 수신하는 경우 클라이언트로부터 전송되는 각종 PDU를 처리하기 위한 쓰레드(Thread)를 생성하고, 클라이언트(500)로부터의 로그인 요구 PDU를 수신대기 한다(S104). 이어 서버(400)는 클라이언트(500)로부터 로그인 요구 PDU가 수신되는 경우 수신된 로그인 요구 PDU가 유효한지 여부를 검사한다(S106).
이때 수신된 로그인 요구 PDU가 유효하지 않은 패킷으로 검사되는 경우 서버(400)는 로그인 요구 PDU가 유효하지 않다는 에러 메시지(Invalid PDU error)를 포함하는 로그인 응답 PDU(LIRES PDU)를 작성하여(S108) 이를 클라이언트(500) 측으로 전송시킨다(S124).
그러나 이와 달리 상기 클라이언트(500)로부터 수신된 로그인 요구 PDU가 유효한 패킷으로 검사되는 경우 서버(400)는 로그인 요구 PDU 해석 쓰레드(Thread)를 생성하여 사용자의 볼륨 이름, 아이디, 패스워드를 이용해서 해당 볼륨 아이디에 대한 사용 권한을 인증한다(S110).
상기 인증단계(S110)에서 해당 볼륨 아이디에 대한 인증에 실패하는 경우 서버(400)는 수신된 아이디와 패스워드가 유효하지 않다는 에러 메시지(Invalid ID or Password error)를 포함하는 로그인 응답 PDU를 작성하여(S114) 이를 클라이언트(500) 측으로 전송시킨다(S124).
이와 달리 상기 사용자에게 부여된 볼륨 아이디에 인증이 성공하는 경우 서 버(400)는 클라이언트(500) 측으로부터 요구된 패킷 크기(Packet size)와 드라이버 버전(Driver version)이 서로 일치하는지 확인하고(S118), 드라이버 버전의 호환이 불가능한 경우에는 드라이버 버전의 호환이 불가능하다는 에러 메시지(Invalid Version error)를 포함하는 로그인 응답 PDU를 작성하여(S120), 이를 클라이언트(500) 측으로 전송시킨다(S124). 그러나 이와 달리 상기 클라이언트측(500) 으로부터 요구된 패킷 크기와 드라이버 버전 협상 결과 드라이버 버전 호환이 가능한 경우 서버(400)는 세션을 설정하고 로그인이 정상적으로 수행되었음을 의미하는 로그인 응답 PDU를 작성하여(S122), 이를 클라이언트(500) 측으로 전송시킨다(S124).
그러면 모바일 기기의 클라이언트(500)는 상기와 같이 서버(400) 측으로부터 전송되는 로그인 응답 PDU을 수신하고(C108), 수신된 로그인 응답 PDU를 해석한다(C110). 이어 클라이언트(500)는 로그인 응답 PDU의 해석에 따른 로그인 성공 여부를 검사하는데(C112), 이때 로그인 응답 PDU의 해석에 있어서 클라이언트(500)는 제어 코드를 보고 로그인 응답 PDU를 먼저 확인한 후, 에러 코드가 "0"보다 크면 연결이 정상적으로 이루어지지 않은 것으로 판단하고 에러 코드의 내용에 따라 사용자에게 에러 메시지를 출력시킨다. 그러나 에러 코드가 "0"이면 정상적으로 연결이 되었음을 확인하고 MIDISK 이용을 위한 사용자의 명령을 대기한다(C114).
상기와 같이 로그인이 성공적으로 수행되어 MIDISK 클라이언트 사용자 명령 대기 상태로 되는 경우 사용자는 모바일 인터넷 디스크를 이용한 읽기(Read), 쓰기(Write)를 모바일 기기에서 실행시킬 수 있으며, 사용자는 모바일 기기에 가상으로 구현되는 MIDISK를 이용하여 자신이 원하는 작업을 선택하게 된다.
이때 만일 사용자에 의해 모바일 인터넷 디스크상 쓰기 명령이 입력되는 경우 클라이언트(500)는 쓰기 요구 명령(WRITE_REQ)을 포함하는 쓰기 요구 PDU(WREQ PDU)를 작성하여(C118) 서버(400)로 상기 작성된 쓰기 요구 PDU를 전송시킨 후, MIDISK 서버(400)로부터의 쓰기 요구에 대한 응답(WRES PDU)을 수신대기 하게 된다(C124). 이때 상기 쓰기 요구 PDU에는 제어 코드, 블록 아이디, 볼륨 이름, 데이터 등의 정보가 포함된다.
이와 달리 사용자에 의해 모바일 인터넷 디스크상 정보에 대한 읽기 명령이 입력되는 경우 클라이언트(500)는 읽기 요구 명령(READ_REQ)을 포함하는 읽기 요구 PDU(RREQ PDU)를 작성하여(C120) 서버(400)로 상기 작성된 읽기 요구 PDU를 전송시킨 후, MIDISK 서버(400)로부터의 읽기 요구에 대한 응답(RRES PDU)을 수신대기 하게 된다(C124). 이때 상기 읽기 요구 PDU에는 제어 코드, 시작 블록 아이디, 읽어 들일 블록의 수, 볼륨 이름 등의 정보가 포함된다.
또한 이와 달리 사용자에 의해 로그 아웃 명령이 입력되는 경우 클라이언트(500)는 현재 진행되고 있는 데이터 송/수신이 있는지 확인한 후 데이터 교환 중인 경우 사용자에게 로그 아웃을 계속할 것인지 확인한다. 이때 사용자는 로그 아웃을 계속 할 것인지 여부를 결정하여야 하며, 사용자에 의해 로그 아웃 명령이 재차 확인 입력되는 경우 클라이언트(500)는 로그 아웃 요구 명령(LOGOUT_REQ)을 포함하는 로그 아웃 요구 PDU(LOREQ PDU)를 작성하여(C122) 서버(400)로 전송시킨 후, MIDISK 서버(400)로부터 로그 아웃에 대한 응답(LORES PDU)을 수신대기 하게 된다(C124).
그러면, 서버(400)는 로그인된 클라이언트(500)를 통해 사용자로부터의 읽기, 쓰기 또는 로그 아웃 요구 PDU를 수신하고(S126), 수신된 읽기, 쓰기 또는 로그 아웃 요구 PDU가 유효한지 여부를 검사한다(S128). 이때 수신된 읽기, 쓰기 또는 로그 아웃 요구 PDU가 유효하지 않은 패킷으로 검사되는 경우 서버(400)는 수신된 PDU가 유효하지 않다는 에러 메시지(Invalid PDU error)를 포함하는 응답 PDU를 작성하여(S130) 이를 클라이언트(500) 측으로 전송시킨다(S124). 이와 달리 수신된 PDU가 유효한 패킷으로 검사되는 경우 서버(400)는 수신된 PDU가 읽기, 쓰기 또는 로그 아웃 요구인지 여부를 검사한다.
상기 검사결과 수신된 PDU가 쓰기 요구 PDU(WREQ PDU)인 경우 서버(400)는 수신된 쓰기 요구 PDU를 해석하여(S134) 블록 아이디(Block ID)를 보고 볼륨 아이디(Volume ID) 볼륨의 어떤 블록을 변경해야 하는지를 결정한 후, 해당 블록에 데이터를 기록하며(S136), 이때 블록이 볼륨 아이디 볼륨의 범위를 벗어나는 경우에는 블록 아이디를 반환시킨다. 이어 서버(400)는 쓰기 요구 PDU에 따른 쓰기 응답 PDU(WREQ PDU)를 작성하여(S138) 이를 클라이언트(500) 측으로 전송시킨다(S154). 이때 상기 쓰기 응답 PDU에는 제어 코드, 블록 아이디, 에러 코드 등의 정보가 포함된다.
이와 달리 상기 검사결과 수신된 PDU가 읽기 요구 PDU(RREQ PDU)인 경우 서버(400)는 수신된 읽기 요구 PDU를 해석하여(S140) 시작 블록 아이디(Start block ID)와 읽어들일 블록의 수(Number of blocks)를 확인하여 서버의 볼륨 아이디 볼륨에서 읽어야 하는 블록 아이디들로 변환하고, 블록 아이디를 확인 및 매핑하여 읽기를 수행한다(S142). 이때 클라이언트에 반환해야 하는 블록이 여러 개일 경우에는 최대 패킷 크기를 고려하여 여러 개의 읽기 응답 PDU를 만들고 시퀀스 번호(Sequence number)에 따라서 전송시키며, 볼륨 아이디 볼륨에 해당 블록 아이디가 존재하지 않는 경우에는 블록 아이디가 유효하지 않음을 알리는 메시지를 전송시킨다. 이어 서버(400)는 읽기 요구 PDU에 따른 읽기 응답 PDU(RRES PDU)를 작성하여(S144) 이를 클라이언트(500) 측으로 전송시킨다(S154). 이때 상기 읽기 응답 PDU에는 제어 코드, 총 PDU 수, 시퀀스 번호, 블록 아이디, 에러 코드 등의 정보가 포함된다.
이와 달리 상기 검사결과 수신된 PDU가 로그 아웃 요구 PDU(LOREQ PDU)인 경우 서버(400)는 수신된 로그 아웃 요구 PDU를 해석하여(S146) 현재 데이터를 송/수신하고 있다면 즉시 중단하고 소켓(Socket)을 닫아 세션을 해제시킨다(S148). 이어 서버(400)는 로그 아웃 요구 PDU에 따른 로그 아웃 응답 PDU(LORES PDU)를 작성하여(S150) 작성된 PDU를 클라이언트(500) 측으로 전송하고 연결을 해제시킨 후 작업 쓰레드를 종료시킨다(S152).
위와 같이 서버(400)로부터 클라이언트의 읽기, 쓰기 또는 로그 아웃 요구 PDU에 대한 응답 PDU가 전송되는 경우 클라이언트(500)는 서버 응답 대기 단계(C124)에서 서버(400)로부터 전송된 응답 PDU를 수신하여(C124) 응답 PDU가 로그아웃 응답 PDU 인지 여부를 검사한다(C126).
이때 만일 수신된 응답 PDU가 로그 아웃 응답 PDU가 아나라, 사용자로부터 요구된 읽기 또는 쓰기에 대한 응답 PDU인 경우 클라이언트(500)는 드라이버를 통 해 읽기, 쓰기 요구에 대한 결과를 모바일 기기로 디스플레이하여 사용자에게 알린다(C128). 그러나 상기 수신된 응답 PDU가 로그 아웃 응답 PDU인 경우 클라이언트(500)는 MIDISK 사용을 위한 서버와의 연결을 해제시킨다(C130).
상기한 바와 같은 본 발명에서는 MIDISK 의 클라이언트 드라이버와, 통신 프로토콜, 그리고 서버를 구축하여 원격지의 대용량 저장장치의 일부를 논리 볼륨화 하여 모바일 기기를 통해 디스크를 제어하듯 간편하게 접근 할 수 있도록 한다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
이상에서 설명한 바와 같이, 본 발명은 최근 Netspot 과 같은 무선인터넷이 확산되고 전송속도가 점점 더 개선될 것이라는 점에 착안해서 원격지의 저장공간을 모바일기기에 부착된 메모리카드로 인식될 수 있도록 하는 모바일 기기용 인터넷 디스크에 관련된 것이다. 본 발명의 기술을 이용하면 원격지에 존재하는 대용량의 저장공간이 PDA, Smart Phone 과 같은 모바일 정보기기의 메모리 카드로 인식되어 저장공간의 한계를 극복할 수 있는 이점이 있다.
또한 모바일 기기의 OS는 WIN CE 계열, 리눅스, Palm 과 같은 것들이 사용되고 있는데, 본 발명의 제안 기술은 WIN CE 기반 및 리눅스나 Palm OS 계열의 모바일 기기에서도 구현될 수 있으며, 인터넷 디스크는 클라이언트 서버구조로 되어 있 어, 서버는 대용량의 저장공간을 보유하며 모바일 기기의 요청에 따라서 일부 또는 전체 저장공간을 모바일 기기가 사용할 수 있도록 관리해주고, 클라이언트는 모바일기기에서 가상 디바이스로 구현한다. 즉, MIDISK는 클라이언트 드라이버와, 통신 프로토콜, 그리고 서버를 구축하여 원격지의 대용량 저장장치의 일부를 논리 볼륨화 하여 모바일 기기를 통해 디스크를 제어하듯 간편하게 접근 할 수 있도록 하는 이점이 있다.

Claims (26)

  1. 모바일 기기용 인터넷 디스크 시스템으로서,
    모바일 기반의 인터넷 디스크 프로토콜에 맞추어 원격지에 존재하는 실제 저장장치와의 네트워킹 I/O를 통해 모바일 기기의 저장장치 기능을 수행하는 가상 저장장치 드라이버인 모바일 인터넷 디스크(MIDISK) 클라이언트와,
    상기 MIDISK 클라이언트와 인터넷 디스크 프로토콜에 따른 네트워킹 I/O를 통해 각 모바일 기기로 대용량의 가상 저장장치를 제공하며, 모바일 기기로부터 사용자의 가상 저장장치 사용에 따른 데이터 처리 요구를 수신하여 원격지에 존재하는 실제 저장장치에서 해당 요구에 따른 데이터 읽기/쓰기 동작을 수행하고 그 결과를 제공하는 MIDISK 관리 서버와,
    상기 MIDISK 관리 서버에 의해 관리되며, 모바일 인터넷 디스크 시스템에 등록된 모바일 기기별 저장공간을 구비하고, 모바일 기기 가상 저장장치 사용에 따른 상기 관리 서버의 데이터 읽기/쓰기 수행결과를 해당 모바일 기기의 저장공간에 갱신 저장시키는 대용량 저장장치
    를 포함하는 모바일 기기용 인터넷 디스크 시스템.
  2. 제1항에 있어서,
    상기 MIDISK 클라이언트는, 모바일 기반 인터넷 디스크 프로토콜 스택과,
    가상 볼륨을 생성하고, 가상의 파일 시스템으로 디스크를 구축하여 상기 모바일 기반의 인터넷 디스크 프로토콜에 맞추어 네트워킹 I/O를 수행하는 가상 저장장치 드라이버와,
    MIDISK 관리 서버로 전송될 데이터를 패킷화하거나 서버로부터 전송되는 데이터를 해석하는 I/O 관리자
    를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  3. 제2항에 있어서,
    상기 MIDISK 클라이언트는, 스트림 인터페이스 드라이버 구조를 가지는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  4. 제1항에 있어서,
    상기 MIDISK 클라이언트는, 사용자의 가상 저장장치 사용 요구 시, 모바일 기반의 인터넷 디스크 프로토콜에 따른 네트워킹 I/O를 통해 해당 모바일 기기에 할당된 웹 상 대용량 저장장치에 접속하여 데이터 처리 요구에 대응되게 상기 서버와 데이터의 읽기(Read) 또는 쓰기(Write) 요청과 응답을 수행하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  5. 제4항에 있어서,
    상기 MIDISK 클라이언트와 서버간 데이터 처리 요구와 응답은, PDU(Packet data unit)에 의해 전송되는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  6. 제5항에 있어서,
    상기 PDU는, 전송될 데이터의 길이 정보가 기록되는 데이터 세그먼트 길이 영역과,
    상기 데이터의 특성 정보가 기록되는 헤더 영역과,
    실제 전송되는 데이터가 기록되는 데이터 영역
    를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  7. 제4항에 있어서,
    상기 MIDISK 클라이언트는, 사용자의 가상 저장장치 사용 요구 시, 웹 상 대용량 저장장치의 연결을 위한 로그인 요청 PDU를 전송시켜 서버로 로그인을 요청하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  8. 제7항에 있어서,
    상기 로그인 요청 PDU는, 제어 코드, 사용자 ID, 패스워드, 모바일 기기에 할당된 볼륨 이름, 블록 크기, 버전 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  9. 제7항에 있어서,
    상기 MIDISK 서버는, 상기 클라이언트로부터의 로그인 요청 PDU를 수신하는 경우, 상기 로그인 요청 PDU내 볼륨 이름, 사용자 ID, 패스워드 정보를 이용하여 요청된 볼륨 아이디에 대한 사용 권한을 인증하고, 사용 권한이 인증되는 경우 로그인 응답 PDU를 전송하는 것을 특징으로 하는
  10. 제4항에 있어서,
    상기 MIDISK 클라이언트는, 로그인 설정 후, 사용자의 가상 저장장치를 이용한 읽기 또는 쓰기 요구에 따른 읽기 또는 쓰기 요청 PDU를 전송하고, 상기 서버에 의해 원격지 대용량 저장장치에서 수행된 읽기 또는 쓰기 결과를 상기 서버로부터 읽기 또는 쓰기 응답 PDU로 수신하여 사용자에게 알리는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  11. 제10항에 있어서,
    상기 클라이언트로부터의 읽기 요청 PDU는, 제어 코드, 읽고자 하는 블록의 수, 볼륨 이름, 시작블록 아이디 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  12. 제10항에 있어서,
    상기 클라이언트로부터의 쓰기 요청 PDU는, 제어 코드, 블록 아이디, 볼륨 이름, 쓰고자 하는 데이터 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  13. 제10항에 있어서,
    상기 서버는, 클라이언트의 읽기 요청 PDU수신시 시작 블록 아이디와 읽기 요청된 블록 수를 확인하여 서버의 지정된 볼륨 아이디 볼륨에서 읽어야 하는 블록 아이디로 변환시키고, 클라이언트로 반환하는 블록이 여러 개인 경우 최대 패킷의 크기에 따라 다수의 읽기 응답 PDU를 생성하여 시퀀스 번호에 따라 전송시키는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  14. 제13항에 있어서,
    상기 서버로부터의 읽기 응답 PDU는, 제어 코드, 읽기 요청된 PDU의 총수, 시퀀스 번호, 블록 아이디 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  15. 제13항에 있어서,
    상기 서버는, 클라이언트의 쓰기 요청 PDU수신시 쓰기 요청된 블록 아이디를 확인하여 볼륨 아이디 볼륨에서 쓰기 수행할 블록을 결정하고, 결정된 블록에 쓰기 요청된 데이터를 기록하고, 그에 따른 쓰기 응답 PDU를 전송하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  16. 제15항에 있어서,
    상기 서버로부터의 쓰기 응답 PDU는, 제어 코드, 쓰기 수행된 블록 아이디 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템.
  17. 원격지에 위치하여 대용량 저장장치를 구비하는 모바일 인터넷 디스크(MIDISK) 관리서버와, 모바일 기반의 인터넷 디스크 프로토콜에 따른 네트워킹 I/O를 통해 MIDISK 관리 서버와 연결하여 모바일 기기내 가상 저장장치를 구현하는 MIDISK 클라이언트를 포함하는 모바일 기기용 인터넷 디스크 시스템에서 모바일 기기내 가상 저장장치 구현 방법으로서,
    (a)모바일 기기내 가상 저장장치 사용 요구 시 MIDISK 클라이언트를 이용하여 모바일 기기 상 가상 저장장치를 구동시키는 단계와,
    (b)상기 MIDISK 클라이언트를 통해 웹 상 대용량 저장장치를 구비한 MIDISK 관리 서버에 연결하는 단계와,
    (c)상기 모바일 기기의 가상 저장장치 사용에 따른 데이터 처리 요구 명령을 관리 서버로 전송하는 단계와,
    (d)상기 관리 서버에서 MIDISK 클라이언트에 의해 전송된 데이터 처리 요구에 대응한 데이터 처리를 웹 상 해당 모바일 기기에 할당된 대용량 저장장치에서 수행하는 단계와,
    (e)상기 관리 서버에 의해 수행된 데이터 처리 결과를 MIDISK 클라이언트를 통해 모바일 기기에 디스플레이시키는 단계
    를 포함하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  18. 제17항에 있어서,
    상기 (b)단계는, (b1)상기 모바일 기기의 가상 저장장치 사용 요구 시 MIDISK 관리 서버로 전송할 로그인 요청 PDU를 작성하는 단계와,
    (b2)상기 로그인 요청 PDU를 MIDISK 관리 서버로 전송하는 단계와,
    (b3)상기 MIDISK 관리 서버로부터 사용 권한 인증에 따른 로그인 응답을 수신하여 연결을 수행하는 단계
    를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  19. 제18항에 있어서,
    상기 로그인 요청 PDU는, 제어 코드, 사용자 ID, 패스워드, 모바일 기기에 할당된 볼륨 이름, 블록 크기, 버전 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  20. 제17항에 있어서,
    상기 (c)단계는, (c1)상기 가상 저장장치를 이용한 사용자로부터의 데이터 처리 요구에 대응되는 읽기 또는 쓰기 요청 PDU를 작성하는 단계와,
    (c2)상기 작성된 읽기 또는 쓰기 요청 PDU를 MIDISK 관리 서버로 전송하여 원격지 대용량 저장장치를 이용한 데이터 처리를 요청하는 단계
    를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  21. 제20항에 있어서,
    상기 클라이언트로부터의 읽기 요청 PDU는, 제어 코드, 읽고자 하는 블록의 수, 볼륨 이름, 시작블록 아이디 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  22. 제20항에 있어서,
    상기 클라이언트로부터의 쓰기 요청 PDU는, 제어 코드, 블록 아이디, 볼륨 이름, 쓰고자 하는 데이터 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  23. 제17항에 있어서,
    상기 (d)단계는, (d1)상기 MIDISK 클라이언트로부터 전송되는 읽기 또는 쓰기 요청 PDU를 수신하는 단계와,
    (d2)상기 수신된 PDU를 분석하여 MIDISK 클라이언트의 데이터 처리 요구를 검사하는 단계와,
    (d3)상기 수신된 PDU가 읽기 요청 PDU인 경우 시작 블록 아이디와 읽기 요청된 블록 수를 확인하여 서버의 지정된 볼륨에서 읽어야 하는 블록 아이디로 변환시켜 읽기를 수행하는 단계와,
    (d4)상기 MIDISK 클라이언트로 반환하는 블록이 다수개인 경우 최대 패킷의 크기에 따라 다수의 읽기 응답 PDU를 생성하여 시퀀스 번호에 따라 전송시키는 단계
    를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  24. 제23항에 있어서,
    상기 (d2)단계에서, 수신된 PDU가 쓰기 요청 PDU로 검사되는 경우, (d5)상기 쓰기 요청된 블록 아이디를 확인하여 볼륨 아이디 볼륨에서 쓰기 수행할 블록을 결정하는 단계와,
    (d6)상기 결정된 블록에 쓰기 요청된 데이터를 기록하고, 그에 따른 쓰기 응답 PDU를 생성하여 전송시키는 단계
    를 더 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  25. 제24항에 있어서,
    상기 서버로부터의 읽기 응답 PDU는, 제어 코드, 읽기 요청된 PDU의 총수, 시퀀스 번호, 블록 아이디 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
  26. 제24항에 있어서,
    상기 서버로부터의 쓰기 응답 PDU는, 제어 코드, 쓰기 수행된 블록 아이디 정보를 포함하는 것을 특징으로 하는 모바일 기기용 인터넷 디스크 시스템에서 가상 저장장치 구현방법.
KR1020050008578A 2005-01-31 2005-01-31 모바일 기기용 인터넷 디스크 시스템 및 방법 KR20060087758A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050008578A KR20060087758A (ko) 2005-01-31 2005-01-31 모바일 기기용 인터넷 디스크 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050008578A KR20060087758A (ko) 2005-01-31 2005-01-31 모바일 기기용 인터넷 디스크 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20060087758A true KR20060087758A (ko) 2006-08-03

Family

ID=37176450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050008578A KR20060087758A (ko) 2005-01-31 2005-01-31 모바일 기기용 인터넷 디스크 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20060087758A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100677914B1 (ko) * 2005-08-03 2007-02-05 삼성탈레스 주식회사 주기적으로 입출력을 검사하는 시스템에서 epmcq2를원격 모드로 사용할 때 속도를 향상시키는 방법
KR100765770B1 (ko) * 2006-01-23 2007-10-15 삼성전자주식회사 가상 장치를 이용한 휴대용 기기의 데이터 관리 방법, 장치및 사용자 인터페이스 방법
KR100927821B1 (ko) * 2008-02-15 2009-11-23 가온미디어 주식회사 확장 저장 공간을 지원하는 모바일 단말기 및 운용 방법
KR100942732B1 (ko) * 2007-12-05 2010-02-16 동서대학교산학협력단 에티에이 기반 원격 스토리지 서비스 시스템 및 방법
US8762480B2 (en) 2009-06-22 2014-06-24 Samsung Electronics Co., Ltd. Client, brokerage server and method for providing cloud storage

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100677914B1 (ko) * 2005-08-03 2007-02-05 삼성탈레스 주식회사 주기적으로 입출력을 검사하는 시스템에서 epmcq2를원격 모드로 사용할 때 속도를 향상시키는 방법
KR100765770B1 (ko) * 2006-01-23 2007-10-15 삼성전자주식회사 가상 장치를 이용한 휴대용 기기의 데이터 관리 방법, 장치및 사용자 인터페이스 방법
KR100942732B1 (ko) * 2007-12-05 2010-02-16 동서대학교산학협력단 에티에이 기반 원격 스토리지 서비스 시스템 및 방법
KR100927821B1 (ko) * 2008-02-15 2009-11-23 가온미디어 주식회사 확장 저장 공간을 지원하는 모바일 단말기 및 운용 방법
US8762480B2 (en) 2009-06-22 2014-06-24 Samsung Electronics Co., Ltd. Client, brokerage server and method for providing cloud storage

Similar Documents

Publication Publication Date Title
US6349336B1 (en) Agent/proxy connection control across a firewall
US8560734B2 (en) Secure communication port redirector
JP5595490B2 (ja) インストール不要のデータカードドライバの実現方法、操作方法及びそのシステム
US7334119B2 (en) Method, system, apparatus, and program product for temporary personalization of a computer terminal
US8316133B2 (en) Thin client system using session managing server and session managing method
US20040139309A1 (en) Method, system, apparatus and program product for temporary personalization of a computer terminal
JP5293580B2 (ja) ウェブサービスシステム、ウェブサービス方法及びプログラム
EP2678781B1 (en) Apparatus and method for unlocking a device remotely from a server
JP2005071362A (ja) ネットワークを介したscsiデバイスアクセスの提供
US7788392B2 (en) Mechanism for universal media redirection control
KR20060087758A (ko) 모바일 기기용 인터넷 디스크 시스템 및 방법
US20080060059A1 (en) Data processor, peripheral device, and recording medium used herewith
EP2015190B1 (en) Technique of controlling communication of installed apparatus with outside by means of proxy server
US8086760B1 (en) Managing communications connections with data storage systems
JP2009098977A (ja) 周辺機器接続システム
JP5166307B2 (ja) 接続機器利用システムおよびその方法
US7448069B2 (en) Access-request control method, driver program for communication device, and communication device
JP2001249784A (ja) ネットワークデバイスの制御方法及びその装置
CN112737827A (zh) 资源分配方法、装置及系统
KR100884271B1 (ko) 무선단말기를 이용한 원격 스토리지 서비스 시스템 및서비스 방법
CN114721988B (zh) 实现usb外设驱动代理与监控审计的方法及系统
KR101662801B1 (ko) 가상화 서비스 제공을 위한 디바이스 리다이렉션 시스템
KR20060108420A (ko) 휴대폰용 원격 메모리 시스템
KR100807055B1 (ko) 전화접속 네트워킹을 이용한 인터넷 자동 접속 방법
US11818183B2 (en) System and method for workspace sharing

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
N231 Notification of change of applicant
E601 Decision to refuse application