KR100758253B1 - 사용자 통지 시스템 및 방법 - Google Patents

사용자 통지 시스템 및 방법 Download PDF

Info

Publication number
KR100758253B1
KR100758253B1 KR1020057022641A KR20057022641A KR100758253B1 KR 100758253 B1 KR100758253 B1 KR 100758253B1 KR 1020057022641 A KR1020057022641 A KR 1020057022641A KR 20057022641 A KR20057022641 A KR 20057022641A KR 100758253 B1 KR100758253 B1 KR 100758253B1
Authority
KR
South Korea
Prior art keywords
node
user
various embodiments
message
peer
Prior art date
Application number
KR1020057022641A
Other languages
English (en)
Other versions
KR20060017820A (ko
Inventor
오우티 마르키
티모 베살라이넨
안티 알토넨
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/447,115 external-priority patent/US20040243580A1/en
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20060017820A publication Critical patent/KR20060017820A/ko
Application granted granted Critical
Publication of KR100758253B1 publication Critical patent/KR100758253B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1055Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving connection limits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • H04L67/107Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

노드 추가 등에 적용할 수 있는 시스템들 및 방법들은 노드의 사용자 인터페이스가 아이들 상태인 동안 노드 사용자에게 하나 이상의 이벤트들에 대해 정보를 알려준다. 사용자는, 상응하는 동작들을 위해 정보로 주어진 이벤트들 중 하나 이상을 선택할 수 있을 것이다. 사용자에게 정보가 주어진 이벤트들에는, 소프트웨어 동작들에 해당하는 이벤트들 및/또는 네트워크 환경(가령, 피어 투 피어 환경)에 해당하는 이벤트들이 포함될 수 있다.

Description

사용자 통지 시스템 및 방법{System and method for user notification}
본 발명은 사용자 통지 시스템 및 방법에 관한 것이다.
근래, 모바일 노드 등의 컴퓨터가 생성하고 수신하는 데이터의 양이 증가하고 있다. 예를 들면, 많은 사람이 텍스트 관련 통신용 메일보다는 채팅이나 문자 서비스를 애용하는 추세이다. 유사하게, 많은 개인들이 콘텐츠를 얻기 위해 레코드점, 소프트웨어 가게, 라디오, TV, 및 영화관 등 기존의 장소보다는 파일 공유를 더 선호해 가고 있다. 더욱이, 모바일 노드와 같은 컴퓨터는 각 개인이 디지털 콘텐츠 항목(예를 들어, 영상, 비디오 클립, 오디오 녹음 등)을 직접 생성하고 편집할 수 있는 능력을 제공한다. 많은 경우, 각 개인들은 이러한 디지털 항목을 파일 공유 기술을 통해 다른 사람들과 공유하길 원한다. 이에 따라, 사용자들이 데이터의 증가에 따라갈 수 있도록 도와주는 기술에 대한 관심이 있을 것이다.
본 발명의 다양한 실시 예에 따르면, 예를 들어, 노드의 사용자 인터페이스가 유휴 상태에 있는 동안 노드가 하나 혹은 이상의 이벤트를 사용자에게 통지할 수 있도록 하는 시스템 및 방법이 제공된다. 다양한 실시 예에서, 대응하는 동작을 위해 사용자는 통지받은 이벤트 중 하나 혹은 그 이상을 선택할 수도 있다.
사용자가 통지받은 이벤트는, 예를 들어, 소프트웨어 동작(operation)에 대응하는 이벤트 및/혹은 네트워크 환경(예를 들어, 피어-투-피어 (peer-to-peer) 환경)에 대응하는 이벤트를 포함할 수도 있다.
도 1은 본 발명의 다양한 실시 예에 따른 활성화와 이벤트 상세와 관련된 바람직한 단계를 도시한 도면이다.
도 2는 본 발명의 다양한 실시 예에 따른 이벤트 모니터링, 디스플레이, 및 현존하는 표시된 이벤트의 선택과 관련된 바람직한 단계를 도시한 도면이다.
도 3은 본 발명의 다양한 실시 예에 따른 검색 문의 메시지 송신과 관련된 바람직한 단계를 도시한 도면이다.
도 4는 본 발명의 다양한 실시 예에 따른 검색 문의 메시지 수신과 관련된 바람직한 단계를 도시한 도면이다.
도 5는 본 발명의 다양한 실시 예에 따른 검색 문의 메시지 수신과 관련된 바람직한 단계를 도시한 도면이다.
도 6은 본 발명의 다양한 실시 예에 따른 항목 요청 메시지 수신과 관련된 바람직한 단계를 도시한 도면이다.
도 7은 본 발명의 다양한 실시 예에 따른 디스패치 메시지 송신과 관련된 바람직한 단계를 도시한 도면이다.
도 8은 본 발명의 다양한 실시 예에 따른 그룹 정보를 제공하는 노드 찾기와 관련된 바람직한 단계를 도시한 도면이다.
도 9는 본 발명의 다양한 실시 예에 따른 검색과 관련된 바람직한 단계를 도시한 도면이다.
도 10은 본 발명의 다양한 실시 예에 따른 개체를 사용가능하도록 하는 것과 관련된 바람직한 단계를 도시한 도면이다.
도 11은 본 발명의 다양한 실시 예에 따른 메시징과 관련된 바람직한 단계를 도시한 도면이다.
도 12는 본 발명의 다양한 실시 예에 따른 바람직한 그룹 멤버쉽 인증을 도시한다.
도 13은 본 발명의 다양한 실시 예에 따른 인증과 관련된 바람직한 단계를 도시한 도면이다.
도 14는 본 발명의 다양한 실시 예에 따른 인증과 관련된 다른 바람직한 단계를 도시한 도면이다.
도 15는 본 발명의 다양한 실시 예에 따른 어플리케이션 계층 플로우와 관련된 바람직한 단계를 도시한 도면이다.
도 16은 본 발명의 다양한 실시 예에 적용 가능한 바람직한 범용 컴퓨터를 도시한다.
도 17은 본 발명의 다양한 실시 예에 적용 가능한 바람직한 노드의 기능 블록도 이다.
개괄적 동작 (General operation)
발명의 다양한 실시 예에 따르면, 예를 들어, 노드의 사용자 인터페이스가 유휴 상태에 있는 동안 노드가 한 개 혹은 그 이상의 이벤트를 사용자에게 통지하도록 할 수 있는 시스템 및 방법이 제공된다. 다양한 실시 예에서, 상기 노드는, 예를 들어, 사용자에게 스크린 세이버 등을 통해 통지할 수도 있을 것이다.
상기 이벤트는, 예를 들어, 소프트웨어 동작에 대응하는 이벤트, 네트워트 동작에 대응하는 이벤트 등을 포함할 수 있다. 이러한 네트워크 환경은, 예를 들면, 피어-투-피어 (peer-to-peer) 환경, 혹은 이하 상세히 설명될 인증 결합을 채용한 환경일 수도 있다.
다양한 실시 예에서, 노드가 사용자에게 통지하고자 하는 이벤트는 하나 혹은 그 이상의 상세 내용(specification)에 일치할 수 있다. 이러한 상세 내용 (specification)은, 예를 들면, 노드가 사용자에게 통지해야 하는 이벤트의 종류, 메타데이터 및/혹은 노드가 사용자에게 통지해야 하는 이벤트와 관련된 다른 파라미터 등을 포함할 수도 있다. 상세 내용(specification)은, 예를 들어, 사용자, 시스템 관리자 등이 제공할 수도 있다.
또한, 다양한 실시 예에서, 노드 사용자는 노드를 사용하여 대응하는 동작을 위해 통지받은 이벤트 중 하나나 혹은 그 이상의 이벤트를 선택할 수 있다. 이러한 이벤트의 선택은, 예를 들어, 적절한 소프트웨어를 활성화하고, 다양한 해당 정보를 사용자에게 표시하며, 사용자가 다양한 해당 동작을 수행할 수 있도록 해준다.
본 발명의 다양한 측면이 보다 상세히 이하 설명될 것이다.
활성화 및 이벤트 상세 내용 (Activation and Event Specification)
도 1에 도시된 바와 같이, 본 발명의 다양한 실시 예에 따르면, 노드의 사용자 인터페이스가 유휴 상태에 있는 동안 노드로부터 이벤트를 통지받고자 하는 사용자가 통지받고자 하는 의사를 표현할 수도 있다 (단계 101). 이러한 표현은, 예를 들면, 노드의 사용자 인터페이스를 통해 이루어질 수 있다.
상기에 언급된 바와 같이, 다양한 실시 예에서, 사용자가 통지받는 이벤트는 하나 혹은 그 이상의 상세 내용(specification)과 일치할 수 있다. 이러한 상세 내용(specification)을 사용자가 제공한 경우, 노드는 이러한 상세 내용(specification)을 사용자에게 문의하도록 작동할 수 있다. 이러한 문의는, 예를 들면, 노드의 사용자 인터페이스를 통해 이루어질 수 있다.
상세 내용(specification)을 문의하기 위한 첫 단계로, 이벤트를 사용자에게 통지할 수 있는 것과 관련하여, 노드는 사용자에게, 예를 들면, 소프트웨어에 대응하는 엔트리, 네트워크 환경(예를 들어 피어-투-피어 환경)에 대응하는 엔트리 등을 포함하는 리스트를 제공할 수 있다 (단계 103).
상세한 예로서, 상술 된 바와 같이 사용자의 노드에서 실행되는 소프트웨어와 대응하는 엔트리를 제공받을 수도 있고 이 소프트웨어의 동작과 관련하여 상술 된 바와 같이 사용자는 이벤트를 통지받을 수도 있다. 또 다른 상세한 예로서, 사용자가 피어-투-피어 환경 내의 하나 혹은 그 이상의 피어-투-피어 그룹의 일원인 경우, 사용자는 일원으로 속해 있는 그룹들의 리스트를 제공받을 수 있고, 상술 된 바와 같이. 그 리스트를 위해 사용자가 이벤트를 통지받을 수도 있다.
다양한 실시 예에서, 노드나 혹은 다른 곳(예를 들어, 웹 서비스로서)에서 실행 가능하고 상호 간 통신이 수립될 수 있는 소프트웨어를 노드가 열거할 수 있다. 이런 소프트웨어는, 예를 들면, SOAP (Simple Object Access Protocol), RMI (Remote Method Invocation), JMS (Java Messaging Service), CORBA (Common Object Request Broker Architecture), Applescript/Apple Events, VBA (Visual Basic for Applications) 등을 통해 통신을 수립할 수 있는 소프트웨어일 수 있다. 이하에서 더 상세히 설명될 바와 같이, 이런 상호 간 통신을 통해 노드는 노드 및/또는 다른 곳에서 실행되는 소프트웨어와 이 소프트웨어에 관하여 발생하는 이벤트에 관해 통신할 수도 있다. 다양한 실시 예에서, 상기와 같은 소프트웨어가 노드가 아닌 다른 곳에서 실행되는 경우, 피어-투-피어 메세징 등은 이 소프트웨어와 통신하는데 사용될 수도 있음을 알 수 있다.
이러한 소정 실시 예에서, 노드는 통신이 설립될 수 있는 소프트웨어의 표시를 제공받을 수 있고, 상기 노드는 리스트 중에서 사용자에게 제공되어야 하는 소프트웨어들의 리스트를 결정하기 위해서 실행할 수 있는 소프트웨어로서, 리스트를 검토한다. 이런 표시는, 예를 들면, 시스템 관리자 등에게 제공받을 수 있다.
또 다른 예로서, 다양한 실시 예에서, 노드는 이런 표시를 채용 및/또는 수신할 수 있다. 대신에, 노드는 상호 간 통신이 가능한 지 여부를 판별하기 위해 실행할 수 있는 소프트웨어에 접근할 수도 있다. 예를 들어, 노드는 하나 혹은 그 이상의 상호 간 통신 프로토콜을 이용하여 사용가능한 소프트웨어 요청을 시도할 수도 있고, 적절한 응답이 수신되었는지를 확인할 수도 있다.
실시 예에서, 사용자가 하나 혹은 그 이상의 네트워크 환경에 대응하는 엔트리를 제공받은 경우, 노드는 이 네트워크 환경에 관해 그룹, 연결 등의 리스트를 작성하고 이 네트워크 환경에 관해 노드는 엔트리, 메시지 등이, 이하 상세히 설명될, 수신, 바이패스 등이 가능하지 알고 있다. 노드는 다양한 방법으로 이를 알고 있을 수 있다. 예를 들면, 이하에서 상세히 설명되는 바와 같이, 노드는 수신한 그룹 정보를 통해 이를 알 수도 있다.
다양한 실시 예에서, 사용자는 상기 기술된 종류의 리스트로부터 엔트리(예를 들어, 소프트웨어 혹은 그룹)를 선택할 수도 있다. 이에 응하여, 노드는 사용자가 통지받을 수 있는 당해 이벤트와 관련된 상세 사항을 사용자에게 제공할 수 있다 (단계 105).
노드는 다양한 방법으로 이벤트를 알 수 있을 것이다. 예를 들어, 노드는 상기 통신 수립 가능한 소프트웨어에 대해 수신된 통지와 함께 포함된 정보를 통해 이러한 이벤트를 알 수 있다. 또 다른 예로써, 노드는 수신한 그룹 정보를 통해 이러한 이벤트를 알 수도 있다. 또 다른 예로써, 노드는 실행된 문의를 통해 이러한 이벤트를 알 수도 있다. 예를 들어, 송신가능한 명령, 문의 등과 관련된 정보를 위해 상호 간 통신이 수립될 수 있는 소프트웨어를 문의하도록 노드는 기능 할 수도 있다. 상세한 예로써, 노드는 소프트웨어에 요청을 디스패치하여 소프트웨어가 이해가능한 명령, 메시지, 등의 사전을 수신할 수도 있다.
일 예로써, 제공된 리스트로부터 소프트웨어 항목을 사용자가 선택한 경우, 노드는 모니터링 실행가능한 다양한 이벤트 관련 정보를 사용자에게 제공할 수 있 고, 모니터링을 위한 하나 혹은 그 이상의 이벤트를 사용자가 선택할 수 있도록 할 수도 있다 (단계 107). 다양한 실시 예에서, 노드는 사용자가 주의하여야 하는 상황 하에서 상기 상황과 관련된 하나 혹은 그 이상의 상세 내용을 사용자가 제공할 수 있도록 할 수도 있다 (단계 109). 이러한 상세 내용은, 예를 들면, 메타데이터, 값들, 범위 등을 포함할 수 있다.
상세한 예로써, 선택된 이벤트에 대응하는 소프트웨어가 보유하는 주소록에 등록된 (held in) 일 사용자에 대응하는 노드가 가까워지는 (come nearby) 때를 알기 위해 실행되었고, 선택된 이벤트가 등록 사용자의 가까워진 노드인 경우에, 등록 사용자가 특정 등록 사용자 중의 한 사람이거나, 가까워진 때가 특정 범위에 내이거나, 그 위치가 특정 장소 중의 하나이거나 혹은 특정 범위 내인 경우 (예를 들어, 특정 지리 좌표에 중심점을 갖는 구체적인 원의 내부인 경우)등에서만 상기 사용자가 이벤트에 주의를 기울일 수 있다는 것을 상기 사용자는 명시할 수 있다.
또 다른 예로써, 사용자가 피어-투-피어 그룹을 제공된 리스트로부터 선택한 경우, 노드는 상기와 유사하게 모니터링이 실행될 수 있는 하나 혹은 이상의 이벤트를 사용자에게 제공할 수도 있고, 사용자로 하여금 모니터링을 위한 하나 혹은 이상의 이벤트를 선택하도록 할 수도 있거나 혹은 상기 사용자가 이벤트에 주의를 하여야만 하는 상황 하에서 그 상황 관련 하나 혹은 그 이상의 상세 내용을 사용자로 하여금 제공하도록 할 수도 있다.
상세한 예로써, 사용자가 특정 피어-투-피어 그룹을 선택하였을 때, 사용자는, 예를 들어, 노드를 향하는 메시지 혹은 개체의 수신, 파이패스 위한 메시지 혹 은 개체의 수신 등을 포함하는 모니터 가능한 이벤트를 제공받을 수도 있다. 다양한 실시 예에서, 상기 사용자는 개체(예를 들어, 콘텐츠 개체)의 가용성 안내 수신, 초대(예를 들어, 그룹 초대) 수신, 채팅 혹은 즉석 문자 메시지 수신, 요청된 개체 수신, 개체 업로드의 완료 성공 통지 수신 등 좀 더 상세한 모니터 가능한 이벤트를 제공받을 수도 있다.
예를 들어, 상기 사용자가 바이패스를 위한 메시지나 개체 쉰을 통지받기 원한다는 것을 표시한 경우, 상기 사용자의 노드가 수신한 것이 상기 사용자가 명시한 하나 혹은 그 이상의 메타데이터와 결합한 콘텐츠 항목 개체이었을 때 상기 사용자가 통지받기를 희망했다는 것을 명시할 수도 있다.
상세한 예로써, 상기 사용자는 사용자가 속해 있는 하키 팬을 위한 특정 피어-투-피어 그룹과 관련된 상기 사용자의 노드를 향한 메시지의 수신 및/또는 바이패스를 위한 메시지의 수신을 통보받기를 희망한다는 것을 표시한 것으로 가정한다. 상기 사용자가 상기 그룹과 연관된 하나 혹은 그 이상의 챗 보드에서, 모니터링 중인 그룹 멤버들에 의한 포스팅을 통해 특정 진행중인 게임에서 일어나고 있는 일에 대해 알고자 한다면, 상기 사용자는 해당 메타데이터 및/혹은 다른 정보를 명시할 수도 있다.
다양한 실시 예에서, 상기 사용자가 특정 피어-투-피어 그룹을 선택한 경우에, 상기 그룹과 관련된 일반 활동 정도 및/혹은 상기 그룹과 관련된 최근 활동 요약을 제공받는 옵션을 상기 사용자가 제공받을 수도 있다는 것을 알 수 있다. 다양한 실시 예에서, 일반 활동 정도는, 예를 들어, 특정 시간 동안 사용가능한 새로 운 콘텐츠의 양, 회원들의 활동, 챗 활동 정도 등을 포함할 수도 있다. 다양한 실시 예에서, 상기와 같은 일반 활동 정도 및/또는 요약을 제공받도록 선택한 사용자는, 이하 설명될 사항과 유사하게, 이러한 정도 및/혹은 요약의 통보를 스크린 서버 등을 통해서 받을 수 있다. 다양한 실시 예에서, 이와 같은 정도 및/또는 요약은 정기적으로 이용가능하도록 될 수 있다.
일반 활동 정도 및 최근 활동 요약은 다양한 방법으로 준비될 수 있다. 예를 들어, 다양한 실시 예에서, 상기 노드는 적절한 피어-투-피어 그룹 내에서 발생하는 다양한 이벤트 관련 정보를 수집할 수도 있고, 활동 정도를 생성하는 데이터를 열거하거나 혹은 최근 활동 요약을 생성하는 데이터를 요약할 수도 있다. 이와 같은 수집은, 예를 들면, 여기서 설명될 사항과 유사하게 실행될 수 있다. 수집된 이벤트의 열거 및 요약은, 예를 들면, 종래 알려진 다양한 기술에 따라서 실행될 수도 있다. 다양한 실시 예에서, 활동 정도 및 요약이 특정 시간대와 관련 있는 경우, 상기 노드는 상기 활동 정도 및 요약을 준비함에 있어, 사기 시간대와 관련 없는 이벤트들은 걸러 낼 수도 있다. 상세한 예로써, 상기 노드는 특정 일수보다 많은 일수의 이벤트는 걸러 낼 수도 있다.
상기와 같이, 다양한 실시 예에서, 상기 노드는 활동 정도 및/혹은 요약을 생성할 수도 있다. 또는 혹은 더하여, 다양한 실시 예에서, 활동 정도 및/또는 요약은 수퍼 피어(super peer) 등에 의해 생성될 수도 있다. 상기 수퍼 피어는, 예를 들어, 적절한 피어-투-피어 그룹의 그룹 매니저의 노드일 수 있다. 또 다른 예로써, 상기 수퍼 피어는 서버일 수도 있다. 이러한 수퍼 피어는 다양한 실시 예에 서 상기에 설명된 바와 유사하게 기능을 할 수도 있다. 다양한 실시 예에서, 상기 수퍼 피어는 생성된 활동 정도 및/또는 요약을 푸시(push)를 통해 노드에서 사용가능하도록 할 수도 있다. 상기 수퍼 피어는, 상술된 바와 같이, 다양한 실시 예에서, 상기와 같은 활동 정도 및/또는 요약을 정기적으로 사용가능하도록 할 수도 있다.
다양한 실시 예에서, 상기에 서술된 바와 같이, 메타데이터를 명시할 수 있는 기능(functionality)은 검색과 관련하여, 예를 들어, 하기 서술된 바와 유사하게 실행될 수도 있음을 더 알 수 있다. 또한, 상술된 바와 같이, 다양한 실시 예에서, 사용자가 통지받고자 하는 이벤트는, 또는 혹은 더하여, 상기 사용자가 제공하지 않은 하나 혹은 그 이상의 상세 내용에 따른 것일 수도 있다는 것을 알 수 있다. 이에 따라, 상기 노드는, 다양한 실시 예에서, 이러한 상세 내용을 시스템 관리자 등으로부터 수신한다. 이와 같은 상세 내용은, 예를 들어, 네트워크를 통해 (예를 들면, 하나 혹은 이상의 피어-투-피어 연결 및/또는 하나 혹은 이상의 피어-투-피어 그룹의 멤버쉽을 통해) 수신될 수 있고, 소비자 서비스센터 등의 노드에 위치할 수도 있다.
이벤트 모니터링 및 표시 (Event monitoring and Display)
도 2를 참조하면, 상술된 바와 같이, 본 발명의 다양한 실시 예에 따라, 상기 노드의 사용자 인터페이스가 비활성 상태에 있는 동안, 상기 사용자의 노드는 이벤트를 모니터하고, 상기 사용자에게 이러한 이벤트의 발생을 하나 혹은 그 이상의 상세 내용에 따라 통지할 수도 있다는 것을 알 수 있다. 상술된 바와 같이, 이 러한 통지는, 다양한 실시 예에서, 스크린 서버 등으로 이루어질 수 있다. 상기 노드의 사용자 인터페이스가 비활성화 상태에 있는 동안 노드가 이벤트를 모니터할 수 있는 (단계 201) 기능은 다양한 방법으로 실행될 수 있다.
예를 들어, 본 발명의 다양한 실시 예에서, 노드는 정기적으로 모니터 되고 있는 이벤트에 대응하는 소프트웨어를 상술된 바와 같은 상호 간 통신을 통해 문의할 수도 있다. 이러한 문의는 여러 방법으로 이루어질 수 있다. 예를 들어, 다양한 실시 예에서, 상기 노드는 모니터된 이벤트와 관련한 제공된 상세 내용과 연관된 이러한 문의 데이터를 포함할 수도 있다. 문의에 포함될 수 있는 제공된 상세 내용과 관련된 데이타의 범위는 상기 소프트웨어가 응답할 수 있는 문의인지 여부를 따를 수 있다.
상기 노드가 해당 이벤트와 관련된 모든 제공받은 상세 내용과 연관된 문의 데이터를 포함하는 경우, 상기 문의의 응답을 수신한 상기 노드는 상기 노드의 사용자가 통지받아야 하는지 여부를 알기 위한 이후의 과정을 실행할 필요가 없을 수도 있다. 예를 들어, 상기 노드는 상기 문의에 대한 '예스' 혹은 '노' 응답을 수신할 수도 있고, '예스' 응답을 수신하면 그 사용자에게 통지할 수도 있다. 다양한 실시 예에서, 이와 같은 문의 응답에 포함된 것은 부가 정보일 수도 있다.
상세한 예로써, 상기 노드의 사용자가 특정 소프트웨어가 특정 영상 렌더링을 완성하게 된 경우 통지받기를 희망함을 표시한 경우를 가정한다. 상기 노드의 사용자 인터페이스가 유휴 상태에 들어가게 되면, 상기 노드는 정기적으로 상기 특정 소프트웨어에 문의를 하고, 상기 문의는 상기 특정 영상의 표시를 포함하고 상 기 영상에 대한 렌더링이 완료되었는지 여부를 문의한다. 이에 응하여, 상기 노드는 '예스' 혹은 '노' 대답을 수신할 수 있다.
상기 노드가 이벤트 관련 제공된 상세 내용 중 어느 것과도 관련이 없거나 혹은 일부와 관련이 있는 문의 데이터를 포함하는 경우, 상기 노드는 사용자가 통지 받아야만 하는지 여부를 알기 위한 과정을 더 수행해야 할 필요가 있을 수 있다. 예를 들어, 상기 노드가 상기 문의에 대응하여 이벤트의 발생과 관련된 하나 혹은 이상의 상세 사항을 수신할 수도 있고, 도한 상기 노드는 상기 상세 사항을 상기 이벤트가 상기 사용자에게 보고되어야만 하는지를 판별하기 위해서 검사할 수도 있다.
상술된 경우의 상세한 일 예로써, 상기 사용자가 렌더링 완료를 통지받기를 희망함을 표시한 경우, 상기 노드는 상기 특정 소프트웨어로 렌더링이 완료 되었는지 여부를 문의하고, 상기 특정 영상의 문의 표시를 포함하지는 않는다. 이에 응하여, 상기 노드는 렌더링이 완료된 영상 표시를 수신할 수 있다. 상기 노드는 특정 영상에 있어서 상기 문의 응답을 고려하여 상기 특정 영상에 대해 렌더링이 완료되었는 여부를 판별할 수도 있고, 이러한 경우 (in the case where such was found to be the case), 적절하게 상기 노드의 사용자에게 통지할 수도 있다.
상기 상술된 예에서, 상기 노드는 이벤트 발생을 사용자에게 통지하여야 하는지 여부를 판별하기 위해서 이에 적절한 소프트웨어를 문의했다. 이 대신에, 다양한 실시 예에서,상기 노드는 이벤트가 발생하면 적절한 소프트웨어로부터 통지를 수신할 수 있음을 알 수 있다.
이러한 실시 예에서, 상기 노드는 이벤트 발생 관련 통지를 수신하고자 하는 희망을 적당한 소프트웨어에 통지하도록 기능할 수도 있고, 상기 노드는 하나 혹은 이상의 해당 상세 사항, 혹은 상술된 바와 같은 종류의 준비된 상세 내용에 대응하는 하나나 혹은 그 이상의 상세 사항을 표시할 수도 있다. 상세 사항으로 표시될 수 있는 범위는 상기 적절한 소프트웨어의 능력에 의해 결정될 수도 있다.
다양한 실시 예에서, 상기 노드가 적절한 소프트웨어로부터 통지를 수신함과 동시에 사용자에게 통지하여야 하는지 여부를 알기 위해 실행할 필요가 있는 처리의 양은, 상술된 바와 유사하게, 상기 노드가 상기 소프트웨어에 제공한 상세 사항의 양에 의해 결정될 수도 있다. 상기 노드가 통지를 수신함과 동시에 실행하는 동작은, 다양한 실시 예에서, 상기와 같이 문의 응답을 수신하여 수행하는 동작들과 유사할 수가 있다.
상술된 바와 같이, 상기 노드가 사용자에게 통지하기 위한 이벤트는, 다양한 실시 예에서, 네트워크 환경(예를 들어, 피어-투-피어 환경)에 관한 것일 수 있다. 예를 들어, 상술된 바와 같이, 이러한 이벤트가 상기 노드의 사용자가 멤버로 있는 그룹에 관해서 피어-투-피어 환경 내에서, 노드를 향한 메시지 혹은 개체의 수신, 바이패스를 위한 메시지 혹은 개체의 수신, 보고 수신, 초대 수신, 챗 혹은 즉석 문자 메시지 수신, 요청된 개체 수신 등에 대응하는 것일 수 있다. 다양한 실시 예에서, 이하 좀 더 상세히 설명될 바와 같이, 피어-투-피어 환경 내에서의 이러한 것들의 수신은 상기 노드의 사용자가 속해 있는 하나 혹은 그 이상의 피어-투-피어 그룹과 관련 있을 수 있고, 이런 피어-투-피어 그룹에 있어서 다른 노드들과의 연 결은 인증된 연결일 수 있다는 것을 알 수 있다.
다음으로, 상기 노드는 사용자가 통지받아야만 하는지 여부를 판별하기 위해 어떤 것을 수신해야 하는지를 검사할 수도 있다. 이러한 기능은 여러 가지 방법으로 실행될 수 있다. 예를 들어, 메타데이터가 명시된 경우, 상기 노드는 상기 사용자가 통지받아야만 하는지 여부를 판별하기 위해 수신해야 하는 것과 연관된 메타데이터를 검사할 수 있다. 이러한 검사는, 예를 들면, 이하 설명될 바와 유사하게 이루어질 수 있다. 다른 예로써, 상기 사용자가 통지받아야만 하는지 여부를 판별하기 위해 수신해야 하는 것과 관련하여, 상기 노드는 텍스트 검색, 영상 분서, 사운드 분서, 다른 데이터 분석 등과 같은 태스크를 수행할 수도 있다.
상기 노드가 이벤트 발생을 사용자에게 통지하여야 한다는 것을 결정한 후, 상기 노드는 사용자 인터페이스가 유휴 상태에 있는 동안 사용자에게 통지할 수 있다. 상기 노드가 상기 사용자에게 통지할 수 있도록 하는 기능은 여러 가지 방법으로 실행될 수 있다. 예를 들면, 상술된 바와 같이, 상기 노드는 스크린세이버 등을 통해 사용자에게 통지할 수도 있다. 다양한 실시 예에서, 새로운 이벤트가 발생하는 중에 상기 노드는 바이브레이터를 활성화하고, 빛을 발생하거나, 소리를 냄으로써 사용자에게 이를 통지할 수 있다.
다양한 실시 예에 따르면, 상기 이벤트에 대응하는 텍스트, 그래픽 등은 스크린세이버 등을 통해 표시될 수 있다 (단계 203). 예를 들면, 상기 텍스트, 그래픽 등은 스크롤 될 수 있도록 표시될 수 있다. 스크롤은, 예를 들면, 디스플레이의 평면 내에 보이도록 이차원적일 수 있다. 또는, 스크롤은 디스플레이의 평면에 수 직인 축에 대하여, 적어도 어느 정도 움직이도록 보이게 삼차원적일 수 있다. 따라서, 이러한 스크롤은, 예를 들면, 스크린의 평면으로부터 혹은 평면을 향하여 적어도 어느 정도 움직이는 것처럼 보일 수 있다.
본 발명의 다양한 실시 예에 따른, 상기 이벤트에 대응하는 정보의 양 변화는 텍스트, 그래픽 등을 통해 이루어질 수 있다. 예를 들면, 이벤트의 종류 및/또는 상기 이벤트 관련 하나 혹은 그 이상의 상세 사항은 전송될 수도 있다.
상세한 일 예로써, 상기 이벤트는 미디어 항목 수신과 대응하는 경우, 상기 미디어 항목의 제목, 상기 미디어 항목 장르, 상기 미디어 항목에 대응하는 영상 (예를 들어, 앨범 표지, 영화 포스터, 혹은 필름 프레임) 등이 전송될 수 있다. 또 다른 상세한 예로써, 상기 이벤트가 메시지(예를 들어, 상기 사용자가 속해 있는 챗 그룹에 대응하는 메시지) 수신과 대응하는 경우, 상기 메시지의 제목, 상기 메시지의 요약 등이 전송될 수 있다. 또 다른 상세한 예로써, 상기 이벤트가 보유 주소록에 등록된 사용자의 근접하는 노드에 대응하는 경우, 상기 사용자에 대응하는 다양한 주소록 정보(예를 들면, 이름, 전화번호 및/또는 주소)등을 전송할 수 있다. 이러한 다양한 실시 예에서, 이런 영상은, 상기 사용자의 노드가 근접할 때, 상기 주소록에 등록될 수도 있고 그리고/또는 상기 사용자의 노드로부터 수신될 수도 있다는 것을 알 수 있다.
다양한 실시 예에서, 이벤트 발생을 통지받는 사용자는 다수의 이벤트 발생 을 동시에 통지받을 수도 있다는 것을 알 수 있다. 예를 들어, 상기 다수의 각 이벤트에 대응하는 상기 텍스트, 그래픽 등은 동시에 스크린세이버 등을 통해 스크롤 될 수 있다. 상세한 예로써, 여섯 개의 스크롤 라인이 있을 수 있다. 또는 혹은 더해서, 텍스트, 그래픽 등이 제공되고 하나 혹은 이상의 이벤트에 대응할 수도 있다. 상세한 일 예로써, 두 개의 새로운 챗 메시지를 수신하였다는 것을 지시하는 텍스트가 디스플레이될 수도 있다.
여기서 서술된 비주얼 디스플레이는 여러 가지 방법으로 수행될 수 있다는 것을 알 수 있다. 상세한 예로써, OpenGL, NokiaGl 등이 이용될 수 있다. 다양한 실시 예에서, 상기 사용자는 상기 비주얼 디스플레이와 관련된 다양한 선호도 등을 설정할 수 있다는 것을 알 수 있다. 예를 들면, 상기 사용자는 스크롤 스피드, 스크롤 라인의 수, 색상, 이차원 스크롤 혹은 삼차원 스크롤인지의 여부 등을 선택할 수 있다.
대응 동작을 위한 디스플레이된 이벤트 선택 (Selection of Displayed Events for Corresponding Operations)
상술된 바와 같이, 본 발명의 다양한 실시 예에서, 상기 사용자는 통지받은 하나 혹은 그 이상의 이벤트에 대응하는 동작을 선택하기 위해 사용자의 노드를 이용할 수 있다. 이러한 기능은 여러 가지 방법으로 구현될 수 있다.
도 2를 더 참조하면, 본 발명의 실시 예에서, 상술된 바와 같이, 상기 노드가 사용자에게 스크린세이버 등을 통해 이벤트를 통지하는 경우에, 상기 사용자는, 예를 들면, 통지받고 있는 하나 혹은 그 이상의 이벤트와 대응하는 동작을 선택하고자 함을 상기 노드에 알릴 수 있음을 알 수 있다 (단계 205). 상기 사용자가 이러한 요구를 표현할 수 있도록 하는 기능은 여러 가지 방법으로 구현될 수 있다. 예를 들면, 다양한 실시 예에서, 상기 사용자는 이러한 요구를 상기 노드와 결합된 키패드, 키보드 등의 하나 혹은 이상의 특정 키를 눌러서 표현할 수 있다.
이에 대응하여, 다양한 실시 예에서, 상기 사용자에게 통지되고 있는 하나 혹은 이상의 이벤트에 대응하는 동작을 사용자가 선택할 수 있도록 하는 인터페이스를 상기 노드가 제공할 수도 있다 (단계 207). 이러한 기능은 여러 가지 방법으로 실행될 수 있다. 예를 들어, 다양한 실시 예에서, 상기 노드는 이벤트 정보를 제공하는 스크린세이버 등의 현재 비주얼 상태를 캡쳐할 수 있고, 대응하는 동작들을 위한 상기 이벤트를 선택하기 위해서, 상기 캡쳐한 비주얼 상태를 사용자로 하여금 하나 혹은 그 이상의 이벤트에 대응하는 비주얼 상태의 일부분을 선택할 수 있도록 디스플레이할 수 있다. 또 다른 예로써, 다양한 실시 예에서, 상기 노드는 스크린세이버 등을 통해 사용자에게 통지되는 각 이벤트를 위한 엔트리를 갖는 리스트를 제공할 수 있고, 대응하는 동작들을 위한 하나 혹은 그 이상의 이벤트를 사용자로 하여금 선택할 수 있도록 할 수 있다.
사용자가 선택한 이벤트에 응답하여 상기 노드는 대응되는 동작이 가능하도록 다양한 방법으로 동작할 수 있다(209 단계). 예를 들어, 상기 선택된 이벤트가 소프트웨어와 관련 있으면 상기 노드는 다양한 실시예에서 상기 사용자가 소프트웨어 및/또는 기타 관련된 소프트웨어와 상호 작용할 수 있도록 작동할 수 있다. 이를테면, 상기 노드는 상기 사용자에게 적절한 사용자 인터페이스를 제공할 수 있다.
상기 적절한 사용자 인터페이스는 여러 실시예에서 상기 이벤트에 연관된 것일 수 있다. 예를 들어, 상기 선택된 이벤트가 렌더링(rendering)을 이행하는 소프트웨어와 관련된 경우, 상기 노드는 상기 사용자한테 렌더링 보기를 위한 소프트웨어의 인터페이스를 제공할 수 있다. 다른 예로, 선택된 이벤트가, 가까이 근접하고 있는, 어드레스 북 소프트웨어에 의해 보유된 사용자 노드와 관련 있을 때, 그 이벤트 정보가 주어지는 사용자에게는 그 어드레스 북 소프트웨어에 대한 알맞은 사용자 인터페이스가 주어질 수 있다. 상기 알맞은 인터페이스는, 이를테면, 사용자에게 가까이 근접했던 노드의 사용자에 해당하는 어드레스 북 엔트리를 보고/편집할 수 있게 하는 것일 수 있다.
위에서 봤듯이, 다양한 실시예에서 이벤트는 네트워크 환경에 상응되는 이벤트일 수 있다. 상기 사용자가 이와 같이 제시된 이벤트를 선택한 경우, 다양한 실시예에서 노드는 상기 이벤트에 대응되는 동작들을 수행할 수 있다. 예를 들어, 상기 선택된 이벤트가 미디어 개체(media entity) 등을 (이하에서 설명하는 인증된 피어-투-피어 연결(peer-to-peer connection)을 통하여) 수신하는 것과 관련된 경우, 상기 노드는 해당 소프트웨어를 활성화시켜 상기 사용자가 상기 미디어 개체를 받을 수 있도록 한다. 이를테면, 상기 미디어 개체가 비디오인 경우, 상기 노드는 비디오 보기 소프트웨어를 활성화시킬 수 있다.
다른 예로, 상기 선택한 이벤트가 네크워크 환경에서 채팅 메시지(chat message) 등을 (이하에서 설명하는 인증된 피어-투-피어 연결을 통하여) 수신하는 것과 관련된 경우, 상기 노드는 해당 소프트웨어를 활성화시켜 상기 사용자로하여금 해당 채팅 보드(chatting board)와 상호 동작(interact)할 수 있도록 한다.
또 다른 예로, 상기 선택한 이벤트가 네트워크 환경에서 초대 등을 (이하에서 설명하는 인증된 피어-투-피어 연결을 통하여) 수신(receipt)하는 것과 관련된 경우, 상기 노드는 해당 소프트웨어를 활성화시겨 상기 사용자가 상기 초대에 응할(interact) 수 있도록 한다.
다양한 실시예에서 볼 수 있듯이, 통보받은 이벤트를 선택한 사용자에 응답하여 상기 이벤트와 연관된 추가 정보가 사용자가 볼 수 있도록 표시될 수 있다. 이와 같은 추가 정보의 예로는 상기 텍스트 및/또는 그래픽 등으로 표시 안 된 이벤트의 세부사항일 수 있다.
본 발명의 다양한 실시예에 적용가능한 피어-투-피어의 여러 양태들, 인증된 연결들, 개체들, 인스턴트 메시징(instant messging), 채팅, 초대 등은 이하에서 자세히 설명된다. 상기에서 언급됐듯이, 수신된 개체나 메시지는 다양한 실시예에서, 이하에서 상세히 설명할 그냥 통과(passthrough)시킬 목적으로 수신될 수 있다.
일반적인 피어-투-피어 (Peer-to-Peer) 동작
상기에서 암시했듯이, 본 발병의 다양한 실시예에 따라 예를 들어 피어-투-피어 환경에서의 공유(sharing), 메시징(messaging) 및 채팅과 같은 여러 서비스의 제공에 적용되는 시스템과 방법이 제시된다. 상기 서비스는 예를 들어 상기 피어-투-피어 환경에서 그룹을 이루는 사용자들간에 형성된다. 상기 피어-투-피어 환경은 각 참여자 노드가 동등한 용량(capabilities) 및/또는 책임을 갖는 네트웨크일 수 있다. 이는 몇몇 컴퓨터가 다른 컴퓨터를 서빙하는데 전념하는 일반 클리이언트 /서버 구조와 다른 점이다.
다양한 실시예에서 피어-투-패어 환경에서의 노드들 사이의 커뮤니케이션은 같은 피어-투-피어 환경에 속하는 하나 또는 그 이상의 중간(매개) 노드들을 통해 발생될 수 있다. 상기 피어-투-피어 환경은 이를테면 사용자들의 노드들와 서비스 제공자들의 노드들을 포함할 수 있다. 다양한 실시예에서, 노드들 사이의 어플리케이션 계층(application layer) 라우팅을 통해 메세징이 구현될 수 있다.
다양한 실시예에서, 노드들 사이의 연결은 예를 들어 상기 어플리케이션 계층(Open System Interconnect 계층 7)에서 관리될 수 있다. 하나 이상의 공통 그룹에 속하는 두 개의 노드 사이에 직접적인 하나의 홉(hop) 링크가 있으면 이는 다양한 실시예에 사용될 수 있다. 또 다양한 실시예에서 노드들 사이를 연결하기 위해 서로 다른 물리적 미디어와 서로 다른 하위 계층(lower layer) 네트워킹 기술이 사용될 수 있다. 더욱이, 본 발명의 다양한 실시예는 이를테면 그룹 협동(collaboration) 및/또는 커뮤니케이션을 가능하게 하는 미들웨어(middleware) 및/또는 커뮤니케이션 어플리케이션들을 갖는 피어-투-피어 환경을 이용한다.
상술한 바와 같이, 본 발명의 실시예들은 다양한 서비스를 제공한다. 이와 같은 서비스는 예를 들어 유선 또는 무선 터미널을 갖는 사용자들한테 제공될 수 있다. 이와 같은 터미널은 하나 이상의 네트워크 인터페이스를 가질 수 있다. 상기 인터페이스들은 이를 테면 블루투스(Bluetooth), 802.11b, 802.11g, GPRS (General Packet Radio Service), EDGE (Enhanced Data rate for Global System for Mobile communications Evolution), UMTS (Universal Mobile Telecommunications Service), DVB-T (Terrestrial Digital Video Broadcast), DVB-X 및/또는 이더넷 (Ethernet) 인터페이스일 수 있다.
본 발명의 다양한 실시예에 따라 상기 언급된 서비스들을 제공하기 위해 메시지는 예를들어 노드들간에 전달될 수 있다. 또 본 발명의 다양한 실시예는 이와 같은 서비스를 제공할 수 있도록 사용자 인터페이스를 제공한다.
이하, 본 발명의 여러 분야가 상세히 설명될 것이다.
메시지 처리(Handling)
본 발명의 여러 실시예에 따르면 다양한 종류의 메시지는 노드들간 전달될 수 있다. 예를 들어, 선택된 노드들 또는 노드 전체 그룹을 타겟으로 한 인스턴트 메시지(instant message), 검색 질의(query) 메시지, 검색 응답 메시지, 항목 요구 메시지 및/또는 발송(dispatch)이 전해질 수 있다. 본 발명의 다양한 실시예에서 이와 같은 메시지 전달은 상기 어플리케이션 계층(Open Systems Interconnect(OSI)계층 7)에서 이루어진다. 더 나아가 본 발명의 다양한 실시예에 따르면, 노드는 다양한 네트워크로 접근가능한 개체들과 관련 있는 하나 이상의 개체 참조 테이블(entity reference table)를 유지할 수 있다. 이와 같은 개체는 이를테면 노드, 그룹, 또는 다운로드할 수 있는 항목 (예, 미디어 항목 또는 프로그램 파일)일 수 있다. 개체 참조 테이블은 본 발명의 다양한 실시예에서 상기 노드를 통해 전달받은 및/또는 상기 노드로 타겟된 메시지를 분석해서 수신한 정보를 바탕으로 만들어질 수 있다. 예를 들어, 개체 참조 테이블의 계층적 집합이 있을 수 있고/또는 상기 개체 참조 테이블의 업데이트가 추가 처리 로드(extra processing load)를 막기 위 해 계층적 방식으로 일어날 수 있다. 최하위 레벨의 개체 참조 테이블은 다양한 실시예에서 모든 피어-투-피어의 시스템 메시지를 분석하는 피어-투-피어 소프트웨어 모듈의 최하위 레벨 경로에 의해 업데이트될 수 있다. 메시지 분석은 이를테면 상기 소프트웨어 모듈이 하나 이상의 연결을 통해 내부 라우팅 및/또는 외부 노드로의 라우팅과 관련하여 피어 노드에 대한 라우팅 결정을 수행할 때 행해질 수 있다.
상기 개체 참조 테이블의 업데이트는 예를 들어 연결에 대한 정보와 피어 노드들과 피어 그룹들에 대한 액세스 정보(accessibility information)를 포함할 수 있다. 다른 예시적인 계층형 레벨에는 메시지와 관련된 그룹 특정 정보(group-specific information)(예, 그룹 멤버의 노드 접근)를 분석함으로써 업데이트된 그룹의 특정 개체 참조 테이블이 있을 수 있다. 다양한 실시예에서 그룹 특정 동작(예, 파일 공유)과 관련된 메시지 등이 분석될 수 있다. 이와 같은 메시지 등은 이를테면 콘텐츠 문의 및 응답을 포함할 수 있다. 다양한 실시예에서, 노드간의 물리적 연결이 상기 그룹 특정 계층(hierarchy) 레벨을 통해 알려지지 않을 수 있고/또는 관리될 수 없다고 해도, 가령, 콘텐츠 항목들 및/또는 피어 노드들의 접근성에 대한 개체 참조 테이블들에 대한 적절한 업데이트가 이뤄질 수 있다.
특정 개체에 대하여 개체 참조 테이블은 메타데이타(metadata) 및/또는 그 개체와 관련된 다른 패러미터를 나열할 수 있다. 이와 달리, 혹은 이에 부가하여 상기 테이블은 상기 특정 개체와 관련해, 그 개체에 어떻게 접근할 수 있는지에 대한 표시를 포함할 수 있다. 예를 들어, 상기 개체가 콘텐츠 항목 등이며 상기 콘텐 츠 등이 상기 테이블에 대응되는 노드에 저장될 경우, 상기 테이블은 상기 노드 어디에 상기 항목이 저장되어 있는지 표시할 수 있다. 다른 예로, 상기 개체가 콘텐츠 항목 등일 경우, 상기 테이블은, 요청에 응답해 상기 항목을 제공할 가능성이 큰, 사용할 원격 노드(remote node), 직접 액세스 가능 노드, 및/또는 링크를 표시할 수 있다. 다양한 실시예에서 이와 같은 원격 노드는 상기 항목을 결부된 저장부(store)에 보유(hold)할 수 있고/또는 하나 이상의 노드들의 동작을 통해 항목을 수신하고, 요청에 따라 그것을 제공하도록 동작할 수 있다. 상세한 예로, 제1 원격 노드는 요청에 따라, 항목을 관련 저장부에 보유한 제3 원격 노드로부터 그 항목을 받았던 제2 원격 노드에게서 그 항목을 받은 후에 개체를 제공하도록 동작할 수 있다.
개체 참조 테이블이 요구에 응답하여 항목을 제공할 수 있는 원격 노드를 표시하는 다양한 실시예에서, 상기 테이블은 상기 항목을 수신하기 위해서 몇 번의 홉 (예, 노드간의 홉)이 필요할지를 표시할 수 있다. 이에 따라, 상기 상세한 예와 관련하여, 콘텐츠 항목에 대하여 제1 노드를 기재한 개체 참조 테이블은 상기 항목을 수신하기 위해서는 3번의 홉이 필요하다고 표시할 수 있다. 다양한 실시예에서 상기와 같은 홉의 갯수 표시는 홉에 대하여 추가 정보를 제공할 수 있다. 이를테면, 특정 노드를 통해 특정 콘텐츠를 수신하기 위해서는 두 번의 블루투스 홉, 두 번의 우선 인터넷 홉과 한 번의 UMTS(Universal Mobile Telecommunications Service) 홉이 필요하다고 표시할 수 있다. 더욱이 상기 UMTS 홉의 실행이 네트워크 사용료를 초래할 수 있다고 표시할 수 있다.
노드 개체와 관련하여, 동작은 콘텐츠 항목 개체와 관련해 위에서 설명한 것과 유사할 수 있다. 예를 들어, 노드는 개체 참조 테이블 안에 고유 식별자와 특정 노드에 대응되는 관련 메타데이터 및 어떻게 하면 상기 특정 노드에 접근할 수 있는지에 대한 정보를 포함할 수 있다. 예를 들어, 상기 특정 노드가 상기 표에 대응하는 상기 노드에 의해 직접적으로 접속가능하다면, 상기 테이블에는 상기 특정 노드에 대응되는 네트워크 주소, 고유 식별자 등이 기재될 수 있다. 만약, 상기 특정 노드가 상기 테이블에 대응하는 상기 노드에 의해 직접적으로 접속이 불가능하다면, 콘텐츠 항목 등에 대하여 상술한 바와 유사하게 상기 테이블에는 상기 특정 노드를 접근할 수 있게 하는 (예, 메시지를 전달하는) 원격 노드를 표시할 수 있다. 상기에서 상술한 바와 유사하게 이와 같은 메시지는 다양한 실시예에서 상기 특정 노드에 관련된 정보를 충분히 갖고 있는 하나 이상의 추가 원격 노드를 (예, 적절한 고유 식별자를) 통하여 상기 표시된 원격 노드에서 상기 특정 노드로 전달될 수 있다. 또한 상술한 바와 유사한 방식으로, 상기 테이블은 상기 표시된 원격 노드와 함께 상기 표시된 원격 노드를 통하여 메시지를 전달할 때 몇 번의 홉이 필요한지에 대한 사양(specification)과 더불어 상기 홉에 대한 추가 정보도 기재할 수 있다.
위에서 봤듯이, 노드간 전달될 수 있는 메시지 종류 중 하나는 검색 질의 메시지이다. 이와 같은 메시지는 예를 들어 항목 (예, 미디어 항목), 그룹 설명(description), 그룹 멤버 사용자에 대한 정보, 채팅과 관련된 메타데이터 등과 같은 개체를 찾는데 사용될 수 있다. 다양한 실시예에서 이와 같은 메시지는 특정 메 타데이터에 대응되는 개체를 찾는데 사용될 수 있다. 도3에서와 같이 개체를 찾고 싶어하는 사용자는 찾는 개체의 종류 및 대응되는 메타데이터 및/또는 기타 다른 파라미터를 표시하기 위해 적절한 데이터를 입력하고/또는 자신의 노드의 GUI (Grapical User Interface)나 기타 다른 인터페이스를 통해 적절한 선택을 할 수 있다 (단계 301).
이에 응하여, 사용자 노드는 사용자 지시에 따라, 각각의 개체와 관련하여 보유된 개체 참조 테이블들로부터 어느 테이블들이 그 개체를 제공하고/거나 그에 대한 액세스를 제공할 수 있는 하나 이상의 노드들 및/또는 링크들을 나타내는지를 검색하도록 동작할 수 있다. 또, 그에 응하여, 사용자 노드는 사용자 지시에 따라, 각각의 개체와 관련해 보유된 개체 참조 테이블들로부터 어느 테이블들이 사용자 노드가 그 개체를 저장했고/했거나 그에 직접 액세스했는지를 나타내는지를 검색하도록 동작할 수 있다.
다양한 실시예에서, 예를 들어 개체가 미디어 항목 등이며 상기 노드가 상기 개체를 하나의 노드로부터 받아 다른 노드로 전달하는 과정에서 상기 개체를 저장(cshe)할 경우 상기 노드는 상기 개체를 저장하거나 상기 개체의 일부분을 저장할 수 있다. 상기 노드는 다양한 실시예에서 콘텐츠 개체와 그룹 멤버 등을 설명하는 메타데이터를 별개의 개체 항목으로 저장할 수 있다. 특정 노드는 이를테면 개체가 상기 특정 노드에 의해 제3 노드의 도움 없이도 상기 네트워크에서 직접적으로 접근할 수 있는 노드에 의해 보유될 때 (예, 한번의 전송(single transmission)을 통해 접근가능한 경우) 또는 상기 개체가 상기 특정 노드에 의해 보유될 때 개체에 직접적으로 접근할 수 있다. 다른 예로, 메시지를 그냥 통과(bypass)시키기 위해 특정 피어-투-피어 어플리케이션 계층 처리 및/또는 분석을 하지 않는 매개 노드 없이 네트워크 계층 연결을 통해 접근할 수 있을 경우 개체(예, 노드)는 직접적으로 접근이 가능하다고 간주할 수 있다.
노드는 직접적으로 접근 가능한 노드와 관련된 정보 등을 다양한 방법으로, 보유한 참조 테이블 안에 포함시키도록 동작할 수 있다. 예를 들어, 상기 노드는 직접적으로 접근할 수 있는 노드를 발견하기 위해 장치 디스커버리 (예, 블루투스 장치 디스커버리)를 이용하고, 설정되고/또는 잘 알려진 포트에 방송하거나, 설정되고/또는 유명한 포트로 청취 등을 할 수 있다. 이와 달리, 혹은 이에 부가하여 상기 노드는 여러 실시예에서 이를테면 이미 알고 있는 노드의 네트워크 주소 및/또는 이를테면 노드의 현 네트워크의 주소의 전용 피어 레지스터를 조회하여 연결을 시도할 수 있다. 이와 같은 노드를 발견시, 그 노드는 대응되는 메타데이터 및/또는 다른 파라미터를 문의할 수 있다. 그러면 다양한 실시예에서 참조 테이블 엔트리는 찾은 노드에 대하여 성립될 수 있다. 상기 엔트리는 수신된 고유 식별자와 메타데이터 및/또는 다른 파라미터를 포함하며, 상기 찾은 노드에 대응되는 네트워크 주소 등을 포함할 수도 있다.
사용자의 노드가 상술한 바와 같이 참조표를 검색하여 사용자의 지시에 부합하는 개체를 찾은 경우, 상기 노드는 아마도 GUI 또는 다른 인터페이스를 통하여 노드 사용자에게, 찾아진 개체들에 대응되는 데이터를 제시할 수 있다 (305, 307 단계). 예를 들어, 사용자는 찾은 개체에 각각 대응되는 상기 메타데이타 또는 그 일부분을 제시받을 수 있다. 사용자는 찾은 개체에 도달하려면 필요한 홉의 갯수 및/또는 종류에 관한 정보 또한 제시 받을 수 있다. 찾은 개체가 저장된 경우, 이와 같은 사실을 사용자한테 표시할 수 있다. 사용자는 검색를 부가할 수 있는 옵션을 추가로 제시받을 수 있다. 예를 들어, 사용자는 검색결과 사용자가 찾고자 했던 것을 찾았는지에 대해 질의를 받을 수 있다.
노드가 상술한 바와 같이 참조 테이블을 검색했는데 상기 사용자의 지시에 대응되는 개체를 찾지 못한 경우 및/또는 사용자가 검색를 더 수행해야한다고 지시했을 경우, 상기 노드는 검색 문의 메시지를 생성해서 발송시킬 수 있다 (305, 309 단계). 이와 같은 검색 질의 메시지는 하나 이상의 엔트리를 포함할 수 있다.
제1 엔트리는 메시지를 수신할 하나 이상의 수취자를 표시할 수 있다. 상기 수취자는 이를테면 네트워크 주소, 그룹의 고유 식별자, 노드의 고유 식별자 등에 의해 표시될 수 있다. 다양한 실시예에서 수취자의 표시는 멀티캐스트(multicast) 어드레스 북 등에 명기할 수 있다. 이와 같은 엔트리는 예를 들어 "to"라고 표시될 수 있다.
제2 엔트리는 상기 메시지를 생성한 노드를 표시할 수 있다. 노드를 예를 들어 네트워크 주소, 고유 식별자 및/또는 메타데이터 표시할 수 있다. 이와 같은 엔트리는 예를 들어 "발신자(originator)"로 표시될 수 있다. 제3 엔트리는 상기 생성된 노드로부터 몇 번의 홉을 통해 메시지가 전달되었는지를 표시할 수 있다. 상기 개체는 홉의 종류(예, 블루투스 또는 UMTS 홉)에 따라 홉의 갯수를 기재할 수 있다. 이와 같은 엔트리는 예를 들어 "hops"라고 표시될 수 있다.
제4 엔트리는 상기 메시지를 발송한 마지막 노드를 표시할 수 있다. 이와 같은 엔트리는 예를 들어 "당면 노드, immediate node"라고 표시될 수 있다. 표시는 예를 들어 상기 발신자 엔트리에 대해 설명한 바와 같을 수 있다. 제5 엔트리는 찾는 개체의 종류 및 대응되는 메타데이터 및/또는 다른 검색 파라미터를 표시할 수 있다. 이와 같은 엔트리는 예를 들어 "검색 데이터"라고 표시될 수 있다. 제6 엔트리는 메타데이터 및/또는 상기 문의를 생성한 상기 노드에 연관된 다른 파라미터를 지정할 수 있다. 이와 같은 엔트리는 예를 들어 "최초 발송자 데이터, originator data"라고 표시될 수 있다.
이와 같은 문의 메시지를 생성할 때, 상기 사용자의 노드는 예를 들어 자신을 표시하기 위해 상기 제2 엔트리를 설정(set)하고, 상기 제3 엔트리가 0 홉을 기재하도록 하고, 자기 자신을 표시하기 위해 상기 제4 엔트리를 설정하고, 사용자가 제공하는 데이터를 기재하도록 상기 제5 엔트리를 설정하고, 자기 자신의 메타데이터를 기재하도록 제6 엔트리를 설정할 수 있다. 상기 제1 엔트리는 하나 이상의 직접적으로 접근가능한 노드로의 전달을 지정하기 위해 예를 들어 사용자의 노드에 의해 설정될 수 있다. 상기 하나 이상의 직접적으로 접근가능한 노드는 예를 들어 상기에 언급된 장치 디스커버리, 포트 모니터링, 및/또는 포트 방송 동작을 통해 상기 사용자의 노드가 찾은 것들일 수 있다. 이와 달리, 또는 이에 부가하여, 상기 노드는 이미 알고 있는 피어의 네트워크 주소 또는 피어 레지스터로부터 질의 받은 네트워크 주소에 연결을 개설하므로써 찾은 것일 수 있다. 피어 레지스터는 예를 들어 현재 동작중인 피어가 현 네트워크 주소를 갖고 등록(registration)을 수행할 수 있는 분산 또는 집중 레지스터일 수 있다. 다양한 실시예에서, 위에서 암시했듯이, 상기 제1 엔트리는 멀티캐스트 전달을 구현할 수 있도록 설정될 수 있다. 상기와 같은 검색 질의 메시지를 생성한 후, 상기 사용자의 노드는 수신인 노드로 전달될 수 있도록 할 수 있다.
검색 질의 메시지를 받은 후 노드가 수행하는 동작에 대해 설명한다. 이와 같은 노드는 발신한 노드로부터 검색 질의 메시지를 받거나 이전에 수신받은 다른 노드로부터 받을 수 있다. 상세한 예로, 제1 노드는 제2 노드로부터 검색 질의 메시지를 받을 수 있다. 상기 제2 노드는 상기 메시지를 제3 노드로부터 수신했으며, 상기 제3 노드는 상기 메시지를 생성한 노드로부터 상기 메시지를 받았다.
도4에 대하여, 수신인 노드가 검색 질의 메시지를 수신한 경우, 상기 수신인은 우선 발신인 및 당면 노드 필드를 봐서 두 개가 서로 다른지 확인할 수 있다 (401 단계). 만약 그 두 개가 서로 다르다면, 상기 수신인 노드는 상기 메시지의 발신인 필드에 기재된 데이터에 비추어 봤을때, 상기 발신인 노드에 대응되는 엔트리가 개체 참조 테이블에 포함되었는지 판단할 수 있다. 만약 이와 같은 엔트리가 존재한다면, 상기 수신인 노드는 상기 당면 노드 필드에 지시되어 있는 상기 노드 가 상기 발신인 노드로의 접근을 제공할 수 있다는 표시를 상기 엔트리에 포함시킬 수 있다. 상기 표시에는 상기 메시지의 홉 필드에 기재된 데이터가 포함될 수 있다. 그 다음, 상기 수신인 노드는 상기 발신인 노드에 대응되는 표에 기재된 메타데이터 및/또는 다른 파라미터를 상기 발신인 필드에 표시되어 있는 메타데이터 및/또는 다른 파라미터와 비교할 수 있다. 그리고 필요하면 상기 표의 메타데이터 및 /또는 다른 파라미터를 업데이트시킬 수 있다.
다양한 실시예에서, 메시지 등을 수신할 때, 노드는 루프-백(loop-back)의 발생을 막도록 동작할 수 있다. 이에 따라, 예를 들어, 다양한 실시예에서 메시지는 예를 들어 상기 메시지가 전달됐었던 노드 목록과 같은 소스 라우팅 정보를 포함할 수 있다. 이와 같은 노드 목록은 예를 들어 상기 노드에 대응되는 고유 식별자를 포함할 수 있다. 노드는 다양한 실시예에서 다음 노드로 수신된 메시지를 전달하기 전에 상기 다음 수신 노드가 이미 상기 소스 경로 목록에 존재하는지 확인하기 위하여 이와 같은 목록을 검토한다. 만약 이미 소스 목록에 존재하는 한 노드로 상기 메시지를 전달하게 될 것을 상기 노드가 알았을 경우, 상기 노드는 다양한 실시예에서 라우팅 결정을 다시 재검토해서 루프-백의 발생을 방지하기 위해 이미 리스트에 올려진 노드로는 메시지를 전달하지 않도록 동작할 수 있다. 상기 노드가 상기 메시지를 다른 노드한테 전달한 경우, 상기 노드는 자신을 상기 목록에 포함시킬 수 있다.
만약 이와 같은 엔트리가 존재하지 않는 경우, 수신 노드는 (최초) 발송자 노드에 대응되는 엔트리를 자신의 개체 참조 테이블에 생성할 수 있다. 그리고, 상기 상술한 바와 유사하게, 당면 노드 필드에 특정된 노드가 발송자 노드에 대한 액세스를 지원하도록 동작할 수 있는지에 대한 표시 및, 아마도 메시지의 홉스 필드에 리스트된 데이터를 포함하도록 동작할 수 있다. 생성된 엔트리에는 메시지의 발송자 필드에 포함된 데이터가 포함될 수 있다.
그 다음 단계로, 상기 수신 노드는 상기 메시지의 검색 데이터 필드에 지정 되어 있는 것과 일치하는 하나 이상의 개체에 직접적으로 액세스했는지를 판단하기 위해 자신의 테이블을 조사할 수 있다 (403 단계). 이에 따라, 상기 수신 노드는 예를 들어 자신의 테이블에서, 찾고자하는 개체 종류에 해당하고, 상기 메시지에 지정된 것들에 부합하는 메타데이터 및/또는 추가 파라미터를 리스트하고, 해당 개체로의 직접 액세스를 표시한 개체 엔트리들을 검색한다. 예를 들어, 상기 탐색되는 개체가 노드인 경우, 직접 액세스는, 이를테면 매개 노드들을 필요로 하지 않는 상술한 종류의 연결이 설정될 수 있음을 의미한다. 예를 들어, 상기 탐색되는 개체가 콘텐츠 항목일 경우, 직접 액세스는, 이를테면 그 항목이 노드 상에 저장될 테이블에 의해 나열되었고 공유 가능한 것임을 의미한다. 상기 수신 노드가 상기와 같은 직접 액세스를 수행한다고 판단한 경우, 상기 수신 노드는 찾은 개체에 대응되는 하나 이상의 검색 응답 메시지를 생성하고 발송할 수 있다 (405 단계).
다양한 실시예에서, 고유 식별자는 개체 접근성과 연관될 수 있다. 이에 따라, 이와 같이 직접적 액세스 기능을 가지는 노드는 고유 식별자가 이미 다른 직접 액세스와 관련되는지 확인할 수 있다. 예를 들어, 이와 같은 고유 식별자는 상기 직접 액세스를 표시한 테이블 목록에 존재할 수 있다. 만약 이런 고유 식별자가 존재하지 않는다면, 상기 노드는 자신의 고유 식별자를 생성해 직접 액세스와 결부시킬 수 있고, 상기 고유 식별자를 적절한 테이블 엔트리에 위치시킴이 바람직하다. 고유 식별자의 생성은 다양한 방법으로 수행될 수 있다. 예를 들어, 생성 과정에는 랜덤 숫자 생성 및/또는 하나 이상의 수식을 사용할 수 있다. 새로 생성되거나 이미 존재하는 고유 식별자는 상기 상술한 바와 같은 하나 이상의 검색 응답 메시지 에 각각 포함될 수 있다.
상기 수신 노드가 상기와 같은 직접적 액세스 기능이 없다고 판단한 경우, 상기 노드는 상기 메시지의 상기 검색 데이터 필드에 지정되어 있는 개체에 대응되는 엔터티에 접근을 제공할 수 있는 하나 이상의 다른 노드를 알고 있는지 판단하기 위해 자신의 표를 조사할 수 있다 (407 단계). 이에 따라, 상기 수신 노드는, 예를 들어 테이블에서, 찾고 있는 개체 종류에 해당하고, 메시지에 특정된 것들에 부합하는 메타데이터 및/또는 추가 파라미터들을 리스트했고, 해당 개체를 제공하고/거나 그 개체에 대한 액세스를 지원할 수 있는 하나 이상의 노드들을 나타낸 개체 엔트리들을 검색한다. 상기 수신 노드가 이와 같은 테이블 엔트리들을 찾은 경우, 상기 수신 노드는 상기 찾은 개체에 대응되는 하나 이상의 검색 응답 메시지를 생성해서 발송할 수 있다 (409 단계). 상기에서 언급했듯이, 다양한 실시예에서 상기 찾은 테이블 엔트리들은 액세스와 관련된 고유 식별자를 보유할 수 있다. 상기 찾은 테이블 엔트리들이 이와 같은 식별자를 포함하는 경우, 상기 식별자는 상기 하나 이상의 검색 응답 메시지에 각각 포함될 수 있다.
상기 수신 노드가 이와 같은 테이블 엔트리들을 찾지 못한 경우, 상기 수신 모드는 상기 받은 검색 질의 메시지를 수정해서 하나 이상의 다른 노드로 발송할 수 있다 (411단계). 상기 받은 검색 질의 메시지를 수정하는 첫번째 단계로 상기 수신 노드는, 아마도 이 수신 노드가 메시지를 얻은 링크의 견지에서, 수신 메시지에 포함된 홉 필드를 업데이트하도록 동작할 수 있다. 예를 들어, 필드가 홉 종류를 표시한 경우, 상기 수신 노드는 상기 노드가 메시지를 받은 인터페이스에 해당 하는 회수(count)를 하니 씩 증가시킬 수 있도록 상기 메시지의 필드를 업데이트시킬 수 있다. 상세한 예로, 블루투스 링크를 통해 상기 메시지를 받은 경우, 블루투스 홉에 대응되는 홉 개수는 하니씩 증가할 수 있다. 메시지의 홉 필드에 홉 종류를 지정하지 않고 하나의 카운터만을 유지한 경우의 실시예에서, 상기 수신인 노드는 상기 하나의 카운터를 1씩 증가시킬 수 있다.
상기 받은 검색 문의 메시지를 수정하는 두번째 단계로, 상기 수신 노드는 상기 매개 노드 필드가 수신 노드 자신을 표시하도록 바꿀 수 있다. 다양한 실시예에서, 상기 노드는 그와는 달리, 또는 그에 부가하여 상술한 종류의 루프-백 결정에 해당하는 노드들의 리스트에 자신을 부가적으로 추가할 수 있다. 상기 받은 검색 질의 메시지를 수정하는 그 다음 단계로 상기 수신 노드는 상기 상술한 방법과 유사하게, 하나 이상의 직접적 접근 가능한 노드로의 전달을 지정할 수 있게 "to" 필드를 설정한다. 그 다음, 상기 수신 노드는 수정된 검색 질의 메시지를 자신의 수취 노드들로 전달시킬 수 있다. 상기 수정된 검색 질의 메시지 수신시, 각 수취 노드는, 검색 질의 메시지를 수신할 때의 어떤 노드에 의해 수행되는 동작들과 관련하여 방금 설명한 것과 유사한 방식으로 동작될 수 있다.
상술된 바와 같이, 노드는 검색 질의 메시지 수신에 응하여 검색 응답 메시지를 생성해서 발송할 수 있다. 이와 같은 동작을 상세히 설명한다. 생성된 검색 응답 메시지는 하나 이상의 엔트리를 포함할 수 있다.
제1 엔트리는 상술한 검색 질의 메시지들에 관하여 상술한 사항과 유사한 방식으로, 그 메시지의 하나 이상의 수취자들을 가리킨다. 이와 같은 엔트리는 예를 들어, "to"라고 표시될 수 있다. 제2 엔트리는 상기 상술된 검색 질의 메시지와 유사하게, 상기 메시지를 생성한 노드를 표시할 수 있다. 이와 같은 엔트리는 예를 들어 "originator, (최초) 발송자"라고 표시될 수 있다. 제3 엔트리는 상술한 검색 질의 메시지들에 관하여 상술한 사항과 유사한 방식으로, 메시지가 그것을 생성했던 노드로부터 이동한 홉의 수를 나타낸다. 이와 같은 엔트리는 예를 들어 "hops"라고 표시될 수 있다.
제4 엔트리는 상술한 검색 질의 메시지들에 관하여 상술한 사항과 유사한 방식으로, 메시지를 발송한 최종 노드를 나타낼 수 있다. 이와 같은 엔트리는 예를 들어 "당면 노드, immediate node"라고 표시될 수 있다. 제5 엔트리는 찾은 하나 이상의 개체들과 관련된 메타데이터 및/또는 다른 패러미터들을 특정할 수 있다. 이와 같은 엔트리는 예를 들어 "찾은 개체 데이터, found entity data"라고 표시될 수 있다. 상기에서 언급했다시피, 일 실시예에서 검색 응답 메시지는 찾은 개체 각각과 관련해 생성 및 발송될 수 있고, 한편 다른 실시예들에서는 찾은 하나 이상의 개체에 대응되는 한 개의 검색 응답 메시지가 생성 및 발송될 수 있다.
제6 엔트리는 상술한 검색 질의 메시지들에 관하여 상술한 사항과 유사한 방식으로, 상기 메시지를 생성한 노드와 관련된 메타데이터 및/또는 다른 파라미터를 특정할 수 있다. 이와 같은 엔트리는 예를 들어 "발송 데이터, originator data"라고 표시될 수 있다. 제7 엔트리는 최초로 검색 질의 메시지를 발송하여 그에 따라 검색 응답 메시지가 생성되게 하는 노드를 나타낼 수 있다. 이와 같은 엔트리는 "질의 개시자, query initiator"라고 표시될 수 있다.
이와 같은 검색 응답 메시지를 생성하는 과정에서 노드는, 예를 들어 상기 제2 엔트리가 자신을 표시하도록 설정할 수 있고, 상기 제3 엔트리를 0 홉을 기재하도록 설정하고, 상기 제4 엔트리를 자신을 표시하도록 설정할 수 있고, 상기 제5 엔트리는 상기 생성되는 메시지에 대하여 대응되는 하나 이상의 개체를 자신의 표에서 찾은(retrived) 메타데이터 및/또는 다른 파라미터를 나열할 수 있도록 설정하고, 상기 제6 엔트리를 자신의 메타데이터를 나열하도록 설정하고, 상기 제7 엔트리는 검색 응답 메시지가 생성되게 하는 검색 질의 메시지의 발송 필드의 콘텐츠를 나열하도록 설정하도록 동작할 수 있다.
제1 엔트리는 예를 들어 검색 응답 메시지가 생성되게 하는 검색 질의 메시지를 수신했던 노드로의 전달을 특정하기 위해 그 노드에 의해 설정될 수 있다. 이에 따라, 상기 제1 엔트리는 검색 질의 메시지의 당면 노드 필드에 보유된 데이터를 포함하도록 설정될 수 있다.
상술한 바와 같이, 다양한 실시예에서 검색 응답 메시지는 개체 액세스에 대응되는 고유 식별자일 수 있다. 이와 같은 고유 식별자는 예를 들어 상술한 종류의 다른 엔트리로서 포함될 수 있다. 예를 들어, 다양한 실시예에서 해당 액세스에 대응되는 고유 식별자를 더 포함하는 엔트리가 존재할 수 있고, 그 엔트리는 아마도 "액세스 식별자"로 명명될 것이다. 상기와 같은 검색 응답 메시지를 생성한 후, 상기 노드는 상기 검색 응답 메시지를 해당 수신 노드로 전달할 수 있다.
검색 응답 메시지를 받은 후 노드의 동작을 설명한다. 노드는 상술한 검색 질의 메시지의 수신과 관련하여 상술한 것과 유사한 방식으로, 검색 질의 메시지를 처음에 발생시킨 노드나, 이전에 그 메시지를 수신했던 다른 노드로부터 그 검색 질의 메시지를 수신할 수 있다.
도 5와 관련해, 수신 노드에서 검색 응답 메시지를 수신한 후, 그 수취자는 먼저 (최초) 발송자와 당면 노드 필드들을 검사하여 두 개가 다른지를 알아본다 (501 단계). 만약 그 두 개가 서로 다르다면, 상기 수신 노드는 상술한 검색 질의 메시지들에 관하여 상술한 사항과 유사한 방식으로, 발송자 노드에 해당하는 테이블 엔트리를 생성 또는 업데이트 하도록 동작할 수 있다. 다음으로, 상기 수신 노드는 상술한 검색 질의 메시지들에 관하여 상술한 사항과 유사한 방식으로, 상기 수신된 메시지의 홉 필드를 증가시킬 수 있다.
그 다음 단계로서, 상기 수신 노드는 상술한 검색 질의 메시지들에 관하여 상술한 사항과 유사한 방식으로, 질의 응답 메시지가 발송 및 생성된 것과 관련하여, 찾아낸 개체들에 해당하는 테이블 엔트리들을 생성하거나 업데이 트하도록 동작할 수 있다(503 단계). 이에 따라, 생성되거나 업데이트된 테이블 엔트리는 당면 노드 필드에서 특정된 노드가, 질의 응답 메시지가 발송 및 생성된 것과 관련하여 한 개체를 제공하고/거나 그 개체로의 액세스를 지원하도록 동작할 수 있음을 나타낸다. 다양한 실시예에서 상기 메시지의 업데이트된 홉 필드에 나열된 데이터가 더 리스트 될 수 있다. 개체 액세스에 해당하는 고유 식별자가 수신된 검색 응답 aplt지에 포함되는 실시예들에서, 그 식별자는 적절히 생성 또는 업데이트된 테이블 엔트리와 함께 포함될 수 있다. 또, 상기 생성 및/또는 업데이트된 테이블 엔트리는, 찾은 개체 데이터 필드에 있는 데이터를 포함할 수 있다.
그 다음 단계로, 상기 수신 노드는 아마도, 질의 개시자 필드를 검사함으로써, 자신이 검색 응답 메시지가 생성되게 하는 검색 질의 메시지를 최초로 발송했던 노드인지를 판단하도록 동작한다(505 단계). 이에 따라, 상기 수신 노드는 이를 테면 질의 개시자 필드에 기재된 식별자 (예, 네트워크 주소 또는 고유 식별자)와 그 자신의 해당 식별자를 비교한다.
상기 검색 질의 메시지를 발송한 최초의 노드가 자기 자신이란 것을 상기 수신인 노드가 알았을 경우, 상기 노드는 상기 상술한 바와 유사하게, 사용자한테 상기 찾은 개체에 대응되는 데이터를 제시할 수 있다 (507 단계). 상기 검색 질의 메시지를 발송한 최초의 노드가 자기 자신이 아니란 것을 상기 수신 노드가 알았을 경우, 그 노드는 수신된 검색 응답 메시지를 수정하여 하나 이상의 다른 노드들로 발송할 수 있다 (509 단계). 상술한 바와 같이 홉 필드가 업데이트된 실시예인 경우, 상기 발송된 메시지는 그 필드의 업데이트된 버전을 포함할 수 있다.
수신된 검색 질의 메시지를 수정하기 위한 첫번째 단계로, 상기 수신 노드는 상기 매개 노드 필드가 수신 노드를 표시하도록 설정할 수 있다. 다양한 실시에에서 상기 노드는 그와는 다르게, 또는 부가적으로 상기 언급된 것과 같은 루프-백 결정에 대응되는 노드의 리스트에 자기 자신을 포함할 수 있다. 더 나아가 상기 메시지를 수정하기 위한 단계로서, 상기 수신 노드는 검색 응답 메시지가 생성하게 하는 검색 질의 메시지를 수신했던 노드로의 운송을 특정하도록 to 필드를 설정할 수 있다. 이에 따라, 상기 "to" 필드는 검색 질의 메시지의 당면 노드 필드에 보유된 데이터를 포함하도록 설정될 수 있다. 그 다음, 상기 노드는 상기 업데이트 된 검색 응답 메시지가 지시된 수신 노드나 노드들로 전달되게 동작할 수 있다.
상기 수정된 메시지를 받았을 때, 각 수신 노드는 한 검색 응답 메시지를 받은 한 노드에 의해 수행되는 작업에 관련하여 막 논의되었던 것과 유사하게 행동한다.
상기와 같이, 사용자는 예를 들어 몇몇 지정된 메타데이터 및/또는 다른 변수들과 관련 있는 어떤 타입의 개체를 찾으려는 요구를 사용자의 노드에 명기한다. 또한, 상기와 같이, 그러한 사용자는 자기의 기준에 맞는 개체에 상응하는 데이터와 주어질 수도 있다. 다양한 실시 예로서, 상기 사용자가 다운로드되는 개체가 (예를 들어, 메디아 항목들, 데이터 파일들, 및/또는 프로그램들) 주어졌을 때, 사용자는 주어진 개체들 중 하나를 받기를 요구할 수 있다. 상기 사용자는 예를 들어 GUI 등등을 통해 그러한 요구를 할 수 있다.
다양한 실시 예에서는 자기의 기준에 맞는 개체에 상응하는 데이터와 주어진 사용자는 특정 개체는 하나 이상의 소스로부터 구할 수 있다는 지시를 받을 수 있다고 한다. 그러한 경우에, 다양한 실시 예로서, 상기 사용자는 특정 노드로부터 특정 개체를 받기를 요구하는 선택권이 주어지고 또는 예를 들어 어떤 비용 및/또는 대역폭 요구조건을 포함하는 어떤 지정된 기준에 따라서 그 소소가 선택되었음을 알리는 선택권이 주어질 수 있다.
상기 사용자가 특정 노드로부터 받기를 요청했다면, 상기 사용자의 노드는 항목 요구 메시지를 만들기 위해 행동하고 그 항목 요구 메시지를 상기 노드로 보낸다. 상기 사용자가 특정 노드로부터 받기를 요청하지 않았다면, 상기 사용자의 노드는 상기 노드의 캐시를 통해 규정에 대한 지정된 기준이 허락되었다면 상기 개체가 상기 캐쉬에 존재하는지를 결정하기 위해 상기 선택된 개체와 관련하여 상기 사용자의 노드의 테이블을 먼저 체크해야한다. 상기에 언급되었듯이, 그런 캐쉬는 예를 들어 상시 사용자의 노드가 받은 개체를 다른 노드에 보내기 위해 저장한다.
따라서, 상기 사용자의 노드는 상기 요청한 개체에 상응하는 엔트리를 그의 테이블에 두고 상기 엔트리가 상기 개체를 상기 노드의 캐시를 통해 이용가능성을 알려주는지 알아본다. 상기 엔트리가 알려줄 경우에는 상기 노드는 상기 개체를 상기 사용자에게 이용가능하게 한다. 예를 들어, 상기 노드는 상기 개체를 상기 캐시에서 상기 사용자의 데이터 저장 지역으로 복사할 수 있다. 상기 사용자 노드가 상기 요청한 개체를 상기 캐시를 통해 이용할 수 없다고 했을 때, 또는 구체적인 기준이 상기 캐시를 통해 규정에 맞지 않았을 때, 상기 노드는 요청에 응신하여 상기 개체를 제공할 수 있는 노드를 선택하기 위하여 그의 테이블을 찾아본다. 다양한 실시 예에서는 그러한 선택이 상기 사용자가 제공하는 지정된 기준에 맞다고 한다. 개체에 관련하여 검색 응신 메시지를 받았을 때, 상기 작업으로 인하여 상기 테이블은 일반적으로 그 개체를 제공할 수 있는 최소한 하나 이상의 노드를 가리킬 것으로 예측된다.
상기 개체를 제공할 수 있는 노드를 선택할 때, 상기 사용자의 노드는 항목 요청 메시지를 만들어서 선택된 노드에 보낸다. 만들어진 항목 요구 메시지는 다수의 엔트리를 하나 이상 포함할 수 있다. 상기에서 언급한 것과 유사하게 첫 번째 엔트리는 상기 항목 요구 메시지를 하나 이상의 수신자에게 가리킨다. 그러한 엔트리는 예를 들어 "to, 로"로 분류된다. 만들어진 항목 요구 메시지는 다수의 엔트리를 하나 이상 포함할 수 있다. 상기에서 언급한 것과 유사하게 두 번째 엔트리는 상기 항목 요구 메시지를 만든 상기 노드를 가리킨다. 그러한 엔트리는 예를 들어 "발신자"로 분류된다. 상기에서 언급한 것과 유사하게 세 번째 엔트리는 상기 항목 요구 메시지를 만든 노드로부터 상기 항목 요구 메시지가 움직인 홉 번호를 가리킨다. 그러한 엔트리는 예를 들어 "홉"으로 분류된다.
상기에서 언급한 것과 유사하게 네 번째 엔트리는 상기 항목 요구 메시지를 보내는 마지막 노드를 가리킨다. 그러한 엔트리는 예를 들어 "즉시 노드"로 분류된다. 다섯 번째 노드는 상기 요구된 엔트리에 상응하는 메타데이터 및/또는 다른 변수들을 지정할 수 있다. 그러한 엔트리는 예를 들어 "요청된 개체 데이터"로 분류된다. 다양한 실시 예에서는 상기 메타데이터 및/또는 다른 변수들이 요청된 상기 개체에 상응하는 한 세트로 제공될 수 있고 또는 상기 원하는 개체를 알기 위해 상기 항목 요구 메시지를 받는 상기 노드에 충분할 수 있다. 또한, 다양한 실시 예에서는 상기 메타데이터 및/또는 다른 변수들에는 상기 원하는 개체를 알기 위해 상기 항목 요구 메시지를 받는 상기 노드에 충분한 하나의 고유 식별자가 포함될 수 있다.
검색 질문 메시지와 관련하여 상기에 언급된 바와 유사하게 여섯 번째 엔트리는 상기 항목 요구 메시지를 만든 노드와 관련 있는 메타데이터 및/또는 다른 변수들을 지정할 수 있다. 그러한 엔트리는 예를 들어 "발신자 데이터"로 분류된다.
항목 요구 메시지를 만들 때, 노드는 예를 들어 자신을 가리키도록 두 번째 엔트리를 설정하거나 제로 홉 목록을 만들도록 세 번째 엔트리를 설정하거나 자신을 가리키도록 네 번째 엔트리를 설정하거나 요청된 상기 개체에 상응하는 자신의 테이블에서 검색한 메타데이터 및/또는 다른 변수들을 목록으로 만들도록 다섯 번째 엔트리를 설정하고 그 자신의 메타데이터의 목록을 만들도록 여섯 번째 엔트리를 설정한다. 첫 번째 엔트리는 예를 들어 상기 요청된 개체를 제공할 수 있는 선택되었거나 지시된 노드에 전달하기 위하여 상기 노드에 의해 설정된다. 따라서, 첫 번째 엔트리는 적절한 테이블 엔트리로부터 검색한 상기 데이터를 포함하도록 설정된다. 상기 언급한 기능성 면에서 상기 선택되었거나 지시된 노드는 직접 접근가능할 것으로 예측된다.
상기 언급한 바와 같이, 본 발명의 다양한 실시 예에서는 개체 접근에 상응하는 고유 식별자를 이용한다. 상기 실시 예에서는, 적절한 식별자가 상기 항목 요구 메시지에 포함된다. 이와 같은 적절한 식별자는 예를 들어 상기 사용자가 선택한 특정 검색 결과에 의한 상기 개체 접근에 상응하는 상기 식별자일 수 있다. 상기 적절한 식별자는 예를 들어 상기 적절한 테이블 엔트리로부터 검색된다. 따라서, 다양한 실시 예에서는 개체 접근에 상응하는 상기 적절한 고유 식별자가 있는 추가 메시지 엔트리가 있는데 이는 "접근 식별자"로 분류된다.
또한, 다양한 실시 예에서는 사용자 및/또는 그 노드는 오직 개체의 한 부부만 요구하는 항목 요구 메시지를 통해 가리킬 수 있다. 이는 다수의 방법으로 지정될 수 있다. 예를 들어, 어떤 실시 예에서는 지정된 수의 바이트 같은 절대적인 데이터 양으로 부분이 지정될 수 있다. 다른 예로서, 어떤 실시 예에서는 개체의 전체 크기의 일부 부분이나 비율 같은 전체 개체 크기의 한 부분으로 지정될 수 도 있다. 다양한 실시 예에서는 사용자 및/또는 그 노드가 콘텐츠 항목의 지정된 요소만 원하는 (예를 들어, 대행자, 썸네일 사진 등등) 것으로 가리켜지기도 한다.
구체적인 예로서, 미디어 파일의 첫 번째 지정된 수의 바이트를 원하는 것을 가리키기도 한다. 따라서, 상기 미디어 파일의 첫 500 바이트만 원하는 것을 가리키기도 한다. 또 다른 구체적인 예로서, 미디어 파일의 두 번째 지정된 수의 바이트를 원하는 것을 가리키기도 한다. 따라서, 상기 미디어 파일의 두 번째 500 바이트만 원하는 것을 가리키기도 한다.
또 다른 예로서, 다양한 실시예에서는 그러한 기능성이 올바르게 받은 부분들 및/또는 이미 받은 부분들 없이 개시되는 개체를 접수하는데 부분적으로 실패했거나 방해받았을 때 허락하는데 이용되기도 한다. 따라서, 개체를 접수하는데 부분적으로 실패했을 때, 항목 요구 메시지는 정확히 받지 못한 부분을 상기 개체의 원하는 부분으로 가리키도록 보내진다. 예를 들어, 4 메가바이트 파일의 첫 메가바이트만 정확히 받았을 경우에, 항목 요구 메시지는 상기 개체의 나머지 3 메가바이트만 원하는 것으로 가리키도록 보내진다. 다양한 실시 예에서는 메타데이터가 개체 크기의 표시를 포함한다.
또 다른 예로서, 다양한 실시 예에서는 그러한 기능성이 노드가 접근을 제공하는 하나 이상의 노드에서 특정한 개체의 접수를 분할하는데 이용된다. 예를 들어, 세 개의 노드가 특정 개체에 접근할 경우에, 첫 번째 항목 요구 메시지는 접근을 제공하는 첫 번째 노드와 관련하여 첫 세 번째 노드를 원하는 것을 가리키도록 보내지고 두 번째 항목 요구 메시지는 접근을 제공하는 세 번째 노드와 관련하여 두 번째 세 번째 노드를 원하는 것을 가리키도록 보내지고 세 번째 항목 요구 메시지는 접근을 제공하는 두 번째 노드와 관련하여 마지막 세 번째 노드를 원하는 것을 가리키도록 보내진다. 따라서, 다양한 실시 예에서는 그러한 지시를 포함하는 추가 메시지 엔트리가 존재하며 이는 "부분 지시"로 분류된다.
항목 요구 메시지를 받을 때 노드의 작동을 설명한다. 그러한 노드는 상기에 언급한 바와 유사하게 항목 요구 메시지를 발송한 노드나 그것을 이미 받은 다른 노드로부터 항목 요구 메시지를 받을 수 있다.
도면 6과 관련하여, 수신 노드는 항목 요구 메시지를 받은 후에 먼저 발신자와 즉시 노드 필드를 조사하여 두 개가 서로 다른지를 본다 (601 단계). 두 개가 다르다면, 상기 수신 노드는 상기에 언급한 바와 유사하게 발신자 노드에 상응하는 테이블 엔트리를 만들거나 갱신한다. 다음. 상기 수신 노드는 상기에 언급한 바와 유사하게 받은 메시지의 홉 필드를 증가시킨다. 다음 단계로, 상기 수신 노드는 요청된 엔트리를 관련된 저장부에 보유하고 있는지 결정하기 위해 그의 테이블에 알아본다 (603 단계).
상기 수신 노드가 상기 요청한 개체를 보유하고 있다면, 상기 항목 요구 메시지를 본래 보낸 노드를 가리키는 필드를 갖는 하나 이상의 발송 메시지를 통해 상기 엔트리를 보낸다 (605 단계). 따라서, 하나 이상의 필드는 받은 항목 요구 메시지의 발신자 필드가 가리키는 데이타를 보유하도록 설정된다. 상기 수신 노드가 상기 요청한 개체를 보유하고 있지 않다면, 상기 엔트리에 접근을 제공할 수 있 는 노드를 알기 위해 그의 테이블에 알아본다.
상기 요청된 개체를 제공할 수 있는 하나 이상의 노드가 존재한다는 것을 상기 테이블이 가리키고 있을 경우, 상기 수신 노드는 여러 노드 중의 하나를 선택한다. 예를 들어, 상기 받은 항목 요구 메시지가 개체 접근에 상응하는 고유 식별자를 포함하고 있을 경우, 상기 식별자는 노드 선택에 이용된다. 따라서, 예를 들어, 상기 고유 식별자를 가리키는 상기 테이블 엔트리에 상응하는 노드가 선택된다.
또 다른 예로서, 상기 수신 노드는 시스템 관리자 등등에 의해 설정된 사양에 따라 노드들 중 하나를 선택한다. 그러한 사양은 예를 들어 제일 적은 수의 홉의 목록에 상응하는 테이블 엔트리 및/또는 최고의 전체 이용가능한 처리량 대역폭을 가지는 노드를 선택하기 위해 수행된 것을 가리키는데 이 목록의 홉은 가로지르는데 드는 최소한의 비용이 든다. 또 다른 예로서, 상기 수신 노드는 상기 개체를 요구하는 상기 사용자가 가리키는 상기 지정된 기준에 따라 상기 노드들 중 하나를 선택한다. 다양한 실시 예에서는 그러한 지정된 기준이 상기 항목 요구 메시지에 포함된다.
다음 단계로, 상기 수신 노드는 상기 받은 항목 요구 메시지를 수정하고 상기 개체에 접근을 제공할 수 있는 상기 적절한 노드에 수정한 항목 요구 메시지를 보낸다 (609 단계). 위에서 언급한 바와 같이 상기 홉 필드가 갱신된 실시 예에서는 상기 기능성 면에서 상기 적절한 노드가 직접 접근할 수 있을 것으로 예측된다.
상기 받은 항목 요구 메시지를 수정하는 첫 번째 단계에서, 상기 수신 노드 는 그 자신을 가리키는 상기 즉시 노드 필드를 설정한 수 있다. 다양한 실시 예에서는 상시 노드가 상기 언급한 종류의 루프 백의 결정에 상응하는 노드 목록에 번갈아서 또는 부가적으로 그 자신을 추가한다. 상기 항목 요구 메시지를 수정하는 다음 단계로서, 상기 수신 노드는 상기 개체에 접근을 제공할 수 있는데 상기 적절한 노드에 전달을 지정하기 위하여 상기 즉시 노드 필드로 설정할 수 있다. 따라서, 상기 즉시 노드 필드는 상기 수신 노드의 테이블로부터 적절한 데이터를 포함하도록 설정된다.
다음으로, 상시 수신 노드는 상기 개체에 접근을 제공할 수 있는데 상기 적절한 노드에 전달되는 상기 갱신된 항목 요구 메시지를 가질 수 있다. 상기 수정된 항목 요구 메시지를 받았을 때, 상기 개체에 접근을 제공할 수 있는데 상기 적절한 노드는 항목 요구 메시지를 받은 노드가 실행하는 동작과 관련하여 바로 위에서 언급한 것과 유사하게 할 수 있다.
위에서 암시한 바와 같이. 본 발명의 다양한 실시 예에서는 개체는 하나 이상의 발송 메시지를 통해 수신자에게 보내질 수 있다. 그러한 발송 메시지는 예를 들어 발송 즉시 메시지, 채팅 관련 메시지 등등과 같은 다른 목적을 위해 쓰일 수 있다. 다양한 실시 예에서는 발송 메시지를 보내길 원하는 사용자는 그의 노드와 관련 있는 GUI나 다른 인터페이스를 통해 그의 요구를 그렇게 지시할 수 있다. 그 지시로 상기 사용자는 하나 이상의 수신자들을 지정할 수 있다. 다양한 실시 예에서는 노드가 그 사용자로부터 명확한 요구를 받지 않고 그러한 메시지를 보낼 수 있다. 그러한 동작은 예를 들어 상기 노드의 사용자가 그 노드를 이용하여 채팅 및/또는 메시지 보드 동작에 참여하고 있는데서 발생한다. 다양한 실시 예에서는 발송 메시지가 하나 이상의 수신자에게 보내질 경우, 상기 노드는 상기 수신자들 각각에 별도의 발송 메시지가 있는 것처럼 행동한다. 그러나. 다양한 실시 예에서는, 하나의 발송 메시지가 몇몇 멀리 떨어진 수신자들 및/또는 직접 접근가능한 수신자들로 작용할 가능성이 있다면, 적절한 행동을 하여 그렇게 이루어질 수 있도록 한다. 따라서, 예를 들어, 하나의 발송 메시지 복사본이 이 메시지를 더 복사하고 이 메시지를 다른 연결 및/또는 송신 링크를 통해 다른 수신자에게 가는 몇몇 발송 메시지로 수정하는 즉시 노드에 전달될 수 있다. 다양한 실시 예에서는 모든 수신자들이 예를 들어 단일 방송 채널 등등을 통해 도착할 수 있는 경우에는 복사되지 않는다.
도면 7과 관련하여, 사용자의 노드가 지정된 노드에 발송 메시지를 보낼 경우 상기 사용자의 노드는 다양한 실시 예에서는 먼저 상기 지정된 노드가 접근가능한지를 보고 행동한다 (701 단계). 따라서, 상기 사용자의 노드는 예를 들어 위에서 언급한 종류의 장치 발견, 포트 모니터링, 및/또는 방송 작업을 수행한다. 상기 사용자 노드는 번갈아서 또는 부가적으로 상기 지정된 노드의 알려지거나 가능한 네트워크 주소에 연결을 시도하고 또는 상기 지정된 노드의 현재 네트워크 주소는 상기 지정된 노드에 연결을 시도하기 전에 피어 노드 등록기로부터 물어본다. 또 다른 예로서, 상기 사용자 노드는 접근 상황에 대한 그 엔트리 테이블들을 먼저 검사한다. 지정된 노드가 직접적으로 접근할 수 없을 경우에, 상기 사용자 노드는 그 테이블에 문의하여 상기 지정된 노드에 접근을 제공할 수 있는 노드를 알고 있 는지를 정한다 (703 단계). 그러한 노드가 다수 개 있다면, 다양한 실시 예에서는, 위에서 언급한 바와 비슷한 방식으로 사양에 따라 상기 노드 중 하나를 선택한다. 그러한 사양은 예를 들어 시스템 관리자 및/또는 상기 사용자 노드에 의해 지시된다. 상기 타깃 노드가 직접 접근가능하다면, 상기 사용자 노드는 상기 타깃 노드에 상기 발송 메시지의 지정된 내용을 보낼 수 있다 (705 단계).
지정된 노드가 직접 접근가능하지 않는 경우에, 상기 사용자 노드는 상기 구체적인 노드에 접근을 제공할 수 있는 노드를 알고 있는지를 정하기 위해 그 테이블에 문의한다 (705 단계). 그러한 노드가 다수 개 있다면, 상기 사용자 노드는 다양한 실시 예에서는 위에서 언급한 바와 비슷한 방식으로 사양에 따라 상기 노드 중 하나를 선택한다. 그러한 사양은 예를 들어 시스템 관리자 및/또는 상기 사용자 노드에 의해 지시된다.
다음, 상기 사용자 노드는 발송 메시지를 만들 수 있다. 상기 사용자 노드가 상기 지정된 노드에 접근을 제공하는 하나 이상의 노드를 알고 있다는 것을 발견했을 경우, 상기 사용자 노드는 상기 적절한 노드에 상기 발송 메시지를 보낼 수 있다 (단계 705). 상기 사용자 노드가 상기 지정된 노드에 접근을 제공하는 노드를 알지 못한다는 것을 발견했을 경우, 상기 사용자 노드는 위에서 언급한 바와 비슷한 방식으로 하나 이상의 직접 접근가능한 노드로 상기 발송 메시지를 보낸다 (709 단계). 그러한 발송에는 예를 들어 방송을 이용한다.
만들어진 발송 메시지는 하나 이상의 많은 엔트리를 포함한다. 이중 첫 번째 엔트리는 위에서 언급한 바와 같이 유사한 방법으로 상기 발송 메시지에 대한 하나 이상의 수신자를 가린 킨다. 그러한 엔트리는 예를 들어 "로"로 분류된다. 아래의 다섯 번째 필드와 관련하여 이 필드에 리스트 된 수신자는 상기 발송 메시지의 궁극적인 타깃이 아니다.
두 번째 엔트리는 위에서 언급한 바와 같이 유사한 방법으로 상기 발송 메시지를 만든 상기 노드를 가리킨다. 그러한 엔트리는 예를 들어 "발신자"로 분류된다. 세 번째 노드는 위에서 언급한 바와 같이 유사한 방법으로 상기 발송 메시지를 만든 상기 노드로부터 움직인 메 세의 홉 수를 가리킨다. 그러한 엔트리는 예를 들어 "홉"로 분류된다. 네 번째 엔트리는 위에서 언급한 바와 같이 유사한 방법으로 상기 발송 메시지를 보내는 마지막 노드를 가리킨다. 그러한 엔트리는 예를 들어 "즉시 노드"로 분류된다.
다섯 번째 노드는 상기 발송 메시지의 궁극적 수신자에 상응하는 메타데이터 및/또는 다른 변수를 지정한다. 그러한 엔트리는 예를 들어 "타깃"으로 분류된다. 다양한 실시 예에서는 상기 메타데이터 및/또는 다른 변수들이 제공되어 상기 발송 메시지의 궁극적 수신자에 해당하는 전체 세트이고 또는 상기 원하는 궁극적 수신자를 알고 싶어하는 상기 항목 요구 메시지를 받는 노드에 충분하다. 다양한 실시 예에서는 또한 상기 메타데이터 및/또는 다른 변수들이 상기 원하는 엔터 티를 알고 싶어하는 상기 항목 요구 메시지를 받는 노드에 충분한 고유 식별자를 포함한다.
여섯 번째 엔트리는 위에서 언급한 바와 비슷한 방식으로 상기 발송 메시지를 만든 상기 노드와 관련하여 메타데이터 및/또는 다른 변수를 지정한다. 그러한 엔트리는 예를 들어 "발신자 데이터"로 분류된다. 일곱 번째 엔트리는 상기 발송 메시지의 페이로드를 보유한다. 예를 들어, 상기 발송 메시지는 즉시 메시지전달 메시지를 전달하는데 쓰이는 경우 상기 페이로드는 상응하는 텍스트 및/또는 다른 데이터를 보유한다.
위에서 언급한 바와 같이, 다양한 실시 예에서는 항목 요구 메시지는 아마도 부분 표시 필드 등등을 통해 지정된 개체의 원하는 부분의 표시를 포함한다. 그러한 실시 예에서는, 상기 발송 메시지의 페이로드에 포함되도록 선택된 상기 데이터는 상기 표시에 일치한다.
그러한 발송 메시지를 만들 때, 그러한 발송 메시지를 만들 때, 노드는 예를 들어 그 자신을 표시하도록 두 번째 엔트리를 설정하고 제로 홉 목록을 만들기 위해 세 번째 엔트리를 설정하고 그 자신을 표시하도록 네 번째 엔트리를 설정하고 상기 궁극적 수신자에 상응하는 메타데이터 및/또는 다른 변수들의 목록을 만들도록 설정한다. 그러한 메타데이터 및/또는 다른 변수들은 여러 방법으로 알려져 있다. 예를 들어, 그러한 메타데이터 및/또는 다른 변수들은 상기 노드 사용자에 의해 제공되고 또는 그 테이블에서 검색되기도 한다. 또한, 상기 노드는 그 자신의 메타데이터의 목록을 만들도록 여섯 번째 엔트리를 설정하고 또는 상기 적절한 페이로드 데이터를 소지하도록 일곱 번째 엔트리를 설정한다.
상기 사용자 노드가 상기 궁극적인 수신 노드에 접근을 제공하는 하나 이상의 노드를 알고 있다는 것을 발견했을 경우에, 첫 번째 엔트리는 상기 적절한 노드에 전달을 지정하기 위하여 상기 사용자 노드에 의해 설정된다. 따라서, 첫 번째 엔트리는 상기 적절한 테이블 엔트리로부터 검색한 데이터를 포함하도록 설정된다. 위에서 언급한 기능성 면에서, 상기 궁극적 수신 노드에 접근을 제공할 수 있는 상기 적절한 노드는 직접 접근가능할 수 있다고 예측된다.
위에서 암시한 바와 같이. 다양한 실시 예에서는, 상기 적절한 테이블 엔트리는 접근에 상응하는 고유 식별자를 표시한다. 그러한 실시 예에서는, 상기 만들어진 발송 메시지는 상기 고유 식별자를 포함한다. 그러한 고유 식별자는 다양한 실시 예에서는 위에서 언급한 종류의 다른 엔트리로 포함된다. 예를 들어, 상기 적절한 접근에 상응하는 고유 식별자를 포함하는 또 다른 엔트리가 존재하며 그 엔트리는 "접근 식별자"로 분류된다.
상기 사용자 노드가 상기 지정된 노드에 접근을 제공하는 노드를 알지 못하다는 것을 발견할 경우, 첫 번째 엔트리는 위에서 암시한 바와 같이. 하나 이상의 직접 접근이 가능한 노드로의 전달을 허락하도록 설정된다.
발송 메시지를 받은 노드의 동작을 설명할 것이다. 그러한 노드는 위에서 언급한 바와 유사하게, 발송 메시지를 발신한 노드나 이미 받은 다른 노드로부터 상기 발송 메시지를 받는다.
수신 노드가 발송 메시지를 받은 후에 상기 수신자는 먼저 상기 발신자를 조사하여 즉시 노드 필드가 다른지 알아본다. 두 즉시 노드 필드가 다르면, 상기 수신 노드는 아마도 위에서 언급한 바와 유사하게 상기 발신자 노드에 상응하는 테이블 엔트리를 만들거나 갱신한다. 다음, 상기 수신 노드는 위에 언급한 바와 유사하게 받은 메시지의 홉 필드를 증가한다. 다음 단계로, 상시 수신 노드는 타깃 필 드에 문의하여 상기 메시지의 궁극적 수신자인지를 정한다. 상기 수신 노드가 상기 타깃 필드가 궁극적 수신자라는 것을 발견했을 경우, 상기 메시지를 이용한다. 예를 들어, 상기 메시지가 즉시 메시지전달 데이터를 옮길 경우에, 그 데이터는 상기 사용자에게 주어진다.
상기 수신자 노드가 상기 궁극적인 수신자가 아니었다는 것을 발견할 경우, 상기 노드는 위에서 언급한 바와 유사한 방법으로 상기 궁극적 수신자가 직접 접근가능한지를 알아본다. 상기 노드가 예를 들어 장치 발견, 포트 모니터링, 포트 방송 등등을 통해 또는 그 테이블에 문의하여 그런 결정을 한다. 상기 궁극적인 수신자가 직접 접근가능할 것으로 발견될 경우, 상기 수신 노드는 상기 메시지를 수정하고 상기 궁극적 수신자에게 상기 메시지를 보낸다. 다양한 실시 예에서는 상기 수신 노드가 대신에 상기 발송 메시지의 페이로드만 기존에 알려진 기술을 이용하여 상기 궁극적 수신자에게 보낸다.
상기 수신 노드가 상기 궁극적 수신자가 직접 접근가능하지 못한다는 것을 발견했을 경우, 상기 수신 노드는 그 테이블을 검사하여 상기 궁극적 수신 노드에 접근을 제공할 수 있는 하나 이상의 노드를 알고 있는지를 알아본다. 그러한 하나 이상의 노드가 발견되었을 경우, 상기 수신 노드는 다양한 실시 예에서는 위에서 언급한 바와 유사하게 하나 노드를 선택한다. 예를 들어, 개체 접근에 상응하는 접수한 고유 식별자가 상기 선택에 이용된다. 상기 수신 노드는 그러면 상기 메시지를 수정하고 상기 궁극적 수신 노드에 접근을 제공할 수 있는 상기 적절한 노드에 상기 메시지를 보낸다. 상기 수신 노드가 상기 궁극적 수신 노드에 접근을 제 공할 수 있는 노드를 알지 못한다고 할 경우, 상기 수신 노드는 상기 메시지를 수정하고 하나 이상의 직접 접근가능한 노드로 상기 메시지를 보낸다.
다양한 실시 예에서는, 상기 수신 노드가 다음 단계로서 상기 발송 메시지가 소지하는 상기 페이로드 데이터를 저장한다. 몇몇 실시 예에서는, 그러한 행동이 어떤 조건 아래에서만 일어난다. 예를 들어, 그러한 행동은 상기 페이로드가 공유하는 미디어 항목, 프로그램 파일, 등등에 상응할 때 일어나나 상기 페이로드가 즉시 메시지나 챗트 데이터에 일치할 때는 일어나지 않는다.
상기 데이터를 저장할 때, 상기 수신 노드는 상기 저장된 데이터에 상응하는 테이블 엔트리를 만들고 또는 갱신하는데 이 엔트리는 상기 페이로드에 포함되어 있는 메타데이터 및/또는 다른 변수를 포함하고 있다. 예를 들어, 상기 페이로드가 미디어 항목과 일치할 때, 상기 미디어 항목 데이터와 관련 메타데이터 및/또는 다른 변수가 있는 테이블 엔트리가 만들어지고 또는 갱신된다.
다양한 실시 예에서는 유사한 기능이 일어나지만. 상기 페이로드 데이터 외에 상기 발송 메시지의 즉시 노드 필드에 지정된 노드의 표시를 포함하는 테이블 엔트리가 만들어지고 또는 갱신된다. 따라서, 예를 들어, 미디어 항목에 상응하는 테이블 개체 또는 다른 개체는 만들어지고 갱신되고 이 엔트리는 상기 관련된 메타데이터 및/또는 다른 변수와 상기 발송 메시지의 즉시 노드 필드에 지정된 노드가 상기 엔트리를 제공한다는 표시를 포함한다.
본 발명의 다양한 실시 예에서는, 상기 노드가 충분한 저장 공간이 있을 경우에 노드에서 데이터 저장이 이루어진다. 몇몇 그러한 실시 예에서는 노드가 예 를 들어 저장된 상기 데이터가 있을만한 충분한 공간이 있는 경우에 충분한 저장 공간을 가지는 것으로 여겨진다. 다른 실시 예에서는, 노드가 충분한 저장 공간을 소유 여부의 결정은 예를 들어 하나 이상의 사양에 따라 이루어지기도 한다. 예를 들어, 저장 후 최소한의 저장 공간이 남아있다면 저장이 이루어진다고 지정되기도 한다. 몇몇 실시 예에서는, 예를 들어, 지정된 저장 항목의 낮은 사용 빈도 및/또는 지정된 저장 항목이 사용된 마지막 시간이래 오랜 시간이 지난 후 상기 항목이 새로운 항목으로 덮어쓰기가 허락될 수도 있다. 그러한 사양은 예를 들어 소프트웨어 모듈 생성자 및/또는 노드 제조자에 의해 디폴트, 상기 노드 사용자. 시스템 관리자 및/또는 다른 개인으로 설정될 수 있다. 예를 들어, 상기 예와 관련하여, 이는 "낮은 사용 빈도" 및/또는 "오랜 시간이 지난 후"에 상응하는 값을 정의하고 또는 제공할 수 있다.
저장 및/또는 막 언급한 테이블 엔트리 작업을 수행한 후에, 상기 수신 노드는 상기 접수 항목 요구 메시지를 수정하여 상기 언급한 대로 발송한다. 위에 언급한 대로 상기 홉 필드가 갱신된 실시 예에서는, 발송된 메시지는 그 필드의 갱신된 버전을 포함한다. 또한, 위에서 언급한 기능성 면에서, 상기 노드나 상기 메시지가 발송된 노드들은 직접 접근가능한 것으로 예측된다.
상기 접수한 항목 요구 메시지를 수정하는 첫 단계에서, 상기 수신 노드는 상기 즉시 노드 필드를 그 자신을 지시하도록 설정할 수 있다. 다양한 실시 예에서는 상기 노드가 위에서 언급한 종류의 루프 백의 결정에 상응하는 노드의 목록에 그 자신을 번갈아서 또는 부가적으로 추가하기도 한다. 상기 메시지를 수정하는 또 다른 단계로서 상기 수신 노드는 위에서 언급한 것에 따라 전달을 지정하기 위해 상기 필드를 설정하기도 한다. 따라서, "로" 필드는 예를 들어 상기 수신 노드의 테이블로부터 적절한 데이터나 장치 발견, 포트 모니터링, 포트 방송 등등을 통해 얻은 데이터를 포함하도록 설정되기도 한다. 다음으로, 상기 노드는 상기 적절한 노드나 다른 노드들에 전달된 상기 갱신된 항목 요구 메시지를 가질 수 있다. 상기 수정된 메시지를 받았을 때, 노드는 발송 메시지를 받은 노드의 동작과 관련하여 위에서 언급한 바와 유사하게 행동하기도 한다.
다양한 실시 예에서는 발송 메시지를 통해 보내어진 개체는 (예를 들어 미디어 항목) 하나 이상의 발송 메시지를 통해 보내어지기도 한다. 예를 들어, 미디어 항목은 다수의 발송 메시지를 통해 보내지기도 하는데 각각의 발송 메시지는 상기 미디어 항목의 한 부분을 그의 페이로드로 포함한다. 개체가 다수의 발송 메시지를 통해 보내지는 다양한 실시 예에서는 저장을 수행하는 노드 및/또는 위에서 언급한 종류의 테이블 엔트리 동작이 개체 부분과 관련하여 그렇게 행할 수 있다.
따라서, 상기 저장을 수행하는 노드 및/또는 위에서 언급한 종류의 테이블 엔트리 동작이 개체 부분과 관련하여 다양한 실시 예에서는 위에서 언급한 바와 유사하게 검색 응신 메시지와 검색 문의 메시지에 응답할 수 있으나 특정 개체의 한 부분이나 여러 부분들에만 접근을 제공할 수 있다는 것을 표시하기도 한다. 상기 표시는 다양한 실시 예에서는 또한 상기 노드가 접근을 제공할 수 있는 상기 부분이나 부분들에 상응하는 부분 숫자들과 전체 개체를 만들어내는 부분들의 수를 가리키기도 한다. 구체적인 예로서, 상기 노드는 특정 개체의 다섯 부분 중 세 번 째 및 네 번째 부분들에 접근을 제공할 수 있음을 표시하는 검색 응신 메시지를 보내기도 한다.
상기 검색 응신 메시지에 응답하여, 대응 검색 문의 메시지를 원래 발송한 노드가 상기 검색 응신 메시지를 발송한 상기 노드가 제공할 수 없는 각 개체 부부분에 상응하는 검색 문의 메시지를 발송하기도 한다. 따라서, 상기 구체적인 예에 더하여, 상기 대응 검색 문의 메시지를 원래 발송한 노드가 상기 특정 개체의 첫 번째, 두 번째, 세 번째 부분 각각에 해당하는 검색 문의 메시지를 발송하기도 한다. 상기 각각의 문의 메시지는 메타데이터 및/또는 다른 변수를 포함하기도 한다.
다양한 실시 예에서 각각 검색 문의 메시지에 포함된 상기 메타데이터 및/또는 다른 변수는 위에서 언급한 바와 유사하게 부분들을 요청받고 있는 상기 개체에 상응하는 전체 세트이고 또는 원하는 개체의 부분을 알기 위해 상기 항목 요구 메시지를 접수하는 노드에도 충분하기도 하다. 상기 다양한 실시 예에서는 상기 원하는 개체를 알기 위해 상기 항목 요구 메시지를 접수하는 상기 노드에 충분하기도 한 고유 식별자가 상기 메타데이터 및/또는 다른 변수에 포함되기도 한다.
다양한 실시 예에서는, 발송용으로 나누어진 개체의 부분들의 수와 크기는 예를 들어 시스템 관리자나 다른 개인에 의해 설정된 사양에 따라 정해지기도 한다. 예를 들어, 개체들은 정해진 크기만큼 가능한 많은 부분들로 분할되기도 하고 상기 분할 후 남은 데이터는 상기 정해진 크기에 도달하는 스터프(stuff) 데이터 (예를 들어 0)로 채워지기도 한다. 상기 정해진 크기는 예를 들어 패킷 페이로드 용량, 네트워크 링크 타입, 등등에 상응하기도 한다. 구체적인 예로서, 상기 정해진 크기가 500 바이트이고 상기 개체가 570 바이트일 때, 상기 개체는 개체 데이터의 500 바이트를 각각 포함하는 11개 부분과 메워진 데이터의 300 바이트와 개체 데이터의 200 바이트를 포함하는 12번째 부분으로 발송되기도 한다. 다른 예로서, 마지막 부분은 마지막 부분임을 나타내는 표시 및/또는 메시지 길이 필드나 메시지 끝 필드 같은 몇몇 다른 부가 표시를 포함하기도 하나 메워진 데이터는 포함되지 않는다.
위에서 언급한 바와 같이, 발견한 개체에 상응하는 데이터가 있는 사용자는 다양한 실시 예에서 추가 검색 수행 선택권이 주어진다. 상기 추가 검색 기능은 여러 방법으로 실시된다. 예를 들어, 사용자 노드가 대응하는 본래의 검색 문의 메시지의 것처럼 추가 검색 문의 메시지를 발송하여 상기 추가 검색을 수행하기도 하나 상기 이미 발견된 개체는 고려 대상에서 제외됨을 표시한다.
따라서, 상기 추가 검색 문의 메시지는 이이 발견된 개체 각각에 대응하는 메타데이터 및/또는 다른 변수를 포함하기도 한다. 상기 포함된 메타데이터 및/또는 다른 변수는 위에서 언급한 바와 유사하게 상기 각각의 개체에 상응하는 메타데이터 및/또는 다른 변수의 전체 세트이기도 하고 또는 상기 고려대상에서 제외된 상기 개체를 알기 위해 상기 항목 요구 메시지를 받은 노드에 충분하기도 한다. 상기 다양한 실시 예에서 상기 고려대상에서 제외된 상기 개체를 알기 위해 상기 항목 요구 메시지를 받은 노드에 충분한 고유 식별자는 상기 메타데이터 및/또는 다른 변수에 포함되기도 한다.
다양한 실시예에서, 노드는 하나 또는 그 이상의 그룹들과 관련될 수 있고/있거나 하나 이상의 네트워크 인터페이스를 가질수 있다. 이러한 경우에는 노드는 전체 참고 테이블과/또는 각 그룹과/또는 인터페이스에 대한 전체 참고테이블 섹션을 유지할 수 있다.
본발명의 다양한 실시예에 따르면 하나 또는 그 이상의 노드는 예를 들어 다른 네트워크, LAN, 등등에 속하는 노드간의 통신을 허락할 수 있는 연결체(crosslinker) 노드로서 기능할수 있음을 알수 있다. 예를 들면, 이러한 노드는 다른유형일수 있는 두 개의 네트워크 인터페이스를 가질수 있다. 이러한 연결 노드는 예를 들면 제 1인터페이스상의 메시지를 수신하고 제 2인터페이스를 통해 하나 또는 그이상의 노드에 보내도록 작용할 수 있다.
특정한 예로서, 이러한 연결 노드는 블루투스(bluetooth), 802.11b, 또는 802.11b 인터페이스를 통해 메시지를 수신하고, 상기 언급된 종류의 하나 또는 그이상의 동작을 수행한 후에 그 메시지를 이더넷(Ethernet) 인터페이스를 통해 도달가능한 하나 또는 그 이상의 노들에 보낼 수 있다. 다른 특정한 예로서, 이러한 연결 노드는 상기방식과 유사하게 제 1 LAN에 연결된 제 1 이더넷 인터페이스를 통해 메시지를 수신하고, 제 2 LAN에 연결된 하나 또는 그 이상의 노드에 제 2 이더넷인터페이스를 통해 보낼 수 있다. 또 다른 특정한 예로서, 이러한 연결 노드는 상기방식과 유사하게 블루투스(bluetooth), 802.11b, 또는 802.11b 인터페이스를 통해 메시지를 수신하고 그 메시지를 UMTS 인터페이스를 통해 도달가능한 하나 또는 그이상의 노들에 보낼수 있다.
본 발명의 다양한 실시예에서, 멀티캐스트 송신은 예를 들면 발송 메시지의 배달에사용될 수 있다. 노드는 예를 들면 멀티캐스트를 통해 도달가능한 몇 개의 노드들은 특정 메시지를 수신할 필요가 있음을 결정하는 것과 같은 동작을 수행할 수 있다.
게다가, 다양한 실시예에서 노드들은 메시지가 불완전하게, 부정확하게, 등등으로 수신될 경우에 이 메시지의 재전송을 요구할 수 있음을 알수 있다. 이러한 기능성은 다수의 방식으로 이행될 수 있다. 예를들면, 재전송 요청메시지는 재전송이 요청된 메시지의 중간 노드 영역에서 명시된 노드에 보낼질 수 있다.
본 발명의 다양한 실시예를 위해서, 하나 또는 그이상의 소프트웨어 모듈은 다른 노드와의 어떤 연결 오픈이 유지되고 있는지를 제어하기 위해 하나의 노드를 작동할 수 있다. 이러한 결정은 다수의 파라미터에 근거해서 이루어질 수 있다. 예를들면, 이러한 모듈들은 다양한 노드간의 연결패턴을 추적할 수 있다. 그런 후, 이러한 모듈은 특정한 연결이 가까운 미래에 사용될 것이었는지를 추측하기 위해 이러한 패턴을 검사할 수 있다. 특정한 연결이 가까운 미래에 사용될 것으로 추측된 되었을 경우에 이 연결은 지속적으로 오픈될 수 있었다. 이러한 기능성은 다수의 혜택을 가 질수 잇다. 예를 들면, 연결 설치 및/또는 해체 동작을 줄이는 것은 하나 또는 그 이상의 노드에서의 처리 및/또는 에너지절약의 결과를 가져올 수 있다. 다양한 실시예에서, 다수의 메시지 등이 링크와 연관된 단일의 통신관 등을 통해 두 개의 노드 사이에 보내질 수 있기에 적당한 연결에 활용될 수 있다.
이러한 모듈 등에 의해 수행되는 동작들은 예를 들면 이 모듈과 연관된 노드 와 다른 노드들간의 최적의 개수의 연결들을 지속적으로 오픈시키기 위한 목적을 갖고 수행될 수 잇다. 이러한 소프트웨어 모듈 등이 이용되는 실시예에서 특정의 다른 노드들 (예를 들면, 하나 또는 그 이상의 특정그룹에 속하는 노드들)과의 기존의 연결이 충분하지 않은 것으로 밝혀지는 경우에만 그 이상의 연결이 요구되고/거나 설정될 것이라는 것을 알수 잇다. 따라서, 이러한 실시예에서, 예를들면, 여기서 설명되는 다양한 네트워크 동작 (예를 들면, 그룹 참가와 관련된 동작, 검색와 관련된 동작, 공유와 관련된 동작, 통신(messaging)과 관련된 동작, 및 채팅(chat)과 관련된 동작)을 수행할 때 새로운 연결을 요구하고/거나 수립하는 동작을 수행할 필요가 없을 것이다. 이러한 모듈이 수행하는 동작들은 다양한 실시예에서 사용자가 경험하는 대기시간을 줄이는 효과를 가질 수 있다.
상기에서 암시한 바와 같이, 다양한 사양(specifications) (예를 들면, 네트워크 인터페이스사용과 관련)이 다양한 실시예에서 예를 들면 소프트웨어 모듈에 관련된 사용자 노드의 통신환경을 통해 설정될 수 있다. 예를들면, 통신환경은 최초 등록시 디폴트 구성파일로서 그리고/또는 아마 네트워크를 통해 전송되었을 추후의 갱신으로서 사용자 노드에 부여되었을 수 있다. 또는 혹은 게다가, 통신환경은 아마도 적절한 GUI를 통해서 노드의 사용자에 의해 입력되었을 수도 있다. 또는, 사용자가 이러한 환경을 정의하거나 각각의 동작별 선택을 실시할 수 있다. 이러한 입력을 통해, 사용자는 다양한 실시예에서 특정한 그리고/또는 모든 네트워크 동작 등에 대하여 그리고/또는 동작단위로 통신환경을 지정할 수 있을 것이다.
통신환경은 다양한 실시예에서 적절한 소프트웨어모듈을 통한 다른 노드와의 통신에 관련된 네트워크 링크와 노드 인터페이스의 사용에 관한 전반적인 가이드라인을 다룰 수 있다. 게다가, 통신환경은 다양한 실시예에서 각각의 동작유형별 특정 환경들로 나누어질 수 있음을 알 수 있다. 따라서, 예를 들면, 검색 요청 및/혹은 응답에 관련된 환경과 예를 들면 개체(entity)들의 업로드 및 다운로드와 같은 더 많은 대역폭 요구 동작들에 대한 다른 환경들이 있을 수 있다.
다양한 실시예에서, 다양한 네트워크 동작 (예를 들면, 개체 업로드, 개체 다운로드, 및/혹은 메시지 전송)과 관련된 비용 및/혹은 대역폭이 될 수 있음을 알수 있다. 따라서, 사용자는 예 를들면 GUI를 통해서 사용자가 유발하는 비용 및/혹은 사용자가 특정네트워크동작을 수행하는데 즐기는 대역폭을 통지 받을 수 있다. 다수의 홉(hop)들이 특정네트워크 동작에 관련되었을 경우에, 사용자에게 각 홉에 대한 비용 및/또는 대역폭이 제시되었을 것이다. 다수의 대안들이 네트워크 동작 (예를 들면, 단일 UMTS 홉을 포함하는 하나의 경로 및 여러 개의 블루투스 홉을 포함하는 다른 경로)을 수행하기 위해 이용가능할 경우, 사용자에게 각 대안에 대한 비용 및/또는 대역폭 정보가 제시될 수 있다. 이 제시는 아마도 방금 설명된 바와 같다.
다양한 실시예에서, 상기 언급된 종류의 사용자에게 정보를 표시하는데 있어서, 제시는 일정한 특성을 강조할 수 있는 방식으로 될 수 있다. 예를 들면, 다수의 대안들이 네트워크 동작을 수행하는 사용자에게 이용가능할 경우, 방금 설명한 종류의 제시에 더하여 또는 이 제시에 대한 대안으로서 사용자에게는 예 를들어 어떤 대안이 가장적은 비용이 드는지, 어떤 대안이 가장 높은 대역폭을 제공하는지 등에 대한 지적들이 제시될 수 있다.
본 발명의 다양한 실시예에서, 사용자가 수행하는 네트워크 동작들은 다른 사용자가 네트워크 사용 비용과 같은 비용을 초래하도록 유발할 수 있다. 이것은 사용자가 하나 또는 그 이상의 다른 사용자의 노드를 통해서 전송된 개체를 요청하는 경우에 나타날 수 있다. 따라서, 다양한 실시예에서 사용자가 예를 들면 특정한 네트워크 동작을 수행하는데 다 른사용자들이 초래하게끔 하는 비용에 대한 정보를 제공받을수 있도록 기능성이 제공될 수 있다. 그 사용자는 예를 들면 방 금설명한 것과 유사한 방법으로 정보가 제공될 수 있다.
게다가, 다양한 실시예에서, 이러한 소프트웨어 모듈들은 이름 및/또는 등록서버 어드레스를 얻기위해 부트스트랩(bootstrap) 구성을 활용할 수 잇음을 알수 잇다. 더욱이, 다양한 실시예에서, 이러한 소프트웨어 모듈들은 이모듈이 활동하는 노드에 해당하는 그룹멤버십 명부를 유지하고 더 나아가서 각 그룹의 상태 및/또는 각 그룹에 대한 도달가능한 동료 명부를 유지하도록 작동할 수 있다. 이 도달가능한 동료 명부는 예를들면 노드의 고유 ID를 포함하고, 잠재적 네트워트 주소들과의 직접적인 연결을 상술하고, 또한/또는 다른 동료들의 통한 적당한 연결을 상술할 수 잇다. 이러한 명부는 하나의 특정예로서, 통상적으로 항상 온라인상태에 있는 노드를 지적할 수 있다. 이러한 명부를 유지하는데 잇어서 모듈은 다양한 실시예에서 다른 노드들, 중앙서버가 제공하는 동료 등록명부, 분배된 등록명부로서 이행되는 동료등록명부 등으로부터 업데이트를 얻을수 있다.
또한, 다양한 실시예에서, 이러한 소프트웨어 모듈들은 연결과 관련해서 상 태변화와 관련하여 업데이트된 개체 참조 테이블를 갖도록 작동할 수 잇다. 게다가, 다양한 실시예에서, 이 소프트웨어 모듈들은 다수의 네트워크 환경에서 연결성을 지지하고, 역동적 네트워크 조건 (예를들면, 개체 참조 테이블 기재사항을 숙성과 업데이트를 통해서 및/혹은 활동적인 연결 관리를 통해서)에 적응하고, 그리고/또는 상기 모듈이 움직이는 노드의 이동성을 지지하도록 (예를들면, 활동적 학습에 근거한 라우팅과 라우팅상태의 갱신을 다른 자원에 제공함으로써) 작동할 수 잇다. 더욱이, 다양한 실시예에서, 이 소프트웨어 모듈들은 예를들어 대역폭, 전송비용, 이용가능성등의 면에 있어서 연결성을 최적화하도록 작동할 수 있다. 게다가, 다양한 실시예에서, 이 소프트웨어 모듈들은 그룹차원의 연결들이 배경공정르로서 유지되고, 이 모듈들이 작동하는 노드의 사용자가 상기 특정 소프트웨어 모듈 (예를들면, 메시지전송 처리 및/혹은 서비스제공에 관련된 모듈)을 활성화시킬 때 즉시 이용가능하고, 그리고/또는 이 사용자가 네트워크연결을 요구하는 그룹에서 활동을 수행할때만이 활성화되는 것을 가능하게 하도록 작동할 수 있다.
다양한 실시예에서, 하나 또는 그 이상의 기술이 상기지적한 개체 참조 테이블의 유지에 활용딜 수 있다. 예를 들면, 노드는 직접적으로 도달가능할 그 개체 참조 테이블에 상술된 노드들에 도달하도록 주기적으로 시도할 수 있다. 이러한 시도로 이러한 노드가 더이상 도달가능하지 않았음을 알았을 경우에 상기 표는 이사실을 반영하기위해서 보정될 수 있다. 다양한 실시예에서, 해당하는 데이터가 상기 테이블에서 제거될 수 있다. 그 다음에, 이 노드는 추가적인 특정 횟수로 연결을 시도하고 추가적인 연결시도가 또한 성공적이지 않은 것으로 판명되는 경우에 만 상기 데이터의 제거를 수행할 수 있다. 또다른 실시예로서, 노드는 상기데이터의 상기 표에 등록이래로 특정시간의 경과 후에 노드 연결에 해당하는 테이블 데이타를 제거하도록 작동할 수 있다.
또 다른 실시예로서, 노드는 직접적으로 도달할 수 없었던 노드에 이러한 동작들을 수행할 수 있다. 따라서, 상기 노드는 예를 들면 문제의 노드를 기술하는 메시지의 대상영역과 함께 발송(dispatch) 메시지를 보내도록 시도할 수 있다. 예를들면 에러메시지 등이 상기 문제의 노드에 접근할 수 있다고 여겨졌던 하나 또는 그 이상의 노드에 의해 회송되었을 경우에, 해당하는 표 데이터는 제거될 수 있다. 다른 예로서, 이러한 제거는 상기발송메시지가 궁극 수령자 노드가 두 번째 발송메시지에 응답한다는 것을 나타냈을 경우에 일어날 수 있다. 상기논의된 것과 유사한 방식으로, 다양한 그러한 실시예에서, 데이터는 바로 삭제되는 대신에 잠재적 제거 대상으로 표시될 수 있다.
또다른 실시예로서, 다양한 실시예에서, 노드들은 다른 노드들이 개체 참조 테이블를 갱신하는데 있어서 사용될 수 있는 갱신정보를 이 다른 노드들에게 보낼수 있다. 한 특정 실시예로서, 이러한 갱신정보는 특정 노드가 그룹에 대해서 포기되는 경우에 전송될 수 있고, 이 갱신정보를 수신하는 노드들은 포기된 노드에 관한 개재사항을 삭제하도록 상기 그룹에 대한 개체 참조 테이블들을 갱신할 수 있다.
앞서 말한 다양한 예들은 일정기간, 시간간격 등이 이용될 수 있다는 것을 지적하고 있는 것을 알수 있다. 타당한 실시예에서, 이러한 값들은 예를들면 네트 워크 관리자 등에 의해 선택될 수 있다
더욱이, 사용자가 다양한 환경을 조작할수 있다는 것을 여러 부분에서 설명되고 있을지라도, 다양한 실시예에서, 사용자는 이러한 환경을 조작할 필요는 없을 수 잇다. 예를 들면, 다양한 실시예에서 사용자가 환경을 조작하는데 관심이없었다면 사용자는 여기에 기술된 사용자의 노드가 제공하는 기능성을 계속 즐길수 있도록 사용자는 용인할 수 있는 동작을 제공하는 사용자의 노드에 대한 일련의 디폴트 환경을 제공받을 수 있다는 것을 알 수 있다. 이러한 디폴트 환경은 예를 들면 제작시 및/또는 최초 등록시에 사용자의 노드에 제공될 수 있다. 게다가, 다양한 실시예에서, 예를들면 사용자는 처음으로 사용자의 노드를 획득할 때 환경을 설정하고 그 후에 주기적으로 및/또는 자기의 자유의사로 이 환경을 갱신할 수 있을 것이다.
추가적으로, 다양한 실시예에서, 사용자는 그의 노드와 함께 어떤 다른 것을 수행하기전에 완료하기 위해 여기에서 기술한 다양한 네트워크 동작들 (예를 들면, 그룹결합과 관련된 동작, 검색와 관련된 동작, 공유와 관련된 동작, 통신(messaging)과 관련된 동작, 및 대화(chat)와 관련된 동작)을 기다릴 필요가 없다는 것을 알 수 있다. 따라서, 사용자는, 다양한 실시예에서, 여기에서 설명한 하나 또는 그 이상의 네트워크 동작들이 예를 들면 배경공정 등으로서 수행되는 동안에 여기서 설명한 다른 동작들을 수행하고 (예들 들면, 이러한 동작들을 제공하는 특정의 응용소프트웨어의 다른 부분으로 이동함으로써), 그 사용자의 노드 상에서 동작하는 다른 응용소프트웨어로 이동하고, 다른 네트워크 동작이 수행되도록 동작할 수 있다. 사용자는 다양한 실시예에서 예를 들면 배경공정으로서 작용하는 하나 또는 그 이상의 네트워크 동작의 안성의 상태 및/혹은 통지를 받고 그리고/또는 요청할 수 있다. 이러한 상태 및/또는 통지는 예를 들면 비분배 방식으로 (예를 들면, 아마도 상태 바 등과 관련되는 작은 아이콘의 제시를 통해서) 표시될 수 있다.
그룹 참가 동작들
본 발명의 다양한 실시예에 따르면, 그룹의 결합 및 다양한 이용가능한 서비스의 활용을 원하는 사용자는 먼저 등록하기 위해 동작할 것이다. 예를 들면, 이러한 사용자는 다양한 실시예에서 키오스크, 소비자서비스위치 등을 방문할 수 있다. 다른 실시예로서, 사용자는 다양한 실시예에서 그의 노드를 웹 포털 등으로 돌릴 수 있다. 이 사용자는 키오스크 등에서 고객 대표에 의해서 혹은 웹 포털 등에 의해서 필요한 요금청구(billing) 정보, 개인정보 등을 제공하도록 재촉될 수 있다. 고객대표는 몇몇 메타데이터가 사용자의 노드와 관련될 것을 요구할 수 있다. 예를 들면, 대표는 이러한 데이터를 구두로 요청할 수 있고, 사용자는 구두로 대답할 수 있고,이 대표는 사용자가 PC 등에 의해 제시된 일련의 질문들에 답하도록 할 수 있다. 다양한 실시예에서, 이 메타데이터는 하나 또는 그 이상의 서비스 제공자에 의해 체크될 수 있다.
다양한 실시예에서, 대표는 사용자 및/또는 그의 노드에 대해서 인증이 이루어지도록 행동할 수 있음을 알수 있다. 게다가, 다양한 실시에에서, 사용자는 합법적인 방식으로 그리고/혹은 하나 또는 그 이상의 확립된 행동정책에 따라 행동할 것에 동의하도록 요구될 수 있다.
다음 단계로서, 타당한 소프트웨어 모듈 등은 이미 설치되어 있지 않다면 (예를들면, 사용자의 노드의 제작자에 의해) 이 사용자의 노드에 배치될 수 있다. 이 타당한 모듈은 예를 들면 사용자의 노드, 초기 디폴트 구성, 및/또는 서비스제공자 관련 정보에 대한 응용소프트웨어에 해당하는 모듈들 및/혹은 하나 또는 그 이상의 피어-투-피어 환경에 해당하는 노드들을 포함할 수 있다.
상기 초기 디폴트 구성은 예를 들면 사용자의 노드에 관한 초기 환경에 해당할수 있다. 노드에 관련된 정보는 예 를들면 공개그룹들에 관한 정보 및/혹은 네임-투-어드레스 (name-to-address) 매핑을 제공하는 일련의 노드들을 포함할 수 있다.
소프트웨어 모듈의 배치는 예를 들면 네트워크 다운로드를 통해, 웹 포털을 통해, 또는 고객 대표의 행위를 통해 일어날 수 있다. 따라서, 고객 대표는, 한 특정예로서, OBEX 객체 푸시 프로파일 (Object Push Profile; OPP)을 통해서 아마도 블루투쓰, IrDA, 802.11b, 802.111g, GPRS, EDGE, UMTS 등에 의해서 노드에 전달된 소프트웨어모듈을 갖도록 행동할 것이다. 상기 타당한 소프트웨어 모듈이 처음으로 활성화 될 때, 비밀키 및/혹은 공개키는 다양한 실시예에서 아마도 당 분야에 알려진 다양한 기술을 통해서 사용자의 노드에서 생성될 수 있다.
다양한 실시예에서, 상기 소프트웨어 모듈에 더하여, 하나 혹은 그 이상의 증명서가 노드에 전달될 수 있다. 예를 들면, "일반적 접근증명서"가 제시될 수 잇고, 그리고/혹은 사용자는 "일반적 그룹"의 일원으로 간주될 수 있다. 일반적 접근 증명서는 예를 들면 사용자에게 일반적 그룹에 제공된 서비스를 사용할 권리를 부여할 수 있다. 사용자 권리는 예를 들면 공개그룹에서 메타데이터 정보를 탐색할 권리를 포함할 수 있다. 다른 예로서, 사용자 권리는 일반적 그룹 멤버들 및/혹은 그들의 노들에 관한 메타데이터 정보를 탐색할 권리를 포함할 수 있다.
다음 단계로서, 메타데이터는 다양한 실시예에서 사용자 노드에 관련될 수 있다. 이러한 기능성은 다수의 방식으로 이행될 수 있다. 예를 들면, 사용자의 노드는 GUI (Graphical User Inteface) 혹은 다른 인터페이스을 통해 이러한 정보에 대해서 사용자에게 질문을 할 수 있다. 이에 응답하여, 사용자는 GUI 혹은 다른 인터페이스을 통해서 요청된 정보를 공급하고 이것이 노드에 발송되게 할 수 있다.
다른 예로서, 고객대표는 이러한 정보를 요구하고 이것을 노드에 발송되게 할 수 있다. 예를 들면, 대표는 구두로 이러한 데이터를 요구할 수 있고, 사용자는 구두로 응신할 수 있고, 대표는 이 데이터를 PC 등에 입력할 수 있다. 다른 예로서, 대표는 사용자가 PC등을 이용해서 제시된 일련의 질문들에 대답할 수 잇게 할 수 있다. 어느 한쪽의 경우에, 대표는 메타데이터를 상기에 논의된 것과 유사한 방법으로 PC등에서 사용자의 노드로 발송되도록 행동할 수 있다.
다음의 단계로서, 사용자는 그가 가압할 수 있는 하나의 또는 그 이상의 그룹에 관하여 듣기 위해 소프트웨어 모듈을 활용하기 위해 행동할 수 있다. 최초 다운로드시 사용자의 노드에 전달된 상기 소프트웨어모듈은 예를 들면 사용자가 잠재적으로 가입할 수 있는 그룹에 관한 정보요청을 신속히 처리하는데 있어서 접촉 되어야 할 노드의 초기정보를 포함할 수 있다. 따라서, 사용자는 그의 노드가 이러한 정보를 제공할 수 있는 노드에 관해서 알게끔 동작할 수 있다. 다양한 실시 예에서, 그룹에 대한 이러한 정보를 제공하기 위한 전용 노드가 존재할 수 있다는 것을 알 수 있다. 대안적으로 혹은 부가적으로, 이러한 정보는 또한 다른 기능을 수행했던 노드들에 의해 제공될 수 있다. 예를 들면, 다양한 실시 예에서 이러한 정보는 사용자와 관련된 다양한 노드에 의해 제공될 수 있다.
예를 들면, 다양한 실시 예에서, 사용자는 그의 노드가 이러한 노드들에 관해서 알기 위해 서비스 발견 (service discovery)을 이용할 수 있게끔 동작할 수 있다. 이 서비스발견은 예를 들면, 블루투스 서비스발견 혹은 DNS-SD (Domain Name Service Discovery)일 수 있다. mDNS (multicast Domain Name Server)는 예를 들면 DNS-SD를 활용하는 실시 예에서 활용될 수 있다. 다른 예로서, 노드는 확립된 및/혹은 잘 알려진 포트 상에서 방송하고 그리고/혹은 확립된 및/혹은 잘 알려진 포트 상에서 듣기 위해 동작할 수 있다. 또 다른 예로서, 다양한 실시 예에서, 사용자는 그의 노드가 이러한 정보를 제공한 노드들에 관해서 알기 위해 질문을 보내게끔 행동할 수 있다. 이러한 전송된 질문은 예를 들면 상기 설명된 종류의 탐색질문 메시지의 형태를 가질 수 있다. 다양한 실시 예에서, 이러한 탐색 질문메시지는 탐색을 통해 발견될 개체가 사용자가 가입가능한 그룹들에 대한 정보를 제공한 노드들이 라는 것을 나타내는 메타데이터 그리고/혹은 다른 파라미터들을 포함할 수 있다.
다양한 실시 예에서, 사용자는 그룹에 관한 정보를 제공하는 이러한 노드들 을 찾기 위한 희망을 GUI 또는 다른 인터페이스를 통해 그의 노드에 표시할 수 있을 수 있다. 이 요청에 응답하여, 사용자의 노드는 예를 들면 이러한 장치 찾기 (device discovery)를 수행하고 그리고/또는 적당한 메타데이터 및/혹은 다른 파라미터를 포함하는 방금 설명한 종류의 하나 또는 그 이상의 질문을 발송할 수 있다.
도 8에 따르면, 예를 들면 이러한 질문 또는 서비스발견을 통해, 사용자의 노드는 원하는 정보를 제공할 수 있는 노드들에 관해 알 수 있다 (단계 801). 예를 들면, 이러한 장치찾기를 통해서, 사용자의 노드는 상기 정보를 제공할 수 있는 노드들에 관한 정보를 포함하는 하나 또는 그 이상의 메시지를 수신할 수 있다. 이러한 메시지는 예를 들면 상기 설명한 종류의 탐색응신 메시지가 될 수 있다. 각각의 이러한 메시지에 다양한 실시 예에서, 상기 원하는 정보를 제공할 수 있는 노드들에 해당하는 메타데이터 및/혹은 다른 파라미터들이 포함될 수 있다. 다양한 실시 예에서, 각 노드에 해당하는 메타데이터 및/혹은 다른 파라미터들은 고유한 ID를 포함하고 그리고/혹은 그렇지 않으면 특정 노드를 정체를 확인하기에 충분할 수 있다. 다양한 실시 예에서, 고유 ID는 예를 들면 그룹, 노드, 사용자, 개체 등과 관련될 수 있다는 것을 알 수 있다.
그룹정보를 제공할 수 있는 노드에 관한 정보의 학습에 응답하여, 사용자의 노드는 다양한 실시 예에서 이러한 정보를 GUI 혹은 다른 인터페이스를 통해 그 사용자에게 제시하도록 동작할 수 있다. GUI 혹은 다른 인터페이스는 게다가 사용자가 상기 제시된 노드들로부터 그룹정보를 제공할 하나 또는 그 이상의 노드를 선택할 수 있도록 동작할 수 있다. 다양한 실시 예에서, 사용자는 웹페이지를 통해 예 를 들면 그룹 검색 동작을 포함하는 동작들을 수행할 수 있음을 알 수 있다. 이러한 웹페이지는 예를 들면 ASP (Active Server Pages), ASP+ (Active Server Pages +), JSP (Java Server Pages), PHP (Hypertext Preprocessor), WebObjects 등을 통해서 실현될 수 있다.
다음에, 사용자의 노드는 방금 설명한 종류의 사용자 명세서에 따라 하나 또는 그 이상의 적절한 노드로부터 이용가능한 그룹에 관한 정보를 요청할 수 있다 (단계 803). 다양한 실시 예에서, 사용자는 그가 지적된 메타데이터와 어울리는 그룹에 관련한 정보를 수신하는데에 만 관심이 있었음을 나타내기 위해 이마도 GUI 혹은 다른 인터페이스를 통해 그의 노드를 활용할 수 있다. 사용자가 이러한 메타데이터를 제공했을 경우에, 이 메타데이터는 요청에 포함될 수 있다. 본 발명의 실시 예에 따르면, 아주 다양한 종류의 메타데이터가 명기될 수 있다. 몇몇 특정한, 비제한적인 예를 제공하기 위해서, 명기가능한 메타데이터 중에 그룹의 주체, 그룹의 이름, 그룹의 창시자 등이 포함될 수 있음을 알 수 있다. 다양한 실시 예에서, 사용자는 그룹을 기술하는 문서양식 키워드를 입력할 수 있을 것이다. 이 키워드들은 예를 들면 사용자가 그룹을 찾는데 관련된 것으로 간주한 문서정보를 포함할 수 있다. 이러한 키워드는 아마도 그 그룹의 주체, 그 그룹의 이름 등을 기술하는 문서일 수 있다.
요청기능성은 다수의 방식으로 이행될 수 있다. 예를 들면, 다양한 실시 예에서, 사용자의 노드는 이러한 정보를 요청하기 위해서 이메일, MMS (Multimedia Messaging Service), SMS (Short Message Service), OBEX OPP (Object Push Profile) 등을 활용할 수 있다. 이러한 동작은 예를 들면 이용가능한 그룹에 관한 정보를 제공할 수 있는 노드들에 관련된 정보를 수신하기 위해 상기 언급된 동작들을 통해 사용자 노드에 의해 얻어지는 네트워크 어드레스, 고유의 ID등으로 향할 수 있다. 몇몇 실시 예에서는, 멀티캐스트가 활용될 수 있다.
다른 예로서, 상기 언급된 종류의 하나 또는 그 이상의 발송 메시지는 송신될 수 있다. 예를 들면, 발송메시지는 각 선택된 노드에 전달될 수 있다. 앞에서 논의된 바에 따라서, 각각의 이러한 메시지의 대상영역에는 선택된 적당한 노드에 해당하는 수신된 충분한 메타데이터 및/또는 다른 파라미터가 포함될 수 있다.
이용가능한 그룹에 관한 정보로부터 요청의 수신에 응답하여, 이러한 정보를 제공할 수 있는 노드는 요청에 부합하도록 동작할 수 있다. 따라서, 이러한 노드는 적당한 정보를 포함하는 사용자의 노드에 메시지를 회신하도록 동작할 수 있다. 각 그룹에 대한 이 적당한 정보에 예를 들면 이 그룹에 해당하는 메타데이터가 포함될 수 있다. 이 메타데이터에는 예를 들면 그 그룹의 이름, 그 그룹의 설명, 그룹회원 규범의 표시, 및/혹은 그 그룹과 관련된 일정한 개인들에 관한 연락정보가 포함될 수 있다. 이 개인들은 예를 들면 그룹들의 관리자들 그리고/또는 신청서 (application)가 요구되는 그룹에의 접근을 허여할 수 있는 개인들이 될 수 있다.
메타데이터가 사용자에 의해 제공되었을 경우에 노드는 관련된 메타데이터가 제공된 메타데이터와 일치한 그룹에만 관련된 정보를 제공하도록 동작할 수 있다. 다양한 실시 예에서, 하나의 그룹에 해당하는 메타데이터는 회원 규범 및/혹은 그룹회원을 요청하기 위해 완성되어야 하는 그룹신청서에 관련된 정보를 포함할 수 있음을 알 수 있다. 특정 예로서, 세 가지 유형의 그룹 신청서 (예를 들면, 짧은 신청서, 보통의 신청서, 및 긴 신청서)가 존재할 수 있고, 메타데이터는 이 유형들 중 어느 것이 사용되어야 하는지를 알려줄 수 있다. 그룹신청서들은 아래에서 좀더 상세히 설명될 것이다. 다양한 실시 예에서, 오직 타당한 그룹들에 관한 정보를 제공하도록 동작하는데 있어서, 노드는 예를 들면 메타데이터 분석, 문서 분석, 및/혹은 일정한 메타데이터 영역에 대하여 예를 들면 키워드의 매핑을 포함하는 동작들을 수행할 수 있다. 상기 일정한 메타데이터영역은 예를 들면 가장관련되도록 결정되고/되거나 지적된 영역들이 될 수 있다. 이러한 지적은 예를 들면 시스템 관리자 등에 의해 이루어질 수 있다.
이용가능한 그룹에 관련한 정보의 요청에 응답하는 메시지는 다수의 방법으로 보내질 수 있다. 예를 들면, 이러한 메시지는 이메일, MMS, SMS, OBEX OPP 등을 통해 전송될 수 있다. 이러한 동작은 사용자의 노드의 네트워크 어드레스 등으로 향할 수 있다. 이러한 네트워크 어드레스 등은 예를 들면 그룹정보의 요청을 통해 수신되었을 것이다. 다른 예로서, 이러한 메시지는 사용자의 노드로 향한 상기에 설명된 종류의 발송메시지일 수 있다. 따라서, 이 발송메시지의 대상영역은 그룹정보를 요청하는 사용자의 노드에 의해 생성된 수신된 발송메시지의 발기인(originator) 영역에 포함된 값으로 설정될 수 있다.
다양한 실시 예에서는, 그룹정보를 포함하는 이러한 메시지는 사용자의 노드가 해당하는 요청을 하지 않고 사용자의 노드에 의해 수신될 수 있다. 예를 들면, 그룹의 회원 및/혹은 이 그룹의 관리자가 특정한 요청 없이 전송된 이러한 정보를 갖도록 행동할 수 있다. 이러한 행동은 예를 들면 그룹멤버십을 증가하기 위한 목적으로 수행될 수 있다. 이러한 메시지는 다양한 실시 예에서 그룹으로의 초대장을 포함할 수 있다. 이 초대장은 아마도 소프트웨어 모듈 및/혹은 특정한 행위를 사용자에게 요구하지 않고 사용자의 노드에서 타당한 소프트웨어 모듈 등을 활성화하는 설명을 포함할 수 있다. 사용자의 그룹 가입은 아마도 그의 노드가 제공한 인터페이스를 통해 전송된 초대장을 수락한 사용자에 의해 보완될 수 있다. 특정의 비제한적인 예로서, 초대장은 gaming 신청서에 나타난 gaming 초대장이 될 수 있고, 사용자는 아마도 gaming 신청서와 관련된 인터페이스를 통해 상기초대장을 수락할 것이다.
다양한 실시 예에서, 한 유형의 그룹은 단말기 간에 파일 공유, 파일 업로드, 파일 검색, 및/혹은 파일다운로드를 가능하게 하기 위해서 사용되는 사용자 자신의 노드들의 그룹이 될 수 있다. 이러한 종류의 그룹에서, 사용자의 노드는 예를 들면 다른 사용자들의 노드들의 그룹멤버십 메타데이터의 비교를 수행할 것이다. 이 비교에 근거하여, 목록이 상기 사용자의 노드들의 일부만이 속한 그룹들로 형성될 수 있다. 이 목록은 예를 들면 사용자의 단말기들 간에 그룹멤버십들을 동기화하기 위해 사용될 수 있고, 사용자의 확인은 아마도 그룹신청서 요청을 초기화하기 위해서 요청될 수 있다. 특정한 사용자의 노드들의 그룹멤버십을 관리하기 위한 다른 방법은 하나의 노드가 사용자의 다른 노드들에 그룹 멤버십을 부여할 수 있도록 상기 하나의 노드에 대표 관리자 권리를 부여하는 방법을 포함하고 있다.
그룹 정보 수신 후에 사용자의 노드는 다양한 실시 예에서 GUI 혹은 다른 인 터페이스를 통해 이 그룹정보를 이 사용자에게 제시하도록 작동할 수 있다 (단계 805). 상기 GUI 혹은 다른 인터페이스는 상기 사용자가 정보가 제시되는 하나 또는 그 이상의 그룹들에 가입하기 위한 희망을 표시하도록 작동할 수 있다. 이러한 선택을 하는 사용자에 응답하여, 사용자의 노드는 적절한 대상에 가입요청메시지를 송하도록 작동할 수 있다 (단계 807). 이 적절한 대상은 예를 들면 선택된 그룹에 관한 수신된 연락 정보에 명시되어있는 바와 같을 수 있다. 다양한 실시 예에서, 가입요청메시지에는 사용자에 해당하는 하나 또는 그 이상의 고유한 ID 및/혹은 하나 또는 그 이상의 그룹에 해당하는 하나 또는 그 이상의 고유한 ID이 포함될 수 있다.
상기 논의된 것과 유사한 방법으로, 상기 가입 요청메시지는 상기 해당하는 수신된 연락정보에 따라 이메일, MMS, SMS, OBEX OPP 등을 통해 송신될 수 있다. 다른 예로서, 상기 가입요청은 상기에 언급된 종류의 발송메시지를 통해서 전달될 수 있다. 이러한 발송의 대상영역은 예를 들면 상기 해당하는 수신된 연락정보에 따라 정해질 수 있다.
적당한 노드에서 가입요청 메시지의 수신시, 이 적당한 노드는 다양한 실시 예에서 그룹규칙을 참고하기 위해 관련된 메타데이터 디렉토리, 기억장치 등에 접근 할 수 있다. 이 그룹규칙은 다양한 실시 예에서 그룹 관리자 등에 의해 확립될 수 있다. 다양한 실시 예에서, 서비스 제공자는 하나 또는 그 이상의 그룹의 그룹 관리자로서 행동할 수 있다. 이러한 실시 예에서, 상기 서비스제공자와 관련된 하나 또는 그 이상의 노드를 작동하는 소프트웨어 모듈들은 이 서비스제공자가 그룹 의 멤버십을 그 자신의 고객들로 한정하는 것을 허락할 수 있다. 상기 그룹규칙을 참고하는데 있어서, 노드는 먼저 가입요청이 긍정적인 답을 받을 수 있을지를 알아보기 위해 작동할 수 있다. 특정 예로서, 상기 그룹 규칙은 그룹에 더 이상의 회원을 위한 여우가 있는지 없는지를 알아보기 위해 참고될 수 있다.
상기 가입요청의 더 이상의 처리는 자동으로, 아마도 상기 적절한 노드의 소프트웨어 모듈을 통해 일어날 수 있다. 다른 경우에는, 상기 적절한 노드는 그룹멤버십을 부여할 권리를 갖는 그룹 관리자 등에게 아마도 노드의 GUI를 통해 상기 수신된 가입요청을 통지한다.
상기 적절한 노드나 그룹관리자는 상기 가입요청에 해당하는 사용자가 멤버십 등에 잠재적으로 적격인지를 알기 위해서 또한 몇몇 외부 데이터베이스나 레지스터를 참고 할 수 있다. 이러한 적격성은 예를 들면 사용자가 일정한 영역에 관련이 있는지, 취미 그룹, 클럽 등의 멤버임을 증명하는지, 그리고/또는 그룹 멤버십 기준으로서 사용된 공공의 비밀의 공유할 수 있는지를 포함할 수 있다. 이 참조는 다양한 실시 예에서 사용자의 가입요청에 근거하여 그리고/또는 나중에 멤버십신청서에서 수신된 사용자 데이터에 근거하여 일어날 수 있다.
사용자에게 잠재적으로 멤버십이 부여될 수 없다고 판단되었을 경우에는 거절 메시지가 그 사용자의 노드에 발송될 수 있다. 상기 언급된 것과 유사한 방법으로, 상기 메시지는 예를 들어 이메일, MMS, SMS, OBEX OPP, 발송메시지 등을 통해 송신될 수 있다. 사용자에게 잠재적으로 멤버십이 부여될 수 있다고 판단되었을 경우에는 그룹 규칙이 사용자가 멤버십을 요청하기 위해 그룹신청서를 완성할 필요가 있는지 없는지를 알기 위해 더 참고될 수 있다.
이러한 신청서가 요구되지 않았을 경우에는, 사용자는 멤버십이 부여될 수 있었다. 따라서, 이 멤버십을 나타내는 메시지가 부여되었다. 상기 언급된 것과 유사한 방법으로, 이 메시지는 예를 들어 이메일, MMS, SMS, OBEX OPP, 발송메시지 등을 통해 송신될 수 있다. 다양한 실시 예에서, 이 메시지에는 그룹멤버십에 해당하는 증명서가 포함된다.
신청서가 요구되었을 경우에는, 이 신청서에 해당하는 데이터가 멤버십을 원하는 사용자의 노드에 송신될 수 있다. 상기 언급된 것과 유사한 방법으로, 메시지는 예를 들어 이메일, MMS, SMS, OBEX OPP, 발송메시지 등을 통해 전달된 가입요청거절메시지로서 송신될 수 있다. 다양한 실시 예에서 이 신청서는 비용청구 정보 (예를 들면, 신용카드 정보)를 요청할 수 있음을 알 수 있다.
이 신청서에 해당하는 데이터는 다수의 형식을 취할 수 있다. 예를 들면, 이 데이터는 이 신청서를 나타내고 결과를 이 신청서에 해당하는 데이터를 포함하는 메시지를 발송한 노드에 발송할 수 있는 안전한 웹사이트에의 하이퍼링크의 형태를 취할 수 있다. 이 안전한 웹사이트는 예를 들면 SSL (Secure Socket Layer) 또는 TLS (Transport Layer Security)를 활용할 수도 있다. 다른 예로서, 데이터는 수신자의 노드에서 활동할 때 이 신청서를 나타내고 결과를 이 신청서에 해당하는 데이터를 포함하는 메시지를 발송한 노드에 발송할 수 있는 자바 혹은 네트 애플리케이션의 형태를 취할 수 있다. 둘 중 하나의 경우에, 상기 결과의 발송은 예를 들어 상기 언급된 것과 유사한 방법으로 이메일, MMS, SMS, OBEX OPP, 발송메시지 등 을 활용할 수 있다. 대안으로서는, SOAP (Simple Object Access Protocol), RMI (Remote Method Invocation), JMS (Java Messaging Service) 등이 활용될 수 있다.
포워드 된 결과가 입력되면 수신자 노드는 상기 결과가 그룹 회원자격 허가를 필요로 하는 서버들과 일치하는지 여부를 판단할 수 있다. 상기 판단은 예를 들어 상기 결과를 상기에 언급된 그룹 규칙들과 비교하는 단계를 포함할 수 있다. 대안으로 혹은 부가적으로 상기 판단은 애플리케이션이 요청한 요금부과 데이터 (billing data) 등을 확인하기 위해 하나 혹은 그 이상의 서버 등과 통신하는 단계를 포함할 수 있다. 상기 하나 혹은 그 이상의 서버들은 예를 들어 은행, 신용카드 회사 등이 운영하는 서버들일 수 있다. 사용자에게 회원자격을 부여할 수 없다고 판단하는 경우에는 상기에 언급한 바와 같이 거부 메시지를 송신할 수 있다. 사용자에게 상기 회원자격을 부여할 수 있다고 판단하는 경우에는, 상기에 언급한 바와 같이 회원자격이 부여됐음을 알리는 메시지를 송신할 수 있다.
여기서 주목할 것은 다양한 실시예로서, 사용자에 관한 메타데이터로서 예를 들어 고객 대표에 의해 수집된다고 상기에 설명된 바와 같은 종류의 메타데이터 및/또는 그룹 내에서 상기 사용자의 회원자격에 관련된 메타데이터가 있을 수 있다는 점이다. 다양한 실시예로서, 전자의 메타데이터는 모든 가입자 노드가 공유할 수 있으나 아마도 상기 사용자에 의해서는 변경될 수 없으며, 반면 후자의 메타데이터는 상기 사용자에 의해서 지정되는 경우에만 공유될 수 있다.
검색 동작들
도 9를 참조하여, 그룹들, 기타 그룹 멤버들, 파일들과 같이 다운로드 할 수 있는 개체들(entities), 미디어 아이템들, 프로그램 등과 관련된 정보를 검색하고자 하는 노드 사용자는 다양한 실시예로서 GUI 또는 해당 노드가 제공하는 다른 인터페이스를 통해 자신이 상기 정보 등을 검색하고자 함을 알릴 수 있다 (901 단계). 다양한 실시예로서, 상기 사용자는 해당 노드의 하나 혹은 그 이상의 네트워크 인터페이스들이 개체들을 검색하거나 다운로드 할 때 사용될 수 있음을 부가적으로 명시할 수 있다.
더 나아가, 다양한 실시예로서, 특정 네트워크 인터페이스들 및/또는 링크 타입들의 사용을 최적화하고 및/또는 최소화하고자 함을 구체적으로 명시할 수 있다. 구체적인 예로서, 상기 노드는 가령, 예를 들어 GPRS 또는 UMTS 링크들과 같은 셀룰러 전화 링크들의 사용을 최소화하고자 하고 가령, 예를 들어 블루투스 링크와 같은 단거리 라디오 통신 링크들의 사용을 극대화해야 함을 명시할 수 있다. 다양한 실시예로서 상기 노드는 상기 사용자에게 GUI 또는 다른 인터페이스를 통해 상기 상세 정보들을 요청할 수 있다. 다양한 실시예로서 상기에 언급된 네트워크 인터페이스들의 사용에 관한 상세 정보를 제공하는 단계는 예를 들어, 적정한 소프트웨어 모듈과 관련된 사용자 노드의 설정 값을 통신함으로써 수행될 수 있다.
이에 대응하여, 상기 노드는 자신의 사용자에게 해당 사용자가 멤버로 포함된 그룹의 리스트를 제공하고 해당 사용자에게 상기 그룹들 가운데 어느 그룹에 대해서 상기 검색 과정이 수행되어야 하는지 나타낼 것을 요구할 수 있다. 상기 사용자는 상기 GUI 또는 다른 인터페이스를 이용하여 상기 선택을 할 수 있다 (903 단계). 다양한 실시예로서, 다음 단계에서 상기 사용자는 자신의 노드로 하여금 검색 대상이 되는 상기 개체들에 관련된 메타데이터, 키워드들, 및/또는 기타 파라미터들을 표시하도록 선택할 수 있다 (905 단계). 본 발명의 특정 실시예들에 따르면, 폭넓은 범위의 메타데이터가 특정될 수 있다. 일부 특정, 그러나 비 제한적인 실시예로서, 특정가능한 메타데이터 가운데 그룹들과 채팅과 같은 그룹 서비스들에 관련된 메타데이터, 이름, 크기, 장르, 아티스트, 앨범, 미디어 타입, 제작 일자, 해당 그룹이 이용 가능한 날짜 등과 같은 검색된 개체들과 관련된 메타데이터 등이 있을 수 있다. 특정 실시예로서, 상기 사용자는 상기 검색 동작이 주기적으로 시행될 수 있음을 명기할 수 있다. 상기 주기는 상기 노드에 의해 선택될 수 있고 또는 상기 사용자에 의해서 특정될 수 있다. 더 나아가, 본 발명의 특정한 실시예들로서, 사용자는 검색이 시작될 시각 및 일자를 지정할 수 있다. 또한, 다양한 실시예들로서, 검색 관련된 동작들이 사용자가 노드와 인터랙트하지 않을 때 상기 노드에 행해질 수 있음을 명시할 수 있다. 다른 예로서, 본 발명의 다양한 실시예에 따라, 검색 동작은 항상 액티브 (active)함을 명시할 수 있다. 상기 검색들과 관련된 동작들은 예를 들어 백그라운드 프로세스로서 시행될 수 있으므로 상기 적정한 사용자 인터페이스 소프트웨어 모듈들은 활성 상태가 아니고 상기 사용자는 어떠한 노력도 적극적으로 하지 않을 수 있다.
다음으로, 상기 사용자의 노드는 다양한 실시예에 따라, 선택된 그룹들에 속하는 하나 혹은 그 이상의 노드들에 관한 다운로드 가능한 개체들의 정보를 포함하는 하나 혹은 그 이상의 메시지를 기설정된 통신 채널들을 통해 송신할 수 있다.
다음으로, 상기 사용자의 노드는 상기 선택된 그룹 혹은 그룹들과 관련하여 다운로드 가능한 상기 개체들과, 메타데이터 및/또는 기타 파라미터들의 모든 상세 정보를 결정할 수 있다. 이 같은 기능은 다수의 방법으로 구현될 수 있다.
예를 들어, 상기 사용자의 노드는 기 설정된 통신 채널들을 통해서 선택된 그룹들에 속한 상기 하나 혹은 그 이상의 노드들과 관련된 다운로드 가능한 개체들에 관한 정보를 요청하는 하나 혹은 그 이상의 메시지들을 송신할 수 있다. 만약 상기 선택된 그룹들에 포함된 노드들에 닿을 수 있을 정도로 충분한 개수의 통신 채널이 마련되어 있지 않으면, 상기 사용자의 노드는 상기 특정된 그룹들과 관련한 노드들에 대해서 알기 위해 상기에 언급된 종류의 서비스 디스커버리 (service discovery)를 행할 수 있다. 따라서, 상기 사용자의 노드는 상기 서비스 디스커버리를 통해 상기 노드들에 관한 네트워크 어드레스 등을 알아낼 수 있다. 그 다음 상기 사용자의 노드는 다운로드 가능한 개체들과 관련한 정보들을 하나 혹은 그 이상의 상기 노드들에게 요청하는 하나 혹은 그 이상의 메시지들을 송신할 수 있다. 메타데이터 및/또는 기타 파라미터에 관한 모든 종류의 사용자 상세 정보가 상기 요청 메시지에 포함될 수 있다. 상기에 언급된 바와 유사한 방법으로 상기 각각의 메시지는 이메일, MMS 메시징, SMS 메시징, OBEX OPP 등으로 송신될 수 있다.
다른 예로서, 상기에 언급된 종류의 하나 혹은 그 이상의 검색 요청 메시지들을 송신할 수 있다. 다양한 실시예로서, 상기 검색 요청 메시지들의 상기 검색 데이터 필드에는 상기 사용자에 의해 특정되는 모든 메타데이터 및/또는 기타 파라미터들이 포함될 수 있다.
다음 단계로서, 상기 사용자의 노드는 다운로드 가능한 개체들에 관한 정보 를 입력받는다 (907 단계). 다양한 실시예로서, 상기 정보는 교유한 식별자들 (unique identifiers), 네트워크 어드레스 등을 포함할 수 있다. 상기 정보는 다수의 방식으로 입력받을 수 있다. 일례로, 상기 정보는 이메일, MMS 메시징, SMS 메시징, OBEX OPP 등과 같은 방식을 통해 송신된 메시지들을 통해서 상기에 언급된 것과 유사한 방식으로 입력될 수 있다. 또 다른 예로서, 상기에 언급된 종류의 하나 혹은 그 이상의 검색 응신 메시지들이 입력될 수 있다. 상기 입력된 정보는 예를 들어, 다운로드 가능한 상기 개체들에 관련된 메타데이터 및/또는 기타 파라미터들을 포함할 수 있다. 또한, 상기 입력된 정보는 네트워크 홉 (network hops) 횟수, 네트워크 홉의 타입, 네트워크 사용 비용 정보 등을 포함할 수 있다.
다음으로, 상기 노드는 다운로드 가능한 개체들에 관한 상기 입력된 정보 전부 혹은 일부를 자신의 사용자에게 GUI 또는 다른 인터페이스를 통해 제공할 수 있다 (909 단계). 다양한 실시예로서, 사용자가 링크 및/또는 인터페이스 사용에 관한 상세 정보를 제공한 경우에, 상기 입력 정보의 전부 혹은 일부를 제공하는 단계는 상기 상세 정보에 따라 수행될 수 있다. 특정 예로서, 상기 사용자 또는 상기 사용자의 노드 내에 설정 값들이 GPRS 또는 UMTS 링크들과 같은 셀룰러 링크들의 사용은 최소화하고 가령, 예를 들어 블루투스 링크들과 같은 단거리 라디오 통신 링크들의 사용은 극대화하고자 함을 나타낸다면, 상기 노드는 상기 상세 정보에 따라 복구될 수 있는 개체들에 관한 정보만을 제공할 수 있다. 주목할 것은 상기에 언급한 바와 같이, 다양한 실시예로서, 추가 검색 결과들이 요청될 수 있다는 점이다. 상기 실시예를 위하여, 상기 GUI 또는 기타 인터페이스는 사용자에게 상기 추 가 검색을 요청할 수 있는 옵션을 제공할 수 있다. 상기 사용자가 상기 추가 검색을 요청하는 경우에, 상기 사용자의 노드는 상기에 언급한 바와 같이 상기 요구에 따라 동작할 수 있다. 상기 추가 검색 결과가 입력되면, 상기 사용자의 노드는 아마도 상기에 기술된 것과 유사한 방식으로, 상기 입력된 데이터의 전부 또는 일부를 제공하고 아마도 다시 추가 검색 옵션을 제공하도록 동작할 수 있다. 상기 일 단계 검색 결과 제공은 이미지들의 썸네일들 (thumbnails), 비디오 클립의 샘플들, 문서 요약 등과 같은 콘텐츠 아이템들과 관련 대체물 (surrogates)을 포함할 수 있다. 특정 실시예로서, 상기 검색 결과들은 상기 검색된 아이템들의 메타데이터 및 기타 기술 내용 (descriptions)들을 상기 개체를 보유하고 있는 노드의 ID와, 상기 검색된 아이템들이 해당 노드가 활동 중이 아니거나 그 순간 연결될 수 없다면 사용이 불가함을 알리는 추가 통지를 포함할 수 있다.
다양한 실시예로서, 상기 GUI 또는 기타 인터페이스는 추가로 상기 사용자로 하여금 상기 제공된 개체들 가운데 하나 혹은 그 이상의 개체들을 선택하도록 동작할 수 있다 (911 단계). 상기 사용자의 노드는 다수의 방식으로 상기 선택된 개체들의 입력을 요청할 수 있다. 예를 들어, 상기 사용자의 노드는 상기 요청을 이메일, MMS 메시징, SMS 메시징, OBEX OPP 등을 통해 전송할 수 있다. 상기 요청은 상기 바람직한 개체들을 제공하는 노드들에 해당하는 고유 식별자들, 네트워크 어드레스들 등으로 전송될 수 있다. 상기 고유 식별자들, 네트워크 어드레스 등은 가령, 이메일, MMS 메시징, SMS 메시징, OBEX OPP 등을 통해 입력된 이용 가능한 개체들에 관련된 메시지들의 검사를 통해 알 수 있다.
다른 사례로서, 상기 사용자의 노드는 상기 언급된 종류의 하나 혹은 그 이상의 아이템 요청 메시지들을 전송할 수 있다. 다양한 실시예로서, 상기 사용자의 노드는, 상기에 언급한 바와 같이, 상기 각각의 아이템 요청 메시지에 상기 아이템 요청 메시지들을 입력받는 노드가 상기 바람직한 개체 메시지를 파악할 수 있을 정도로 충분한 정도의 메타데이터 및/또는 기타 파라미터들을 포함할 수 있다. 상기에 언급한 대로, 다양한 실시예로서, 고유한 식별자는 상기 메타데이터 및/또는 파라미터들에 포함될 수 있다.
다음 단계로서, 상기 사용자의 노드는 상기 요청된 개체들을 입력받는다. 상기 요청된 개체들은 다수의 방식으로 상기 사용자의 노드로 전송될 수 있다. 예를 들어, 상기 개체들은 상기에 언급한 바와 같이 디스패치 (dispatch) 메시지들을 통해 전송될 수 있다. 또 다른 실시예로서, 상기 개체들은 이들을 보유하고 있는 노드들에 의해서 이메일, MMS 메시징, SMS 메시징, OBEX OPP 등과 같은 방식을 통해 전송될 수 있다. 다양한 실시예로서, 다운로드 받을 개체들을 선택함에 있어서, 상기 사용자는 조건부 다운로드를 수행할 것을 명시할 수 있다. 예를 들어, 상기 사용자는 특정 개체는 자신의 노드가 상기 특정 개체를 보유하고 있는 노드를 직접적으로 컨택할 수 있을 때에만 (예를 들어, 디렉트 블루투스 통신을 통해) 다운로드가능 함을 명시할 수 있다.
상기 사용자의 노드는 다수의 방식으로 상기 요청에 따라 동작할 수 있다. 예를 들어, 상기 사용자의 노드가 상기 개체를 보유한 노드의 ID를 알고 있는 경우에, 상기 사용자의 노드는 상기 개체를 보유한 노드를 검색하기 위해서 주기적으로 디바이스 디스커버리 (device discovery)를 수행할 수 있고 상기 검색된 노드로부터 상기 개체를 입력받도록 동작할 수 있다. 다른 실시예로서, 상기 검색 결과들이 상기 개체가 단일 네트워크 홉을 통해서 입력받을 수 없음을 나타내면, 상기 사용자의 노드는 단일 네트워크 홉을 통해 상기 개체를 입력받을 수 있는 소스가 검색될 때까지 주기적으로 상기 검색을 반복하고 상기 소스가 검색되면 상기 소스로부터 상기 개체를 입력받는다. 특정한 실시예로서, 상기 사용자의 노드는 단일 블루투스 홉을 포함하는 상기 개체를 포함한 소스를 검색하기 위해서 상기 검색을 수행할 수 있다. 또 다른 대안적 실시예로서, 사용자 노드로부터 개체를 보유한 이 노드로의 액세스를 지원하는 블루투스 접속이 설정되고 이 블루투스 접속을 다른 노드들이 사용가능하면, 상기 개체 다운로딩이 수행될 수 있다.
다양한 실시예로서, 다운로드 할 개체를 선택함에 있어서, 사용자 및/또는 사용자의 노드는 상기 개체의 각각의 부분들이 다른 방식으로 입력될 수 있도록 지정할 수 있다. 예를 들어, 상기 노드가 상기 사용자에게 특정 개체는 두 가지 방식, 즉 블루투스 홉만을 이용한 방식과 UMTS 홉만을 이용한 방식으로 입력될 수 있음을 명시한 경우에, 상기 사용자는 GUI 도는 다른 인터페이스를 통해 상기 개체의 첫 번째 일부는 상기 UMTS 홉을 통해 입력받고, 그 나머지는 상기 블루투스 홉을 통해 입력받아야 함을 특정할 수 있다. 다양한 실시예로서, 상기 사용자 및/또는 상기 사용자의 노드는 추가로 상기 개체를 나누는 일부의 크기를 특정할 수 있다. 따라서, 상기 사용자 및/또는 상기 사용자의 노드는 상기 첫 번째 일부가 특정한 바이트 크기를 가지고 및/또는 상기 전체 개체의 특정 부분임을 특정할 수 있 다. 상기 첫 번째 일부는 예를 들어 상기 개체의 나머지 부분보다 상당히 작을 수 있다. 사용자 및/또는 사용자 노드는, 블루투스가 비교적 느리지만 덜 비싸고, UMTS는 비교적 빠르지만 비싸다고 인식하면서, 최초의 부분을 얻기 위해서는 막대한 비용의 지출도 상관 않겠지만 (가령, 사용자가 개체 활용을 시작할 수 있도록) 나머지 부분의 수신을 위해서는 더 길게 기다릴 수 있다는 입장을 택하여, 상기 사양을 정할 수 있을 것이다.
특정 실시예로서, 상기 개체의 부분 크기는 상기 사용자가 상기 개체의 첫 번째 일부를 사용할 시점에 다른 부분들이 이미 도착할 수 있도록 결정될 수 있다. 주목할 것은 가령, 사운드, 필름 등과 같은 미디어 아이템 등의 개체들은 사용자가 이들 개체 전부를 보유하지 않더라도 일부분을 열람할 수 있도록 하는 기능을 제공할 수 있다.
상기에 언급된 바와 같이, 다양한 실시예로서, (예를 들어, 네트워크 에러 등을 이유로) 미처 다 입력되지 못해 제대로 입력된 부분들이 없는 개체는 재전송될 수 있다.
상기 사용자가 아닌 상기 사용자의 노드가 개체의 다른 일부분들은 서로 다른 방식으로 입력되어야 한다고 특정하는 경우에, 상기 기능은 아마도 동작 관련 가이드라인(guidelines for operation)에 따라서 수행될 수 있다. 상기 가이드라인은 가령 상기 노드의 사용자가 (예를 들어, GUI를 통해) 설정한 선호도 정보 및/또는 디폴트 설정 값에 따라 결정될 수 있다. 상기 디폴트 설정 값들은 가령 최초 셋업 과정에 상기 노드로 로딩 되거나 및/또는 이후에 (예를 들어, 적절한 데이터의 네트워크 전송을 통해) 상기 노드에 설정될 수 있다. 다양한 실시예로서, 상기 디폴트 설정 값들은 서비스 제공자, 시스템 관리자 등에 의해 제공될 수 있다.
다양한 실시예로서, 노드가 개체의 다른 일부들은 서로 다른 방식으로 입력되어야 함을 특정하도록 하는 상기 기능은 상기 노드에서 동작하고 있는 하나 혹은 그 이상의 소프트웨어 모듈들에 의해서 수행될 수 있다. 주목할 것은 상기 기능이 효율적인 통신을 구현하고자 하는 목적을 지닌 노드에 의해 구현되는 전체 기능 중 일부라는 사실이다. 또한, 주목할 것은 노드는 가령 연결이 재설정될 시 및/또는 하나 혹은 그 이상의 링크 타입들이 다시 한번 이용 가능해 지는 경우에 네트워크 동작을 쉽게 재개할 수 있는 등 통신 중 끊김 현상 (breaks in communications) 및/또는 다양한 종류의 링크들이 이용가능하지 않는 경우에도 강한(tolerant) 방식으로 동작할 수 있다.
공유 동작들
도 10을 참조하여, 다양한 실시예로서, 자신의 노드에 있는 파일들, 미디어 아이템들, 프로그램, 폴더 등과 같은 개체들을 다른 노드들이 입력받을 수 있기를 원하는 사용자는 GUI 또는 다른 인터페이스를 통해서 상기 개체들을 다른 노드들이 입력받을 수 있기를 원한다는 것을 우선 표시할 수 있다 (1001 단계). 이에 대응하여, 상기 사용자의 노드는 상기 사용자가 하나 혹은 그 이상의 개체들을 선택하여 입력 가능한 상태로 만들 수 있게 한다. 이 같은 기능은 다수의 방식으로 제공될 수 있다. 예를 들어, 상기 사용자는 상기 노드의 파일 시스템을 GUI 또는 다른 인터페이스를 통해 탐색(navigate)할 수 있도록 하고 상기 개체들을 공유할 수 있게 끔 선택할 수 있도록 할 수 있다 (1003 단계).
다음으로, 다양한 실시예에 따라, 상기 노드는 어떤 그룹들이 각각의 선택된 개체를 다운로드 가능한 상태로 할지 여부를 상기 사용자에게 문의할 수 있다. 예를 들어, 상기 노드는 각각의 개체에 대해 GUI 체크 박스 등을 제공할 수 있는데, 이 체크 박스를 통해 상기 사용자가 포함된 각각의 그룹이 각각의 개체를 다운로드 가능한 상태로 할지 여부를 허락할 수 있다 (1005 단계). 더 나아가, 다양한 실시예로서, 상기 노드는 각각의 선택된 개체에 대해서 상기 사용자에게 해당 메타데이터 및/또는 다른 파라미터들을 프롬프트(prompt)할 수 있다 (1007 단계). 특정 실시예로서, 메타데이터 및/또는 다른 파라미터들이 이미 아이템과 연관됐다고 판단하는 경우에 상기 노드는 이와 같은 동작을 수행하지 않을 수 있다. 상기에 언급된 바와 같이, 다양한 실시예에 따라, 개체와 연관된 메타데이터 및/또는 다른 파라미터들은 고유 식별자를 포함할 수 있다. 따라서, 상기 노드는 다음에 고유 식별자를 생성하고 상기 개체의 메타데이터에 이를 첨부하는 동작을 할 수 있다. 고유 식별자 생성은 예를 들어 상기에 언급된 방식과 유사하게 수행될 수 있다.
다양한 실시예로서, 상기 노드는 다음으로 상기 선택된 개체들을 파일 공유와 관련된 상기 노드에 있는 하나 혹은 그 이상의 적정한 폴더들에 카피하는 동작을 할 수 있다. 또 다른 실시예로서, 상기 선택된 개체 자체 대신에, 상기 개체 (예를 들어 파일) 대한 링크 및/또는 해당 메타데이터 및/또는 다른 정보가 복사될 수 있다. 예를 들어, 상기 노드는 자신의 사용자가 속해 있는 각각의 그룹에 대해 상기와 같은 폴더를 관리하고 개체들을 다운로드 가능한 상태가 되도록 한다. 다음 단계로서, 상기 노드는 상기 선택된 개체들이 다운로드 가능한 상태가 되게끔 만드는 동작을 수행할 수 있다 (1009 단계). 이 같은 기능은 다수의 방식으로 구현될 수 있다.
예를 들어, 다양한 실시예로서, 상기 노드는 위에 언급된 바와 마찬가지로 각각의 개체에 대한 테이블 엔트리를 생성 및/또는 업데이트할 수 있다. 각각의 생성된 혹은 업데이트된 엔트리에는 해당 메타데이터 및/또는 파라미터들 및/또는 상기 엔트리가 상기 노드에 존재한다는 표시가 포함될 수 있다. 실시예로서, 테이블이 상기 사용자가 속해 있는 각각의 그룹에 대해서 관리되는 경우, 상기 동작은 각각의 적절한 테이블에 대해서 수행될 수 있다.
더 나아가, 상기 노드는, 다양한 실시예로서, 상기에 언급된 바와 같이 검색 요청 메시지들에 적절하게 응신할 수 있도록 적절한 동작을 수행할 수 있다. 다양한 실시예로서, 상기 노드는 상기에 언급된 종류의 서비스 디스커버리 동작이 수행되어 다운로드 가능한 아이템들을 제공할 수 있도록 적절한 동작을 수행할 수 있다. 더 나아가, 상기 노드는 상기에 언급된 바와 같이 다운로드 가능한 개체들에 관한 정보를 요청하는 메시지들에 적절하게 대응할 수 있도록 자신을 준비시키기 위해 적절한 동작을 수행할 수 있다.
상기에 언급한 바와 같이, 다양한 실시예로서, 노드는 개체 또는 개체 일부를 다른 노드에 넘겨주기 위한 목적으로 수신할 수 있고 상기 개체나 개체 부분은 고유 식별자를 이용하여 저장(cache) 되어 상기 피어 투 피어 (peer-to-peer) 그룹들 가운데 하나에 속하는 다른 노드들에 의해 추가로 다운로드 가능한 상태가 될 수 있다. 더 나아가, 상기에 언급된 바와 같이, 노드는 예를 들어 사용 가능한 저장 용량 등에 관한 상세 정보를 토대로 상기 캐시 동작을 수행할지 여부를 결정할 수 있다. 부가적으로, 상기에 언급된 바와 같이 다양한 실시예로서 개체들 또는 개체 부분들은 상기와 같은 기능이 적절한 경우에 멀티캐스트 방식으로 제공될 수 있다.
부가적으로, 다양한 실시예로서, 사용자는 자신의 노드로 입력되는 검색 요청 및/또는 아이템 수신 요청을 수신 거부하는 동작을 할 수 있다. 상기 사용자는 자신의 노드가 제공하는 GUI 또는 다른 인터페이스를 통해 상기와 같은 내용을 특정할 수 있다. 예를 들어, 사용자는 특정 파라미터와 일치하는 모든 검색 및/또는 아이템 요청을 수신 거부하도록 지정할 수 있다. 또 다른 실시예로서, 사용자는 자신의 노드가 검색 및/또는 아이템 요청이 수신될 때마다 자신에게 알릴 것과 이의 수신을 허용할지 거부할지를 결정할 옵션을 제공할 것을 특정할 수 있다. 다양한 실시예로서, 상기 사용자는 요청이 수신됨을 자신의 노드로부터 전해 듣는 과정에 각기 다른 양과 종류의 정보를 자신의 노드로부터 제공받을 수 있다.
다양한 실시예로, 일단 개체가 공유되는 개체라고 표시되면 어느 정도로 개체를 공유할 것인지를 사용자 노드의 인터페이스를 통해 정의할 수 있다. 예를 들어, 추가 비용의 발생 및/또는 자신의 노드의 액세스 링크의 사용과 관련된 추가 프로세서의 사용, 전력 사용, 대역폭 사용 등을 피하고자 하는 사용자의 경우에는 파일들 및/또는 이들 파일을 설명하는 메타데이터의 업로드(upload)를 최소화하도록 특정할 수 있다. 다양한 조합의 최적화 기술들이 사용될 수 있다.
특정 실시예로서, 개체가 공유되는 개체라고 표시된 경우에, 상기 개체의 메타데이터 및/또는 상기 개체의 사본들(replicas)은 다양한 실시예에서 상기 적절한 그룹에 속하는 다른 노드들로 전송될 수 있다. 상기 노드들은 예를 들어 다른 사용자 노드일 수도 있고 또는 서비스 제공자의 노드들일 수도 있다. 상기 동작은 예를 들어, 사용자 노드들 및/또는 적절한 소프트웨어 모듈들이 항상 활동 상태가 아니고 또는 항상 도달할 수 있는 것이 아닌 경우에 공유된 개체들 및/또는 공유된 개체들에 관한 정보의 이용 가능성 (availability)을 높이는 효과를 가질 수 있다. 또 다른 실시예로서, 상기 동작은 상기 사용자가 자신의 노드가 검색 및/또는 다운로드 요청을 충족시키는 것을 허용하지 않는 경우에 공유를 가능케 하는 이점이 있을 수 있다. 다양한 실시예로, 상기 개체의 메타데이터 및/또는 개체 자체의 사본들을 다른 노드들로 전송하는 것은 데이터 공유에 따른 비용 및 대역폭 관련 이슈들을 고려하여 수행할 수 있다. 이 같은 이슈들은 예를 들어 단거리 라디오 링크를 통해 노드들 간 데이터를 전송함으로써 고려될 수 있다 (예를 들어 상기 노드들은 서로 근 거리에 위치할 수 있다).
또 다른 실시예에서, 일단 노드가 검색 요청을 수신하면 상기 노드는 다양한 실시예에서 자신이 요청된 개체 및/또는 요청된 개체에 해당하거나 비슷한 기타 다른 개체들을 보유하고 있는지 여부를 판단하는 동작을 할 수 있다. 그러므로 다양한 실시예에서, 상기 노드는 검색 응신을 전송할 수 있고 상기 개체를 묘사하는 기술 메타데이터 (descriptive metadata)를 이에 첨부할 수 있다. 예를 들어, 상기 노드의 고유 식별자 및/또는 네트워크 어드레스를 포함하는 상기 메타데이터 혹은 그 일부는 다양한 실시예에서 상기 검색 응신을 검색 요청을 했던 노드로 전송하는 중간 노드들 (intermediate nodes)의 캐시(caches)로 복사될 수 있다. 상기 검색 요청 노드로 전달되는 실제 검색 응신은 업로드 된 메타데이터 기술(description)의 서브세트만을 포함할 수 있다. 특정 실시예로서, 후에, 몇몇 다른 노드가 유사한 혹은 동일한 질문을 전송하면 하나 혹은 그 이상의 중간 노드들이 요청된 개체를 제공할 수 있는데 이로써 상기 개체를 실제로 보유한 노드에 상기 질문을 라우팅하지 않아도 된다. 상기 중간 노드들 중 일부는 항상 온라인 상태일 수 있고 또는 큰 용량의 캐시들을 보유할 수 있다. 그러나, 만약 중간 노드의 캐시에 저장된 메타데이터가 오랜 시간이 지난 것이면, 상기 응신 절차는 반복될 필요가 있을 수 있다.
다양한 실시예에서, 노드가 다른 노드들로 개체를 업로드 하는 것은 상기 노드가 상기 특정 아이템을 요청하는 최초의 요청을 수신한 경우에만 한 차례 수행될 수 있다. 이러한 실시예에서, 최초의 요청이 있을 시에는, 상기 개체는 업로드 될 수 있고 다른 노드들의 캐시로 복사되고 또는 이미 업로드 된 메타데이터와 링크될 수 있다. 이러한 실시예에서, 업로드 요청이 한 번도 수신되지 않은 경우에는, 상기 개체는 상기 액세스 링크를 통해 결코 이동되지 않을 수 있다.
메시징 동작들
도 11을 참조할 때, 인스턴트 메시지를 보내고자 하는 노드 사용자는 본 발명의 여러 실시예들에 따라, 자신의 노드에 의해 제공되는 GUI나 기타 인터페이스를 통해 해당 수취자를 검색하겠다는 바램을 나타낼 수 있다(1101 단계). 여러 실 시예들을 통해, 사용자는 인스턴트 메시징 수취자들에 대한 검색 및/또는 인스턴트 메시지들의 전송시 사용될 수 있는 것과 같은 하나 이상의 자신의 노드 인터페이스들을 더 특정할 수 있다.
그에 응하여, 노드는 그 사용자에게 그가 멤버로 되어 있는 그룹들의 리스트를 제시하고, 사용자에게, 그 그룹들 중 하나 이상의 어느 그룹들에 사용자의 인스턴트 메시지의 수취자가 멤버로 되어 있을지를 나타내 줄 것을 요청한다. 사용자는 GUI나 기타 인터페이스를 통해 그 그룹들에 대한 선택을 행할 수 있다(1103 단계). 다음 단계로서, 사용자는, 본 발명의 여러 실시예들을 통해, 자신의 노드에 메타데이터 및/또는, 찾아야 할 잠정적 수취자들에 해당하는 다른 패러미터들을 지시하는 선택을 행한다(1105 단계). 그 다음에, 사용자의 노드가 상기 선택된 그룹 또는 그룹들 및 메타 데이터 및/또는 다른 패러미터들의 어떤 사양과 관련하여 잠재적 수취자들을 결정하도록 동작할 수 있다. 이러한 기능은 수많은 방법을 통해 구현될 수 있다(1107 단계).
예를 들어, 노드는 아마도 상술한 종류의 서비스 디스커버리를 이용하여, 특정된 그룹들과 연관된 잠재적 수취자들에 대해 알 수 있을 것이다. 따라서, 사용자 노드는, 그러한 서비스 디스커버리를 통해, 고유 식별자들, 네트워크 어드레스들, 및/또는 기타 등등의 상기 잠재적 수취자들의 노드들에 대응하는 것들에 대해 알 수 있다. 여러 실시예들에서, 그러한 디스커버리를 통해 사용자 노드는 잠재적 수취자들에 해당하는 메타데이터 및/또는 기타 패러미터들에 대해 알 수 있고, 노드 사용자에 의해 지시된 사항에 부합되는 메타데이터 및/또는 다른 패러미터들을 가진 잠재적 수취자들 만을 고려할 수 있다. 다른 예로서, 상술한 종류의 하나 이상의 검색 질의(search query) 메시지들이 발의될 수도 있다. 여러 실시예들에서, 그러한 검색 질의 메시지들의 검색 데이터 필드에는 사용자에 의해 특정된 어떤 메타데이터 및/또는 다른 패러미터들이 포함될 수 있다. 이 검색 질의 메시지들에 응하여, 사용자 노드는 상술한 종류의 하나 이상의 검색 응답 메시지들을 수신할 수 있다. 검색 응답 메시지들에는 잠재적 수취자들에 해당하는 메타데이터 및/또는 다른 패러미터들이 포함될 수 있다. 다음으로, 노드는 사용자에게, 아마도 GUI나 다른 인터페이스를 통하여, 잠재적 수취자들에 관해 수신된 정보의 전부나 일부를 제공할 수 있다(1109 단계).
위에서 언급했다시피, 여러 실시예들을 통해, 사용자에 의해 다른 검색 결과들이 요청될 수도 있다는 것에 유의해야 한다.. 이러한 실시예들에 있어서, 사용자 노드는 위에서 콘텐츠 항목들과 같은 개체들의 검색과 관련해 설명한 것과 유사한 방식으로 동작할 수 있다. 또한, 상기 여러 실시예들을 통해, 사용자 노드가, 아마도 모든 관련된 잠재적 수취자들에 대해 알고자하는 시도를 통해, 자동으로 추가 검색 결과들을 수신하도록 동작할 수도 있음을 유의해야 한다..
사용자에게 잠재적 수취자들을 제시하는 GUI나 다른 인터페이스는 사용자로 하여금 그 잠재적 수취자들 가운데 하나 이상을 인스턴트 메시지 수취자들로서 선택할 수 있도록 더 동작할 수 있다(1111 단계). 그 선택에 응하여, 노드는 우선 사용자로 하여금 해당하는 인스턴트 메시지를 작성하도록 할 것이다. 예를 들어, 노드는 텍스트가 기입되고/거나 파일들(가령 멀티미디어 파일들이나 프로그램 파일 들)이 올려질 수 있는 GUI 윈도우 등을 사용자에게 제공할 수 있다.
다음으로, 사용자 노드는 그 생성 메시지를 전송하도록 동작할 수 있다(913 단계). 그러한 기능은 수많은 방식으로 구현될 수 있다. 예를 들어, 인스턴트 메시지는 위에서 설명한 것과 유사한 방식에 의해, 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 발송 메시지, 등등을 통해 발송될 수 있다.
여러 실시예들을 통해, 사용자는 상술한 종류의 검색이 행해지지 않은 상태로 인스턴트 메시지 수취자를 특정할 수 있다. 예를 들어, 사용자 노드는 사용자에게 이미 알려져 있었던 잠재적 수취자들에 대한 리스트를 제공할 수 있다. 노드는 잠재적 수취자들의 고유 식별자들, 네트워크 어드레스들 등등에 의해 그 잠정적 수취자들에 대해 알 수 있을 것이다. 상기 정보는 가령, 이전의 검색 동작, 이전의 메시지 전송 동작, 관련된 저장부 등을 통해 얻어질 수 있다. 다른 예로서, 사용자가 자신의 노드에, 한 메시지가 특정 사용자 노드로 전송되게 하기 충분한 정보를 제공할 수도 있다. 그러한 충분한 정보에는, 가령, 네트워크 어드레스, 고유 식별자, 고유 식별자들과 관련된 메타데이터 등등이 포함될 수 있다.
여러 실시예들에서, 피어 그룹(peer group)의 현재 동작중인 모든 멤버들에게 메시지를 보내고자 하는 사용자는 정확한 공통 그룹 식별자를 통하는 것보다 더 정확하게 수취자들을 특정할 필요 없이 그렇게 메시지를 보낼 수 있다. 다른 예에서, 피어 그룹의 현재 동작중인 모든 멤버들에게 메시지를 보내고자 하는 사용자는 피어 그룹을 수취자로 선택하도록 동작할 수 있고, 그에 따라 사용자 노드는, 그 그룹의 고유 식별자를 그 메시지에 매핑하는 등의 동작으로서 반응할 수 있다.
본 발명의 여러 실시예들에 따르면, 인스턴트 메시지들을 수신하고자 하는 사용자의 노드는 하나 이상의 준비 단계들을 수행하도록 동작할 것이다. 예를 들어, 그 노드는 상술한 종류의 서비스 디스커버리 동작들이 자신과/이나 자신의 사용자를 잠재적 수취자들로서 발견할 수 있도록 적절한 동작을 수행할 수 있다. 다른 예로서, 그 노드는, 아마도 상술한 것에 따라, 상술한 종류의 검색 질의 메시지들이 그 노드 및/또는 노드 사용자가 잠재적 수취자들임을 나타내는 하나 이상의 검색 응답 메시지들을 발생할 수 있도록 적절한 동작을 수행할 수 있다.
채팅 동작
본 발명의 여러 실시예들에 따르면, 참여 가능한 채팅 보드들을 검색하고자 하는 사용자는 자신의 노드에 의해 제공되는 GUI나 다른 인터페이스를 통해 그렇게 하겠다는 바램을 나타낼 수 있을 것이다. 여러 실시예들에서, 사용자는 인스턴트 메시징 수취자들을 검색하고/거나 인스턴트 메시지들을 전송할 때 사용할 수 있는 것과 같은 하나 이상의 자신의 노드 인터페이스들을 더 특정할 수 있다. 그에 반응하여, 노드는 사용자에게 사용자가 멤버인 그룹들의 리스트를 보이고, 사용자에게 그 그룹들 가운데 그가 채팅 보드들을 검색하고자 하는 것에 대해 나타내 줄 것을 요청할 수 있다. 그러면 사용자는 그에 응할 수 있다.
다음 단계로서, 사용자는, 본 발명의 여러 실시예들을 통해, 참여할 수 있는 채팅 보드들을 검색할 때 고려될 메타데이터 및/또는 기타 패러미터들을 자신의 노드에 나타내도록 선택을 행할 수 있다.
그 다음에 노드는 아마도 상술한 종류의 어떤 사용자 지시에 따라 채팅 보드 회원을 다루는 하나 이상의 노드들에 대해 알 수 있다. 이러한 기능은 수많은 방식을 통해 구현될 수 있다. 예를 들어, 아마도 상술한 종류의 서비스 디스커버리가 사용될 수 있다. 이 동작을 통해, 노드는 가능한 다양한 채팅 보드들에 대해 알 수 있다.
본 발명의 다른 실시예에서, 사용자는 이용 가능한 채팅 보드들을 검색할 필요가 없고, 사용자 노드가 자동으로, 사용자가 멤버로 있고 사용자 노드가 온라인인 피어 그룹들에서 현재 동작되는 채팅 보드들에 대해 정보를 받는다.
다음 단계로서, 노드는 이용 가능한 채팅 보드들에 관해 수신된 정보를 자신의 사용자에게 제공하도록 동작할 수 있다. 그런 다음, 노드는 사용자로 하여금 하나 이상의 채팅 보드에 참여하겠다는 바램을 표시할 수 있게 할 수 있다. 사용자에 의해 그렇게 선택된 각각의 채팅 보드에 대해, 사용자 노드는 그 보드에 참여하겠다는 사용자의 희망에 관한 메시지를 적절한 노드로 발송하도록 동작할 수 있다. 이 발송 동작은 수많은 방식으로 수행될 수 있다. 예를 들어, 그 발송은 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 발송 메시지 등등일 수 있다. 그 메시지에는 사용자에 해당하는 메타데이터 및/또는 기타 패러미터들이 포함될 수 있고, 이때 메타데이터는 아마도 사용자에 해당하는 고유 식별자를 포함할 것이다.
그 응답으로서, 각각의 수취 노드는 모든, 또는 일부의 메타데이터 및/또는 다른 패러미터들을, 보드의 전체 멤버들에 해당하는 데이터를 포함하는 관리 저장부에 부가하도록 동작할 수 있다. 다음으로, 각 수취 노드는 자신의 현 멤버들의 노드들로, 사용자에 대응하는 데이터를 포함하는 메시지들을 발송하도록 동작할 수 있고, 이때 그 데이터는 그러한 각 노드가 사용자 노드로 메시지들을 전송하도록 하기 분한 것일 수 있다. 그런 다음, 각각의 수취 노드는, 보드의 전 멤버들에 상응하고 사용자 노드가 이 멤버들에 대응되는 노드들로 메시지들을 전송하게 하기 충분한 데이터를 포함하는 하나 이상의 메시지들을, 사용자 노드로 발송하도록 동작할 수 있다. 수취 노드들은 그 메시지들을 현재 멤버들의 노드들 및 사용자 노드로 여러 방법으로 전송할 수 있다. 예를 들어, 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 발송 메시지 등등이 활용될 수 있다.
다음으로, 사용자는 자신의 노드를 이용하여 참가한 채팅 보드에 참여할 수 있다. 따라서, 노드는, 가령, GUI나 다른 인터페이스를 이용하여 자신의 사용자에게 참가 채팅 보드들을 보이고, 사용자로 하여금 그 채팅 보드들 가운데 참가할 하나 이상의 보드를 선택하도록 할 수 있다. 사용자가 참여하였던 한 참가 채팅 보드에 있어서, 사용자 노드는 사용자로 하여금, 아마도 GUI나 다른 인터페이스를 통해, 채팅 보드에 게시된 메시지들 등을 보고/거나 채팅 보드로 메시지들 등을 게시할 수 있게 할 수 있다.
사용자가 채팅 보드로 메시지 등을 게시하고자 하는 경우, 사용자는 자신의 노드를 이용해 메시지를 작성할 수 있다. 예를 들어, 사용자는 GUI 윈도우 안에 적절한 텍스트를 입력하고/거나 적절한 파일들(가령, 멀티미디어 파일들)을 올려 놓을 수 있다. 메시지 작성을 완료하면, 사용자는 자신의 노드에, 메시지가 게시되어야 함을 더 지시할 수 있다. 이러한 게시 수행 기능은 여러 가지 방식으로 구현될 수 있다. 예를 들어, 사용자 노드는 인스턴트 메시징과 관련하여 위에서 설 명한 것과 유사한 방식으로 메시지를 발송할 수 있으나, 그 발송은 그 보드의 모든 멤버들의 노드들로 이들 노드들에 대응하는 수신 데이터에 따라 이뤄진다.
메시지들을 게시하고자 하는 채팅 보드의 다른 멤버들의 노드들도 같은 방식으로 동작한다. 따라서, 사용자 노드는 그러한 메시지의 여러 수취자들 가운데 하나일 수 있고, 아마도 상술한 GUI나 다른 인터페이스를 통해 사용자에게 그 메시지를 나타낼 수 있다.
본 발명의 여러 실시예들에 따르면, 노드 사용자는 자신이 멤버인 한 그룹에 상응하는 새 채팅 보드를 생성하도록 동작할 수 있다. 소정 실시예들에서, 시스템 관리자나 다른 개인에 의해 설정된 규칙들이 사용자가 새 채팅 보드를 생성하도록 허여되었는지의 여부를 관리할 수 있다. 새 채팅 보드를 만들고 싶어하는 사용자는 우선 GUI나 다른 인터페이스를 이용하여 자신의 노드로 자신이 하려고 하는 희망사항을 나타낼 것이다.
그에 대한 응답으로서, 노드는, 여러 실시예들을 통해, 생성될 채팅 보드에 해당하는 메타데이터 및/또는 다른 패러미터들을 사용자에게 요청할 수 있다. 노드는 사용자에게 어떤 채팅 보드가 생성되어야 할지에 대한 그룹 사양을 더 요청할 수 있다. 사용자 응답을 수신한 다음, 노드는, 필요하면 상술한 것과 아마도 유사한 방식으로 서비스 디스커버리를 수행하여 채팅 보드 회원을 취급하는 하나 이상의 노드들에 대해 알 수 있다. 노드 사용자가 그 채팅 보드가 생성될 특정 그룹을 지시할 때, 사용자 노드는 서비스 디스커버리를 통해 그 지시된 그룹과 관련해 채팅 보드 회원을 다루는 하나 이상의 노드들에 대해 알 수 있도록 동작할 수 있다.
다음으로, 사용자 노드는 보드 회원을 취급하는 적합한 노드로, 새 채팅 보드를 생성하겠다는 사용자의 희망을 나타내는 메시지를 발송할 수 있다. 메시지에는 가령 사용자에 상응하는 메타데이터 및/또는 다른 패러미터들, 생성될 채팅 보드와 관련해 사용자에 의해 제공된 메타데이터 및/또는 다른 패러미터들이 포함될 수 있다. 여러 실시예들에서, 사용자에 상응하는 메타데이터 및/또는 다른 패러미터들에 포함되는 것은 고유 식별자 등일 수 있다. 메시지는 가령 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 발송 메시지 등등을 통해 전송될 수 있다.
메시지를 수신하면, 상기 적합한 노드는, 여러 실시예들에서, 우선 사용자가 새 채팅 보드를 생성하도록 허가되었는지를 알아보도록 동작할 수 있다. 그에 따라, 적합한 노드는 관련 저장부, 다른 노드 등등을 액세스하여 상술한 종류의 어떤 상응하는 규칙들을 참조할 것이다. 적합한 노드가 사용자가 새 채팅 보드를 생성하게 허가되지 않았다는 것을 알게 된 경우, 그 노드는 사용자 노드로 그러한 내용을 포함하는 메시지를 발송할 수 있다. 그 메시지는 가령 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 발송 메시지 등등을 통해 보내질 것이다. 적합한 노드가 사용자가 새 채팅 보드를 생성하도록 허가되었다고 판단하고/하거나 실시예들에서 그러한 판단이 이뤄진 적이 없을 때, 적합한 노드가 새 채팅 보드를 만들도록 동작할 수 있다. 그에 따라 적합한 노드는, 가령 상술한 종류의 서비스 디스커버리 동작들이 새로 생성된 채팅 보드에 대해 알게 되는 결과를 가져오도록 적절한 동작을 수행할 것이다. 이와 달리, 혹은 여기에 부가하여, 적합한 노드는, 가령, 온라인 노드들에게 새 채팅 보드의 이용 가능성에 대해 자동으로 알리고/거나 상술한 것과 아마도 유사한 방식으로 새로 생성된 채팅 보드에 참여하겠다는 사용자의 희망과 관련해 수신된 메시지들에 응답할 수 있도록 적절한 동작을 수행할 것이다.
다른 예에서, 사용자가 GUI 등을 통해 새 채팅 보드를 생성하겠다는 희망을 나타낼 때, 사용자 노드 안의 소프트웨어가 사용자 프로파일을 기술한 메타데이터로부터 사용자가 새 채팅 보드를 만들 권한이 있는지의 여부를 체크할 수 있다.
게임 동작
상술한 바와 같이, 여기 기재된 다양한 기능은, 가령, 채팅, 공유, 및 메시징에 적용될 수 있다. 이러한 기능은 다른 많은 용도로도 역시 적용될 수 있음을 유의해야 한다.. 그러한 부가적 용도의 예를 지금부터 설명할 것이다.
본 발명의 여러 실시예들에 따르면, 많은 종류의 게임 관련 기능이 존재한다. 이 기능은, 예를 들어, 그룹 멤버들 사이에서의 멀티 플레이어 게임을 허용할 수 있다. 여러 실시예들에서, 게임하기에 관심 있는 모든 사용자들은 게임하기에 부합하는 일반 그룹에 속할 수 있다. 여러 실시예들에서, 그러한 게임하는 일반 그룹에 속한 한 사용자는 진행중이거나 나중에 시작하는 참여 가능한 게임들에 해당하는 여러 그룹들을 검색 및/또는 참가할 수 있다. 예를 들어, 그러한 특정 그룹은 그 그룹 멤버들이 가상 모터사이클 경주에서 시합하고 있던 게임에 상응할 수 있다. 여러 실시예들에서, 게임 하는 일반 그룹이 존재하지 않을 수도 있음을 유의해야 한다.. 그러한 실시예들에 있어서, 게임 하는데 관심 있는 사용자들은 상술한 종류의 일반 그룹의 회원 자격을 통해 참여 가능한 게임들에 부합하는 그룹들을 찾고/거나 참가할 수 있을 것이다.
따라서, 멀티 플레이어 게임에 참가하고자 하는 사용자는 수행되는 적절한 게임에 부합되는 그룹들을 찾으려고 동작할 수 있다. 이러한 그룹 검색은 상술한 것과 유사한 방식으로 수행될 수 있다. 그러면, 사용자는 아마도 적절한 GUI 구성을 통해 자신이 참가하고 싶어했던 게임 종류를 나타내는 메타데이터 및/또는 다른 정보 (가령, 키워드 기반의 자유 기입 텍스트, 다른 타입의 정보, 등등)를 제공할 수 있다. 예를 들어, 사용자는 자신이 관심을 가진 게임의 이름을 타이틀 메타데이터로서 제공할 수 있고, 어쩌면 주제 필드 메타데이터로서 적합한 데이터를 더 제공할 수도 있다. 이와 달리, 또는 이에 부가하여, 사용자는 그러한 정보를 키워드에 기반하는 자유 기입 텍스트, 다른 타입의 정보 등등을 통해 제공할 수 있을 것이다.
이에 응하여, 사용자 노드는 사용자 입력을 처리하는 동작을 할 수 있다. 여러 실시예들에서, 사용자 노드는 아마도 상술한 것과 유사한 방식으로 키워드 기반 자유 기입 텍스트, 다른 타입의 정보 등등을 적절한 메타데이터 값들, 필드들 등등과 결부하도록 동작할 수 있다. 그 다음, 사용자 노드는 사용자 입력에 따른 그룹들에 대한 검색이 수행되도록 적절한 동작을 수행하도록 동작할 수 있다. 그러한 동작들은, 예를 들면, 상술한 것과 유사한 방법으로 수행될 수 있다. 여러 실시예들에서, 사용자 노드가 그 적절한 동작들을 수행할 때 보내지는 메시지 등에 패러미터들을 추가할 수 있음을 유의해야 한다.. 이 패러미터들은, 예를 들어 노드 타입, 노드 식별자, 및/또는 사용자(가령, 사용자 별명)에 관련된 것일 수 있다. 이 동작들을 수행할 때, 노드는, 여러 실시예들에 있어서, 다른 노드들과 이 미 개방된 연결들을 활용할 수 있음을 더 주지해야 한다. 그러한 연결들이란, 예를 들어, 노드들로 이뤄진 네트워크를 통한 메시징을 수반할 수 있다. 노드들로 된 네트워크를 통한 메시징은 피어 투 피어(peer-to-peer), 및 아마도 가능하다면 직접 링크를 통한 것일 수 있다. 여러 실시예들에 있어서, 그러한 연결은 상이한 타입의 전송 링크들의 사용을 수반할 수 있다.
참여 가능한 게임들에 부합하는 그룹들을 검색하라는 사용자 요구에 대응하여 노드가 수행하는 적절한 동작들에 따라, 다양한 정보가 수신될 수 있다. 예를 드렁, 그 그룹들과 관련된 다양한 메타데이터 및/또는 다른 정보가 수신될 수 있다. 수신된 정보에는 설명서, 초대장, 도전장, 등등이 있을 수 있다. 이들은 가령 적절한 GUI 구성 등을 통해 사용자에게 표시될 수 있다. 가령 어떤 그룹과 관련하여 수신된 것은, 진행중인 가상 모터사이클 경주에 참가하는데 관심 있는 플레이어들을 향해 보내진 도전장일 수 있다. 다른 예에서, 어떤 그룹과 관련하여 수신된 것이, 지정된 시간에 시작하도록 예정된 가상 모터사이클 경주에 참가하는 데 관심을 가진 플레이어들을 행해 보내진 도전장일 수 있다.
그러면 사용자는 참여할 수 있는 게임들에 부합되는 그룹들 중 하나에 참가하겠다는 희망을 나타낼 수 있고, 그러면 사용자의 노드가 사용자 요구에 부응하여 동작할 수 있다. 이러한 기능은, 가령, 상술한 것과 유사한 방식으로 작동할 수 있다. 여러 실시예들에서, 사용자 노드가 플레이 될 게임에 부합하는 적절한 프로그램 모듈들 등을 가지지 못한 경우, 노드가 그 적절한 모듈 등을 수신할 수 있도록 하는 동작이 수행될 것이다. 예를 들어, 그와 같은 적절한 모듈들 등이 노드들 로 이뤄진 네트워크를 통한 메시징에 의해 전달될 수도 있다. 노드들의 네트워크를 통한 메시징은 피어 투 피어 및, 아마도 가능하다면 직접 링크들을 통해 이뤄질 수 있다.
상술한 바와 같이, 본 발명의 여러 실시예들에 있어서, 그룹 정보를 보유한 메시지는 다른 사용자들이 그 정보를 요청하지 않아도 그 다른 사용자들에게 발송될 수 있다. 또, 상술한 바와 같이, 그러한 메시지는 가령, 특정 목적(가령, 그룹 회원을 늘리겠다는)을 품고 있는 해당 그룹 관리자, 그룹 멤버 등의 조치를 통해 발송될 수 있다.
본 발명의 다양한 실시예들에 따르면, 게임에 부합하는 그룹들에 관하여 유사한 메시지들이 보내질 수 있다. 그에 따르면, 가령, 그러한 메시지들은 다른 사용자들을 해당 게임에 끌어 들이고자 하는 그룹 관리자, 그룹 멤버 등의 조치에 의해 그 게임에 부합하는 특정 그룹과 관련해 발송될 것이다. 그룹 관리자, 그룹 멤버 등은 그러한 메시지가 그 그룹과 결부된 게임을 하는데 사용될 수 있는 하나 이상의 프로그램 모듈들 등에 의해 제공되는 인터페이스를 거쳐 보내지도록 조치할 수 있다.
그러한 그룹 관리자, 그룹 멤버 등이 찾아낸 사용자들의 종류와 관련한 부가 정보를 특정할 수 있음을 유의해야 한다.. 그 정보에는, 가령 특성, 특질 등이 포함될 수 있다. 구체적인 예로서, 그러한 정보는, 특정한 게임 및/또는 특정 게임 타입과 관련하여 적어도 특정한 점수를 얻었던 사용자들만을 찾는다는 것을 특정할 수 있다.
메시지는 상술한 것과 유사한 방식으로 보내질 수 있다. 그에 따라, 가령, 메시지는 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 노드들로 이뤄진 네트워크를 통한 발의 메시지 전송 등등을 통해 보내질 것이다. 노드들의 네트워크를 통한 메시징은 피어 투 피어 및, 아마도 가능하다면 직접 링크들을 통해 이뤄질 수 있다.
여러 실시예들에 있어서, 메시지는 노드들을 통해 그룹에 속하는 노드들로 라우팅될 수 있다. 여러 실시예들에서, 그러한 각 노드 안에서, 메시지는 가령 하나 이상의 적절한 소프트웨어 모듈들을 통해 라우팅될 수 있다. 그러한 하나 이상의 적절한 소프트웨어 모듈은, 가령, 그룹에 대한 게임 메시지들을 취급하는 그룹 라우터에 해당할 것이다. 이 하나 이상의 적절한 소프트웨어 모듈들은 이 메시지를 노드 자신의 게임 어플리케이션 및/또는 그 노드가 그룹에 속한다고 알고 있는 하나 이상의 다른 노드들로 라우팅하도록 동작할 수 있다. 여러 실시예들에 있어서, 한 노드에서의 이러한 메시지의 수신은, 아마도 노드의 환경설정에 따라, 그 그룹과 관련된 게임을 수행하는데 사용될 수 있는 하나 이사의 프로그램 모듈들을 동작시킬 수 있음을 유의해야 한다.. 여러 실시예들에서, 게임 플레이에 사용될 수 있는 그러한 하나 이상의 모듈들은 노드 사용자가 그 메시지를 통지받아야 할지의 여부를 결정하도록 동작할 것이다.
그룹 생성 동작
본 발명의 다양한 실시예들에 따르면, 사용자는 새 그룹이 설정되어야 함을 요청할 수 있다. 이 요청과 함께, 사용자가 그 새 그룹의 그룹 관리자가 될 것을 요청할 수도 있다. 사용자는 그러한 요청을, 가령 자신의 노드에 의해 제공되는 GUI나 다른 인터페이스를 통해 할 수 있다.
그 요청에 응하여, 사용자의 노드는, 여러 실시예들에 있어서, 생성될 그룹에 대응하는 메타데이터 및/또는 다른 패러미터들에 대해 사용자에게 요청할 수 있다. 메타데이터에는 가령 그룹 이름 및/또는 그룹 설명이 포함될 수 있다. 여러 실시예들에서, 노드는 고유한 식별자 등을 생성하고, 그것을 주어진 메타데이터 및/또는 다른 패러미터들과 결부시키도록 동작할 수 있다. 고유 식별자 등의 생성은, 가령, 위에서 설명한 것과 유사한 방식으로 수행될 수 있다.
다음으로, 노드는, 여러 실시예들에서, 사용자에게 새 그룹에 참여하려고 할 때 회원 가입 이행이 요구되는지의 여부에 대해 물을 수 있다. 사용자가 그 가입이 요구된다고 지시하는 경우, 노드는 사용자가 그 가입 신청서를 생성할 것을 요청할 수 있다. 그에 따라 노드는, 가령, 사용자에게 GUI나 다른 인터페이스를 제공하고, 그에 따라 사용자는 요구할 질문들 및/또는 그룹 가입 신청자로부터 모을 정보를 나타낼 수 있게 된다. 위에서 언급한 바와 같이, 그러한 가입 신청서를 통해 모은 정보들 중에는 요금 청구 데이터가 있을 수 있다. 이러한 기능은, 가령, 가입이 요구되는 그룹들에 대한 규정을 통해 활용될 수 있다.
다음 단계로서, 노드는, 여러 실시예들에서, 사용자에게, 생성될 그룹에 해당하는 그룹 규칙들을 물을 수 있다. 이러한 기능은 여러 방식에 의해 구현될 수 있다. 노드에 의해 구해진 그룹 규칙 정보 중에는, 회원 가입이 이뤄져야 하는 경우, 회원 가입 신청서에서 주어진 질문들 및/또는 모은 정보에 대한 허용가능한 응답들이 있을 수 있다. 따라서, 사용자는, GUI나 다른 인터페이스를 통해, 노드에 특정된 적절한 응답들, 적절한 응답들의 범위, 등을 제공할 수 있다.
노드에 의해 얻어진 추가 그룹 규칙들에는, 가령, 그룹의 만료일, 최대 멤버 수, 및/또는 그룹이 검색 동작을 통해 조회가능한지의 여부가 있을 수 있다. 여러 실시예들에서, 사용자는 가령 서비스 제공자, 소프트웨어 등등에 의해 설정된 범위에 따라, 그러한 것들에 대한 바람직한 값들을 특정할 수 있을 것이다. 추가로 얻어지는 것은 그룹에 제공될 서비스들에 관한 정보, 및 아마도 그 서비스들의 규정에 해당하는 사양들일 수 있다. 예를 들어, 사용자가, 공유하기, 인스턴트 메시징, 및 채팅 서비스들 중 하나 이상의 어느 것이 그룹과 관련해 주어져야 할지를 특정하는 것이 가능할 수 있다. 그러한 서비스들과 관련하여 사용자에 의해 지시될 수 있는 사양은, 가령, 공유 가능한 개체들에 대한 규칙을 포함할 수 있다. 여러 실시예들에서, 노드는 사용자에게 어느 사용자들이 그룹의 그룹 관리자들이 되어야하는지에 관한 것을 물을 수 있다. 그 질문은, 사용자가 자신이 그룹 관리자가 되겠다는 바램을 나타낸 적이 없는 경우 사용자에게 그룹 관리자가 되고 싶은지를 물을 수 있다.
다음으로, 노드는 생성될 그룹에 대해 수집된 정보를 보유하는 서비스 제공자 노드 등에게 메시지를 보낼 수 있다. 그 메시지에 추가로 포함될 수 있는 것이 사용자에 상응하는 데이터이다. 이 메시지는, 가령, 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 발송 메시지 등등을 통해 보내질 수 있다. 메시지를 수신한 다음, 서비스 제공자 노드 등은 사용자가 새 그룹을 생성할 권한이 있는지를 판단하는 동작을 할 수 있다. 그에 따라, 서비스 제공자 노드 등은 가령, 하나 이상의 적합한 규칙을 참조하도록 동작할 수 있다. 예를 들어, 그 규칙은 시스템 관리자 등에 의해 제공될 것이다.
다음으로, 서비스 제공자 노드 등은, 여러 실시예들에서, 사용자 요구와 관련하여 어떤 필요한 과금 또는 요금 청구 동작들을 수행하도록 동작할 수 있다. 그에 따라 서비스 제공자 노드 등은 그룹 생성에 대해 사용자에게 요금을 청구하도록 동작할 것이다. 요금 청구는 하나 이상의 기 설정된 규칙들에 따라, 시스템 관리자 등에 의해 제공되는 것일 수 있는 규칙일 수 있다.
서비스 제공자 노드 등이 사용자가 그룹 생성 권한이 없다고 판단했고/했거나, 요금 청구 과정이 불만족스러운 결과를 생성한 경우, 서비스 제공자 노드 등은 사용자에게 그러한 것을 알리는 메시지를 전송하도록 동작할 것이다. 메시지는 가령 이메일, MMS 메시징, SMS 메시징, OBEX OPP, 발송 메시지 등등을 통해 전송될 수 있다.
다음으로, 사용자에게 그룹 생성 권한이 부여되었는지에 대한 어떤 임의의 필요한 검사들과, 어떤 임의의 요금 청구 과정이 수행된 후에, 서비스 제공자 노드는 그룹을 생성하도록 동작할 수 있다. 여러 실시예들에서, 서비스 제공자 노드는 그룹에 대한 고유 식별자 등을 생성하고, 그것을 사용자가 제공한 메타데이터 및/또는 다른 패러미터들과 결부시키도록 동작할 수 있다. 예를 들어, 고유 식별자의 생성은 위에서 설명한 것과 유사한 방식으로 수행될 수 있다.
따라서, 서비스 제공자 노드 등은, 사용자가 새 그룹의 그룹 관리자가 되기를 요청했을 경우, 사용자를 그렇게 설정하고, 사용자 노드가 상술한 바에 따라 새 그룹에 참가하라는 요청들에 응답하도록 동작할 수 있게 하기 위한 적절한 동작을 수행하도록 동작할 수 있다. 상기 동작들에는, 가령, 사용자 노드로 하나 이상의 적절한 보증서들을 제공하는 동작이 포함될 수 있다. 하나의 구체적인 예로서, 그 보증서는 그룹 관리 보증서가 될 수 있다. 또, 서비스 제공자 노드 등은 하나 이상의 노드들이 상술한 바와 같이 새 그룹을 참여 가능한 그룹으로 제시하도록 동작할 수 있게 하는 적절한 동작들을 수행할 수 있다.
또, 서비스 제공자 노드 등은, 여러 실시예들에서, 상술한 종류의 회원 가입 신청 기능을 허용하도록 동작할 수 있다. 따라서, 서비스 제공자 노드 등은, 가령, 상술한 종류의 자바(Java) 어플리케이션 등이 생성되게 하고 상술한 종류의 보안 서버가 설정될 수 있도록 동작할 수 있다. 서비스 제공자 노드 등은 수많은 방식을 통해 그러한 것을 수행할 수 있다. 예를 들어, 서비스 제공자 노드 등은 이 분야에 알려져 있는 자동 코드 생성 기술들을 이용하여 자바 어플리케이션 등을 생성할 수 있다. 다른 예로서, 서비스 제공자 노드 등이 보안 서버 등과 통신하여 상술한 기능이 구현될 수 있게 동작할 수 있다. 이와 달리, 서비스 제공자 노드 등이 그러한 작업이 수행되게 할 필요성에 대해 하나 이상의 개체들에게 알리도록 동작할 수도 있다.
여러 실시예들에서, 서비스 제공자들은 그룹 생성을 제어하도록 동작할 수 있음을 유의해야 한다. 예를 들어, 서비스 제공자들은 그룹 규칙을 수용하거나 거부하고/하거나, 허용될 수 있거나 디폴트인 값들의 선택 사항이 그룹 규칙 규정시 사용자에 의해 사용된 인터페이스 등에 미리 조정되도록 동작할 수 있다.
본 발명의 여러 실시예들에 따라 다양한 종류의 그룹들이 생성될 수 있다는 것을 유의해야 한다. 예를 들어, 회원 가입이 이행될 것을 필요로 하는 그룹들은 가족단위, 사업단위로 생성된 그룹들이나 친구들의 그룹들을 포함할 수 있다. 다른 예로서, 가입이 요구되는 그룹들은 서비스 제공자들, 콘텐츠 소유자들, 소프트웨어 회사들 등에 의해 생성된 그룹들을 포함할 수 있다.
위에서 언급한 바와 같이, 여러 실시예들에서, 그룹에 대한 만료 날짜가 생성될 수 있다. 만료 날짜를 적절히 선택함으로써, "일시적 그룹"이라고 간주될 수 있는 그룹이 생성될 수 있다. 이러한 일시적 그룹은 가령 모임들 및 특별한 경우들을 포함하는 여러 목적들에 대해 활용될 수 있다.
그룹들에 대한 추가 예들에는, 가령, 클럽들과 관련된 그룹들, 취미와 관련된 그룹들, 기업 대 기업(B2B) 그룹들 및 기업 대 소비자 그룹들(B2C)이 포함될 수 있다.
여러 실시예들에서, 그룹들의 병합을 허용하는 동작들이 수행될 수 있음에 더 유의해야 한다. 예를 들어, 시스템 관리자들, 그룹 관리자들, 및/또는 다른 주체들이 하나 이상의 그룹들이 병합되어 새 그룹을 생성하도록 특정할 수 있고, 이때 새 그룹은 아마도 그 하나 이상의 그룹들을 대체하도록 특정될 것이다. 병합을 수행할 때, 다양한 동작들이 수행될 수 있다. 예를 들어, 하나 이상의 그룹들의 멤버들이 새 그룹의 멤버들로서 간주될 수 있도록 하는 동작들이 발생할 수 있다. 또, 의미(semantic) 매핑들 등과 같은 것에 의해 그룹 메타데이터가 결합될 수 있고, 병합된 그룹 메타데이터가 새 그룹의 멤버들의 노드들에 대해 갱신될 수 있다. 예를 들어, 이러한 매핑들은 시스템 관리자, 소프트웨어 등등에 의해 제공될 수 있다. 이런 맥락에서, 그룹 메타데이터는, 여러 실시예들에서, 그룹을 나타내는 메타데이터, 그룹의 멤버들을 나열하는 메타데이터, 및/또는 가령 미디어 항목들 및 콘텐츠와 관련된 그룹 고유의 메타데이터 모두를 의미할 수 있다.
또, 하나 이상의 그룹들과 관련해 활용될 수 있었던 다운로드 가능 개체들 등이 새 그룹과 관련해 활용될 수 있도록 하는 동작들이 수행될 수 있다. 이러한 동작들은, 가령, 디렉토리 레벨의 동작들이 수반될 수 있다. 여러 실시예들에서, 그런 병합이 일어남에 있어, 하나 이상의 그룹들 각각과 관련된 관리자들로부터 허락(permission)을 받아야 할 필요가 있을 수 있음에 유의해야 한다.
부가 동작
본 발명의 여러 실시예들에 따르면, 개체 공유 및 기타 상술한 서비스들과 같은 서비스들의 사용이 익명으로 되지 않도록 하기 위한 과정들이 있어야 한다. 예를 들어, 보다 상세하게 설명하겠지만, 사용자가 서비스를 이용하기 위해 증명서(보증서, 증명서)를 제공하라는 요청을 받을 수 있고, 이때 그 증명서는 사용자를 확인하는 정보를 포함한다.
여러 실시예들에서, 하나 이상의 식별자들이 공유된 개체들과 관련될 수 있음에 더 유의해야 한다. 그러한 식별자는 예를 들어, 공유에 사용 가능한 개체를 초기에 만들었던 사용자를 식별하는 역할을 할 것이다. 다른 예로서, 그러한 식별자가 그 개체에 해당하는 콘텐츠의 제공자 및/또는 소유자를 식별하는 역할을 할 수도 있다. 구체적인 예로서, 음악 미디어 파일 개체와 관련해, 그 식별자는 저작 권 보유자를 나타낼 수 있다.
이러한 식별자들은, 여러 실시예들에 있어서, 권한이 없는 사용자들에 의해 쉽게 변형될 수 없게 하는 방법으로, 공유된 개체와 결부될 수 있다. 예를 들어, 식별자들이 디지털 서명될 수 있다. 여러 실시예들에서, 공유된 개체들은 디지털 서명되고/거나 암호화될 수 있음에 더 유의해야 한다. 또, 여러 실시예들이 개체들의 구매를 허용할 수 있다. 그러한 기능은, 가령, 아마도 해당 분야에 알려진 하나 이상의 기술들의 이용을 통해 신용 카드 및/또는 뱅킹 시스템과의 인터페이스와 같이 관련된 요금 청구 동작들의 수행을 수반할 수 있다.
게다가, 본 발명의 여러 실시예들에서는, 사용자들에 의해 수신된 개체들과 관하여 이벤트 로그(기록, log)가 보유될 수 있다. 예를 들어, 이 이벤트 로그는 불법 개체 공유의 억제물 및/또는 불법 개체 공유를 행했던 사용자들을 추적하는 도구로서 활용될 수 있다. 여러 실시예들에서, 그룹들 및/또는 사용자들이 부적절한 행동, 불법 활동 등등을 한 경우에 배제될 수 있음에 유의해야 한다.
이벤트 로그 기능은 수많은 방식을 통해 구현될 수 있다. 예를 들어, 각각의 노드는, 자신이 수신한 개체들과 다른 노드들에 제공한 개체들의 로그를 보유하도록 설정될 수 있다. 중앙 서버 등이 그 수신된 로그들을 하나 이상의 마스터 로그들로 컴파일하도록 동작할 수 있다.
본 발명의 여러 실시예들에서, 사용자는 한 노드를 특정하여 다양한 동작을 수행하는데 있어서 자신의 노드에 대한 프록시로서 동작하도록 할 수 있다. 사용자는 예를 들어, 자신의 노드에 의해 제공되는 GUI나 다른 인터페이스를 통해 그러 한 특정을 수행할 수 있다. 예를 들어, 여러 실시예들에 따라, 사용자가 개체 수신과 관련해 자신의 노드의 프록시를 특정할 수 있다. 그에 따라, 상술한 종류의 항목 수신 요청은 그 개체가 프록시로 전달되어야 한다는 지시를 포함할 수 있다. 예를 들어, 이메일, MMS 메시징, SMS 메시징, OBEX OPP 전송, 항목 요청 메시지 등에는 개체가 프록시 노드로 향하기 충분한 네트워크 어드레스, 관련 메타데이터가 있는 고유 식별자 등등이 포함될 수 있다.
소정 실시예들에 있어서, 사용자는 모든 개체들이 프록시로 전달되도록 특정할 수 있다. 그와 달리, 혹은 그에 부가하여, 개체가 사용자 노드로 보내질지 아니면 해당하는 프록시로 보내질지 여부가 결정됨에 따라 규칙을 특정할 수도 있다. 구체적인 예로서, 사용자는, 아마도 자신의 노드에 의해 제공되는 GUI나 다른 인터페이스를 통해, 소정의 특정한 사이즈 및/또는 타입 기준을 만족하는 개체들만이 프록시로 전달되고 다른 것들 모두는 자신의 노드로 전달되도록 특정할 수 있다.
상응하는 방식을 통해, 사용자는 여러 실시예들에서, 개체들을 다른 노드들로 제공하는 것과 관련해 자신의 노드에 대한 프록시를 특정할 수 있다. 그에 따라, 사용가능한 개체들과 관련하여 상술한 종류의 검색 응답 메시지나 다른 메시지들은, 프록시가 필요한 동작들을 수행할 것임을 지시할 수 있다. 예를 들어, 그 지시는, 상술한 바와 같이, 프록시와 관련해 필요한 과정들이 발생하기 충분한 네트워크 어드레스, 관련 메타데이터가 있는 고유 식별자 등등이 될 수 있다. 그와 같은 것이 적절한 경우의 실시예들에서, 개체 제공 동작들에 특정된 프록시 노드는 관련 검색 동작들에도 이용될 수 있다.
여러 실시예들에서, 사용자는, 개체 수신과 관련하여 상술한 것과 유사한 방식을 통해, 프록시가 언제 사용되어야 하는지에 대한 규칙을 특정함에 유의해야 한다. 또, 그러한 프록시 기능은 수많은 상황 하에서 적용될 수 있음을 역시 알아야 한다. 예를 들어, 사용자는 자신의 노드가 알맞은 프로세싱 전력, 에너지 자원, 저장 공간, 네트워크 접속 등등을 결여한 경우에, 사용자가 만족할 수 있는 방식으로 개체들을 수신 및/또는 발송하도록 그러한 기능을 이용할 것이다.
부가적으로, 다양한 실시예들에서, 여러 서비스 제공자들이 로밍하는(roaming) 사용자들에 대한 서비스 상호운용성을 마련할 수 있음을 알야야 한다. 예를 들어, 그러한 서비스 제공자들 각각은 서로의 그룹들(가령, 공공 그룹들)을 광고하도록 동작할 수 있다. 다른 예로서, 그러한 서비스 제공자들이 관련된 공개 키들의 상호운용을 허용하도록 동작할 수 있다. 또 다른 예로서, 이들 서비스 제공자들은 서로의 공개 키들을 배포하도록 동작할 수 있다. 부가적 예로서, 그 서비스 제공자들은 여기 설명된 여러 동작들에 사용될 포트들이 설정되게 합의하도록 동작할 수 있다. 또, 서비스 제공자들은, 여러 실시예들에서, (가령, 부적절하게 활동했던 사용자들 및/또는 그 사용자들에 상응하는 노드들을 식별하는 인증 블랙리스트들을 제공함으로써) 상대 사용자들에게 인증 관리 관련 상태들에 대해 통지할 수 있다.
증명서 및 요금
상술한 바와 같이, 본 발명의 여러 실시예들은 증명서를 활용한다. 예를 들어, 상술한 것처럼 한 그룹에 부합하는 증명서가 한 사용자가 그 그룹의 회원이 되 었을 때 그 사용자에게 주어질 수 있다. 다른 예로서, 주지된 대로, 일반 액세스 증명서가 사용자에게 주어질 수 있다. 또 다른 예로서, 여러 실시예들에서 특정 그룹 관련 상술한 종류의 메시지 발송을 위해 그 그룹의 회원자격을 부여하는 증명서가 주어져야 함이 요청될 수 있다.
위에서 언급한 바와 같이, 여러 실시예들에서, 소정 메시지 발송은 특정 그룹과의 관련 없이 수행될 수 있다. 예를 들어, 소정 실시예들에서 어떤 그룹에 참여하겠다는 것에 해당하는 메시지 발송은 특정 그룹을 고려하지 않고 수행될 수 잇다. 그에 따라, 그러한 여러 실시예들에서는 가령, 상술한 일반 액세스 증명서가 그 메시지 발송을 위해 보여져야 함이 요구될 수 있다.
증명서들이 보여져야 하는 방식에 관하여 다양한 요건들이 구현될 수 있다. 예를 들어, 소정 실시예들에서, 각각의 메시지 발송을 위해 알맞은 증명서를 보일 것이 요청될 수 있다. 다른 예로서, 접속 등을 설정할 때만 알맞은 증명서를 보이도록 하고, 각각의 메시지 발송에 대해 그 증명서를 보일 필요 없이 그 설정된 접속 등을 통해 여러 메시지들이 발송될 수 있도록 하는 요건이 있을 수 있다. 노드들 사이의 이런 유형의 접속은, 가령, 노드들 사이에서 공통되는 그룹들과 관련된 메시지를 운반하는데 더 사용될 수 있다. 따라서 이런 유형의 접속은 둘 이상의 공통 그룹 사이의 연결을 지원할 수 있고, 여러 실시예들에서, 만일 그 노드들의 환경이 허락한다면, 공통적 그룹들에 국한하지 않고 여기 설명된, 왕래(traffic) 발생의 우회를 가능하게 할 수도 있다. 특정 예로서, 두 피어 노드들 사이의 연결은 포괄적 액세스 증명서들 및/또는 특정 그룹 회원 증명서들로서 검증되고, 그 노 드들에 부합하는 비밀 키 및 공개 키가 특정 그룹들의 왕래를 다중화 방식을 통해 이송하는데 사용될 수 있다.
예를 들어, 특정 그룹에 해당하는 증명서는 서비스 제공자 등에 의해 보유된 비밀 키로 서명된 섹션들을 포함할 수 있고/거나, 그 그룹과 관련된 그룹 관리자에 의해 보유된 비밀 키로 디지털 서명된 섹션들을 포함할 수 있다. 도 12는 그룹 회원 인증의 예가 도시되며, 여기서 그룹 관리자의 공개 키와 서비스 제공자에 의해 설정된 그룹 규칙을 포함하는 한 섹션은 서비스 제공자의 비밀 키로서 서명되고, 한편 증명서가 주어진 사용자의 공개 키 및 그룹 관리자에 의해 설정된 그룹 규칙을 포함하는 섹션은 그룹 관리자의 비밀 키로서 서명된다.
증명서는 사용자의 신원에 해당하는 정보를 포함할 수 있고/거나 사용자 신원의 증명서로서 기능할 수 있다는 것에 유의해야 한다. 여러 실시예들에서, 그러한 증명서들은 사용자들이 하나 이상의 자신들의 액션시에 익명으로 되지 않게 하는데 이용될 수 있다. 비밀 키들 및/또는 공개 키들은 가령 이 분야에 알려진 여러 다양한 기술들을 통해 생성될 수 있음을 알아야 한다. 또한 증명서를 보이는 상술한 기능은 예를 들어 여러 다양한 인증, 인증 이의신청, 및/또는 검증 기술들을 이용해 구현될 수 있다는 것 역시 유의해야 한다. 따라서, 증명서들, 비밀 키들, 및 공개 키들은 여러 실시예들에서 함께 사용되어 그룹의 정체성과 회원관계를 지원한다.
도 13은 본 발명의 다양한 실시예들에서 사용 가능한 전형적 인증 절차를 도시한 것으로서, 제2피어 노드가 제1피어 노드를 인증하도록 동작한다. 도 14는 본 발명의 다양한 실시예들에서 사용 가능한 전형적 인증 절차를 도시하며, 여기서는 제1피어가 제2피어를 인증하도록 동작한다. 도 14에 도시된 것과 같은 인증 절차는, 가령, 도 13에 도시된 것과 같은 인증 절차가 성공적으로 이행된 후에 일어날 수 있다.
도 13의 전형적 인증 절차로 돌아가면, 먼저 제1피어가 제2피어와의 접속을 개시한다(1301 단계). 다음으로, 제2피어가 무작위 신청서 RC2를 제1피어로 보낸다(1303 단계). 그에 응답하여, 제1피어는 제2피어로 알맞은 그룹 회원 증명서 GC1을 보낸다(1305 단계). 그런 다음, 제1피어는 자신의 비밀 키 Sk1을 사용하여 제2피어에 의해 보내진 신청서 RC2를 암호화한다(즉, 제1피어는 Sk1(RC2)를 산출한다)(1307 단계). 그리고 나서, 제1피어는 그 암호화된 신청서 Sk1(RC2)를 제2피어로 보낸다(1309 단계). 다음으로, 제1피어가 신청서 RC1을 제2피어로 보낸다(1311 단계). 다음 단계로서, 제2피어는 제1피어로부터 수신한 그룹 회원 증명서 GC1을 체크한다(1313 단계). 체크 결과 GC1이 만족스럽지 않은 경우, 제2피어는 접속을 닫는 동작을 행한다(1315 단계). 체크 결과 GC1이 만족스러우면, GC1이 제2피어 역시 멤버인 그룹에 부합하는지의 여부에 대한 판단이 이뤄진다(1317 단계). 하나의 관점에서 보면, 이러한 것은 제1피어 및 제2피어 모두가 GC1이 해당하는 그룹에 속하는지의 여부에 대한 판단이라고 간주될 수도 있다. 그 판단이 부정적으로 나오면, 제2피어는 접속을 닫는 동작을 행한다(1315 단계). 그 판단이 긍정적으로 나오면, 제2피어는 제1피어의 공개 키를 이용하여 상기 암호화된 신청서를 해독하도록 동작한다(즉, 제2피어는 Pk1(Sk1(RC2))을 산출한다)(1319 단계). 다음으로, 제2피어는 Pk1(Sk1(RC2))의 계산이 자신이 제1피어로 보냈던 신청서 RC2를 정확하게 산출하였는지를 판단한다(1321 단계). 판단 결과가 부정적인 경우, 제2피어는 접속을 폐쇄하도록 동작한다(1315 단계). 판단 결과가 긍정적이면, 도 13의 절차는 성공적으로 이행되었다고 간주된다(1323 단계).
상술한 바와 같이, 도 14에 도시된 것과 같은 인증 절차는 도 13에 도시된 것과 같은 인증 절차의 성공적 이행 후에 일어날 수 있다. 이제, 도 14를 참조하면, 제2피어가 자신의 비밀 키 Sk2를 이용하여 제1피어에 의해 보내진 신청서 RC1을 암호화한다(즉, 제2피어는 Sk2(RC1)을 산출한다)(1401 단계). 다음으로, 제2피어는 GC1이 부합하는 같은 그룹에 해당하는 자신의 그룹 회원 증명서 GC2를 제1피어로 보낸다(1403 단계). 다음으로, 제1피어는 제2피어로부터 수신된 그룹 회원 증명서 GC2를 체크한다(1405 단계). 체크 결과 GC2가 만족스럽지 않으면, 제1피어는 접속을 폐쇄한다(1407 단계). 체크 결과 GC2가 만족스러우면 제1피어는 제2피어의 공개 키를 가지고 상기 암호화된 신청서를 해독하는 동작을 행한다(즉, 제1피어는 Pk2(Sk2(RC1))을 산출한다)(1409 단계). 다음으로, 제1피어는 Pk2(Sk2(RC1))의 산출 결과가 자신이 제2피어로 보냈던 RC1을 정확하게 산출했는지를 판단한다(1411 단계). 판단 결과가 부정적이면, 제1피어는 제1접속을 닫도록 동작한다(1407 단계). 판단 결과가 긍정적이면, 도 14의 절차는 성공적으로 이행되었다고 간주된다(1413 단계).
상술한 종류의 계산을 수행하는 것은, 여러 실시예들에서, 한 노드에 대해 에너지, 프로세서, 및/또는 자원 집약적임을 입증할 수 있다. 도 13 및 14의 전형적 인증 절차들과 관련하여, 제2피어는 GC1이 만족스럽고 제2피어 역시 멤버로 있는 그룹에 부합한다고 판단되기 전까지는 어떠한 계산(가령, 1319 단계의 계산)도 행하지 않는다는 것에 주목해야 한다. 제2피어는 그러한 판단이 긍정적 결과를 낳지 않은 경우 접속을 해제할 수 있다는 것 역시 유의해야 한다. 한편, 제1피어는 일찌기 계산을 수행해야 한다(가령, 1307 단계의 계산). 이러한 양태는, 제1피어가 가령 적대적 피어인 경우에 도움이 될 수 있는데, 제2피어는 그 제1의 적대적 피어가 계산하는 동안에는 계산을 수행할 필요가 없을 것이기 때문이다.
또, 도 13 및 14의 전형적 인증 절차와 관련하여, 상기 신청서는 각각의 노드로 하여금 상대가, 주어진 증명서에 의해 지시된 노드임을 확인할 수 있게 한다는 것을 알아야 한다.
여러 실시예들에서, 인증 체인(certificate chaning) 과정이 수행될 수 있음을 알아야 한다. 예를 들어, 한 그룹 관리자가 연쇄(chained) 그룹 관리자 증명서들을, 대표 그룹 관리자들 등과 같이, 이들 대표 그룹 멤버들에게 다른 사용자들에 대한 그룹 회원 증명서들을 허가할 권한을 준 자들에게 제공할 수 있다. 소정 실시예들에서, 그룹의 모든 멤버들이 그러한 연쇄 그룹 관리 증명서들을 소지할 수 있고, 그에 따라 모든 멤버들이 새 회원 증명서들을 허가할 수 있는 권한을 가질 수 있다. 소정 실시예들에서, 새 회원자격을 허가할 권한 부여는 하나 이상의 제약을 받을 수 있다. 예를 들어, 그러한 제약들은 연쇄 그룹 관리 증명서들을 제공하는 그룹 관리자에 의해 설정될 수 있다.
특정 예로서, 그러한 제약들은, 연쇄 증명서를 소지한 개인들만이 그룹 관리자를 접할 수 없는 상황에서 다른 이들에게 회원 자격을 허가할 수 있다는 것을 약정할 수 있다. 그러한 실시예에서, 가령 그룹 관리자를 접촉할 수 없게 된 상황에서, 사용자는 그룹 관리자 및/또는 서비스 제공자에게 나중에 사용할 연쇄 증명서를 요청할 수 있다. 이와 달리, 혹은 부가하여, 그룹 관리자를 접촉할 수 없는 경우, 나중에 사용하기 위해 그러한 연쇄 증명서가 그룹 관리자 및/또는 서비스 제공자에 의해 사용자 및/또는 사용자의 노드로 보내질 수 있다.
여러 서비스 제공자들이 존재하는 실시예들에서, 모든 관련 서비스 제공자들의 공개 키들을 사용자 노드들로 배포시킬 필요가 있을 수 있다. 그러한 경우는, 예를 들어, 일반 그룹을 통한 배포에 의해 발생할 수 있다.
본 발명의 여러 실시예들에 따르면, 여러 동작들과 관련하여 요금이 부과될 수 있다. 예를 들어, 그룹 참여, 그룹 생성, 채팅 보드 참가, 채팅 보드 생성, 인스턴트 메시지 보내기, 인스턴트 메시지 수신하기, 수신에 이용할 수 있는 개체들 만들기, 및/또는 개체들 수신하기와 같은 동작들에 대해 요금이 부과될 수 있다. 이와 달리, 혹은 이에 더 부가하여, 가령 상술한 모듈들, 그룹 증명서들, 및/또는 상술한 일반 액세스 증명서의 사용자 수신에 대해 요금이 부과될 수 있다.
예를 들어, 서비스 제공자는 그룹 관리자 증명서를 가진 그룹 관리 권한 부여에 대한 요금을 걷을 수 있다. 요금의 규모는 증명서에 기재된 그룹 규칙들(가령, 그룹에서 허용하는 동작들(공유 및/또는 채팅 등)), 그룹의 가시성(공개 혹은 비공개), 멤버들의 총수 등에 따라 달라질 수 있다. 여러 실시예들에서, 서비스 제공자는 사용자가 얼마나 많은 그룹들에 동시에 회원이 될 수 있는지에 대한 요건을 설정 및/또는 통제할 수 있을 것이다. 소정 실시예들에서, 가능한 그룹 수를 늘리기 위해서는 사용자 노드 상의 소프트웨어 모듈들이 업그레이드될 필요가 있음을 알아야 한다. 예를 들어, 그러한 것은 서비스 제공자 서비스 패키지 안에 들어 있거나, 별도의 계약 사항일 수 있다. 그룹 관리자 소프트웨어 모듈들은, 여러 실시예들에서, 그룹에 참여 및 탈퇴하는 것과 같은 행위들의 정보를 모으고, 자체적 및/또는 서비스 제공자를 통해 (가령 요금 부과 이벤트들을 서비스 제공자로 전송함으로써) 요금 부과를 실행하도록 동작할 것이다.
부가적 메시지 처리 동작
상술한 바와 같이, 본 발명의 여러 실시예들에서, 메시지 처리(취급)와 관련하여 여러가지 동작들이 수행될 수 있다. 그러한 동작들을 이제부터 설명할 것이다.
첫째 예로서, 여러 실시예들에서, 접속시 멀티플렉싱이 활용될 수 있고, 그룹 회원 증명서는 단일 멀티플렉싱된 접속을 통해 발송된 각각의 메시지마다 포함 되지는 않을 것이다. 대신, 예를 들어, 단일 그룹 관리 증명서가 특정 멀티플렉싱된 접속에 대해 제공될 수 있고, 이 단일 증명서는 그 접속과 관련해 보내진 모든 메시지들 등에 적용될 수 있다. 이러한 실시예들에서, 단일 증명서는, 가령 접속 설정과 관련한 상호 인증 및 인증 절차시 양쪽 노드들 모두에 대해 알맞은 그룹 증명서를 포함하는 "그룹 인증 메시지"를 통해 교환될 수 있다.
이러한 여러 실시예들에서, 한 노드가, 해당 증명서(가령, 특정 멀티플렉싱 접속과 과련해 제공된 단일 그룹 관리 증명서)를 가진 아무 공통 그룹들도 존재하지 않거나 교류된 적이 없는 경우에 있어서, 수신된 메시지 등을 가지고 무엇을 할 것인지를 결정하도록 동작할 수 있음에 유의해야 한다. 예를 들어, 이 노드는 그 메시지 등을 그냥 통과시키는 선택을 할 수도 있다. 다른 예로서, 그 노드는 그 메시지 등을 적절할 때 다른 노드들로 보내는 동작을 할 수도 있다. 또, 여러 실시예들에서, 두 노드들이 어떤 공통 그룹 회원자격도 공유하지 않거나 메시지들이 비공통 그룹에 대해 특정되는 경우, 한 노드는 다른 노드에 의해 전송된 메시지 등을 어떻게 처리할지를 결정하는 동작을 할 수 있음을 알아야 한다.
메시지 처리와 관련해 수행될 수 있는 동작들의 또 다른 예로서, 여기 기술된 고유 식별자들과 관련하여 여러 동작들이 수행될 수 있다. 이러한 한 고유 식별자는, 특정 예로서, 여기 참조용으로 포함되는 "DEC/HP 네트워크 컴퓨팅 구조 원격 절차 콜 실행시간 확장 사양 버전 OSD TX1.0.11" 에 기재된 것과 같은 가상적인 글로벌 고유 식별자를 생성하기 위해, 날짜, 시간, MAC 어드레스, 및/또는 다른 수단을 이용하여 발생된 128 비트 (16 바이트)의 정수일 수 있음에 유의해야 한다. 이러한 고유 식별자는 여러 실시예들에서, 네트워크 통신에 너무 지나친 오버헤드를 부가한다고 간주되고, 이러한 것은 특히 저 대역폭 통신이 활용되는 실시예들에서 그럴 수 있음을 알아야 한다. 본 발명의 여러 실시예들에 따르면, 여러가지 고유 식별자 타입들이 존재할 수 있다. 이러한 기능은 예를 들어 상술한 오버헤드를 줄이는데 있어 이점을 제공할 수 있다.
예를 들어, 제1고유 식별자 타입은 상술한 16 바이트 고유 식별자에 해당하는 것일 수 있다. 이 타입의 고유 식별자는, 가령, "클래스-16" 고유 식별자라고 불려질 것이다. 이 고유 식별자 타입은, 가령, 이 고유 식별자를 생성하는 기능이 사용되고(가령, 이 식별자를 생성할 알맞은 소프트웨어 모듈들이 노드 등에 존재함) 오버헤드는 문제가 되지 않는 등의 상황에서 활용된다.
고유 식별자 타입의 다른 예는 1 바이트 고유 식별자에 해당하는 것일 수 있다. 이런 타입의 고유 식별자는, 예를 들어, "클래스-1" 고유 식별자로 불리게 된다. 이 고유 식별자 타입은, 가령, 클래스-16 고유 식별자 생성 기능이 가능하지 않고, 오버헤드가 문제가 되는 등의 상황에서 사용된다. 여러 실시예들에서, 이 클래스-1 고유 식별자는 가령 다양한 공유 동작들에서 사용될 것이다. 이 클래스-1 고유 식별자는, 가령, 고유 식별자들이 잘 알려져 있는 실시예들(가령, 공유)에서 사용될 수 있다. 이러한 고유 식별자는, 예를 들어, 시스템 관리자, 서비스 제공자, 소프트웨어 모듈 개발자, 등에 의해 할당될 수 있음을 알아야 한다.
본 발명의 여러 실시예들에서, 다양한 어드레스들, 고유 식별자들 등등 (가령, 그룹 식별자들, 발송자 어드레스들, 수시자 어드레스들 등)이 통신의 일부로서 단일 접속을 통해 주기적으로 전송될 것이다. 이것은, 여러 실시예들에서, 증가된 전송 오버헤드를 가져오며, 특히 상술한 종류의 128 비트 정수들이 이용되는 경우가 그렇다). 고유 식별자들과 관련하여, 여러 실시예들에서, 하나 이상의 사전 등이 이용될 수 있음을 알아야 한다. 이 기능은, 가령, 상기 오버헤드를 감소하는 효과를 가져올 수 있다. 이 기능을 이용하는 여러 실시예들에 따르면, 예를 들어, 발송 노드가 가명, 별명, 식별자 등을 발송된 고유 식별자에 제공하고, 그 가명, 별명, 식별자 등은 그 해당 고유 식별자보다 짧은 워드길이여야 한다.
수취 노드는 사전 등에 상기 가명, 별명, 식별자 등을 고유 식별자와 상관시킨 엔트리를 추가시킬 수 있다. 고유 식별자가 다시 보내져야 할 때, 발송 노드는 그 가명, 별명, 식별자 등만을 보낼 수 있고, 그러면 수취 노드가 사전을 통해 대응되는 고유 식별자를 액세스할 수 있다. 여러 실시예들에서 이러한 기능은, 예를 들어, 소켓 데이터 바인딩시 구현될 수 있음을 알아야 한다. 또한 여러 실시예들에서, 사전의 상관관계는 양측 노드들 모두에 보유될 수 있음도 알아야 한다.
상기 사전 기능의 예로서, 수취 노드는 발송 노드로 가명들, 별명들, 식별자들 등에 사용될 크기에 대해 알려줄 수 있다. 이에 응답하여, 발송 노드는 특정 크기에 따른 사전을 생성할 수 있다. 그 다음에, 수취 노드가 그 특정 크기에 따라 사전을 생성할 수 있다. 다음 단계로서, 발송 노드는 고유 식별자 및 해당하는 가명, 별명, 식별자 등을 전송할 수 있다. 발송 노드는 자신의 사전 등에 그 가명, 별명, 식별자 등을 고유 식별자와 상관시킨 엔트리를 더 추가할 수 있다. 이에 응하여, 수취 노드는 자신의 사전 등에 그 가명, 별명, 식별자 등을 고유 식별 자와 상관시킨 엔트리를 추가할 수 있다. 고유 식별자가 다시 발송되어야 할 때, 발송 노드는 그 가명, 별명, 식별자만을 제공할 수 있고, 그러면 수취 노드는 사전을 통해 대응하는 고유 식별자를 액세스할 수 있다. 발송 노드는 고유 식별자가 앞서 전송되었었는지를, 가령, 자신의 사전을 조회함으로써 알 수 있다.
그러한 여러 실시예들에서, 자신의 사전에 가명, 별명, 식별자 등을 고유 식별자와 상관시킨 새 엔트리를 막 추가하려는 한 노드가, 그 사전이 모두 찼음을 알았을 때, 노드는 기존에 있는 사전 엔트리를 새 엔트리로 교체하도록 동작할 수 있다. 여러 실시예들에서, 어떤 엔트리를 교체할지를 결정할 때, 노드는, 가령, 가명, 별명, 식별자 등등의 크기, 조회 횟수, 엔트리들이 활용되었던 최종 시간의 표시, 엔트리들이 활용 빈도 표시 등등을 결정시에 이용할 수 있다.
본 발명의 여러 실시예들에서 메시지 처리와 관련해 수행할 수 있는 동작들의 또 다른 예로서, 어플리케이션 계층 플로우들이 활용되고, 그에 따라 여러 메시지들이 단일 설정된 어플리케이션 계층 플로우를 통해 보내질 수 있다. 이 기능은, 예를 들어, 대용량의 데이터를 효과적인 방법으로 하나 이상의 다수의 수취자들에게 전송하고자 하는 경우에 활용될 수 있다. 예를 들어, 어플리케이션 계층 플로우들은 단일 루트 등을 통해 여러 개의 메시지들을 전송할 필요가 있을 때 이용될 수 있다.
본 발명의 여러 실시예들에서, 한 노드가 메시지 헤더의 여러 필드들을 반드시 분석해야 한다는 것에 유의해야 하는데, 이는 그 메시지의 라우팅을 수행하기 위해서이다(가령, 메시지를 하나 이상의 다른 노드들로 전송함). 그러나, 어플리 케이션 계층 플로우가 활용되는 경우, 노드는 단지 어플리케이션 계층 플로우가 설정될 때 최초의 헤더 필드들에 대한 상기 해석만을 수행할 필요가 있을 것이다. 그런 다음 이어지는 메시지들은 그 설정된 플로우와 결부되어 보내질 수 있다. 이어지는 메시지들은, 여러 실시예드에서, 모든 통상의 헤더 정보를 포함할 필요가 없다. 예를 들어, 이어지는 메시지의 헤더 정보는 플로우 식별자만을 가리킬 수 있다.
따라서, 설정된 플로우에 알맞는 이어지는 메시지를 수신하는 노드는, 상술한 종류의 보다 집중적 헤더 분석을 수행해야 한다기보다 메시지 헤더에 지시된 플로우 식별자만을 고려할 필요가 있다. 그에 따라, 가령, 프로세싱 전력, 에너지 사용 등의 절감이 이뤄질 수 있다. 또, 계속되는 메시지들이, 여러 실시예들에서, 보다 작은 헤더를 포함하므로 (가령, 플로우 식별자만을 특정하므로) 대역폭도 절약할 수 있다. 여러 실시예들에서, 기설정된 플로우는 단방향(가령, 다운로드 플로우이거나 업로드 플로우)일 수 있음을 유의해야 한다.
어플리케이션 계층 플로우들이 활용가능한 다양한 실시예들에 따르면, 여러 개의 어플리케이션 계층 플로우들은 단일 링크, 접속 등을 통해 전송될 수 있다. 이러한 여러 실시예들에서, 플로우 식별자들에 대해 선택된 바이트 수는 단일 링크, 접속 등을 통해 전송될 수 있는 어플리케이션 계층 플로우들의 개수와 상관될 수 있다. 일례로서, 플로우 식별자들은 한 바이트 길이로서 선택될 수 있다. 다른 예로서, 플로우 식별자들은 두 바이트 길이로서 선택될 수 있다. 한 바이트 길이의 플로우 식별자들은, 가령, 224나 256개의 동시 플로우들을 허용할 것이고, 두 바이트 길이의 플로우 식별자들은, 가령 65503이나 65536개의 동시 플로우들을 가능하게 할 것이다.
보다 긴 워드 길이의 플로우 식별자를 선택할수록, 단일 링크, 접속 등을 통해 보다 많은 어플리케이션 계층 플로우들을 허용할 수 있게 되지만, 그 결과 이들 플로우들 중 하나를 통해 전송되는 메시지들에 대해서는 보다 긴 헤더들이 달리게 된다. 따라서, 여러 실시예들에서, 플로우 식별자들의 워드 길이는 헤더 크기와 단일 링크, 접속 등을 통한 가능한 플로우들의 개수 사이의 균형이 유지되도록 선택될 수 있다. 그러한 선택에는, 가령, 링크, 접속 등의 대역폭이 고려될 것이다. 예를 들어, 한 바이트 워드길이에 의해 허용되는 플로우들의 수가 저 대역폭 링크에 의해 지원될 수 있는 플로우들의 수보다 적지 않을 것이라고 판단된 경우 한 바이트 워드 길이가 저 대역폭 링크에 충분하며 더 긴 워드길이를 사용하는 것은 더 긴 메시지 헤더들만을 만들 뿐이라고 판단될 수 있다.
도 15와 관련하여, 어플리케이션 계층 플로우들이 활용되는 여러 실시예들에 따르면, 어플리케이션 계층 플로우는 플로우 시작 메시지의 발송에 의해 설정될 수 있음을 알 수 있다. 이 메시지에서 나타내느 것은 그 플로우에 해당하는 플로우 식별자, 그리고 아마도 플로우 식별자들에 사용될 워드길이 표시가 될 수 있다. 플로우 시작 메시지를 수신하면(1501 단계), 노드는 여러 실시예들에서 특정된 플로우 식별자에 따라 어플리케이션 계층 플로우 기능을 허용하는 여러 알맞은 동작들을 수행할 수 있다(1503 단계). 또, 여러 실시예들에서, 그 노드는 플로우 콘텍스트를 할당하는 조처를 취할 수도 있다.
여러 실시예들에서, 그러한 플로우 시작 메시지는 단일 피어 혹은 여러 피어들로 보내질 것이다. 또, 여러 실시예들에서, 그러한 플로우 시작 메시지는 멀티캐스트를 통해 전송될 수 있다는 것도 유의해야 한다. 게다가, 여러 실시예들에서 플로우 식별자는, 예를 들어, 한 방향의 소켓 접속시 고유한 것일 수 있음을 유의해야 한다. 또, 예를 통한 설명에 따르면, 여러 실시예들에서, 한 플로우에 해당하는 메시지들이 제1노드에서 제2노드로, 그런 다음 제2노드에서 제3노드로 보내질 때, 아마도 제1 및 제2노드 사이의 통신에 대해 한 플로우 넘버가 있을 수 있고, 제2 및 제3노드 사이의 통신에 대해서는 제2의 플로우 넘버가 있을 수 있음을 알아야 한다.
위에서 언급했다시피, 어플리케이션 계층 플로우의 설정 다음에 전송된 메시지는, 해당하는 데이터 페이로드(payload) 외에, 아마도 기설정된 플로우에 해당하는 플로우 식별자만을 포함하는 헤더를 포함할 수 있다(1505 단계). 플로우를 끊기위해, 여러 실시예들에서, 플로우 중지 메시지가 보내질 수 있다. 플로우 중지 메시지에는 중지될 플로우에 해당하는 플로우 식별자의 표시가 포함될 수 있다. 플로우 중지 메시지는, 여러 실시예들에서, 해당 플로우 시작 메시지를 수신했던 모든 노드들로 보내질 수 있다. 플로우 중지 메시지를 수신하면(1507 단계), 노드는, 여러 실시예들에서, 그 특정된 플로우 식별자와 관련한 어플리케이션 계층 플로우 기능을 중단하는 여러 가지 적절한 동작들을 수행할 수 있다(1509 단계). 여러 실시예들에서, 할당된 플로우 콘텍스트는 그 할당이 해제될 수 있다는 것을 더 유의해야 한다.
메시지 처리와 관련하여 수행될 수 있는 동작들의 또 다른 예로서, 본 발명의 여러 실시예들에서, 대역폭 사용, 프로세서 사용, 에너지 사용 등등을 줄이기 위해 데이터 포맷들에 관한 동작들이 수행될 수 있다는 것에 유의해야 한다. 이 실시예들은, 가령, 휴대형 노드들이 활용되는 상황의 예들일 수 있다. 그런 데이터 포맷 활용의 특정 예로서, 여러 실시예들에서 바이너리 포맷들이 XML(확장가능 마크업 언어, extensible Markup Language) 등과 같은 포맷들 대신 이용될 수 있고, 그에 따라 변환, 파싱(parsing) 등의 수행 필요성을 피할 수 있다. 바이너리 포맷이 아닌 XML과 같은 포맷을 사용하는 것이 요망되면서도 대역폭 사용, 프로세서 사용, 에너지 사용 등에서의 절약 역시 요망되는 실시예들에서, 이 분야에 알려진 여러 압축 기술들이 이용될 수 있음을 알아야 한다.
메시지 처리와 관련하여 수행될 수 있는 동작들의 다른 예로서, 본 발명의 다양한 실시예들에서, 최적화와 관련한 여러 동작들이 매개 노드(가령, 제1노드나 더 많은 노드들로부터 메시지 등을 수신하고 그것을 제2노드나 더 많은 노드들로 패스하는 역할의 노드)에 의해 수행될 수 있다는 것을 알아야 한다. 예를 들어, 그러한 패스를 수행하는 노드는 개체들 및/또는 개체 프래그먼트들을 저장하는 동작을 할 수 있다. 다른 예로서, 그러한 노드는 메시지, 개체 등등을 수신함에 있어 여러 개의 소스들을 이용하도록 동작할 수 있다. 또 다른 예로서, 이 노드는 메시지, 개체 등등의 수신을 재개할 수 있는 것일 수 있다. 또 다른 예로서, 이 노드는 그러한 패스를 수행함에 있어 멀티플렉싱을 활용하도록 동작할 수 있다.
메시지 처리와 관련하여 수행될 수 있는 동작들의 부가적 예로서, 여러 실시 예들에서 발송 및/또는 수신 노드들이 다양한 필터링 동작들을 수행하도록 동작할 수 있다는 것을 알아야 한다. 이러한 기능은, 가령, 노드들에서 동작되는 하나 이상의 소프트웨어 모듈들에 의해 제공될 수 있다.
상기 여러 실시예들에 따르면, 노드는 필터링 정책을 보유할 수 있다. 이 정책은, 가령, 노드의 사용자, 시스템 관리자 등등에 의해 설정될 수 있다. 이와 달리, 혹은 이에 부가하여, 그 정책이 제조, 초기 셋 업 시점 및/또는 그 이후의 하나 이상의 시점들에서 노드 위로 로딩될 수도 있다. 이와 달리, 또는 이에 부가하여, 노드 상에서 운영되는 소프트웨어가 정책을 만들고/거나 동작 중에 기존 정책을 변경할 수도 있다. 예에 따른 설명을 제공하기 위해, 상기 실시예들에서, 제2노드로부터 곧 수신하기로 된 제1노드가 자신의 정책을 제2노드로 전송할 수 있음을 알아야 한다. 그러면 제2노드가 그 정책에 따라 여러 패킷들, 메시지들 등을 전송하는 동작을 할 수 있다. 또, 여러 실시예들에서, 제1노드는 제2노드가 패킷들, 메시지들 등을 전송할 때 상기 정책을 고수하지 못한 경우 제2노드와의 접속을 중단하는 동작을 할 수 있다. 여러 실시예들에서, 제1노드는 그 정책에 따라, 수신된 패킷들, 메시지들 등을 버리는 동작을 할 수도 있음을 알아야 한다.
발송 노드가 수신 노드의 정책에 따라 전송하는 기능은, 예를 들어, 수신 모드가 사용 요금을 부과하는 네트워크 링크(가령, UMTS 링크)를 이용하는 경우, 표준 방화벽 기능보다 유용한 것임을 보일 수 있다. 예를 들어, 표준 방화벽을 이용하는 그 수신 노드는 자신이 버린 패킷들, 메시지들 등에 대해 요금을 지불해야 할 수도 있기 때문에, 그러한 관점이 유지될 수 있다. 반대로, 상술한 기능을 통해, 상기 패킷들, 메시지들 등이 수신 노드로 전송되지 않을 수 있고, 그에 따라, 수신 노드는 해당 네트워크 사용 요금을 지불하지 않아도 될 수 있다.
메타데이터
여기 기술한 본 발명의 여러 실시예들은 메타데이터를 이용한다고 설명되었다. 메타데이터에 대한 예로서의 여러 양태들이 지금부터 설명될 것이다.
여러 실시예들에서, 허용 가능한 메타데이터 값들, 필드들 등에 대한 하나 이상의 정의된 집합들 및/또는 스키마(schema)들이 있을 수 있다. 또, 여러 실시예들에서, 사용자가 다양한 목적(가령, 검색)으로 메타데이터를 입력할 수 있다. 이 입력은, 예를 들어, 적절한 GUI 구성 등을 통해 이뤄질 수 있다. 따라서, 예를 들어, 사용자는 정의된 집합들 및/또는 스키마들 (가령, 주제, 제목, 포맷, 생성자, 멤버 이름 등등)에 해당하는 메타데이터를 입력할 수 있다.
여러 실시예들에서, 사용자는 키워드 기반의 자유 기입 텍스트, 다른 유형의 정보(가령, 오디오) 등등을 입력할 수도 있음에 유의해야 한다. 그러한 입력은, 예를 들어, 알맞은 GUI 구성과 관련될 수 있다. 여러 동작들에서(가령, 검색), 그렇게 키워드에 기반해 자유 기입된 텍스트, 기타 유형의 정보 등등은, 예를 들어, 허용 가능한 메타데이터 값들, 필드들 등의 하나 이상의 규정 집합들 및/또는 스키마들의 견지에서 고려될 수 있다.
여러 실시예들에서, 키워드에 기반한 자유 기입 텍스트, 기타 유형의 정보 등등을 상기 집합들 및/또는 스키마들로부터의 적절한 메타데이터 값들, 필드들 등과 결부시키기 위한 동작들이 수행될 수 있다. 상기 집합들 및/또는 스키마들로부 터의 이 적절한 메타데이터 값들, 필드들 등은 예를 들어, 키워드에 기반하여 자유 기입된 텍스트, 기타 유형의 정보 등등과 가장 잘 상관되도록 결정된 것들일 수 있다. 그 상관 결정시, 예를 들어, 메타데이터 분석, 텍스트 분석, 가장 있을법한 메타데이터 값들, 필드들 등에 대한 키워드들의 매핑을 고려할 수 있다. 여러 실시예들에서, 사용자가, 가령 검색과 같은 동작을 위해 허용가능한 메타데이터 값들, 필드들 등에 대한 하나 이상의 정의된 집합들 및/또는 스키마들에 해당하는 메타데이터를 입력하는 것이 바람직하고/하거나 제안될 수도 있다는 것에 유의해야 한다.
일단 사용자가 메타데이터로서 제공된 기준(가령, 검색 기준), 및/또는 키워드들에 기반해 자유 기입된 텍스트, 다른 유형의 정보 등등을 구비하면, 사용자 노드는, 예를 들어, 알맞은 메시지 등(가령, 질의 메시지 등)을 발송하도록 동작할 수 있다. 여러 실시예들에서, 사용자 노드는 예를 들어 다양한 콘텐츠 포맷들의 처리와 관련한 노드의 기능들을 설명하는 패러미터들을 그 질의 등에 추가할 수 있음을 알아야 한다. 여러 실시예들에서, 사용자 노드는 키워드에 기반하여 자유 기입된 텍스트, 다른 유형의 정보 등등을 집합 및/또는 스키마들로부터의 적절한 메타데이터 값들, 필드들 등등과 결부시키도록 동작할 수 있다는 것을 알아야 한다. 그에 따라, 노드는 메시지 등에 그 결부와 관련하여 메타데이터 및/또는 다른 데이터를 포함할 수 있다. 이와 달리, 혹은 이에 부가하여, 사용자 노드는 그 적절한 메시지 등에, 입력된 키워드 기반 자유 기입 텍스트, 다른 유형의 정보 등을 포함할 수 있고, 수취 노드는 그 결부를 수행하도록 동작할 수 있다.
또, 여러 실시예들에서, 한 그룹은 그 자신의 규정된 책략 및/또는 그룹 고유의 메타데이터 집합들 및/또는 스키마들을 포함할 수 있다. 그러한 것은, 예를 들어, 그룹 관리자, 한 멤버, 및/또는 그룹에서 고유한 역할을 가진 멤버에 의해 규정될 수 있다. 소정 실시예들에서, 그룹 고유의 메타데이터 집합 및/또는 스키마는 예를 들어, 시스템 관리자, 서비스 제공자 등에 의해 모든 그룹들 등에서 이용할 수 있는 집합 및/또는 스키마의 부분집합일 수 있다. 예를 들어, 그룹은, 모든 그룹들 등에서 이용할 수 있는 파일 공유 집합 및/또는 스키마의 부분집합인 음악 공유와 관련된 집합 및/또는 스키마를 포함할 수 있다.
다른 예로서, 그룹 고유의 메타데이터 집합 및/또는 스키마가 가령 모든 그룹들 등에서 이용될 수 있는 집합 및/또는 스키마의 확장일 수도 있다. 그러한, 그룹 고유의 메타데이터 집합 및/또는 스키마는, 예를 들어, 그룹의 특정사항에 관하여 추가된 메타데이터 값들, 필드들 등을 포함할 수 있다. 구체적인 예로서, 음악에 해당하는 그룹은 음악 장르와 관련된 메타데이터 값들, 필드들 등을 부가할 수 있고, 사진에 해당하는 그룹은 촬영 품질 정보 및/또는 카메라 설정에 관한 메타데이터 값들, 필드들 등을 부가할 것이며, 아마추어 무선에 해당하는 그룹은 DX 무선 코드들과 관련한 메타데이터 값들, 필드들 등을 부가할 것이다.
여러 실시예들에서, 그룹 고유의 메타데이터 집합들 및/또는 스키마들은 아마도 해당 그룹에 속한 노드들 사이에서 업데이트 사항을 교환함으로써 배포, 업데이트, 및/또는 유지될 수 있다. 여러 실시예들에서, 노드는 어떤 그룹에 참가할 때 해당하는 그룹 고유의 집합 및/또는 스키마의 최종 버전을 수신할 수 있다. 또 , 여러 실시예들에서, 그룹과 관련된 노드는 아마도 하나 이상의 적절한 소프트웨어 모듈들의 동작을 통해, 참가한 그룹들에 부합하는 그룹 고유의 집합들 및/또는 스키마들을 수신하고 갱신할 수 있다.
하드웨어 및 소프트웨어
여기 설명된 소정 동작들 등은 컴퓨터들의 지원에 의해 실행될 수 있다. 또, 여기 기술한 노드들은 컴퓨터들을 포함하거나 컴퓨터들일 수 있다. "컴퓨터", "범용 컴퓨터" 등과 같은 여기 사용된 용어들은 아마도 시리즈 60 플랫폼을 활용하고, 아마도 자바 및/또는 .Net의 지원을 받는 아마도 OS X, 리눅스, 다윈, 윈도우즈 CE, 윈도우즈 XP, 윈도우즈 서버 2003, 팜 OS, 심비안(Symbian) OS 등과 같은 운영 시스템을 운영하는 프로세서 카드 스마트 카드, 미디어 장치, 퍼스널 컴퓨터, 엔지니어링 워크스테이션, PC, 매킨토시, PDA, 컴퓨터화된 시계, 노드, 유무선 단말기, 서버, 네트워크 액세스 포인트, 네트워크 멀티캐스트 포인트 등을 말하는 것일 수 있으나, 반드시 거기에만 한정되는 것은 아니다.
"범용 컴퓨터", "컴퓨터" 등의 용어는, 또한, 하나 이상의 메모리나 저장 유닛들에 동작 가능하게 연결된 하나 이상의 프로세서들을 말하는 것일 수 있으나 반드시 거기에 국한되는 것은 아니며, 이때 메모리나 저장 유닛은 데이터, 알고리즘들, 및/또는 프로그램 코드를 포함할 수 있고, 프로세서나 프로세서들은 그 프로그램 코드를 실행하고/거나 그 프로그램 코드, 데이터, 및/또는 알고리즘들을 실행할 수 있다. 따라서, 도 16에 도시된 것과 같은 전형적 컴퓨터(16000)는 두 프로세서들을 동작 가능하게 연결하는 시스템 버스(14050), 랜덤 액세스 메모리(16053), 롬 (16055), 입출력(I/O) 인터페이스들(16057 및 16058), 저장 인터페이스(16059), 및 디스플레이 인터페이스(16061)를 포함한다. 저장 인터페이스(16059)는 다시 대량 스토리지(16063)에 연결된다. I/O 인터페이스들(16057 및 16058) 각각은 이더넷, IEEE 1394, IEEE 1394b, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.16a, IEEE 802.20, 블루투스, 지상파 디지털 비디오 방송(DVB-T), 위성 디지털 비디오 방송(DVB-S), 디지털 오디오 방송(DAB), 일반 패킷 무선 서비스(GPRS), 범용 모바일 통신 서비스(UMTS), DVB-X, IrDA(Infrared Data Association), 또는 이 분야에 알려진 다른 인터페이스일 수 있다.
대량 스토리지(16063)는 하드 드라이브, 광 드라이브 등일 수 있다. 프로세서들(16057 및 16058)은 각각 IBM이나 모토롤라 파워PC, AMD 애슬론, AMD 옵테론, 인텍 ARM, 인텔 XScale, Transmeta Crusoe, 인텔 Xenon, 또는 인텔 펜티엄과 같은 공공연하게 알려진 프로세서일 수 있다. 이 예에 도시된 것과 같은 컴퓨터(16000)는 터치 스크린(16001) 및 키보드(16002)를 포함할 수도 있다. 여러 실시예들에서, 마우스, 키패드 및/또는 인터페이스는 선택적으로나 부가적으로 이용될 수 있다. 컴퓨터(16000)는 카드 리더들, DVD 드라이브, 플로피 디스크 드라이브 등을 더 포함하거나 그에 첨가될 수 있고, 그에 따라 프로그램 코드를 포함하는 매체가 그 코드를 컴퓨터에 로딩할 목적으로 삽입될 수 있다.
본 발명에 따르면, 컴퓨터는 하나 이상의 상술한 동작들을 수행하도록 된 하나 이상의 소프트웨어 모듈들을 실행할 수 있다. 그 모듈들은, 예를 들어, 이 분야에 알려진 방법들에 따라 자바, 객체지향 C, C, C#, 및/또는 C++과 같은 언어들 을 이용하여 프로그램된 것일 수 있다. 해당 프로그램 코드는 예를 들어, DVD, CD-ROM, 및/또는 플로피 디스크와 같은 매체 상에 구워질 수 있다. 특정한 소프트웨어 모듈들 사이에서의 상술한 동작들의 분업은 예시용이며, 다른 동작 분업이 가능함을 알아야 한다. 따라서, 한 소프트웨어 모듈에 의해 수행되는 것 같은 상술한 어느 동작들이 그와 달리 복수의 소프트웨어 모듈들에 의해 수행될 수도 있다. 마찬가지로, 복수의 모듈들에 의해 수행된다고 기술한 어떤 동작들은 단일 모듈에 의해 수행될 수도 있다. 특정 컴퓨터에 의해 수행된다고 기재된 동작들이 그와 달리 복수의 컴퓨터들에 의해 수행될 수 있음을 알아야 한다. 또, 여러 실시예들에서, 그리드 컴퓨팅 기술들이 활용될 수 있다는 것 역시 알아야 한다.
도 17은 본 발명의 여러 실시예들에서 사용될 수 있는 전형적인 단말기의 기능적 블록도를 도시한 것이다. 도 17의 단말기는 앞에서 설명되었다. 이하에서, 동일한 참조 부호들이 동일한 구성 요소에 대해 사용되었다. 도 17의 단말기(17000)는 여기 설명된 어느/모든 실시예들에서 사용될 수 있다. 단말기(17000)는 프로세싱 유닛 CPU(1703), 멀티 캐리어 신호 단말부(1705) 및 사용자 인터페이스(1701, 1702)를 구비한다. 멀티 캐리어 신호 단말부(1705) 및 사용자 인터페이스(1701, 1702)는 프로세싱 유닛 CPU(1703)과 연결된다. 하나 이상의 직접 메모리 액세스(DMA) 채널들이 멀티 캐리어 신호 단말부(1705)와 메모리(1704) 사이에 존재할 수 있다. 사용자 인터페이스(1701, 1702)는 사용자가 단말기(17000)를 사용할 수 있게 하는 디스플레이 및 키보드를 포함한다. 또, 사용자 인터페이스(1701, 1702)는 오디오 신호들을 수신 및 출력하기 위한 마이크 및 스피커를 포함한다. 사용자 인터페이스(1701, 1702)는 또한 음성 인식부(미도시)를 포함할 수도 있다.
프로세싱 유닛 CPU(1703)는 마이크로 프로세서(미도시), 메모리(1704) 및 아마도 소프트웨어를 포함한다. 소프트에어는 메모리(1704)에 저장될 수 있다. 마이크로 프로세서는 이 소프트웨어에 기반하여, 데이터 스트림의 수신, 데이터 수신시 임펄스 버스트 노이즈의 허용오차, 사용자 인터페이스로 디스플레이할 출력, 및 사용자 인터페이스로부터 수신된 입력사항의 판독 등과 같은 단말기(17000)의 동작을 제어한다. 이 동작들이 위에서 설명되었다. 하드웨어는 신호 검출 회로, 복조 회로, 임펄스 검출 회로, 주요한 임펄스 노이즈량이 존재하는 심볼의 샘플들의 블랭킹 회로, 추정치 산출 회로, 및 훼손된 데이터의 정정 수행 회로를 포함한다.
도 17을 더 참조할 때, 선택적으로, 미들웨어나 소프트웨어 구성이 적용될 수 있다. 단말기(17000)는 사용자가 편리하게 들고다닐 수 있는 핸드헬드 장치일 수 있다. 단말기(17000)가 멀티캐스트 전송 스트림을 수신하는 멀티 캐리어 신호 단말부(1705)를 포함하는 셀룰라 모바일 전화임이 바람직하다. 따라서, 단말기(17000)는 서비스 제공자들과 상호 동작할 가능성이 크다.
관련 문제 및 범위
상기 설명은 많은 특정사항을 포함하고 있으나, 이들은 단지 발명을 예시하기 위해 제공된 것으로 발명의 범위를 제한하는 것으로서 해석되어서는 안된다. 따라서, 이 분야의 당업자라면 본 발명의 개념과 범주로부터 벗어나지 않으면서 본 발명의 시스템 및 프로세스들에 다양한 수정과 변형이 있을 수 있다는 것을 이해할 것이다.

Claims (44)

  1. 피어 투 피어(peer-to-peer) 환경에서의 개체 액세스 방법에 있어서,
    각각의 피어 투 피어 그룹이 한 공통 분모를 갖는 노드들로 이뤄질 때, 하나 이상의 상기 피어 투 피어 그룹들에 속하는 하나 이상의 노드들에 대해 다수의 인증된 접속들을 유지하는 단계;
    한 개체에 대해 액세스하라고 그 개체에 해당하는 메타데이터를 포함하는 요청을 수신하는 단계;
    통과된(by-passed) 메시지들을 분석함으로써 동적으로 업데이트되는, 보유된 하나 이상의 개체 참조 테이블들을 조사하는 단계;
    상기 개체에 대해 직접 액세스를 지원할 수 있는지를 판단하는 단계;
    상기 개체에 대해 액세스를 지원할 수 있는 노드가 알려져 있는지를 판단하는 단계; 및
    상기 개체 액세스에 관련하여, 직접 액세스 가능한 노드를 조회하는(querying) 단계를 포함함을 특징으로 하는 개체 액세스 방법.
  2. 제1항에 있어서, 상기 접속들은 상기 하나 이상의 피어 투 피어 그룹들 가운데 적어도 한 그룹의 회원을 나타내는 증명서들을 제공함으로써 인증됨을 특징으로 하는 개체 액세스 방법.
  3. 제1항에 있어서, 상기 접속들의 최적의 개수가 하나 이상의 네트워킹 기술들을 나란하게 사용하여 유지되며,
    추가 접속이 설정되어야 할지를 결정하는 단계를 더 포함함을 특징으로 하는 개체 액세스 방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    소정 개체로의 최종 액세스 시간과 상기 개체와의 통신 빈도를 고려하여 상기 개체 기준 테이블들을 관리하는 단계를 더 포함함을 특징으로 하는 개체 액세스 방법.
  7. 제1항에 있어서,
    회원으로 되어 있는 그룹들의 리스트를 관리하는 단계; 및
    상기 그룹들 중 한 그룹에 대한 접속 상태를 관리하는 단계를 더 포함함을 특징으로 하는 개체 액세스 방법.
  8. 삭제
  9. 삭제
  10. 제1항에 있어서, 상기 개체는 노드임을 특징으로 하는 개체 액세스 방법.
  11. 제1항에 있어서, 상기 개체는 수신 가능 개체이고, 상기 수신 가능 개체는 미디어 항목임을 특징으로 하는 개체 액세스 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 제1항에 있어서, 상기 하나 이상의 유지된 접속들은 무선 단거리 접속들임을 특징으로 하는 개체 액세스 방법.
  16. 제15항에 있어서, 상기 무선 단거리 접속들은 상기 개체에 대한 액세스를 지원할 때 다른 접속들에 비해 선호됨을 특징으로 하는 개체 액세스 방법.
  17. 삭제
  18. 피어 투 피어 환경의 개체 액세스 시스템에 있어서,
    프로그램 코드가 저장된 메모리; 및
    상기 메모리와 동작 가능하게 연결되어 상기 저장된 프로그램 코드에 따라 명령들을 수행하는 프로세서를 포함하고,
    상기 프로그램 코드는 상기 프로세서에 의해 실행시, 상기 프로세서가
    각각의 피어 투 피어 그룹이 한 공통 분모를 갖는 노드들로 이뤄질 때, 하나 이상의 상기 피어 투 피어 그룹들에 속하는 하나 이상의 노드들에 대해 다수의 인증된 접속들을 유지하는 단계;
    한 개체에 대해 액세스하라고 그 개체에 해당하는 메타데이터를 포함하는 요청을 수신하는 단계;
    통과된 메시지들을 분석함으로써 동적으로 업데이트되는, 보유된 하나 이상의 개체 참조 테이블들을 조사하는 단계;
    상기 개체에 대해 직접 액세스를 지원할 수 있는지를 판단하는 단계;
    상기 개체에 대해 액세스를 지원할 수 있는 노드가 알려져 있는지를 판단하는 단계; 및
    상기 개체 액세스에 관련하여, 직접 액세스 가능한 노드를 조회하는(querying) 단계를 수행하도록 함을 특징으로 하는 개체 액세스 시스템.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 피어 투 피어 환경에서 사용자에게 통지하는 무선 노드의 방법에 있어서,
    상기 피어 투 피어 환경에 있는 하나 이상의 노드들에 대해 여러 인증된 접 속들을 유지하는 단계;
    상기 하나 이상의 인증된 접속들을 통해 상기 노드들 중 한 노드로부터 그냥 통과될 하나 이상의 메시지들을 수신하는 단계; 및
    상기 사용자에게, 상기 통과될 하나 이상의 메시지들에 해당하는 하나 이상의 공지사항들(notifications)을 디스플레이하는 단계를 포함하고,
    상기 공지사항들에 상응하는 상기 통과될 메시지들 각각의 콘텐츠는 하나 이상의 특정 기준에 부합하고, 상기 공지사항들 각각은 상기 공지사항들에 상응하는 상기 하나 이상의 메시지들을 나타내고, 상기 유지단계, 수신단계, 및 디스플레이하는 단계는 상기 노드의 사용자 인터페이스가 아이들(idle) 상태일 때 수행됨을 특징으로 하는 무선 노드의 사용자 통지 방법.
  26. 제25항에 있어서, 상기 통과될 하나 이상의 수신된 메시지들은 하나 이상의 개체들에 해당함을 특징으로 하는 무선 노드의 사용자 통지 방법.
  27. 제25항에 있어서, 상기 통과될 하나 이상의 수신된 메시지들은 채팅에 해당함을 특징으로 하는 무선 노드의 사용자 통지 방법.
  28. 삭제
  29. 제25항에 있어서, 상기 디스플레이는 스크린세이버를 통하여 이뤄짐을 특징으로 하는 무선 노드의 사용자 통지 방법.
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 무선 노드에 있어서,
    프로그램 코드가 저장된 메모리; 및
    상기 메모리와 동작 가능하게 연결되고 상기 저장된 프로그램 코드에 따른 명령들을 수행하는 프로세서를 포함하고,
    상기 프로그램 코드는 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    상기 피어 투 피어 환경에 있는 하나 이상의 노드들에 대해 여러 인증된 접속들을 유지하는 단계;
    상기 하나 이상의 인증된 접속들을 통해 상기 노드들 중 한 노드로부터 그냥 통과될 하나 이상의 메시지들을 수신하는 단계; 및
    상기 사용자에게, 상기 통과될 하나 이상의 메시지들에 해당하는 하나 이상의 공지사항들(notifications)을 디스플레이하는 단계를 수행하도록 하고,
    상기 공지사항들에 상응하는 상기 통과될 메시지들 각각의 콘텐츠는 하나 이상의 특정 기준에 부합하고, 상기 공지사항들 각각은 상기 공지사항들에 상응하는 상기 하나 이상의 메시지들을 나타내고, 상기 유지 단계, 수신 단계, 및 디스플레이하는 단계는 상기 노드의 사용자 인터페이스가 아이들(idle) 상태일 때 수행됨을 특징으로 하는 무선 노드.
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
KR1020057022641A 2003-05-27 2004-05-26 사용자 통지 시스템 및 방법 KR100758253B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/447,115 2003-05-27
US10/447,115 US20040243580A1 (en) 2003-05-27 2003-05-27 System and method for message handling in a peer-to-peer environment
US10/607,618 US7660864B2 (en) 2003-05-27 2003-06-27 System and method for user notification
US10/607,618 2003-06-27
PCT/US2004/016569 WO2004107125A2 (en) 2003-05-27 2004-05-26 System and method for user notification

Publications (2)

Publication Number Publication Date
KR20060017820A KR20060017820A (ko) 2006-02-27
KR100758253B1 true KR100758253B1 (ko) 2007-09-12

Family

ID=33493041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022641A KR100758253B1 (ko) 2003-05-27 2004-05-26 사용자 통지 시스템 및 방법

Country Status (5)

Country Link
US (1) US7660864B2 (ko)
EP (1) EP1631880A2 (ko)
KR (1) KR100758253B1 (ko)
CN (1) CN100483385C (ko)
WO (1) WO2004107125A2 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3973986B2 (ja) * 2002-07-12 2007-09-12 株式会社エヌ・ティ・ティ・ドコモ ノード探索方法、ノード、通信システム及びノード探索プログラム
FI20031340A0 (fi) * 2003-09-18 2003-09-18 Nokia Corp Menetelmä ja järjestelmä yhteyksien seurantaan ja seurantaprotokolla
US7200608B2 (en) * 2003-10-23 2007-04-03 Microsoft Corporation Application programming interface for centralized storage of principal data
US7631060B2 (en) * 2003-10-23 2009-12-08 Microsoft Corporation Identity system for use in a computing environment
CA2556697C (en) * 2004-02-17 2018-01-09 Nielsen Media Research, Inc. Methods and apparatus for monitoring video games
US8316088B2 (en) 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
US9704502B2 (en) * 2004-07-30 2017-07-11 Invention Science Fund I, Llc Cue-aware privacy filter for participants in persistent communications
US8977250B2 (en) * 2004-08-27 2015-03-10 The Invention Science Fund I, Llc Context-aware filter for participants in persistent communication
US9779750B2 (en) * 2004-07-30 2017-10-03 Invention Science Fund I, Llc Cue-aware privacy filter for participants in persistent communications
US8521828B2 (en) 2004-07-30 2013-08-27 The Invention Science Fund I, Llc Themes indicative of participants in persistent communication
US7730143B1 (en) * 2004-12-01 2010-06-01 Aol Inc. Prohibiting mobile forwarding
US9002949B2 (en) 2004-12-01 2015-04-07 Google Inc. Automatically enabling the forwarding of instant messages
US8060566B2 (en) 2004-12-01 2011-11-15 Aol Inc. Automatically enabling the forwarding of instant messages
JP2006189282A (ja) * 2005-01-05 2006-07-20 Hitachi High-Technologies Corp 自動分析装置
US7509121B2 (en) * 2005-04-18 2009-03-24 Terax Communication Technologies Inc. Method of updating firmware using object push profile in the bluetooth object exchange protocol
US7865765B2 (en) * 2005-06-09 2011-01-04 International Business Machines Corporation Grid licensing server and fault tolerant grid system and method of use
US20070005602A1 (en) * 2005-06-29 2007-01-04 Nokia Corporation Method, electronic device and computer program product for identifying entities based upon innate knowledge
US20070022172A1 (en) * 2005-07-19 2007-01-25 Anglin Howard N Controlling presentation of instant messages to a recipient
TWI274284B (en) * 2005-09-07 2007-02-21 Micro Star Int Co Ltd Method for changing parameter values of embedded system by way of object push profile
US8346789B2 (en) * 2005-10-03 2013-01-01 Intel Corporation System and method for generating homogeneous metadata from pre-existing metadata
KR100735327B1 (ko) * 2005-11-11 2007-07-04 삼성전자주식회사 디지털 방송 수신 단말기의 배경 화면 디스플레이 방법
GB0607294D0 (en) * 2006-04-11 2006-05-24 Nokia Corp A node
US7926065B2 (en) * 2006-11-07 2011-04-12 International Business Machines Corporation Method and system for dynamically specifying a format for data provided by a web service invocation
US8700014B2 (en) 2006-11-22 2014-04-15 Bindu Rama Rao Audio guided system for providing guidance to user of mobile device on multi-step activities
US8433299B2 (en) * 2006-11-22 2013-04-30 Bindu Rama Rao System for providing interactive media to user of mobile device
US10803474B2 (en) 2006-11-22 2020-10-13 Qualtrics, Llc System for creating and distributing interactive advertisements to mobile devices
US11256386B2 (en) 2006-11-22 2022-02-22 Qualtrics, Llc Media management system supporting a plurality of mobile devices
US8478250B2 (en) 2007-07-30 2013-07-02 Bindu Rama Rao Interactive media management server
US20080126113A1 (en) * 2006-11-29 2008-05-29 Steve Manning Systems and methods for creating and participating in ad-hoc virtual communities
US9246687B2 (en) * 2007-02-28 2016-01-26 Broadcom Corporation Method for authorizing and authenticating data
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
US8387007B2 (en) * 2007-06-08 2013-02-26 Apple Inc. Scripting bridge
AU2008267775B2 (en) * 2007-06-27 2013-02-21 Karen Knowles Enterprises Pty Ltd Communication method, system and products
US9084231B2 (en) * 2008-03-13 2015-07-14 Qualcomm Incorporated Methods and apparatus for acquiring and using multiple connection identifiers
US20100146437A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Glanceable animated notifications on a locked device
US9197738B2 (en) * 2008-12-04 2015-11-24 Microsoft Technology Licensing, Llc Providing selected data through a locked display
US8218744B2 (en) 2008-12-12 2012-07-10 At&T Intellectual Property I, L.P. Method for indicating the context of a call to a called party
US8165041B2 (en) * 2008-12-15 2012-04-24 Microsoft Corporation Peer to multi-peer routing
US9215575B2 (en) * 2009-05-20 2015-12-15 Ross George Kouhi Encoding and distribution of game play through compact message encoding and graphical rendering
US8434153B2 (en) 2009-08-24 2013-04-30 Microsoft Corporation Application display on a locked device
US8407726B2 (en) 2009-12-31 2013-03-26 International Business Machines Corporation Collaboration in low bandwidth applications
US9118491B2 (en) * 2010-06-30 2015-08-25 Alcatel Lucent Return of multiple results in rule generation
CN103329068B (zh) 2011-01-24 2017-02-08 索尼电脑娱乐公司 信息处理装置
US8956232B2 (en) 2011-05-03 2015-02-17 Sony Computer Entertainment America Llc Special regional online video game forum based on location
US9331858B2 (en) * 2011-05-03 2016-05-03 Sony Computer Entertainment Inc. Persistent party rooms
US20130013731A1 (en) * 2011-07-08 2013-01-10 Bradley Richard Ree Devices, systems, and methods for transmitting a message
JP2013105171A (ja) * 2011-11-17 2013-05-30 Seiko Epson Corp プロジェクター及びその制御方法
KR101436406B1 (ko) * 2011-12-29 2014-09-02 주식회사 안랩 P2p기반 업데이트 클라이언트, 서버 장치, 시스템 및 방법
EP2809031B1 (en) * 2013-05-31 2023-09-27 Dassault Systèmes Communication middleware for managing multicast channels
US9450904B2 (en) 2013-07-15 2016-09-20 Dropbox, Inc. Coordinated notifications across multiple channels
CN103716139B (zh) * 2013-12-10 2017-03-29 乐视网信息技术(北京)股份有限公司 一种信息推送处理方法和装置
US9462054B2 (en) 2014-02-27 2016-10-04 Dropbox, Inc. Systems and methods for providing a user with a set of interactivity features locally on a user device
US9112936B1 (en) * 2014-02-27 2015-08-18 Dropbox, Inc. Systems and methods for ephemeral eventing
CN104144255B (zh) * 2014-07-11 2017-04-05 北京奇虎科技有限公司 电子设备中通信标识的显示方法、客户端以及电子设备
CN104239130B (zh) * 2014-08-15 2020-09-11 北京配天技术有限公司 人机交互界面对操作指令响应的控制方法及终端
CN104536659B (zh) * 2014-12-15 2018-06-12 小米科技有限责任公司 目标物信息处理方法及装置
WO2017113282A1 (zh) * 2015-12-31 2017-07-06 富士通株式会社 网络消息通知装置、方法以及通信系统
CN105427856B (zh) * 2016-01-12 2020-05-19 北京光年无限科技有限公司 一种面向智能机器人的约请数据处理方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0694676A (ja) * 1992-09-10 1994-04-08 Olympus Optical Co Ltd 自動電気泳動装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926326A (en) * 1988-08-12 1990-05-15 Mckinley Robert E Coin-operated message display system
US5542115A (en) * 1994-06-24 1996-07-30 Pioneer Tech Development Limited Paging method and apparatus
US5852436A (en) * 1994-06-30 1998-12-22 Microsoft Corporation Notes facility for receiving notes while the computer system is in a screen mode
US5933478A (en) * 1994-09-28 1999-08-03 Hitachi, Ltd. Data transfer system and handheld terminal device used therefor
US5631847A (en) * 1995-04-27 1997-05-20 Elonex I.P. Holdings, Ltd System for network file server failure notification
US5740549A (en) * 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US6396513B1 (en) * 1996-05-14 2002-05-28 At&T Corp. Electronic message sorting and notification system
US6067561A (en) * 1997-02-07 2000-05-23 Hughes Electronics Corporation Electronic mail notification system and method within a hybrid network that transmits notifications via a continuous, high-speed channel
JP3139408B2 (ja) * 1997-03-17 2001-02-26 カシオ計算機株式会社 ホームページ更新通知装置
US6094676A (en) * 1997-05-30 2000-07-25 Hilgraeve Incorporated Method and apparatus for peer-to-peer communication
US6278448B1 (en) 1998-02-17 2001-08-21 Microsoft Corporation Composite Web page built from any web content
JP2951307B1 (ja) * 1998-03-10 1999-09-20 株式会社ガーラ 電子掲示板システム
US6094681A (en) * 1998-03-31 2000-07-25 Siemens Information And Communication Networks, Inc. Apparatus and method for automated event notification
US6288715B1 (en) * 1999-05-11 2001-09-11 Qwest Communications Int'l., Inc. Screensaver messaging system
US6507866B1 (en) * 1999-07-19 2003-01-14 At&T Wireless Services, Inc. E-mail usage pattern detection
US6400810B1 (en) * 1999-07-20 2002-06-04 Ameritech Corporation Method and system for selective notification of E-mail messages
US6549916B1 (en) * 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US20030191816A1 (en) * 2000-01-11 2003-10-09 Spoovy, Llc System and method for creating and delivering customized multimedia communications
US7030837B1 (en) * 2000-04-24 2006-04-18 Microsoft Corporation Auxiliary display unit for a computer system
US7305082B2 (en) * 2000-05-09 2007-12-04 Nice Systems Ltd. Method and apparatus for quality assurance in a multimedia communications environment
JP2001320404A (ja) * 2000-05-11 2001-11-16 Sony Corp 着信通知システム、着信監視装置、携帯通信端末、情報処理装置、メール取得指示方法、メール取得方法及びプログラム格納媒体
US6591310B1 (en) * 2000-05-11 2003-07-08 Lsi Logic Corporation Method of responding to I/O request and associated reply descriptor
US20020059384A1 (en) * 2000-07-13 2002-05-16 Koninklijke Philips Electronics N.V. Substituting URL for attachment in forwarding electronic content
US6867733B2 (en) * 2001-04-09 2005-03-15 At Road, Inc. Method and system for a plurality of mobile units to locate one another
US20020178087A1 (en) * 2001-05-25 2002-11-28 Henderson Greg S. Internet-based instant messaging hybrid peer-to-peer distributed electronic commerce system and method
US7856660B2 (en) * 2001-08-21 2010-12-21 Telecommunication Systems, Inc. System for efficiently handling cryptographic messages containing nonce values
US20030050834A1 (en) * 2001-09-07 2003-03-13 Sergio Caplan System and method for dynamic customizable interactive portal active during select computer time
US7107316B2 (en) * 2001-09-20 2006-09-12 International Business Machines Corporation Controlling throughput of message requests in a messaging system
US20040068429A1 (en) * 2001-10-02 2004-04-08 Macdonald Ian D Strategic organization plan development and information present system and method
US7068309B2 (en) * 2001-10-09 2006-06-27 Microsoft Corp. Image exchange with image annotation
JP2004005492A (ja) * 2002-04-26 2004-01-08 Casio Comput Co Ltd データ通信装置、データ通信システム、動画付き文書表示方法および動画付き文書表示プログラム
US7509377B2 (en) * 2002-06-26 2009-03-24 Yahoo! Inc. System and method for communicating images between intercommunicating users
US20040039781A1 (en) * 2002-08-16 2004-02-26 Lavallee David Anthony Peer-to-peer content sharing method and system
US20040041849A1 (en) * 2002-08-30 2004-03-04 Von Mock Display screen saver with two way messaging capability and method therefor
US20040098728A1 (en) * 2002-09-16 2004-05-20 Husain Syed Mohammad Amir System and method for multi-functional XML-capable software applications on a peer-to-peer network
US20060168006A1 (en) * 2003-03-24 2006-07-27 Mr. Marvin Shannon System and method for the classification of electronic communication
US7496630B2 (en) * 2003-05-06 2009-02-24 At&T Intellectual Property I, L.P. Adaptive notification delivery in a multi-device environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0694676A (ja) * 1992-09-10 1994-04-08 Olympus Optical Co Ltd 自動電気泳動装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
미국특허공보 제6094676호
미국특허공보 제6400810호

Also Published As

Publication number Publication date
CN100483385C (zh) 2009-04-29
US20040243682A1 (en) 2004-12-02
US7660864B2 (en) 2010-02-09
WO2004107125A3 (en) 2005-09-22
KR20060017820A (ko) 2006-02-27
EP1631880A2 (en) 2006-03-08
CN1823332A (zh) 2006-08-23
WO2004107125A2 (en) 2004-12-09

Similar Documents

Publication Publication Date Title
KR100758253B1 (ko) 사용자 통지 시스템 및 방법
US20040260701A1 (en) System and method for weblog and sharing in a peer-to-peer environment
US20040243580A1 (en) System and method for message handling in a peer-to-peer environment
US20040243672A1 (en) System and method for user interaction in a peer-to-peer environment
US20040243665A1 (en) System and method for services provision in a peer-to-peer environment
US7782866B1 (en) Virtual peer in a peer-to-peer network
US8554827B2 (en) Virtual peer for a content sharing system
US7251689B2 (en) Managing storage resources in decentralized networks
US7069318B2 (en) Content tracking in transient network communities
US7143139B2 (en) Broadcast tiers in decentralized networks
EP1397923B1 (en) Mobile instant messaging and presence service
US7664861B2 (en) Managed peer-to-peer file sharing
US8316128B2 (en) Methods and system for creating and managing identity oriented networked communication
US7177929B2 (en) Persisting node reputations in transient network communities
US7181536B2 (en) Interminable peer relationships in transient communities
KR100757976B1 (ko) P2p환경에서의 사용자 대화를 위한 시스템 및 방법
US20030145093A1 (en) System and method for peer-to-peer file exchange mechanism from multiple sources
US20050251557A1 (en) Push-type information delivery method, push-type information delivery system, information delivery apparatus and channel search apparatus based on presence service
JP2010527048A (ja) 携帯機器のためのリモート・データ・アクセス技術
EP1491026A1 (en) Dynamic addressing in transient networks
KR20070071384A (ko) 동등계층 통신을 이용한 인스턴트 메신저 서비스 방법
JP2010511222A (ja) P2pシステムにおけるピア管理サーバー及びピア管理方法
Hudson Walkabout: an asynchronous messaging architecture for mobile devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee