KR100768153B1 - System and method for user-initiated group messaging - Google Patents

System and method for user-initiated group messaging Download PDF

Info

Publication number
KR100768153B1
KR100768153B1 KR1020057009354A KR20057009354A KR100768153B1 KR 100768153 B1 KR100768153 B1 KR 100768153B1 KR 1020057009354 A KR1020057009354 A KR 1020057009354A KR 20057009354 A KR20057009354 A KR 20057009354A KR 100768153 B1 KR100768153 B1 KR 100768153B1
Authority
KR
South Korea
Prior art keywords
delete delete
multicast
session
address
messaging
Prior art date
Application number
KR1020057009354A
Other languages
Korean (ko)
Other versions
KR20050071707A (en
Inventor
토니 파일라
도미니크 뮬러
마르쿠 소이니오
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20050071707A publication Critical patent/KR20050071707A/en
Application granted granted Critical
Publication of KR100768153B1 publication Critical patent/KR100768153B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1818Conference organisation arrangements, e.g. handling schedules, setting up parameters needed by nodes to attend a conference, booking network resources, notifying involved parties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • 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/48Message addressing, e.g. address format or anonymous messages, aliases

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Marketing (AREA)
  • Multimedia (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

메시지들이 멀티캐스트를 통해 전달되고 사용자가 멀티캐스트 메시지들을 수신할 수 있는 당사자들에 대한 제어를 수행할 수 있는, 사용자로 하여금 멀티캐스트 그룹 메시징(MGM) 세션을 설정할 수 있게 하는 시스템 및 방법. 또 이 시스템 및 방법은 세션과 관련해 멀티캐스트하기 위한 메시지들의 발송 및, 세션과 관련해 멀티캐스트된 메시지들을 수신을 제공한다.A system and method for enabling a user to establish a multicast group messaging (MGM) session, wherein messages are delivered via multicast and the user can perform control over the parties that can receive the multicast messages. The system and method also provide for sending messages for multicasting in connection with a session and for receiving multicast messages for the session.

Description

사용자 추진형 그룹 메시징 시스템 및 방법{System and method for user-initiated group messaging}System and method for user-initiated group messaging}

본 발명은 데이터 배포 시스템 및 방법에 관한 것이다.The present invention relates to a data distribution system and method.

최근 들어, 메시징을 위한 유무선 네트웍의 이용이 증가하고 있다. 그러한 메시징에는, 가령, 이메일, SMS(Short Message Service, 단문 메시지 서비스), 및 MMS(Multimedia Messaging Service, 멀티미디어 메시징 서비스)가 포함된다. 텍스트 배포가 여전히 대중적인 메시징 방식이지만, 비디오, 오디오, 및 이미지와 같은 콘텐츠 타입들을 배포하는 식의 메시징 방식 역시 호감을 얻어가고 있다. 특히, MMS가 그러한 콘텐츠 타입을 배포하는 방법으로서 인기를 얻고 있다.Recently, the use of wired and wireless networks for messaging is increasing. Such messaging includes, for example, email, Short Message Service (SMS), and Multimedia Messaging Service (MMS). While text distribution is still a popular messaging method, messaging methods of distributing content types such as video, audio, and images are also gaining favor. In particular, MMS is gaining popularity as a way to distribute such content types.

이런 견지에서, 메시징에 적용할 수 있는 기술들에 대한 관심이 존재할 수 있다.In this regard, there may be interest in techniques applicable to messaging.

본 발명의 실시예들에 따르면, 사용자로 하여금 멀티캐스트 그룹 메시징(MGM) 세션을 설정할 수 있도록 하는 시스템 및 방법들이 제공되고, 여기서 메시지들은 멀티캐스트를 통해 전달되고 사용자는 멀티캐스팅된 메시지들을 이용할 수 있는 당사자들에 대한 제어를 수행할 수 있다.According to embodiments of the present invention, systems and methods are provided that enable a user to establish a multicast group messaging (MGM) session, wherein messages are delivered via multicast and the user can use multicasted messages. Control over existing parties.

상기 시스템과 방법은 상기 세션과 관련하여 멀티캐스트할 메시지들을 전송하고, 이 세션과 관련해 멀티캐스트된 메시지들을 수신하는 동작을 더 제공한다.The system and method further provide for sending messages to multicast with respect to the session and receiving multicast messages with respect to the session.

도 1은 본 발명의 실시예들에 따른 전형적 네트웍 구성을 보인다.1 shows an exemplary network configuration in accordance with embodiments of the present invention.

도 2는 본 발명의 여러 실시예들에 따른, 메시징 설정에 수반되는 단계들을 보인 흐름도이다.2 is a flow diagram illustrating the steps involved in establishing a messaging, in accordance with various embodiments of the present invention.

도 3은 본 발명의 여러 실시예들에 따른, 멀티캐스트 그룹 메시징(MGM) 세션 정보의 단말기 수신 및 전송에 수반되는 단계들을 보이는 흐름도이다.3 is a flow diagram illustrating the steps involved in terminal receipt and transmission of multicast group messaging (MGM) session information, in accordance with various embodiments of the present invention.

도 4는 본 발명의 여러 실시예들에 따른, 메시지 멀티캐스트에 수반되는 단계들을 보이는 흐름도이다.4 is a flow diagram illustrating the steps involved in message multicast, in accordance with various embodiments of the present invention.

도 5는 본 발명의 여러 실시예들에 따른, 메시지 수신에 수반되는 단계들을 보이는 흐름도이다.5 is a flow diagram illustrating the steps involved in receiving a message, in accordance with various embodiments of the present invention.

도 6은 본 발명의 여러 실시예들에서 이용될 수 있는, 전형적 범용 컴퓨터를 도시한 것이다.6 illustrates an exemplary general purpose computer that may be used in various embodiments of the present invention.

도 7은 본 발명의 여러 실시예들에서 이용될 수 있는 전형적 단말기의 기능 블록도를 도시한 것이다. 7 illustrates a functional block diagram of an exemplary terminal that may be used in various embodiments of the present invention.

일반 동작Normal behavior

본 발명의 실시예들에 따르면, 사용자는 멀티캐스트 그룹 메시징(MGM) 세션을 설정하고, 그 세션에서 메시지들은 멀티캐스트를 통해 전달되고 사용자는 그 멀 티캐스팅된 메시지들을 사용할 수 있는 당사자들에 대해 제어를 실행할 수 있다. 보다 상세히 말하면, 사용자는 자신의 단말기가 MGM 서버로 적절한 요청을 보내도록 만들어 MGM 세션 등을 설정할 수 있을 것이다. 그 요청에 대한 서버의 응답에는 MGM 세션과 함께 멀티캐스트된 메시지들을 해독하는데 사용될 수 있는 키가 포함될 수 있다. 그러면 사용자는 자신이 세션과 결부되어 멀티캐스트된 메시지들을 사용할 능력을 가지고 싶어하는 당사자들에게로 그 키 및/또는 부가 정보를 배포할 수 있다. 사용자는 그 키 및/또는 부가 정보를 전송 받은 집단들이 그 키 및/또는 부가 정보를 다른 곳으로 더 유포시킬 수 있는지 여부를 추가로 특정할 수 있다. According to embodiments of the present invention, a user establishes a multicast group messaging (MGM) session, in which messages are delivered via multicast and the user is able to use the multicasted messages for those parties. Control can be executed. More specifically, the user may set up an MGM session or the like by making his terminal send an appropriate request to the MGM server. The server's response to the request may include a key that can be used to decrypt the multicast messages with the MGM session. The user can then distribute the key and / or additional information to parties who wish to have the ability to use multicasted messages in conjunction with the session. The user may further specify whether the parties that have received the key and / or additional information can further distribute the key and / or additional information elsewhere.

도 1에 도시된 것은 본 발명의 실시예들에 의한 전형적 네트웍 구조로서, MGM 서버(101), 단말기들(103), 액세스 포인트(105), 및 멀티캐스트 포인트(107)가 포함된다. 위에서 설명하였고 이하에서 더 자세히 설명되는 것과 같이, 단말기(103)는 액세스 포인트(105)를 통해 MGM 서버(101)로부터 MGM 세션의 설정을 요청할 수 있다. 액세스 포인트(105)는, 가령, UMTS(Universal Mobile Telecommunications Service), GPRS(General Packet Radio Service), 또는 인터넷 액세스 포인트일 수 있다.Shown in FIG. 1 is an exemplary network structure in accordance with embodiments of the present invention, including an MGM server 101, terminals 103, an access point 105, and a multicast point 107. As described above and described in more detail below, terminal 103 may request the establishment of an MGM session from MGM server 101 via access point 105. The access point 105 may be, for example, a universal mobile telecommunications service (UMTS), a general packet radio service (GPRS), or an internet access point.

요청한 단말기(103)는 액세스 포인트(105)를 통해 MGM 서버(101)로부터 키 및/또는 부가 정보를 수신할 수 있다. 그리고 나서 요청한 단말기는 그 키 및/또는 부가 정보를 하나 이상의 단말기들(103)로 배달한다. 멀티캐스트될 메시지들은 단말기(103)에 의해 액세스 포인트(105)를 통해 MGM 서버(101)로 전송되고, MGM 서버에 의해 암호화되고, 그리고 나서 적합한 단말기들(103)에 의해 사용되기 위해 멀티캐스트 포인트(107)를 거쳐 멀티캐스트된다. 멀티캐스트 포인트(107)는, 가령, DVB-T(Digital Video Broadcast-Terrestrial), DVB-D(Digital Video Broadcast-Satellite), 또는 DAB(Digital Audio Broadcast) 멀티캐스트 포인트와 같은 단방향 멀티캐스트 포인트일 수 있다. 여러 실시예들에서, 멀티캐스트 포인트는 단방향 멀티캐스트 포인트 대신 UMTS와 같은 양방향 기술을 이용할 수도 있다.The requesting terminal 103 may receive a key and / or additional information from the MGM server 101 via the access point 105. The requesting terminal then delivers the key and / or additional information to one or more terminals 103. The messages to be multicast are sent by the terminal 103 via the access point 105 to the MGM server 101, encrypted by the MGM server, and then used by the appropriate terminals 103. Multicast via 107. The multicast point 107 may be, for example, a unidirectional multicast point such as Digital Video Broadcast-Terrestrial (DVB-T), Digital Video Broadcast-Satellite (DVB-D), or Digital Audio Broadcast (DAB) multicast point. have. In various embodiments, the multicast point may use a bidirectional technique such as UMTS instead of a unidirectional multicast point.

본 발명의 여러 실시예들에는, 전형적으로 도 1에 도시된 각각에 대해 더 많거나 더 적은 구성 요소들(101-107)이 있을 수 있음을 주지해야 한다. 예를 들어, 각 구성요소들(101-107)이 복수개일 수 있다.It should be noted that in various embodiments of the present invention, there may typically be more or fewer components 101-107 for each shown in FIG. 1. For example, each of the components 101-107 may be plural.

본 발명의 여러 양상들이 지금부터 보다 상세히 설명될 것이다.Various aspects of the invention will now be described in more detail.

메시징Messaging 설정 요청 Request setting

MGM 세션을 시작하고 싶어하는 사용자는, 자신의 단말을 사용해 MGM 서버 등으로부터 그러한 세션 시작을 요청할 수 있다. 이 요청에는 그 MGM 세션에 요망되는 시작 및 종료 시간 등에 대한 소정 사양, 멀티캐스팅된 메시지들이 수신될 수 있어야 하는 영역에 대한 사양, 어떤 타입의 암호화가 메시지 멀티캐스트에 사용되어야 하는지에 대한 사양 또는 제안, 및/또는 멀티캐스트할 메시지들을 제출하기 위해 설정되어야 하는 메시징 어드레스의 제안 또는 사양이 포함된다. 본 발명의 여러 실시예들에 따르면, 사용자가 적절한 서버로 상기 요청을 할 수 있는 수많은 방식들이 존재한다.A user who wants to start an MGM session can use his terminal to request such session start from an MGM server or the like. This request includes a specification of the desired start and end times for the MGM session, a specification of the area in which multicasted messages should be received, and a specification or proposal of what type of encryption should be used for message multicast. , And / or a proposal or specification of a messaging address that must be set in order to submit messages for multicast. According to various embodiments of the present invention, there are a number of ways in which the user can make the request to the appropriate server.

어떤 실시예들에 따르면, 사용자는 수동으로 메시지를 생성하고 적합한 이메 일, SMS(Short Message Service), MMS(Multimedia Messaging Service), 또는 다른 메시징 어드레스로 전송함으로써 상기 요청을 보낼 수 있다. 예를 들어, 상기 요청이 "MGMsetup@messaging. serviceprovider.com"으로 향하는 SMS 메시지로서 보내지는 식으로 설정될 수 있다.According to some embodiments, a user may send the request by manually creating a message and sending it to a suitable email, Short Message Service (SMS), Multimedia Messaging Service (MMS), or other messaging address. For example, the request may be set such that the request is sent as an SMS message directed to "MGMsetup@messaging.serviceprovider.com".

이러한 요청은 소정 형식으로 될 것이 요구될 수 있다. 예를 들면, 요청 메시지가, 수많은 허용가능한 속성(attribute) 키워드들과 허용가능한 해당 값(value)들 또는 값들의 범위들이 존재하는 "attribute:value"의 형식으로 된 하나 이상의 라인들을 포함할 것이 요구될 수 있다. 가령, 한 속성은 "StartTime(시작시간)"이 될 수 있다. 그 해당 값은 "dd.mm.yyyy;hh:nn;zzz"의 형태로 되게 특정될 수 있고, 이때 "dd"는 월의 일(day-of-month)의 표준 2 디지트 표시에 해당하고, "mm"은 월의 표준 2 디지트 표시에 해당하고, "yyyy"는 년도에 대한 표준 4 디지트 표시에 해당하고, "hh"는 시간의 표준 2 디지트 표시에 해당하며, "nn"은 분의 표준 2 디지트 표시"에 해당하고, "zzz"는 타임 존의 표준 3 문자 표시에 해당한다.Such a request may be required to be in some form. For example, a request message may contain one or more lines in the form of "attribute: value" where there are a number of allowable attribute keywords and corresponding allowable values or ranges of values. Can be. For example, one attribute may be "StartTime". The corresponding value may be specified in the form of "dd.mm.yyyy; hh: nn; zzz", where "dd" corresponds to the standard two-digit representation of the day-of-month, "mm" corresponds to the standard 2 digit representation of the month, "yyyy" corresponds to the standard 4 digit representation of the year, "hh" corresponds to the standard 2 digit representation of the hour, and "nn" corresponds to the standard of minutes. 2 digit display ", and" zzz "corresponds to the standard three-character display of the time zone.

따라서, 유럽 중심 시간으로 2005년 10월 23일 1:36pm에 시작하는 MGM을 요청하고 싶어하는 사용자는 자신의 요청 메시지 안에 "10.23.2005;13:36;ECT" 라인을 포함할 수 있다. 지역 또는 세션 종료 타임과 같이, 상술한 종류의 다른 사양들에 대해서도 유사한 속성들과 해당 값들이 설정될 수 있을 것이다.Thus, a user who wishes to request an MGM starting at 1:36 pm on October 23, 2005, in European central time may include the line "10.23.2005; 13: 36; ECT" in his request message. Similar properties and corresponding values may be set for other features of the above kind, such as local or session end time.

이러한 수동적 요청은 택일적으로, 혹은 부가적으로 자유로운 형식 및/또는 자연어(natural language) 형식으로 됨이 허용된다. 이 경우, 사용자는 소정 정보 요소들(가령, MGM 세션 시작 시간)을 나타내도록 요청되지만, 자신의 프레젠테이션(표현) 형식을 선택할 수 있다. 따라서, 요청서에 "나는 오늘 오후 12:23에 시작하고 싶다"라고 한 삽입사항이, 시작 시간에 대한 허용 가능한 사양이 될 수 있다.Such passive requests are alternatively or additionally allowed to be in free and / or natural language form. In this case, the user is asked to indicate certain information elements (eg, MGM session start time), but can select his presentation (presentation) format. Thus, an insert in the request that says "I want to start today at 12:23 pm" could be an acceptable specification for the start time.

MGM 세션 요청의 수동 제공에 더하여, 본 발명의 실시예들은, 부가적으로 혹은 택일적으로 사용자로 하여금 인터페이스를 통한 세션 요청을 제시할 수 있게 허용할 수 있다. 인터페이스를 통해 제시가 이뤄지는 경우, 사용자 단말기 상에서 작동하는 하나 이상의 프레젠테이션 프로그램 모듈들이, 사용자가 자신의 MGM 요청에 관해 필요로 되는 정보를 제시하는데 사용할 수 있는 그래픽 사용자 인터페이스(GUI) 등을 제공할 수 있을 것이다.In addition to the manual provision of the MGM session request, embodiments of the present invention may additionally or alternatively allow a user to present a session request via an interface. When presented through an interface, one or more presentation program modules running on the user terminal may provide a graphical user interface (GUI) or the like that the user can use to present the necessary information about his or her MGM request. will be.

예를 들어, 하나 이상의 프레젠테이션 모듈들은 사용자가 시작 시간, 종료 시간, 멀티캐스트되는 메시지들이 수신될 수 있는 영역들 등과 같은 것을 선택할 수 있게 하는 GUI를 제공할 수 있다. GUI는 부가적으로 사용자에게 요청이 보내질 MGM 서버, MGM 서버들 등을 선택 및/또는 특정하도록 할 수 있다. 사용자에게, 한 개 이상의 수신 MGM 서버들 등을 선택하도록 하는 리스트가 제공되는 경우, 이 리스트는, 가령 단말기 상에서 작동하는 하나 이상의 서버 찾기 프로그램으로 하여금 그 정보의 제공자를 액세스하게 함으로써 생겨날 수 있다. 제공자를 액세스할 때, 모듈들은 SOAP(Simple Object Access Protocol), JMS(Java Messaging Service), RMI(Remote Method Invocation) 등등을 사용할 것이다.For example, one or more presentation modules may provide a GUI that allows the user to select things such as start time, end time, areas where multicast messages can be received, and the like. The GUI may additionally allow the user to select and / or specify the MGM server, MGM servers, etc. to which the request will be sent. If a user is provided with a list to select one or more receiving MGM servers or the like, this list can be generated, for example, by having one or more server finder programs running on the terminal access the provider of that information. When accessing a provider, modules will use Simple Object Access Protocol (SOAP), Java Messaging Service (JMS), Remote Method Invocation (RMI), and so on.

사용자로부터 인터페이스를 통해 MGM 요청문 안에 놓는데 꼭 필요한 정보가 모아졌을 때, 단말기 상에서 작동하는 하나 이상의 요청 전송 프로그램 모듈들은 그 요청을 하나 이상의 적절한 MGM 서버들 등으로 보낼 수 있다. 이것은 수 많은 방식으로 수행될 수 있다. 예를 들어, 하나 이상의 요청 전송 프로그램 모듈들은 사용자로부터 모든 정보를 텍스트 메시지로 인코딩하고, 알맞은 서버로 향하는 이메일, SMS, MMS 등을 통해 그 메시지를 전송한다. 인코딩은 가령 XML(eXtensible Markup Language, 확장형 마크업 언어)을 이용할 수 있다. 예를 들어, 사용자가 수동으로 MGM 요청 정보를 SMS 메시지 등에 넣어 전송할 수 있는 상술한 기능을 제공하는 실시예들에서, 하나 이상의 프로그램 모듈들은 임의의 지정 포맷을 따라 메시지를 인코딩할 수 있다. 이렇게 지정된 포맷은 이를테면 상술한 "attribute:value" 포맷을 이용할 수 있다.When information is gathered from the user that is necessary to place in an MGM request via an interface, one or more request sending program modules running on the terminal can send the request to one or more appropriate MGM servers, and so forth. This can be done in a number of ways. For example, one or more request sending program modules encode all information from a user into a text message and send the message via email, SMS, MMS, etc., to the appropriate server. The encoding may use, for example, XML (eXtensible Markup Language). For example, in embodiments that provide the user with the ability to manually send MGM request information in an SMS message or the like, one or more program modules may encode the message according to any specified format. This designated format may use, for example, the "attribute: value" format described above.

다른 예로서, 하나 이상의 요청 전송 프로그램 모듈들은 사용자로부터 모은 정보를 SOAP, JMS, RMI 등등을 통해 알맞은 MGM 서버 등으로 전송할 수 있다.As another example, one or more request sending program modules may send information gathered from the user to a suitable MGM server, etc. via SOAP, JMS, RMI, and the like.

메시징Messaging 셋업set up

도 2에 도시된 바와 같이, MGM 서버 등은 위에서 설명한 것처럼 단말기로부터 여러 사양을 포함하는 MGM 세션 요청을 수신한다(201 단계).As shown in FIG. 2, the MGM server or the like receives an MGM session request including various specifications from the terminal as described above (step 201).

세션 요청이 서버와 결부된 특정 메시징 어드레스로 향하는 SMS 메시지, MMS 메시지, 이메일 메시지 등등을 통해 수신되는 경우, 서버에서 실행되는 하나 이상의 요청 수신 프로그램 모듈들은 그 메시지로부터 그 안에 포함된 사양들을 추출하도록 동작한다(203 단계).When a session request is received via an SMS message, an MMS message, an email message, etc., directed to a particular messaging address associated with the server, one or more request receiving program modules running on the server are operative to extract the features contained therein. (Step 203).

그 사양들이 어떤 지정 포맷을 통해 메시지로 인코딩될 때, 하나 이상의 요청 수신 모듈들은 그 포맷에 맞춰 사양들을 추출하도록 동작할 수 있다. 예를 들 어, 사양들이 상술한 "attribute:value" 포맷으로 된 경우, 하나 이상의 모듈들은 들어오는 메시지들에서 정의된 속성들을 검색하고 해당 값들을 관찰할 수 있다. 하나 이상의 필요 정보 요소들, 또는 그 일부가 요청에서 누락된 경우, 에러 메시지가 그 세션 요청을 보내는데 사용된 것과 아마도 동일한 전송 방법(가령, SMS)을 통해 그 제공 사용자 및/또는 단말기로 리턴된다.When the specifications are encoded into a message via a certain format, one or more request receiving modules may be operative to extract the specifications in accordance with that format. For example, if the specifications are in the "attribute: value" format described above, one or more modules may retrieve the attributes defined in the incoming messages and observe their values. If one or more required information elements, or portions thereof, are missing from the request, an error message is returned to its providing user and / or terminal via a transmission method (e.g., SMS), perhaps the same as that used to send the session request.

또는, 요청 수신 모듈들이 누락된 데이터를 추정하려는 시도를 할 수도 있다. 예를 들어, 시작 시간이 시간과 분으로 표현되었지만 데이터나 타임 존을 지시하지 않았을 때, 모듈들은 타임 존이 사용자의 로컬 타임 존이라고 하는 추정을 할 수 있을 것이다. 또, 지시된 시간이 아직 그 날이 되지 않은 경우, 모듈들은 특정되지 않은 날짜가 그 날이라는 추측을 할 수 있을 것이다. 한편, 지시된 시간이 이미 그 날을 지난 경우, 날짜는 다음 날이라고 전제될 수 있다. 모듈들에 의해 어떤 추측이나 만족할만한 가정이 이뤄질 수 없는 누락 정보의 경우, 또는 모듈들이 그러한 추측 기능을 수행하지 않는 실시예들에서, 요청한 사용자 및/또는 단말기로 상술한 것과 같은 방식으로 에러 메시지가 리턴될 수 있다.Or, the request receiving modules may attempt to estimate the missing data. For example, when the start time is expressed in hours and minutes but does not indicate data or time zones, modules may assume that the time zone is the user's local time zone. In addition, if the indicated time has not yet reached that day, the modules may assume that an unspecified date is that day. On the other hand, if the indicated time has already passed that day, the date may be assumed to be the next day. In the case of missing information for which no guesses or satisfactory assumptions can be made by the modules, or in embodiments in which the modules do not perform such speculative functions, an error message is generated in the same manner as described above with the requesting user and / or terminal. Can be returned.

사양들이 자유 형식 및/또는 체계적이지 않은 방식으로 사용자에 의해 입력될 때, 하나 이상의 요청 수신 모듈들은 메시지에 포함된 사양들을 추출하기 위해 이 분야에 알려진 자연어 해석 및/또는 파싱(parsing) 기술들을 이용할 수 있다. 그 요청의 자유 형식이라는 특성으로 인해, 사용자는 의도적이든 의도적으로나 비의도적으로 어떤 정보를 생략할 수 있다. 예를 들어, 사용자 지정 시작 및 종료 시간은, 날짜, 년, 타임 존 등을 이들이 내재되어 있거나 알 수 있다는 믿음 하에 생략할 수 있다. 어떤 실시예들에서, 요청 처리 모듈들은 상술한 것과 같이 누락한 데이터를 추측하려는 시도를 할 수 있다. 어떤 추측이나 만족할만한 추정이 모듈들에 의해 이뤄질 수 없는 누락 정보의 경우, 또는 모듈들이 그러한 추측 기능을 수행하지 않는 실시예들에서, 상술한 것과 같은 방식으로 에러 메시지가 요청 사용자 및/또는 단말기로 리턴될 수 있다.When features are entered by the user in a free form and / or unstructured manner, one or more request receiving modules may use natural language interpretation and / or parsing techniques known in the art to extract the features contained in the message. Can be. Due to the nature of the free form of the request, the user can omit any information intentionally, intentionally or unintentionally. For example, user-specified start and end times may be omitted in the belief that they may be embedded or know the date, year, time zone, and the like. In some embodiments, request processing modules may attempt to guess missing data as described above. In the case of missing information for which no guess or satisfactory estimate can be made by the modules, or in embodiments where the modules do not perform such a guessing function, an error message is sent to the requesting user and / or terminal in the same manner as described above. Can be returned.

정보 요소들이 단말기 상에서 실행되는 모듈들에 의해 SOAP, JMS 등을 통해 서버로 보내진 경우, 단말기 상에서 실행되는 요청 수신 모듈들은 상술한 파싱이나 그와 유사한 종류들을 실행할 필요 없이, 그 보내진 요소들을 직접 수신할 수 있다.When information elements are sent to the server via SOAP, JMS, etc. by modules running on the terminal, request receiving modules running on the terminal may receive the sent elements directly, without having to perform the parsing or the like described above. Can be.

일단 위에서 서술된 방식들 중 하나를 통해 MGM 세션 요청 사양들을 입수하였으면, 요청 수신 모듈들은 그 사양들을 관련 저장부에 위치시킬 수 있다(205 단계). 또 여기 위치될 수 있는 것이 그 요청을 제공한 사용자 및/또는 단말기에 대한 표시이다. 이 표시는, 가령, 사용자의 MMS 어드레스일 수 있다. 이러한 것은, 가령, 세션 요청 메시지의 경우 헤더들을 검사하거나, SOAP, JMS, RMI 또는 그와 유사한 통신을 분석함으로써 판단될 수 있다. 저장부에 위치되는 항목들은 그리고 나서 MGM 서버 등에서 실행되는 하나 이상의 요청 처리 모듈들에 의해 처리될 수 있다.Once the MGM session request specifications have been obtained through one of the schemes described above, the request receiving modules can place them in the associated storage (step 205). Also located here is an indication of the user and / or terminal that provided the request. This indication may be, for example, the MMS address of the user. This may be determined, for example, by examining headers in the case of a session request message, or by analyzing SOAP, JMS, RMI or similar communications. Items located in storage may then be processed by one or more request processing modules running on an MGM server or the like.

첫 번째 단계로서, 하나 이상의 요청 처리 모듈은 멀티캐스트 그룹 메시징에 사용될 멀티캐스트 IP(Internet Protocol) 어드레스와 같은 멀티캐스트 어드레스를 결정하도록 동작한다(207 단계). 멀티캐스트 어드레스는, 가령, 이용가능한 멀티 캐스트 어드레스들의 풀(pool)로부터 선택될 수 있으며, 아마도 그 어드레스는 일단 요청된 MGM 세션이 완료되었으면 풀로 다시 리턴되리라는 의도를 가지고 선택된다. 하나 이상의 요청 처리 모듈들은 풀로부터 선택을 행할 때 하나 이상의 수신된 사양들을 고려할 것이다. 예를 들어, 시작 시간, 종료 시간, 및/또는 영역이 고려될 수 있다. 멀티캐스트 어드레스를 선택한 다음, 하나 이상의 요청 처리 모듈들이 이용가능한 어드레스들의 풀로부터 그 어드레스를 제거할 수 있다.As a first step, one or more request processing modules operate to determine a multicast address, such as a multicast Internet Protocol (IP) address to be used for multicast group messaging (step 207). The multicast address may, for example, be selected from a pool of available multicast addresses, possibly with the intention that the address will be returned back to the pool once the requested MGM session has completed. One or more request processing modules will consider one or more received features when making a selection from the pool. For example, start time, end time, and / or area may be considered. After selecting a multicast address, one or more request processing modules may remove that address from the pool of available addresses.

다음 단계로서, 하나 이상의 요청 처리 모듈들이 멀티캐스트될 메시지들을 수신하기 위해, 이메일 어드레스, SMS 어드레스, MMS 어드레스 등과 같은 메시징 어드레스를 설정할 수 있다(209 단계). 하나 이상의 요청 처리 모듈들은 이용 가능한 어드레스들의 풀로부터 그 메시징 어드레스를 선택할 것이다. 수신된 사양들이 메시징 어드레스에 대한 사용자의 제안을 포함하는 경우, 모듈들은 풀로부터 메시징 어드레스를 선택시 이를 고려할 것이다. 이를테면, 메시징 어드레스가 "게임하며 채팅"이라는 문구를 포함하게 하자는 제안이 있었을 때, 모듈들은 그 문구나 그 문구에 밀접하게 부합되는 문구를 포함하는 어떤 이용 가능 메시징 어드레스를 찾을 수 있다.As a next step, one or more request processing modules may set a messaging address, such as an email address, an SMS address, an MMS address, etc. to receive the messages to be multicast (step 209). One or more request processing modules will select the messaging address from the pool of available addresses. If the received specifications include a user's suggestion for a messaging address, the modules will consider this when selecting a messaging address from the pool. For example, when a proposal was made for a messaging address to include the phrase "game and chat", modules could find any available messaging address that includes the phrase or a phrase that closely matches the phrase.

풀로부터 메시징 어드레스를 선택하는 대신, 하나 이상의 요청 처리 모듈들이 메시징 어드레스를 새롭게 설정할 수도 있다. 수신된 정보 요소들이 메시징 어드레스에 대한 사용자의 제안 및/또는 사양을 특정하는 경우, 새롭게 설정된 메시징 어드레스는 그 사양 및/또는 제안에 맞춰질 수 있다. 새 메시징 어드레스를 설정할 때, 하나 이상의 요청 처리 모듈들은 메시징 어드레스로 향하는 메시지들이 MGM 서버에 의해 수신되도록 조처하고/거나 통합 및/또는 별도의 SMS 서버 상에 알맞은 메시징 계정이 설정되게 한다. 하나 이상의 요청 처리 모듈들은 또한 MGM 세션의 중단시 적절한 MMS 서버 등으로부터 그 계정이 제거되도록 조처할 수도 있다.Instead of selecting a messaging address from the pool, one or more request processing modules may set a new messaging address. If the received information elements specify a user's suggestion and / or specification for a messaging address, the newly established messaging address may be tailored to that specification and / or suggestion. When setting up a new messaging address, one or more request processing modules may arrange for messages destined for the messaging address to be received by the MGM server and / or allow the appropriate messaging account to be set up on an integrated and / or separate SMS server. One or more request processing modules may also act to remove the account from the appropriate MMS server or the like upon interruption of the MGM session.

다음 단계로서, 하나 이상의 요청 처리 모듈들은 관련 저장부에서 멀티캐스팅 어드레스와 메시징 어드레스 사이의 상관관계를 특정할 수 있다(211 단계). 그 다음, 하나 이상의 요청 처리 모듈들은 MGM 세션 내 멀티캐스트들을 위한 스케줄을 정할 수 있다(213 단계). 예를 들어, 멀티캐스트는 한 시간 안에 5분 마다 발생되도록 정해질 수 있다(가령, 5:05pm, 5:10pm, 5:15pm, 등등). 이러한 스케줄은, 단말들이 스케줄링된 시간 도중에 들어오는 전송사항만을 모니터해야 할 것이므로, MGM 세션에 따라 멀티캐스트들을 수신하고자 하는 단말들에서 에너지가 보존될 수 있게 하려는 의도를 가지고 정해져야 할 것이다.As a next step, one or more request processing modules may specify a correlation between the multicasting address and the messaging address in the associated storage (step 211). Next, one or more request processing modules may schedule (step 213) for multicasts in the MGM session. For example, a multicast can be scheduled to occur every 5 minutes within an hour (eg 5:05 pm, 5:10 pm, 5:15 pm, etc.). This schedule should be determined with the intention of allowing energy to be conserved at the terminals which wish to receive multicasts according to the MGM session, since the terminals will only have to monitor incoming transmissions during the scheduled time.

스케줄 결정은 가령 MGM 세션 동안 특정된 지역 또는 지역들 내에서 일반적인 단말기들의 에너지 사용 특성을 고려할 수 있다. 이러한 특성은, 여러 지역들 안에서 특정 단말기 모델들의 보급을 나타내는 서비스 제공자 기록들을 참작하고 이들 단말기 모델들에 대한 제조자 기술 사양들을 더 참작함으로써 알 수 있다.The schedule decision may take into account the energy usage characteristics of the generic terminals, for example within the region or regions specified during the MGM session. This characteristic can be seen by taking into account service provider records indicating the dissemination of specific terminal models in various regions and by further considering manufacturer technical specifications for these terminal models.

다음으로, 하나 이상의 요청 처리 모듈들이 MGM 세션 중에 메시지 멀티캐스트를 해독할 때 사용될 키를 선택 또는 생성할 수 있다(215 단계). 모듈들은 또한 이용할 암호화 방법 역시 선택할 수 있다. 아니면, 하나의 암호화 방법이 항상 사용될 수도 있다. 키의 선택 및/또는 생성, 및/또는 암호화 방법의 선택은 여러 요인드을 참작할 것이다. 이들 요인들 가운데에는 수신한 사양들에 포함된 제안된 암호화 방법이 있을 수 있다.Next, one or more request processing modules may select or generate a key to be used when decrypting the message multicast during the MGM session (step 215). Modules can also choose which encryption method to use. Otherwise, one encryption method may always be used. Selection and / or generation of keys, and / or selection of encryption methods will take into account several factors. Among these factors may be the proposed encryption method included in the received specifications.

다음 단계로서, MGM 세션 동안의 메시징 어드레스, 멀티캐스팅 어드레스, 스케줄, 키, 알고리즘 등등과 관련한 세션 정보가 모듈들에 의해 서버와 관련된 저장부에 놓여지고/거나 그 MGM 세션을 요청한 사용자 및/또는 사용자 단말기로 전송될 수 있다(217 단계). 본 발명의 여러 실시예들에서, 모듈들은 이 세션 정보을 MGM 세션을 요청한 사용자 및/또는 사용자 단말기가 아닌 개체들로는 전송하지 않을 것이다.As a next step, session information relating to messaging addresses, multicasting addresses, schedules, keys, algorithms, etc., during the MGM session is placed by the modules into storage associated with the server and / or the user requesting the MGM session and / or the user. It may be transmitted to the terminal (step 217). In various embodiments of the present invention, the modules will not send this session information to entities requesting MGM sessions and / or entities other than user terminals.

전송은 수많은 방법으로 이뤄질 수 있다. 예를 들어, 정보가 MGM 세션 요청을 보낸 사용자 및/또는 사용자 단말기에서 직접 읽혀지기 위해 그들로 향하는 MMS 메시지, SMS 메시지, 이메일 메시지 등등에 놓일 수 있다. 다른 예로서, 정보가 XML 등을 이용해 부호화되어, 사용자나 사용자 단말로 보내지는 MMS 메시지 등에 놓일 수 있다. 또 다른 예로서, 정보가 SOAP, JMS, RMI 등등을 통해 사용자 단말에서 작동하는 하나 이상의 소프트웨어 모듈들로 전송될 수 있다.Transmission can be done in a number of ways. For example, information may be placed in MMS messages, SMS messages, email messages, and so forth directed to be read directly at the user and / or user terminal that sent the MGM session request. As another example, the information may be encoded using XML or the like and placed in an MMS message or the like sent to the user or user terminal. As another example, information may be sent to one or more software modules running on a user terminal via SOAP, JMS, RMI, and the like.

MGMMGM 세션 정보의 단말기 수신 및 전송 Terminal reception and transmission of session information

MGM 세션 요청을 보낸 단말기가 MGM 서버로부터 그 세션과 관련된 정보를 수신한 후, 하나 이상의 동작들이 일어날 수 있다. 이를테면 도 3에 도시된 바와 같이, 사용자가 직접 읽을 수 있도록 그 단말 사용자에게 보내지는, 세션 정보를 포함한 MMS 메시지, 이메일 메시지 등등이 통상적인 방식으로, 단말기 상에서 실행되는 메시지 뷰어(viewer) 프로그램 모듈들에 의해 복구될 수 있다(301 단계). 사용자는 하나 이상의 모듈들을 이용해 그 메시지를 읽고 그 안에 포함된 세션 정보를 알 수 있다. 사용자는, 필요하다면, 그 알게 된 정보를 단말기에서 실행되는 적절한 프로그램 모듈 등으로 제공할 수 있다(303 단계).After the terminal sending the MGM session request receives information related to the session from the MGM server, one or more operations may occur. For example, as shown in FIG. 3, message viewer program modules executed on a terminal in a conventional manner are MMS messages, session messages, etc., including session information, sent to the terminal user for direct reading by the user. It can be recovered by (step 301). The user can use one or more modules to read the message and know the session information contained therein. If necessary, the user can provide the learned information to an appropriate program module or the like executed in the terminal (step 303).

사용자가 메시지를 보고/거나 그 안에 포함된 세션 정보를 알게 되는데 더하여, 또는 그 대신에, 단말기 상에서 작동하는 하나 이상의 MGM 세션 정보 추출 프로그램 모듈들이 그 세션 정보를 메시지로부터 추출하도록 동작할 수 있다. 이 모듈들은 이하에서 더 상세히 설명되는 것과 같이 그 정보를 기록하고, 그것을 단말기 상에서 작동하는 하나 이상의 적절한 프로그램 모듈 등으로 보낸다. 프로그램 모듈들은 MGM 서버들이 사용자에 의해 바로 읽혀지도록 세션 정보를 인코딩하는데 사용한 포맷 또는 포맷들을 알 수 있고, 이 지식을 그 메시지로부터 세션 정보를 추출하는데 사용할 수 있다. 이와 달리, 모듈들은 이 기술 분야에 알려져 있는 자연어 파싱 기술 등을 이용해 메시지에서 세션 정보를 파싱할 수도 있다.In addition to or in lieu of the user viewing the message and / or knowing the session information contained therein, one or more MGM session information extraction program modules operating on the terminal may be operable to extract the session information from the message. These modules record the information as described in more detail below, and send it to one or more appropriate program modules or the like running on the terminal. The program modules may know the format or formats that the MGM servers used to encode the session information to be read directly by the user and use this knowledge to extract session information from the message. Alternatively, modules may parse session information in messages using natural language parsing techniques known in the art.

사용자들에 의해 바로 읽혀지도록 그다지 특수하지 않게 인코딩된 MGM 세션 정보를 포함하고 있는 수신된 MMS 메시지, 이메일 메시지 등을 처리하기 위해, 세션 정보 추출 모듈들은 상술한 것과 유사한 방식으로 동작할 수 있다. 그 메시지는, 가령, XML을 이용하는 방식으로 인코딩된 세션 정보를 포함하는 것일 수 있다. 앞에서와 같이, 모듈들은 MGM 서버들이 세션 정보를 인코딩하는데 사용한 포맷이나 포맷들을 알 수 있고, 이 지식을 그 세션 정보를 추출하는데 이용할 수 있다. MGM 세션 정보를 기록 및/또는 전달하는데 더하여, 또는 그 대신, 모듈들이 어쩌면 GUI 대화 박스를 통해, 사용자에게 세션 정보가 디스플레이되게 할 수도 있다. 사용자는 정보를 주지하고/거나 그 정보를 단말기에서 실행되는 알맞은 프로그램 모듈 등 으로 제공할 수 있다.Session information extraction modules may operate in a manner similar to that described above, to process received MMS messages, email messages, and the like that contain MGM session information that is not very specially encoded to be read directly by users. The message may, for example, include session information encoded in a manner using XML. As before, modules can know the format or formats that MGM servers used to encode session information and can use this knowledge to extract that session information. In addition to recording and / or conveying MGM session information, or instead, modules may cause session information to be displayed to the user, perhaps via a GUI dialog box. The user may know the information and / or provide the information to a suitable program module or the like running on the terminal.

MGM 서버가 MGM 세션 정보를 SOAP, JMS, RMI 등에 의해 단말기로 보내는 경우, 세션 정보 추출 모듈들이 그 정보를 수신할 수 있다. 상술한 것과 대응되는 방식에 따라, 이 모듈들은 그 정보를 기록하고/거나 그것을 단말기에서 작동하는 하나 이상의 알맞은 프로그램 모듈 등으로 보내도록 동작할 수 있다. 이와 달리, 또는 이에 부가하여, 모듈들이 그 정보를 사용자에게 디스플레이되게 할 수 있다.When the MGM server sends the MGM session information to the terminal by SOAP, JMS, RMI, etc., the session information extraction modules may receive the information. In a manner corresponding to that described above, these modules may be operable to record the information and / or send it to one or more suitable program modules or the like running on the terminal. Alternatively, or in addition, the modules may cause the information to be displayed to the user.

요청한 단말에서 MGM 세션 정보를 수신한 후, 그 세션 정보를 하나 이상의 부가적 단말기들로 전달하는 동작들이 일어날 수 있음을 주지해야 한다. 그 전달은 수많은 방식으로 수행될 수 있다. 예를 들어, 사용자가 바로 보기를 위해 제시된 세션 정보를 포함하는 MMS 메시지, 이메일 메시지 등을 수신한 경우, 사용자는 단말기 상에서 실행되는 메시지 전송 프로그램 모듈 등을 이용하여, 그 메시지를 다른 사용자들 및/또는 단말기들로 전달할 수 있다(309 단계).It should be noted that after receiving the MGM session information at the requesting terminal, operations for transferring the session information to one or more additional terminals may occur. The delivery can be performed in a number of ways. For example, when a user receives an MMS message, an email message, or the like including session information presented for immediate viewing, the user may use the message transmission program module or the like running on the terminal to send the message to other users and / or Or, it can be delivered to the terminal (step 309).

사용자는 GUI, 음성 제어 등등을 통해 모듈들과 상호 동작할 수 있다. 세션 정보가 GUI 대화 박스 등을 통해 사용자에게 표시되는 경우, 이 대화 박스 등은 특정 사용자 및/또는 단말기로의 정보 전달 수행의 선택을 제공할 수 있다. 소정 실시예들에서, 메시지 전송 모듈들은 전달된 메시지의 수신자가 그 메시지를 다시 전달할 수 있는지의 없는지의 여부에 대한 사양을 가능하게 하도록 구성될 수 있다(305 단계). 사용자는 가령 GUI를 통해 이 옵션을 설정할 수 있다. GUI는 전달을 선택하는데 사용될 수 있는 것과 같은 것일 수 있다. 추가 전달이 허용되면 안된다고 정해진 경우, 모듈들은 전송되는 메시지에 그와 같은 지시를 부가할 수 있다 (307 단계). 그러한 실시예들에서, 단말기 상에서 실행되는 프로그램 모듈들은 이러한 지시를 중시하도록 구성되어, 사용자가 그러한 지시를 포함한 메시지를 전달하는 것을 허용하지 않게 할 수 있다.The user can interact with the modules via a GUI, voice control and the like. When session information is displayed to a user via a GUI dialog box or the like, this dialog box or the like may provide a choice of performing information delivery to a specific user and / or terminal. In certain embodiments, the message transfer modules may be configured to enable specification of whether or not the recipient of the delivered message can deliver the message again (step 305). The user can set this option, for example via the GUI. The GUI may be such as can be used to select a delivery. If it is determined that further delivery should not be allowed, the modules may add such an indication to the transmitted message (step 307). In such embodiments, program modules running on the terminal may be configured to value such instructions, not allowing the user to convey a message containing such instructions.

이와 마찬가지 방식으로, 여러 실시예들에서 사용자가 XML 등을 이용해 포맷된 세션 정보를 포함하는 MMS 메시지, 이메일 메시지 등을 전달하는 옵션이 제공될 수 있다. 예를 들어, 사용자에게 세션 정보를 제공하는 GUI 대화 박스는 다시 사용자에게, 정보가 전달되어야 될 사용자들 및/또는 단말들을 특정할 수 있게 할 수 있다. 상술한 바와 같이, 소정 실시예들에서 사용자는 메시지의 추가 전달을 허용하지 않는 옵션을 제공받을 수도 있다.In a similar manner, in various embodiments, an option may be provided for a user to deliver an MMS message, an email message, etc. including session information formatted using XML or the like. For example, a GUI dialog box that provides session information to a user may enable the user to specify the users and / or terminals to which the information should be delivered. As mentioned above, in certain embodiments the user may be provided with the option of not allowing further delivery of the message.

역시 마찬가지로, 여러 실시예들에서 사용자는 SOAP 등을 통해 수신된 MGM 세션 정보를 전달하는 옵션을 제공받을 수 있다. 이러한 실시예들은 GUI 대화 박스와 같은 인터페이스를 제공할 수 있고, 그를 통해 사용자는 그 정보를 수신할 사용자들 및/또는 단말기들을 특정할 수 있다. 상술한 것과 유사한 방식으로, 사용자는 전달된 세션 정보를 수신하는 자들이 추가 전달을 할 수 없게 하는 옵션을 제공받을 수 있다. 단말기에서 실행되는 모듈들은 추가 전달이 허용되지 않는다는 지시가 부가되었을 수 있는 세션 정보를 SOAP 등을 통해 특정 사용자들 및/또는 단말기들로 전송하도록 동작할 수 있다.Likewise, in various embodiments the user may be provided with the option of conveying MGM session information received via SOAP or the like. Such embodiments may provide an interface, such as a GUI dialog box, through which a user may specify users and / or terminals to receive the information. In a manner similar to that described above, the user may be provided with the option to prevent further recipients from receiving the delivered session information. Modules running on the terminal may be operable to send session information to specific users and / or terminals via SOAP or the like, which may have been added to indicate that further delivery is not allowed.

단말기가 다른 단말기로부터 전달된 MGM 세션 정보를 수신할 때, MGM 서버로부터 세션 정보를 수신하는 단말기를 참조하여 위에서 설명된 내용과 대응되는 동작들이 발생할 것이다. 예를 들어, 수신 단말기의 사용자는 대화 박스 등을 통해 그 전달된 세션 정보를 제공받을 수 있고, 전달된 세션 정보는 단말기에서 실행되는 프로그램 모듈들에 기록 및/또는 보내질 수 있다. 또 하나의 예로서, 수신된 그 전달 세션 정보가 다시 전달되지 않아야 한다고 약정되지 않은 경우, 수신한 사용자는 그 세션 정보를 추가 단말기 및/또는 사용자들로 더 전달하는 옵션을 제공받을 수 있다.When a terminal receives MGM session information transmitted from another terminal, operations corresponding to those described above with reference to the terminal receiving the session information from the MGM server will occur. For example, the user of the receiving terminal may be provided with the delivered session information through a dialog box or the like, and the delivered session information may be recorded and / or sent to program modules executed in the terminal. As another example, if it is not promised that the received delivery session information should not be delivered again, the received user may be provided with the option to further deliver that session information to additional terminals and / or users.

수신한 사용자는, 새로 전달된 정보의 수신자가 다시 그것을 전달하는 것을 허용할지 말지의 여부를 특정하는 옵션을 제공받을 수도 있다. 새로 전달된 세션 정보를 수신한 단말기들 및/또는 사용자들은 그 정보와 관련하여 위에서 서술한 동작들 중 하나 이상의 동작들을 그와 유사하게 수행할 수 있다.The receiving user may be provided with the option of specifying whether or not to allow the recipient of the newly delivered information to pass it back. Terminals and / or users who have received the newly delivered session information may similarly perform one or more of the operations described above with respect to that information.

메시지 멀티캐스트Message multicast

도 4에 도시된 것과 같이, MGM 세션을 통해 메시지를 멀티캐스트하기를 바라는 사용자는 세션에 대응하여 설정된 메시지 어드레스(가령, SMS 어드레스)로 그 메시지가 전송되도록 동작한다(401 단계). 사용자는 자신의 단말에서 작동하는 메시지 전송 모듈들과 관련된 새 메시지 합성 윈도를 불러올 수 있고, 상기 모듈들은 MMS, SMS, 또는 이메일 클라이언트와 같은 통상적인 메시지 전송 프로그램과 연관된 것일 것이다. 사용자는 상기 합성 윈도를 일으키도록 눌러질 수 있는 GUI 버튼 등을 제공받을 것이다. 이 버튼은 "MGM 세션 x로 메시지를 멀티캐스트 하려면 여기를 클릭하시오"와 같은 라벨을 포함할 것이고, "x" 자리에 MGM 세션과 관련된 식별자가 올 수 있다.As shown in FIG. 4, a user wishing to multicast a message via an MGM session operates to transmit the message to a message address (eg, SMS address) set corresponding to the session (step 401). The user may bring up a new message synthesis window associated with the message transfer modules operating at his terminal, which modules will be associated with a conventional message transfer program such as MMS, SMS, or email client. The user will be provided with a GUI button or the like that can be pressed to bring up the composite window. This button will contain a label such as "Click here to multicast the message to MGM session x", where "x" may be an identifier associated with the MGM session.

사용자는 새로운 합성 윈도를 통해 텍스트, 파일, 그래픽, 사운드, 영화 등 등과 같은 합성 요소들 밑에 메시지를 더할 수 있다. 본 발명의 일부 실시예들은 메시지에 더해질 수 있는 요소 타입들을 제한할 수 있음을 주지해야 한다. 이를테면, 일부 실시예들에서는 텍스트만이 허용될 수 있다.The new compositing window allows users to add messages under compositing elements such as text, files, graphics, sound, movies, and so on. It should be noted that some embodiments of the present invention may limit element types that may be added to a message. For example, in some embodiments only text may be allowed.

메시지 합성을 완료한 후, 사용자는 그 메시지가 전송되도록 특정할 수 있다. 사용자는 이것을, 가령, 합성 윈도우와 관련된 GUI 필드 안에 MGM 세션에 대해 설정된 메시징 어드레스를 입력함으로써 수행할 수 있다. 그리고 나서 사용자가 그 윈도우와 결부된 "보내기" GUI 버튼을 누를 수 있다. 그 메시지 어드레스로의 메시지 전송은 메시징 어드레스 타입(가령, SMS)에 대해 이 기술 분야에서 알려진 전송 방법들에 맞추어 이뤄질 수 있다.After completing message composition, the user can specify that the message be sent. The user can do this by, for example, entering the messaging address set for the MGM session in the GUI field associated with the synthesis window. The user can then press the "Send" GUI button associated with the window. The message transmission to that message address can be made according to the transmission methods known in the art for the messaging address type (eg SMS).

소정 실시예들에서, 사용자는 설정된 메시징 어드레스를 특정할 필요가 없을수도 있음을 주지해야 한다. 이것은, 가령, 단말기 상에서 실행되는 소프트웨어 모듈 등이 수신된 세션 정보를 알 수 있도록 된 상술한 실시예들의 경우가 될 수 있다. 메시지를 멀티캐스트하고자 하는 사용자의 단말기 상에서 실행되는 소프트웨어 모듈들에 의해 세션 시작 및 종료 시간이 참작될 수 있도록 하는 기능이 제공될 수 있음을 더 주지할 수 있다. 예를 들어, 소프트웨어 모듈들은 시작 및 종료 시간이, 액티브되거나 곧 액티브될 세션을 가리키지 않았으면, 세션 중에 멀티캐스트될 메시지의 생성 및/또는 전송을 금지할 수 있다.In certain embodiments, it should be noted that a user may not need to specify an established messaging address. This may be the case, for example, in the above-described embodiments in which a software module or the like running on the terminal can know the received session information. It may be further noted that functionality may be provided that allows for session start and end times to be taken into account by software modules running on the terminal of the user wishing to multicast the message. For example, software modules may prohibit the creation and / or transmission of a message to be multicast during a session if the start and end times did not indicate a session to be active or soon to be active.

MGM 서버 등에서 멀티캐스트될 메시지를 수신하였으면, 서버 상에서 작동하는 하나 이상의 캐스팅 모듈들이 그 메시지가 보내졌던 메시징 어드레스를 우선 판단할 것이다(403 단계). 다음으로, 이 모듈들은 메시징 어드레스와 연관된 MGM 세 션을 결정하기 위해 상술한 저장부를 액세스할 수 있다(405 단계).If the MGM server or the like has received a message to be multicasted, one or more casting modules operating on the server will first determine the messaging address to which the message was sent (step 403). These modules can then access the storage described above to determine the MGM session associated with the messaging address (step 405).

그런 다음, 모듈들은 세션이 액티브되었는지를 판단한다(407 단계). 이것은 현재 시간 및/또는 날짜를 판단하기 위해 서버와 관련되고/거나 서버에 의해 액세스 가능한 시계 및/또는 달력을 조사하고, 세션과 연관된 시작 및 종료 시간을 정하기 위해 저장부를 조사하고, 현재의 날짜 및/또는 시간이 세션 주기 안이거나 바로 전이었는지를 판단함으로써 행해질 수 있다. MGM 세션이 액티브되지 않았다고 알게된 경우, 단말기는 들어오는 메시지에 대한 추가 처리를 중지하고, 멀티캐스트될 메시지를 전송했던 단말기 및/또는 사용자에게 SMS 메시지 등을 전송할 수 있다(409 단계). 보내진 메시지는, 가령, 세션이 만료되었다는 것을 나타낼 수 있다.The modules then determine if the session is active (step 407). It examines the clocks and / or calendars associated with the server and / or accessible by the server to determine the current time and / or date, the storage to determine the start and end times associated with the session, the current date and And / or by determining if the time was within or just before the session period. If it is found that the MGM session is not active, the terminal may stop further processing on the incoming message and send an SMS message or the like to the terminal and / or the user who sent the message to be multicast (step 409). The message sent may indicate, for example, that the session has expired.

다음에, 하나 이상의 캐스팅 모듈들은 상술한 저장부를 조사하여 MGM 세션과 연관된 멀티캐스트 어드레스를 결정한다(411 단계). 그리고 나서 모듈들은 세션과 관련된 암호화 타입 및/또는 해독 키를 정하기 위해 그 저장부를 액세스할 수 있다(413 단계). 그런 다음 모듈들은 수신된 메시지를 상기 키로 해독되도록 암호화할 수 있다(415 단계). 그리고 나서, 모듈들은 저장부를 액세스하여 MGM 세션과 관련된 어떤 전송 스케줄이 있는지를 탐지한다(417 단계).Next, the one or more casting modules examine the storage described above to determine a multicast address associated with the MGM session (step 411). The modules can then access the storage to determine the encryption type and / or decryption key associated with the session (step 413). The modules can then encrypt the received message to be decrypted with the key (step 415). The modules then access the storage to detect what transmission schedules are associated with the MGM session (step 417).

하나 이상의 캐스팅 모듈들은 그 다음에 그 암호화된 메시지가 세션과 관련된 어떤 스케줄에 따라 적절한 멀티캐스트 어드레스로 멀티캐스트되게 하는 동작을 취할 수 있다(419 단계). 이것은, 하나 이상의 캐스팅 모듈들이, 가령, 암호화된 메시지와 함께 부가적 패러미터들을 멀티캐스트 포인트 상에서 작동하는 하나 이상의 소프트웨어 모듈들로 제공함으로써 수행될 수 있다. 멀티캐스트 포인트는, 예 를 들어, DVB-T 또는 DVB-S 멀티캐스트 포인트와 같은 단방향 멀티캐스트 포인트일 수 있다. 여러 실시예들에서, 멀티캐스트 포인트는 그것 말고 UMTS와 같은 양방향 기술을 사용할 수도 있다. 부가적 패러미터들은 세션과 관련된 스케줄링 정보 및/또는 멀티캐스트시 이용될 프로토콜들을 특정하는 것일 수 있다.One or more casting modules may then take action to cause the encrypted message to be multicast to the appropriate multicast address according to some schedule associated with the session (step 419). This may be done by providing one or more casting modules, for example with additional messages, to one or more software modules operating on a multicast point. The multicast point can be, for example, a unidirectional multicast point, such as a DVB-T or DVB-S multicast point. In various embodiments, the multicast point may instead use a bidirectional technology such as UMTS. The additional parameters may be to specify scheduling information related to the session and / or protocols to be used in multicast.

멀티캐스트 스케줄이 MGM 세션과 관련될 때, 소정 실시예들에서 MGM 서버 상에서 작동하는 하나 이상의 캐스팅 모듈들은 스케줄에 따라 멀티캐스트 시점이나 그 바로 직전에만 그 메시지를 멀티캐스트 포인트로 제공할 것이다. 그러한 실시예들에서, 스케줄링 정보는 멀티캐스트 포인트로 전달되지 않을 수도 있다. 다른 실시예들에서, 하나 이상의 캐스팅 모듈들은 멀티캐스트 스케줄과 특별한 관련 없이 메시지를 멀티캐스트 포인트로 전달하여, 스케줄 추종 작업을 멀티캐스트 포인트 상에서 작동하는 소프트웨어 모듈에 맡긴다. 위에서 말한 바와 같이, 멀티캐스트 포인트의 소프트웨어 모듈들은 멀티캐스트될 메시지와 함께 전송된 부가적 패러미터들을 통해 스케줄에 대해 알 수 있다.When a multicast schedule is associated with an MGM session, in one embodiment one or more casting modules operating on the MGM server will provide the message to the multicast point only at or immediately before the multicast point according to the schedule. In such embodiments, scheduling information may not be delivered to the multicast point. In other embodiments, one or more casting modules deliver the message to the multicast point without particular relevance to the multicast schedule, leaving the task of following the schedule to a software module operating on the multicast point. As mentioned above, the software modules of the multicast point may know about the schedule through additional parameters sent with the message to be multicast.

멀티캐스트될 메시지와 어떤 부가적 패러미터들을 수신한 후, 멀티캐스트 포인트는 그 메시지 및/또는 그 요소들에 대한 포맷 또는 재포맷을 수행할 수 있다. 예를 들어, 메시지가 HTML을 이용한 방법으로 포맷 또는 재포맷될 수 있다. 그 다음 멀티캐스트 포인트는 암호화된 메시지를 멀티캐스트한다. 위에서 언급한 봐와 같이, 일부 실시예들에서 멀티캐스트 포인트는 MGM 세션과 관련된 스케줄에 따라 멀티캐스트할 것이다. 멀티캐스트는 UHTTP(단방향 HTTP)를 이용할 수 있다.After receiving the message to be multicast and some additional parameters, the multicast point may perform formatting or reformatting of the message and / or its elements. For example, the message can be formatted or reformatted in a manner using HTML. The multicast point then multicasts the encrypted message. As noted above, in some embodiments the multicast point will multicast according to a schedule associated with the MGM session. Multicast can use UHTTP (unidirectional HTTP).

메시지 수신Receive a message

상술한 바와 같이, 단말기들 및/또는 사용자들은 MGM 세션 정보를 수신할 수 있다. 본 발명의 어떤 실시예들에서, MGM 세션과 관련해 멀티캐스트된 메시지들을 수신하고자 하는 그러한 사용자 또는 단말기 사용자는 자신의 단말기 상의 하나 이상의 메시지 수신 모듈들이 작동되게 하는 조처를 취할 수 있다. 사용자는 가령 자신의 단말에 의해 표현된 GUI 성분과의 상호동작을 통해 그러한 기능을 수행할 수 있다. 또, 많은 실시예들에서는 하나 이상의 메시지 수신 모듈들의 상기 사용자 조작과 같은 것이 반드시 필요한 것은 아님을 주지해야 한다.As discussed above, terminals and / or users may receive MGM session information. In some embodiments of the present invention, such a user or terminal user who wishes to receive multicasted messages in connection with an MGM session can take action to enable one or more message receiving modules on his terminal. The user may perform such a function, for example, through interaction with the GUI component represented by his terminal. It should also be noted that in many embodiments, such user manipulation of one or more message receiving modules is not necessary.

예를 들어, 모듈들은 단말기에서 MGM 세션 정보를 수신하면 언제나 자동으로 작동되거나 실행될 수도 있다. 어떤 실시예들에서는 사용자가 모듈들로, 수신된 세션 정보의 하나 이상의 요소들을 제공할 수도 있다. 이것은 사용자가 GUI 패널 등을 통해 요소드을 입력함으로써 수행될 수 있다. 다른 실시예들에서 모듈들은, 상술한 바와 같이, 앞에서 말한 저장부로부터 이 요소들을 자동으로 수신하거나 액세스할 수 있다.For example, the modules may run or run automatically whenever the MGM session information is received at the terminal. In some embodiments, a user may provide modules with one or more elements of received session information. This can be done by the user entering the element via a GUI panel or the like. In other embodiments, the modules may automatically receive or access these elements from the aforementioned storage, as described above.

MGM 세션 정보에 기술된 시작 시간 또는 그 가까이에서 시작하고 MGM 세션 정보에 기술된 종료 시간 또는 그 가까이에서 종료하면서, 단말기가 MGM 세션과 연관된 멀티캐스트 어드레스와 연계되도록(501 단계), 하나 이상의 작동 메시지 수신 모듈들이 도 5에 도시된 것과 같은 동작을 취할 수 있다. 그리고 나서 모듈들은, MGM 세션 정보에 기술된 시작 시간 또는 그 가까이에서 시작하고 MGM 세션 정보에 기술된 종료 시간 또는 그 가까이에서 종료하면서, MGM 세션의 멀티캐스트 어드레스를 향해 보내진 입력 전송 정보들을 모니터링할 수 있다(503 단계). MGM 세션 정보가 전송 스케줄을 특정한 경우, 하나 이상의 수신 모듈들은 그 스케줄링된 전송 기간 동안에만 모니터링을 할 수 있다. 이것은 지속적인 모니터링과 비교할 때 단말에서의 에너지 보존 기능을 향상시킬 수 있다. 상술한 바와 같이, 메시지는 UHTTP 등을 통해 수신될 수 있다.One or more operational messages, starting at or near the start time described in the MGM session information and ending at or near the end time described in the MGM session information, such that the terminal is associated with a multicast address associated with the MGM session (step 501). Receive modules may take the action as shown in FIG. 5. The modules can then monitor the input transmission information sent towards the multicast address of the MGM session, starting at or near the start time described in the MGM session information and ending at or near the end time described in the MGM session information. (Step 503). If the MGM session information specifies a transmission schedule, one or more receiving modules may only monitor during the scheduled transmission period. This can improve energy conservation at the terminal compared to continuous monitoring. As described above, the message may be received via UHTTP or the like.

MGM 세션과 관련된 메시지 수신시, 하나 이상의 메시지 수신 모듈들은 수신된 세션 정보에 특정된 키 및/또는 알고리즘에 따라 메시지를 해독할 수 있다(505 단계). 그 다음 하나 이상의 모듈들은 사용자가 이용 가능한 메시지 콘텐츠를 작성할 수 있다(507 단계). 가령, 모듈들은 GUI 디스플레이, 오디오 출력 등등을 통해 사용자에게 메시지 콘텐츠를 표시할 수 있다. 하나 이상의 모듈들은 메시지 콘텐츠를 디스플레이 및/또는 이용가능하게 만들기 앞서 사용자에게 조회할 수 있다.Upon receiving a message associated with an MGM session, one or more message receiving modules may decrypt the message according to a key and / or algorithm specified in the received session information (step 505). One or more modules may then create the message content available to the user (step 507). For example, modules may present message content to the user via a GUI display, audio output, and the like. One or more modules may query the user prior to displaying and / or making the message content available.

하드웨어 및 소프트웨어Hardware and software

본 발명에 따라 사용되는 소정 장치들은 컴퓨터를 이용해 구현될 것이다. 예를 들어, 상술한 서버들, 멀티캐스트 포인트들, 액세스 포인트들, 중계 장치들, 및 단말들이 네트웍 가능 컴퓨터들을 사용해 구현될 수 있다. 또, 여기 기술된 소정 절차들 등도 컴퓨터에 의해, 또는 그 도움을 받아 실행될 수 있다. 여기 사용된 "컴퓨터", "범용 컴퓨터" 등등의 용어는, 아마도 자바나 .Net을 지원하는 OS X, 리눅스, 다윈, 윈도즈 CE, 윈도즈 XP, 팜 OS, 심비안(Symbian) OS 등과 같은 운영 시스템을 실행하는 프로세서 카드 스마트 카드, 미디어 장치, 퍼스널 컴퓨터, 공학용 워크스테이션, PC, 매킨토시, PDA, 유무선 단말기, 섭, 네트웍 액세스 포인트, 네트웍 멀티캐스트 포인트 등을 말하는 것이나, 꼭 여기에 한정되는 것은 아니다.Certain devices used in accordance with the present invention will be implemented using a computer. For example, the servers, multicast points, access points, relay devices, and terminals described above can be implemented using network capable computers. In addition, certain procedures described herein may be executed by the computer or with the help of it. The terms "computer", "universal computer", etc., as used herein, may refer to operating systems such as OS X, Linux, Darwin, Windows CE, Windows XP, Palm OS, Symbian OS, etc., which probably support Java or .Net. Processor card smart card, media device, personal computer, engineering workstation, PC, Macintosh, PDA, wired / wireless terminal, power supply, network access point, network multicast point, and the like.

"범용 컴퓨터", "컴퓨터" 등등의 용어는 또한 하나 이상의 메모리나 저장부에 동작가능하게 연결된 하나 이상의 프로세서들을 말하지만, 여기에 국한되는 것은 아니다. 상기 메모리나 저장부는 데이터, 알고리즘, 및/또는 프로그램 코드를 포함할 수 있고, 프로세서나 프로세서들은 그 프로그램 코드를 실행시키고/거나 프로그램 코드, 데이터, 및/또는 알고리즘을 처리할 것이다. 따라서, 도 6에 도시된 전형적 컴퓨터(6000)는 두 개의 프로세서들(6051 및 6052), 랜덤 액세스 메모리(RAM)(6053), 읽기 전용 메모리(ROM)(6055), 입출력(I/O) 인터페이스(6057 및 6058), 저장 인터페이스(6059), 및 디스플레이 인터페이스(6061)와 동작 가능하게 연결된 시스템 버스(6050)를 포함한다. 저장 인터페이스(6059)는 다시 대용량 저장부(6063)에 연결된다. I/O 인터페이스들(6057 및 6058) 각각은 이더넷, IEEE 1394, IEEE 802.11b, 블루투스, DVB-T, DVB-S, DAB, GPRS, UMTS, 또는 기타 이 분야에 알려져 있는 인터페이스일 수 있다.The terms "universal computer", "computer" and the like also refer to, but are not limited to, one or more processors operatively connected to one or more memories or storage units. The memory or storage may include data, algorithms, and / or program code, and the processor or processors may execute the program code and / or process the program code, data, and / or algorithm. Thus, the typical computer 6000 shown in FIG. 6 has two processors 6061 and 6052, random access memory (RAM) 6053, read only memory (ROM) 6055, input / output (I / O) interface. 6057 and 6058, a storage interface 6059, and a system bus 6050 operably connected to the display interface 6061. Storage interface 6059 is in turn connected to mass storage 6063. Each of I / O interfaces 6057 and 6058 may be Ethernet, IEEE 1394, IEEE 802.11b, Bluetooth, DVB-T, DVB-S, DAB, GPRS, UMTS, or other interface known in the art.

대용량 저장부(6063)는 하드 드라이브, 광 드라이브 등일 수 있다. 프로세서들(6057 및 6058)은 각자 IBM 또는 모토롤라 파워PC, AMD 애슬론, AMD Opteron, 인텔 StrongARM, 또는 인텔 펜티엄과 같은 통상적으로 알려져 있는 것일 수 있다. 이 예에 도시된 것과 같은 컴퓨터(6000)는 LCD 디스플레이 유닛(6001), 키보드(6002) 및 마우스(6003) 역시 포함한다. 다른 실시예들에서, 키보드(6002), 및/또는 마우스(6003)는 터치 스크린, 펜, 또는 키패드 인터페이스로 대체될 수 있다. 컴퓨터(6000)는 카드 리더들, DVD 드라이브들, 또는 플로피 디스크 드라이브들을 부가적으로 포함하거나 연결하여, 프로그램 코드를 포함하는 매체를 그 코드의 컴 퓨터 로딩을 목적으로 삽입할 수 있다.The mass storage 6063 may be a hard drive, an optical drive, or the like. Processors 6057 and 6058 may be one commonly known, such as IBM or Motorola PowerPC, AMD Athlon, AMD Opteron, Intel StrongARM, or Intel Pentium, respectively. The computer 6000 as shown in this example also includes an LCD display unit 6001, a keyboard 6002 and a mouse 6003. In other embodiments, keyboard 6002 and / or mouse 6003 may be replaced with a touch screen, pen, or keypad interface. The computer 6000 may additionally include or connect card readers, DVD drives, or floppy disk drives to insert a medium containing program code for computer loading of the code.

본 발명에 따르면, 컴퓨터는 하나 이상의 상술한 동작들을 수행하기로 설계된 하나 이상의 소프트웨어 모듈들을 실행할 수 있다. 그 모듈들은 이 기술분야에 알려져 있는 방법에 의해 자바, 객체지향 C, C, C#, 또는 C++와 같은 언어를 사용해 프로그램된다. 특정 소프트웨어 모듈들 사이에서 상술한 일부 동작들은 예시할 목적으로 보인 것으로, 다른 동작 부분들이 사용될 수도 있다. 따라서, 한 소프트웨어 모듈에 의해 수행되는 것으로 논의된 동작들은 그와 달리 복수의 소프트웨어 모듈들에 의해 수행될 수도 있다. 마찬가지로, 복수의 모듈들에 의해 수행된다고 논의된 동작들은 그와 달리 하나의 모듈에 의해 수행될 수도 있다.In accordance with the present invention, a computer may execute one or more software modules designed to perform one or more of the above-described operations. The modules are programmed using a language such as Java, object-oriented C, C, C #, or C ++ by methods known in the art. Some of the operations described above among particular software modules are shown for purposes of illustration, and other operating portions may be used. Thus, operations discussed as being performed by one software module may alternatively be performed by a plurality of software modules. Similarly, operations discussed as being performed by a plurality of modules may alternatively be performed by one module.

본 발명의 실시예들이 소정 소프트웨어 모듈들을 소정 장치들 상에서 작동되는 것 개시하였으나, 다른 실시예들에서 이들 모듈들은 상술한 것과는 다른 장치들 상에서 실행되도록 할당될 수도 있다. 예를 들어, MGM 서버상에서 실행되는 것으로 기술된 하나 이상의 모듈들은 그 서버 대신 단말기 상에서 실행될 수 있고, 그 반대의 경우 역시 성립될 수 있다. 다른 예로서, MGM 서버에 의해 실행되는 것으로 기술된 동작들은 이 서버 대신 복수의 서버들 및/또는 다른 장치들에 의해 수행될 수 있다. 또, 많은 실시예들에서, 그리드(grid) 컴퓨팅 기술들이 이용될 수도 있음을 더 주지해야 한다.While embodiments of the present invention have disclosed that certain software modules operate on certain devices, in other embodiments these modules may be assigned to run on other devices than described above. For example, one or more modules described as running on an MGM server may run on a terminal instead of the server, and vice versa. As another example, operations described as being performed by an MGM server may be performed by a plurality of servers and / or other devices instead of this server. In addition, it should be further noted that in many embodiments, grid computing techniques may be used.

도 7에 도시된 것은 본 발명의 여러 실시예들에서 이용되고 있는 전형적 단말기의 기능적 블록도이다. 도 7의 단말기는 앞에서 설명하였다. 이하에서 해당참조부호는 해당 구성 요소에 적용된다. 도 7의 단말기(7000)는 여기 기술된 어떤 /모든 실시예들에 이용될 수 있다. 단말기(7000)는 프로세싱부(CPU)(703), 멀티 캐리어 신호 단말부(705) 및 사용자 인터페이스(701, 702)를 포함한다. 멀티 캐리어 신호 단말부(705) 및 사용자 인터페이스(701, 702)는 프로세싱부(CPU)(703)와 연결된다. 하나 이상의 직접 메모리 액세스(DMA) 채널들이 멀티 캐리어 신호 단말부(705)와 메모리(704) 사이에 존재할 수 있다. 사용자 인터페이스(701, 702)는 사용자로 하여금 단말기(7000)를 사용할 수 있게 하기 위해 디스플레이 및 키보드를 포함한다. 이 외에, 사용자 인터페이스(701, 702)는 오디오 신호를 수신 및 재생하는 마이크와 스피커를 구비한다. 사용자 인터페이스(701, 702)는 또한 음성 인식(미도시)을 포함할 수도 있다.Shown in FIG. 7 is a functional block diagram of an exemplary terminal used in various embodiments of the present invention. The terminal of FIG. 7 has been described above. In the following, corresponding references apply to the relevant components. Terminal 7000 of FIG. 7 may be used in any / all of the embodiments described herein. The terminal 7000 includes a processing unit (CPU) 703, a multi-carrier signal terminal 705, and user interfaces 701 and 702. The multi-carrier signal terminal unit 705 and the user interfaces 701 and 702 are connected to a processing unit (CPU) 703. One or more direct memory access (DMA) channels may exist between the multicarrier signal terminal 705 and the memory 704. User interfaces 701 and 702 include a display and a keyboard to enable a user to use terminal 7000. In addition, the user interfaces 701 and 702 have microphones and speakers for receiving and reproducing audio signals. User interfaces 701 and 702 may also include speech recognition (not shown).

프로세싱부(CPU)(703)는 마이크로프로세서(미도시), 메모리(704) 및 가능한 경우 소프트웨어를 포함한다. 소프트웨어는 메모리(704)에 저장될 수 있다. 마이크로프로세서는 그 소프트웨어에 기반해, 데이터 스트림의 수신, 데이터 수신시 임펄스 버스트 노이즈의 내성, 사용자 인터페이스에 출력 디스플레이, 및 사용자 인터페이스로부터 수신된 입력 읽기 등의 단말기(7000) 동작을 제어한다. 이 동작들은 위에서 설명되었다. 하드웨어는 신호 검출을 위한 회로, 변조 회로, 임펄스 검출 회로, 상당량의 임펄스 노이즈가 존재하는 심볼의 샘플들을 블랭킹하는 회로, 추정치 산출 회로, 및 훼손 데이터의 정정을 수행하는 회로를 포함한다.Processing unit (CPU) 703 includes a microprocessor (not shown), memory 704 and, if possible, software. Software may be stored in memory 704. Based on the software, the microprocessor controls the operation of the terminal 7000, such as reception of the data stream, immunity of impulse burst noise upon data reception, display of outputs on the user interface, and reading input received from the user interface. These operations have been described above. The hardware includes circuitry for signal detection, modulation circuitry, impulse detection circuitry, circuitry for blanking samples of symbols with a significant amount of impulse noise, estimation calculation circuitry, and circuitry for correcting corrupted data.

도 7을 더 참조할 때, 택일적으로, 미들웨어 또는 소프트웨어 구성이 적용될 수 있다. 단말기(7000)는 사용자가 편리하게 가지고 다닐 수 있는 휴대형 장치일 수 있다. 단말기(7000)는 멀티캐스트 전송 스트림을 수신하는 멀티 캐리어 신호 단말부(705)를 포함하는 셀룰라 모바일 폰일수 있다. 그에 따라, 단말기(7000)는 서비스 제공자들과 상호 교류할 수 있게 된다.With further reference to FIG. 7, alternatively, middleware or software configurations may be applied. The terminal 7000 may be a portable device that a user may conveniently carry. Terminal 7000 may be a cellular mobile phone comprising a multi-carrier signal terminal 705 that receives a multicast transport stream. Accordingly, the terminal 7000 may interact with service providers.

발명의 결과 및 범위Results and scope of the invention

상기 설명은 여러 구체적인 부분들을 포함하고 있으나, 이들은 단지 본 발명을 예시하기 위해 제공된 것으로 그 범위를 제한하는 것으로서 유추되어서는 안된다. 이 분야의 당업자라면 본 발명의 개념과 범위에서 벗어나지 않고 본 발명의 시스템 및 프로세스에 수많은 변형 및 변경이 이뤄질 수 있음이 자명할 것이다.While the description includes several specific details, these are provided merely to illustrate the invention and should not be construed as limiting the scope thereof. It will be apparent to those skilled in the art that numerous modifications and variations can be made to the systems and processes of the present invention without departing from the spirit and scope of the invention.

Claims (110)

메시지들을 멀티캐스팅하는 방법에 있어서,In a method of multicasting messages, 개시자로부터, 멀티캐스트 메시징 세션에 대한 요청을 수신하는 단계;Receiving, from the initiator, a request for a multicast messaging session; 상기 세션의 멀티캐스트 어드레스를 선택하는 단계;Selecting a multicast address of the session; 상기 멀티캐스트 어드레스와 메시징 어드레스를 관련시키는 단계;Associating the multicast address with a messaging address; 상기 개시자에 의한 하나 이상의 다른 당사자들로의 배급을 위해, 상기 개시자에게 해독 키를 전송하는 단계;Sending a decryption key to the initiator for distribution to one or more other parties by the initiator; 상기 메시징 어드레스를 통해, 상기 세션에서 멀티캐스트될 메시지를 수신하는 단계;Receiving, via the messaging address, a message to be multicast in the session; 상기 키를 이용해 해독되도록 메시지를 암호화하는 단계; 및Encrypting the message to be decrypted using the key; And 상기 멀티캐스트 어드레스를 통해 상기 암호화된 메시지를 멀티캐스팅하는 단계를 포함함을 특징으로 하는 방법.Multicasting the encrypted message via the multicast address. 제1항에 있어서, 상기 개시자는 상기 하나 이상의 다른 당사자들이 상기 키를 배포하는 것을 금지함을 특징으로 하는 방법.The method of claim 1, wherein the initiator prohibits the one or more other parties from distributing the key. 삭제delete 삭제delete 제1항에 있어서, 상기 멀티캐스트 어드레스는 이용 가능한 멀티캐스트 어드레스들의 뱅크(bank)로부터 선택됨을 특징으로 하는 방법.2. The method of claim 1, wherein the multicast address is selected from a bank of available multicast addresses. 삭제delete 제1항에 있어서, 상기 메시징 어드레스는 상기 개사자에 의해 제안됨을 특징으로 하는 방법.2. The method of claim 1 wherein the messaging address is suggested by the speaker. 제1항에 있어서, 멀티캐스팅 스케줄을 정하는 단계를 더 포함함을 특징으로 하는 방법.2. The method of claim 1, further comprising the step of establishing a multicasting schedule. 삭제delete 제1항에 있어서, 상기 개시자에게 상기 메시징 어드레스를 전송하는 단계를 더 포함함을 특징으로 하는 방법.2. The method of claim 1, further comprising sending the messaging address to the initiator. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 메시징 설정 방법에 있어서,In the messaging setup method, 멀티캐스트 메시징 세션에 대한 요청을 서버로 전송하는 단계;Sending a request for a multicast messaging session to a server; 상기 서버가 다른 당사자에게는 보내지 않고 보낸 해독 키를 수신하는 단계;The server receiving the decryption key sent without sending it to the other party; 상기 서버로부터, 서버가 상기 세션 및 메시징 어드레스와 관련시킨 멀티캐스트 어드레스를 수신하는 단계; 및Receiving, from the server, a multicast address associated with the session and messaging address by the server; And 상기 세션에서 멀티캐스트된 메시지들을 해독하는데 사용될 수 있는 상기 키를 하나 이상의 당사자들에게 전송하는 단계를 포함함을 특징으로 하는 방법.Transmitting the key to one or more parties that can be used to decrypt the multicasted messages in the session. 제27항에 있어서, 상기 하나 이상의 당사자들은 상기 키를 배급하지 못함을 특정하는 단계를 더 포함함을 특징으로 하는 방법.28. The method of claim 27, further comprising specifying that the one or more parties fail to distribute the key. 제27항에 있어서, 상기 서버에게 세션 기간에 대한 사양을 제공함을 특징으로 하는 방법.28. The method of claim 27, wherein the server provides a specification for a session duration. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제27항에 있어서, 상기 서버는 멀티캐스팅 스케줄을 정함을 특징으로 하는 방법.28. The method of claim 27, wherein the server schedules a multicasting. 삭제delete 삭제delete 제27항에 있어서, 상기 서버로부터 상기 메시징 어드레스를 수신하는 단계를 더 포함함을 특징으로 하는 방법.28. The method of claim 27, further comprising receiving the messaging address from the server. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 메시지들을 멀티캐스팅하는 시스템에 있어서,In a system for multicasting messages, 프로그램 코드를 저장하는 메모리; 및A memory for storing program code; And 상기 메모리와 동작가능하게 연결되어 상기 저장된 프로그램 코드에 따른 명령을 수행하는 프로세서를 포함하고,A processor operatively connected with the memory to perform an instruction according to the stored program code, 상기 프로그램 코드는, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 개시자로부터 멀티캐스트 메시징 세션에 대한 요청을 수신하는 동작, 상기 세션의 멀티캐스트 어드레스를 선택하는 동작, 메시징 어드레스를 상기 멀티캐스트 어드레스와 관련시키는 동작, 상기 개시자에 의한 하나 이상의 다른 당사자들로의 배급을 위해, 상기 개시자에게 해독 키를 전송하는 동작, 상기 메시징 어드레스를 통해, 상기 세션에서 멀티캐스트될 메시지를 수신하는 동작, 상기 키를 이용해 해독되도록 메시지를 암호화하는 동작, 및 상기 멀티캐스트 어드레스를 통해 상기 암호화된 메시지를 멀티캐스팅하는 동작을 수행하도록 함을 특징으로 하는 시스템.The program code, when executed by the processor, causes the processor to receive a request for a multicast messaging session from an initiator, to select a multicast address of the session, to convert a messaging address to the multicast address. Associating with a message, transmitting a decryption key to the initiator for distribution to one or more other parties by the initiator, receiving, via the messaging address, a message to be multicast in the session, Encrypting the message to be decrypted using the key, and multicasting the encrypted message via the multicast address. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 메시징 설정 시스템에 있어서,In the messaging setup system, 프로그램 코드를 저장하는 메모리; 및A memory for storing program code; And 상기 메모리와 동작가능하게 연결되어 상기 저장된 프로그램 코드에 따른 명령들을 실행하는 프로세서를 포함하고,A processor operatively coupled with the memory to execute instructions according to the stored program code, 상기 프로그램 코드는 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 멀티캐스트 메시징 세션에 대한 요청을 서버로 전송하는 동작, 상기 서버가 다른 당사자에게는 보내지 않고 보낸 해독 키를 수신하는 동작, 상기 서버로부터, 서버가 상기 세션 및 메시징 어드레스와 관련시킨 멀티캐스트 어드레스를 수신하는 동작, 및 상기 세션에서 멀티캐스트된 메시지들을 해독하는데 사용될 수 있는 상기 키를 하나 이상의 당사자들에게 전송하는 동작를 수행하도록 함을 특징으로 하는 시스템.The program code, when executed by the processor, causes the processor to: send a request for a multicast messaging session to a server, receive a decryption key sent by the server without sending it to another party, from the server, Receive a multicast address associated with the session and messaging address, and transmit the key to one or more parties that can be used to decrypt the multicast messages in the session. system. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 단말기에 있어서, In the terminal, 프로그램 코드를 저장하는 메모리; 및A memory for storing program code; And 상기 메모리와 동작가능하게 연결되어 상기 저장된 프로그램 코드에 따른 명령들을 실행하는 프로세서를 포함하고,A processor operatively coupled with the memory to execute instructions according to the stored program code, 상기 프로그램 코드는 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 서버로 멀티캐스트 메시징 세션에 대한 요청을 전송하는 동작, 상기 서버가 다른 개체로는 발송하지 않고 보낸 해독 키를 수신하는 동작, 멀티캐스트 어드레스를 상기 세션과 연관시키고 메시징 어드레스를 상기 멀티캐스트 어드레스와 연관시킨 서버로부터 상기 멀티캐스트 어드레스를 수신하는 동작, 및 상기 세션에서 멀티캐스트된 메시지들을 해독하는데 사용되는 상기 키를 하나 이상의 당사자들에게 전송하는 동작을 수행하도록 함을 특징으로 하는 단말기.The program code, when executed by the processor, causes the processor to: send a request for a multicast messaging session to a server, receive a decryption key sent by the server without sending it to another entity, multicast Receiving the multicast address from a server that associates an address with the session and a messaging address with the multicast address, and sends the key to one or more parties used to decrypt the multicast messages in the session. And a terminal for performing the operation. 서버에 있어서, In the server, 프로그램 코드를 저장하는 메모리;A memory for storing program code; 상기 메모리와 동작가능하게 연결되어 상기 저장된 프로그램 코드에 따른 명령들을 실행하는 프로세서; 및A processor operatively coupled to the memory for executing instructions in accordance with the stored program code; And 상기 프로세서와 동작가능하게 연결된 네트웍 인터페이스를 포함하고,A network interface operatively connected with the processor, 상기 프로그램 코드는 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 개시자로부터, 멀티캐스트 메시징 세션에 대한 요청을 수신하는 동작, 상기 세션의 멀티캐스트 어드레스를 선택하는 동작, 상기 멀티캐스트 어드레스와 메시징 어드레스를 관련시키는 동작, 상기 개시자에 의한 하나 이상의 다른 당사자들로의 배급을 위해, 상기 개시자에게 해독 키를 전송하는 동작, 상기 메시징 어드레스를 통해, 상기 세션에서 멀티캐스트될 메시지를 수신하는 동작, 상기 키를 이용해 해독되도록 메시지를 암호화하는 동작, 및 상기 멀티캐스트 어드레스를 통해 상기 암호화된 메시지를 멀티캐스팅하는 동작을 수행하도록 함을 특징으로 하는 서버.The program code, when executed by the processor, causes the processor to receive, from an initiator, a request for a multicast messaging session, select a multicast address of the session, the multicast address and a messaging address. Associating a message, sending a decryption key to the initiator for distribution to one or more other parties by the initiator, receiving, via the messaging address, a message to be multicast in the session, Encrypting the message to be decrypted using the key, and multicasting the encrypted message through the multicast address.
KR1020057009354A 2002-11-25 2003-11-10 System and method for user-initiated group messaging KR100768153B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30320302A 2002-11-25 2002-11-25
US10/303,203 2002-11-25

Publications (2)

Publication Number Publication Date
KR20050071707A KR20050071707A (en) 2005-07-07
KR100768153B1 true KR100768153B1 (en) 2007-10-17

Family

ID=32392415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057009354A KR100768153B1 (en) 2002-11-25 2003-11-10 System and method for user-initiated group messaging

Country Status (5)

Country Link
EP (1) EP1579338A4 (en)
KR (1) KR100768153B1 (en)
CN (1) CN100416539C (en)
AU (1) AU2003278495A1 (en)
WO (1) WO2004049737A2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100454806C (en) * 2004-07-29 2009-01-21 北京航空航天大学 Safety group broadcast management system and method
JP4381932B2 (en) 2004-08-31 2009-12-09 株式会社エヌ・ティ・ティ・ドコモ E-mail broadcast delivery device
ES2362359T3 (en) * 2005-12-02 2011-07-04 Microsoft Corporation MESSAGE SERVICE.
US9363346B2 (en) 2006-05-10 2016-06-07 Marvell World Trade Ltd. Remote control of network appliances using voice over internet protocol phone
CN101150533B (en) * 2006-09-18 2010-05-12 联想(北京)有限公司 A secure system and method for multi-point mail push
CN101212421B (en) * 2006-12-31 2011-12-28 联想(北京)有限公司 Email pushing method and system
CN101159858B (en) * 2007-11-21 2012-03-28 杭州华三通信技术有限公司 Method and equipment of reading video data
CN102130788B (en) * 2011-03-14 2013-04-24 华为技术有限公司 Method, device and system for configuring monitoring terminal
TWI591992B (en) 2011-11-16 2017-07-11 Alibaba Group Holding Ltd Group communication relationship establishment, web page display method and related device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970056178A (en) * 1995-12-13 1997-07-31 양승택 SP2 LAN Information Protection Protocol using Time Quantum Key Distribution

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049878A (en) * 1998-01-20 2000-04-11 Sun Microsystems, Inc. Efficient, secure multicasting with global knowledge
US6182214B1 (en) * 1999-01-08 2001-01-30 Bay Networks, Inc. Exchanging a secret over an unreliable network
US6263435B1 (en) * 1999-07-06 2001-07-17 Matsushita Electric Industrial Co., Ltd. Dual encryption protocol for scalable secure group communication
US6650869B2 (en) * 2000-04-14 2003-11-18 Hughes Electronics Corporation System and method for managing return channel bandwidth in a two-way satellite system
DE60135347D1 (en) * 2000-07-14 2008-09-25 Irdeto Access Bv ARCHITECTURE FOR SECURE PACKAGE-BASED DATA DISTRIBUTION
WO2003036857A1 (en) * 2001-10-24 2003-05-01 Nokia Corporation Ciphering as a part of the multicast cencept

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970056178A (en) * 1995-12-13 1997-07-31 양승택 SP2 LAN Information Protection Protocol using Time Quantum Key Distribution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1019970056178

Also Published As

Publication number Publication date
EP1579338A2 (en) 2005-09-28
EP1579338A4 (en) 2007-03-14
AU2003278495A8 (en) 2004-06-18
CN1726482A (en) 2006-01-25
WO2004049737A2 (en) 2004-06-10
WO2004049737A3 (en) 2004-12-16
AU2003278495A1 (en) 2004-06-18
CN100416539C (en) 2008-09-03
KR20050071707A (en) 2005-07-07

Similar Documents

Publication Publication Date Title
US11877017B2 (en) System for measuring video playback events using a server generated manifest/playlist
US20200236408A1 (en) Reducing time to first encrypted frame in a content stream
US10999343B1 (en) Apparatus and method for dynamically providing web-based multimedia to a mobile phone
US7961212B2 (en) Video messaging system
EP1041777B1 (en) Method and apparatus for embedding comments in electronic messages
US9135363B2 (en) Methods and systems for automatic content retrieval and organization
US20020065074A1 (en) Methods, systems, and devices for wireless delivery, storage, and playback of multimedia content on mobile devices
US20070168436A1 (en) System and method for supplying electronic messages
CN104901863B (en) Send the method, apparatus and system of instantly prompting message
US20070157072A1 (en) Portable content sharing
US20110173321A1 (en) Over-the-air delivery of metering certificates and data
US12120098B2 (en) Encrypting e-mail and other digital data using quantum random number generator
CN109450777A (en) Session information extracting method, device, equipment and medium
US20190281023A1 (en) Process and system for selectable data transmission
CN112165596A (en) Monitoring video data transmission method and device, terminal equipment and storage medium
KR100768153B1 (en) System and method for user-initiated group messaging
JP2002169761A (en) Multimedia data electronic mail system
WO2009076556A1 (en) Method for slideshows, thumbpapers, and cliptones on a mobile phone
US20090036099A1 (en) Content providing method and system
CN118055270B (en) Video processing method, system, device, electronic equipment and storage medium
US20080182603A1 (en) Systems and methods for distributing messages to mobile devices
EP2263358B1 (en) Telecommunication system
KR100702142B1 (en) Method For Protecting Copyright Of Contents In A Wireless-Terminal
EP2328316B1 (en) Access control to digital content
US20140032680A1 (en) Multimedia mail system

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
LAPS Lapse due to unpaid annual fee