상술한 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면, 적어도 하나의 이동 단말기와 이동 통신망을 통하여 결합하는 소프트웨어 제공 서버에서 조건에 부합하는 소프트웨어를 제공하는 방법에 있어서, 상기 이동 단말기로부터 가입자 정보를 수신하는 단계, 상기 가입자 정보에 상응하는 적어도 하나의 소프트웨어를 검색하는 단계, 상기 검색된 소프트웨어에 상응하는 검색 리스트를 생성하는 단계, 상기 생성한 검색 리스트를 상기 이동 단말기로 전송하는 단계, 상기 이동 단말기로부터 상기 검색 리스트를 이용하여 생성한 특정 소프트웨어 선택 정보를 수신하는 단계 및 상기 선택 정보에 상응하는 소프트웨어를 상기 이동 단말기로 전송하는 단계를 포함하는 조건에 부합하는 소프트웨어 제공 방법을 제공할 수 있다.
또한, 본 발명의 일 측면에 따라, 상기 이동 단말기로부터 서비스 가입 요청 신호를 수신하는 단계 및 상기 서비스 가입 요청 신호에 응답하여, 가입자 정보 요청 신호를 상기 이동 단말기로 전송하는 단계를 더 포함하는 조건에 부합하는 소프트웨어 제공 방법을 제공할 수 있다.
또한, 상기 소프트웨어는 OTA-SD(Over The Air Software Download) 방식에 의하여 전송되는 것을 특징으로 한다.
또한, 상기 가입자 정보는 적어도 이벤트 정보를 포함하는 것을 특징으로 한다.
또한, 상기 이동 단말기는 전송된 소프트웨어를 모바일 플랫폼을 통하여 탑재하는 것을 특징으로 한다. 이때, 상기 모바일 플랫폼은 위피(Wireless Internet Platform for Interoperability, WIPI)인 것을 특징으로 한다. 상기 소프트웨어를 탑재한 이동 단말기는 대여될 수 있는 것을 특징으로 한다.
본 발명의 다른 측면에 따르면, 적어도 하나의 이동 단말기와 이동 통신망을 통하여 결합하는 소프트웨어 제공 서버에서 조건에 부합하는 소프트웨어를 제공하는 시스템에 있어서, 프로그램이 저장된 메모리와 상기 메모리에 결합되어 상기 프로그램을 실행하는 프로세서를 포함하되, 상기 프로세서는 상기 프로그램에 의해, 상기 이동 단말기로부터 가입자 정보를 수신하는 단계, 상기 가입자 정보에 상응하는 적어도 하나의 소프트웨어를 검색하는 단계, 상기 검색된 소프트웨어에 상응하는 검색 리스트를 생성하는 단계, 상기 생성한 검색 리스트를 상기 이동 단말기로 전송하는 단계, 상기 이동 단말기로부터 상기 검색 리스트를 이용하여 생성한 특정 소프트웨어 선택 정보를 수신하는 단계 및 상기 선택 정보에 상응하는 소프트웨어를 상기 이동 단말기로 전송하는 단계를 실행하는 것을 특징으로 하는 조건에 부합하는 소프트웨어 제공 시스템을 제공할 수 있다.
이어서, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 OTA-SD 방식으로 조건에 부합하는 소프트웨어를 제공하는 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 소프트웨어 제공 시스템은 단말기(101), 교환기(103), 홈 위치 등록기(HLR: Home Location Register, 105), 인터넷 망(109), 소프트웨어 제공 서버(111), 데이터베이스(113), 소프트웨어 제공자(115) 및 웹 서버(119)를 포함한다.
단말기(101)는 휴대폰, PDA 폰, 스마트 폰, 노트북 태블릿 PC 등을 포함할 수 있다. 또한, 상기 단말기(101)는 기존의 기능을 모두 가지되, 소프트웨어 제공 서버(111)에서 제공하는 소프트웨어 또는 정보를 다운로드받는 기능을 포함하고 있다. 또한 상기 단말기(101)는 GPS 칩이 장착되거나 GPS 서비스가 지원되는 것으로 상기 단말기의 위치 등 실시간 정보가 소프트웨어 제공 서버로 전송되어 데이터베이스(113)에 저장될 수 있다.
교환기(103)는 홈 위치 등록기(105)로부터 이미 등록된 가입자 정보를 구하여 단말기(101)에게 통신 서비스를 제공한다. 또한 상기 교환기는 게이트웨이(107)를 통해 인터넷(109)과 연결되어 있으며 소프트웨어 제공 서버(109)와 단말기(101)사이의 통신을 중계한다.
소프트웨어 제공 서버(113)는 소프트웨어 제공자(115) 또는 웹 서버(117)로부터 소프트웨어를 제공 받아 데이터베이스(113)에 저장한다. 또한 상기 소프트웨어 제공 서버는 저장된 상기 소프트웨어 중에서 가입자 조건에 적합한 소프트웨어를 추출한 후 단말기(101)로 제공하는 역할을 수행한다.
웹 서버(119)는 게이트웨이(117)를 통해 인터넷 망(109)과 연결되어 있으며, 상기 인터넷 망(109)을 매개로 상기 소프트웨어 제공 서버(111)에 결합되어 있다. 상기 웹 서버(117)는 상기 데이터베이스(113)에 저장된 소프트웨어나 정보를 추가하거나 변경하는 기능을 수행한다.
상기 구성을 참조하여, 본 발명에 따른 가입자 기반 소프트웨어 제공 방법을 설명하면 다음과 같다. 먼저, 본 발명에 따른 서비스를 이용하고자 하는 자는 소프트웨어 제공 서버(111)에 접속하여 본 발명에 따른 소프트웨어 제공 서비스에 가입한다. 상기 가입 과정에서 상기 소프트웨어 제공 서버(111)는 가입자 정보를 요구하여 가입자 정보에 관한 데이터베이스를 구축하여 데이터베이스(113)에 저장한다. 상기 가입자 정보에는 가입자가 제공받을 소프트웨어에 대한 조건이 포함될 수 있다. 또한 상기 데이터베이스(115)에는 소프트웨어 제공자(115) 또는 웹 서버(119)로부터 제공받은 소프트웨어가 저장되어 있으며, 상기 소프트웨어에는 제공하고자 하는 대상에 대한 가입자의 조건이 포함되어 있다. 상기 가입자의 단말기(101)로부터 소프트웨어 제공 요청이 있는 경우 상기 소프트웨어 제공 서버(111)는 상기 가입자 정보와 소프트웨어의 가입자 조건을 검색하여 해당 소프트웨어를 추출한 후 해당 소프트웨어 목록을 상기 단말기(101)로 전송한다. 상기 단말기(101)로부터 특정 소프트웨어가 선택되어 제공 요구가 있는 경우, 상기 소프트웨어 제공 서버(111)는 상기 단말기(101)로 선택된 소프트웨어를 OTA-SD 방식으로 제공한다.
본 발명의 바람직한 다른 실시예에 따라 상기 소프트웨어 제공 서버는 특정 커뮤니티에 활동에 필요한 소프트웨어를 상기 단말기로 OTA-SD 방식으로 제공할 수 있으며, 상기 소프트웨어가 설치된 상기 단말기는 대여가 가능하다.
도 2는 본 발명의 바람직한 일 실시예에 따른 OTA-SD 방식으로 조건에 부합하는 소프트웨어 제공 방법을 개략적으로 나타낸 순서도이다.
도 2를 참조하면, 단계 201에서 본 발명의 서비스를 이용하고자 하는 자는 소프트웨어 제공 서버에 접속하여 본 발명에 따른 가입자 기반 소프트웨어 제공 서비스에 가입한다. 이때 서비스 가입을 원하는 자는 단말기를 통하여 소프트웨어 제공 서버에 접속이 가능하며, 또한 소프트웨어 제공 서버에서 제공하는 홈페이지나 ARS 등을 통해서도 접속이 가능하다.
단계 203에서, 상기 소프트웨어 제공 서버는 상기 가입자 정보를 토대로 가입자 데이터베이스를 구축하여 저장한다. 또한 상기 소프트웨어 제공 서버는 소프트웨어 제공자로부터 가입자에게 제공할 소프트웨어를 제공받아 데이터베이스에 저장한다. 상기 데이터베이스에는 소프트웨어의 제공 대상이 되는 가입자의 조건이 포함되어 있다.
단계 205에서, 상기 가입자로부터 소프트웨어 제공 요청이 있는 경우, 상기 소프트웨어 제공 서버는 상기 가입자 정보를 토대로 소프트웨어의 가입자 조건을 검색하여 가입자의 조건에 맞는 소프트웨어 목록을 추출한 후(단계 207), 상기 가입자의 단말기에 상기 목록을 표시해 준다. 상기 가입자의 키 조작에 의하여 상기 단말기로부터 특정 소프트웨어에 대한 제공 요청이 있는 경우, 상기 소프트웨어 제공 서버는 특정 소프트웨어를 상기 단말기로 전송하여 준다.
도 3a는 본 발명의 바람직한 일 실시예에 따른 OTA-SD 방식으로 조건에 부합하는 소프트웨어 제공 절차를 나타낸 신호 흐름도이다.
도 3a를 참조하면, 가입자는 소프트웨어 제공 서버에 접속하여 본 발명에 따른 가입자 기반 소프트웨어 제공 서비스에 가입한다(단계 301). 이때 가입자는 단말기를 통하여 소프트웨어 제공 서버에 접속이 가능하며, 또한 소프트웨어 제공 서버에서 제공하는 홈페이지나 ARS 등을 통해서도 접속이 가능하다. 상기 소프트웨어 제공 서버는 가입자 정보 데이터베이스 구축을 위한 가입자 정보를 상기 가입자에게 요구한다(단계 303). 상기 가입자 정보에는 이름, 전화 번호, 성별, 출생연월일, 지역, 직업, 취미, 커뮤니티 등이 포함될 수 있다. 상기 가입자 정보 요청에 응답하여 가입자는 가입자 정보를 소프트웨어 제공 서버로 전송한다(단계 305). 상기 가입자 정보를 수신한 소프트웨어 제공 서버는 상기 가입자 정보를 데이터베이스로 보내어(307) 가입자 데이터베이스를 구축한다(단계 309). 또한 상기 가입자 정보에는 가입자로부터 직접 입력받는 것 외에 GPS 서비스에 의해 단말기로부터 제공되는 것도 포함될 수 있다. 상기 가입자 정보 데이터베이스는 가입자 조건에 부합하는 소프트웨어를 추출하는데 있어 가입자 조건을 만족하는지를 판단하는 대상이 된다. 상기 가입자로부터 소프트웨어 제공에 대한 서비스 요구가 있는 경우(단계 311), 상기 소프트웨어 제공 서버는 소프트웨어의 가입자 조건을 검색하여 가입자 조건을 만족하는 소프트웨어를 추출한다(단계 313). 상기 소프트웨어 제공 서버는 추출된 소프트웨어의 목록을 가입자 단말기로 전송하고, 상기 가입자로부터 특정 소프트웨어가 선택되어 제공 요청이 있는 경우 선택된 소프트웨어를 상기 가입자의 단말기로 전송한다(단계 315).
본 발명의 바람직한 다른 실시예에 따라, 단계 311에서 가입자는 소프트웨어 대신에 정보 제공 요구를 할 수 있으며, 소프트웨어 제공 서버는 가입자 조건에 부합하는 정보를 추출한 후 이를 가입자에게 제공할 수 있다.
도 3b는 본 발명의 바람직한 다른 실시예에 따른 OTA-SD 방식에 의한 소프트웨어 제공 절차를 나타낸 신호 흐름도이다.
도 3b를 참조하면, 단계 317에서 이동 단말기는 교환기로 오티에이 요청 신호(OTA request)를 전송한다. 상기 오티에이 요청 신호에는 본 발명에 따른 소프트웨어 제공 서비스를 위한 오티에이 기능 코드가 포함되어 있다. 상기 교환기는 상기 오티에이 기능 코드를 바탕으로 소프트웨어 제공 서버로 ISUP 호 설정 요구 신호를 전송하여 교환기와 소프트웨어 제공 서버간에 통화로를 형성한다(단계 319). 이때 상기 교환기는 해당 호를 구별하기 위한 TRN(Temporary Reference Number)를 할당하고 소프트웨어 제공 서버로 상기 TRN을 전달한다.
단계 321에서 상기 소프트웨어 제공 서버는 오티에이에프(Over The Air Functionality : OTAF)와 세션을 연결하기 위하여 Data Connection Request 신호를 상기 OTAF로 전송한다. 상기 Data Connection Request 신호에는 상기 교환기에 의하여 할당된 TRN을 포함한다. 단계 323에서 상기 OTAF는 해당 오티에이 서비스 요구 단말기를 구별하기 위하여 하나의 활성 MIN을 할당하고 소프트웨어 제공 서버로부터 수신한 상기 TRN을 바탕으로 TRN 및 MIN을 포함하는 단문 메시지를 상기 교환기로 전송한다. 이후 상기 교환기는 수신한 단문 메시지를 바탕으로 호 엔트리를 생성하고 호 엔트리 생성 결과 정보를 포함하는 단문 메시지를 상기 OTAF로 전송한다(단계 325). 상기 단문 메시지에는 ESN 및 MIN이 포함되어 있다. 여기서 호 엔트리는 특정 단말기가 오티에이 서비스를 수행하는 도중에 해당 단말기에 대한 정보를 관리하기 위한 데이터 저장 공간을 말한다. 단계 327에서 상기 OTAF는 Data Connection Response 신호를 상기 소프트웨어 제공 서버로 전송하여 호 엔트리가 정상적으로 생성되었음을 알린다.
호 엔트리가 생성되면 OTAF는 소프트웨어 제공 서버의 제어하에 활성 MIN과 호 엔트리를 이용하여 오티에이 서비스를 제공한다(단계 329). 상기 오티에이 서비스는 본 발명에 따른 조건에 부합하는 소프트웨어를 다운로드하기 위한 OTA-SD(Over The Air Software Download)를 포함한다. 상기 오티에이 서비스에 의하여 상기 이동 단말기와 상기 소프트웨어 제공 서버사이에서 데이터 교환이 가능하다.
도 4는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 제공 서버를 나타낸 구성도이다.
도 4를 참조하면, 소프트웨어 제공 서버(400)는 메모리 시스템(420)과, 여기에 결합되어 고속 동작을 수행하는 적어도 하나의 중앙 처리 장치(CPU: Central Processing Unit, 410), 입력 장치(430) 및 통신 장치(440)를 포함한다.
중앙 처리 장치(410)는 계산을 수행하기 위한 ALU(Arithmetic Logic Unit, 412)와, 데이터 및 명령어의 일시적인 저장을 위한 레지스터(414) 및 음원 생성 서버(400)의 동작을 제어하기 위한 컨트롤러(416)를 포함한다. 중앙 처리 장치(410)는 디지털(Digital) 사의 알파(Alpha), MIPS 테크놀로지, NEC, IDT, 지멘스(Siemens) 등의 MIPS, 인텔(Intel)과 사이릭스(Cyrix), AMD 및 넥스젠(Nexgen)을 포함하는 회사의 x86 및 IBM과 모토롤라(Motorola)의 파워PC(PowerPC)와 같이 다양한 아키텍처(Architectrue)를 갖는 프로세서 중 적어도 하나를 포함한다.
메모리 시스템(420)은 일반적으로 RAM(Random Access Memory)과 ROM(Read Only Memory)과 같은 저장 매체 형태인 고속의 메인 메모리(422)와, 플로피 디스크, 하드 디스크, 자기 테이프, CD-ROM, 플래시 메모리 등의 장기(long time) 저장 매체 형태의 보조 메모리(424) 및 전기, 자기, 광학이나 그 밖의 저장 매체을 이용하여 데이터를 저장하는 장치를 포함한다. 또한, 메인 메모리(422)는 디스플레이 장치를 통하여 이미지를 디스플레이 하는 비디오 디스플레이 메모리를 포함할 수 있다.
입력 장치(430)는 키보드, 마우스 등을 포함한다. 마우스는 예컨대 터치스크린이나 마이크로폰과 같은 물리적 변환기(Physical transducer) 등을 포함한다. 통신 장치(440)는 소프트웨어 제공자 및 이동 통신망과의 통신을 수행하기 위한 통신 인터페이스 또는 무선 송수신 인터페이스를 포함한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 제공 서버의 모듈 구성도이다.
도 5를 참조하면, 소프트웨어 제공 서버는 소프트웨어 제공자 및 이동 통신망과의 유무선 통신을 처리하기 위한 송수신 처리 모듈(532)과, 가입자로부터 가입자 정보를 받아 가입자 데이터베이스를 구축하기 위한 가입자 정보 처리 모듈(534)과, 소프트웨어 제공자로부터 소프트웨어를 제공 받고 상기 소프트웨어를 제공할 가입자의 조건을 저장하여 소프트웨어 데이터베이스를 구축하기 위한 소프트웨어 정보 처리 모듈(536) 및 가입자 조건에 맞는 소프트웨어를 추출하고 상기 소프트웨어를 가입자에게 제공하는 소프트웨어 제공 모듈(538)을 포함한다. 이러한 응용 모듈을 통하여 소프트웨어 제공 서버의 전체적인 구성을 살펴보면 다음과 같다.
소프트웨어 제공 서버는 다양한 운영체계(OS: Operating System)를 시스템의 OS로서 사용할 수 있다. 이러한 OS는 응용 프로그램 인터페이스(API: Application Program Interface; 500)에 하이 레벨 명령어를 제공하여 각 응용 모듈(53)의 동작을 제어한다.
소프트웨어 제공 서버는 API(500)로부터 제공되는 하이 레벨 명령어에 따라 각 응용 모듈을 식별하고, 하이 레벨 명령어를 디코딩하여 해당 응용 모듈로 제공하는 하이 레벨 명령어 처리부(510)를 포함한다. 응용 모듈 제어부(520)는 하이 레벨 명령어 처리부(510)로부터 제공된 명령어에 따라 응용 모듈(530)의 동작을 제어한다. 즉, 하이 레벨 명령어 처리부(510)는 API(500)를 통하여 제공된 하이 레벨 명령어에 따라 해당 응용 모듈(530)이 존재하는 지를 식별하고, 해당 응용 모듈(530)이 존재하는 경우에 해당 응용 모듈(530)에서 인식할 수 있는 명령어로 디코딩하여 해당 매핑부에 전송하거나 메시지 전송을 제어한다. 여기서, 응용 모듈(530)은 송수신 처리 모듈(532), 가입자 정보 처리 모듈(534), 소프트웨어 정보 처리 모듈(536) 및 소프트웨어 제공 모듈(538)을 포함한다. 응용 모듈 제어부(520)는 각 응용 모듈에 대한 매핑부(521, 523, 525, 527)와 인터페이스부(522, 524, 526, 528)를 각각 포함한다.
송수신 처리 모듈 매핑부(521)는 하이 레벨 명령어 처리부(510)로부터 소프트웨어 제공자부터 소프트웨어를 수신하는 기능 또는 가입자의 단말기와 통신하여 가입자의 정보를 수신하거나 가입자에게 적합한 소프트웨어를 제공하는 기능을 수행하기 위한 하이 레벨 명령어를 제공받아, 송수신 처리 모듈(532)에서 처리할 수 있는 디바이스 레벨 명령어로 매핑시키고, 그것을 송수신 처리 모듈 인터페이스부(522)를 통하여 송수신 처리 모듈(532)로 제공한다. 또한 송수신 처리 모듈(532)은 필요에 따라 데이터베이스와의 데이터 송수신을 위한 물리적 전송 인터페이스를 포함할 수 있다. 이러한 경우, 물리적 전송 인터페이스는 SS7 음성망 연동 인터페이스나 TCP/IP 망 연동 인터페이스 등의 통신 인터페이스를 포함한다.
가입자 정보 처리 모듈 매핑부(523)는 가입자로부터의 가입자 정보를 수신하여 가입자 데이터베이스를 생성하는 부분이다. 즉, 가입자 정보 처리 모듈 매핑부(523)는 하이 레벨 명령어 처리부(510)로부터 가입자 데이터베이스를 생성하기 위한 하이 레벨 명령어를 제공받아, 가입자 정보 처리 모듈(534)이 인식할 수 있는 디바이스 레벨 명령어로 매핑시키고, 그것을 가입자 정보 처리 모듈 인터페이스부(524)를 통하여 가입자 정보 처리 모듈(534)로 제공한다.
소프트웨어 정보 처리 모듈 매핑부(525)는 소프트웨어 제공자로부터 소프트웨어 및 가입자조건을 수신하여 소프트웨어 데이터베이스를 생성하는 부분이다. 즉, 소프트웨어 정보 처리 모듈(525)는 하이 레벨 명령어 처리부(510)로부터 소프트웨어 데이터베이스를 생성하기 위한 하이 레벨 명령어를 제공받아, 소프트웨어 정보 처리 모듈(536)이 인식할 수 있는 디바이스 레벨 명령어로 매핑시키고, 그것을 소프트웨어 정보 처리 모듈 인터페이스부(526)를 통하여 소프트웨어 정보 처리 모듈(536)로 제공한다.
소프트웨어 제공 모듈 매핑부(527)는 가입자 조건에 맞는 소프트웨어의 추출하여 가입자에게 상기 소프트웨어를 제공하는 부분이다. 즉, 소프트웨어 제공 모듈 매핑부(527)는 하이 레벨 명령어 처리부(510)로부터 가입자 조건에 맞는 소프트웨어를 추출하여 제공하기 위한 하이 레벨 명령어를 제공받아, 소프트웨어 제공 모듈(538)이 인식할 수 있는 디바이스 레벨 명령어로 매핑시키고, 그것을 소프트웨어 제공 모듈 인터페이스부(528)를 통하여 소프트웨어 제공 모듈(538)로 제공한다.
도 6은 본 발명의 일 실시예에 따른 OTA-SD 방식으로 조건에 부합하는 소프트웨어 제공 서비스를 위해 필요한 응용 프로그램이 설치될 단말기의 모바일 플랫폼의 구조를 나타낸 도면이다.
도 6을 참조하면, 모발일 플랫폼은 이동 통신 단말기 하드웨어(601), 단말기 기본 소프트웨어(603), HAL(Handset Application Layer, 605), 런 타임 엔진(Run Time Engine, 607), 기본 API(609), API 관리자(611), 응용 프로그램 관리자(613), 확장 API(615) 및 응용 프로그램(617)을 포함하고 있다.
이동 통신 단말기 하드웨어(601)는 핸드폰, PDA, PDA폰, 스마트폰 등과 같이 휴대 가능한 모든 이동 통신 단말 또는 휴대 단말을 포함할 수 있다. 단말기 기본 소프트웨어(603)는 단말기 기본 동작을 위한 소프트웨어, LCD 드라이버, KPD 드라이버 및 Serial 드라이버를 포함한다. HAL(605)은 플랫폼의 하드웨어 독립성을 유지하기 위한 추상화 계층으로 상위 계층들이 HAL 위에서 이동 통신 단말기 하드웨어(601)와 단말기 기본 소프트웨어(603)와 무관하게 동작할 수 있는 독립성을 지원한다.
기본 API(609)는 응용프로그램 개발자가 사용하는 플랫폼에서 지원하는 기본 API 모음이다. 상기 기본 API(609)는 C API 및 자바 API를 포함하고 있어 프로그램 개발자들의 편의를 제공할 수 있다. API 관리자(611)는 플랫폼의 기본 API(609)와 확장 API(615)를 갱신, 추가하는 기능을 수행한다. 또한 상기 API 관리자(611)는 응용 프로그램 관리자(613)도 다운로드할 수 있는 기능을 제공한다. 응용 프로그램 관리자(613)는 응용 프로그램(617)의 정보 보기, 다운로드, 설치, 실행, 삭제, 보안관리 등 전반적인 관리 기능을 수행한다. 확장 API(615)는 모발일 플랫폼의 표준화가 가능한 후보가 되는 API의 모음으로, 다양한 서비스 제공을 위한 API 모음을 제공한다.
응용 프로그램(617)은 모발일 플랫폼이 탑재된 단말기에 설치되어 단말기 환경이나 단말기 기본 소프트웨어와는 무관하게 동작될 수 있는 어플리케이션을 말한다. 상기 응용 프로그램은 본 발명의 일 실시예에 따른 가입자 기반 소프트웨어 제공에 관한 어플리케이션을 포함할 수 있다.
도 7a 내지 도 7e는 본 발명의 바람직한 일 실시예에 따른 OTA-SD 방식으로 조건에 부합하는 소프트웨어 제공에 관한 어플리케이션을 실행하는 절차에서 단말기의 화면 예시도이다.
도 7a 내지 도 7e를 참조하면, 먼저 가입자가 소프트웨어 또는 정보를 제공받기 위하여 적어도 하나의 단말기의 키를 입력하여 소프트웨어 제공 어플리케이션을 구동시킨다. 이때 단말기는 소프트웨어 제공 어플리케이션 실행 화면(701)을 표시부에 출력시킨다. 이후, 상기 단말기는 서비스 목록 화면(703)을 표시부에 출력하여 상기 가입자에게 보여준다. 상기 목록에는 가입자 정보 변경, 커뮤니티 가입, 소프트웨어 받기, 정보 보기 등이 포함될 수 있다.
가입자가 커뮤니티 가입을 위하여 상기 커뮤니티 가입 목록을 지정하여 단말기의 선택 버튼을 입력하는 경우, 상기 단말기는 커뮤니티 목록 화면(705)을 단말기의 표시부에 출력한다. 상기 가입자는 가입을 원하는 커뮤니티를 지정하여 선택버튼을 입력하면 상기 단말기는 선택된 커뮤니티의 상세 정보와 함께 가입자의 커뮤니티 가입 여부를 묻는 화면(미도시)을 출력한다. 상기 가입자는 커뮤니티 가입을 원하는 경우 확인 버튼을 입력하여 해당 커뮤니티에 가입할 수 있다. 상기 가입자가 적어도 하나의 커뮤니티에 가입하는 경우 소프트웨어 제공 서버는 커뮤니티 가입 정보가 포함된 가입자 데이터베이스를 생성한다.
한편, 가입자가 본 발명의 바람직한 일 실시예에 따른 소프트웨어를 제공받기 위하여 서비스 목록 화면(703)에서 소프트웨어 받기 목록을 지정하여 선택 버튼을 입력하는 경우, 단말기는 소프트웨어 제공 서버로부터 소프트웨어 목록을 수신하여 소프트웨어 목록 화면(707)을 표시부에 출력한다. 상기 소프트웨어 목록은 소프트웨어 제공자로부터 제공받은 소프트웨어 중에서 가입자 조건을 만족하는 소프트웨어를 추출한 목록을 말한다. 상기 가입자는 상기 소프트웨어 목록 화면(707)에서 원하는 소프트웨어를 지정하여 선택 버튼을 입력하면, 상기 단말기는 상기 소프트웨어 제공 서버로부터 선택된 소프트웨어를 다운로드받는다.
한편, 가입자가 본 발명의 바람직한 다른 실시예에 따른 정보를 제공받기 위하여 서비스 목록 화면(703)에서 정보 보기를 지정하여 선택 버튼을 입력하는 경우, 단말기는 정보 목록 화면(709)를 표시부에 출력한다. 상기 정보 목록에는 커뮤니티, 날씨·생활, 뉴스 등이 포함될 수 있다. 또한 상기 정보 목록은 가입자 조건에 부합하는 정보로 소프트웨어 제공 서버로부터 제공 받을 수 있다.
도 8은 본 발명의 바람직한 일 실시예에 따른 가입자 정보에 대한 데이터베이스의 구조를 개략적으로 나타낸 도면이다.
도 8을 참조하면, 가입자 정보 데이터베이스는 이름(801), 전화 번호(803), 성별(805), 출생연월일(807), 지역(809), 직업(811), 취미(813), 커뮤니티(815) 등을 포함할 수 있다. 상기 가입자 정보는 후술할 식별 코드 값으로 저장되어 제공 받을 소프트웨어의 가입자 조건을 검색하는데 있어 비교 대상으로 사용될 수 있다.
도 9는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 정보에 대한 데이터베이스의 구조를 개략적으로 나타낸 도면이다.
도 9를 참조하면, 소프트웨어 정보 데이터베이스는 소프트웨어(901), 제공 업체(903), 가입자 조건(905) 등이 포함될 수 있다. 가입자 조건(905) 항목에는 상기 소프트웨어를 제공받을 가입자의 조건이 저장될 수 있다. 상기 조건에는 커뮤니티, 직업, 취미 등이 포함될 수 있다. 또한 상기 조건들은 AND 또는 OR 연산으로 설정될 수 있다. 상기 소프트웨어 정보는 후술할 식별코드로 저장되어 가입자 정보 식별 코드와 비교함으로써 가입자 조건을 검색하는데 사용될 수 있다.
도 10 내지 도 11b를 참조하여 가입자 조건에 부합하는 소프트웨어를 검색하여 추출하는 과정을 상세히 설명하도록 한다.
도 10은 본 발명의 바람직한 일 실시예에 따른 가입자 조건에 대한 데이터베이스를 나타낸 도면이다.
도 10을 참조하면, 가입자 조건에 대한 데이터베이스는 조건 필드 항목, 매치 종류 항목, 필드 값 항목 및 식별코드 항목을 포함한다.
조건 필드에는 성별, 지역, 생년월일, 직업, 취미, 커뮤니티 등이 포함될 수 있다. 또한 매치 종류는 완전 매치(Exact match), 키워드 매치(Keyword match), 범위 매치(Range match)를 포함한다. 본 발명의 실시예에서 성별, 지역 및 직업은 완전 매치이고, 생년월일은 범위 매치, 취미 및 커뮤니티는 키워드 매치로 설정되어 있다. 여기서 매치 형태는 가입자 또는 소프트웨어 제공자의 요청에 의하여 소프트웨어 제공 서버에 의해서 설정될 수 있다. 완전 매치는 당해 필드의 내용이 조건 값과 완전히 일치해야만 참으로 판단되는 것이고, 키워드 매치는 당해 필드가 조건 값의 내용을 포함하는 경우에 참으로 판단되는 것이고, 범위 매치는 당해 필드가 조건에 정한 범위 내에 속하는 경우에 참으로 판단되는 것이다.
여기서, 완전 매치인 경우에는 해당 조건 필드의 각 필드 값마다 식별 코드가 부여되며 가입자 조건 검색 과정에서 부여된 식별 코드가 완전히 일치하는 경우에 매치된 것으로 판단된다. 범위 매치 및 키워드 매치는 일반적인 매치 과정과 동일하므로 그 설명을 생략하기로 한다. 성별 조건 필드에 해당하는 필드 값으로 남자 및 여자가 있으며 각각에 부여된 식별 코드는 01, 10 이다. 각 식별 코드는 해당 조건 필드 내에서 유일한 값을 가진다. 조건 필드가 지역, 생년월일, 직업, 취미 및 커뮤니티인 경우에도 성별 조건 필드인 경우와 유사하므로 그 설명을 생략하기로 한다.
도 11a는 본 발명의 바람직한 일 실시예에 따른 매치 비트 스트링의 예를 나타낸 도면이다.
도 11a를 참조하면, 매치 비트 스트링은 가입자 정보 스트링(1101), 소프트웨어 정보 스트링(1103) 및 매치 결과 스트링(1105)을 포함한다. 상기 가입자 정보 스트링(1101)은 가입자의 성별, 지역, 직업, 취미, 커뮤니티 등의 정보를 가입자 조건 데이터베이스(도 10 참조)를 이용하여 변환한 값이다. 구체적으로 살펴보면 상기 가입자 정보 스트링(1101)은 가입자의 성별은 여자, 지역은 서울, 직업은 주부, 취미는 그림 그리기, 커뮤니티는 사진임을 나타낸다.
상기 소프트웨어 정보 스트링(1103)은 상기 소프트웨어를 제공하는 대상이 되는 가입자의 조건에 해당하는 가입자의 성별, 지역, 직업, 취미, 커뮤니티 등의 정보를 가입자 조건 데이터베이스(도 10 참조)를 참조하여 변환한 값이다. 상기 소프트웨어를 제공받을 가입자 조건을 구체적으로 살펴보면 성별은 남자, 지역은 서울, 직업은 학생, 취미는 그림 그리기, 커뮤니티는 낚시를 나타낸다.
상기 매치 결과 스트링(1105)은 상기 가입자 정보 스트링(1101)과 상기 소프트웨어 정보 스트링(1103)을 조건 필드별로 매치하여 참으로 판단되는 경우 1을 부여하고 참으로 판단되지 아니하는 경우 0을 부여한 매치 결과 값의 스트링을 말한다. 상기 매치 결과 스트링(1105)은 01010 값을 가지며 각 비트별로 F1, F2, F3, F4, F5로 표시하기로 한다.
도 11b는 본 발명의 바람직한 일 실시예에 따른 소프트웨어가 AND 또는 OR 연산에 의해 설정된 가입자 조건을 만족하는지 여부를 판단하는 방법을 나타낸 도면이다.
도 11b를 참조하면, 가입자 조건이 (F1 AND F2) OR F3 OR F4 OR F5로 설정되어 있는 경우 그 조건 값은 1(1107)이며 해당 소프트웨어가 가입자 조건을 만족하는 것을 의미한다. 한편 가입자 조건이 (F1 AND F2) AND F3 AND F4 AND F5로 설정되어 있는 경우 그 조건 값은 0(1109)이며 해당 소프트웨어가 가입자 조건을 만족하지 아니하는 것을 의미한다. 상기 F1, F2, F3, F4, F5는 상기 매치 결과 스트링(1105)의 각각의 값을 말한다.
상기 도 10 내지 도 11b에서 설명한 과정을 이용하여 소프트웨어 제공 서버는 가입자의 요구가 있는 경우 가입자 조건을 만족하는 소프트웨어를 추출하여 그 목록을 가입자의 단말기로 전송하여 준다.
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.