[go: up one dir, main page]

KR100712047B1 - Device detection and service discovery system and method for a mobile ad hoc communications network - Google Patents

Device detection and service discovery system and method for a mobile ad hoc communications network Download PDF

Info

Publication number
KR100712047B1
KR100712047B1 KR1020057007627A KR20057007627A KR100712047B1 KR 100712047 B1 KR100712047 B1 KR 100712047B1 KR 1020057007627 A KR1020057007627 A KR 1020057007627A KR 20057007627 A KR20057007627 A KR 20057007627A KR 100712047 B1 KR100712047 B1 KR 100712047B1
Authority
KR
South Korea
Prior art keywords
directory
delete delete
application
application directory
node
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020057007627A
Other languages
Korean (ko)
Other versions
KR20050063798A (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
Priority claimed from US10/284,135 external-priority patent/US6909721B2/en
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20050063798A publication Critical patent/KR20050063798A/en
Application granted granted Critical
Publication of KR100712047B1 publication Critical patent/KR100712047B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하기 위한 컴퓨터 시스템, 방법 및 컴퓨터 프로그램 생성물이 제공된다. 상기 방법은 부근의 장치들을 발견하기 위하여 상기 이동 애드 혹 통신 네트워크의 조회를 수행하는 단계를 포함한다. 상기 부근의 장치가 미들웨어 계층을 포함한다고 상기 조회가 나타내는 경우, 상기 방법은 상기 부근의 장치들 각각이 상기 미들웨어 계층을 포함하는지를 확인하는 단계를 더 포함한다. 상기 미들웨어 계층을 포함하는 상기 부근의 장치들 각각에 대해, 상기 방법은 상기 미들웨어 계층을 실행시켜 애플리케이션 및 서비스 발견을 수행하고, 애플리케이션들 및 서비스들을 개시하는 단계를 더 포함한다.A computer system, method and computer program product are provided for performing device detection and service discovery in a mobile ad hoc communication network. The method includes performing a query of the mobile ad hoc communication network to find nearby devices. If the query indicates that the nearby device includes a middleware layer, the method further includes identifying whether each of the nearby devices includes the middleware layer. For each of the nearby devices that include the middleware layer, the method further includes executing the middleware layer to perform application and service discovery and to initiate applications and services.

Description

이동 애드 혹 통신 네트워크를 위한 장치 검출과 서비스 발견 시스템 및 방법{Device detection and service discovery system and method for a mobile ad hoc communications network}Device detection and service discovery system and method for a mobile ad hoc communication network

관련된 출원에 대한 상호-참조Cross-Reference to the Related Application

특허증을 위한 본 출원은, 2002년 10월 31일에 미국 특허 및 상표청에 출원된, 발명의 명칭이, "이동 애드 혹 통신 네트워크를 위한 장치 검출과 서비스 발견 시스템 및 방법"인, 미국 특허 출원 번호 10/284,135에 대한 우선권을 청구하고 상기 출원을 참조로써 포함한다. 또한 특허증을 위한 본 출원은 2003년 9월 16일에 미국 특허 및 상표청에 출원된, 발명의 명칭이, "이동 애드 혹 통신 네트워크를 위한 장치 검출과 서비스 발견 시스템 및 방법"인, 미국 일부 계속(continuation-in-part) 특허 출원 번호 SS/XXX,YYY에 대한 우선권을 청구하고 상기 출원을 참조로써 포함한다. 또한 특허증을 위한 본 출원은 2003년 9월 16일에 미국 특허 및 상표청에 출원된, 발명의 명칭이, "동등-대-동등 애드 혹 통신 네트워크에서의 접속 제어 개선을 위한 메커니즘"인, 미국 특허 출원 번호 SS/XXX,YYY와 관련되며 상기 출원을 참조로써 포함한다. 또한 특허증을 위한 본 출원은 2003년 9월 16일에 미국 특허 및 상표청에 출원된, 발명의 명칭이, "동등-대-동등 애드 혹 통신 네트워크에서의 애플리케이션 제어"인, 미국 특허 출원 번호 SS/XXX,YYY와 관련되며 상기 출원을 참조로써 포함한다. 상기 양수인은 모 특허 출원, 상기 일부 계속 특허 출원 및 상기 관련된 특허 출원들의 양수인과 동일하다.This application for a patent is a US patent application, filed October 31, 2002, with the US Patent and Trademark Office, entitled "Device Detection and Service Discovery System and Method for Mobile Ad Hoc Communication Networks". Claims priority to No. 10 / 284,135 and includes the application by reference. This application for a patent is also part of the United States, filed September 16, 2003 with the US Patent and Trademark Office, entitled "Device Detection and Service Discovery System and Method for Mobile Ad-hoc Communication Networks." (continuation-in-part) Claims priority to patent application No. SS / XXX, YYY and includes this application by reference. This application for a patent is also filed with the U.S. Patent and Trademark Office on September 16, 2003, entitled US "Mechanism for Improving Access Control in Equal-to-Equal Ad Hoc Communication Networks." It is associated with patent application number SS / XXX, YYY and is incorporated by reference. This application for a patent is also filed with US Patent and Trademark Office on September 16, 2003, US Patent Application No. SS, entitled “Application Control in Equal-to-Equal Ad Hoc Communication Network”. / XXX, YYY and the above application is incorporated by reference. The assignee is the same as the assignee of the parent patent application, the partial patent application and the related patent applications.

개시된 발명은 일반적으로 무선 통신 네트워크에 접속된 장치들간의 통신에 관한 것이다. 특히, 상기 개시된 발명은 이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하기 위한 시스템 및 방법이다.The disclosed invention generally relates to communication between devices connected to a wireless communication network. In particular, the disclosed invention is a system and method for performing device detection and service discovery in a mobile ad hoc communication network.

단거리 무선 시스템들은 백미터 미만의 범위를 가지지만, 더 긴 거리를 넘어 통신을 제공하도록 인터넷에 접속할 수 있다. 단거리 무선 시스템들은 무선 개인 영역 네트워크(PAN: Personal Area Network) 및 무선 랜(LAN: Local Area Network)를 포함하지만, 이에 한정되지는 않는다. 무선 PAN은 10 미터의 전형적인 범위를 지닌 저비용, 저전력 무선 장치들을 사용한다. 무선 PAN 기술의 예는 블루투스 표준이다. 상기 블루투스 표준은 2.4 GHz 산업, 과학 및 의료(ISM) 대역에서 동작하고 1 Mbps의 피크 무선-링크 속도를 제공하며 개인 휴대 정보 단말기 또는 이동 전화와 같은 개인적인, 휴대용 전자 장치들에서 사용하기에 충분히 낮은 전력 소비를 제공한다. 상기 블루투스 통신 프로토콜 및 장치 동작 원리에 대한 설명은 1999년 12월, 블루투스 특정 관심 그룹, 블루투스 표준 명세, 버전 1.0B, 볼륨 1 및 2에 있다. 무선 랜은 무선 PAN보다 더 비용이 들지만, 더 긴 범위를 지닌다. 무선 랜 기술의 예는 IEEE 802.11 무선 랜 표준 및 하이퍼랜(HIPERLAN) 표준이다. 상기 하이퍼랜 표준은 5GHz 무면허-국가 정보 기반(U-NII) 대역에서 동작하고 10 내지 100 Mbps의 피크 무선-링크 속도를 제공한다.Short-range wireless systems have a range of less than one hundred meters, but can connect to the Internet to provide communication over longer distances. Short-range wireless systems include, but are not limited to, wireless personal area networks (PANs) and local area networks (LANs). Wireless PANs use low cost, low power wireless devices with a typical range of 10 meters. An example of wireless PAN technology is the Bluetooth standard. The Bluetooth standard operates in the 2.4 GHz industrial, scientific and medical (ISM) band, provides a peak radio-link speed of 1 Mbps and is low enough for use in personal, portable electronic devices such as personal digital assistants or mobile phones. Provide power consumption. A description of the Bluetooth communication protocol and device operation principles is given in December 1999, Bluetooth Specific Interest Group, Bluetooth Standard Specification , Version 1.0B, Volumes 1 and 2. WLANs are more expensive than wireless PANs, but have a longer range. Examples of wireless LAN technology are the IEEE 802.11 wireless LAN standard and the HIPERLAN standard. The HyperLAN standard operates in the 5 GHz Unlicensed-National Information Base (U-NII) band and provides a peak radio-link speed of 10 to 100 Mbps.

애드 혹 네트워크(ad hoc network)는 정보를 교환하기에 물리적으로 충분히 근접해 있는 무선 장치들의 임의의 모음을 포함하는 단거리 무선 시스템이다. 애드 혹 네트워크는 무선 장치들이 나머지 무선 장치들의 부근에 들어가거나 떠날 때 상기 네트워크에 참가하고 상기 네트워크를 떠나는 무선 장치들을 가지고 신속하게 구성된다. 애드 혹 네트워크는 또한 하나 이상의 액세스 포인트들, 즉 다른 네트워크들에 대한 게이트웨이 접속들 또는 독립형 서버로서 동작하는 정지 무선 장치들을 포함할 수 있다.An ad hoc network is a short-range wireless system that includes any collection of wireless devices that are physically close enough to exchange information. An ad hoc network is quickly configured with wireless devices joining and leaving the network as wireless devices enter or leave the vicinity of the remaining wireless devices. The ad hoc network may also include stationary wireless devices that operate as one or more access points, ie gateway connections to other networks or as a standalone server.

장래에, 상기 블루투스 표준은 멀티-홉(multi-hop) 애드 혹 네트워크 또는 스캐터넷(scatternet)을 형성하기 위하여 다수의 피코넷들(piconets)의 상호접속을 지원할 것 같다. 스캐터넷에서, 접속하는 장치는 상이한 피코넷들간에 트래픽을 전송한다. 상기 접속하는 장치는 한 피코넷에서 마스터 장치 역할을 할 수 있지만, 다른 피코넷에서 슬레이브 장치 또는 마스터 장치 역할을 할 수 있다. 따라서, 상기 접속하는 장치들은 상기 타이밍 및 홉 시퀀스를 각각의 피코넷에 적응시키고 아마도 그들이 맡은 역할들을 마스터 장치에서 슬레이브 장치로 변경함으로써 스캐터넷을 포함하는 상기 피코넷들에 참가한다.In the future, the Bluetooth standard is likely to support the interconnection of multiple piconets to form a multi-hop ad hoc network or scatternet. In a scatternet, the connecting device transmits traffic between different piconets. The connecting device may serve as a master device in one piconet, but may act as a slave device or master device in another piconet. Thus, the connecting devices join the piconets, including the scatternet, by adapting the timing and hop sequence to each piconet and perhaps changing their roles from master device to slave device.

블루투스 장치는 이동 전화, 개인용 또는 랩톱 컴퓨터, 무선-주파수 식별 태그 및 개인 휴대 정보 단말기(PDA), 페이저 또는 휴대용-컴퓨팅 장치와 같은 개인용 전자 장치를 포함하지만 이에 한정되지는 않는다. 각 블루투스 장치는 그들이 상기 네트워크의 통신 범위에 들어가고 상기 통신 범위를 떠날 때 다른 블루투스 장치들을 발견하도록 설계된 애플리케이션 및 운영 체제 프로그램들을 포함한다. 클라이언트 역할의 요구하는 블루투스 장치 및 서버 역할의 응답하는 블루투스 장치는 두개의 장치들간에 링크를 설정한다. 상기 요구하고 응답하는 블루투스 장치는 상기 링크 및 서비스 발견 프로토콜을 사용하여 상기 다른 블루투스 장치에 의해 제공된 서비스들 및 상기 서비스들에 접속하는 방법을 발견한다.Bluetooth devices include, but are not limited to, mobile electronic devices such as mobile phones, personal or laptop computers, radio-frequency identification tags and personal digital assistants (PDAs), pagers, or portable-computing devices. Each Bluetooth device includes applications and operating system programs designed to discover other Bluetooth devices as they enter and leave the communication range of the network. The requesting Bluetooth device in the client role and the responding Bluetooth device in the server role establish a link between the two devices. The requesting and responding Bluetooth device discovers the services provided by the other Bluetooth device and how to access the services using the link and service discovery protocol.

종래 기술의 시스템들은 서비스 발견 프로토콜들에 대한 유사한 패턴의 행동 을 따른다. 설명 언어 및 적합한 어휘를 사용하여 생성된, 서비스 설명은 광고되거나 문의 매칭에 이용가능하게 된다. 몇몇 종래 기술의 시스템들은 상기 설명을 디렉토리에 푸싱함으로써 그리고 광고주들에게 상기 디렉토리를 발견하도록 요구함으로써 상기 서비스 설명을 광고한다. 다른 종래 기술의 시스템들은 상기 설명들이 동등-대-동등 발견에 이용가능하게 함으로써 상기 서비스 설명을 광고한다. 상기 서비스 설명을 발견할 필요가 있는 클라이언트 장치는 문의 언어 및 매칭 어휘를 사용하여 문의를 작성하고 문의 프로토콜 또는 비집중화된 문의-처리 서버를 사용하여 상기 문의를 전달한다.Prior art systems follow a similar pattern of behavior for service discovery protocols. The service description, generated using the description language and appropriate vocabulary, is advertised or made available for query matching. Some prior art systems advertise the service description by pushing the description to a directory and asking advertisers to find the directory. Other prior art systems advertise the service description by making the descriptions available for equal-to-equality discovery. A client device that needs to find the service description composes a query using a query language and matching vocabulary and forwards the query using a query protocol or a decentralized query-processing server.

종래 기술의 시스템들에서의 서비스 발견 프로토콜들은 조회 메시지들을 송신하고 조회 메시지들에 응답하는 것을 필요로 한다. 아무런 다른 장치도 존재하지 않는 경우, 상기 조회 메시지들은 헛되이 송신된다. 과도한 전력 소비를 회피하기 위하여, 종래 기술의 시스템들은 전형적으로 관심 대상의 다른 장치가 존재하는 경우 인간 사용자에게 수동으로 장치 검출을 개시하도록 요구한다. 예를 들어, 인간 사용자는 데이터 통신을 처리하기 위하여 셀룰러 전화를 랩톱 컴퓨터에 접속시킬 때 또는 디지털 오디오를 전달하기 위하여 무선 헤드셋을 랩톱 컴퓨터에 접속시킬 때 수동으로 장치 검출을 개시한다. 상기 종래 기술의 시스템들은 3가지 가정들에 의존한다. 첫째, 애플리케이션은 그것의 서비스들의 존재가 보장되기 때문에 자유롭게 시작될 수 있다. 둘째, 애플리케이션은 그것이 우선 서비스를 요구하는 경우 서비스 발견을 수행한다. 셋째, 상기 네트워크의 구성은 상기 애플리케이션의 수명동안 변경되지 않는다.Service discovery protocols in prior art systems require sending inquiry messages and responding to the inquiry messages. If no other device is present, the inquiry messages are sent in vain. To avoid excessive power consumption, prior art systems typically require a human user to manually initiate device detection when there is another device of interest. For example, a human user manually initiates device detection when connecting a cellular telephone to a laptop computer to handle data communication or when connecting a wireless headset to a laptop computer to deliver digital audio. The prior art systems rely on three assumptions. First, an application can be started freely because the existence of its services is guaranteed. Second, the application performs service discovery if it first requires a service. Third, the configuration of the network does not change during the life of the application.

따라서, 과도한 전력 소비를 회피하고 한 장치에 존재하는 애플리케이션이 상기 애드 혹 통신 네트워크내의 나머지 장치들 중 어떤 장치에 존재하는 어떤 다른 자원 또는 대응 애플리케이션을 자동으로 발견하도록 허용하는 장치 검출 및 서비스 발견 프로토콜에 대한 요구가 존재한다. 상기 프로토콜은 인간 사용자에게 상기 상대방 애플리케이션 또는 다른 자원을 발견하기 위하여 수동으로 장치 검출을 개시하도록 요구하지 않는다. 더욱이, 상기 프로토콜은 특정 서비스의 존재가 보장되지 않고, 장치들이 자주 상기 네트워크에 들어가고 상기 네트워크를 떠나기 때문에 상기 네트워크의 구성이 동적인 네트워크 환경을 수용할 것이다. 본 개시된 발명은 이러한 요구를 해결한다.Thus, in the device detection and service discovery protocol, which avoids excessive power consumption and allows an application present on one device to automatically discover any other resource or corresponding application present on any of the remaining devices in the ad hoc communication network. There is a need. The protocol does not require a human user to manually initiate device detection to discover the counterpart application or other resource. Moreover, the protocol will not guarantee the presence of a particular service, and the configuration of the network will accommodate a dynamic network environment since devices frequently enter and leave the network. The presently disclosed invention addresses this need.

이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하기 위한 컴퓨터 시스템, 방법 및 컴퓨터 프로그램 생성물이 제공된다. 상기 방법은 부근의 장치들을 발견하기 위하여 상기 이동 애드 혹 통신 네트워크의 조회를 수행하는 단계를 포함한다. 상기 부근의 장치들이 미들웨어 계층을 포함할 수 있다고 상기 조회가 나타내는 경우, 상기 방법은 상기 부근의 장치들 각각에 대한 접속을 생성하는 단계 및 상기 부근의 장치들 각각이 상기 미들웨어 계층을 포함하는지를 확인하는 단계를 더 포함한다. 상기 미들웨어 계층을 포함하는 상기 부근의 장치들 각각에 대해, 상기 방법은 애플리케이션 및 서비스 발견을 수행하고, 애플리케이션들 및 서비스들을 개시하도록 상기 미들웨어 계층을 실행시키는 단계를 더 포함한다.A computer system, method and computer program product are provided for performing device detection and service discovery in a mobile ad hoc communication network. The method includes performing a query of the mobile ad hoc communication network to find nearby devices. If the inquiry indicates that the devices in the vicinity may include a middleware layer, the method may include creating a connection to each of the devices in the vicinity and verifying that each of the devices in the vicinity includes the middleware layer. It further comprises a step. For each of the nearby devices including the middleware layer, the method further includes executing the middleware layer to perform application and service discovery and to initiate applications and services.

일 실시예에서, 상기 이동 애드 혹 통신 네트워크는 블루투스 네트워크이다. 상기 조회를 수행하는 것은 블루투스 조회 명령을 송신하는 것과 상기 장치가 상기 미들웨어 계층을 포함할 수 있다는 표시를 포함하는 블루투스 조회 결과 명령을 수신하는 것을 포함한다. 상기 미들웨어 계층을 포함할 수 있는 장치에 대한 접속을 생성하는 것은 상기 장치로 블루투스 페이징 요구 메시지를 송신하는 것과 블루투스 페이징 수락 메시지를 수신하는 것을 포함한다. 상기 장치가 상기 미들웨어 계층을 포함한다고 확인하는 것은 상기 장치로 인식 요구 메시지를 송신하는 것과 인식 응답 메시지를 수신하는 것을 포함한다. 애플리케이션 및 서비스 발견을 수행하도록 상기 미들웨어 계층을 실행시키는 것은 로컬 애플리케이션 디렉토리의 복사본을 지닌 장치로부터 통지 메시지를 수신하는 것과, 상기 로컬 및 결합된 애플리케이션 디렉토리의 비교에 기초하여 결합된 애플리케이션 디렉토리에 대한 갱신을 저장하는 것 및 상기 결합된 애플리케이션 디렉토리에 대한 갱신을 상기 블루투스 네트워크내의 각 장치로 송신하는 것을 포함한다. 더욱이, 상기 미들웨어 계층을 실행시키는 것은 상기 결합된 애플리케이션 디렉토리내의 참조에 기초하여 로컬 애플리케이션을 개시하는 것과 상기 로컬 애플리케이션을 상기 장치상에서 실행하고 있는 상대방 애플리케이션에 접속시키는 것을 포함한다.In one embodiment, the mobile ad hoc communication network is a Bluetooth network. Performing the inquiry includes sending a Bluetooth inquiry command and receiving a Bluetooth inquiry result command including an indication that the device may include the middleware layer. Creating a connection to a device that may include the middleware layer includes sending a Bluetooth paging request message to the device and receiving a Bluetooth paging accept message. Confirming that the device includes the middleware layer includes sending a recognition request message to the device and receiving a recognition response message. Running the middleware layer to perform application and service discovery may include receiving a notification message from a device having a copy of a local application directory, and updating the combined application directory based on a comparison of the local and combined application directories. Storing and sending an update to the combined application directory to each device in the Bluetooth network. Moreover, executing the middleware layer includes launching a local application based on a reference in the combined application directory and connecting the local application to a counterpart application running on the device.

첨부한 도면들은 구조 및 동작 양자에 대해, 이동 애드 혹 통신 네트워크를 위한 장치 검출 및 서비스 발견 시스템의 상세를 가장 잘 나타낸다. 본 도면들내의 동일한 참조 번호들 및 지시들은 동일한 요소들을 나타낸다.The accompanying drawings best illustrate details of device detection and service discovery systems for mobile ad hoc communication networks, both in structure and operation. Like reference numbers and designations in the drawings indicate like elements.

도 1은 본 발명의 일 실시예에 따라, 이동 애드 혹 통신 네트워크를 포함하는 장치들의 상호작용을 도시한 네트워크도이다.1 is a network diagram illustrating interaction of devices including a mobile ad hoc communication network, in accordance with an embodiment of the present invention.

도 2a는 본 발명의 일 실시예에 따라, 도 1에 도시된 서버(110)를 포함하는 하드웨어 및 소프트웨어 구성 요소들을 도시한 블록도이다.FIG. 2A is a block diagram illustrating hardware and software components including server 110 shown in FIG. 1, in accordance with an embodiment of the invention.

도 2b는 본 발명의 일 실시예에 따라, 도 1에 도시된 단말기(120)를 포함하는 하드웨어 및 소프트웨어 구성 요소들을 도시한 블록도이다.FIG. 2B is a block diagram illustrating hardware and software components including the terminal 120 shown in FIG. 1, according to one embodiment of the invention.

도 3a는 이동 애드 혹 통신 네트워크를 위한 장치 검출 및 서비스 발견을 수행하는 서버(110)의 일 실시예의 흐름도이다.3A is a flow diagram of one embodiment of a server 110 that performs device detection and service discovery for a mobile ad hoc communication network.

도 3b는 이동 애드 혹 통신 네트워크를 위한 장치 검출 및 서비스 발견을 수행하는 단말기(120)의 일 실시예의 흐름도이다.3B is a flowchart of one embodiment of a terminal 120 performing device detection and service discovery for a mobile ad hoc communication network.

도 4a는 단말기가 이동 애드 혹 통신 네트워크에 들어가기 전의 데이터 흐름의 예시적인 블록도이다.4A is an exemplary block diagram of a data flow before a terminal enters a mobile ad hoc communication network.

도 4b는 단말기가 이동 애드 혹 통신 네트워크에 들어간 이후의 도 4a의 예시적인 블록도를 도시한 것이다.4B shows an exemplary block diagram of FIG. 4A after a terminal enters a mobile ad hoc communication network.

도 5는 이동 애드 혹 통신 네트워크에서 단말기 X와 단말기 Y간의 통신 세션의 설정동안 메시지 흐름을 도시한 프로세스의 일 실시예의 흐름도이다.5 is a flow diagram of one embodiment of a process illustrating a message flow during the establishment of a communication session between terminal X and terminal Y in a mobile ad hoc communication network.

도 1은 본 발명의 일 실시예에 따라, 이동 애드 혹 통신 네트워크를 포함하는 장치들의 상호작용을 도시한 네트워크도이다. 일 실시예에서, 상기 이동 애드 혹 통신 네트워크는 하나의 마스터 장치 및 7개까지의 능동 슬레이브 장치들을 포함하는 블루투스 피코넷이다. 도 1에 도시된 바와 같이, 피코넷(100)은 서버(110) 및 5개의 단말기(120) 인스턴스들을 포함한다. 서버(110)는 네트워크 클록을 유지하고 단말기(120)의 각 인스턴스에 대한 통신 관리자이다. 서버(110)는 전형적으로 단말기(120)의 인스턴스와의 데이터 교환을 개시한다. 단말기(120)의 두개의 인스턴스들은 전형적으로 상기 서버(110)를 통해 통신하지만, 단말기(120)의 두개의 인스턴스들이 직접 통신하는 경우, 한 인스턴스는 서버 또는 마스터의 역할을 맡을 것이고, 다른 인스턴스는 클라이언트 또는 슬레이브의 역할을 맡을 것이다.1 is a network diagram illustrating interaction of devices including a mobile ad hoc communication network, in accordance with an embodiment of the present invention. In one embodiment, the mobile ad hoc communication network is a Bluetooth piconet including one master device and up to seven active slave devices. As shown in FIG. 1, the piconet 100 includes a server 110 and five terminal 120 instances. Server 110 maintains a network clock and is a communications manager for each instance of terminal 120. Server 110 typically initiates data exchange with an instance of terminal 120. Two instances of terminal 120 typically communicate through the server 110, but if two instances of terminal 120 communicate directly, one instance will assume the role of server or master and the other instance It will assume the role of client or slave.

상기 이동 애드 혹 통신 네트워크내의 각 장치는 단말기 장치 또는 서버 장치의 역할을 맡을 것이다. 단말기 장치는 단일 사용자가 동작하는 서비스들의 소비자이다. 단말기 장치는 이동 전화 또는 PDA와 같은 장치들을 포함한다. 서버는 전형적으로 정지 장치이고 서비스들만을 생성한다. 서버 장치는 그들의 서비스들을 사용하기 위하여 그들 주위에 핫스폿(hotspot)을 생성한다. "핫스폿"은 장치들을 검출하고 상기 서버에 호스팅된 애플리케이션들에 의해 제공된 서비스들을 발견하기 위하여 상기 서버 장치에 의해 제공된 무선 통신 가능 구역을 지칭한다. 상기 서버 장치가 정지하여 있지 않은 경우, 상기 네트워크내의 상기 단말기 장치들 중 하나는 애플리케이션 디렉토리 서버의 역할을 맡을 것이고 상기 네트워크내의 나머 지 단말기 장치들에 대한 장치 검출 및 서비스 발견 기능들을 수행할 것이다. 본 개시된 발명은 이러한 단말기 장치들, 애플리케이션 디렉토리 서버들 및 단말기들 사이에서 두가지 역할들을 도입하는데, 애플리케이션 디렉토리 서버들은 장치 검출 및 서비스 발견시 단말기들의 역할을 한다. 핫스폿을 지닌 정지 서버들이 존재하는 경우, 서버들은 전형적으로 애플리케이션 디렉토리 서버들로서 동작하지만, 장치 검출 및 서비스 발견은 이러한 정지 서버없이 가능한데 왜냐하면 상기 단말기들 중 하나는 상기 애플리케이션 디렉토리 서버 의무를 맡을 것이기 때문이다.Each device in the mobile ad hoc communication network will act as a terminal device or server device. The terminal device is a consumer of services for which a single user operates. Terminal devices include devices such as mobile phones or PDAs. The server is typically a stationary device and only creates services. The server device creates hotspots around them to use their services. "Hotspot" refers to a wireless coverage area provided by the server device for detecting devices and discovering services provided by applications hosted on the server. If the server device is not stationary, one of the terminal devices in the network will assume the role of an application directory server and perform device detection and service discovery functions for the other terminal devices in the network. The presently disclosed invention introduces two roles between such terminal devices, application directory servers and terminals, which act as terminals in device detection and service discovery. If there are still servers with hotspots, the servers typically operate as application directory servers, but device detection and service discovery are possible without such a stop server because one of the terminals will assume the application directory server obligation. .

본 개시된 발명은 애플리케이션을 서버-기반 애플리케이션, 단말기-대-단말기 애플리케이션, 포그라운드 애플리케이션, 백그라운드 애플리케이션 또는 일반 애플리케이션 요소로서 범주화한다. 서버-기반 애플리케이션은 서비스를 생성하는 서버를 필요로 한다. 단말기-대-단말기 애플리케이션은 서버 장치의 존재없이 서비스를 구현하기 위하여 적어도 두개의 단말기 장치들을 필요로 한다. 포그라운드 애플리케이션은 사용자가 상기 단말기 장치의 사용자 인터페이스를 통해 액세스하는 단말기 장치에 상주하는 애플리케이션이다. 백그라운드 애플리케이션은 사용자에 의한 어떤 개입없이 시작될 수 있는 단말기 장치에 상주하는 애플리케이션이다. 일반 애플리케이션 요소는 독립형 애플리케이션 또는 다른 애플리케이션의 요소로서 사용될 수 있다.The presently disclosed invention categorizes applications as server-based applications, terminal-to-terminal applications, foreground applications, background applications or generic application elements. Server-based applications require a server to create a service. Terminal-to-terminal applications require at least two terminal devices to implement a service without the presence of a server device. A foreground application is an application that resides in a terminal device that a user accesses through the user interface of the terminal device. Background applications are applications that reside on a terminal device that can be started without any intervention by the user. Generic application elements can be used as elements in standalone applications or other applications.

애플리케이션은 능동, 수동, 신규 또는 거절로서 더 범주화될 수 있다. 능동 애플리케이션은 상기 단말기에 상주하는 (즉 메모리에 저장된) 포그라운드 또는 백그라운드 애플리케이션이다. 수동 애플리케이션은 상기 단말기에 상주하지만, 아직 시작되지 않았다. 다른 실시예에서, 상기 수동 애플리케이션이 시작되지만, 동일한 애플리케이션의 다른 인스턴스들을 능동적으로 찾지는 않는다. 신규 애플리케이션은 아직 상기 단말기에 상주하지 않지만, 장래에 존재할 수 있다. 거절된 애플리케이션은 상기 단말기에 상주하지 않고 사용자에 의해 상기 단말기에 절대로 상주하지 않아야 하는 애플리케이션으로서 표시된다. 다른 실시예에서, 상기 거절된 애플리케이션은 상기 단말기에 한번 상주했지만, 후속적으로 삭제되어 거절된 것으로 표시되었다. 또 다른 실시예에서, 상기 거절된 애플리케이션은 절대로 상기 단말기에 상주하지 않지만, 사용자가 거절된 것으로서 표시한 애플리케이션의 유형이다.Applications can be further categorized as active, passive, new or rejected. An active application is a foreground or background application that resides on the terminal (ie, stored in memory). Passive applications reside on the terminal, but have not yet started. In another embodiment, the passive application is started but does not actively find other instances of the same application. The new application does not yet reside on the terminal, but may exist in the future. Rejected applications are marked as applications that do not reside on the terminal and must never reside on the terminal by the user. In another embodiment, the rejected application resided once on the terminal but was subsequently deleted and marked as rejected. In another embodiment, the rejected application never resides on the terminal, but is a type of application that the user has marked as rejected.

이동 애드 혹 통신 네트워크에서의 서비스 발견은 상주하는 애플리케이션과 로딩되지 않은 애플리케이션을 구별한다. 상주하는 애플리케이션은 상기 단말기 메모리에 저장되고 포그라운드 애플리케이션 또는 백그라운드 애플리케이션으로서 로딩된다. 로딩되지 않은 애플리케이션은 상기 단말기에 아직 저장되거나 로딩되지 않지만, 사용자에 의해 수락되었다. 전형적으로, 애플리케이션이 이전에 사용되었지만, 공간을 이용하기 위하여 중복기록된 경우, 상기 애플리케이션은 로딩되지 않은 것으로 간주된다. 따라서, 로딩되지 않은 애플리케이션을 시작하는 것은 우선 상기 애플리케이션을 다운로드하는 것을 필요로 할 수 있다.Service discovery in a mobile ad hoc communication network distinguishes between resident and unloaded applications. The resident application is stored in the terminal memory and loaded as a foreground application or a background application. An unloaded application has not yet been stored or loaded on the terminal but has been accepted by the user. Typically, if an application was previously used but overwritten to use space, the application is considered not loaded. Thus, starting an unloaded application may require first downloading the application.

상기 단말기 장치의 관점으로부터 서비스 발견은 애플리케이션의 상태를 능동 상주 애플리케이션, 능동 로딩되지 않은 애플리케이션, 수동 상주 애플리케이션, 수동 로딩되지 않은 애플리케이션, 거절된 애플리케이션 또는 신규 애플리케이션으로서 범주화할 것을 필요로 한다. 능동 상주 애플리케이션은 상기 단말기에 로 딩되고 동등들(peers), 서버들 또는 클라이언트들을 찾는다. 능동 로딩되지 않은 애플리케이션은 상기 단말기에 로딩되지 않지만, 관심있는 것으로 발견되는 경우 자동으로 다운로드될 수 있는 이러한 상대방 애플리케이션들을 여전히 찾고 있다. 수동 상주 애플리케이션은 상기 단말기에 로딩되지만, 상대방 애플리케이션들을 찾지 않는다. 수동 로딩되지 않은 애플리케이션은 상기 단말기에 로딩되지 않지만, 사용자에 의해 한번 수락되었다. 거절된 애플리케이션은 사용자가 상기 단말기 장치로부터 제외하도록 요구한 애플리케이션이다. 신규 애플리케이션은 상기 단말기 장치에 로딩되지 않지만, 사용자는 예를 들어 이전 서버에서 애플리케이션을 보았을 수 있다.Service discovery from the terminal device's perspective requires categorizing the state of the application as an active resident application, an active unloaded application, a passive resident application, a passively unloaded application, a rejected application or a new application. An active resident application is loaded on the terminal and finds peers, servers or clients. Applications that are not active loaded are still looking for these counterpart applications that are not loaded on the terminal but can be automatically downloaded if found to be of interest. Passive resident applications are loaded into the terminal but do not find counterpart applications. Applications that are not manually loaded are not loaded into the terminal but have been accepted once by the user. The rejected application is the application that the user has requested to exclude from the terminal device. The new application is not loaded on the terminal device, but the user may have seen the application on the previous server, for example.

도 2a는 본 발명의 일 실시예에 따라, 도 1에 도시된 서버(110)를 포함하는 하드웨어 및 소프트웨어 구성 요소들을 도시한 블록도이다. 서버(110)는 범용 무선 장치이다. 버스(200)는 키패드(201), 디스플레이(202), 중앙 처리 장치(CPU)(203) 및 무선 주파수(RF) 어댑터(204)를 메모리(210)에 연결하는 통신 매체이다. RF 어댑터(204)는 무선 링크를 통해 단말기(120)에 접속하고 서버(110)와 단말기(120)간의 네트워크 트래픽을 용이하게 하는 메커니즘이다.FIG. 2A is a block diagram illustrating hardware and software components including server 110 shown in FIG. 1, in accordance with an embodiment of the invention. Server 110 is a general purpose wireless device. Bus 200 is a communication medium connecting keypad 201, display 202, central processing unit (CPU) 203, and radio frequency (RF) adapter 204 to memory 210. The RF adapter 204 is a mechanism that connects to the terminal 120 via a wireless link and facilitates network traffic between the server 110 and the terminal 120.

CPU(203)는 메모리(210)에 상주하거나 상기 메모리(210)상에서 동작하는 각 컴퓨터 프로그램을 포함하는 동작 명령들의 시퀀스들을 실행함으로써 본 개시된 발명의 방법들을 수행한다. 메모리(210)는 운영 체제 소프트웨어(211), 애플리케이션 프로그램들(212) 및 미들웨어 소프트웨어(220)를 포함한다. 운영 체제 소프트웨어(211)는 키패드(201), 디스플레이(202), RF 어댑터(204)를 제어하고 메모리(210)의 관리를 제어한다. 애플리케이션 프로그램들(212)은 사용자와 서버(110)간의 상호 작용들을 제어한다. 미들웨어 소프트웨어(220)는 서버(110)상에서 실행되는 애플리케이션 프로그램이 단말기(120)상에서 실행되는 상대방 애플리케이션을 찾고 상기 상대방 애플리케이션과 통신하는 것을 도와주는 애플리케이션 프로그램 인터페이스(API)(221)를 포함한다. 각 애플리케이션을 신속히 찾기 위하여, 미들웨어 소프트웨어(220)는 또한 피코넷(100)내의 각 장치에 상주하는 각 애플리케이션에 의해 맡겨진 역할을 추적하기 위한 애플리케이션 디렉토리(230)를 포함한다.The CPU 203 performs the methods of the present invention by executing sequences of operational instructions, including each computer program residing in or operating on the memory 210. The memory 210 includes operating system software 211, application programs 212 and middleware software 220. Operating system software 211 controls keypad 201, display 202, RF adapter 204 and controls management of memory 210. The application programs 212 control the interactions between the user and the server 110. The middleware software 220 includes an application program interface (API) 221 that helps an application program running on the server 110 find a counterpart application running on the terminal 120 and communicate with the counterpart application. To quickly find each application, middleware software 220 also includes an application directory 230 for tracking the roles assigned by each application residing on each device within piconet 100.

도 2b는 본 발명의 일 실시예에 따라, 도 1에 도시된 단말기(120)를 포함하는 하드웨어 및 소프트웨어 구성 요소들을 도시한 블록도이다. 단말기(120)는 범용 무선 장치이다. 버스(250)는 키패드(251), 디스플레이(252), 중앙 처리 장치(CPU)(253) 및 무선 주파수(RF) 어댑터(254)를 메모리(260)에 연결하는 통신 매체이다. RF 어댑터(254)는 무선 링크를 통해 서버(110) 또는 다른 단말기(120)에 접속하고 서버(110)와 단말기(120)간의 네트워크 트래픽을 용이하게 하는 메커니즘이다.FIG. 2B is a block diagram illustrating hardware and software components including the terminal 120 shown in FIG. 1, according to one embodiment of the invention. Terminal 120 is a general purpose wireless device. Bus 250 is a communication medium that connects keypad 251, display 252, central processing unit (CPU) 253, and radio frequency (RF) adapter 254 to memory 260. The RF adapter 254 is a mechanism that connects to the server 110 or other terminal 120 via a wireless link and facilitates network traffic between the server 110 and the terminal 120.

CPU(253)는 메모리(260)에 상주하거나 상기 메모리(260)상에서 동작하는 각 컴퓨터 프로그램을 포함하는 동작 명령들의 시퀀스들을 실행함으로써 본 개시된 발명의 방법들을 수행한다. 메모리(260)는 운영 체제 소프트웨어(261), 애플리케이션 프로그램들(262) 및 미들웨어 소프트웨어(270)를 포함한다. 운영 체제 소프트웨어(261)는 키패드(251), 디스플레이(252), RF 어댑터(254)를 제어하고 메모리(260)의 관리를 제어한다. 애플리케이션 프로그램들(262)은 사용자와 단말기(120)간의 상호 작용들을 제어한다. 미들웨어 소프트웨어(270)는 단말기(120)상에서 실행되는 애플리케이션 프로그램이 서버(110) 또는 다른 단말기(120)상에서 실행되는 상대방 애플리케이션을 찾고 상기 상대방 애플리케이션과 통신하는 것을 도와주는 애플리케이션 프로그램 인터페이스(API)(271)를 포함한다. 각 애플리케이션을 신속히 찾기 위하여, 미들웨어 소프트웨어(270)는 또한 피코넷(100)내의 각 장치에 상주하는 각 애플리케이션에 의해 맡겨진 역할을 추적하기 위한 애플리케이션 디렉토리(280)를 포함한다.The CPU 253 performs the methods of the present invention by executing sequences of operational instructions, including each computer program residing in or operating on the memory 260. Memory 260 includes operating system software 261, application programs 262 and middleware software 270. Operating system software 261 controls keypad 251, display 252, RF adapter 254 and controls management of memory 260. The application programs 262 control the interactions between the user and the terminal 120. Middleware software 270 is an application program interface (API) 271 that helps an application program running on terminal 120 to find and communicate with a counterpart application running on server 110 or other terminal 120. ). To quickly find each application, middleware software 270 also includes an application directory 280 for tracking the roles assigned by each application residing on each device within piconet 100.

일 실시예에서, 메모리(210)와 메모리(260)의 구성은 동일하다. 다른 실시예에서, 메모리(210)와 메모리(260)의 구성은 각각 서버(110)와 단말기(120)의 필수적인 태스크들을 수행하는데 필요한 소프트웨어만을 포함한다. 예를 들어, 단말기(120)가 일반 조회 액세스 코드를 수신할 필요가 있지만, 일반 조회 액세스 코드 메시지를 송신할 필요는 없는 경우, 상기 메시지를 수신하는 소프트웨어만이 메모리(260)에 존재할 것이다.In one embodiment, the configurations of memory 210 and memory 260 are the same. In other embodiments, the configuration of memory 210 and memory 260 includes only the software needed to perform the essential tasks of server 110 and terminal 120, respectively. For example, if terminal 120 needs to receive a generic inquiry access code but does not need to send a generic inquiry access code message, only software that receives the message will be present in memory 260.

단말기상에서 실행되는 애플리케이션은 상대방 애플리케이션, 즉 상기 애플리케이션과 통신할 수 있는 동일한 애플리케이션의 다른 인스턴스를 항상 찾는다. 애플리케이션의 각 인스턴스는 특정 역할을 맡는다. 애플리케이션과 상대방 애플리케이션간의 통신은 상기 역할들이 보완적인 경우에만 의미가 있다. 예를 들어, "클라이언트"의 역할을 맡는 애플리케이션은 "서버"의 역할을 맡는 상대방 애플리케이션과 통신할 수 있다. 미들웨어 소프트웨어는 애플리케이션이 정확한 역할을 지닌 상대방 애플리케이션을 찾도록 도와주기 위하여 두개의 애플리케이션들간의 통신을 협상하는 API를 지닌 소프트웨어 계층이다. 따라서, 단말기에 설치되고 활성화된 애플리케이션은 관심 대상인 신규 상대방 애플리케이션들의 연속적인 스트림에 대해 API에 문의할 것이다.The application running on the terminal always finds the other application, that is, another instance of the same application that can communicate with the application. Each instance of the application assumes a specific role. Communication between the application and the counterpart application is meaningful only if the roles are complementary. For example, an application acting as a "client" can communicate with a counterpart application acting as a "server". Middleware software is a software layer with an API that negotiates communication between two applications to help the application find the counterpart application with the correct role. Thus, an application installed and activated on the terminal will query the API for a continuous stream of new counterpart applications of interest.

신규 애플리케이션은 상대방들을 찾고 상기 신규 애플리케이션을 단말기의 로컬 저장 장치에 설치하기 위한 미들웨어를 사용하는 "인스톨러(installer)" 애플리케이션들에 의해 설치된다. 신규 애플리케이션들의 실제 발견 및 선택은 애플리케이션 레벨에서 발생한다. 초기에, 상기 인스톨러 애플리케이션은 서버들내의 상대방 애플리케이션들에 액세스하고, 그들의 이용가능한 데이터베이스들을 브라우징하며, 사용자가 설치할 애플리케이션들을 선택하도록 허용하고, 상기 신규 애플리케이션들을 다운로드하며 설치하는 전용 "브라우저-공급자"(즉, 클라이언트-서버)일 것이다. 나중에, 상기 대응하는 기능은 무선 액세스 프로토콜(WAP) 및 하이퍼텍스트 마크업 언어(HTML) 브라우저들에 부가될 수 있다.The new application is installed by "installer" applications that use middleware to find the counterparts and install the new application to the terminal's local storage device. The actual discovery and selection of new applications takes place at the application level. Initially, the installer application accesses counterpart applications in the servers, browses their available databases, allows the user to select the applications to install, and downloads and installs the new applications. Ie, client-server). Later, the corresponding function may be added to Radio Access Protocol (WAP) and Hypertext Markup Language (HTML) browsers.

서비스 발견은 3단계 프로세스들로 간주된다. 첫째, 신규 잠재적인 애플리케이션들이 발견되고 설치가 고려될 것이다. 둘째, 능동 설치된 애플리케이션들은 상대방 애플리케이션을 탐색하기 시작한다. 셋째, 능동 설치된 애플리케이션들은 프린터들과 같은 공통 자원들을 탐색하기 시작한다(즉, 자원 발견). 본 개시된 발명은 자원 발견을 수행하기 위하여 애플리케이션들에 의존한다. 전형적으로, 단말기 애플리케이션은 그것의 상대방 애플리케이션과 통신하고 로컬(즉, 서버) 자원들을 사용한다. 애플리케이션이 사설 자원을 사용하는 경우, 관련된 서비스 발견은 상기 단말기 미들웨어 소프트웨어에 의해 지원되지 않는 표준(예를 들어, 블루투스 또는 블루투스/자바) 방식으로 상기 애플리케이션에 의해 구현된다.Service discovery is considered a three-step process. First, new potential applications will be discovered and installation will be considered. Second, active installed applications begin to search for counterpart applications. Third, active installed applications begin to search for common resources such as printers (ie resource discovery). The presently disclosed invention relies on applications to perform resource discovery. Typically, a terminal application communicates with its counterpart application and uses local (ie server) resources. If an application uses private resources, the associated service discovery is implemented by the application in a standard (eg Bluetooth or Bluetooth / Java) manner that is not supported by the terminal middleware software.

도 3a는 이동 애드 혹 통신 네트워크를 위한 장치 검출 및 서비스 발견을 수행하는 서버(110)의 실시예의 흐름도이다. 상기 프로세스는 서버(110)가 일반 조회 액세스 코드 메시지를 단말기(120)로 송신할 때 시작된다(단계 300). 단말기(120)는 상기 메시지를 수신하고 긍정 응답 메시지를 서버(110)로 송신한다(단계 302). 서버(110)는 미들웨어 소프트웨어(220)에 액세스하여 단말기(120)와의 소켓 접속을 요구한다(단계 304). 상기 소켓 접속 설정에 응답하여, 서버(110)는 단말기(120)상에 국부적으로 상주하는 모든 애플리케이션들을 열거하는 로컬 애플리케이션 디렉토리를 포함하는 메시지를 단말기(120)로부터 수신한다. 서버(110)는 단말기(120)상에 상주하는 애플리케이션들의 목록을 서버(110)상에 상주하는 결합된 애플리케이션 디렉토리와 비교한다. 서버(110)는 상기 결합된 애플리케이션 디렉토리에 나타나지 않는 로컬 애플리케이션 디렉토리내의 각 엔트리를 상기 결합된 애플리케이션 디렉토리에 부가함으로써 상기 결합된 애플리케이션 디렉토리를 갱신한다(단계 308). 서버(110)는 피코넷(100)내의 각 단말기(120)로 상기 갱신된 결합된 애플리케이션 디렉토리의 부분을 송신한다(단계 310). 상기 부분은 각 단말기(120)에 대해 변경될 수 있고 단말기(120)에 상주하는 애플리케이션에 대한 상대방 애플리케이션인 상기 결합된 애플리케이션 디렉토리에 각 엔트리를 포함한다. 다른 실시예에서, 서버(110)는 상기 전체 결합된 애플리케이션 디렉토리를 피코넷(100)내의 각 단말기(120)로 송신하고 관련된 엔트리들을 유지하기 위하여 단말기(120)에 의존한다. 단말기(120) 및 서버(110)내의 미들웨어 소프트웨어의 인스턴스들은 실행을 위 한 새롭게 발견된 상대방 애플리케이션 쌍들을 스케줄링하기 시작한다(단계 312). 일 실시예에서, 상기 스케줄링된 애플리케이션들은 어떤 다른 블루투스 프로파일 및 프로토콜을 사용한다. 다른 실시예에서, 인스톨러 애플리케이션인 애플리케이션은 사용자에게 사용자가 다운로드해야하는 다른 애플리케이션들을 제안할 수 있다. 일단 서버(110)가 신규 애플리케이션을 다운로드하고 시작하면, 일치하는 상대방은 반복하고 상기 신규 애플리케이션은 상기 미들웨어 스케줄링의 일부가 된다.3A is a flowchart of an embodiment of a server 110 that performs device detection and service discovery for a mobile ad hoc communication network. The process begins when server 110 sends a generic inquiry access code message to terminal 120 (step 300). Terminal 120 receives the message and transmits an acknowledgment message to server 110 (step 302). Server 110 accesses middleware software 220 to request a socket connection with terminal 120 (step 304). In response to the socket connection establishment, server 110 receives a message from terminal 120 that includes a local application directory listing all the applications residing locally on terminal 120. The server 110 compares the list of applications residing on the terminal 120 with the combined application directory residing on the server 110. Server 110 updates the combined application directory by adding each entry in the local application directory that does not appear in the combined application directory to the combined application directory (step 308). Server 110 transmits the portion of the updated combined application directory to each terminal 120 in piconet 100 (step 310). The portion may be changed for each terminal 120 and includes each entry in the combined application directory, which is a counterpart application for an application residing on terminal 120. In another embodiment, server 110 relies on terminal 120 to send the entire combined application directory to each terminal 120 in piconet 100 and to maintain associated entries. Instances of middleware software in terminal 120 and server 110 begin scheduling newly discovered counterpart application pairs for execution (step 312). In one embodiment, the scheduled applications use some other Bluetooth profile and protocol. In another embodiment, an application that is an installer application may suggest other applications that the user should download. Once server 110 downloads and starts a new application, the matching counterpart repeats and the new application becomes part of the middleware scheduling.

도 3b는 이동 애드 혹 통신 네트워크를 위한 장치 검출 및 서비스 발견을 수행하는 단말기(120)의 실시예의 흐름도이다. 상기 프로세스는 단말기(120)가 서버(110)로부터 일반 조회 액세스 코드 메시지를 수신할 때 시작된다(단계 320). 단말기(120)는 긍정 응답 메시지를 생성하여 서버(110)로 송신한다(단계 322). 단말기(120)는 단말기(120)에 국부적으로 상주하는 모든 애플리케이션들을 포함하는 로컬 애플리케이션 디렉토리를 포함하는 메시지를 서버(110)로 송신한다(단계 324). 서버(110)는 단말기(120)상에 상주하는 애플리케이션들의 목록을 서버(110)상에 상주하는 결합된 애플리케이션 디렉토리와 비교한다. 서버(110)는 상기 결합된 애플리케이션 디렉토리에 나타나지 않는 로컬 애플리케이션 디렉토리내의 각 엔트리를 상기 결합된 애플리케이션 디렉토리에 부가함으로써 상기 결합된 애플리케이션 디렉토리를 갱신한다. 단말기(120)는 서버(110)로부터 상기 갱신된 결합된 애플리케이션 디렉토리의 부분을 수신한다(단계 326). 서버(110)는 단말기(120)에 상주하는 애플리케이션에 대한 상대방 애플리케이션인 상기 결합된 애플리케이션 디렉토리에 각 엔트리를 포함하도록 단말기(120)에 대해 상기 부분을 커스텀화한다. 다른 실시 예에서, 서버(110)는 단말기(120)로 전체 결합된 애플리케이션 디렉토리를 송신하고 관련된 엔트리들을 유지하기 위해 단말기(120)에 의존한다. 단말기(120)와 서버(110)내의 미들웨어 소프트웨어의 인스턴스들은 실행을 위한 상기 새롭게 발견된 상대방 애플리케이션 쌍을 스케줄링하기 시작한다(단계 328).3B is a flowchart of an embodiment of a terminal 120 that performs device detection and service discovery for a mobile ad hoc communication network. The process begins when terminal 120 receives a general inquiry access code message from server 110 (step 320). Terminal 120 generates an acknowledgment message and transmits to server 110 (step 322). Terminal 120 transmits a message to server 110 that includes a local application directory including all applications residing locally on terminal 120 (step 324). The server 110 compares the list of applications residing on the terminal 120 with the combined application directory residing on the server 110. Server 110 updates the combined application directory by adding each entry in the local application directory that does not appear in the combined application directory to the combined application directory. Terminal 120 receives a portion of the updated combined application directory from server 110 (step 326). The server 110 customizes the portion for the terminal 120 to include each entry in the combined application directory, which is the counterpart application for the application residing on the terminal 120. In another embodiment, server 110 relies on terminal 120 to send the entire combined application directory to terminal 120 and to maintain associated entries. Instances of middleware software in terminal 120 and server 110 begin scheduling the newly found counterpart application pair for execution (step 328).

도 4a 및 도 4b는 단말기 X 및 단말기 Y가 서버 S에 의해 서빙되는 이동 애드 혹 통신 네트워크에 들어가기 이전 및 이후의 상기 애플리케이션 디렉토리의 콘텐트를 도시한 예시적인 블록도들이다. 도 4a는 단말기 X 및 단말기 Y가 서버 S에 의해 관리되는 통신 네트워크에 들어가기 전의 애플리케이션 디렉토리(404), 애플리케이션 디렉토리(415) 및 애플리케이션 디렉토리(425)의 구성을 도시한 것이다. 애플리케이션 C(401)는 서버 S 메모리(400)에 존재하고 API(402)를 통해 미들웨어 소프트웨어(403)에 액세스한다. 미들웨어 소프트웨어(403)는 애플리케이션 C가 로컬 장치(즉, 서버 S)에 존재하고 서버의 역할을 맡는다는 것을 나타내는 테이블 엔트리를 부가함으로써 애플리케이션 C(401)를 애플리케이션 디렉토리(404)에 등록한다. 애플리케이션 A(411)와 애플리케이션 B(412)는 단말기 X 메모리(410)에 존재하고 API(413)를 통해 미들웨어 소프트웨어(414)에 액세스한다. 미들웨어 소프트웨어(414)는 애플리케이션 A가 상기 로컬 장치(즉, 단말기 X)에 존재하고 클라이언트의 역할을 맡는다는 것과 애플리케이션 B가 상기 로컬 장치(즉, 단말기 X)에 존재하고 동등의 역할을 맡는다는 것을 나타내기 위한 테이블 엔트리를 부가함으로써 애플리케이션 A(411)와 애플리케이션 B(412)를 애플리케이션 디렉토리(415)에 등록한다. 애플리케이션 B(421)와 애플리케이션 C(422)는 단말기 Y 메모리(420)에 존재하고 API(423)를 통해 미들웨어 소프트웨어(424)에 액세스한다. 미들웨어 소프트웨어(424)는 애플리케이션 B가 상기 로컬 장치(즉, 단말기 Y)에 존재하고 동등의 역할을 맡는다는 것과 애플리케이션 C가 상기 로컬 장치(즉, 단말기 Y)에 존재하고 클라이언트의 역할을 맡는다는 것을 나타내기 위한 테이블 엔트리를 부가함으로써 애플리케이션 B(421)와 애플리케이션 C(422)를 애플리케이션 디렉토리(425)에 등록한다.4A and 4B are exemplary block diagrams showing the contents of the application directory before and after the terminal X and terminal Y enter the mobile ad hoc communication network served by the server S; 4A shows the configuration of the application directory 404, the application directory 415, and the application directory 425 before the terminal X and the terminal Y enter the communication network managed by the server S. FIG. Application C 401 resides in server S memory 400 and accesses middleware software 403 through API 402. Middleware software 403 registers application C 401 in application directory 404 by adding a table entry indicating that application C resides on the local device (ie, server S) and assumes the role of server. Application A 411 and application B 412 reside in terminal X memory 410 and access middleware software 414 via API 413. Middleware software 414 is responsible for the fact that application A resides on the local device (i.e., terminal X) and assumes the role of a client, and that application B resides on the local device (i.e., terminal X) and plays an equivalent role. Application A 411 and application B 412 are registered in application directory 415 by adding a table entry for presentation. Application B 421 and application C 422 reside in terminal Y memory 420 and access middleware software 424 via API 423. Middleware software 424 is responsible for the fact that application B resides on the local device (i.e., terminal Y) and assumes an equivalent role, and that application C resides on the local device (i.e., terminal Y) and plays the role of a client. Application B 421 and application C 422 are registered in the application directory 425 by adding a table entry for presentation.

도 4b는 단말기 X 및 단말기 Y가 서버 S, 마스터 장치에 의해 관리되는 통신 네트워크에 들어간 후의 애플리케이션 디렉토리(404), 애플리케이션 디렉토리(415) 및 애플리케이션 디렉토리(425)의 구성을 도시한 것이다. 서버 S는 애플리케이션 디렉토리 서버(ADS)의 역할을 맡고 피코넷(100)내의 각 장치에 존재하는 애플리케이션들의 등록을 조정한다. 서버 S는 피코넷(100)상의 장치에 존재하는 각 애플리케이션에 대해 테이블 엔트리를 애플리케이션 디렉토리(404)에 부가한다. 따라서, 서버 S는 단말기 X에 존재하는 클라이언트 역할의 애플리케이션 A, 단말기 X에 존재하는 동등 역할의 애플리케이션 B, 단말기 Y에 존재하는 동등 역할의 애플리케이션 B 및 단말기 Y에 존재하는 클라이언트 역할의 애플리케이션 C에 대해 엔트리를 부가한다. 서버 S는 또한 단말기 장치들에 관심이 될 수 있는 애플리케이션 등록들을 가지고 단말기 X내의 애플리케이션 디렉토리(415)와 단말기 Y내의 애플리케이션 디렉토리(425)를 갱신한다. 도 4b에 도시된 바와 같이, 단말기 X 및 단말기 Y 양자는 동등 역할의 애플리케이션 B를 호스팅한다. 단말기 X상의 애플리케이션 B와 단말기 Y상의 애플리케이션 B간의 동등-대-동등 통신 세션이 있음직할 것 같기 때문 에, 서버 S는 단말기 Y에 존재하는 동등 역할의 애플리케이션 B에 대해 애플리케이션 디렉토리(415)에 엔트리를 부가하고 단말기 X에 존재하는 동등 역할의 애플리케이션 B에 대해 애플리케이션 디렉토리(425)에 엔트리를 부가한다. 또한, 단말기 Y상의 애플리케이션 C와 서버 S상의 애플리케이션 C간의 클라이언트-서버 통신 세션이 있음직할 것 같기 때문에, 서버 S는 서버 S에 존재하는 서버 역할의 애플리케이션 C에 대해 애플리케이션 디렉토리(425)에 엔트리를 부가한다. 마지막으로, 단말기 X상의 애플리케이션 A에 대해 피코넷(100)에 아무런 상대방도 존재하지 않는다.4B shows the configuration of the application directory 404, the application directory 415, and the application directory 425 after the terminal X and the terminal Y enter the communication network managed by the server S, the master device. Server S acts as an application directory server (ADS) and coordinates the registration of the applications present in each device within piconet 100. Server S adds a table entry to application directory 404 for each application present in the device on piconet 100. Thus, server S is responsible for application A of client role present in terminal X, application B of equal role present in terminal X, application B of equal role present in terminal Y and application C of client role present in terminal Y. Add an entry. Server S also updates the application directory 415 in terminal X and the application directory 425 in terminal Y with application registrations that may be of interest to terminal devices. As shown in FIG. 4B, both terminal X and terminal Y host an equivalent role Application B. FIG. Because there is likely to be an equal-to-equivalent communication session between application B on terminal X and application B on terminal Y, server S may make an entry in application directory 415 for an equivalent role application B present on terminal Y. Add an entry to the application directory 425 for an equivalent role Application B present in terminal X. Also, since there is likely to be a client-server communication session between application C on terminal Y and application C on server S, server S adds an entry to the application directory 425 for application C of the server role present at server S. do. Finally, there is no counterpart in piconet 100 for application A on terminal X.

도 4a 및 도 4b에 도시된 바와 같이, 상기 미들웨어 소프트웨어 애플리케이션 디렉토리 서버내의 각 엔트리에 대한 개시된 데이터 항목들은 장치 식별자(예를 들어, "로컬", 주소 또는 다른 유일한 식별자), 애플리케이션 식별자(예를 들어, 애플리케이션 이름 또는 다른 유일한 식별자) 및 상기 애플리케이션의 역할(예를 들어, "클라이언트", "서버", "동등" 등)을 포함한다. 다른 실시예에서, 상기 데이터 항목들은 상기 로컬 애플리케이션들에 대한 필드들(즉, 장치="로컬")과 다른 단말기들 또는 서버들내의 원격 애플리케이션들에 대한 필드들을 포함하도록 확장될 수 있다. 상기 로컬 애플리케이션들에 대한 필드들은 다음을 포함한다:As shown in Figures 4A and 4B, the disclosed data items for each entry in the middleware software application directory server may include a device identifier (e.g., "local", an address or other unique identifier), an application identifier (e.g. , Application name or other unique identifier) and the role of the application (eg, "client", "server", "equivalent", etc.). In another embodiment, the data items may be extended to include fields for the local applications (ie, device = "local") and fields for remote applications in other terminals or servers. Fields for the local applications include:

● 이름 - 상기 애플리케이션의 식별자(예를 들어, 상이한 버전들 및 하드웨어 변형들을 비교하기 위한 공급자 이름 및 데이터);Name—Identifier of the application (eg provider name and data for comparing different versions and hardware variants);

● 나의_역할 - 상기 애플리케이션이 상기 로컬 장치에서 맡은 역할;My_Role-the role the application assumes on the local device;

● 파트너_역할 - 상기 애플리케이션이 관심있는 상대방들로부터 맡은 역할(예를 들어, 동등, 클라이언트 및 서버는 가장 일반적인 역할들이다);Partner_Role—the role that the application assumes from interested parties (eg, equivalence, client and server are the most common roles);

● 레지던시(residency) - 상주(설치되고 현재 메모리에 있음), 로딩되지 않음(한번 설치되고, 현재 메모리에 없지만, 자동으로 다시 다운로드될 수 있음), 거절됨(그것이 상기 애플리케이션을 무시해야 한다는 것을 신규 애플리케이션 인스톨러에 나타냄) 또는 신규(상기 애플리케이션은 설치되거나 거절되지 않음);Residency-Resident (installed and currently in memory), not loaded (once installed, not in memory but can be automatically redownloaded), rejected (new that it should ignore the application) Appear in the application installer) or new (the application is not installed or rejected);

● 상태 - 실행중(통신하고 있음, 지금 그것의 원격 상대방들과 동작하고 있지만, 동시에 통신을 사용할 수 있는, 단지 하나 또는 그 이상의 애플리케이션들이 존재할 수 있다), 대기(실행 상태이지만 어떤 통신도 하고 있지 않음), 개시가능(액티브, 정확한 파트너_역할과 일치하는 동등이 발견되는 경우, 상기 미들웨어 소프트웨어는 상기 애플리케이션을 개시하고, 필요한 경우 상기 소프트웨어를 우선 다운로드한다), 완료(모든 상대방 애플리케이션들이 인지된다) 또는 패시브(사용자는 애플리케이션을 개시하기 위하여 어떤 것을 해야 한다);● Status-running (communicating, now operating with its remote parties, but there can be only one or more applications that can use the communication at the same time), waiting (running but not doing any communication) ), Startable (active, if an equivalence matching the correct partner_role is found, the middleware software launches the application, and if necessary downloads the software first), complete (all counterpart applications are recognized) Or passive (the user must do something to launch the application);

● 유형 - 포그라운드(상기 애플리케이션이 종결되는 경우, 상기 상태는 패시브일 것이다) 또는 백그라운드(상기 애플리케이션이 종결되는 경우, 상기 상태는 개시가능일 것이다);Type-foreground (if the application terminates, the state will be passive) or background (if the application terminates, the state will be startable);

● 로딩하지 않음 - 자동(미들웨어는 상기 애플리케이션이 종결된 경우 코드를 제거할 수 있다) 또는 언인스톨(사용자는 제거를 확인해야 한다);No loading-automatic (middleware can remove the code if the application terminates) or uninstall (the user must confirm the removal);

● 아이콘 - 사용자를 위해 상기 애플리케이션에 대한 비주얼 이미지를 생성한다; 및Icon-creates a visual image for the application for the user; And

● 타임아웃 - 예를 들어 상기 애플리케이션이 비생산적인 소프트웨어 루프에 있는 때를 상기 미들웨어 소프트웨어가 탐지하는데 사용하는 제한 시간을 설정 한다.Timeout-Set a timeout that the middleware software uses to detect when the application is in an unproductive software loop, for example.

상기 원격 애플리케이션들에 대한 필드들은 다음을 포함한다:Fields for the remote applications include:

● 장치 - 상기 애플리케이션 인스턴스들을 저장하는 서버 또는 상기 단말기와 통신을 설정하기 위한 주소;Device-an address for establishing communication with the terminal or server storing the application instances;

● 이름 - 상기 애플리케이션에 대한 식별자; 및Name-an identifier for the application; And

● 나의_역할 - 상기 애플리케이션이 상기 원격 장치에서 맡은 역할.My_Role-The role the application plays on the remote device.

상기 애플리케이션들의 클라이언트-서버 역할들은 단말기 장치와 애플리케이션 디렉토리 서버로서의 상기 장치들의 역할들에 독립적이다. 전형적으로, 애플리케이션 디렉토리 서버로서 동작하는 장치는 서버 역할로 동작하는 애플리케이션들을 호스팅하고 상기 단말기 장치들은 동일한 애플리케이션에 대해 클라이언트 역할로 동작한다. 다른 실시예에서, 두개의 단말기 장치들은 각각 일반 조회 액세스 코드 메시지를 송신하고 응답을 경청한다. 응답을 수신하는 단말기 장치는 우선 서버 역할을 맡을 것이고 도 3a의 절차에 따라 진행할 것이다. 상기 조회 메시지를 수신하는 다른 단말기 장치는 상기 단말기 역할을 맡을 것이고, 도 3b에 따라 진행할 것이다. 따라서, 본 개시된 발명은 단말기-대-단말기 시나리오들을 지원하고(예를 들어, 동일한 핸드헬드 장치들 중 하나는 ADS가 됨) 소정의 애플리케이션 디렉토리 서버들을 필요로 하지 않는다.The client-server roles of the applications are independent of the roles of the device as a terminal device and an application directory server. Typically, a device acting as an application directory server hosts applications acting in the server role and the terminal devices act in the client role for the same application. In another embodiment, the two terminal devices each transmit a generic inquiry access code message and listen for a response. The terminal device receiving the response will first assume the role of server and proceed according to the procedure of FIG. 3A. The other terminal device receiving the inquiry message will assume the role of terminal and proceed according to FIG. 3b. Thus, the presently disclosed invention supports terminal-to-terminal scenarios (eg, one of the same handheld devices becomes ADS) and does not require any application directory servers.

도 5는 이동 애드 혹 통신 네트워크에서 단말기 X와 단말기 Y간의 통신 세션의 설정동안 메시지 흐름을 도시한 프로세스의 실시예에 대한 흐름도이다. 일 실시예에서, 단말기 X 및 단말기 Y는 도 1 및 도 2b에 도시된 단말기(120)와 같은 이동 장치들이다. 다른 실시예에서, 단말기 X는 도 1 및 도 2b에 도시된 단말기(120)와 같은 이동 장치이고 단말기 Y는 도 1 및 도 2a에 도시된 서버(110)와 같은 이동 장치이다.5 is a flow diagram of an embodiment of a process illustrating a message flow during the establishment of a communication session between terminal X and terminal Y in a mobile ad hoc communication network. In one embodiment, terminal X and terminal Y are mobile devices such as terminal 120 shown in FIGS. 1 and 2B. In another embodiment, terminal X is a mobile device such as terminal 120 shown in FIGS. 1 and 2B and terminal Y is a mobile device such as server 110 shown in FIGS. 1 and 2A.

도 5에 도시된 바와 같이, 단말기 X는 조회 요구 메시지를 상기 이동 애드 혹 통신 네트워크로 송신함으로써 통신을 개시한다. 단말기 Y는 부근의 장치이기 때문에, 단말기 Y는 상기 조회 요구 메시지를 수신하고 조회 응답 메시지를 단말기 X로 송신한다. 일 실시예에서, 상기 조회 요구 메시지는 블루투스 조회 명령이고 상기 조회 응답 메시지는 블루투스 조회 결과 명령이다. 다른 실시예에서, 상기 조회 요구 메시지는 블루투스 조회 명령이고 상기 조회 응답 메시지는 상기 블루투스 조회 결과 명령을 송신하는 단말기가 미들웨어 계층을 포함한다는 것을 나타내도록 변경된 블루투스 조회 결과 명령이다. 일 실시예에서, 상기 미들웨어 계층은 진보된 애플리케이션과 서비스 발견 및 실행을 제공하는 전용 미들웨어 소프트웨어를 포함한다. 일 실시예에서, 상기 블루투스 조회 결과 명령에 대한 변경은 장치 클래스(CoD: Class of Device) 매개 변수들에 대한 것이다. 예를 들어, 상기 블루투스 조회 결과 명령을 송신하는 단말기가 상기 미들웨어 계층을 포함하는 경우, 상기 단말기는 적어도 상기 "애드 혹 네트워킹 인식 비트" 비트(비트 16)을 온(1)으로 설정할 것이다. 대안적으로, 상기 블루투스 조회 결과 명령을 송신하는 단말기가 상기 미들웨어 계층을 포함하는 경우, 상기 단말기는 상기 "애드 혹 네트워킹 인식" 비트(비트 16)를 온(1)으로 설정할 것이고, "위치 정보" 비트(비트 17)를 오프(0)로 설정할 것이다. 대안적으로, 상기 블루투스 조회 결과 명령을 송신하는 단말 기가 상기 미들웨어 계층을 포함하는 경우, 상기 단말기는 상기 "애드 혹 네트워킹 인식" 비트(비트 16)를 온(1)으로 설정할 것이고, "텔레포니 가능" 비트(비트 22)를 온(1)으로 설정할 것이다. 대안적으로, 상기 블루투스 조회 결과 명령을 송신하는 단말기가 상기 미들웨어 계층을 포함하는 경우, 상기 단말기는 상기 "애드 혹 네트워킹 인식" 비트(비트 16)를 온(1)으로 설정하고, 상기 "위치 정보" 비트(비트 17)를 오프(0)로 설정하며, 상기 "텔레포니 가능" 비트(비트 22)를 온(1)으로 설정할 것이다. 또 다른 실시예에서, 상기 미들웨어 소프트웨어의 존재를 나타내는 전용 표시 매개 변수가 상기 블루투스 조회 결과 명령 명세에 도입되는 경우, 상기 블루투스 조회 결과 명령에 대한 변경은 필요하지 않다.As shown in Fig. 5, the terminal X initiates communication by sending an inquiry request message to the mobile ad hoc communication network. Since terminal Y is a nearby device, terminal Y receives the inquiry request message and sends an inquiry response message to terminal X. In one embodiment, the inquiry request message is a Bluetooth inquiry command and the inquiry response message is a Bluetooth inquiry result command. In another embodiment, the inquiry request message is a Bluetooth inquiry command and the inquiry response message is a Bluetooth inquiry result command modified to indicate that the terminal sending the Bluetooth inquiry result command includes a middleware layer. In one embodiment, the middleware layer includes dedicated middleware software that provides advanced application and service discovery and execution. In one embodiment, the change to the Bluetooth inquiry result command is for class of device (CoD) parameters. For example, if the terminal sending the Bluetooth inquiry result command includes the middleware layer, the terminal will set at least the "ad hoc networking awareness bit" bit (bit 16) to on (1). Alternatively, if the terminal sending the Bluetooth inquiry result command includes the middleware layer, the terminal will set the "ad hoc networking awareness" bit (bit 16) to on (1) and "location information". Bit (bit 17) will be set to off (0). Alternatively, if the terminal sending the Bluetooth inquiry result command includes the middleware layer, the terminal will set the "ad hoc networking awareness" bit (bit 16) to on (1) and "telephony enabled". Will set bit (bit 22) to on (1). Alternatively, when the terminal sending the Bluetooth inquiry result command includes the middleware layer, the terminal sets the "ad hoc networking awareness" bit (bit 16) to on (1) and the "location information". Bit (bit 17) to off (0) and the "telephony enabled" bit (bit 22) to on (1). In another embodiment, if a dedicated display parameter indicating the presence of the middleware software is introduced into the Bluetooth inquiry result command specification, no change to the Bluetooth inquiry result command is necessary.

상기 조회 다음에, 도 5에 도시된 바와 같이, 단말기 X는 페이징 요구 메시지를 송신함으로써, 단말기 Y와 같이, 상기 조회 응답 메시지에 의해 상기 미들웨어 계층의 가능한 소유를 나타내는 각 부근의 장치에 대한 접속을 생성할 수 있다. (예를 들어, 상기 "애드 혹 네트워킹 인식" 비트(비트 16)을 오프(0)로 설정함으로써) 단말기 Y가 상기 미들웨어 계층의 가능한 소유를 나타내지 않는 경우, 아무런 페이징 요구 메시지도 전송되지 않고 상기 통신 세션은 접속해제된다. 단말기 Y가 아마도 미들웨어 계층을 포함한다는 표시를 포함하는 조회를 수행한 이후에, 단말기 X는 상기에 논의된 바와 같이, 상기 페이징 요구를 송신한다. 단말기 Y는 상기 페이징 요구 메시지를 수신하고 상기 접속 요구를 수락하기 위한 페이징 수락 메시지를 선택적으로 송신한다. 일 실시예에서, 상기 페이징 요구 메시지는 블루투스 접속 생성 명령이고 상기 페이징 수락 메시지는 블루투스 접속 요구 수락 명령이 다.After the inquiry, as shown in FIG. 5, the terminal X transmits a paging request message to establish a connection to each nearby device indicating the possible possession of the middleware layer by the inquiry response message, such as the terminal Y. Can be generated. If terminal Y does not indicate a possible possession of the middleware layer (eg by setting the "ad hoc networking aware" bit (bit 16) to off (0)), no paging request message is sent and the communication The session is disconnected. After performing an inquiry that includes an indication that terminal Y probably includes a middleware layer, terminal X sends the paging request, as discussed above. Terminal Y receives the paging request message and optionally transmits a paging accept message to accept the connection request. In one embodiment, the paging request message is a Bluetooth connection creation command and the paging accept message is a Bluetooth connection request accept command.

각 부근의 장치에 대한 접속 다음에, 도 5에 도시된 바와 같이, 단말기 X는 단말기 Y와 같은 부근의 장치가 명확하게 상기 미들웨어 계층을 포함하는 지를 확인하기 위하여 인식 요구 메시지를 송신한다. 단말기 Y는 상기 인식 요구 메시지를 수신하고 인식 응답 메시지를 단말기 X로 송신한다. 일 실시예에서, 상기 인식 응답 메시지의 수신은 단말기 Y가 상기 미들웨어 계층을 포함한다는 확인이다. 다른 실시예에서, 상기 인식 응답 메시지의 내용은 단말기 Y가 상기 미들웨어 계층을 포함하는 지를 나타낼 것이다. 일 실시예에서, 상기 인식 요구 메시지 및 상기 인식 응답 메시지는 상기 블루투스 서비스 발견 프로토콜(SDP: Service Discovery Protocol)을 이용한다. 단말기 Y가 상기 미들웨어 계층을 포함하지 않는 경우, 상기 통신 세션은 접속해제될 수 있다.Following connection to each nearby device, as shown in FIG. 5, terminal X sends a recognition request message to confirm that the nearby device such as terminal Y clearly includes the middleware layer. Terminal Y receives the recognition request message and sends a recognition response message to terminal X. In one embodiment, receipt of the recognition response message is confirmation that terminal Y includes the middleware layer. In another embodiment, the content of the recognition response message will indicate whether terminal Y includes the middleware layer. In one embodiment, the recognition request message and the recognition response message use the Bluetooth Service Discovery Protocol (SDP). If terminal Y does not include the middleware layer, the communication session may be disconnected.

단말기 Y와 같은 부근의 장치가 상기 미들웨어 계층을 포함한다는 확인 다음에, 도 5에 도시된 바와 같이, 단말기 X 및 단말기 Y는 상기 미들웨어 계층을 사용하여 애플리케이션들 및 서비스들을 발견하고 개시한다. 일 실시예에서, 단말기 X 및 단말기 Y는 도 3a 및 도 3b에 도시된 흐름도들에 개시된 방법들을 사용하여 애플리케이션들 및 서비스들을 발견하고 개시한다.Following confirmation that a nearby device, such as terminal Y, includes the middleware layer, as shown in FIG. 5, terminal X and terminal Y use the middleware layer to discover and initiate applications and services. In one embodiment, terminal X and terminal Y discover and initiate applications and services using the methods disclosed in the flowcharts shown in FIGS. 3A and 3B.

본 개시된 실시예들이 이동 애드 혹 통신 네트워크를 위한 완전하게 기능하는 장치 검출과 서비스 발견 시스템 및 방법을 설명할지라도, 독자는 다른 균등한 실시예들이 존재한다는 것을 이해해야 한다. 수많은 변경들 및 변형들이 본 개시를 리뷰하는 사람들에게 발생할 것이기 때문에, 상기 이동 애드 혹 통신 네트워크를 위한 장치 검출과 서비스 발견 시스템 및 방법은 설명되고 개시된 정확한 구성 및 동작에 한정되지 않는다. 따라서, 본 개시는 모든 적합한 변형들 및 균등물들이 청구항들의 범위내에 있도록 의도한다.Although the disclosed embodiments describe a fully functional device detection and service discovery system and method for a mobile ad hoc communication network, the reader should understand that other equivalent embodiments exist. Since numerous changes and modifications will occur to those reviewing the disclosure, the device detection and service discovery system and method for the mobile ad hoc communication network is not limited to the precise configuration and operation described and disclosed. Accordingly, this disclosure intends that all suitable modifications and equivalents fall within the scope of the claims.

Claims (60)

이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하기 위한 시스템에 있어서,A system for performing device detection and service discovery in a mobile ad hoc communication network, 메모리 장치; 및Memory devices; And 상기 메모리 장치와 통신하도록 배치된 프로세서를 포함하며,A processor arranged to communicate with the memory device, 상기 프로세서는, 적어도 하나의 부근의 장치를 발견하기 위하여 상기 이동 애드 혹 통신 네트워크의 조회를 수행하도록 구성되고, 상기 조회는 상기 적어도 하나의 부근의 장치가 미들웨어 계층을 포함할 수 있다는 표시를 포함하며,The processor is configured to perform an inquiry of the mobile ad hoc communication network to find at least one nearby device, the inquiry including an indication that the at least one nearby device may include a middleware layer; , 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함할 수 있다는 표시를 상기 조회가 포함하는 경우:If the query includes an indication that the at least one nearby device may include the middleware layer: 상기 프로세서는,The processor, 상기 적어도 하나의 부근의 장치에 대한 접속을 생성하도록 구성되고,Generate a connection to the at least one nearby device, 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함하는지를 확인하도록 구성되며,Determine whether the at least one nearby device includes the middleware layer, 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함하는 경우:If the at least one nearby device includes the middleware layer: 상기 프로세서는, 상기 미들웨어 계층을 실행시켜 애플리케이션과 서비스 발견을 수행하도록 구성되는 것을 특징으로 하는 시스템.The processor is configured to execute the middleware layer to perform application and service discovery. 제1항에 있어서, 상기 미들웨어 계층은 서비스 발견 프로토콜 및 적어도 하나의 컴퓨터 프로그램을 포함하고, 각각의 컴퓨터 프로그램은 네트워크 서버 또는 이동 단말기가 상기 서비스 발견 프로토콜을 실행하게 하는 동작 명령들의 적어도 하나의 시퀀스를 포함하는 것을 특징으로 하는 시스템.2. The method of claim 1, wherein the middleware layer comprises a service discovery protocol and at least one computer program, each computer program comprising at least one sequence of operational instructions for causing a network server or mobile terminal to execute the service discovery protocol. System comprising a. 제1항에 있어서, 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함하는 경우, 상기 프로세서는 상기 미들웨어 계층을 실행시켜 애플리케이션들과 서비스들을 개시하도록 더 구성되는 것을 특징으로 하는 시스템.The system of claim 1, wherein if the at least one nearby device includes the middleware layer, the processor is further configured to execute the middleware layer to initiate applications and services. 제1항에 있어서, 상기 조회를 수행하기 위하여, 상기 프로세서는,The processor of claim 1, wherein the processor is further configured to perform the inquiry. 상기 이동 애드 혹 통신 네트워크내의 통신 가능 구역으로 조회 요구 메시지를 송신하도록 더 구성되고,Further transmit a query request message to a communicable area within the mobile ad hoc communication network, 상기 적어도 하나의 부근의 장치로부터 조회 응답 메시지를 수신하도록 더 구성되며, 상기 조회 응답 메시지는 상기 표시를 포함하는 것을 특징으로 하는 시스템.And receive an inquiry response message from the at least one nearby device, wherein the inquiry response message includes the indication. 제4항에 있어서, 상기 조회 요구 메시지는 블루투스 조회 명령이고, 상기 조회 응답 메시지는 블루투스 조회 결과 명령인 것을 특징으로 하는 시스템.The system of claim 4, wherein the inquiry request message is a Bluetooth inquiry command, and the inquiry response message is a Bluetooth inquiry result command. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제2항에 있어서, 상기 서비스 발견 프로토콜은 블루투스 서비스 발견 프로토콜 요구인 인식 요구 메시지 및 블루투스 서비스 발견 프로토콜 응답인 인식 응답 메시지를 제공하는 것을 특징으로 하는 시스템.The system of claim 2, wherein the service discovery protocol provides a recognition request message which is a Bluetooth service discovery protocol request and a recognition response message which is a Bluetooth service discovery protocol response. 제1항에 있어서, 상기 미들웨어 계층을 실행시켜 애플리케이션 및 서비스 발견을 수행하기 위하여,The method of claim 1, wherein the middleware layer is executed to perform application and service discovery. 상기 프로세서는, 상기 적어도 하나의 부근의 장치로부터 통지 메시지를 수신하도록 더 구성되고, 상기 통지 메시지는 상기 적어도 하나의 부근의 장치에 저장된 로컬 애플리케이션 디렉토리를 포함하며,The processor is further configured to receive a notification message from the at least one nearby device, the notification message comprising a local application directory stored at the at least one nearby device, 상기 프로세서는, 결합된 애플리케이션 디렉토리에 대한 갱신을 저장하도록 더 구성되고, 상기 갱신은 상기 로컬 애플리케이션 디렉토리 및 상기 결합된 애플리케이션 디렉토리의 비교에 기초하며,The processor is further configured to store an update to the combined application directory, wherein the update is based on a comparison of the local application directory and the combined application directory, 상기 프로세서는, 상기 적어도 하나의 부근의 장치로 갱신 메시지를 송신하도록 더 구성되고, 상기 갱신 메시지는 상기 적어도 하나의 부근의 장치에 저장된 상기 로컬 애플리케이션 디렉토리를 갱신하기 위한 상기 결합된 애플리케이션 디렉토리의 갱신 부분을 포함하는 것을 특징으로 하는 시스템.The processor is further configured to send an update message to the at least one nearby device, wherein the update message is an update portion of the combined application directory for updating the local application directory stored at the at least one nearby device. System comprising a. 제17항에 있어서, 상기 프로세서는, 상기 결합된 애플리케이션 디렉토리내의 참조에 기초하여 로컬 애플리케이션을 개시하도록 더 구성되고,18. The system of claim 17, wherein the processor is further configured to launch a local application based on a reference in the combined application directory, 상기 로컬 애플리케이션을 상기 적어도 하나의 부근의 장치상에서 실행되는 상대방 애플리케이션에 접속시키도록 더 구성되는 것을 특징으로 하는 시스템.And connect the local application to a counterpart application running on the at least one nearby device. 이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 네트워크 서버 또는 이동 단말기에 의해 수행하기 위한 방법에 있어서,A method for performing device detection and service discovery in a mobile ad hoc communication network by a network server or a mobile terminal, the method comprising: 적어도 하나의 부근의 장치를 발견하기 위하여 상기 이동 애드 혹 통신 네트워크의 조회를 수행하는 단계로서, 상기 조회는 상기 적어도 하나의 부근의 장치가 미들웨어 계층을 포함할 수 있다는 표시를 포함하는 단계;Performing an inquiry of the mobile ad hoc communication network to find at least one nearby device, the query comprising an indication that the at least one nearby device may include a middleware layer; 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함할 수 있다는 표시를 상기 조회가 포함하는 경우:If the query includes an indication that the at least one nearby device may include the middleware layer: 상기 적어도 하나의 부근의 장치에 대한 접속을 생성하는 단계;Creating a connection to the at least one nearby device; 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함하는지를 확인하는 단계; 및Confirming that the at least one nearby device includes the middleware layer; And 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함하는 경우:If the at least one nearby device includes the middleware layer: 상기 미들웨어 계층을 실행시켜 애플리케이션과 서비스 발견을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.Executing the middleware layer to perform application and service discovery. 제19항에 있어서, 상기 미들웨어 계층은 서비스 발견 프로토콜 및 적어도 하나의 컴퓨터 프로그램을 포함하고, 각각의 컴퓨터 프로그램은 네트워크 서버 또는 이동 단말기가 상기 서비스 발견 프로토콜을 실행하게 하는 동작 명령들의 적어도 하나의 시퀀스를 포함하는 것을 특징으로 하는 방법.20. The system of claim 19, wherein the middleware layer comprises a service discovery protocol and at least one computer program, each computer program comprising at least one sequence of operational instructions for causing a network server or mobile terminal to execute the service discovery protocol. Method comprising a. 제19항에 있어서, 상기 적어도 하나의 부근의 장치가 상기 미들웨어 계층을 포함하는 경우, 상기 방법은 상기 미들웨어 계층을 실행시켜 애플리케이션들과 서비스들을 개시하는 단계를 더 포함하는 것을 특징으로 하는 방법.20. The method of claim 19, wherein if the at least one nearby device includes the middleware layer, the method further comprises executing the middleware layer to launch applications and services. 제19항에 있어서, 상기 조회를 수행하는 단계는,The method of claim 19, wherein performing the inquiry comprises: 상기 이동 애드 혹 통신 네트워크내의 통신 가능 구역으로 조회 요구 메시지를 송신하는 단계; 및Sending an inquiry request message to a coverage area within the mobile ad hoc communication network; And 상기 적어도 하나의 부근의 장치로부터 조회 응답 메시지를 수신하는 단계로서, 상기 조회 응답 메시지는 상기 표시를 포함하는 단계를 더 포함하는 것을 특징으로 하는 방법.Receiving an inquiry response message from the at least one nearby device, wherein the inquiry response message further comprises the indication. 제22항에 있어서, 상기 조회 요구 메시지는 블루투스 조회 명령이고, 상기 조회 응답 메시지는 블루투스 조회 결과 명령인 것을 특징으로 하는 방법.The method of claim 22, wherein the inquiry request message is a Bluetooth inquiry command, and the inquiry response message is a Bluetooth inquiry result command. 제23항에 있어서, 상기 블루투스 조회 결과 명령내의 적어도 한 비트를 적어도 하나의 소정의 값으로 설정하는 것은 상기 표시인 것을 특징으로 하는 방법.24. The method of claim 23, wherein setting at least one bit in the Bluetooth inquiry result command to at least one predetermined value is the indication. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 각각 로컬 애플리케이션 디렉토리를 저장하는 적어도 하나의 네트워크 노드를 포함하는 이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하는 방법에 있어서,A method of performing device detection and service discovery in a mobile ad hoc communication network, each device comprising at least one network node storing a local application directory, the method comprising: 상기 적어도 하나의 네트워크 노드로부터 디렉토리 서버 노드를 선택하는 단계로서, 상기 디렉토리 서버 노드는 통신 가능 구역을 구비하고 결합된 애플리케이션 디렉토리를 저장하는 단계;Selecting a directory server node from the at least one network node, the directory server node having a communicable zone and storing a combined application directory; 조회 메시지를 상기 통신 가능 구역에 들어가는 리스닝(listening) 노드로 송신하는 단계;Sending an inquiry message to a listening node entering the coverage area; 상기 리스닝 노드로부터 통지 메시지를 수신하는 단계로서, 상기 통지 메시지는 상기 리스닝 노드에 저장된 상기 로컬 애플리케이션 디렉토리를 포함하는 단계;Receiving a notification message from the listening node, the notification message including the local application directory stored at the listening node; 상기 통지 메시지에 포함된 상기 로컬 애플리케이션 디렉토리와 상기 결합된 애플리케이션 디렉토리와의 비교에 기초하여 상기 결합된 애플리케이션 디렉토리에 대한 갱신을 상기 디렉토리 서버 노드에 저장하는 단계; 및Storing an update to the combined application directory in the directory server node based on a comparison of the local application directory and the combined application directory included in the notification message; And 상기 이동 애드 혹 통신 네트워크와 통신하는 각 네트워크 노드로 갱신 메시지를 송신하는 단계로서, 상기 갱신 메시지는 상기 이동 애드 혹 통신 네트워크내의 각 노드의 상기 로컬 애플리케이션 디렉토리들을 갱신하기 위한 상기 결합된 애플리케이션 디렉토리의 갱신 부분을 포함하는 단계를 포함하는 것을 특징으로 하는 방법.Sending an update message to each network node in communication with the mobile ad hoc communication network, wherein the update message is an update of the combined application directory for updating the local application directories of each node in the mobile ad hoc communication network. And including the portion. 제53항에 있어서, 상기 결합된 애플리케이션 디렉토리는 상기 적어도 하나의 네트워크 노드에 저장된 각 애플리케이션 프로그램에 대한 참조를 저장하고, 상기 로컬 애플리케이션 디렉토리는 상기 로컬 애플리케이션 디렉토리와 관련된 상기 네트워크 노드에 저장된 각 애플리케이션 프로그램에 대한 참조를 저장하는 것을 특징으로 하는 방법.54. The method of claim 53 wherein the combined application directory stores a reference to each application program stored at the at least one network node, and wherein the local application directory is stored in each application program stored at the network node associated with the local application directory. Storing a reference. 제54항에 있어서, 상기 결합된 애플리케이션 디렉토리에 저장된 참조 및 상기 로컬 애플리케이션 디렉토리에 저장된 참조는 애플리케이션 식별자, 네트워크 노드 식별자 및 애플리케이션 역할을 포함하는 것을 특징으로 하는 방법.55. The method of claim 54, wherein the reference stored in the combined application directory and the reference stored in the local application directory include an application identifier, a network node identifier, and an application role. 각각 로컬 애플리케이션 디렉토리를 저장하는 적어도 하나의 네트워크 노드를 포함하는 이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하는 방법에 있어서,A method of performing device detection and service discovery in a mobile ad hoc communication network, each device comprising at least one network node storing a local application directory, the method comprising: 상기 적어도 하나의 네트워크 노드로부터 디렉토리 서버 노드를 선택하는 단계로서, 상기 디렉토리 서버 노드는 통신 가능 구역을 구비하고 결합된 애플리케이션 디렉토리를 저장하는 단계;Selecting a directory server node from the at least one network node, the directory server node having a communicable zone and storing a combined application directory; 상기 통신 가능 구역에 들어가는 리스닝(listening) 노드에서 조회 메시지를 수신하는 단계;Receiving an inquiry message at a listening node entering the coverage area; 상기 디렉토리 서버 노드로 통지 메시지를 송신하는 단계로서, 상기 통지 메시지는 상기 리스닝 노드에 저장된 상기 로컬 애플리케이션 디렉토리를 포함하는 단계; 및Sending a notification message to the directory server node, the notification message including the local application directory stored at the listening node; And 상기 디렉토리 서버 노드로부터 갱신 메시지를 수신하는 단계로서, 상기 갱신 메시지는 상기 이동 애드 혹 통신 네트워크내의 각 노드의 상기 로컬 애플리케이션 디렉토리들을 갱신하기 위한 상기 결합된 애플리케이션 디렉토리의 갱신 부분을 포함하는 단계를 포함하며,Receiving an update message from the directory server node, the update message including an update portion of the combined application directory for updating the local application directories of each node in the mobile ad hoc communication network; , 상기 디렉토리 서버 노드는 상기 통지 메시지에 포함된 상기 로컬 애플리케이션 디렉토리와 상기 결합된 애플리케이션 디렉토리와의 비교에 기초하여 상기 결합된 애플리케이션 디렉토리에 대한 갱신을 저장하는 것을 특징으로 하는 방법.And the directory server node stores an update to the combined application directory based on a comparison of the local application directory and the combined application directory included in the notification message. 제56항에 있어서, 상기 결합된 애플리케이션 디렉토리는 상기 적어도 하나의 네트워크 노드에 저장된 각 애플리케이션 프로그램에 대한 참조를 저장하고, 상기 로컬 애플리케이션 디렉토리는 상기 로컬 애플리케이션 디렉토리와 관련된 상기 네트워크 노드에 저장된 각 애플리케이션 프로그램에 대한 참조를 저장하는 것을 특징으로 하는 방법.57. The method of claim 56, wherein the combined application directory stores a reference to each application program stored at the at least one network node, and wherein the local application directory is stored in each application program stored at the network node associated with the local application directory. Storing a reference. 제57항에 있어서, 상기 결합된 애플리케이션 디렉토리에 저장된 참조 및 상기 로컬 애플리케이션 디렉토리에 저장된 참조는 애플리케이션 식별자, 네트워크 노드 식별자 및 애플리케이션 역할을 포함하는 것을 특징으로 하는 방법.59. The method of claim 57, wherein the reference stored in the combined application directory and the reference stored in the local application directory include an application identifier, a network node identifier, and an application role. 적어도 하나의 네트워크 노드를 포함하는 이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하기 위한, 컴퓨터에서 실행가능한 매체로서, 각 네트워크 노드는 통신 가능 구역내에서 통신하도록 구성되고 로컬 애플리케이션 디렉토리를 저장하도록 구성되는, 컴퓨터에서 실행가능한 매체에 있어서,A computer-executable medium for performing device detection and service discovery in a mobile ad hoc communication network including at least one network node, each network node configured to communicate within a coverage area and to store a local application directory. A computer executable medium configured for 상기 이동 애드 혹 통신 네트워크와 통신하는 각 네트워크 노드의 로컬 애플리케이션 디렉토리 정보를 포함하는 결합된 애플리케이션 디렉토리를 저장 수단에 저장하기 위한 프로그램 코드;Program code for storing in the storage means a combined application directory comprising local application directory information of each network node in communication with the mobile ad hoc communication network; 무선 송신기를 통해, 상기 통신 가능 구역에 들어가는 리스닝(listening) 노드로 조회 메시지를 송신하기 위한 프로그램 코드;Program code for sending, via a wireless transmitter, an inquiry message to a listening node entering the communicable area; 무선 수신기에서 상기 리스닝 노드로부터 통지 메시지를 수신하기 위한 프로그램 코드로서, 상기 통지 메시지는 상기 리스닝 노드에 저장된 상기 로컬 애플리케이션 디렉토리를 포함하는 프로그램 코드;Program code for receiving a notification message from the listening node at a wireless receiver, the notification message comprising the local application directory stored at the listening node; 상기 통지 메시지에 포함된 상기 로컬 애플리케이션 디렉토리와 상기 결합된 애플리케이션 디렉토리와의 비교에 기초하여 상기 결합된 애플리케이션 디렉토리에 대한 갱신을 상기 저장 수단에 저장하기 위한 프로그램 코드; 및Program code for storing, in the storage means, an update to the combined application directory based on a comparison of the local application directory included in the notification message with the combined application directory; And 상기 무선 송신기를 통해, 상기 이동 애드 혹 통신 네트워크와 통신하는 각 네트워크 노드로 갱신 메시지를 송신하기 위한 프로그램 코드로서, 상기 갱신 메시지는 상기 이동 애드 혹 통신 네트워크내의 각 노드의 상기 로컬 애플리케이션 디렉토리들을 갱신하기 위한 상기 결합된 애플리케이션 디렉토리의 갱신 부분을 포함하는 프로그램 코드를 포함하는 것을 특징으로 하는 컴퓨터에서 실행가능한 매체.Program code for sending, via the wireless transmitter, an update message to each network node communicating with the mobile ad hoc communication network, the update message updating the local application directories of each node in the mobile ad hoc communication network. And program code for including an update portion of the combined application directory for a computer. 적어도 하나의 네트워크 노드를 포함하는 이동 애드 혹 통신 네트워크에서 장치 검출 및 서비스 발견을 수행하기 위한, 컴퓨터에서 실행가능한 매체로서, 각 네트워크 노드는 로컬 애플리케이션 디렉토리를 저장하도록 구성되고 상기 적어도 하나의 네트워크 노드로부터 디렉토리 서버 노드를 선택하도록 구성되며, 상기 디렉토리 서버 노드는 통신 가능 구역을 지니고 결합된 애플리케이션 디렉토리를 저장하는, 컴퓨터에서 실행가능한 매체에 있어서, 상기 매체는,A computer executable medium for performing device detection and service discovery in a mobile ad hoc communication network comprising at least one network node, each network node configured to store a local application directory and from the at least one network node. A medium executable on a computer, configured to select a directory server node, the directory server node having a communicable zone and storing a combined application directory. 상기 로컬 애플리케이션 디렉토리를 저장 수단에 저장하기 위한 프로그램 코드;Program code for storing the local application directory in storage means; 상기 디렉토리 서버 노드의 통신 가능 구역에 들어가는 경우 무선 수신기에서 상기 디렉토리 서버 노드로부터 조회 메시지를 수신하기 위한 프로그램 코드;Program code for receiving an inquiry message from the directory server node at a wireless receiver when entering a communicable area of the directory server node; 무선 송신기에서 통지 메시지를 상기 디렉토리 서버 노드로 송신하기 위한 프로그램 코드로서, 상기 통지 메시지는 상기 저장 수단에 저장된 상기 로컬 애플리케이션 디렉토리를 포함하는 프로그램 코드; 및Program code for transmitting a notification message to the directory server node at a wireless transmitter, the notification message comprising the local application directory stored in the storage means; And 상기 디렉토리 서버 노드로부터 갱신 메시지를 상기 무선 수신기에서 수신하기 위한 프로그램 코드로서, 상기 갱신 메시지는 상기 저장된 로컬 애플리케이션 디렉토리를 갱신하기 위한 갱신 부분을 포함하는 프로그램 코드를 포함하고,Program code for receiving an update message at the wireless receiver from the directory server node, the update message including program code including an update portion for updating the stored local application directory, 상기 수신된 갱신 메시지는 상기 송신된 통지 메시지에 포함된 상기 로컬 애플리케이션 디렉토리와 상기 결합된 애플리케이션 디렉토리와의 비교에 기초하는 것을 특징으로 하는 컴퓨터에서 실행가능한 매체.The received update message is based on a comparison of the local application directory and the combined application directory included in the sent notification message.
KR1020057007627A 2002-10-31 2003-10-30 Device detection and service discovery system and method for a mobile ad hoc communications network Expired - Fee Related KR100712047B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/284,135 2002-10-31
US10/284,135 US6909721B2 (en) 2002-10-31 2002-10-31 Device detection and service discovery system and method for a mobile ad hoc communications network
US10/662,407 2003-09-16
US10/662,407 US7590097B2 (en) 2002-10-31 2003-09-16 Device detection and service discovery system and method for a mobile ad hoc communications network

Publications (2)

Publication Number Publication Date
KR20050063798A KR20050063798A (en) 2005-06-28
KR100712047B1 true KR100712047B1 (en) 2007-04-27

Family

ID=32233093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057007627A Expired - Fee Related KR100712047B1 (en) 2002-10-31 2003-10-30 Device detection and service discovery system and method for a mobile ad hoc communications network

Country Status (7)

Country Link
EP (1) EP1556966A4 (en)
JP (2) JP4050297B2 (en)
KR (1) KR100712047B1 (en)
AU (1) AU2003278417B2 (en)
BR (1) BR0315766A (en)
CA (1) CA2501566C (en)
WO (1) WO2004040918A2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493373B2 (en) 2004-12-27 2009-02-17 Nokia Corporation Providing service distribution between distributed applications
US8559350B2 (en) * 2005-12-20 2013-10-15 Microsoft Corporation Mechanism to convey discovery information in a wireless network
KR100829248B1 (en) * 2006-07-14 2008-05-14 엘지전자 주식회사 Software package update method of mobile communication terminal using ad hoc communication, mobile communication terminal for performing this, setting method of serving terminal on ad hoc network, and software package update method of client terminal using serving terminal on ad hoc network
US8616976B2 (en) 2006-11-07 2013-12-31 Core Wireless Licensing S.A.R.L. Gaming via peer-to-peer networks
US7734717B2 (en) 2006-12-05 2010-06-08 Nokia Corporation Software distribution via peer-to-peer networks
US7970350B2 (en) * 2007-10-31 2011-06-28 Motorola Mobility, Inc. Devices and methods for content sharing
US9043478B2 (en) 2009-12-15 2015-05-26 Qualcomm Innovation Center, Inc. Methods and apparatus for using a distributed message bus for ad hoc peer-to-peer connectivity
US10123187B2 (en) 2012-04-17 2018-11-06 Qualcomm Incorporated Methods and apparatus for multiplexing application identifiers for peer-to-peer discovery systems
US20140214940A1 (en) * 2013-01-31 2014-07-31 Sony Corporation Networked devices matching capabilities with tasks
US10003659B2 (en) * 2014-10-31 2018-06-19 Qualcomm Incorporated Efficient group communications leveraging LTE-D discovery for application layer contextual communication
CN114553730B (en) * 2022-04-27 2022-07-15 远江盛邦(北京)网络安全科技股份有限公司 Application identification method and device, electronic equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037033A1 (en) 2001-08-20 2003-02-20 Kai Nyman Naming distribution method for ad hoc networks
KR20030037033A (en) * 2001-11-01 2003-05-12 주식회사 유한정밀 Dart feeding manipulator

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4398042B2 (en) * 2000-01-28 2010-01-13 パナソニック株式会社 Transmission device, reception device, transmission / reception device, transmission method, and reception method
JP2001344163A (en) * 2000-05-31 2001-12-14 Matsushita Electric Ind Co Ltd Signal processing device, medium and information aggregate
JP2002099473A (en) * 2000-09-25 2002-04-05 Casio Comput Co Ltd Method for collecting service information on network, service information collecting device on network, and recording medium storing service information collecting program on network
US8126982B2 (en) * 2001-02-16 2012-02-28 International Business Machines Corporation Method, network device and computer program product for performing service discovery in a pervasive network
DE10112409B4 (en) * 2001-03-13 2005-06-16 M-Creations Gmbh Method and system for data management, and appropriate use of the method and / or the system
US20020178216A1 (en) * 2001-03-13 2002-11-28 Stefan Walther Method and system for data management
JP2002281546A (en) * 2001-03-15 2002-09-27 Sharp Corp Radio communication system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037033A1 (en) 2001-08-20 2003-02-20 Kai Nyman Naming distribution method for ad hoc networks
KR20030037033A (en) * 2001-11-01 2003-05-12 주식회사 유한정밀 Dart feeding manipulator

Also Published As

Publication number Publication date
AU2003278417B2 (en) 2007-05-31
WO2004040918A3 (en) 2005-05-26
JP2006510124A (en) 2006-03-23
KR20050063798A (en) 2005-06-28
EP1556966A4 (en) 2009-01-21
BR0315766A (en) 2005-09-06
CA2501566C (en) 2012-07-10
EP1556966A2 (en) 2005-07-27
JP4563425B2 (en) 2010-10-13
WO2004040918A2 (en) 2004-05-13
CA2501566A1 (en) 2004-05-13
AU2003278417A1 (en) 2004-05-25
JP4050297B2 (en) 2008-02-20
JP2008017495A (en) 2008-01-24

Similar Documents

Publication Publication Date Title
US7590097B2 (en) Device detection and service discovery system and method for a mobile ad hoc communications network
JP4563425B2 (en) Device detection and service discovery system and method for mobile ad hoc communication networks
US7313120B2 (en) Application control in peer-to-peer ad-hoc communication networks
EP1517488A2 (en) Mechanism for improving connection control in peer-to-peer ad-hoc networks
KR100700688B1 (en) Personalized message exchange between wireless access points and services
US8060590B2 (en) Distance-aware service discovery mechanism for determining the availability of remote services in wireless personal area networks
US8005952B2 (en) Method for intelligently selecting wireless access point
US8442549B2 (en) Automatic discovery and connectivity protocol for bluetooth scatternet formation
US20170346891A1 (en) Communication method
US9301078B2 (en) Network-intelligent scanner
JP3771850B2 (en) Method for performing service discovery, network device, and computer program element
KR100636319B1 (en) Software automatic upgrade system and method of terminal connected to AP
Hämäläinen et al. Service Discovery in Mobile Peer-to-Peer Environment

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20050429

Patent event code: PA01051R01D

Comment text: International Patent Application

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20050511

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20060928

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20070220

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20070420

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20070423

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20100414

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20110414

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20120409

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20120409

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20130403

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20130403

Start annual number: 7

End annual number: 7

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20150309