KR101122801B1 - Collaborative invitation system and method - Google Patents

Collaborative invitation system and method Download PDF

Info

Publication number
KR101122801B1
KR101122801B1 KR1020077022787A KR20077022787A KR101122801B1 KR 101122801 B1 KR101122801 B1 KR 101122801B1 KR 1020077022787 A KR1020077022787 A KR 1020077022787A KR 20077022787 A KR20077022787 A KR 20077022787A KR 101122801 B1 KR101122801 B1 KR 101122801B1
Authority
KR
South Korea
Prior art keywords
invitation
service
cooperative
contact
computer
Prior art date
Application number
KR1020077022787A
Other languages
Korean (ko)
Other versions
KR20080010390A (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 KR20080010390A publication Critical patent/KR20080010390A/en
Application granted granted Critical
Publication of KR101122801B1 publication Critical patent/KR101122801B1/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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Credit Cards Or The Like (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

아키텍처(300)는 협력 서비스 플랫폼(302)을 포함할 수 있다. 협력 서비스 플랫폼(302)은 접촉자 관리 서비스(304), 발행 서비스(306), 시그널링 서비스(308), 활동 서비스(310), 데이터 공유 서비스(312), 인증 서비스(314) 및 접속성 서비스(316)를 포함할 수 있다. 접촉자 관리 서비스(304)는 접촉자 저장부(318), 프레즌스 저장부(320) 및 접촉자 위치 서비스(322)를 포함할 수 있다. 발행 서비스(306)는 동기화 서비스(324)를 포함할 수 있다. 시그널링 서비스(308)는 초대 서비스(326)를 포함할 수 있다. 활동 서비스(310)는 시청각(A/V) 서비스(328)를 포함할 수 있다. 접속성 서비스(316)는 피어 투 피어(P2P) 서비스(330) 및 종래의 전송 제어 프로토콜 및 인터넷 프로토콜(TCP/IP) 스택(332)을 포함할 수 있다. 각 서비스(304, 306, 308, 310, 312, 314, 316)는 서비스를 구현하는 메시지를 송수신할 수 있는 피어를 포함하고/하거나 그 피어에 편입될 수 있다.Architecture 300 may include a cooperative service platform 302. The cooperative service platform 302 includes contact management service 304, publishing service 306, signaling service 308, activity service 310, data sharing service 312, authentication service 314, and connectivity service 316. ) May be included. Contact management service 304 may include contact storage 318, presence storage 320, and contact location service 322. Publishing service 306 may include synchronization service 324. The signaling service 308 may include an invitation service 326. Activity service 310 may include an audiovisual (A / V) service 328. Connectivity service 316 may include a peer to peer (P2P) service 330 and a conventional transmission control protocol and Internet protocol (TCP / IP) stack 332. Each service 304, 306, 308, 310, 312, 314, 316 may include and / or be incorporated into a peer capable of sending and receiving messages implementing the service.

협력 서비스 플랫폼, 협력 애플리케이션, 초대 사용자 인터페이스, 초대 송신 요소, 초대 응답 요소, 초대 삭제 요소 Collaboration Services Platform, Collaboration Application, Invitation User Interface, Invitation Send Element, Invitation Response Element, Invitation Delete Element

Description

협력 초대 시스템 및 방법{COLLABORATIVE INVITATION SYSTEM AND METHOD}Cooperation invitation system and method {COLLABORATIVE INVITATION SYSTEM AND METHOD}

본 발명은 일반적으로 네트워크화 컴퓨팅 환경에 관한 것으로, 더욱 구체적으로 네트워크화 컴퓨팅 환경에서 용이해진 협력에 관한 것이다.TECHNICAL FIELD The present invention generally relates to networked computing environments and, more particularly, to collaboration that is facilitated in networked computing environments.

네트워크화 컴퓨팅 환경은 직장 및 심지어는 가정의 일반적인 특징이 되었다. 이러한 환경은 스트리밍 오디오 및 비디오, 및 몰입형 양방향 감각(immersive interactive sensory) 환경뿐만 아니라, 전자 메일, 인스턴트 메시징, 멀티미디어 문서 서버, 토론 그룹을 포함한 다양한 통신 모드를 용이하게 한다. 종래의 소프트웨어 애플리케이션들은 이렇게 풍부한 통신 모드들을 이용하기 시작했지만, 각각은 통합된 확장성 컴퓨터화 협력 플랫폼의 관점에서 고려했을 때 제한 및/또는 단점을 갖는다.Networked computing environments have become a common feature of work and even homes. This environment facilitates various communication modes including e-mail, instant messaging, multimedia document servers, discussion groups, as well as streaming audio and video, and immersive interactive sensory environments. Conventional software applications have begun to use these rich communication modes, but each has limitations and / or disadvantages when considered in terms of an integrated, scalable, computerized collaboration platform.

몇몇 종래의 컴퓨터 소프트웨어 애플리케이션은 협력 서비스의 양상을 제공하지만, 협력자(collaborator)에게로의 효과적인 액세스를 제공하지는 못한다. 협력자에게로의 서투른 및/또는 제한된 액세스는 협력 개시에 장애를 줄 수 있어서, 다른 기능적인 협력 도구를 사용하지 못하게 할 수 있다. 협력자에게로의 비효과적인 액세스의 양상은 몇몇 종래의 소프트웨어 애플리케이션에 의해, 현재의 물리 및/또는 가상 위치를 효과적으로 식별하지 못한다는 것이다. 다른 양상은 몇몇 종 래의 소프트웨어 애플리케이션에 의해, 협력 기능에 관한 호환성을 효과적으로 식별하지 못한다는 것이다.Some conventional computer software applications provide aspects of collaborative services, but do not provide effective access to collaborators. Clumsy and / or limited access to collaborators can impede initiation of collaboration, preventing the use of other functional collaboration tools. An aspect of ineffective access to collaborators is that some conventional software applications do not effectively identify current physical and / or virtual locations. Another aspect is that some conventional software applications do not effectively identify compatibility with respect to collaborative functions.

협력 서비스의 양상을 제공하는 종래의 소프트웨어 애플리케이션의 특정 배포의 기능에 있어서의 결함 이외에, 몇몇 종래의 소프트웨어 애플리케이션은 확장성 협력 플랫폼, 프레임워크 및/또는 아키텍처에 대비하지 못한다. 이것은 결코 사소한 결점이 아니다. 효과적인 아키텍처는 수년을 끌어서, 무수한 노드를 갖는 네트워크 컴퓨팅 환경으로 편입될 수 있다. 설정된 아키텍처의 확장성, 유연성, 유지보수성 및/또는 범위성(scalability)의 장애는 단일 소프트웨어 제품 배포에서보다 훨씬 더 중요한 문제일 수 있다.In addition to deficiencies in the functionality of certain deployments of conventional software applications that provide aspects of collaborative services, some conventional software applications are not prepared for scalable collaborative platforms, frameworks, and / or architectures. This is by no means a minor fault. An effective architecture can take years to incorporate into a network computing environment with countless nodes. The obstacles of scalability, flexibility, maintainability and / or scalability of established architectures can be even more important than in a single software product deployment.

이 부분은 본 발명의 몇몇 실시예의 간략화된 요약을 제공한다. 이 요약은 본 발명의 광범위한 개요가 아니다. 그것은 본 발명의 핵심적인/중대한 구성요소를 식별한다거나 본 발명의 범위를 나타내고자 하는 것이 아니다. 그 유일한 목적은 나중에 제시되는 더욱 상세한 설명의 서론으로서 본 발명의 몇몇 실시예를 간략화된 형태로 나타내는 것이다.This section provides a simplified summary of some embodiments of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key / critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some embodiments of the invention in a simplified form as a prelude to the more detailed description that is presented later.

본 발명의 실시예에서, 하나 이상의 접촉자는 그래픽 사용자 인터페이스(GUI)와 같은 초대 사용자 인터페이스로 선택될 수 있다. 협력 활동에 참가하라는 초대는 초대 사용자 인터페이스로부터 또는 협력 애플리케이션으로부터, 예를 들어 협력 활동을 용이하게 하는 협력 애플리케이션으로부터, 선택된 접촉자에게 보내질 수 있다. 초대 사용자 인터페이스로부터 또는 협력 애플리케이션으로부터 초대가 보내졌는 지의 여부는 구성가능 옵션일 수 있다. 초대가 초대 사용자 인터페이스로부터 보내질 수 있으면, 협력 애플리케이션이 개시될 수 있고, 그 다음에 초대는 초대 사용자 인터페이스로부터 보내질 수 있다. 초대가 협력 애플리케이션으로부터 보내질 수 있으면, 협력 애플리케이션이 개시될 수 있고, 그 다음에 초대는 협력 애플리케이션으로부터 보내질 수 있다.In embodiments of the present invention, one or more contacts may be selected as an invite user interface, such as a graphical user interface (GUI). The invitation to join the cooperative activity may be sent to the selected contact from the invitation user interface or from the cooperative application, for example from a cooperative application that facilitates the cooperative activity. Whether the invitation was sent from the invitation user interface or from the collaboration application may be a configurable option. If the invitation can be sent from the invitation user interface, the collaboration application can be launched, and then the invitation can be sent from the invitation user interface. If the invitation can be sent from the cooperative application, the cooperative application can be initiated, and then the invitation can be sent from the cooperative application.

본 발명의 실시예에서, 협력 애플리케이션에 참가하라는 초대는, 예를 들어 협력 서비스 플랫폼에 의해 수신될 수 있다. 협력 서비스 플랫폼의 사용자는 초대에 응답하여 수락, 사절 및 무시 중의 하나를 선택하는 능력과 함께 초대가 제시될 수 있다. 사용자는 초대의 수락, 사절 또는 명시적 무시를 선택할 수 있고, 응답은 사용자의 선택을 표시해서 초대장 발송인에게 보내질 수 있다.In an embodiment of the present invention, an invitation to join a cooperative application may be received by, for example, a cooperative service platform. The user of the cooperative service platform may be presented with the ability to select one of accept, refuse and ignore in response to the invitation. The user can choose to accept, refuse or explicitly ignore the invitation, and a response can be sent to the sender of the invitation indicating the user's choice.

본 발명의 실시예에서, 협력 초대 서비스를 위한 애플리케이션 프로그래밍 인터페이스는 초대 요소, 초대 송신 요소, 초대에의 응답 요소 및 초대 삭제 요소를 포함한다. 초대 요소는 협력 활동에 참가하라는 초대에 대응하는 초대 데이터로의 액세스를 제공할 수 있다. 초대 송신 요소는 하나 이상의 접촉자에게 협력 초대를 보내기 위해 사용될 수 있다. 초대에의 응답 요소는 협력 초대에 응답하기 위해 사용될 수 있고, 초대 삭제 요소는 발송된 초대를 삭제하기 위해 사용될 수 있다.In an embodiment of the invention, the application programming interface for the cooperative invitation service includes an invitation element, an invitation sending element, a response to the invitation element, and an invitation deletion element. The invitation element can provide access to invitation data corresponding to an invitation to participate in a collaborative activity. The invitation sending element can be used to send a collaboration invitation to one or more contacts. The reply to invitation element can be used to respond to a collaboration invitation, and the delete invitation element can be used to delete a sent invitation.

첨부된 청구범위는 특이성을 갖는 본 발명의 특징을 설명하지만, 본 발명 및 그 장점은 첨부된 도면을 참조하여 행해진 다음의 상세한 설명으로부터 가장 잘 이 해된다.While the appended claims illustrate features of the invention with specificity, the invention and its advantages are best understood from the following detailed description made with reference to the accompanying drawings.

도 1은 본 발명의 실시예를 구현하기 위해 사용할 수 있는 예시적인 컴퓨터 시스템을 일반적으로 도시한 개략도.1 is a schematic diagram generally illustrating an exemplary computer system that can be used to implement an embodiment of the invention.

도 2는 본 발명의 실시예를 구체화하기에 적합한 예시적인 네트워크화 컴퓨팅 환경을 도시한 개략도.2 is a schematic diagram illustrating an exemplary networked computing environment suitable for incorporating embodiments of the present invention.

도 3은 본 발명의 실시예에 따른, 협력 서비스 플랫폼을 위한 예시적인 컴퓨터 소프트웨어 아키텍처를 도시한 블럭도.3 is a block diagram illustrating an exemplary computer software architecture for a collaborative services platform, in accordance with an embodiment of the invention.

도 4는 본 발명의 실시예에 따른 예시적인 협력 객체(object) 모델을 도시한 객체 모델링 도면.4 is an object modeling diagram illustrating an exemplary cooperating object model in accordance with an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 예시적인 접촉자 객체를 도시한 객체 인터페이스 도면.5 is an object interface diagram illustrating an exemplary contact object in accordance with an embodiment of the invention.

도 6은 본 발명의 실시예에 따른 예시적인 프레즌스(presence) 객체를 도시한 객체 인터페이스 도면.FIG. 6 is an object interface diagram illustrating an example presence object in accordance with an embodiment of the present invention. FIG.

도 7은 본 발명의 실시예에 따른 예시적인 발행된(published) 객체를 도시한 객체 인터페이스 도면.FIG. 7 is an object interface diagram illustrating an exemplary published object in accordance with an embodiment of the present invention. FIG.

도 8은 본 발명의 실시예에 따른 예시적인 능력(capability) 객체를 도시한 객체 인터페이스 도면.FIG. 8 is an object interface diagram illustrating an example capability object in accordance with an embodiment of the present invention. FIG.

도 9는 본 발명의 실시예에 따른 예시적인 MeContact 객체를 도시한 객체 인터페이스 도면.9 is an object interface diagram depicting an exemplary MeContact object, in accordance with an embodiment of the invention.

도 10은 본 발명의 실시예에 따른 예시적인 회의(conference) 객체를 도시한 객체 인터페이스 도면.10 is an object interface diagram depicting an example conference object, in accordance with an embodiment of the invention.

도 11은 본 발명의 실시예에 따른, 협력 서비스 플랫폼에 의해 수행된 예시적인 단계를 도시한 플로우차트.11 is a flowchart illustrating exemplary steps performed by a cooperative service platform, in accordance with an embodiment of the invention.

도 12는 본 발명의 실시예에 따른, 협력 서비스 플랫폼에 의해 수행된 다른 예시적인 단계를 도시한 플로우차트.12 is a flowchart illustrating other exemplary steps performed by a cooperative service platform, in accordance with an embodiment of the present invention.

도 13은 본 발명의 실시예에 따른 예시적인 초대 시나리오를 도시한 개략도.13 is a schematic diagram illustrating an exemplary invitation scenario in accordance with an embodiment of the present invention.

도 14는 본 발명의 실시예에 따른 예시적인 초대 서비스 애플리케이션 프로그래밍 인터페이스를 도시한 개략도.14 is a schematic diagram illustrating an exemplary invitation service application programming interface in accordance with an embodiment of the present invention.

도 15는 본 발명의 실시예에 따른, 초대를 보내는 예시적인 단계를 도시한 플로우차트.15 is a flowchart illustrating exemplary steps for sending an invitation, in accordance with an embodiment of the invention.

도 16은 본 발명의 실시예에 따른, 초대를 보내기 위해 초대 서비스에 의해 수행된 예시적인 단계를 도시한 플로우차트.FIG. 16 is a flowchart illustrating exemplary steps performed by an invitation service to send an invitation, in accordance with an embodiment of the present invention. FIG.

도 17은 본 발명의 실시예에 따른, 일반적인 초대 사용자 인터페이스로부터의 초대에 응답하는 예시적인 단계를 도시한 플로우차트.FIG. 17 is a flowchart illustrating exemplary steps in response to an invitation from a generic invitation user interface, in accordance with an embodiment of the present invention. FIG.

도 18은 본 발명의 실시예에 따른, 애플리케이션 특정 사용자 인터페이스로부터의 초대에 응답하는 예시적인 단계를 도시한 플로우차트.FIG. 18 is a flowchart illustrating exemplary steps in response to an invitation from an application specific user interface, in accordance with an embodiment of the present invention. FIG.

도 19는 본 발명의 실시예에 따른, 서버리스(severless) 프레즌스 발행에 참가하는 예시적인 단계를 도시한 플로우차트.FIG. 19 is a flowchart illustrating exemplary steps for participating in serverless presence publishing, in accordance with an embodiment of the present invention. FIG.

도 20은 본 발명의 실시예에 따른, 협력 프레즌스 구독을 신청하는 예시적인 단계를 도시한 플로우차트.20 is a flowchart illustrating exemplary steps for subscribing to a cooperative presence subscription, in accordance with an embodiment of the present invention.

도 21은 본 발명의 실시예에 따른, 협력 프레즌스 구독을 수락하는 예시적인 단계를 도시한 플로우차트.21 is a flowchart illustrating exemplary steps for accepting a cooperative presence subscription, in accordance with an embodiment of the present invention.

본 발명의 여러 실시예를 설명하기 전에, 본 발명의 여러 실시예가 실시될 수 있는 컴퓨터의 설명이 이제 제공된다. 요구된 것은 아니지만, 본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 문맥으로 기술될 것이다. 일반적으로, 프로그램은 특정 태스크를 수행하고 또는 특정 추상 데이터 유형을 구현하는 루틴, 객체, 컴포넌트, 데이트 구조 등을 포함한다. 여기에서 사용된 "프로그램"이라는 용어는 단일 프로그램 모듈, 또는 협력하여 동작하는 다수의 프로그램 모듈을 내포할 수 있다. 여기에서 사용된 "컴퓨터" 및 "컴퓨팅 장치"라는 용어는 퍼스널 컴퓨터(PC), 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 프로그램가능 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 태블릿 PC, 랩탑 컴퓨터, 마이크로프로세서나 마이크로제어기를 갖는 소비자 가전제품, 라우터, 게이트웨이, 허브 등과 같이, 하나 이상의 프로그램을 전자적으로 실행하는 모든 장치를 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 이용될 수 있다. 분산 컴퓨팅 환경에서, 프로그램은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.Before describing various embodiments of the present invention, a description is now given of a computer on which various embodiments of the present invention may be practiced. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, programs include routines, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The term "program" as used herein may encompass a single program module or multiple program modules working together. The terms "computer" and "computing device" as used herein refer to personal computers (PCs), hand-held devices, multiprocessor systems, microprocessor-based programmable consumer electronics, network PCs, minicomputers, tablet PCs, laptop computers. And any device that electronically executes one or more programs, such as consumer electronics, routers, gateways, hubs, etc., having a microprocessor or microcontroller. The invention may also be used in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, programs can be located in both local and remote memory storage devices.

도 1을 참조하면, 여기에 설명된 본 발명의 실시양상이 구현될 수 있는 컴퓨터(102)의 기본 구성의 예가 도시된다. 가장 기본적인 구성에서, 컴퓨터(102)는 전형적으로 최소한 하나의 처리 장치(104) 및 메모리(106)를 포함한다. 처리 장치(104)는 본 발명의 여러 실시예에 따라 태스크를 수행하기 위한 명령어를 실행한다. 그러한 태스크 수행시에, 처리 장치(104)는 전자 신호를 컴퓨터(102)의 다른 부분 및 컴퓨터(102) 외부의 장치에 전송하여 어떤 결과가 생기게 할 수 있다. 컴퓨터(102)의 정확한 구성 및 유형에 의존하여, 메모리(106)는 (RAM과 같은) 휘발성, (ROM 또는 플래시 메모리와 같은) 비휘발성 또는 이 둘의 어떤 조합일 수 있다. 이 가장 기본적인 구성은 도 1에서 파선(108)으로 도시된다.Referring to FIG. 1, an example of a basic configuration of a computer 102 in which aspects of the invention described herein may be implemented is shown. In the most basic configuration, computer 102 typically includes at least one processing unit 104 and memory 106. Processing device 104 executes instructions to perform a task in accordance with various embodiments of the present invention. In performing such tasks, the processing device 104 may transmit electronic signals to other portions of the computer 102 and to devices external to the computer 102 to produce certain results. Depending on the exact configuration and type of computer 102, memory 106 may be volatile (such as RAM), nonvolatile (such as ROM or flash memory), or some combination of the two. This most basic configuration is shown by dashed line 108 in FIG. 1.

컴퓨터(102)는 또한 추가 특징/기능을 가질 수 있다. 예를 들어, 컴퓨터(102)는 또한, 자기 또는 광 디스크 또는 테이프를 포함하는(하지만, 이에 제한되는 것은 아님) 추가 저장장치(이동식(110) 및/또는 이동불가식(112))을 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 포함하는 정보의 저장을 위해 모든 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 이동불가식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(102)에 의해 액세스될 수 있고 원하는 정보를 저장하기 위해 사용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 그러한 모든 컴퓨터 저장 장치는 컴퓨터(102)의 일부분일 수 있다.Computer 102 may also have additional features / functions. For example, computer 102 may also include additional storage devices (removable 110 and / or non-removable 112), including but not limited to magnetic or optical disks or tapes. Can be. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information including computer executable instructions, data structures, program modules or other data. Computer storage media may include RAM, ROM, EEPROM, flash memory, CD-ROM, digital versatile disk (DVD) or other optical storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, or computer 102. It includes but is not limited to any other medium that can be accessed by and used to store desired information. All such computer storage devices may be part of computer 102.

컴퓨터(102)는 양호하게 장치가 원격 컴퓨터(들)(116)과 같은 다른 장치와 통신할 수 있게 하는 통신 접속부(114)를 또한 포함한다. 통신 접속부는 통신 매 체의 한 예이다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메카니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 구현하고 모든 정보 전달 매체를 포함한다. 예제로서(제한되는 것은 아님), "통신 매체"라는 용어는 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다. 여기에서 사용된 "컴퓨터 판독가능 매체"라는 용어는 컴퓨터 저장 매체 및 통신 매체 둘 다를 포함한다.Computer 102 preferably also includes a communication connection 114 that allows the device to communicate with other devices, such as remote computer (s) 116. The communication connection is an example of a communication medium. Communication media typically embody computer readable instructions, data structures, program modules or other data on modulated data signals, such as carrier waves or other transport mechanisms, and all information transfer media. It includes. By way of example, but not limitation, the term "communication medium" includes wireless media such as acoustic, RF, infrared and other wireless media. The term "computer readable medium" as used herein includes both computer storage media and communication media.

컴퓨터(102)는 또한 키보드/키패드, 마우스, 펜, 음성 입력 장치, 접촉식 입력 장치 등과 같은 입력 장치(118)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(120)가 또한 포함될 수 있다. 이러한 모든 장치는 본 분야에 잘 알려져 있어서, 여기에서 장황하게 설명될 필요가 없다.Computer 102 may also have an input device 118, such as a keyboard / keypad, mouse, pen, voice input device, touch input device, or the like. Output devices 120 such as displays, speakers, printers, etc. may also be included. All such devices are well known in the art and need not be described in detail here.

다음 설명에서, 본 발명은 달리 나타내지 않는 한, 하나 이상의 컴퓨팅 장치에 의해 수행되는 동작의 기호 표현 및 액트와 관련하여 설명될 것이다. 이와 같이, 때때로 컴퓨터 실행되는 것으로 칭해지는 그러한 액트 및 동작은 구조적 형태로 데이터를 나타내는 전기 신호의 컴퓨터의 처리 장치에 의한 조작처리를 포함한다는 것을 이해할 것이다. 이 조작처리는 데이터를 변환하거나, 또는 컴퓨터의 메모리 시스템 내의 위치에 그것을 유지하는데, 이것은 본 분야에 숙련된 기술자들에게 잘 알려진 방식으로 컴퓨터의 동작을 재구성하거나 다르게 변경한다. 데이터가 유지되는 데이터 구조는 데이터 포맷에 의해 정해진 특정 속성을 갖는 메모리의 물리적 위치이다. 그러나, 본 발명이 앞의 문맥에서 설명되었지만, 그것은 후술되는 여러가지 액트 및 동작이 하드웨어로 구현될 수도 있다는 것을 본 분야에 숙련된 기술자들이 이해할 것이므로, 제한하고자 하는 것이 아니다.In the following description, the invention will be described with reference to symbolic representations and acts of operations performed by one or more computing devices, unless otherwise indicated. As such, it will be understood that such acts and operations, sometimes referred to as computer execution, include the manipulation by the computer's processing apparatus of electrical signals representing data in a structural form. This manipulation process transforms the data or maintains it in a location within the memory system of the computer, which reconfigures or otherwise alters the operation of the computer in a manner well known to those skilled in the art. The data structure in which data is maintained is the physical location of memory with specific attributes determined by the data format. However, although the invention has been described in the foregoing context, it is not intended to be limiting, as those skilled in the art will understand that various acts and operations described below may be implemented in hardware.

본 발명의 실시예에서, 컴퓨터 소프트웨어 아키텍처는 확장성, 유연성, 유지보수성 및 범위성 있는 협력 플랫폼을 제공한다. 아키텍처의 양상은 적합한 네트워크화 컴퓨팅 환경으로 편입될 수 있다. 아키텍처는 종래의 컴퓨터 소프트웨어 애플리케이션과 통합된 협력을 가능하게 하고/하거나 확장할 수 있다. 특히, 아키텍처는 네트워크화 컴퓨팅 환경에서의 현재의 접촉자 프레즌스 및 예를 들어 이용가능한 협력 활동에 관한 현재의 접촉자 능력을 포함하여, 포괄적인 협력 접촉자 관리를 제공할 수 있다.In an embodiment of the invention, the computer software architecture provides a collaborative platform that is scalable, flexible, maintainable and scalable. Aspects of the architecture can be incorporated into suitable networked computing environments. The architecture may enable and / or extend integration with traditional computer software applications. In particular, the architecture may provide comprehensive collaborative contact management, including current contact presence in a networked computing environment and current contact capabilities, for example with respect to available cooperative activities.

도 2는 본 발명의 실시예를 구체화하기에 적합한 예시적인 네트워크화 컴퓨팅 환경(200)을 도시하고 있다. 네트워크화 컴퓨팅 환경에서, 네트워크(202)는 컴퓨터(204, 206 및 208)를 네트워킹 허브(hub)(210)에 통신으로 접속시킨다. 네트워크(202)는 LAN(local area network), MAN(metropolitan area network), WAN(wide area network), PAN(personal area network) 또는 그것의 조합일 수 있다. 네트워크(202)는 임의의 적합한 컴퓨터 판독가능 매체뿐만 아니라, 허브, 게이트웨이, 라우터, 브리지, 포트 등과 같은 임의의 적합한 네트워킹 컴포넌트를 포함할 수 있다. 예를 들어, 컴퓨터(204, 206 및 208) 및 네트워킹 허브(210)는 각각 컴퓨터(102)(도 1)의 인스턴스일 수 있다.2 illustrates an example networked computing environment 200 suitable for embodying an embodiment of the present invention. In a networked computing environment, network 202 connects computers 204, 206, and 208 to networking hub 210 in communication. The network 202 may be a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a personal area network (PAN), or a combination thereof. Network 202 may include any suitable computer readable medium, as well as any suitable networking component such as hubs, gateways, routers, bridges, ports, and the like. For example, computers 204, 206, and 208 and networking hub 210 may each be an instance of computer 102 (FIG. 1).

네트워킹 허브(210)는 컴퓨터(212, 214 및 216)를 통신으로 접속시킬 수 있다. 네트워킹 허브(210) 및 컴퓨터(212, 214 및 216)는 물론 제한적인 예는 아니 지만, 함께 서브-네트워크 또는 서브넷(subnet)(218)의 예로서 간주될 수 있다. 컴퓨터(212, 214 및 216)는 동일한 서브넷 상에 있다고 하고, 결과적으로 서로에 대해 특권 네트워크 통신을 누릴 수 있다. 예를 들어, 각 컴퓨터(204, 206, 208, 212, 214 및 216)가 각각 다른 컴퓨터(204, 206, 208, 212, 214 및 216)에 점 대 점 유형의 메시지를 보낼 수 있을지라도, 서브넷(218)은 서브넷(218) 내에서의 방송 유형 메시지가 서브넷(218) 내의 이들 컴퓨터(212, 214 및 216)에 의해 수신되도록 구성될 수 있다.Networking hub 210 may connect computers 212, 214, and 216 in communication. The networking hub 210 and the computers 212, 214, and 216 may, of course, be considered as examples of sub-networks or subnets 218, although not by way of limitation. Computers 212, 214, and 216 are said to be on the same subnet, and as a result can enjoy privileged network communication with each other. For example, even though each computer 204, 206, 208, 212, 214, and 216 can send a point-to-point type of message to another computer 204, 206, 208, 212, 214, and 216, respectively, the subnet 218 may be configured such that broadcast type messages in subnet 218 are received by these computers 212, 214, and 216 in subnet 218.

협력 플랫폼의 확장성, 유연성, 유지보수성 및/또는 범위성의 속성은 그 모듈러 구조, 전체로서의 그 모듈러 구조, 전체로서의 모듈러 구조의 모듈 및/또는 상호작용 패턴의 것들 사이의 상호작용 모드 중의 하나 이상의 양상으로부터 생길 수 있다. 도 3은 본 발명의 실시예에 따른 예시적인 컴퓨터 소프트웨어 아키텍처(300)를 도시하고 있다. 아키텍처(300)의 각 양상은 각 컴퓨터(204, 206, 208, 212, 214 및 216)(도 2)에서 존재할 수 있지만, 본 발명의 각 실시예는 그렇게 제한되는 것은 아니다. 아키텍처(300)의 양상은 전체적으로 네트워크화 컴퓨팅 환경(200)을 포함하는 네트워크화 컴퓨팅 환경(200)의 임의의 적합한 서브셋 전반에 적합하게 분포될 수 있다. 아키텍처(300)의 상이한 버전은 상이한 컴퓨터에서 존재할 수 있고, 아키텍처(300)의 각 버전이 아키텍처(300)의 각각 다른 버전과 호환할 수 있는 정도는 다를 수 있다.The nature of extensibility, flexibility, maintainability, and / or scalability of a collaborative platform may be defined by one or more aspects of the mode of interaction between its modular structure, its modular structure as a whole, its modular structure as a whole, and / or its interaction patterns. Can result from. 3 illustrates an example computer software architecture 300 in accordance with an embodiment of the present invention. Each aspect of architecture 300 may exist in each computer 204, 206, 208, 212, 214, and 216 (FIG. 2), but each embodiment of the present invention is not so limited. Aspects of the architecture 300 may be suitably distributed throughout any suitable subset of the networked computing environment 200, including the networked computing environment 200 as a whole. Different versions of architecture 300 may exist on different computers, and the degree to which each version of architecture 300 is compatible with each other version of architecture 300 may vary.

아키텍처(300)는 협력 서비스 플랫폼(302)을 포함할 수 있다. 협력 서비스 플랫폼(302)은 접촉자 관리 서비스(304), 발행 서비스(306), 시그널링 서비 스(308), 활동 서비스(310), 데이터 공유 서비스(312), 인증 서비스(314) 및 접속성 서비스(316)를 포함할 수 있다. 접촉자 관리 서비스(304)는 접촉자 저장부(318), 프레즌스 저장부(320) 및 접촉자 위치 서비스(322)를 포함할 수 있다. 발행 서비스(306)는 동기화 서비스(324)를 포함할 수 있다. 시그널링 서비스(308)는 초대 서비스(326)를 포함할 수 있다. 활동 서비스(310)는 시청각(A/V) 서비스(328)를 포함할 수 있다. 접속성 서비스(316)는 피어 투 피어(peer-to-peer)(P2P) 서비스(330), 및 종래의 전송 제어 프로토콜 및 인터넷 프로토콜(TCP/IP) 스택(332)을 포함할 수 있다. 각 서비스(304, 306, 308, 310, 312, 314, 316)는 서비스를 구현하는 메시지를 송수신할 수 있는 피어를 포함하고/하거나, 그 피어에 편입될 수 있다.Architecture 300 may include a cooperative service platform 302. The cooperative service platform 302 may include contact management services 304, publishing services 306, signaling services 308, activity services 310, data sharing services 312, authentication services 314, and connectivity services ( 316). Contact management service 304 may include contact storage 318, presence storage 320, and contact location service 322. Publishing service 306 may include synchronization service 324. The signaling service 308 may include an invitation service 326. Activity service 310 may include an audiovisual (A / V) service 328. Connectivity service 316 may include a peer-to-peer (P2P) service 330, and a conventional transmission control protocol and Internet protocol (TCP / IP) stack 332. Each service 304, 306, 308, 310, 312, 314, 316 may include and / or be incorporated into a peer capable of sending and receiving messages implementing the service.

본 발명의 실시예에서, 접촉자 관리 서비스(304)는 협력자, 즉 협력 서비스 플랫폼(302)의 사용자에게로의 효과적인 액세스를 제공한다. 예를 들어, 접촉자 관리 서비스(304)는 협력 서비스 플랫폼(302) 사용자의 일부 또는 전부에게 접촉자 정보를 제공할 수 있다. 접촉자 관리 서비스(304)는 하나 이상의 데이터 저장부 내에 접촉자의 데이터베이스를 유지할 수 있다. 각 접촉자는 잠재적인 협력자일 수 있고, 즉 협력 서비스 플랫폼의 사용자는 각 접촉자와 하나 이상의 협력 활동을 시작하고자 시도할 수 있다. 접촉자 관리 서비스(304)는 예를 들어, 사용자에 의한 선택을 위해, 및/또는 사용자가 특정 접촉자에 관한 협력 서비스 플랫폼(302) 액션을 호출할 수 있도록, 접촉자를 나타내는 그래픽 사용자 인터페이스(GUI)를 포함하는 하나 이상의 사용자 인터페이스를 제공할 수 있다.In an embodiment of the present invention, contact management service 304 provides effective access to collaborators, ie, users of collaborative service platform 302. For example, contact management service 304 may provide contact information to some or all of the users of cooperative service platform 302. Contact management service 304 may maintain a database of contacts within one or more data stores. Each contact may be a potential collaborator, ie a user of a collaborative service platform may attempt to initiate one or more collaborative activities with each contact. Contact management service 304 may, for example, present a graphical user interface (GUI) representing a contact for selection by the user and / or to allow the user to invoke a cooperative service platform 302 action on a particular contact. One or more user interfaces may be provided.

접촉자 저장부(318)는 (도 4와 관련하여 더욱 상세하게 후술되는) 접촉자 객체 및 "MeContact" 객체를 저장할 수 있다. 프레즌스 저장부(320)는 접촉자 객체를 위한 (또한 도 4와 관련하여 더욱 상세하게 후술되는) 프레즌스 객체를 저장할 수 있다. 본 발명의 실시예에서, 프레즌스 데이터는 분리된 데이터 저장부(318, 320)가 상이한 객체 갱신 빈도에 최적화될 수 있도록, 접촉자 데이터보다 더 자주 바뀐다.The contact storage 318 may store a contact object and a “MeContact” object (described below in more detail with respect to FIG. 4). The presence storage 320 may store a presence object (also described in more detail with respect to FIG. 4) for the contact object. In an embodiment of the present invention, the presence data is changed more frequently than the contact data so that separate data stores 318 and 320 can be optimized for different object update frequencies.

접촉자 위치 서비스(322)는 주어진 접촉자에 관한 여러 가지 위치 데이터 중의 하나 이상을 제공할 수 있다. 물리적 근접도는 접촉자 위치의 양상일 수 있고, 예를 들어, 물리적 위치에 대한 하나 이상의 프럭시는 사용자로부터의 접촉자의 물리적 거리를 평가하기 위해 이용될 수 있다. 무선 수신기에서의 신호 강도는 물리적 거리 프럭시의 한 예이다. 가상 위치는 접촉자 위치의 다른 양상일 수 있다. 예를 들어, 접촉자는 도 2의 네트워크(202)와 같은 하나 이상의 네트워크, 및/또는 컴퓨터(204, 206, 208, 212, 214 및 216)와 같은 하나 이상의 네트워크 노드에서 활동할 수 있다. 또한, 접촉자는 등록되지만 비활동적일 수 있고, 온라인 상태이지만 발견되지 않을 수 있고, 또는 몇몇의 다른 적합한 위치 상태를 가질 수 있다. 접촉자 위치 서비스(322)는 특정 접촉자의 위치를 찾기 위해, 적합한 레지스트리를 조회하고/하거나, 예를 들어 피어 투 피어 검색 또는 피어 투 피어 이름 분석 메카니즘을 시작할 수 있다.Contact location service 322 may provide one or more of a variety of location data for a given contact. Physical proximity may be an aspect of contact location, for example, one or more proxies relative to the physical location may be used to assess the physical distance of the contact from the user. Signal strength at the wireless receiver is an example of a physical distance proxy. The virtual location may be another aspect of the contact location. For example, the contactor may be active in one or more networks, such as network 202 of FIG. 2, and / or in one or more network nodes, such as computers 204, 206, 208, 212, 214, and 216. In addition, the contact may be registered but inactive, online but not found, or may have some other suitable location state. Contact location service 322 may query the appropriate registry and / or initiate a peer-to-peer search or peer-to-peer name resolution mechanism, for example, to locate a particular contact.

발행 서비스(306)는 접촉자에 의해 발행된 데이터로의 액세스를 제공할 수 있다. 본 발명의 실시예에서, 관심있는 사용자는 접촉자에 의해 발행된 객체를 구 독할 수 있고, 발행된 객체가 발행하는 접촉자에 의해 갱신될 때마다 통지를 수신할 수 있다. 동기화 서비스(324)는 발행 구독의 데이터베이스를 유지할 책임이 있을 수 있다. 특히, 발행 서비스(206)는 접촉자에 의해 발행된 프레즌스 정보로의 액세스를 제공할 수 있다.The publishing service 306 can provide access to the data published by the contact. In an embodiment of the present invention, an interested user can subscribe to an object published by a contactor and receive a notification whenever the published object is updated by the publishing contact. The synchronization service 324 may be responsible for maintaining a database of publication subscriptions. In particular, the publishing service 206 can provide access to the presence information issued by the contact.

시그널링 서비스(308)는 진행중인 회의의 파라미터의 갱신뿐만 아니라, 네트워크화 컴퓨팅 환경(200)(도 2)에 있는 접촉자들 간의 협력 회의의 설정 및 종료를 제공할 수 있다. 본 발명의 실시예에서, 협력 회의의 설정, 갱신 및 종료는 발행/구독 의미론에 따라 제공된다. 본 발명의 실시예에서, 시그널링 서비스(308)는 Handley 등에 의해 "SIP: Session Initiation Protocol", Internet Engineering Task Force(IETF) Request for Comments(RFC) 2543(1999년3월)에 기술된 SIP(session initiation protocol)와 같은 SIP의 구현을 포함한다.The signaling service 308 may provide for the establishment and termination of cooperative meetings between contacts in the networked computing environment 200 (FIG. 2), as well as updating parameters of ongoing meetings. In an embodiment of the present invention, setting up, updating, and terminating cooperative meetings is provided according to publish / subscribe semantics. In an embodiment of the present invention, the signaling service 308 is described by SIP (Session 1999) described in "Session Initiation Protocol", Internet Engineering Task Force (IETF) Request for Comments (RFC) 2543 (March 1999) by Handley et al. initiation protocol, such as an initiation protocol).

초대 서비스(326)는 초대 및 관련 메시지가 접촉자에게/로부터 보내질 수 있게 할 수 있다. 예를 들어, 한 컴퓨터(212)에서 네트워크화 컴퓨팅 환경(200)(도 2)을 액세스하는 시스템 사용자는 몇몇 다른 컴퓨터(들)(204, 206, 208, 212, 214 및/또는 216)에서의 접촉자에게 협력 활동에 참가하라고 초대할 수 있다. 초대 서비스(326)는 초청객에게 초대 상세를 제시하고 초청객이 초대를 수락, 사절 및/또는 명시적 무시를 할 수 있게 하는 그래픽 사용자 인터페이스(GUI)와 같은 여러 가지 사용자 인터페이스를 포함할 수 있다. 예시적인 초대 서비스(326)는 도 13과 관련하여 더욱 상세하게 후술된다.Invitation service 326 may enable invitations and related messages to be sent to / from the contact. For example, a system user accessing the networked computing environment 200 (FIG. 2) from one computer 212 may be a contact at some other computer (s) 204, 206, 208, 212, 214 and / or 216. You can invite them to participate in collaborative activities. The invitation service 326 can include various user interfaces, such as a graphical user interface (GUI) that presents the invite details to the invitee and allows the invitee to accept, refuse, and / or explicitly ignore the invite. Exemplary invitation service 326 is described below in more detail with respect to FIG.

활동 서비스(310)는 협력 활동을 구현하고/하거나, 협력 서비스 플랫폼(302) 으로의 협력 애플리케이션의 통합을 위한 지원을 제공할 수 있다. 예를 들어, 활동 서비스(310)는 종래의 협력 애플리케이션에 협력 서비스 플랫폼(302) 순응 애플리케이션 프로그래밍 인터페이스(API)를 제공할 수 있다. 순응 API는 활동 능력에 관해 특정 접촉자 또는 컴퓨터(204, 206, 208, 212, 214, 216)(도 2)를 조회하고 애플리케이션-특정 초대 요구사항을 확인하는 기능을 포함할 수 있다. 시청각 서비스(328)는 활동 서비스(310)로의 편입에 적합한 협력 활동의 예이다.Activity service 310 may implement cooperative activities and / or provide support for integration of cooperative applications into cooperative service platform 302. For example, activity service 310 may provide a cooperative service platform 302 compliant application programming interface (API) to a conventional cooperative application. The compliance API may include the ability to query a specific contact or computer 204, 206, 208, 212, 214, 216 (FIG. 2) regarding activity capability and identify application-specific invitation requirements. Audiovisual service 328 is an example of cooperative activity suitable for incorporation into activity service 310.

데이터 공유 서비스(312)는 파일, 문서, 스트림 및 객체를 포함하는 임의의 적합한 포맷으로 데이터의 공유를 가능하게 할 수 있다. 데이터 공유 서비스(312)는 데이터 전송, 데이터 복제 및/또는 데이터 동기를 제공할 수 있다. 데이터 공유는 접촉자, 활동에의 참가, 회의에의 참가, 및/또는 네트워크화 컴퓨팅 환경(200)(도 2) 사용자 그룹과 같은 임의의 적합한 액세스 제어 리스트(ACL) 엔트리에 기초하여 가능하게 되고 불가능하게 될 수 있다.Data sharing service 312 may enable sharing of data in any suitable format, including files, documents, streams, and objects. The data sharing service 312 may provide data transfer, data replication, and / or data synchronization. Data sharing is enabled and disabled based on contacts, participation in activities, participation in meetings, and / or any suitable access control list (ACL) entries, such as user groups in the networked computing environment 200 (FIG. 2). Can be.

인증 서비스(314)는 인증서, 예를 들어 접촉자용 인증서 및 기타 활동 및 회의 참가용 인증서를 공급하고 검증할 수 있다. 인증 서비스(314)는 접촉자를 신뢰 접촉자와 비신뢰 접촉자로 분류하게 할 수 있다. 인증 서비스(314)는 접촉자가 접촉 위치에 관계없이 및/또는 정교한 네트워크화 컴퓨팅 환경(200)(도 2) 프레즌스에 따라서 신뢰받을 수 있게 한다.Authentication service 314 may supply and verify certificates, such as certificates for contacts and certificates for other activities and meetings. Authentication service 314 may cause the contacts to be classified as trusted contacts and untrusted contacts. Authentication service 314 allows the contact to be trusted regardless of the contact location and / or in accordance with the sophisticated networked computing environment 200 (FIG. 2) presence.

본 발명의 실시예에서, 접속성 서비스(316)는 네트워크화 컴퓨팅 환경(200)(도 2) 전반에 걸쳐 협력 서비스 플랫폼(302) 서비스 인스턴스들 사이의 통신, 예를 들어 컴퓨터(212)에서의 제1 시그널링 서비스(308) 인스턴스와 컴퓨 터(208)에서의 제2 시그널링 서비스(308) 인스턴스 사이의 통신을 가능하게 한다. 접속성 서비스(316)의 통신 설비는 다른 협력 서비스 플랫폼(302) 서비스(304, 306, 308, 310, 312, 314)가 근본적인 전송 메카니즘에 관계없이 인스턴스들 사이에서 통신할 수 있도록 애플리케이션 프로그래밍 인터페이스(API)로 이용가능하게 될 수 있다.In an embodiment of the invention, the connectivity service 316 may be configured to communicate between the cooperative service platform 302 service instances throughout the networked computing environment 200 (FIG. 2), for example, at the computer 212. Enable communication between the first signaling service 308 instance and the second signaling service 308 instance at the computer 208. The communication facility of the connectivity service 316 may be configured to provide an application programming interface such that other cooperative service platform 302 services 304, 306, 308, 310, 312, and 314 may communicate between instances regardless of the underlying transport mechanism. API).

접속성 서비스(316)는 Microsoft Developer Network(MSDN?) Library(2005년 3월)에서의 Microsoft? Windows? Platform Software Development Kit(SDK)의 Windows? Sockets 2 섹션에서 기술된 Microsoft? Windows? Sockets 2 (Winsock) API와 같은 고레벨 통신 애플리케이션 프로그래밍 인터페이스 및/또는 TCP/IP 스택(332)을 포함할 수 있다. 피어 투 피어(P2P) 서비스(330)는 네트워크 컴퓨팅 환경(200)의 오버레이(overlay) 네트워크 내에서의 접속성을 제공할 수 있다. 예를 들어, 피어 투 피어 서비스(300)는 그래핑, 그루핑, 식별번호 매니저, 및 피어 이름 분석 프로토콜(PNRP) 명칭공간 제공자 애플리케이션 프로그래밍 인터페이스를 포함하여, Microsoft Developer Network(MSDN?) Library(2005년 3월)에서의 Microsoft? Windows? Platform Software Development Kit(SDK)의 Windows? Peer-to-Peer Networking 섹션에서 기술된 피어 투 피어 애플리케이션 프로그래밍 인터페이스에 따라 제공될 수 있다.Connectivity service 316 is available from the Microsoft® Developer Network (MSDN?) Library (March 2005). Windows? Windows in the Platform Software Development Kit (SDK). Microsoft? Described in the Sockets 2 section. Windows? A high level communication application programming interface such as Sockets 2 (Winsock) API and / or TCP / IP stack 332. Peer-to-peer (P2P) service 330 may provide connectivity within an overlay network of network computing environment 200. For example, peer-to-peer service 300 includes a graphing, grouping, identification manager, and peer name resolution protocol (PNRP) namespace provider application programming interface, including the Microsoft Developer Network (MSDN?) Library (2005). Microsoft in March? Windows? Windows in the Platform Software Development Kit (SDK). It can be provided according to the peer-to-peer application programming interface described in the Peer-to-Peer Networking section.

협력 서비스 플랫폼(302)의 서비스(304, 306, 308, 310, 312, 314 및 316)는 협력 객체 모델에서 서로 관련된 협력 객체 세트를 포함하는 프로그램 객체 세트로 구현될 수 있다. 도 4는 본 발명의 실시예에 따른 예시적인 협력 객체 세트 및 예 시적인 협력 객체 모델(400)을 도시하고 있다. 협력 객체 모델(400)은 접촉자 객체(402), 프레즌스 객체(404), MeContact 객체(406) 및 MyPresence 객체(408), 종점(endpoint) 객체(410), 능력 객체(412), 회의 객체(414), 활동 객체(416) 및 발행된 객체(418)를 포함할 수 있다. 물론, 협력 서비스 플랫폼(302)은 각 유형의 협력 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418)의 다수의 인스턴스를 포함할 수 있다.The services 304, 306, 308, 310, 312, 314, and 316 of the cooperative service platform 302 may be implemented as a set of program objects that include a cooperative object set related to each other in the cooperative object model. 4 illustrates an example cooperative object set and an example cooperative object model 400 in accordance with an embodiment of the present invention. The collaboration object model 400 includes contact objects 402, presence objects 404, MeContact objects 406 and MyPresence objects 408, endpoint objects 410, capabilities objects 412, conference objects 414. ), Activity object 416 and published object 418. Of course, the cooperative service platform 302 may include multiple instances of each type of cooperative object 402, 404, 406, 408, 410, 412, 414, 416, and 418.

접촉자 객체(402)는 협력 참가자 및/또는 협력 서비스 플랫폼(302)(도 3)의 사용자를 나타내는 적합한 속성을 포함할 수 있다. 특히, 접촉자 객체(402)는 네트워크화 컴퓨팅 환경(200)(도 2)에서 협력 프레즌스, 예를 들어 접촉자의 프레즌스를 참조할 수 있다. 본 발명의 실시예에서, 접촉자 객체(402)는 프레즌스 객체(404)의 인스턴스를 참조함으로써 협력 프레즌스를 참조한다. 예시적인 접촉자 객체(402)는 도 5와 관련하여 더욱 상세하게 후술된다.The contact object 402 may include suitable attributes representing the cooperative participants and / or users of the cooperative service platform 302 (FIG. 3). In particular, the contact object 402 can refer to the cooperative presence, for example the presence of the contact, in the networked computing environment 200 (FIG. 2). In an embodiment of the invention, the contact object 402 refers to the cooperative presence by referring to an instance of the presence object 404. Exemplary contact object 402 is described below in more detail with respect to FIG. 5.

프레즌스 객체(404)는 협력 프레즌스, 예를 들어 특정 협력 서비스 플랫폼(302) 사용자가 최근 과거의 언젠가 활동했었던 네트워크화 컴퓨팅 환경(200)의 컴퓨터(204, 206, 208, 212, 214 및/또는 216)(도 2) 세트를 나타내는 적합한 속성을 포함할 수 있는데, "최근" 과거는 수초에서부터 수시간, 수일, 심지어 수년에 이르기까지 협력 상황에 따라 다를 수 있다. 프레즌스 객체(404)는 네트워크화 컴퓨팅 환경(200) 위치를 나타내는 하나 이상의 종점 객체(410) 인스턴스를 참조할 수 있다. 종점 객체(410)는 예를 들어, 네트워크화 컴퓨팅 환경(200)의 오버레이 네트워크 내의 한 피어에 대응할 수 있기 때문에, 네트워크화 컴퓨팅 환경(200)의 컴퓨터(204, 206, 208, 212, 214, 216)와 1 대 1로 대응할 필요가 없다.The presence object 404 is a computer 204, 206, 208, 212, 214 and / or 216 of a cooperative presence, for example, a networked computing environment 200 in which a particular cooperative service platform 302 user has been active sometime in the past. (FIG. 2) may include suitable attributes representing the set, where the "last" past may vary depending on the context of cooperation, from seconds to hours, days, or even years. The presence object 404 may reference one or more endpoint object 410 instances representing the networked computing environment 200 location. Because the endpoint object 410 may correspond to, for example, a peer in the overlay network of the networked computing environment 200, the endpoint object 410 may be associated with the computers 204, 206, 208, 212, 214, 216 of the networked computing environment 200. There is no need for a one-to-one correspondence.

프레즌스 객체(404)는 예를 들어, 하나 이상의 협력 종점에서의 협력 능력, 및/또는 프레즌스 객체(404)와 관련된 몇몇 또는 모든 종점 전반의 집합체 협력 능력을 나타내는 0개 이상의 능력 객체(412) 인스턴스를 더 참조할 수 있다. 또한, 프레즌스 객체(404)는 0개 이상의 발행된 객체(418) 인스턴스를 참조할 수 있다. 예시적인 프레즌스 객체(404)는 도 6과 관련하여 더욱 상세하게 후술된다. 예시적인 발행된 객체(418)는 도 7과 관련하여 더욱 상세하게 후술된다. 예시적인 능력 객체(412)는 도 8과 관련하여 더욱 상세하게 후술된다.Presence object 404 may include, for example, zero or more capability object 412 instances representing cooperative capabilities at one or more cooperative endpoints, and / or collective cooperative capabilities across some or all endpoints associated with presence object 404. See further. In addition, the presence object 404 may reference zero or more published object 418 instances. Exemplary presence object 404 is described in more detail below with respect to FIG. 6. Exemplary published object 418 is described below in more detail with respect to FIG. Exemplary capability object 412 is described in more detail below with respect to FIG. 8.

MeContact 객체(406)는 접촉자 객체(402)의 한 유형일 수 있고, 접촉자 객체(402)의 속성 및 비헤비어를 다양한 형태로 계승할 수 있다. MeContact 객체(406)는 협력 서비스 플랫폼 사용자 자신의 접촉자 정보가 다른 사용자의 접촉자 정보에 대해 할 수 있는 특정 역할로 인해, 접촉자 객체(402)와 구별될 수 있다. 예를 들어, MeContact 객체(406)는 특정 사용자의 공지된 협력 접촉자를 나타내는 0개 이상의 접촉자 객체(402) 인스턴스를 참조할 수 있다. MeContact 객체(406)는 예를 들어, 다른 MeContact 객체(406) 인스턴스를 참조할 필요가 없다. 본 발명의 실시예에서는, 불필요한 복잡도가 이렇게 방지되어, 협력 서비스 플랫폼(302)(도 3)의 확장성, 유연성, 유지보수성 및/또는 범위성에 기여한다.MeContact object 406 may be a type of contact object 402 and may inherit the properties and behavior of contact object 402 in various forms. The MeContact object 406 can be distinguished from the contact object 402 due to the specific role that the contact information of the cooperative service platform user can play for the contact information of another user. For example, the MeContact object 406 can reference zero or more contact object objects 402 instances representing known cooperative contacts of a particular user. MeContact object 406 does not need to refer to another MeContact object 406 instance, for example. In embodiments of the present invention, unnecessary complexity is thus avoided, contributing to the scalability, flexibility, maintainability, and / or scalability of the cooperative service platform 302 (FIG. 3).

MeContact 객체(406)는 MyPresence 객체(408) 인스턴스를 더 참조할 수 있다. MyPresence 객체(408)는 프레즌스 객체(404)의 한 유형일 수 있고, 프레즌스 객체(404)의 속성 및 비헤비어를 다양한 형태로 계승할 수 있다. 또 다시, MyPresence 객체(408)는 협력 서비스 플랫폼 사용자 자신의 프레즌스가 다른 사용자의 프레즌스에 대해 할 수 있는 특정 역할로 인해 프레즌스 객체(404)와 구별될 수 있다. 예를 들어, 본 발명의 실시예에서, 사용자는 그 자신의 MyPresence 객체(408) 인스턴스를 명시적으로 갱신할 수 있지만, 다른 사용자의 프레즌스 객체(404) 인스턴스를 갱신할 수는 없다.The MeContact object 406 may further reference the MyPresence object 408 instance. MyPresence object 408 may be one type of presence object 404 and may inherit the properties and behavior of presence object 404 in various forms. Again, the MyPresence object 408 can be distinguished from the presence object 404 due to the specific role the cooperative service platform user's own presence can play for the presence of other users. For example, in an embodiment of the invention, a user may explicitly update his own MyPresence object 408 instance, but not another user's presence object 404 instance.

또한, MeContact 객체(406)는 MeContact 객체(406)와 관련된 사용자가 다른 협력 서비스 플랫폼 사용자와 함께 현재 및/또는 최근에 참가하고 있는 협력 회의를 나타내는 0개 이상의 회의 객체(414) 인스턴스를 참조할 수 있다. 회의 객체(414)는 협력 활동를 나타내는 1개 이상의 활동 객체(416) 인스턴스를 참조할 수 있다. 본 발명의 실시예에서, 회의 객체(414)는 활동 객체(416)의 한 유형이고, 활동 객체(416)의 속성 및 비헤비어를 다양한 형태로 계승할 수 있다. 활동 객체(416)의 한 유형인 결과로서, 회의 객체(414)에 의해 참조된 활동 객체(416) 인스턴스는 회의 객체(414) 인스턴스일 수 있다. 예시적인 MeContact 객체(406)는 도 9와 관련하여 더욱 상세하게 후술된다. 예시적인 회의 객체(414)는 도 10과 관련하여 더욱 상세하게 후술된다.In addition, the MeContact object 406 may refer to zero or more instances of the meeting object 414 that represent a collaboration meeting with which the user associated with the MeContact object 406 is currently and / or recently joined with other collaboration service platform users. have. The meeting object 414 may reference one or more activity object 416 instances representing the cooperative activity. In an embodiment of the invention, the conference object 414 is a type of activity object 416 and may inherit the attributes and behaviors of the activity object 416 in various forms. As a result of being a type of activity object 416, the activity object 416 instance referenced by the meeting object 414 may be a meeting object 414 instance. Exemplary MeContact object 406 is described in more detail below with respect to FIG. 9. Exemplary conference object 414 is described below in more detail with respect to FIG. 10.

각각의 협력 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418)는 협력 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418) 속성의 적합한 조회 및 조작처리를 위해서뿐만 아니라, 협력 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418) 인스턴스의 생성 및 삭제를 위해 애플리케이션 프로그래밍 인터페이스를 제공할 수 있다. 본 발명의 실시예에서, 협력 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418)가 다른 협력 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418)를 참조하는 것으로 설명되는 경우에, 참조된 객체 또는 그 카피는 대신에, 참조하는 객체에 편입되고/되거나 참조하는 객체에 통합될 수 있다. 한 프로그램 객체는 임의의 적합한 프로그램 참조 메카니즘으로 다른 프로그램 객체를 참조할 수 있다. 적합한 프로그램 참조 메카니즘은 목적을 위해 특별히 설계된 프로그램 언어 특징뿐만 아니라, 포인터, 명시적 레퍼런스, 관련된 해시 코드 및 그 등가물을 포함한다.Each cooperating object 402, 404, 406, 408, 410, 412, 414, 416, and 418 is a suitable lookup of attributes of the cooperating object 402, 404, 406, 408, 410, 412, 414, 416, and 418. In addition to handling operations, an application programming interface may be provided for creating and deleting instances of cooperative objects 402, 404, 406, 408, 410, 412, 414, 416, and 418. In an embodiment of the invention, the cooperative objects 402, 404, 406, 408, 410, 412, 414, 416, and 418 are different cooperative objects 402, 404, 406, 408, 410, 412, 414, 416, and 418. When described as referring to a reference object, a referenced object or a copy thereof may instead be incorporated into and / or incorporated into the referencing object. One program object may refer to another program object with any suitable program reference mechanism. Suitable program reference mechanisms include pointers, explicit references, related hash codes, and equivalents, as well as programming language features specifically designed for the purpose.

도 4와 관련하여 앞에서 소개된 프로그램 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418)는 이제 더욱 상세하게 설명된다. 각각의 프로그램 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418)는 하나 이상의 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다. 각각의 애플리케이션 프로그래밍 인터페이스 요소는 협력 서비스 플랫폼(302)(도 3) 서비스를 포함한 컴퓨터(102)(도 1) 시스템 컴포넌트가 프로그램 객체(402, 404, 406, 408, 410, 412, 414, 416 및 418)를 구성하고, 제어하며, 및/또는 그 프로그램 객체와 상호작용할 수 있는 방식을 지정하는 하나 이상의 인터페이스 명세를 포함할 수 있다. 본 분야에 숙련된 기술자에게 명백해질 수 있는 바와 같이, 인터페이스 명세는 객체 속성 명세, 변수 명세, 함수 호출 명세, 프로그램 객체 명세, 요청/응답 메시지 쌍과 같은 메시지 명세, 및/또는 임의의 다른 적합한 프로그래밍 인터페이스 명세를 포함할 수 있다.The program objects 402, 404, 406, 408, 410, 412, 414, 416 and 418 introduced above in connection with FIG. 4 are now described in more detail. Each program object 402, 404, 406, 408, 410, 412, 414, 416, and 418 may include one or more application programming interface elements. Each application programming interface element comprises a computer object 102 (FIG. 1) system component, including a cooperative service platform 302 (FIG. 3) service, with program objects 402, 404, 406, 408, 410, 412, 414, 416 and 418 may include one or more interface specifications that specify how it can configure, control, and / or interact with its program objects. As will be apparent to those skilled in the art, the interface specification may be an object property specification, a variable specification, a function call specification, a program object specification, a message specification such as a request / response message pair, and / or any other suitable programming. It may include an interface specification.

도 5는 본 발명의 실시예에 따른 예시적인 접촉자 객체(500)를 도시하고 있 다. 접촉자 객체(500)는 협력 객체 모델(400)(도 4)에의 편입에 적합하다. 접촉자 객체(500)는 이름 요소(502), 프레즌스 요소(504), 버디 플래그(buddy flag) 요소(506) 및 근접도 요소(508)를 포함하는 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다.5 illustrates an example contact object 500 in accordance with an embodiment of the present invention. The contact object 500 is suitable for incorporation into the cooperative object model 400 (FIG. 4). The contact object 500 may include an application programming interface element including a name element 502, a presence element 504, a buddy flag element 506, and a proximity element 508.

이름 요소(502)는 접촉자 객체(500)와 관련된 접촉자용의 친근한 이름을 포함할 수 있다. 친근한 이름은 예를 들어, 리치 텍스트 스트링(rich text string)으로서 인코드될 수 있다. 프레즌스 요소(504)는 프레즌스 객체(404)(도 4) 인스턴스에 대한 레퍼런스를 포함할 수 있다.The name element 502 can include a friendly name for the contact associated with the contact object 500. The friendly name can be encoded, for example, as a rich text string. Presence element 504 may include a reference to the presence object 404 (FIG. 4) instance.

버디 플래그 요소(506)는 접촉자 객체(500)와 관련된 접촉자가 "버디" 클래스 접촉자로 분류되는 표시자를 포함할 수 있다. 버디로 분류된 접촉자는 여러 가지 방식으로 특권이 주어질 수 있다. 예를 들어, 버디는 신뢰 접촉자일 수 있고, 버디는 우선권, 예를 들어 초대 우선권이 주어질 수 있으며, 버디는 협력 서비스 플랫폼 사용자가 예를 들어, 프레즌스 데이터를 구독하는 접촉자 세트에 자동으로 포함될 수 있다. 버디 클래스 접촉자는 보통의 접촉자보다 계산상 더 비쌀 수 있고, 그들의 수는, 예를 들어 버디 플래그 애플리케이션 프로그래밍 인터페이스 요소(506)에 매입된 테스트로 제한될 수 있다.The buddy flag element 506 may include an indicator that a contact associated with the contact object 500 is classified as a “buddy” class contact. Contacts classified as buddies can be privileged in several ways. For example, a buddy may be a trust contact, a buddy may be given priority, for example an invitation priority, and the buddy may be automatically included in a set of contacts to which a cooperative service platform user subscribes to, for example, presence data. . Buddy class contacts may be more computationally expensive than normal contacts, and their number may be limited, for example, to tests embedded in the buddy flag application programming interface element 506.

근접도 요소(508)는 물리적 근접도 메트릭 및/또는 가상 근접도 메트릭을 포함할 수 있다. 예를 들어, 물리적 근접도 메트릭은 무선 네트워크 인터페이스에서 수신된 신호 강도의 측정치일 수 있다. 물론, 근접도 애플리케이션 프로그래밍 인터페이스 요소(508)는 근접도 조회에 응답하여 단일 메트릭으로 제한될 필요가 없 다. 예를 들어, 근접도 조회는 미가공 근접도 메트릭, 시간-평균화 근접도 메트릭, 양자화 근접도 메트릭("신호 강도 바") 및/또는 임의의 적합한 근접도 메트릭을 요청할 수 있다.Proximity element 508 may include a physical proximity metric and / or a virtual proximity metric. For example, the physical proximity metric can be a measure of signal strength received at the wireless network interface. Of course, the proximity application programming interface element 508 need not be limited to a single metric in response to the proximity query. For example, the proximity query may request a raw proximity metric, a time-averaged proximity metric, a quantized proximity metric (“signal strength bar”), and / or any suitable proximity metric.

도 6은 본 발명의 실시예에 따른 예시적인 프레즌스 객체(600)를 도시하고 있다. 프레즌스 객체(600)는 협력 객체 모델(400)(도 4)에의 편입에 적합하다. 프레즌스 객체(600)는 리치 텍스트 설명 요소(602), 종점 요소(604), 집합체 상태 요소(606), 집합체 능력 요소(608), 발행된 객체 요소(610), 새로운 활동으로의 초대 요소(612), 기존 활동으로의 초대 요소(614), 유형에 의한 능력 찾기 요소(616), 유형에 의한 발행된 객체 찾기 요소(618) 및 발행 객체 요소(620)를 포함하는 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다.6 illustrates an example presence object 600 in accordance with an embodiment of the present invention. The presence object 600 is suitable for incorporation into the cooperative object model 400 (FIG. 4). Presence object 600 includes rich text description element 602, endpoint element 604, aggregate state element 606, aggregate capability element 608, published object element 610, invitation element to new activity 612. ), An application programming interface element including an invitation element 614 to an existing activity, a capability finding element 616 by type, a published object finding element 618 by type, and a publishing object element 620. Can be.

리치 텍스트 설명 요소(602)는 프레즌스 객체(600)와 관련된 네트워크화 컴퓨팅 환경(200)(도 2) 프레즌스를 설명하는 리치 텍스트 스트링을 포함할 수 있다. 단순한 예제는 "Currently in Building 9", "Playing Halo?, Level 4" 및 "Unavailable"을 포함할 수 있다. 종점 요소(604)는 하나 이상의 협력 활동에 활동적인 참가자, 최근에 활동적인 참가자, 및/또는 활동적으로 될 수 있는 참가자인 협력 종점 세트를 포함할 수 있다. 적합한 협력 종점의 예는 컴퓨터(204, 206, 208, 212, 214 및 216), 및 네트워크화 컴퓨팅 환경(200)의 오버레이 네트워크의 피어를 포함할 수 있다.The rich text description element 602 may include a rich text string describing the presence of the networked computing environment 200 (FIG. 2) associated with the presence object 600. Simple examples may include "Currently in Building 9", "Playing Halo ?, Level 4", and "Unavailable". The endpoint element 604 may include a set of cooperative endpoints that are active participants, recently active participants, and / or active participants in one or more cooperative activities. Examples of suitable cooperative endpoints may include computers 204, 206, 208, 212, 214, and 216, and peers in an overlay network of networked computing environment 200.

집합체 상태 요소(606)는 협력 종점 세트 전반의 협력 프레즌스를 나타내는 집합체 프레즌스 상태 표시자를 포함할 수 있다. 각각의 협력 종점은 관련된 프레 즌스 상태, 예를 들어 ONLINE, AWAY, OUT TO LUNCH, BE RIGHT BACK, IDLE, ON THE PHONE 또는 BUSY를 가질 수 있다. 종점 세트와 관련된 집합체 프레즌스 상태는 세트 내의 종점들 중의 어느 하나와 관련된 상태와 동일할 필요는 없다. 집합체 프레즌스 상태는 세트 내의 종점들의 최소한 하나와 동일한 경우라도, 그외 다른 종점들의 하나 이상과 다를 수 있다.Aggregate state element 606 may include an aggregate presence status indicator that represents the cooperative presence across the cooperative endpoint set. Each cooperative endpoint may have an associated presence state, for example ONLINE, AWAY, OUT TO LUNCH, BE RIGHT BACK, IDLE, ON THE PHONE or BUSY. The aggregate presence state associated with the end point set need not be the same as the state associated with any one of the end points in the set. The collective presence state may be different from one or more of the other endpoints, even if it is the same as at least one of the endpoints in the set.

집합체 프레즌스 상태는 여러 가지 집합체 프레즌스 상태 알고리즘 중의 하나 이상의 알고리즘으로 판정될 수 있다. 프레즌스 상태 레벨은 랭킹될 수 있고, 집합체 상태는 종점 세트 내에서 최고 랭킹 상태로 설정될 수 있다. 집합체 상태는 개별 상태 값의 가중화된 평균, 또는 개별 상태 값의 다른 적합한 선형 또는 비선형 변환일 수 있다. 개별 상태 값은 또한 변환되기 전에 적합하게 분류될 수 있다. 이용된 집합체 프레즌스 상태 알고리듬은 세트 내의 개별 종점의 수에 의존할 수 있다.The aggregate presence state may be determined by one or more of the various aggregate presence state algorithms. The presence state level can be ranked, and the aggregate state can be set to the highest ranking state within the endpoint set. The aggregate state may be a weighted average of the individual state values, or other suitable linear or nonlinear transformation of the individual state values. Individual state values may also be appropriately classified before conversion. The aggregate presence state algorithm used may depend on the number of individual endpoints in the set.

집합체 능력 요소(608)는 협력 프레즌스와 관련된 집합체 능력의 콜렉션을 포함할 수 있다. 협력 프레즌스 내의 각 개별 종점은 능력, 예를 들어 협력 활동에 관한 능력의 세트를 그것과 함께 관련시켰을 수 있다. 집합체 능력은 각각의 개별 종점의 각각의 능력의 단순한 집합체일 수 있다. 한편, 집합체 능력의 콜렉션은 각각의 개별 종점에서 존재하는 그들 능력에 제한될 수 있다. 더욱 정교한 집합체 능력 판정 알고리즘이 가능하듯이, 이들 극단의 조합이 가능하다. 예를 들어, 집합체 능력의 콜렉션은 가중화 평균 처리의 결과이거나, 또는 개별 종점의 능력의 다른 적합한 선형 또는 비선형 변환의 결과일 수 있다. 또한, 집합체 능력 랭크 또는 퍼센트는 집합체 능력 콜렉션 내의 각 능력과 관련될 수 있다.Aggregate capability element 608 may include a collection of aggregate capabilities associated with a cooperative presence. Each individual endpoint in the cooperative presence may associate with it a set of capabilities, eg, a cooperative activity. The aggregate capability may be a simple aggregate of each capability of each individual endpoint. On the other hand, the collection of aggregate capabilities may be limited to those capabilities that exist at each individual endpoint. Just as more sophisticated aggregate capability determination algorithms are possible, a combination of these extremes is possible. For example, the collection of aggregate capabilities may be the result of weighted average processing, or may be the result of other suitable linear or nonlinear transformations of the capabilities of individual endpoints. In addition, an aggregate capability rank or percentage may be associated with each capability in the aggregate capability collection.

발행된 객체 요소(610)는 협력 프레즌스와 관련된 발행된 객체의 콜렉션을 포함할 수 있다. 능력 객체(412)(도 4)는 발행된 객체(418)의 한 유형일 수 있지만, 이 둘은, 능력 객체(412)의 인스턴스와 관련된 능력은 전형적으로 수명이 긴데(예를 들어, 수일, 수주, 심지어 수년 정도) 반해, 기본적인 발행된 객체(418)의 인스턴스와 관련된 발행된 데이터는 전형적으로 수명이 짧다(예를 들어, 수초, 수분 또는 수시간 정도)는 점에서 구별된다. 이 구별은 컴퓨터 시스템 성능을 최적화하기 위해 이용될 수 있다.The published object element 610 may include a collection of published objects associated with the cooperative presence. Competency object 412 (FIG. 4) may be one type of published object 418, although both are typically associated with an instance of competency object 412 that has a long lifetime (eg, days, weeks In contrast, even years, published data associated with an instance of a basic published object 418 is typically short-lived (eg, seconds, minutes or hours). This distinction can be used to optimize computer system performance.

새로운 활동으로의 초대 요소(612)는 협력 서비스 플랫폼(302)(도 3) 사용자가 프레즌스 객체(600)와 관련된 접촉자에게 새로운 협력 활동에 참가하라고 초대할 수 있게 할 수 있다. 활동를 호스트하는 관련된 회의가 아직 존재하지 않을 수 있고, 초대가 수락되면 그것이 생성될 수도 있다. 초대는 종점 요소(604)에 의해 참조된 각 종점에 전달될 수 있는데, ONLINE 프레즌스 상태와 관련된 그 종점들에 대해서만, 초대는 순서대로, 예를 들어 그 순서로 각 종점과 관련된 프레즌스 상태에 의해 결정된 순서대로, 또는 다른 적합한 초대 전달 전략으로, 협력 프레즌스와 관련된 각 종점에 전달될 수 있다.Invite to New Activity Element 612 may enable a user of cooperative service platform 302 (FIG. 3) to invite a contact associated with the presence object 600 to join a new cooperative activity. The associated meeting that hosts the activity may not yet exist and may be created if the invitation is accepted. The invitation can be delivered to each endpoint referenced by the endpoint element 604, only for those endpoints associated with the ONLINE presence status, the invitation is determined in order, for example by the presence status associated with each endpoint in that order. In order, or in another suitable invitation delivery strategy, they may be delivered to each endpoint associated with the cooperative presence.

기존 활동으로의 초대 애플리케이션 프로그래밍 인터페이스 요소(614)는 기존 회의 및/또는 활동에 참석하라고 접촉자를 초대할 때 바람직할 수 있다. 회의 및/또는 활동이 이미 설정되어 있을 때, 몇몇 협력 파라미터는 협의되지 않을 수도 있고, 또는 보다 적게 협의될 수 있는데, 예를 들어 현재의 참가자들에 의해 사용 중인 협력 파라미터에 의해 결정된 범위 내에서만 협의될 수 있다. 또한, 보다 적은 유연성은 참가 능력이 있는, 따라서 초대를 받을 후보인 프레즌스의 종점을 제한할 수 있다.Invite to Existing Activity Application programming interface element 614 may be desirable when inviting a contact to attend an existing meeting and / or activity. When meetings and / or activities are already established, some collaboration parameters may or may not be negotiated, for example only within the scope determined by the collaboration parameters in use by current participants. Can be. In addition, less flexibility may limit the end point of presence that is capable of participation, and therefore, a candidate to be invited.

유형에 의한 능력 찾기 요소(616)는 협력 서비스 플랫폼(302)(도 3) 사용자가 다수의 능력 유형 중의 하나 이상과 관련된 능력을 찾기 위해 프레즌스 객체(600)와 관련된 프레즌스를 조회할 수 있게 할 수 있다. 능력 유형의 예는 채트, 오디오 및 비디오와 같은 애플리케이션 유형; 오디오 출력, 오디오 입력, 비디오 출력, 비디오 입력과 같은 애플리케이션 능력; 대역폭, 오디오 품질 및 비디오 해상도와 같은 종점 자원; 또는 임의의 적합한 협력 능력 유형을 포함한다. 유형에 의한 능력 찾기 요소(616)는 개별 종점의 능력 및/또는 집합체 프레즌스 능력으로 조회에 응답할 수 있다.The capability finding element 616 by type may enable a user of the collaborative services platform 302 (FIG. 3) to query the presence associated with the presence object 600 to find capabilities related to one or more of a number of capability types. have. Examples of capability types include application types such as chat, audio, and video; Application capabilities such as audio output, audio input, video output, video input; Endpoint resources such as bandwidth, audio quality and video resolution; Or any suitable type of cooperative capability. The capability finding element 616 by type may respond to the query with the capability of the individual endpoint and / or the aggregate presence capability.

유형에 의한 발행된 객체 찾기 요소(618)는 협력 서비스 플랫폼(302)(도 3) 사용자가 프레즌스와 관련된 발행된 객체, 예를 들어 발행된 객체 요소(610)와 관련된 발행된 객체를 찾기 위해 프레즌스 객체(600)와 관련된 프레즌스를 조회할 수 있게 할 수 있다. 발행된 객체 유형은 관련된 리치 텍스트 스트링에 의해 판정될 수 있다. 예를 들어, 동일한 리치 텍스트 스트링과 관련된 그들 발행된 객체(418)(도 4) 인스턴스는 동일한 유형인 것으로 판정될 수 있다.Published object finder element 618 by type allows the cooperative services platform 302 (FIG. 3) user to locate published objects associated with the presence, for example, published objects associated with published object element 610. It may be possible to query the presence associated with the object 600. The object type issued can be determined by the associated rich text string. For example, those issued object 418 (FIG. 4) instances associated with the same rich text string may be determined to be of the same type.

발행 객체 요소(620)는 프레즌스와 관련된 데이터의 발행을 가능하게 할 수 있다. 예를 들어, 발행된 객체 요소(610)에 의해 유지된 프레즌스 객체 세트는 갱신될 수 있다. 본 발명의 실시예에서, 발행 객체 애플리케이션 프로그래밍 인터페 이스 요소(620)는 발행된 객체 애플리케이션 프로그래밍 인터페이스 요소(610)에 편입될 수 있다.The publish object element 620 may enable publishing of data related to the presence. For example, the presence object set maintained by the issued object element 610 may be updated. In an embodiment of the invention, the publishing object application programming interface element 620 may be incorporated into the published object application programming interface element 610.

도 7은 본 발명의 실시예에 따른 예시적인 발행된 객체(700)를 도시하고 있다. 발행된 객체(700)는 협력 객체 모델(400)(도 4)에의 편입에 적합하다. 발행된 객체(700)는 권한있는 구독자 요소(702) 및 발행된 데이터 요소(704)를 포함하는 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다.7 illustrates an example published object 700 according to an embodiment of the invention. The published object 700 is suitable for incorporation into the cooperative object model 400 (FIG. 4). The published object 700 may include an application programming interface element that includes an authorized subscriber element 702 and a published data element 704.

권한있는 구독자 요소(702)는 발행된 객체(700)와 관련된 데이터를 구독할 권한을 부여받은 접촉자와 관련된 하나 이상의 접촉자 객체(402)(도 4) 인스턴스를 참조할 수 있다. 데이터 액세스 제어는 예를 들어 허용 또는 차단으로 대충 나누어질 수 있고, 또는 예를 들어 데이터 작성, 판독, 갱신 및 삭제 특권에 관한 제어를 포함하여 정교하게 나누어질 수 있다. 발행된 데이터 요소(704)는 발행된 객체(700)와 관련된 발행된 데이터 세트를 유지할 수 있다. 임의의 적합한 데이터 세트는 발행된 객체(700)와 관련하여 발행될 수 있다.Authorized subscriber element 702 may reference one or more contactor object 402 (FIG. 4) instances associated with a contact authorized to subscribe to data associated with published object 700. Data access control can be roughly divided into, for example, permit or block, or can be finely divided, including, for example, control over data creation, read, update, and delete privileges. The published data element 704 may maintain a published data set associated with the published object 700. Any suitable data set may be published in connection with the published object 700.

도 8은 본 발명의 실시예에 따른 예시적인 능력 객체(800)를 도시하고 있다. 능력 객체(800)는 협력 객체 모델(400)(도 4)에의 편입에 적합하다. 능력 객체(800)는 관련된 애플리케이션 요소(802) 및 애플리케이션 데이터 요소(804)를 포함하는 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다.8 illustrates an example capability object 800 in accordance with an embodiment of the invention. The capability object 800 is suitable for incorporation into the cooperative object model 400 (FIG. 4). The capability object 800 can include an application programming interface element that includes an associated application element 802 and an application data element 804.

관련된 애플리케이션 요소(802)는 능력 객체(800)와 관련된 능력을 구현하는 협력 애플리케이션 세트에 대한 레퍼런스를 포함할 수 있다. 애플리케이션 데이터 요소(804)는 관련된 애플리케이션 요소(802)에 의해 참조된 협력 애플리케이션 세 트의 각각을 구성하는데 필요한 데이터 및/또는 데이터 명세를 포함할 수 있다.The associated application element 802 may include a reference to a set of collaborative applications that implement the capability associated with the capability object 800. The application data element 804 may include data and / or data specifications needed to construct each of the cooperative application sets referenced by the associated application element 802.

도 9는 본 발명의 실시예에 따른 예시적인 MeContact 객체(900)를 도시하고 있다. MeContact 객체(900)는 협력 객체 모델(400)(도 4)에의 편입에 적합하다. MeContact 객체(900)는 접촉자 요소(902), 버디 요소(904), 권한있는 구독자 요소(906), 활동적인 구독자 요소(908), 회의 요소(910), 유형에 의한 능력 찾기 요소(912) 및 유형에 의한 발행된 객체 찾기 요소(914)를 포함하는 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다.9 illustrates an exemplary MeContact object 900 in accordance with an embodiment of the present invention. The MeContact object 900 is suitable for incorporation into the cooperative object model 400 (FIG. 4). MeContact object 900 includes contact element 902, buddy element 904, privileged subscriber element 906, active subscriber element 908, conferencing element 910, capability finding element 912 by type, and It may include an application programming interface element that includes a published object finder element 914 by type.

접촉자 요소(902)는 MeContact 객체(900)와 관련된 협력 서비스 플랫폼(302)(도 3) 사용자에게 공지된 접촉자와 관련된 접촉자 객체(402)(도 4) 인스턴스 세트에 대한 레퍼런스를 포함할 수 있다. 버디 요소(904)는 협력 서비스 플랫폼(302)(도 3) 사용자에게 공지되어 있고, 예를 들어 접촉자 객체(500)의 버디 플래그 요소(506)(도 5)에 의해 나타낸 바와 같이, 또한 버디 클래스 접촉자인 접촉자와 관련된 접촉자 객체(402)(도 4) 인스턴스 세트에 대한 레퍼런스를 포함할 수 있다. 버디 요소(904)에 의해 참조된 접촉자 객체(402) 인스턴스 세트 내의 단순한 프레즌스는 관련된 접촉자가 버디 클래스 접촉자라는 것을 나타낼 수 있다. 접촉자 요소(902) 및 버디 요소(904)에 의해 참조된 접촉자 객체(402) 인스턴스 세트는 겹칠 수 있지만, 본 발명의 최소한 한 실시예에서, 이 세트들은 배타적이다.The contactor element 902 may include a reference to a set of contactor objects 402 (FIG. 4) associated with a contact known to the user of the collaboration service platform 302 (FIG. 3) associated with the MeContact object 900. The buddy element 904 is known to the user of the cooperative service platform 302 (FIG. 3) and, for example, as shown by the buddy flag element 506 (FIG. 5) of the contactor object 500, also the buddy class. It may include a reference to a set of contact object 402 (FIG. 4) associated with the contact that is the contact. A simple presence in the set of contact object 402 instances referenced by the buddy element 904 may indicate that the associated contact is a buddy class contact. The contact object 402 instance sets referenced by the contact element 902 and the buddy element 904 may overlap, but in at least one embodiment of the invention, these sets are exclusive.

권한있는 구독자 요소(906)는 능력 데이터와 같은 MeContact 객체(900)와 관련된 발행된 데이터를 구독할 권한을 부여받은 접촉자와 관련된 접촉자 객체(402)(도 4) 인스턴스 세트에 대한 레퍼런스를 포함할 수 있다. 발행된 데이터 액 세스 제어는 예를 들어 모든 발행된 데이터로의 액세스 차단 또는 허용으로 넓게 나누어질 수 있고, 또는 예를 들어 각각의 발행된 객체(418)에 대한 작성, 판독, 갱신 및/또는 삭제 특권, 또는 그 조합으로 정교하게 나누어질 수 있다.Privileged subscriber element 906 may include a reference to a set of contactor objects 402 (FIG. 4) associated with contactors authorized to subscribe to published data associated with MeContact object 900, such as capability data. have. Published data access control can be broadly divided into, for example, blocking or allowing access to all published data, or creating, reading, updating and / or deleting, for example, each published object 418. Can be subdivided into privileges, or a combination thereof.

활동적인 가입자 요소(908)는 MeContact 객체(900)와 관련된 협력 서비스 플랫폼(302)(도 3) 사용자에 의해 발행된 데이터를 활동적으로 구독하게 되는 접촉자와 관련된 접촉자 객체(402) 인스턴스 세트에 대한 레퍼런스를 포함할 수 있다. 물론, 활동적인 구독자 요소(908)에 의해 참조된 접촉자 객체(402) 인스턴스는 권한있는 구독자 요소(906)에 의해 유지된 사용권한에 따라야 된다.The active subscriber element 908 is a reference to a set of contactor object 402 instances associated with the contactor who will actively subscribe to data published by the user of the collaborative services platform 302 (FIG. 3) associated with the MeContact object 900. It may include. Of course, the contactor object 402 instance referenced by the active subscriber element 908 must conform to the permissions maintained by the authorized subscriber element 906.

회의 요소(910)는 MeContact 객체(900)와 관련된 협력 서비스 플랫폼(302)(도 3) 사용자가 현재 참여하고 있는, 사용자가 최근에 참여한, 및/또는 사용자가 곧 참여할 회의와 관련된 회의 객체(414)(도 4) 인스턴스 세트에 대한 레퍼런스를 포함할 수 있다.The conferencing element 910 is a conferencing service platform 302 (FIG. 3) associated with the MeContact object 900 (FIG. 3) the meeting object 414 that the user has recently joined, and / or the meeting with which the user will soon join. (FIG. 4) may include a reference to a set of instances.

유형에 의한 능력 찾기 요소(912)는 협력 서비스 플랫폼(302)(도 3) 사용자가 다수의 능력 유형 중의 하나 이상과 관련된 능력을 찾기 위해 MeContact 객체(900)와 관련된 접촉자를 조회할 수 있게 할 수 있다. 예를 들어, 유형에 의한 능력 찾기 요소(912)는 접촉자 요소(902), 버디 요소(904) 및/또는 MeContact 객체(900) 자체에 의해 참조된 접촉자 객체(402)(도 4) 인스턴스를 조회할 수 있다. 유형에 의한 능력 찾기 요소(912)는 개별 종점의 능력 및/또는 집합체 능력으로 조회에 응답할 수 있다. 유형에 의한 발행된 객체 찾기 요소(914)는 사용자가 발행된 데이터를 찾기 위해 MeContact 객체(900)와 관련된 접촉자를 조회할 수 있게 할 수 있다. 유형에 의한 능력 찾기 요소(912)에서와 같이, 유형에 의한 발행된 객체 찾기 요소(914)는 접촉자 요소(902), 버디 요소(904) 및/또는 MeContact 객체(900) 자체에 의해 참조된 발행된 객체(418) 인스턴스를 조회할 수 있다.The capability finding element 912 by type may enable a user of the collaborative services platform 302 (FIG. 3) to query contacts associated with the MeContact object 900 to find capabilities associated with one or more of a number of capability types. have. For example, the capability finding element 912 by type may query the contactor element 902, the buddy element 904, and / or the contactor object 402 (FIG. 4) instance referenced by the MeContact object 900 itself. can do. The capability finding element 912 by type may respond to the query with the capabilities and / or aggregate capabilities of the individual endpoints. The published object finder element 914 by type may enable a user to query a contact associated with the MeContact object 900 to find published data. As with the capability finding element 912 by type, the published object finding element 914 by type is a publication referenced by the contactor element 902, the buddy element 904, and / or the MeContact object 900 itself. Retrieved object 418 instance.

도 10은 본 발명의 실시예에 따른 예시적인 회의 객체(1000)를 도시하고 있다. 회의 객체(1000)는 협력 객체 모델(400)(도 4)에의 편입에 적합하다. 회의 객체(1000)는 세션 정보 요소(1002), 활동 요소(1004), 관리자 요소(1006), 권한있는 멤버 요소(1008) 및 개시 활동 요소(1010)를 포함하는 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다.10 illustrates an example conference object 1000 in accordance with an embodiment of the present invention. The conference object 1000 is suitable for incorporation into the cooperative object model 400 (FIG. 4). The conference object 1000 may include an application programming interface element including a session information element 1002, an activity element 1004, an administrator element 1006, an authorized member element 1008, and an initiation activity element 1010. have.

본 발명의 실시예에서, 회의, 예를 들어 회의 객체(1000)와 관련된 회의의 역할은 하나 이상의 협력 서비스 플랫폼(302)(도 3) 사용자가 참가하고 있는 하나 이상의 협력 활동의 조직, 관리 및/또는 유지보수를 포함한다. 세션 정보 요소(1002)는 회의 레벨 세션 정보를 포함할 수 있다. 성능 최적화는 회의 레벨에서 활동 레벨 세션 정보를 수집함으로써 달성될 수 있다. 활동 요소(1004)는 하나 이상의 활동 객체(416)(도 4) 인스턴스에 대한 레퍼런스를 포함할 수 있다.In an embodiment of the present invention, the role of a meeting, eg, a meeting associated with the meeting object 1000, is to organize, manage, and / or manage one or more collaborative activities in which one or more collaborative services platform 302 (FIG. 3) users participate. Or maintenance. Session information element 1002 may include conference level session information. Performance optimization can be achieved by collecting activity level session information at the conference level. Activity element 1004 may include a reference to one or more activity object 416 (FIG. 4) instances.

관리자 요소(1006)는 회의의 관리자로서 행동할 권한을 부여받은 접촉자와 관련된 하나 이상의 접촉자 객체(402)(도 4) 인스턴스를 참조할 수 있다. 관리 특권은 권한있는 참가자 및/또는 활동의 추가 및 제거를 포함할 수 있다. 권한있는 멤버 요소(1008)는 회의와 관련된 활동에 참가할 권한을 부여받은 접촉자와 관련된 하나 이상의 접촉자 객체(402) 인스턴스를 참조할 수 있다. 권한부여는 넓게 나누어져서, 예를 들어 모든 회의 활동에 참가하는 것으로부터 특정 접촉자를 허용하거 나 차단할 수 있고, 또는 정교하게 나누어져서, 예를 들어 권한은 새로운 활동을 개시하거나 기존의 활동을 종료하는 것, 개별 활동에 완전히 참가하는 것, 또는 제한된 방식(예를 들어, "관측자 상태")으로 참가하는 것, 또는 그 조합으로 나누어질 수 있다.Manager element 1006 may reference one or more contactor object 402 (FIG. 4) instances associated with a contact authorized to act as a manager of the conference. Administrative privileges may include the addition and removal of authorized participants and / or activities. Privileged member element 1008 may reference one or more contactor object 402 instances associated with a contact authorized to participate in an activity related to the meeting. Authorization can be broadly divided, for example to allow or block specific contacts from participating in all meeting activities, or elaborately divided, for example, to entitle new activities or terminate existing activities. One, fully participating in an individual activity, or participating in a limited manner (eg, "observer status"), or a combination thereof.

개시 활동 요소(1010)는 회의에 새로운 활동을 추가할 수 있다. 활동에의 가입 및 탈퇴는 회의에 의해, 활동에 의해, 또는 이 둘의 조합에 의해 관리될 수 있다. 각각의 경우에, 회의 객체(1000) 애플리케이션 프로그래밍 인터페이스 요소는 관리자 요소(1006) 및/또는 권한있는 멤버 요소(1008)에 따라 시행할 수 있다.Initiation activity element 1010 may add new activities to the meeting. Joining and leaving an activity can be managed by a meeting, by an activity, or by a combination of both. In each case, the conference object 1000 application programming interface element may enforce in accordance with the administrator element 1006 and / or the authorized member element 1008.

예를 들어, 협력 서비스 플랫폼(302)(도 3)에 의해, 그리고 협력 객체 모델(400)(도 4)에 따라 수행된 상세한 방법이 이제 설명된다. 도 11은 본 발명의 실시예에 따른, 협력 서비스 플랫폼(302)에 의해 수행된 예시적인 단계를 도시하고 있다. 단계(1102)에서, 접촉자 객체(402) 인스턴스가 선택될 수 있다. 예를 들어, 접촉자 저장부(318)에 저장된 접촉자 객체(402) 인스턴스는 접촉자 관리 서비스(304)의 사용자 인터페이스로 선택될 수 있다.For example, the detailed method performed by the cooperative service platform 302 (FIG. 3) and in accordance with the cooperative object model 400 (FIG. 4) is now described. 11 illustrates exemplary steps performed by the cooperative service platform 302, in accordance with an embodiment of the present invention. At step 1102, a contactor object 402 instance may be selected. For example, a contact object 402 instance stored in contact storage 318 may be selected as the user interface of contact management service 304.

단계(1104)에서, 선택된 접촉자 객체(402)(도 4) 인스턴스는 그것과 관련된 프레즌스 객체(404) 인스턴스를 찾기 위해 조회될 수 있다. 예를 들어, 선택된 접촉자 객체(500)의 프레즌스 요소(504)(도 5)는 관련된 프레즌스 객체(404) 인스턴스를 액세스하기 위해 이용될 수 있다.At step 1104, the selected contact object 402 (FIG. 4) instance may be queried to find the presence object 404 instance associated with it. For example, the presence element 504 (FIG. 5) of the selected contact object 500 may be used to access the associated presence object 404 instance.

단계(1106)에서, 선택된 접촉자 객체(402)(도 4) 인스턴스와 관련된 접촉자가 네트워크화 컴퓨팅 환경(200)(도 2)에 존재하는지 판정될 수 있다. 예를 들어, 접촉자의 집합체 프레즌스 상태는 단계(1104)에서 검색된 프레즌스 객체(600)의 집합체 상태 요소(606)로부터 얻어질 수 있고, 접촉자의 집합체 프레즌스 상태가 ONLINE이면, 접촉자는 존재하는 것으로 판정될 수 있다. 접촉자가 존재하는 것으로 판정되면, 절차는 단계(1108)로 진행될 수 있다. 그렇지 않으면, 절차는 종료될 수 있다. 접촉자는 이때 협력에 이용할 수 없다.In step 1106, it may be determined whether a contact associated with the selected contact object 402 (FIG. 4) instance exists in the networked computing environment 200 (FIG. 2). For example, the collective presence state of the contact may be obtained from the aggregate state element 606 of the presence object 600 retrieved in step 1104, and if the contact presence state of the contact is ONLINE, the contact is determined to be present. Can be. If it is determined that the contact exists, the procedure may proceed to step 1108. Otherwise, the procedure may end. Contact is not available for cooperation at this time.

대안적으로, 단계(1104 및 1106)는 선택된 접촉자의 프레즌스 정보를 구독하고, 단계(1008)로 진행하기 전에, 선택된 접촉자가 존재한다는 통지가 표시될 때까지 기다리는 단계로 대체될 수 있다. 이 대안은 파선(1110)으로 표시된다.Alternatively, steps 1104 and 1106 can be replaced by subscribing to the presence information of the selected contact and waiting for the notification that the selected contact is present before proceeding to step 1008. This alternative is indicated by dashed line 1110.

단계(1108)에서, 선택된 접촉자 객체(402)(도 4)는 관련된 능력 객체(412) 인스턴스 세트를 찾기 위해 조회될 수 있다. 예를 들어, 단계(1104)(및/또는 단계(1110))에서 검색된 프레즌스 객체(404) 인스턴스의 유형에 의한 능력 찾기 요소(606)(도 6)는 적절한 능력 세트를 얻기 위해 이용될 수 있다. 검사될 특정 능력 세트는 목표 협력 활동 또는 활동들에 의존할 수 있다. 예를 들어, 음성 수반 회의는 오디오 입력 능력을 확인하게 할 수 있다. 단계(1112)에서, 선택된 접촉자가 요구된 능력을 갖는지 판정될 수 있다. 선택된 접촉자가 요구된 능력을 갖지 않으면, 절차는 도 12의 단계(1202)로 진행할 수 있다. 그렇지 않으면, 절차는 종료될 수 있다. 단계(1112)는 단순한 테스트에 제한될 필요가 없다. 단계(1112)는 임의의 능력 세트가 목표 활동 또는 활동들에 충분한지 판정하기 위해, 예를 들어 시그널링 서비스(308)(도 3)에 의해 조정된 협상을 포함할 수 있다.In step 1108, the selected contact object 402 (FIG. 4) may be queried to find a set of related capability object 412 instances. For example, the capability finding element 606 (FIG. 6) by the type of presence object 404 instance retrieved in step 1104 (and / or 1110) may be used to obtain an appropriate set of capabilities. . The specific set of capabilities to be examined may depend on the target cooperative activity or activities. For example, the attendance conference may confirm audio input capability. At step 1112, it may be determined whether the selected contact has the required capability. If the selected contact does not have the required capabilities, the procedure may proceed to step 1202 of FIG. Otherwise, the procedure may end. Step 1112 need not be limited to simple testing. Step 1112 may include negotiation negotiated by the signaling service 308 (FIG. 3), for example, to determine if any capability set is sufficient for the target activity or activities.

도 12는 본 발명의 실시예에 따른, 협력 서비스 플랫폼(302)에 의해 수행된 또 다른 예시적인 단계를 도시하고 있다. 도 11과 도 12의 단계는 참조번호(1114 및 1116)가 붙은 원으로 연결된다. 선택된 접촉자가 네트워크화 컴퓨팅 환경(200)(도 2)에 존재하고, 원하는 협력 활동 또는 활동들에 참가할 수 있으면, 하나 이상의 초대는 단계(1202)에서 선택된 접촉자에게 보내질 수 있다. 예를 들어, 초대는 컴퓨터(212)(도 2)에서 초대 서비스(326)(도 3)에 의해 보내질 수 있다.12 illustrates yet another exemplary step performed by the cooperative service platform 302, in accordance with an embodiment of the present invention. The steps of FIGS. 11 and 12 are connected by circles labeled 1114 and 1116. If the selected contact exists in the networked computing environment 200 (FIG. 2) and is able to participate in the desired collaborative activity or activities, one or more invitations may be sent to the selected contact at step 1202. For example, the invitation may be sent by the invitation service 326 (FIG. 3) at the computer 212 (FIG. 2).

단계(1204)에서, 하나 이상의 초대는 선택된 접촉자에 의해 수신될 수 있다. 예를 들어, 초대 중의 하나는 컴퓨터(208)(도 2)에서 초대 서비스(326)(도 3)에 의해 수신될 수 있다. 단계(1206)에서, 선택된 접촉자는 하나 이상의 초대에 응답할 수 있다. 예를 들어, 선택된 접촉자는 초대 중의 하나에 응답하기 위해 컴퓨터(208)에서 초대 서비스(326)의 사용자 인터페이스를 이용할 수 있다.At step 1204, one or more invitations may be received by the selected contact. For example, one of the invitations may be received by the invitation service 326 (FIG. 3) at the computer 208 (FIG. 2). At step 1206, the selected contact may respond to one or more invitations. For example, the selected contact may use the user interface of the invitation service 326 at the computer 208 to respond to one of the invitations.

단계(1208)에서, 초대가 수락되었는지 판정될 수 있다. 예를 들어, 컴퓨터(212)에서의 초대 서비스(326)는 단계(1206)에서 보내진 응답을 수신할 수 있고, 응답 내용은 초대가 수락되었는지 판정할 수 있다. 초대가 수락되면, 절차는 단계(1210)로 진행할 수 있다. 그렇지 않으면, 절차는 종료될 수 있다.At step 1208, it may be determined whether the invitation has been accepted. For example, the invitation service 326 at the computer 212 can receive the response sent in step 1206, and the response content can determine whether the invitation has been accepted. If the invitation is accepted, the procedure may proceed to step 1210. Otherwise, the procedure may end.

단계(1204, 1206 및 1208)는 초대에 응답할 때의 절차 변화 가능성을 강조하기 위해 파선(1212)으로 표시된다. 동일한 활동에 대해 다수의 초대를 발송하는 한가지 이유는 선택된 접촉자의 네트워크화 컴퓨팅 환경(200)(도 2) 프레즌스가 다수의 종점을 포함할 수 있기 때문이다. 예를 들어, 협력 서비스 플랫폼(302)(도 3) 사용자는 컴퓨터(212)에서 컴퓨터(216, 206 및 208)로 동일한 활동에 대해 3개의 초대를 보낼 수 있다. 예를 들어, 컴퓨터(216)는 선택된 접촉자의 사무실 데스 크탑 PC일 수 있고, 컴퓨터(206)는 선택된 접촉자의 랩탑일 수 있으며, 컴퓨터(208)는 선택된 접촉자의 PDA(personal digital assistant)일 수 있다. 초대는 하나보다 많은 종점에서 선택된 접촉자에게 표시될 수 있다. 예를 들어, 선택된 접촉자는 컴퓨터(208)(이 예에서 PDA)에서 초대를 사절하거나 무시할 수 있지만, 컴퓨터(206)(이 예에서 랩탑)에서 초대를 수락할 수 있다. 선택된 접촉자가 초대에 전혀 응답하지 않을 가능성이 있다. 이것은 타임아웃과 절차의 종료를 초래할 수 있다.Steps 1204, 1206, and 1208 are indicated by dashed lines 1212 to highlight the possibility of procedural changes in responding to the invitation. One reason for sending multiple invitations for the same activity is that the networked computing environment 200 (FIG. 2) presence of the selected contact may include multiple endpoints. For example, a cooperative service platform 302 (FIG. 3) user can send three invitations for the same activity from computer 212 to computers 216, 206, and 208. For example, the computer 216 may be an office desktop PC of the selected contactor, the computer 206 may be a laptop of the selected contactor, and the computer 208 may be a personal digital assistant of the selected contactor. . The invitation may be displayed to the selected contact at more than one endpoint. For example, the selected contact may refuse or ignore the invitation at computer 208 (PDA in this example), but may accept the invitation at computer 206 (laptop in this example). There is a possibility that the selected contact will not respond to the invitation at all. This may result in timeouts and termination of the procedure.

단계(1212)의 다른 가능성은 컴퓨터(212)(도 2)에서의 협력 서비스 플랫폼(302)(도 3) 사용자가 서브넷 내의 각각 다른 컴퓨터(214 및 216)에, 활동으로의 초대를 발송한다는 것이다. 이 경우에, 각각의 접촉자는 나란히 응답할 수 있다.Another possibility of step 1212 is that the user of the cooperative service platform 302 (FIG. 3) at the computer 212 (FIG. 2) sends an invitation to the activity to each other computer 214 and 216 in the subnet, respectively. . In this case, each contact can respond side by side.

초대를 수락했으면, 단계(1210)에서, 선택된 접촉자는 협력 활동을 위한 관련 회의에 참석할 수 있다. 예를 들어, 회의는 컴퓨터(212)(도 2)에 의해 호스트될 수 있고, 선택된 접촉자는 시그널링 서비스(308)(도 3) 및/또는 활동 서비스(310)를 이용하여 컴퓨터(206)로부터 회의에 참여할 수 있다. 단계(1214)에서, 활동을 포함한 협력이 발생할 수 있다.If the invitation has been accepted, at step 1210, the selected contact may attend the relevant meeting for the cooperative activity. For example, the meeting may be hosted by the computer 212 (FIG. 2), and the selected contact may be from the computer 206 using the signaling service 308 (FIG. 3) and / or the activity service 310. Can participate in At step 1214, collaboration, including activity, may occur.

초대 서비스(326)(도 3)의 예가 이제 더욱 상세하게 설명된다. 특히, 초대 서비스(326), 협력 서비스 플랫폼(302), 및 (전형적으로 그 플랫폼에 의해 참조되긴 하지만) 협력 서비스 플랫폼(302)과는 다른 협력 애플리케이션 사이의 상호작용이 강조된다. 본 발명의 실시예에서, 그러한 상호작용의 처리는 협력 서비스 플랫폼(302)의 유용성, 확장성, 유연성, 유지보수성 및/또는 범위성에 기여하고, 따라 서 그것의 대규모 채용에의 적합성에 기여한다.An example of an invitation service 326 (FIG. 3) is now described in more detail. In particular, the interaction between the invitation service 326, the cooperative service platform 302, and the cooperative application platform 302 (although typically referred to by that platform) is highlighted. In an embodiment of the present invention, the processing of such interactions contributes to the usability, scalability, flexibility, maintainability and / or scalability of the cooperative service platform 302, thus contributing to its suitability for large scale adoption.

도 13은 본 발명의 실시예에 따른 예시적인 초대 시나리오를 도시하고 있다. 제1 컴퓨터(1302)는 제2 컴퓨터(1304)와의 하나 이상의 협력 활동을 개시하는 임무가 부과될 수 있다. 예를 들어, 컴퓨터(1302 및 1304)는 도 2의 네트워크화 컴퓨팅 환경(200) 내의 컴퓨터(204, 206, 208, 212, 214 또는 216) 중의 어느 하나일 수 있다. 각각의 컴퓨터(1302 및 1304)는 컴퓨터 운영 체제(1306 및 1308)를 포함할 수 있다. 각각의 컴퓨터 운영 체제(1306 및 1308)는 협력 서비스 플랫폼 모듈(1310 및 1312)을 포함할 수 있다. 컴퓨터 운영 체제(1306 및 1308)는 동일할 필요가 없다. 협력 서비스 플랫폼 모듈(1310 및 1312)은 협력 서비스 플랫폼(302)(도 3)에 따르게 될 수 있다.Figure 13 illustrates an exemplary invitation scenario in accordance with an embodiment of the present invention. The first computer 1302 may be charged with initiating one or more cooperative activities with the second computer 1304. For example, the computers 1302 and 1304 can be any one of the computers 204, 206, 208, 212, 214, or 216 in the networked computing environment 200 of FIG. 2. Each computer 1302 and 1304 can include computer operating systems 1306 and 1308. Each computer operating system 1306 and 1308 may include cooperative service platform modules 1310 and 1312. Computer operating systems 1306 and 1308 need not be identical. The cooperative service platform modules 1310 and 1312 may be in accordance with the cooperative service platform 302 (FIG. 3).

컴퓨터 운영 체제(1306 및 1308)는 그래픽 사용자 인터페이스(GUI)와 같은 초대 사용자 인터페이스(UI)(1314 및 1316)를 포함할 수 있다. 본 발명의 실시예에서, 초대 사용자 인터페이스(1314 및 1316)는 각각 협력 서비스 플랫폼 모듈(1310 및 1312)에 편입된다. 컴퓨터(1302 및 1304)는 협력 애플리케이션(1318 및 1320)을 더 포함할 수 있다. 이 예에서의 협력 서비스 플랫폼 모듈(1310 및 1312)과는 다르지만, 본 발명의 실시예에서, 협력 애플리케이션(1318 및 1320)은 협력 서비스 플랫폼 모듈(1310 및 1312)에 편입될 수 있다.Computer operating systems 1306 and 1308 may include invitation user interfaces (UIs) 1314 and 1316, such as graphical user interfaces (GUIs). In an embodiment of the present invention, invite user interfaces 1314 and 1316 are incorporated into cooperative service platform modules 1310 and 1312, respectively. Computers 1302 and 1304 may further include cooperative applications 1318 and 1320. Although different from the cooperative service platform modules 1310 and 1312 in this example, in an embodiment of the present invention, the cooperative application 1318 and 1320 may be incorporated into the cooperative service platform modules 1310 and 1312.

기본적인 협력 초대 프로토콜은 3개의 메시지: 협력 초대 메시지(1322), 협력 응답 메시지(1324) 및 초대 삭제 메시지(1326)를 포함할 수 있다.The basic collaboration invitation protocol may include three messages: a collaboration invitation message 1322, a collaboration response message 1324, and an invitation deletion message 1326.

협력 초대 메시지(1322)는 초대 식별자, 하나 이상의 능력 식별자, 애플리케 이션 데이터 및 메시지를 포함할 수 있다. 초대 식별자는 초대를 유일하게 식별할 수 있다. 예를 들어, 초대 식별자는 Microsoft? Developer Network(MSDN?) Library 내의 문서화 버전 1.1.1인 .NET Framework Class Library의 Guid Structure 섹션에서 설명된 전 세계적 단일 식별자(GUID)일 수 있다. 각각의 능력 식별자는 초대와 관련된 능력 활동을 위해 요구된 협력 능력을 나타내는 능력 객체를 참조할 수 있다. 예를 들어, 각각의 능력 식별자는 전 세계적 단일 식별자(GUID)일 수 있다. 애플리케이션 데이터는 예를 들어, 협력 활동을 시작하기 위해, 협력 애플리케이션에 보내질 데이터를 포함 및/또는 지정할 수 있다. 메시지는 표준 또는 주문 초대 텍스트를 포함하는 리치 텍스트 스트링일 수 있다.The collaboration invitation message 1322 may include an invitation identifier, one or more capability identifiers, application data, and a message. The invitation identifier can uniquely identify the invitation. For example, the invitation identifier is Microsoft? Documented in the Developer Network (MSDN?) Library This can be a globally unique identifier (GUID) described in the Guid Structure section of the .NET Framework Class Library, version 1.1.1. Each capability identifier may reference a capability object that represents the cooperative capability required for the capability activity associated with the invitation. For example, each capability identifier may be a globally unique identifier (GUID). Application data may include and / or specify data to be sent to collaborative applications, for example, to initiate collaborative activities. The message can be a rich text string containing standard or order invitation text.

협력 응답 메시지(1324)는 초대 식별자, 초대 응답 액션, 응답 메시지 및 확장된 응답 데이터를 포함할 수 있다. 초대 식별자는 응답 메시지(1324)가 응답하고 있는 협력 초대를 식별할 수 있다. 예를 들어, 초대 식별자는 협력 초대 메시지(1322)에 의해 제공된 GUID일 수 있다. 초대 응답 액션은 응답의 유형을 나타낼 수 있다. 예를 들어, 초대 응답은 사절, 수락, 무시 및 에러 중의 하나일 수 있다. 응답 메시지는 표준 또는 주문 초대 응답 텍스트를 포함하는 리치 텍스트 스트링일 수 있다. 확장된 응답 데이터는 초대 및/또는 협력 활동에 관한 임의의 적합한 추가 응답 데이터를 포함할 수 있다.The collaboration response message 1324 may include an invitation identifier, an invitation response action, a response message, and extended response data. The invitation identifier can identify the collaboration invitation with which response message 1324 is responding. For example, the invitation identifier may be a GUID provided by the collaboration invitation message 1322. The invitation response action may indicate the type of response. For example, the invitation response can be one of trimming, accepting, ignoring and error. The response message may be a rich text string containing standard or order invitation response text. The extended response data may include any suitable additional response data regarding invitation and / or collaboration activities.

초대 삭제 메시지(1326)는 삭제 메시지(1326)가 삭제하고 있는 초대를 식별하는 초대 식별자를 포함할 수 있다. 예를 들어, 협력 초대 메시지(1322)는 협력 서비스 플랫폼(1310)의 사용자와의 협력 활동에 참가하라고 협력 서비스 플랫 폼(1312)의 사용자를 초대하기 위해 컴퓨터(1302)에서 컴퓨터(1304)로 보내질 수 있다. 이에 응답하여, 협력 응답 메시지(1324)는 초대가 예를 들어 수락되는지 사절되는지 나타내기 위해 컴퓨터(1304)에서 컴퓨터(1302)로 보내질 수 있다. 본 발명의 실시예에서, 협력 서비스 플랫폼(1310)의 사용자가 컴퓨터(1302)에서 컴퓨터(1304)로 초대 삭제 메시지(1326)를 보냄으로써 초대를 삭제하는 것이 가능하다.The invitation deletion message 1326 may include an invitation identifier that identifies the invitation that the deletion message 1326 is deleting. For example, a cooperative invitation message 1322 may be sent from computer 1302 to computer 1304 to invite a user of cooperative service platform 1312 to participate in a cooperative activity with a user of cooperative service platform 1310. Can be. In response, cooperative response message 1324 may be sent from computer 1304 to computer 1302 to indicate whether the invitation is accepted, for example, or refused. In an embodiment of the present invention, it is possible for a user of the cooperative service platform 1310 to delete an invitation by sending an invitation deletion message 1326 from computer 1302 to computer 1304.

예시적인 협력 초대 방법을 더욱 상세하게 설명하기 전에, 초대 서비스(326)(도 3)의 예시적인 애플리케이션 프로그래밍 인터페이스(API)를 설명하는 것이 도움이 될 것이다. 도 14는 본 발명의 실시예에 따른 초대 서비스(326)의 예시적인 애플리케이션 프로그래밍 인터페이스(API)(1400)를 도시하고 있다. 초대 서비스 API(1400)는 초대 요소(1402), 초대 청취자 생성 요소(1404), 초대 보안 송신 요소(1406), 초대 비보안 송신 요소(1408), 초대 삭제 요소(1410), 초대에의 응답 요소(1412), 초대 응답 획득 요소(1414), 능력 등록/등록취소 요소(1416), 능력 열거 요소(1418) 및 능력 정보 획득 요소(1420)를 포함할 수 있다. 각각의 애플리케이션 프로그래밍 인터페이스 요소(1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418 및 1420)가 각 컴퓨터(1302 및 1304)에서의 협력 서비스 플랫폼 모듈(1310 및 1312)(도 13)에 편입된 초대 서비스(326)(도 3)의 애플리케이션 프로그래밍 인터페이스에 포함될 수 있긴 하지만, 요소들(1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418 및 1420)의 상이한 요소들은 컴퓨터(1302, 1304)가 초대자인지, 초청객인지, 아니면 이 둘 다인지에 따라 컴퓨터(1302 및 1304)에 의해 이용될 수 있다.Before describing the example collaboration invitation method in more detail, it will be helpful to describe an example application programming interface (API) of the invitation service 326 (FIG. 3). 14 illustrates an example application programming interface (API) 1400 of an invitation service 326 in accordance with an embodiment of the present invention. The invitation service API 1400 includes an invitation element 1402, an invitation listener generation element 1404, an invitation secure transmission element 1406, an invitation insecure transmission element 1408, an invitation deletion element 1410, and a response element to an invitation ( 1412, invitation response acquisition element 1414, capability registration / deregistration element 1416, capability enumeration element 1418, and capability information acquisition element 1420. Respective application programming interface elements 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, and 1420 cooperate with the respective service platform modules 1310 and 1312 at each computer 1302 and 1304 (FIG. 13). Different elements of elements 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, and 1420 may be included in the application programming interface of the invitation service 326 (FIG. 3) incorporated into the computer. It may be used by computers 1302 and 1304 depending on whether 1302, 1304 is an invitee, an invitee, or both.

초대 요소(1402)는 협력 초대 메시지(1322)와 동일한 데이터의 일부 또는 전부로의 액세스를 포함하고 제공할 수 있다. 예를 들어, 협력 초대 메시지(1322) 또는 그 일부는 초대 요소(1402)로 초대 서비스(326)(도 3) 내에 저장되고/되거나, 그 초대 서비스로부터 검색될 수 있다.The invitation element 1402 can include and provide access to some or all of the same data as the collaboration invitation message 1322. For example, the collaboration invitation message 1322 or a portion thereof may be stored in the invitation service 326 (FIG. 3) as an invitation element 1402 and / or retrieved from the invitation service.

초대 청취자 생성 요소(1404)는 컴퓨터(1302 및 1304)(도 13)와 같은 협력 종점에서 초대 청취자를 인스턴스 생성할 수 있다. 인터페이스 명세 파라미터는 인터넷 프로토콜(IP) 어드레스 또는 P2P 피어 식별자와 같은 종점 식별자(컴퓨터(1302, 1304) 당 다수의 종점이 있을 수 있음), 포트 식별자(종점 당 다수의 통신 포트가 있을 수 있음) 및 초대 청취자를 구성하거나 파괴하는 초대 청취자 식별자를 포함할 수 있다. 예를 들어, 운영 체제(1308)는 표준 초대 및/또는 협력 서비스 포트에서 듣는 초대 청취자를 생성하기 위해 초대 청취자 생성 요소(1404)를 이용할 수 있다. 협력 애플리케이션(1320)은 협력 애플리케이션(1320)과 협력하자고 하는 초대를 귀담아 듣는데 전용되는 주문 초청 포트에서 초대 청취자를 생성하기 위해 초대 청취자 생성 요소(1404)를 이용할 수 있다.The invite listener generation element 1404 can instantiate the invite listener at a cooperative endpoint, such as computers 1302 and 1304 (FIG. 13). Interface specification parameters may include endpoint identifiers (there may be multiple endpoints per computer 1302, 1304), such as Internet Protocol (IP) addresses or P2P peer identifiers, port identifiers (there may be multiple communication ports per endpoint), and It may include an invite listener identifier that configures or destroys the invite listener. For example, the operating system 1308 can use the invite listener creation element 1404 to create an invite listener that listens on a standard invite and / or collaborative service port. The cooperative application 1320 can use the invite listener creation element 1404 to generate an invite listener at an order invite port dedicated to listening for an invitation to cooperate with the cooperative application 1320.

초대 보안 송신 요소(1406)는 초대 메시지(1322)(도 13)의 안전한 송신을 가능하게 할 수 있다. 인터페이스 명세 파라미터는 접촉자 객체(402)(도 4) 인스턴스에 대한 레퍼런스, 종점 객체(410) 인스턴스에 대한 레퍼런스, 송신될 초대 메시지(1322)에 대한 레퍼런스, 일단 초대에 대한 응답이 수신되었으면 신호하게 될 이벤트와 같은 실행 스레드의 동기화 객체에 대한 레퍼런스, 및 초대 보안 송신 요소(1406)에 의해 설정될 초대 식별자에 대한 레퍼런스를 포함할 수 있다. 초대 메 시지(1322)는 참조된 접촉자 객체(402) 인스턴스와 관련된 접촉자에게 보내질 수 있다. 종점 객체(410) 인스턴스가 제공되면, 초대 메시지(1322)는 관련된 종점에 보내질 수 있고, 그렇지 않으면, 초대 메시지(1322)는 참조된 접촉자 객체(402) 인스턴스와 관련된 접촉자의 면전에서 각 종점에 보내질 수 있다.The invitation secure transmission element 1406 may enable secure transmission of the invitation message 1322 (FIG. 13). The interface specification parameter will signal a reference to the contact object 402 (FIG. 4) instance, a reference to the endpoint object 410 instance, a reference to the invitation message 1322 to be sent, and a response to the invitation once received. It may include a reference to a synchronization object of an execution thread, such as an event, and a reference to an invitation identifier to be set by the invitation secure transmission element 1406. The invitation message 1322 can be sent to the contact associated with the referenced contact object 402 instance. If an endpoint object 410 instance is provided, the invitation message 1322 may be sent to the associated endpoint, or the invitation message 1322 may be sent to each endpoint in the presence of a contact associated with the referenced contact object 402 instance. Can be.

협력 활동에 참가한다는 결정은 보안 결과를 초래할 수 있다. 예를 들어, 양방향 파일 공유에 참가한다는 결정은 데이터를 변경 및/또는 삭제에 노출시킬 수 있다. 결과적으로, 협력 서비스 플랫폼(302)(도 3)의 사용자는 신뢰 소스로부터만 협력 초대를 수락한다는 결정을 할 수 있다. 본 발명의 실시예에서, 안전한 통신 접속은 미리 교환한 접촉자 정보를 갖는 사용자들 사이에 설정될 수 있다. 예를 들어, 접촉자 정보는 암호 인증서를 포함할 수 있고, 안전한 통신 접속은 오버레이 네트워크를 위해 안전한 소켓 계층(SSL) 또는 보안 서비스 제공자(SSP) 기술과 같은 종래의 안전한 프로토콜로 설정될 수 있다.Decisions to participate in collaborative activities can have security consequences. For example, the decision to join a two-way file share can expose data to changes and / or deletions. As a result, the user of the cooperative service platform 302 (FIG. 3) can make a decision to accept the cooperative invitation only from a trust source. In an embodiment of the present invention, a secure communication connection can be established between users who have previously exchanged contact information. For example, the contact information can include a cryptographic certificate and the secure communication connection can be established with conventional secure protocols such as secure socket layer (SSL) or secure service provider (SSP) technology for the overlay network.

그러나, 사용자는 또한 특정 상황 하에서 안전하지 않은 초대를 수락한다는 결정을 할 수 있다. 초대 비보안 송신 요소(1408)는 예를 들어, 초대 송신자 및 수신자가 미리 교환한 접촉자 정보를 갖는다는 요구사항이 없다는 것을 제외하고는, 초대 보안 송신 요소(1406)와 유사할 수 있다. 예를 들어, 초대 비보안 송신 요소(1408)는 초대 메시지(1322)를 서브넷(218) 상의 각 컴퓨터(212, 214 및 216)(도 2)에 방송하기 위해 이용될 수 있다. 안전하지 않은 초대는 다중 플레이어 게임과 같은 용이해진 사회적 환경에서의 협력 및 임시 협력을 촉진할 수 있다.However, the user can also make a decision to accept an insecure invitation under certain circumstances. The invitation non-secure transmission element 1408 may be similar to the invitation secure transmission element 1406, except for example that there is no requirement that the invite sender and the recipient have contact information exchanged in advance. For example, the invitation insecure transmission element 1408 can be used to broadcast the invitation message 1322 to each computer 212, 214, and 216 (FIG. 2) on the subnet 218. Insecure invitations can promote collaboration and ad hoc cooperation in an easier social environment, such as multiplayer games.

초대 삭제 요소(1410)는 삭제 메시지(1326)(도 13)의 송신을 가능하게 할 수 있다. 인터페이스 명세 파라미터는 초대 보안 송신 요소(1406)에 의해 설정된 초대 비보안 송신 요소(1408)의 초대 식별자와 같은 초대 식별자를 포함할 수 있다. 초대에 대한 응답 요소(1412)는 응답 메시지(1324)(도 13)의 송신을 가능하게 할 수 있다. 인터페이스 명세 파라미터는 초대 식별자 및 초대 응답 액션을 포함할 수 있다.Invitation deletion element 1410 may enable transmission of deletion message 1326 (FIG. 13). The interface specification parameter may include an invitation identifier, such as an invitation identifier of the invite non-secure transmission element 1408 set by the invite secure transmission element 1406. Response element 1412 to the invitation may enable transmission of response message 1324 (FIG. 13). The interface specification parameter may include an invitation identifier and an invitation response action.

초대 보안 송신 요소(1406) 및 초대 비보안 송신 요소(1408)의 각각은 동기 및 비동기 버전을 가질 수 있다. 예를 들어, 비동기 버전은 초대 메시지(1322)(도 13)를 보낸 다음에, 초대에 대한 응답을 확인하기 전에 실행 스레드 내의 추가 명령어의 실행을 허용할 수 있다. 이와 대조적으로, 동기 버전은 응답 메시지(1324)가 수신되거나 타임아웃이 발생할 때까지 실행 스레드 내의 또 다른 명령어를 실행하지 않고 기다릴 수 있다. 초대 응답 획득 요소(1414)는 비동기적으로 보내진 초대 메시지(1322)에 대한 응답을 확인 및/또는 대기하기 위해 이용될 수 있다. 인터페이스 명세 파라미터는 응답 메시지(1324)가 도달할 때 응답 메시지(1324)에 설정될 초대 식별자 및 레퍼런스를 포함할 수 있다. 초대 송신 요소(1406 및 1408)의 동기 버전은 스레드 동기화 객체에 대한 레퍼런스를 포함할 필요가 없다.Each of the invite secure transmission element 1406 and invite non-secure transmission element 1408 may have a synchronous and asynchronous version. For example, the asynchronous version may send an invitation message 1322 (FIG. 13) and then allow execution of additional instructions in the thread of execution before confirming the response to the invitation. In contrast, the synchronous version may wait without executing another instruction in the thread of execution until a response message 1324 is received or a timeout occurs. The invitation response obtaining element 1414 may be used to confirm and / or wait for a response to the invitation message 1322 sent asynchronously. The interface specification parameter may include an invitation identifier and reference to be set in the response message 1324 when the response message 1324 arrives. The synchronous versions of the invitation sending elements 1406 and 1408 need not include a reference to the thread synchronization object.

초대 서비스(1400)는 종점 능력의 레지스트리를 유지할 수 있다. 능력 등록/등록취소 요소(1416)는 초대 서비스(1400)로 능력의 등록/등록취소를 가능하게 할 수 있다. 인터페이스 명세 파라미터는 하나 이상의 능력 객체(412)(도 4) 인스턴스에 대한 레퍼런스, 및 능력 또는 능력들이 종점의 특정 사용자에 관한 것인지 아니면 종점의 모든 사용자에 관한 것인지의 여부에 관한 표시를 포함할 수 있다. 각각의 능력 객체(412) 인스턴스는 능력 식별자, 예를 들어 전 세계적 단일 식별자(GUID)와 관련될 수 있다. 본 발명의 실시예에서, 각각의 능력은 특정 협력 애플리케이션(1318, 1320)(도 13)과 관련될 수 있다. 초대 서비스(1400)는 능력 등록하고 능력을 등록취소하기 위한 분리된 애플리케이션 프로그래밍 인터페이스 요소를 포함할 수 있다.The invitation service 1400 may maintain a registry of endpoint capabilities. The capability registration / deregistration element 1416 may enable registration / deregistration of capabilities with the invitation service 1400. The interface specification parameter may include a reference to one or more capability object 412 (FIG. 4) instances, and an indication as to whether the capability or capabilities relate to a particular user of the endpoint or to all users of the endpoint. . Each capability object 412 instance may be associated with a capability identifier, eg, a global single identifier (GUID). In an embodiment of the present invention, each capability may be associated with a particular cooperative application 1318, 1320 (FIG. 13). The invitation service 1400 can include separate application programming interface elements for registering capabilities and deregistering capabilities.

능력 열거 요소(1418)는 초대 서비스(1400)로 등록된 능력의 열거를 가능하게 할 수 있다. 인터페이스 명세 파라미터는 열거가 종점의 특정 사용자와 관련된 능력을 포함해야 하는지 아니면 종점의 모든 사용자와 관련된 능력을 포함해야 하는지의 여부에 관한 표시를 포함할 수 있다. 본 발명의 실시예에서, 열거는 예를 들어, 능력 객체(412)(도 4) 인스턴스에 대한 레퍼런스 대신에 능력 식별자를 포함한다. 그 다음, 능력 객체(412) 인스턴스는 능력 정보 획득 요소(1420)로 검색될 수 있다.The capability enumeration element 1418 may enable enumeration of capabilities registered with the invitation service 1400. The interface specification parameter may include an indication as to whether the enumeration should include capabilities associated with a particular user of the endpoint or capabilities associated with all users of the endpoint. In an embodiment of the invention, the enumeration includes, for example, a capability identifier instead of a reference to the capability object 412 (FIG. 4) instance. The capability object 412 instance may then be retrieved into the capability information obtaining element 1420.

예시적인 협력 초대 방법이 이제 더욱 상세하게 설명된다. 협력 초대에 대한 기본적인 상황은 사용자가 초대를 송신 및/또는 그에 응답하기 위해 특정 애플리케이션과 상호작용하는지의 여부(특정 시나리오), 또는 사용자가 초대를 송신 및/또는 그에 응답하기 위해 애플리케이션-독립 메카니즘과 상호작용하는지의 여부(일반 시나리오)이다. 4개의 시나리오: 일반으로부터 일반으로, 특정으로부터 일반으로, 일반으로부터 특정으로 및 특정으로부터 특정으로의 시나리오는 도 15-18과 관련하여 아래에 설명된다.An exemplary collaboration invitation method is now described in more detail. The basic situation for a collaborative invitation is whether the user interacts with a particular application to send and / or respond to an invitation (specific scenario), or the application-independent mechanism to send and / or respond to the invitation. Whether or not to interact (common scenario). Four scenarios: from general to general, from specific to general, from general to specific, and from specific to specific, are described below with respect to FIGS. 15-18.

도 15는 본 발명의 실시예에 따른 초대를 송신하는 예시적인 단계를 도시하 고 있다. 단계(1502)에서, 일반 초대 사용자 인터페이스(UI)가 호출될 수 있다. 예를 들어, 협력 서비스 플랫폼(302)(도 3)은 초대 서비스(326)의 사용자 인터페이스를 호출할 수 있다. 단계(1504)에서, 하나 이상의 접촉자는 일반 초대 사용자 인터페이스로 선택될 수 있다. 예를 들어, 초대 서비스(326)의 사용자 인터페이스는 사용자의 공지된 접촉자의 리스트, 또는 예를 들어 버디 클래스 접촉자의 리스트를 표시하기 위해 접촉자 관리 서비스(304)와 상호작용할 수 있고, 사용자는 표시된 것들로부터 접촉자 세트를 그래픽으로 선택할 수 있다.15 illustrates exemplary steps for sending an invitation in accordance with an embodiment of the present invention. In step 1502, a generic invitation user interface (UI) may be invoked. For example, the cooperative service platform 302 (FIG. 3) can invoke the user interface of the invitation service 326. At step 1504, one or more contacts may be selected with a generic invite user interface. For example, the user interface of the invitation service 326 can interact with the contact management service 304 to display a list of known contacts of the user, or a list of buddy class contacts, for example, and the user can display those displayed. The contact set can be selected graphically from.

단계(1506)에서, 활동은 일반 초대 사용자 인터페이스로 선택될 수 있다. 예를 들어, 초대 서비스(326)(도 3)의 사용자 인터페이스는 이용가능 협력 활동의 리스트, 또는 예를 들어 인기있거나 가장 최근에 사용된 활동의 리스트를 표시하기 위해 활동 서비스(310)와 상호작용할 수 있고, 사용자는 표시된 것들로부터 협력 활동을 그래픽으로 선택할 수 있다. 단계(1508)에서, 일반 초대 사용자 인터페이스가 초대를 보낼 것인지, 또는 예를 들어 초대가 특정 협력 애플리케이션으로부터 보내질 것인지 판정될 수 있다. 예를 들어, 판정은 초대 서비스(326)의 구성가능한 파라미터에 의존할 수 있다. 일반 초대 사용자 인터페이스가 초대를 보내는 것으로 판정되면, 절차는 단계(1510)로 진행할 수 있다. 그렇지 않으면, 절차는 단계(1512)로 진행할 수 있다.At step 1506, the activity may be selected with a generic invite user interface. For example, the user interface of the invitation service 326 (FIG. 3) may interact with the activity service 310 to display a list of available collaborative activities, or a list of popular or most recently used activities, for example. The user can then graphically select the collaborative activity from those displayed. In step 1508, it may be determined whether the generic invitation user interface will send the invitation, or whether the invitation will be sent from a particular collaboration application, for example. For example, the decision may depend on the configurable parameters of the invitation service 326. If the generic invitation user interface is determined to send the invitation, the procedure may proceed to step 1510. Otherwise, the procedure may proceed to step 1512.

단계(1510)에서, 단계(1506)에서 선택된 활동과 관련된 협력 애플리케이션이 개시될 수 있다. 단계(1510)는 애플리케이션이 이때 개시될 수 있긴 하지만, 일반 초대 사용자 인터페이스가 실행 스레드의 제어를 보유하고, 단계(1514)로 진행할 수 있다는 것을 나타내기 위해 파선으로 표시된다. 이것은 단계(1516)와 대조적이다.At step 1510, a cooperative application associated with the activity selected at step 1506 may be launched. Step 1510 is indicated by dashed lines to indicate that although the application may be launched at this time, the generic inviting user interface retains control of the execution thread and may proceed to step 1514. This is in contrast to step 1516.

단계(1512)에서, 단계(1504)에서 선택된 접촉자와 같이 지금까지 수집된 초대에 관한 상세, 및 단계(1506)에서 선택된 활동과 관련된 임의의 구성 파라미터는 활동과 관련된 협력 애플리케이션에 의한 검색을 위해 저장될 수 있다. 단계(1516)에서, 협력 애플리케이션은 개시되고, 절차의 제어는 일반 초대 사용자 인터페이스에 의해 양도된다.In step 1512, the details of the invitations collected so far, such as the contact selected in step 1504, and any configuration parameters related to the activity selected in step 1506 are stored for retrieval by the collaborative application associated with the activity. Can be. At step 1516, the cooperative application is initiated and control of the procedure is transferred by the generic invite user interface.

단계(1514)에서, 초대는 초대 서비스(1400)(도 14) 애플리케이션 프로그래밍 인터페이스로, 예를 들어 상술된 초대 보안 송신 요소(1406) 또는 초대 비보안 송신 요소(1408)로 보내질 수 있다. 동일한 애플리케이션 프로그래밍 인터페이스 요소(1406, 1408)가 초대를 송신하기 위해 이용될 수 있긴 하지만, 절차가 단계(1510)에서 단계(1514)로 진행할 때, 요소(1406, 1408)는 일반 초대 사용자 인터페이스에 의해 호출되는 반면, 절차가 단계(1516)에서 단계(1514)로 진행할 때, 요소(1406, 1408)는 협력 애플리케이션에 의해 호출된다. 결과적으로, 요소(1406, 1408)에 보내진 인터페이스 명세 파라미터는 다를 수 있다.In step 1514, the invitation may be sent to the invitation service 1400 (FIG. 14) application programming interface, for example to the invitation secure transmission element 1406 or invitation non-secure transmission element 1408 described above. Although the same application programming interface elements 1406 and 1408 can be used to send the invitation, when the procedure proceeds from step 1510 to step 1514, the elements 1406 and 1408 are replaced by a generic invitation user interface. While being called, when the procedure proceeds from step 1516 to step 1514, elements 1406 and 1408 are called by the cooperating application. As a result, the interface specification parameters sent to elements 1406 and 1408 may be different.

단계(1502)에서 시작하는 절차는 일반 초대 사용자 인터페이스가 이용되기 때문에 "일반으로부터" 시나리오 중의 하나를 설명한다. 이와 대조적으로, 단계(1518)는 "특정으로부터" 시나리오를 시작한다. 단계(1518)에서, 협력 애플리케이션이 개시될 수 있다. 예를 들어, 애플리케이션(1318)(도 13)은 컴퓨터 운영 체제(1306)에 의해 종래의 방식으로 개시될 수 있다. 단계(1518)는 단계(1520)를 위 한 전제 조건이고, 사실상 약간의 시간이 단계(1518)와 단계(1520) 사이에 경과할 수 있다.The procedure beginning at step 1502 describes one of the scenarios "from general" because a generic invitation user interface is used. In contrast, step 1518 begins a scenario "from a specific". At step 1518, the cooperative application can be launched. For example, application 1318 (FIG. 13) can be initiated in a conventional manner by computer operating system 1306. Step 1518 is a prerequisite for step 1520, and in fact some time may elapse between steps 1518 and 1520.

단계(1520)에서, 하나 이상의 접촉자는 협력 애플리케이션(1318)(도 13)의 사용자 인터페이스로 선택될 수 있다. 예를 들어, 협력 애플리케이션(1318)은 애플리케이션 사용자의 공지된 접촉자의 리스트, 또는 예를 들어 버디 클래스 접촉자의 리스트를 표시하기 위해 협력 서비스 플랫폼(1310)의 접촉자 관리 서비스(304)(도 3)와 상호작용할 수 있고, 애플리케이션 사용자는 표시된 것들로부터 접촉자 세트를 그래픽으로 선택할 수 있다. 단계(1504)로부터의 진행과 대조적으로, 협력 활동의 선택은 필요하지 않고, 절차는 단계(1514)로 진행할 수 있다. 협력 애플리케이션(1318)은 협력 활동을 결정했을 수 있다. 그러나, 본 발명의 실시예에서, 협력 애플리케이션(1318)은 다수의 활동을 지원할 수 있고, 그 경우에 단계(1506)와 대등한 단계가 적절할 수 있다. 단계(1514)에서, 초대 송신 요소(1406 또는 1408)(도 14)는 협력 애플리케이션(1318)에 의해 호출될 수 있다.At step 1520, one or more contacts may be selected as the user interface of the cooperative application 1318 (FIG. 13). For example, the cooperative application 1318 may interact with the contact management service 304 (FIG. 3) of the cooperative service platform 1310 to display a list of known contacts of the application user, or for example, a list of buddy class contacts. The application user can graphically select a set of contacts from those displayed. In contrast to proceeding from step 1504, the selection of cooperative activity is not necessary and the procedure may proceed to step 1514. The cooperative application 1318 may have determined cooperative activity. However, in an embodiment of the invention, the cooperative application 1318 may support a number of activities, in which case a step equivalent to step 1506 may be appropriate. In step 1514, the invitation sending element 1406 or 1408 (FIG. 14) may be called by the cooperative application 1318.

도 16은 본 발명의 실시예에 따른, 초대를 송신하기 위해 초대 서비스(1400)(도 14)에 의해 수행된 예시적인 단계를 도시하고 있다. 단계(1602)에서, 다음 후보 접촉자가 선택된다. 예를 들어, 후보 접촉자는 도 15의 단계(1504 또는 1520)에서 선택된 세트 중에서 선택될 수 있다.FIG. 16 illustrates exemplary steps performed by invitation service 1400 (FIG. 14) to send an invitation, in accordance with an embodiment of the invention. In step 1602, the next candidate contact is selected. For example, the candidate contact may be selected from the set selected in step 1504 or 1520 of FIG. 15.

단계(1604)에서, 후보 접촉자의 종점이 알려져 있는지 판정될 수 있다. 예를 들어, 후보 접촉자를 나타내는 접촉자 객체(402)에 의해 참조된 프레즌스 객체(404)(도 4)는 그것의 종점 객체(410) 세트를 찾기 위해 조회될 수 있다. 후보 접촉자의 어떤 종점도 알려져 있지 않으면(예를 들어, 조회 결과가 빈 세트이면), 절차는 단계(1606)로 진행할 수 있다. 후보 접촉자의 종점이 알려져 있으면, 절차는 단계(1608)로 진행할 수 있다. 단계(1606)에서, 후보 접촉자에 대한 종점의 위치가 알려질 수 있다. 예를 들어, 초대 서비스(326)(도 3)는 후보 접촉자에 대한 유효 종점 세트를 판정하기 위해 접촉자 위치 서비스(322)와 상호작용할 수 있다.At step 1604, it may be determined whether the endpoint of the candidate contact is known. For example, the presence object 404 (FIG. 4) referenced by the contact object 402 representing the candidate contact may be queried to find its endpoint object 410 set. If no endpoint of the candidate contact is known (eg, if the query result is an empty set), the procedure may proceed to step 1606. If the endpoint of the candidate contact is known, the procedure may proceed to step 1608. In step 1606, the location of the endpoint relative to the candidate contact may be known. For example, invitation service 326 (FIG. 3) may interact with contact location service 322 to determine a set of valid endpoints for the candidate contact.

단계(1608)에서, 후보 종점은 후보 접촉자에 대한 공지된 종점 중에서 선택될 수 있다. 단계(1610)에서, 통신 접속은 후보 종점과 설정될 수 있다. 예를 들어, 접속은 접속 서비스(316)(도 3)로 설정될 수 있다. 단계(1612)에서, 초대는 예를 들어, 초대 메시지(1322)(도 13)로, 후보 종점에 보내질 수 있다.In step 1608, the candidate endpoint may be selected from known endpoints for the candidate contact. At step 1610, the communication connection may be established with the candidate endpoint. For example, the connection may be set up with connection service 316 (FIG. 3). At step 1612, the invitation may be sent to the candidate endpoint, for example in an invitation message 1322 (FIG. 13).

단계(1614)에서, 후보 종점이 더 있는지 판정될 수 있다. 후보 종점이 더 있으면, 절차는 단계(1608)로 돌아가서, 다음 후보 종점을 선택할 수 있다. 그렇지 않으면, 절차는 단계(1616)로 진행할 수 있다. 단계(1616)에서, 후보 접촉자가 더 있는지 판정될 수 있다. 후보 접촉자가 더 있으면, 절차는 단계(1602)로 돌아가서, 다음 후보 접촉자를 선택할 수 있다. 그렇지 않으면, 초대는 보내진 것으로 간주될 수 있다.In step 1614, it may be determined whether there are more candidate endpoints. If there are more candidate endpoints, the procedure may return to step 1608 to select the next candidate endpoint. Otherwise, the procedure may proceed to step 1616. At step 1616, it may be determined whether there are more candidate contacts. If there are more candidate contacts, the procedure may return to step 1602 and select the next candidate contact. Otherwise, the invitation can be considered sent.

4개의 시나리오의 "일반으로부터" 및 "특정으로부터" 부분이 설명되었고, 이제 "일반으로" 및 "특정으로" 부분이 각각 도 17 및 18과 관련하여 설명된다. 도 17은 본 발명의 실시예에 따른, 일반 초대 사용자 인터페이스로부터의 협력 초대에 응답하는 예시적인 단계를 도시하고 있다. 협력 초대가 다수의 종점에 보내진 경우에, 도 17 및/또는 18에 도시된 단계는 각 종점에서 수행될 수 있다.The "from general" and "from specific" portions of the four scenarios have been described, and the "normally" and "specifically" portions are now described with reference to FIGS. 17 and 18, respectively. 17 illustrates example steps for responding to a collaboration invitation from a generic invitation user interface, in accordance with an embodiment of the invention. If a collaboration invitation has been sent to multiple endpoints, the steps shown in FIGS. 17 and / or 18 can be performed at each endpoint.

단계(1702)에서, 협력 초대는 협력 서비스 플랫폼(302)(도 3)의 표준 통신 포트에서 수신될 수 있다. 예를 들어, 초대 메시지(1322)(도 13)는 협력 서비스 플랫폼(302)용으로 준비되고 초대 서비스(326)에 의해 모니터된 TCP/IP 포트에 도달할 수 있다.At step 1702, the collaboration invitation may be received at a standard communication port of the collaboration service platform 302 (FIG. 3). For example, invitation message 1322 (FIG. 13) may arrive at a TCP / IP port prepared for cooperative service platform 302 and monitored by invitation service 326.

단계(1704)에서, 종점이 초대와 관련된 활동에 참가할 수 있는지 판정될 수 있다. 예를 들어, 초대 서비스(326)(도 3)는 초대 메시지(1322)(도 13) 내의 능력 식별자(들)을 초대 서비스(328)에 등록된 능력과 비교할 수 있다. 대안적으로, 종점의 사용자와 관련된 MeContact 객체(406)(도 4)는 능력 객체(412)의 그 관련 세트를 찾기 위해 조회될 수 있고, 그것들은 초대 메시지(132) 내의 능력 식별자(들)과 비교될 수 있다. 종점이 초대와 관련된 활동에 참가할 수 있다고 판정되면, 절차는 단계(1706)로 진행할 수 있다. 그렇지 않으면, 절차는 단계(1708)로 진행할 수 있다.In step 1704, it may be determined whether the endpoint can participate in the activity associated with the invitation. For example, the invitation service 326 (FIG. 3) can compare the capability identifier (s) in the invitation message 1322 (FIG. 13) with the capabilities registered with the invitation service 328. Alternatively, the MeContact object 406 (FIG. 4) associated with the user of the endpoint may be queried to find its associated set of capability objects 412, which may be associated with the capability identifier (s) in the invitation message 132. Can be compared. If the endpoint is determined to be able to participate in the activity associated with the invitation, the procedure may proceed to step 1706. Otherwise, the procedure may proceed to step 1708.

단계(1706)에서, 사용자는 초대를 수락, 사절 또는 무시할 수 있다. 예를 들어, 초대 서비스(326)(도 3)는 결정: 수락, 사절 또는 무시에 대응하는 사용자 인터페이스 요소를 갖는 일반 초대 사용자 인터페이스를 표시할 수 있다. 사용자는 대응하는 사용자 인터페이스 요소를 선택함으로써 초대를 수락, 사절 또는 무시할 수 있다. 사용자가 초대를 수락하면, 절차는 단계(1710)로 진행할 수 있다. 사용자가 초대를 사절하면, 절차는 단계(1708)로 진행할 수 있다. 사용자가 초대를 무시하면, 절차는 단계(1712)로 진행할 수 있다.In step 1706, the user can accept, refuse or ignore the invitation. For example, invitation service 326 (FIG. 3) may display a generic invitation user interface with user interface elements corresponding to the decision: accept, refuse or ignore. The user can accept, refuse or ignore the invitation by selecting the corresponding user interface element. If the user accepts the invitation, the procedure may proceed to step 1710. If the user refuses to invite, the procedure may proceed to step 1708. If the user ignores the invitation, the procedure may proceed to step 1712.

단계(1708)에서, 응답 메시지(1324)(도 13)는 보내져서 초대가 사절된다는 것을 나타낼 수 있다. 예를 들어, 응답 메시지(1324)는 초대 서비스(1400) 애플리케이션 프로그래밍 인터페이스의 초대 요소(1412)(도 14)에 응답으로 보내질 수 있다. 이와 마찬가지로, 단계(1712)에서, 응답 메시지(1324)는 보내져서 사용자가 초대를 무시하는 것으로 선택하고 있다는 것을 나타낼 수 있다. 초대 요소(1412)는 또한 이 응답을 보내기 위해 사용될 수 있다. 본 발명의 실시예에서, 명시적 무시 응답을 보내는 능력은 협력 서비스 플랫폼(302)(도 3)의 효율을 증가시킨다.At step 1708, response message 1324 (FIG. 13) may be sent to indicate that the invitation is refused. For example, response message 1324 may be sent in response to invitation element 1412 (FIG. 14) of invitation service 1400 application programming interface. Likewise, at step 1712, response message 1324 may be sent to indicate that the user is selecting to ignore the invitation. Invitation element 1412 may also be used to send this response. In an embodiment of the present invention, the ability to send an explicit ignore response increases the efficiency of the cooperative service platform 302 (FIG. 3).

단계(1710)에서, 수락된 초대의 상세는 협력 활동과 관련된 협력 애플리케이션(1320)(도 13)에 의한 검색을 위해 저장될 수 있다. 예를 들어, 초대 메시지(1322)의 내용의 일부 또는 전부는 애플리케이션 프로그래밍 인터페이스의 초대 요소(1402)(도 14)와 함께 초대 서비스(326)에 의해 저장될 수 있다. 단계(1714)에서, 협력 애플리케이션(1320)은 초대 서비스(326)에 의해 개시될 수 있다.At step 1710, the details of the accepted invitation may be stored for retrieval by the collaboration application 1320 (FIG. 13) associated with the collaboration activity. For example, some or all of the content of invitation message 1322 may be stored by invitation service 326 along with invitation element 1402 (FIG. 14) of the application programming interface. At step 1714, cooperative application 1320 may be initiated by invitation service 326.

단계(1716)에서, 초대의 수락을 나타내는 응답 메시지(1324)(도 13)는 예를 들어, 초대 서비스(1400) 애플리케이션 프로그래밍 인터페이스의 초대 요소(1412)(도 14)에 대한 응답을 이용하여 보내질 수 있다. 단계(1716)에서 단계(1718)로 진행할 때, 실행의 제어는 단계(1714)에서 개시된 협력 애플리케이션(1320)으로 넘어갈 수 있다. 대안적으로, 협력 애플리케이션(1320)은 필요한 만큼 동기화된 스레드인 병렬 실행 스레드에서 개시될 수 있고, 단계(1702)에서 초대를 수신한 초대 서비스 스레드는 단계(1716)에서 응답한 후에 종료될 수 있다.In step 1716, a response message 1324 (FIG. 13) indicating acceptance of the invitation may be sent using a response to the invitation element 1412 (FIG. 14) of the invitation service 1400 application programming interface, for example. Can be. When proceeding from step 1716 to step 1718, control of execution may pass to the cooperative application 1320 initiated at step 1714. Alternatively, cooperative application 1320 may be initiated in a parallel execution thread that is a thread synchronized as needed, and the invitation service thread that receives the invitation in step 1702 may terminate after responding in step 1716. .

단계(1718)에서, 협력 애플리케이션(1320)(도 13)은 단계(1710)에서 저장된 초대 상세를 판독할 수 있다. 예를 들어, 저장된 초대 상세는 협력 애플리케이 션(1320)의 약간의 (재)구성을 초래할 수 있다. 이 때, 협력 애플리케이션(1320)은 협력 활동에 참가하기 시작할 준비가 될 수 있고, 단계(1720)에서, 협력 활동에의 참가가 시작될 수 있다.At step 1718, the cooperative application 1320 (FIG. 13) can read the invitation details stored at step 1710. For example, the saved invite details can result in some (re) configuration of the cooperative application 1320. At this point, the cooperative application 1320 may be ready to begin participating in the cooperative activity, and at step 1720, participation in the cooperative activity may begin.

도 18은 본 발명의 실시예에 따른, 특정 애플리케이션 사용자 인터페이스로부터의 협력 초대에 응답하는 예시적인 단계를 도시하고 있다. 단계(1802)에서, 협력 애플리케이션이 개시될 수 있다. 예를 들어, 협력 애플리케이션(1320)(도 13)은 컴퓨터 운영 체제(1304)에 의해 종래의 방식으로 개시될 수 있다. 단계(1804)에서, 협력 애플리케이션(1320)은 비표준의 애플리케이션 특정 협력 통신 포트 상에서 초대 청취자를 생성할 수 있다. 예를 들어, 협력 애플리케이션(1320)은 협력 서비스 플랫폼(302)(도 3)용으로 준비된 포트와 다른 TCP/IP 포트 상에서 초대 청취자를 생성하기 위해 초대 서비스(1400) 애플리케이션 프로그래밍 인터페이스의 초대 청취자 생성 요소(1404)(도 14)를 이용할 수 있다.18 illustrates example steps for responding to a collaboration invitation from a particular application user interface, in accordance with an embodiment of the invention. At step 1802, a cooperative application may be launched. For example, collaborative application 1320 (FIG. 13) can be initiated in a conventional manner by computer operating system 1304. In step 1804, the cooperative application 1320 may create an invite listener on a nonstandard, application specific cooperative communication port. For example, the cooperative application 1320 is an invitation listener generation element of the invitation service 1400 application programming interface to generate an invite listener on a TCP / IP port that is different from the port prepared for the cooperative service platform 302 (FIG. 3). 1404 (FIG. 14) can be used.

나중에 언젠가, 단계(1806)에서, 협력 초대는 비표준 포트에서 수신될 수 있다. 예를 들어, 단계(1514)(도 15)에서 보낸 초대 메시지(1322)(도 13)는 애플리케이션 특정 포트 및/또는 종점에 보내졌을 수 있다. 단계(1808)에서, 협력 애플리케이션(1320) 사용자는 초대를 수락하거나, 사절하거나 또는 명시적으로 무시할 수 있다. 예를 들어, 협력 애플리케이션(1320)은 결정: 수락, 사절 및 무시에 대응하는 사용자 인터페이스 요소를 갖는 사용자 인터페이스를 표시할 수 있다. 그 다음, 사용자는 대응하는 사용자 인터페이스 요소를 선택함으로써 원하는 응답을 선택할 수 있다. 사용자가 초대를 수락하면, 절차는 단계(1810)로 진행할 수 있 다. 사용자가 초대를 사절하면, 절차는 단계(1812)로 진행할 수 있다. 사용자가 초대를 명시적으로 무시하면, 절차는 단계(1814)로 진행할 수 있다.Sometime later, at step 1806, the collaboration invitation may be received at a non-standard port. For example, the invitation message 1322 (FIG. 13) sent in step 1514 (FIG. 15) may have been sent to an application specific port and / or endpoint. At step 1808, the cooperative application 1320 user can accept, refuse, or explicitly ignore the invitation. For example, the collaborative application 1320 may display a user interface having user interface elements corresponding to the decision: accept, refuse, and ignore. The user can then select the desired response by selecting the corresponding user interface element. If the user accepts the invitation, the procedure may proceed to step 1810. If the user refuses the invitation, the procedure may proceed to step 1812. If the user explicitly ignores the invitation, the procedure may proceed to step 1814.

각각의 단계(1810, 1812 및 1814)에서, 적절한 초대 응답은 초대자에게 보내질 수 있다. 각 단계(1810, 1812 및 1814)는 예를 들어, 각각 수락, 사절 또는 무시로 설정된 초대 응답 액션으로 응답 메시지(1324)(도 13)를 보내기 위해 초대 서비스(1400)의 초대 요소(1412)(도 14)에 대한 응답을 이용할 수 있다. 원하는 협력 애플리케이션(1320)(도 13)이 이미 개시되어 있기 때문에, 초대가 수락되었으면, 협력 활동은 단계(1816)에서 더 이상 지체없이 시작될 수 있다.At each step 1810, 1812 and 1814, an appropriate invitation response can be sent to the invitee. Each step 1810, 1812, and 1814, for example, invite element 1412 of invitation service 1400 (FIG. 13) to send response message 1324 (FIG. 13) as an invitation response action set to accept, refuse, or ignore, respectively. Response to FIG. 14 may be used. Since the desired collaboration application 1320 (FIG. 13) has already been initiated, once the invitation has been accepted, the collaboration activity can begin without further delay at step 1816.

협력 프레즌스 발행을 위한 예시적인 방법이 이제 더욱 상세하게 설명된다. 특히, 서버리스 프레즌스 발행, 즉 전용 서버 컴퓨터의 필요에 관계없이 협력 프레즌스 정보를 발행하는 능력은 본 발명의 실시예에서 유리하다. 예를 들어, 서버리스 네트워크화 컴퓨팅 환경, 피어 투 피어 네트워크, 또는 오버레이 네트워크는 전용 서버 컴퓨터를 필요로 하는 네트워크 및 네트워크 애플리케이션보다 더 양호한 범위성을 제공할 수 있다. 네트워크화 컴퓨팅 환경(200)(도 2)은 피어 투 피어 또는 오버레이 네트워크를 지원할 수 있다. 컴퓨터(204, 206, 208, 212, 214 및 216)의 각각은 피어 투 피어 네트워크의 하나 이상의 피어를 지원할 수 있다. 각 피어는 협력 종점일 수 있고, 종점 객체(410)(도 4) 인스턴스와 관련될 수 있다.An example method for issuing a cooperative presence is now described in more detail. In particular, the ability to issue serverless presence, i.e., issue cooperative presence information regardless of the need of a dedicated server computer, is advantageous in embodiments of the present invention. For example, serverless networked computing environments, peer-to-peer networks, or overlay networks may provide better scalability than networks and network applications that require dedicated server computers. Networked computing environment 200 (FIG. 2) may support a peer to peer or overlay network. Each of the computers 204, 206, 208, 212, 214, and 216 may support one or more peers of a peer to peer network. Each peer may be a cooperative endpoint and may be associated with an endpoint object 410 (FIG. 4) instance.

상술된 바와 같이, 협력 프레즌스는 프레즌스 객체(404)(도 4)에 의해 나타내질 수 있다. 프레즌스 객체(404)의 (전부를 포함하는) 임의의 적합한 부분은 협력 서비스 플랫폼(302)(도 3)의 사용자에게 발행될 수 있다. 또한, 종점 객 체(410), 능력 객체(412) 및 더욱 일반적인 발행된 객체(418)를 포함하여, 프레즌스 객체(404) 인스턴스에 의해 참조된 프로그램 객체 인스턴스가 발행될 수 있다.As discussed above, the cooperative presence may be represented by the presence object 404 (FIG. 4). Any suitable portion (including all) of the presence object 404 may be issued to a user of the cooperative service platform 302 (FIG. 3). In addition, a program object instance referenced by the presence object 404 instance may be issued, including the endpoint object 410, the capability object 412, and the more general published object 418.

그러나, 본 발명의 실시예에서, 한 번의 발행은 전형적으로 충분하지 않다. 프레즌스 정보는 변할 수 있다. 예를 들어, 발행된 객체(418)는 협력 애플리케이션에 의해 갱신될 수 있고, 집합체 상태, 및/또는 특정 종점과 관련된 프레즌스 상태는 하루종일 변할 수 있으며, 종점은 예를 들어, 무선 네트워크 커버리지 영역의 안과 밖으로 이동하거나 턴온 및 턴오프되는 네트워크화 무선 장치에 의해, 특정 접촉자의 프레즌스에 추가되거나 거기에서 제거될 수 있고, 종점 능력은 새로운 협력 애플리케이션이 설치될 때 변할 수 있다. 효과적인 협력은 일관되게 갱신된 프레즌스 정보를 요구할 수 있다. 본 발명의 실시예에서, 협력 프레즌스 정보는 프레즌스 구독 및 프레즌스 통지 메시지로, 네트워크화 컴퓨팅 환경(200)(도 2)과 같은 서버리스 네트워크화 컴퓨팅 환경에서 배포된다.However, in an embodiment of the present invention, one issue is typically not sufficient. Presence information can change. For example, the published object 418 can be updated by a collaborative application, and the aggregate state, and / or presence state associated with a particular endpoint, can change throughout the day, and the endpoint can be, for example, of a wireless network coverage area. With a networked wireless device moving in and out or turning on and off, it may be added to or removed from the presence of a particular contact, and endpoint capabilities may change when new collaborative applications are installed. Effective collaboration can require consistently updated presence information. In an embodiment of the invention, the cooperative presence information is a presence subscription and presence notification message that is distributed in a serverless networked computing environment, such as networked computing environment 200 (FIG. 2).

도 19는 본 발명의 실시예에 따른, 서버리스 프레즌스 발행에 참가하는 예시적인 단계를 도시하고 있다. 단계(1902)에서, 컴퓨터 사용자는 컴퓨터의 운영 체체(OS)로 인증할 수 있다. 예를 들어, 사용자는 네트워크화 컴퓨팅 환경(200)의 컴퓨터(204, 206, 208, 212, 214 또는 216)(도 2) 중의 하나로 로그인할 수 있다. 적합한 컴퓨터 운영 체제는 임의의 적합한 버전의 "MICROSOFT WINDOWS" 또는 "UNIX" 컴퓨터 운영 체제와 같은 협력 서비스 플랫폼(302)(도 3)을 지원할 수 있는 컴퓨터 운영 체제를 포함한다. 컴퓨터 운영 체제로의 인증은 컴퓨터 사용자를 위한 컴퓨터-인식 식별번호를 설정할 수 있고, 특히 컴퓨터 사용자를 MeContact 객 체(406)(도 4) 인스턴스와 관련시킬 수 있다.19 illustrates example steps for participating in serverless presence publishing, in accordance with an embodiment of the invention. In step 1902, a computer user may authenticate with an operating system (OS) of the computer. For example, a user may log in to one of the computers 204, 206, 208, 212, 214 or 216 (FIG. 2) of the networked computing environment 200. Suitable computer operating systems include computer operating systems capable of supporting a cooperative service platform 302 (FIG. 3), such as any suitable version of “MICROSOFT WINDOWS” or “UNIX” computer operating system. Authentication to the computer operating system may establish a computer-aware identification number for the computer user, and in particular may associate the computer user with an instance of MeContact object 406 (FIG. 4).

단계(1904)에서, 협력 서비스 플랫폼(302)의 발행 서비스(306)(도 3)와의 통신이 시작될 수 있다. 상술된 바와 같이, 발행 서비스(306)는 서버리스일 수 있다. 예를 들어, 단계(1904)에서, 컴퓨터 사용자는 발행 서비스(306)를 포함하는 피어 투 피어(P2P) 네트워크에 가입할 수 있다. 단계(1906)에서, 컴퓨터 사용자와 관련된 MeContact 객체(406)(도 4)에 포함되고/되거나 그 객체에 의해 참조된 데이터의 일부 또는 전부는 예를 들어, 하나 이상의 프레즌스 통지 메시지로, 발행 서비스(306)에 발행될 수 있으므로, 컴퓨터 및 협력 서비스 플랫폼(302) 사용자의 협력 프레즌스를 설정한다.In step 1904, communication with the publishing service 306 (FIG. 3) of the cooperative service platform 302 may begin. As mentioned above, the publishing service 306 may be serverless. For example, at step 1904, a computer user can join a peer-to-peer (P2P) network that includes a publishing service 306. In step 1906, some or all of the data contained in and / or referenced by the MeContact object 406 (FIG. 4) associated with the computer user is, for example, one or more presence notification messages, for example, a publishing service ( 306 to establish a cooperative presence of the computer and the cooperative service platform 302 user.

단계(1908)에서, 접촉자 저장부(318)(도 3)와의 통신이 시작될 수 있다. 예를 들어, 접촉자 저장부는 데이터베이스와 같은 종래의 데이터 저장부일 수 있고, 접촉자 저장부(318)와의 통신의 시작은 데이터 저장부와의 통신 세션의 설정을 포함할 수 있다. 단계(1910)에서, 접촉자 저장부(318)는 사용자의 버디 클래스 접촉자를 찾기 위해 조회될 수 있다. 본 발명의 실시예에서, 접촉자 저장부(318)의 조회는 MeContact 객체(406)의 버디 요소(904)(도 9)에 포함된 접촉자 객체(402)(도 4)에 대한 하나 이상의 레퍼런스의 역참조(de-referencing)를 포함한다.At step 1908, communication with contact storage 318 (FIG. 3) may begin. For example, contact storage may be a conventional data store, such as a database, and initiation of communication with contact store 318 may include establishing a communication session with the data store. In step 1910, contact storage 318 may be queried to find the buddy class contact of the user. In an embodiment of the invention, the lookup of the contact store 318 is inverse of one or more references to the contact object 402 (FIG. 4) contained in the buddy element 904 (FIG. 9) of the MeContact object 406. Includes de-referencing.

단계(1912)에서, 구독은 예를 들어, 도 20 및 21과 관련하여 더욱 상세하게 후술되는 프레즌스 구독 메시지로, 버디 클래스 접촉자의 프레즌스에 대해 신청될 수 있다. 단계(1914)에서, 구독에 응답하여, 프레즌스 갱신 통지가 수신될 수 있다. 예를 들어, 프레즌스 통지 메시지는 관련된 구독을 갖는 프레즌스에 변화가 생길 때 피어 투 피어 네트워크를 통해 보내질 수 있다.In step 1912, a subscription may be applied for the presence of a buddy class contact, for example, a presence subscription message described in more detail with respect to FIGS. 20 and 21. At step 1914, in response to the subscription, a presence renewal notification may be received. For example, a presence notification message can be sent over a peer to peer network when a change in presence with an associated subscription occurs.

도 20은 본 발명의 실시예에 따른 프레즌스 구독을 신청하는 예시적인 단계를 도시하고 있다. 예를 들어, 도 20에 의해 나타낸 단계는 단계(1912)(도 19)의 부분으로서 수행될 수 있다. 구독이 신청될 버디 클래스 접촉자 세트는 예를 들어, 단계(1914) 등으로부터 이용가능할 수 있다. 단계(2002)에서, 다음 후보 버디 클래스 접촉자가 세트에서 선택될 수 있다.20 illustrates exemplary steps for subscribing to a presence subscription according to an embodiment of the present invention. For example, the step illustrated by FIG. 20 may be performed as part of step 1912 (FIG. 19). The set of buddy class contacts to whom a subscription is to be applied may be available, for example, from step 1914. In step 2002, the next candidate buddy class contactor may be selected from the set.

단계(2004)에서, 버디 클래스 접촉자를 찾기 위해 검색이 이루어질 수 있다. 예를 들어, 피어 이름 분석 프로토콜(PNRP)은 피어 투 피어 네트워크 내의 버디 클래스 접촉자와 관련된 종점의 위치를 찾기 위해 이용될 수 있다. 대안적으로, 또는 그 밖에, 검색은 접촉자를 찾기 위해 서브넷(218)(도 2)과 같은 로컬 네트워크 파티션(partition) 전반에서 이루어질 수 있다. 임의의 적합한 네트워크 파티션은 접촉자를 위해 설정되고/되거나 그 접촉자를 찾기 위해 검색될 수 있다.In step 2004, a search may be made to find a buddy class contact. For example, Peer Name Resolution Protocol (PNRP) may be used to locate an endpoint associated with a buddy class contactor in a peer to peer network. Alternatively, or else, the search may be made across a local network partition, such as subnet 218 (FIG. 2) to find a contact. Any suitable network partition can be set up for a contact and / or searched to find that contact.

검색은 성공적이지 않을 수도 있다. 예를 들어, 버디 클래스 접촉자는 피어 투 피어 네트워크 및/또는 로컬 네트워크 파티션 내에 관련 종점이 없을 수도 있다. 단계(2006)에서, 버디 클래스 접촉자가 발견되었는지 판정될 수 있다. 예를 들어, 피어 이름 분석 프로토콜은 피어 투 피어 네트워크 내의 관련된 협력 종점에 대한 버디 클래스 접촉자의 이름을 성공적으로 분석할 수 있고, 또는 응답은 버디 클래스 접촉자를 위한 관련된 종점(예를 들어, TCP/IP 주소 및 통신 포트 번호)을 식별하는 로컬 네트워크 파티션 전체에 걸친 메시지 방송에 대해 수신될 수 있다. 버디 클래스 접촉자가 발견되면, 절차는 단계(2008)로 진행할 수 있다. 그렇지 않 으면, 예를 들어, 접촉자가 버디로 분류되었기 때문에, 부재가 일시적인 것으로 추정될 수 있고, 절차는 단계(2010)로 진행할 수 있다.The search may not be successful. For example, the buddy class contactor may not have an associated endpoint in the peer to peer network and / or local network partition. In step 2006, it may be determined whether a buddy class contactor is found. For example, the peer name resolution protocol may successfully resolve the name of the buddy class contactor for the associated cooperative endpoint in the peer-to-peer network, or the response may be an associated endpoint for the buddy class contactor (eg, TCP / IP). Address and communication port number) may be received for message broadcasts across a local network partition. If the buddy class contactor is found, the procedure may proceed to step 2008. Otherwise, for example, because the contact has been classified as a buddy, the member may be assumed to be temporary and the procedure may proceed to step 2010.

버디로 분류된 후에는 접촉자가 전형적으로 활동적인 협력 참가자라는 가정을 내포할 수 있고, 본 발명의 실시예에서, 놓친 버디 클래스 접촉자를 찾기 위한 주기적 검색은 계산 및 네트워크 자원에 관한 증가된 요구에도 불구하고 정당화 특징이 되도록 협력 서비스 플랫폼(302)(도 3)의 효율성을 충분히 향상시킨다. 절차는 검색들 사이를 단계(2010)에서 기다릴 수 있다. 예를 들어, 검색들 사이의 기간은 10분일 수 있다. 단계(2010)는 대기 및 아마도 후속되는 단계가 분리된 실행 스레드에서 발생할 수 있다는 것을 나타내기 위해 파선(2012)으로 둘러싸인다. 대기 단계(2010)를 위한 분리된 실행 스레드를 인스턴스 생성한 후에, 주요 실행 스레드는 단계(2014)로 진행할 수 있다.Once classified as a buddy, it may imply the assumption that the contact is typically an active collaborative participant, and in an embodiment of the present invention, periodic searches to find missing buddy class contacts, despite the increased demand for computational and network resources. And the efficiency of the cooperative service platform 302 (FIG. 3) is sufficiently enhanced to be a justifying feature. The procedure may wait at step 2010 between searches. For example, the period between searches may be 10 minutes. Step 2010 is surrounded by dashed line 2012 to indicate that waiting and possibly subsequent steps may occur in separate execution threads. After instantiating a separate execution thread for the wait phase 2010, the main execution thread may proceed to step 2014.

버디 클래스 접촉자를 발견했으면, 단계(2008)에서, 프레즌스 구독 메시지는 접촉자와 관련된 종점, 예를 들어 단계(2004)에서 발견된 종점에 보내질 수 있다. 프레즌스 구독 메시지는 접촉자와 관련된 협력 프레즌스 정보의 일부 또는 전부에 대한 구독을 지정할 수 있다. 예를 들어, 프레즌스 구독 메시지는 프레즌스 객체(600) 애플리케이션 프로그래밍 인터페이스의 리치 텍스트 설명 요소(602)(도 6), 종점 요소(604), 집합체 상태 요소(606), 집합체 능력 요소(608) 및 발행된 객체 요소(610) 중의 하나 이상을 통해 액세스가능한 프레즌스 정보에 대한 구독을 지정할 수 있다. 예를 들어, 단계(1914)(도 19)에서 구독에 응답하여 보낸 프레즌스 통지 메시지는 구독에 의해 커버되고 필요할 수 있는 프레즌스 변화의 일부분이 변경된 프레즌스 정보의 일부분을 포함할 때 단지 보내질 필요가 있을 수 있다.Once the buddy class contact has been found, at step 2008, the presence subscription message may be sent to an endpoint associated with the contact, for example, the endpoint found at step 2004. The presence subscription message may specify a subscription to some or all of the cooperative presence information associated with the contact. For example, the presence subscription message may include a rich text description element 602 (FIG. 6), an endpoint element 604, an aggregate state element 606, an aggregate capability element 608, and a publication in the presence object 600 application programming interface. Subscriptions to presence information accessible through one or more of the assigned object elements 610 may be specified. For example, a presence notification message sent in response to a subscription in step 1914 (FIG. 19) may only need to be sent when a portion of the presence change that is covered by the subscription and that may be needed includes a portion of the changed presence information. have.

단계(2014)에서, 버디 클래스 접촉자 세트 내에 버디 클래스 접촉자가 더 있는지 판정될 수 있다. 그러한 접촉자가 더 있으면, 절차는 단계(2002)로 돌아가서 다음 접촉자를 세트에서 선택할 수 있다. 그렇지 않으면, 절차는 단계(1914)(도 19) 및/또는 도 21의 단계(2102)와 같은 다른 단계로 진행할 수 있다.In step 2014, it may be determined whether there are more buddy class contacts in the set of buddy class contacts. If there are more such contacts, the procedure may return to step 2002 to select the next contact from the set. Otherwise, the procedure may proceed to other steps, such as step 1914 (FIG. 19) and / or step 2102 of FIG. 21.

도 21은 본 발명의 실시예에 따른 프레즌스 구독을 수락하는 예시적인 단계를 도시하고 있다. 단계(2102)에서, 프레즌스 구독 메시지가 수신될 수 있다. 예를 들어, 이것은 단계(2008)(도 20)에서 보낸 프레즌스 구독 메시지일 수 있다. 단계(2104)에서, 프레즌스 구독의 송신자와 관련된 접촉자 정보가 검색될 수 있다. 예를 들어, 프레즌스 구독 메시지는 송신자와 관련된 접촉자 객체(402)(도 4)를 참조할 수 있다. 프레즌스 구독 메시지의 수신자는 접촉자 관리 서비스(304)(도 3)로 송신자의 접촉자 정보를 검색할 수 있다.21 illustrates exemplary steps for accepting a presence subscription in accordance with an embodiment of the present invention. In step 2102, a presence subscription message may be received. For example, this may be a presence subscription message sent in step 2008 (FIG. 20). In step 2104, contact information associated with the sender of the presence subscription may be retrieved. For example, the presence subscription message may reference the contact object 402 (FIG. 4) associated with the sender. The recipient of the presence subscription message may retrieve the sender's contact information with contact management service 304 (FIG. 3).

단계(2106)에서, 구독 정책이 프레즌스 구독 메시지의 송신자를 위해 설정되었는지 판정될 수 있다. 예를 들어, 접촉자 관리 서비스(304)(도 3)에 의해 관리되는 송신자와 관련된 접촉자 정보는 송신자와, 송신자를 위한 구독 정책 사이의 관련성을 포함할 수 있다. 대안적으로, 구독 정책은 모든 구독자를 위해, 또는 송신자가 멤버인 구독자의 어떤 그룹을 위해 적소에 있을 수 있다.At step 2106, it may be determined whether a subscription policy has been set for the sender of the presence subscription message. For example, contact information associated with a sender managed by contact management service 304 (FIG. 3) may include a relationship between the sender and a subscription policy for the sender. Alternatively, the subscription policy may be in place for all subscribers, or for any group of subscribers the sender is a member of.

단순한 구독 정책의 예는 차단 및 허용을 포함한다. 즉, 접촉자로부터의 구독 요청을 차단하고, 또는 접촉자로부터의 구독 요청을 허용한다. 본 발명의 실시예에서, 송신자를 위한 구독 정책은 수신자와 관련된 MeContact 객체(406)의 권한 있는 구독자 요소(906)(도 9)에 의해 참조된 접촉자 객체(402)(도 4) 인스턴스의 세트에 의해 결정된다. 송신자와 관련된 접촉자 객체(402) 인스턴스가 권한있는 구독자 요소(906)에 의해 참조된 세트 내에 있으면, 송신자는 허용되고, 그렇지 않으면 송신자를 차단된다.Examples of simple subscription policies include blocking and allowing. That is, it blocks a subscription request from a contact, or allows a subscription request from a contact. In an embodiment of the present invention, a subscription policy for a sender is applied to the set of contactor object 402 (FIG. 4) instances referenced by the authorized subscriber element 906 (FIG. 9) of the MeContact object 406 associated with the receiver. Is determined by. If the contactor object 402 instance associated with the sender is in the set referenced by the authorized subscriber element 906, the sender is allowed, otherwise the sender is blocked.

본 발명의 실시예에서, 더욱 정교한 구독 정책이 가능하다. 예를 들어, 더욱 정교한 구독 정책은 구독자의 프레즌스 정보의 하나 이상의 서브셋에 대한 구독을 차단 및/또는 허용할 수 있다. 프레즌스 객체(600)의 집합체 상태(606)(도 6) 및 리치 텍스트 설명(602)의 구독을 허용하고, 다른 프레즌스 객체 요소(604, 608, 610)의 구독을 차단하는 것은 한가지 가능한 예이다. 프레즌스 객체 요소(602, 604, 606, 608 및 610) 및/또는 이 프레즌스 객체 요소(602, 604, 606, 608 및 610)에 의해 참조된 프로그램 객체(410, 412, 418)의 (전부를 포함하는) 임의의 적합한 서브셋은 구독 정책 및/또는 구독의 주체일 수 있다.In embodiments of the present invention, more sophisticated subscription policies are possible. For example, more sophisticated subscription policies may block and / or allow subscriptions to one or more subsets of the subscriber's presence information. Allowing subscriptions to the aggregate state 606 (FIG. 6) and rich text description 602 of the presence object 600 and blocking the subscription of other presence object elements 604, 608, 610 is one possible example. (Including all) of the presence object elements 602, 604, 606, 608, and 610 and / or the program objects 410, 412, 418 referenced by these presence object elements 602, 604, 606, 608, and 610. Any suitable subset may be the subject of the subscription policy and / or subscription.

구독 정책이 구독 메시지의 송신자를 위해 적소에 있으면, 절차는 단계(2108)로 진행할 수 있다. 그렇지 않으면, 절차는 단계(2110)로 진행할 수 있다. 단계(2110)에서, 구독의 주체인 협력 프레즌스와 관련된 협력 서비스 플랫폼(302)(도 3)의 사용자는 프레즌스 구독 메시지의 송신자에 관한 구독 정책을 찾기 위해 조회될 수 있다. 예를 들어, 발행 서비스(306)는 송신자와 관련된 접촉자 정보, 및 차단 및 허용과 같은 구독 정책 옵션을 표시하는 사용자 인터페이스(예를 들어, 그래픽 사용자 인터페이스 또는 GUI)를 나타낼 수 있다. 그 다음, 사용자는 사용자 인터페이스로 송신자를 위한 구독 정책을 선택할 수 있다.If the subscription policy is in place for the sender of the subscription message, the procedure may proceed to step 2108. Otherwise, the procedure may proceed to step 2110. In step 2110, a user of the cooperative service platform 302 (FIG. 3) associated with the cooperative presence that is the subject of the subscription may be queried to find a subscription policy regarding the sender of the presence subscription message. For example, publishing service 306 may represent a user interface (eg, graphical user interface or GUI) that displays contact information associated with the sender, and subscription policy options such as blocking and allowing. The user can then select a subscription policy for the sender with the user interface.

단계(2112)에서, 사용자에 의해 선택된 구독 정책은 송신자를 위해 설정될 수 있다. 예를 들어, 구독 정책은 협력 서비스 플랫폼(302)의 접촉자 관리 서비스(304)(도 3)를 통해 송신자와 관련될 수 있고, 또는 송신자와 관련된 접촉자 객체(402)(도 4) 인스턴스에 대한 레퍼런스는 수신자와 관련된 MeContact 객체(406) 인스턴스의 권한있는 구독자 요소(906)(도 9)에 의해 유지된 레퍼런스 세트에 추가될 수 있다. 단계(2108)에서는, 송신자에 관한 구독 정책이 설정되었으면, 그 구독 정책이 구독을 차단하는 것인지 판정될 수 있다. 구독 정책이 송신자로부터 구독을 차단하는 것이면, 절차는 단계(2114)로 진행할 수 있다. 그렇지 않으면, 절차는 단계(2116)로 진행할 수 있다.In step 2112, the subscription policy selected by the user may be set for the sender. For example, a subscription policy may be associated with a sender through contact management service 304 (FIG. 3) of the cooperative service platform 302, or a reference to a contact object instance 402 (FIG. 4) instance associated with the sender. May be added to the reference set maintained by the authorized subscriber element 906 (FIG. 9) of the MeContact object 406 instance associated with the receiver. In step 2108, if a subscription policy for the sender has been set, it may be determined whether the subscription policy blocks the subscription. If the subscription policy is to block the subscription from the sender, the procedure may proceed to step 2114. Otherwise, the procedure may proceed to step 2116.

단계(2116)에서, 협력 프레즌스 구독이 수락될 수 있다. 예를 들어, 프레즌스 구독 메시지에 의해 지정된 구독은 접촉자 관리 서비스(304)(도 3)를 통해 수신자와 관련된 MeContact 객체(406)와 관련될 수 있다. 본 발명의 실시예에서, 프레즌스 구독 메시지에 의해 지정된 구독은 송신자와 관련된 접촉자 객체(402)(도 4) 인스턴스를, 수신자와 관련된 MeContact 객체(406) 인스턴스의 활동적인 구독자 요소(908)(도 9)에 의해 참조된 접촉자 객체(402) 인스턴스 세트에 추가함으로써 수락된다. 구독이 허용 및 차단보다 더욱 정교한 경우에, 프레즌스 구독 메시지에 의해 지정된 구독은 수락되기 전에 송신자와 관련된 구독 정책에 관해 필터될 수 있다. 예를 들어, 구독이 모든 프레즌스 정보에 대한 것이지만, 구독 정책이 구독을 집합체 상태로 제한하면, 수락된 구독은 집합체 상태에 대해서만 이루어질 것이다. 함께, 단계(2108 및 2116)는 구독이 구독 정책에 따라 수락되는 것을 보장할 수 있다.At step 2116, the cooperative presence subscription may be accepted. For example, the subscription specified by the presence subscription message may be associated with the MeContact object 406 associated with the recipient via contact management service 304 (FIG. 3). In an embodiment of the present invention, the subscription specified by the presence subscription message may include a contactor object 402 (FIG. 4) instance associated with the sender and an active subscriber element 908 (FIG. 9) instance of the MeContact object 406 instance associated with the receiver. Is added by adding to the set of contact object 402 instances referenced by. If the subscription is more sophisticated than allow and block, the subscription specified by the presence subscription message may be filtered about the subscription policy associated with the sender before it is accepted. For example, if a subscription is for all presence information, but the subscription policy restricts the subscription to aggregate status, the accepted subscription will only be for aggregate status. Together, steps 2108 and 2116 can ensure that the subscription is accepted according to the subscription policy.

단계(2114)에서, 프레즌스 구독 메시지의 송신자가 수신자의 버디 클래스 접촉자인지 판정될 수 있다. 예를 들어, 수신자와 관련된 MeContact 객체(900)의 버디 요소(904)(도 9)에 의해 참조된 접촉자 객체(402)(도 4) 인스턴스의 세트는 프레즌스 구독 메시지의 송신자와 관련된 접촉자 객체(402) 인스턴스를 확인하기 위해 조사될 수 있다. 발행 서비스(306)(도 3)는 접촉자 관리 서비스(304)로 프레즌스 구독 메시지의 송신자가 수신자의 버디 클래스 접촉자인지 판정할 수 있다. 프레즌스 구독 메시지의 송신자가 수신자의 버디 클래스 접촉자이면, 절차는 단계(2118)로 진행할 수 있다. 그렇지 않으면, 절차는 단계(2120)로 진행할 수 있다.In step 2114, it may be determined whether the sender of the presence subscription message is the recipient's buddy class contact. For example, the set of contactor object 402 (FIG. 4) instances referenced by the buddy element 904 (FIG. 9) of the MeContact object 900 associated with the receiver is the contactor object 402 associated with the sender of the presence subscription message. ) Can be examined to identify the instance. Publishing service 306 (FIG. 3) may contact contact management service 304 to determine whether the sender of the presence subscription message is the recipient's buddy class contact. If the sender of the presence subscription message is the recipient's buddy class contact, the procedure may proceed to step 2118. Otherwise, the procedure may proceed to step 2120.

프레즌스 구독 메시지의 송신자가 수신자의 버디 클래스 접촉자라는 것을 판정했으면, 단계(2118)에서, 프레즌스 구독 메시지의 수신자가 현재 송신자의 프레즌스를 구독하게 되는지 판정될 수 있다. 예를 들어, 발행 서비스(306)(도 3) 애플리케이션 프로그래밍 인터페이스는 지정된 접촉자에 의해 신청된 구독 세트의 열거를 가능하게 하는 열거 구독 요소를 가질 수 있고, 구독 세트는 송신자의 프레즌스에 신청된 구독을 확인하기 위해 조사될 수 있다. 대안적으로, 또는 그 밖에, 수신자와 관련된 MeContact 객체(406)(도 4) 인스턴스의 버디 요소(904)(도 9)에 의해 참조된 접촉자 정보는 각각의 버디 클래스 접촉자에 대해, 프레즌스 구독이 접촉자에 의해 수락되었는지에 관한 표시를 포함할 수 있다.If it is determined that the sender of the presence subscription message is the recipient's buddy class contactor, then at step 2118, it may be determined whether the recipient of the presence subscription message is subscribed to the presence of the current sender. For example, the publishing service 306 (FIG. 3) application programming interface may have an enumeration subscription element that enables enumeration of subscription sets subscribed by a designated contact, and the subscription set may subscribe to subscriptions subscribed to the sender's presence. Can be investigated to confirm. Alternatively, or else, contact information referenced by buddy element 904 (FIG. 9) of the MeContact object 406 (FIG. 4) instance associated with the receiver may be obtained for each buddy class contact, the presence subscription being the contactor. It may include an indication as to whether it has been accepted by.

프레즌스 구독 메시지의 수신자가 현재 송신자의 프레즌스를 구독하게 되는 것으로 판정되면, 절차는 단계(2120)로 진행할 수 있다. 그렇지 않으면, 수신자는 단계(2122)에서 송신자의 프레즌스를 구독할 수 있다. 예를 들어, 프레즌스 구독 메시지의 수신자가 도 20과 관련하여 상술된, 송신자를 찾는 단계를 사전에 수행했지만, 송신자가 온라인 상태가 아니었고, 수신자가 다시 검색하기 이전에 단계(2010)에서 기다리고 있는 것일 수 있다. 이제, 송신자는 온라인 상태가 되어, 프레즌스 구독 메시지를 발송했다. 계속 기다린 다음에, 다시 송신자를 찾아서 계산 및 네트워크 자원을 소비하기보다는 오히려, 본 발명의 실시예에서, 수신자는 상호 프레즌스 구독 메시지로 버디 클래스 접촉자로부터의 프레즌스 구독 메시지에 응답할 수 있다. 단계(2122)에서, 상호 프레즌스 구독 메시지는 단계(2008)(도 20)에서 상술된 바와 같이 버디 클래스 접촉자에게 보내질 수 있다.If the recipient of the presence subscription message is determined to subscribe to the presence of the current sender, the procedure may proceed to step 2120. Otherwise, the receiver can subscribe to the sender's presence at step 2122. For example, the recipient of the presence subscription message has previously performed the step of finding the sender, described above with respect to FIG. 20, but the sender was not online and is waiting at step 2010 before the recipient retrieves again. It may be. The sender is now online, sending the presence subscription message. Rather than waiting and looking again for the sender to consume computational and network resources, in an embodiment of the present invention, the receiver may respond to a presence subscription message from a buddy class contact with a mutual presence subscription message. In step 2122, the mutual presence subscription message may be sent to the buddy class contact as described above in step 2008 (FIG. 20).

단계(2120)에서, 하나 이상의 프레즌스 통지 메시지는 단계(2116)에서 수락된 프레즌스 구독에 따라 프레즌스 구독 메시지의 송신자에게 보내질 수 있다. 초기 프레즌스 통지 메시지는 수락된 구독에 일치하는 모든 프레즌스 정보를 포함할 수 있고, 또는 예를 들어 수신자가 이미 소유하고 있는 것으로 알려진 프레즌스 정보 이외의 프레즌스 차이 세트를 포함할 수 있다. 초기 프레즌스 통지 메시지 이후에, 추가 프레즌스 통지 메시지는 구독자에게 협력 프레즌스 갱신을 통지하기 위해 보내질 수 있다. 예를 들어, 특정 협력 서비스 플랫폼(302)(도 3) 사용자의 협력 프레즌스에 대한 하나 이상의 갱신 후에, 하나 이상의 프레즌스 통지 메시지는 발행 서비스(306)(도 3)에 보내질 수 있다. 사용자의 프레즌스에 대한 각각의 구독에 대해, 발행 서비스(306)는 프레즌스 통지 메시지에 의해 참조된 프레즌스 정 보의 하나 이상의 서브셋이 구독에 일치하는지 판정할 수 있다. 각각의 일치하는 구독에 대해, 발행 서비스(306)는 구독을 신청한 협력 서비스 플랫폼(302) 사용자에게 프레즌스 통지 메시지를 전달할 수 있다.At step 2120, one or more presence notification messages may be sent to the sender of the presence subscription message according to the presence subscriptions accepted at step 2116. The initial presence notification message may include all presence information that matches the accepted subscription, or may include, for example, a set of presence differences other than the presence information known to be already owned by the recipient. After the initial presence notification message, an additional presence notification message can be sent to notify the subscriber of the cooperative presence update. For example, after one or more updates to the cooperative presence of a particular cooperative service platform 302 (FIG. 3) user, one or more presence notification messages may be sent to the publishing service 306 (FIG. 3). For each subscription to the user's presence, the publishing service 306 may determine whether one or more subsets of the presence information referenced by the presence notification message match the subscription. For each matching subscription, the publishing service 306 may deliver a presence notification message to the cooperative service platform 302 user who subscribed to the subscription.

여기에서 인용된 공보, 특허 출원 및 특허를 포함한 모든 참고문헌은 각각의 참고문헌이 개별적으로 구체적으로 참조로 사용되는 것으로 나타나고 여기에서 전체적으로 설명된 것처럼 동일한 정도까지 여기에서 참조로 사용된다.All references, including publications, patent applications, and patents cited herein, are each incorporated by reference in their entirety and are hereby incorporated by reference to the same extent as described herein in its entirety.

본 발명을 설명하는 문맥에서(특히 다음의 청구범위의 문맥에서) 용어 "a", "an", "the" 및 이와 유사한 지시대상의 사용은 여기에서 달리 나타내지 않는 한 또는 문맥으로 분명하게 부인하지 않는 한, 단수와 복수 둘 다를 포함하는 것으로 해석될 수 있다. 용어 "comprising", "having", "including" 및 "containing"은 달리 언급하지 않는 한, 제한 없는 용어로(즉, "포함하지만, 제한되지 않는"을 의미하는 것으로) 해석될 수 있다. 여기에서 값의 범위의 열거는 여기에서 달리 나타내지 않는 한, 범위에 속하는 각각의 분리된 값을 개별적으로 나타내는 속기 방법으로 쓰고자 한 것일 뿐이고, 각각의 분리된 값은 여기에서 개별적으로 열거된 것처럼 명세서에 포함된다. 여기에서 설명된 모든 방법은 여기에서 달리 나타내지 않는 한 또는 문맥으로 분명하게 달리 부인하지 않는 한, 임의의 적합한 순서로 수행될 수 있다. 여기에서 제공된 임의의 및 모든 예, 또는 예시적인 언어(예를 들어, "such as")의 사용은 단지 본 발명을 더욱 명확히 하고자 한 것일 뿐이고, 달리 청구되지 않는 한 본 발명의 범위에 제한을 가하는 것이 아니다. 명세서 내의 어떤 언어도, 청구되지 않은 어떤 요소를 본 발명의 실시에 필수적인 것처럼 나타 내는 것으로 해석되어서는 안된다.The use of the terms "a", "an", "the", and the like in the context of the present invention (particularly in the context of the following claims) is not expressly disclaimed or otherwise indicated herein unless otherwise indicated. Unless, it is to be construed to include both singular and plural. The terms "comprising", "having", "including" and "containing" may be interpreted in an unlimited term (ie, meaning "including, but not limited to") unless stated otherwise. The enumeration of ranges of values herein is intended to be written in a shorthand way of individually representing each discrete value within a range, unless otherwise indicated herein, with each discrete value specified as individually listed herein. Included in All methods described herein may be performed in any suitable order unless otherwise indicated herein or otherwise expressly disclaimed in the context. The use of any and all examples, or exemplary language (eg, "such as") provided herein, is merely intended to clarify the invention more, and does not limit the scope of the invention unless otherwise claimed. It is not. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention.

본 발명의 양호한 실시예는 본 발명을 실시하는 발명가들에게 알려진 최상의 모드를 포함하여, 여기에서 설명된다. 그들 양호한 실시예의 변형은 상기 설명을 읽어보면 본 분야에 숙련된 기술자들에게 명백해질 수 있다. 발명가들은 숙련된 기술자들이 그러한 변형을 적절하게 이용할 것으로 예상하고, 발명가들은 본 발명이 여기에서 구체적으로 설명된 것과 다르게도 실시되게 할 작정이다. 따라서, 본 발명은 적용가능한 법률에 의해 허용되는 바와 같이 여기에 첨부된 청구범위에서 설명된 주제의 모든 변형 및 그 등가물을 포함한다. 게다가, 본 발명의 모든 가능한 변형 내에서의 상술된 요소들의 임의의 조합은 여기에서 달리 나타내지 않는 한 또는 문맥으로 분명하게 달리 부인하지 않는 한 본 발명에 포함된다.Preferred embodiments of the invention are described herein, including the best mode known to the inventors of the invention. Modifications of those preferred embodiments will become apparent to those skilled in the art upon reading the above description. The inventors expect skilled artisans to employ such variations as appropriate, and the inventors intend for the invention to be practiced otherwise than as specifically described herein. Accordingly, the present invention includes all modifications and equivalents of the subject matter described in the claims appended hereto as permitted by applicable law. In addition, any combination of the foregoing elements within all possible variations of the invention is included in the invention unless otherwise indicated herein or otherwise clearly disclaimed in the context.

Claims (20)

협력 초대(collaborative invitation)를 위한 컴퓨터-실행가능 명령어들이 포함되어 있는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터-실행가능 명령어들은,A computer-readable storage medium containing computer-executable instructions for a collaborative invitation, the computer-executable instructions comprising: 초대 사용자 인터페이스로 최소한 하나의 접촉자를 선택하는 명령어;Selecting at least one contact with the invite user interface; 상기 최소한 하나의 접촉자에게 보내져야 할 초대가 상기 초대 사용자 인터페이스로부터 시작(initiating)되어야 하는지 아니면 협력 애플리케이션으로부터 직접 시작되어야 하는지를 판정하는 명령어 - 상기 협력 애플리케이션은 상기 초대 사용자 인터페이스와 구별되고, 운영 체제로부터 개시(launching)되고, 종점(endpoint)과 관련된 능력(capability) 또는 협력 활동(collaborative activity) 중 최소한 하나와 관련됨 -;Determining whether an invitation to be sent to the at least one contact should be initiated from the invitation user interface or directly from a collaborative application, wherein the collaborative application is distinct from the invitation user interface and initiated from an operating system. launched and associated with at least one of a capability or collaborative activity associated with an endpoint; 보내져야 할 초대가 상기 초대 사용자 인터페이스로부터 시작되어야 한다고 판정되면, 최소한If it is determined that the invitation to be sent should originate from the invitation user interface, then at least 상기 협력 애플리케이션을 개시하는 명령어; 및Instructions to launch the cooperative application; And 상기 초대 사용자 인터페이스로부터 상기 최소한 하나의 접촉자에게 상기 초대를 보내는 것을 시작하는 명령어; 및Initiating sending the invitation to the at least one contact from the invitation user interface; And 보내져야 할 초대가 상기 협력 애플리케이션으로부터 직접 시작되어야 한다고 판정되면, 최소한If it is determined that the invitation to be sent should be started directly from the collaboration application, then at least 상기 협력 애플리케이션을 개시하는 명령어; 및Instructions to launch the cooperative application; And 상기 협력 애플리케이션으로부터 직접 상기 최소한 하나의 접촉자에게 상기 초대를 보내는 것을 시작하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.And initiating sending the invitation to the at least one contact directly from the collaborative application. 제1항에 있어서,The method of claim 1, 상기 초대 사용자 인터페이스는 초대 서비스의 그래픽 사용자 인터페이스인 컴퓨터 판독가능 저장 매체.And the invite user interface is a graphical user interface of an invite service. 제1항에 있어서, The method of claim 1, 상기 컴퓨터-실행가능 명령어들은 상기 초대 사용자 인터페이스를 통해 협력 활동을 선택하는 명령어를 더 포함하고,The computer-executable instructions further comprise instructions for selecting a cooperative activity via the invitation user interface, 상기 협력 애플리케이션을 개시하는 명령어는 선택된 상기 협력 활동과 관련된 협력 애플리케이션을 개시하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.Instructions for initiating the cooperative application include instructions for initiating a cooperative application associated with the selected cooperative activity. 제1항에 있어서,The method of claim 1, 상기 협력 애플리케이션에 의한 검색(retrieval)을 위해 초대 상세들을 저장하는 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.And instructions for storing invitation details for retrieval by the collaborative application. 제1항에 있어서,The method of claim 1, 상기 초대를 보내는 것을 시작하는 명령어는 초대 서비스의 애플리케이션 프로그래밍 인터페이스의 초대 송신 요소에 의해 초대를 보내는 것을 시작하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.And the command to initiate sending the invitation comprises instructions to initiate sending the invitation by an invitation sending element of an application programming interface of the invitation service. 제5항에 있어서,The method of claim 5, 상기 초대 서비스의 애플리케이션 프로그래밍 인터페이스는,The application programming interface of the invitation service, 상기 초대 송신 요소;The invitation sending element; 수신된 초대에 응답하는 초대 응답 요소; 및An invitation response element responsive to the received invitation; And 송신된 초대를 삭제하는 초대 삭제 요소Delete invitation element to delete sent invitations 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising. 제1항에 있어서,The method of claim 1, 상기 초대를 보내는 것을 시작하는 명령어는, 상기 최소한 하나의 접촉자 각각에 대해,The command to start sending the invitation, for each of the at least one contact, 상기 접촉자에 대한 복수의 종점들의 세트를 판정하는 명령어; 및Instructions for determining a set of a plurality of endpoints for the contact; And 상기 복수의 종점들의 세트 내의 각각의 종점에 대해, 최소한For each endpoint in the set of endpoints, at least 상기 각각의 종점에의 통신 접속을 설정하는 명령어; 및Establishing a communication connection to each of the endpoints; And 상기 통신 접속을 통해 상기 각각의 종점에 초대를 보내는 명령어Send an invitation to the respective endpoint via the communication connection 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising. 제7항에 있어서,The method of claim 7, wherein 각 접촉자의 표현은 종점 프로그램 개체 인스턴스들의 세트를 참조하는 접촉자 프로그램 개체 인스턴스를 포함하고,Each contact's representation includes a contact program object instance referencing a set of endpoint program object instances, 상기 접촉자에 대한 복수의 종점들의 세트를 판정하는 명령어는,The command to determine a set of a plurality of endpoints for the contact, 상기 종점 프로그램 개체 인스턴스들의 세트를 찾기 위해 상기 접촉자에 대응하는 상기 접촉자 프로그램 개체 인스턴스를 조회(querying)하는 명령어; 및Instructions for querying the contactor program entity instance corresponding to the contactor to find the set of endpoint program entity instances; And 상기 종점 프로그램 개체 인스턴스들의 세트가 비어 있으면, 접촉자 위치 서비스로 상기 접촉자에 대한 복수의 종점들의 세트를 판정하는 명령어If the set of endpoint program entity instances is empty, determining a set of a plurality of endpoints for the contact with a contact location service 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising. 협력 초대를 위한 컴퓨터-실행가능 명령어들이 포함되어 있는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터-실행가능 명령어들은,A computer-readable storage medium containing computer-executable instructions for a collaboration invitation, the computer-executable instructions comprising: 협력 활동에 참가하라는 초대를 협력 서비스 플랫폼에서 직접 또한 협력 애플리케이션에서 직접 수신하는 명령어 - 상기 협력 애플리케이션은 상기 협력 서비스 플랫폼과 구별되고, 운영 체제로부터 개시되고, 상기 협력 활동과 관련됨 -,Instructions for receiving an invitation to participate in a cooperative activity directly at a cooperative service platform and directly in a cooperative application, wherein the cooperative application is distinct from the cooperative service platform, initiated from an operating system, and associated with the cooperative activity, 상기 초대에 응답하여 수락, 거절 및 무시 중의 하나를 선택하는 능력(ability)과 함께, 상기 협력 서비스 플랫폼 또는 상기 협력 애플리케이션 중 최소한 하나의 사용자에게 상기 초대를 제시하는 명령어;Presenting the invitation to at least one of the cooperative service platform or the cooperative application, with the ability to select one of accept, decline and ignore in response to the invitation; 상기 사용자의 선택을 수신하는 명령어; 및Instructions for receiving a selection of the user; And 상기 사용자의 선택의 표시를 포함하는 응답을 상기 초대의 송신자에게 보내는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.Instructions for sending a response to the sender of the invitation, the response including an indication of the user's selection. 제9항에 있어서,10. The method of claim 9, 상기 초대는 상기 협력 서비스 플랫폼의 종점에서 수신되고,The invitation is received at an endpoint of the cooperative service platform, 상기 컴퓨터-실행가능 명령어들은 상기 종점이 상기 협력 활동에 참가할 수 있는지 판정하는 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.And the computer-executable instructions further comprise instructions to determine if the endpoint can participate in the collaborative activity. 제10항에 있어서,The method of claim 10, 상기 초대는 상기 협력 활동에 참가할 수 있기 위해 요구되는 능력들의 세트의 명세(specification)를 포함하고,The invitation includes a specification of a set of capabilities required to participate in the collaborative activity, 상기 협력 서비스 플랫폼은 상기 종점의 능력들의 레지스트리를 포함하며,The cooperative service platform includes a registry of capabilities of the endpoint, 상기 종점이 상기 협력 활동에 참가할 수 있는지 판정하는 명령어는 상기 초대에 의해 지정된 능력들 세트를 상기 종점의 등록된 능력들과 비교하는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.And instructions for determining if the endpoint can participate in the collaborative activity include instructions for comparing a set of capabilities specified by the invitation with registered capabilities of the endpoint. 제9항에 있어서,10. The method of claim 9, 상기 초대는 상기 협력 서비스 플랫폼을 위한 표준 통신 포트, 및 상기 협력 애플리케이션에 특정된 비표준 통신 포트 중의 하나에서 수신되고,The invitation is received at one of a standard communication port for the cooperative service platform and a non-standard communication port specific to the cooperative application, 상기 초대가 상기 표준 통신 포트에서 수신되고, 상기 사용자가 상기 초대를 수락하는 것을 선택하면, 상기 컴퓨터-실행가능 명령어들은 If the invitation is received at the standard communication port and the user chooses to accept the invitation, the computer-executable instructions are 상기 협력 애플리케이션에 의한 검색을 위해 상기 초대 내에 포함된 정보의 일부 또는 전부를 저장하는 명령어;Instructions for storing some or all of the information included in the invitation for retrieval by the collaborative application; 상기 협력 애플리케이션을 개시하는 명령어; 및Instructions to launch the cooperative application; And 상기 협력 활동을 시작하는 명령어를 더 포함하고,Further comprising instructions for starting the cooperative activity, 상기 초대가 상기 비표준 통신 포트에서 수신되고, 상기 사용자가 상기 초대를 수락하는 것을 선택하면, 상기 컴퓨터-실행가능 명령어들은 상기 협력 활동을 시작하는 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.And if the invitation is received at the non-standard communication port and the user chooses to accept the invitation, the computer-executable instructions further comprise instructions to initiate the collaborative activity. 제12항에 있어서,The method of claim 12, 상기 협력 애플리케이션을 개시하는 명령어; 및Instructions to launch the cooperative application; And 상기 협력 애플리케이션을 위한 비표준 통신 포트 상에서 초대 청취자(listener)를 생성하는 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.And instructions for creating an invite listener on a nonstandard communication port for the collaborative application. 제9항에 있어서,10. The method of claim 9, 상기 응답을 상기 초대의 송신자에게 보내는 명령어는 초대 서비스의 애플리케이션 프로그래밍 인터페이스의 초대 응답 요소에 의해 상기 응답을 보내는 명령어를 포함하는 컴퓨터 판독가능 저장 매체.Instructions for sending the response to the sender of the invitation include instructions for sending the response by an invitation response element of an application programming interface of the invitation service. 협력 초대 서비스를 위한 애플리케이션 프로그래밍 인터페이스를 구현하는 컴퓨터-실행가능 명령어들이 포함되어 있는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터-실행가능 명령어들은,A computer-readable storage medium containing computer-executable instructions for implementing an application programming interface for a collaborative invitation service, the computer-executable instructions comprising: 운영 체제;operating system; 상기 운영 체제에 포함된 협력 서비스 플랫폼;A cooperative service platform included in the operating system; 상기 협력 서비스 플랫폼에 포함된 상기 협력 초대 서비스;The cooperation invitation service included in the cooperation service platform; 상기 협력 초대 서비스로의 액세스를 제공하는 초대 서비스 애플리케이션 프로그래밍 인터페이스 - 상기 초대 서비스 애플리케이션 프로그래밍 인터페이스는, 협력 활동에 참가하라는 제1 초대에 대응하는 초대 데이터로의 액세스를 제공하는 초대 요소; 협력 서비스 플랫폼의 사용자 중 최소한 하나의 접촉자에게 상기 제1 초대를 보내는 초대 송신 요소; 수신된 초대에 응답하는 초대 응답 요소; 및 송신된 초대를 삭제하는 초대 삭제 요소를 포함함 -; 및An invitation service application programming interface for providing access to the collaboration invitation service, the invitation service application programming interface comprising: an invitation element for providing access to invitation data corresponding to a first invitation to participate in a collaboration activity; An invitation sending element for sending the first invitation to at least one contact of a user of a collaborative service platform; An invitation response element responsive to the received invitation; And an invitation deletion element for deleting the sent invitation; And 최소한 하나의 협력 애플리케이션 - 상기 최소한 하나의 협력 애플리케이션은 상기 협력 서비스 플랫폼과 구별되고, 상기 운영 체제로부터 개시되고, 종점과 관련된 능력 또는 협력 활동 중 최소한 하나와 관련되고, 초대들을 직접 보내고 수신하는 상기 초대 서비스 애플리케이션 프로그래밍 인터페이스를 사용하도록 구성됨 -At least one cooperative application-the at least one cooperative application is distinct from the cooperative service platform, initiated from the operating system, associated with at least one of a capability or cooperative activity associated with an endpoint, and directly sending and receiving invites Configured to use the service application programming interface- 에 대한 컴퓨터-실행가능 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising computer-executable instructions for a. 제15항에 있어서,The method of claim 15, 상기 초대 데이터는,The invitation data, 초대 식별자; 및Invitation identifier; And 최소한 하나의 능력 식별자At least one capability identifier 를 포함하는 컴퓨터 판독가능 저장 매체.Computer-readable storage medium comprising. 제15항에 있어서,The method of claim 15, 상기 초대 송신 요소는 상기 제1 초대의 보안 송신에 대한 초대 보안 송신 요소를 포함하고,The invitation sending element comprises an invitation secure transmission element for secure transmission of the first invitation, 상기 초대 서비스 애플리케이션 프로그래밍 인터페이스는 상기 제1 초대의 보안되지 않은 송신에 대한 초대 비보안 송신 요소를 더 포함하는 컴퓨터 판독가능 저장 매체.And the invitation service application programming interface further comprises an invitation insecure transmission element for unsecured transmission of the first invitation. 제15항에 있어서,The method of claim 15, 상기 초대 송신 요소는 상기 제1 초대를 비동기적으로 보내기 위한 초대 비동기 송신 요소를 포함하고,The invitation sending element comprises an invitation asynchronous transmission element for sending the first invitation asynchronously, 상기 초대 서비스 애플리케이션 프로그래밍 인터페이스는 상기 제1 초대를 동기적으로 보내기 위한 초대 동기 송신 요소를 더 포함하는 컴퓨터 판독가능 저장 매체.And the invitation service application programming interface further comprises an invitation synchronous transmission element for sending the first invitation synchronously. 제15항에 있어서,The method of claim 15, 상기 초대 서비스 애플리케이션 프로그래밍 인터페이스는 협력 종점에서 초대 청취자의 인스턴스를 생성하는(instantiating) 초대 청취자 생성 요소를 더 포함하는 컴퓨터 판독가능 저장 매체.And the invitation service application programming interface further comprises an invitation listener generation element for instantiating an invitation listener at the cooperative endpoint. 제15항에 있어서,The method of claim 15, 상기 초대 서비스 애플리케이션 프로그래밍 인터페이스는,The invitation service application programming interface, 상기 협력 초대 서비스로 협력 능력들을 등록하는 능력 등록 요소;A capability registration element for registering cooperation capabilities with the cooperation invitation service; 상기 협력 초대 서비스로 협력 능력들을 등록 취소(deregistering)하는 능력 등록취소 요소; 및A capability deregistration element for deregistering cooperation capabilities with the cooperation invitation service; And 상기 협력 초대 서비스로 등록된 능력들을 열거하는 능력 열거 요소를 더 포함하는 컴퓨터 판독가능 저장 매체.And a capability enumeration element for enumerating capabilities registered with the cooperative invitation service.
KR1020077022787A 2005-04-25 2005-08-01 Collaborative invitation system and method KR101122801B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/114,634 US7752253B2 (en) 2005-04-25 2005-04-25 Collaborative invitation system and method
US11/114,634 2005-04-25
PCT/US2005/027581 WO2006115527A1 (en) 2005-04-25 2005-08-01 Collaborative invitation system and method

Publications (2)

Publication Number Publication Date
KR20080010390A KR20080010390A (en) 2008-01-30
KR101122801B1 true KR101122801B1 (en) 2012-03-22

Family

ID=37188608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022787A KR101122801B1 (en) 2005-04-25 2005-08-01 Collaborative invitation system and method

Country Status (11)

Country Link
US (1) US7752253B2 (en)
EP (1) EP1875368A4 (en)
JP (1) JP5254005B2 (en)
KR (1) KR101122801B1 (en)
CN (1) CN101167068B (en)
BR (1) BRPI0520057A2 (en)
MX (1) MX2007013353A (en)
MY (1) MY147346A (en)
RU (1) RU2385487C2 (en)
TW (1) TWI387287B (en)
WO (1) WO2006115527A1 (en)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070060358A1 (en) 2005-08-10 2007-03-15 Amaitis Lee M System and method for wireless gaming with location determination
US7534169B2 (en) 2005-07-08 2009-05-19 Cfph, Llc System and method for wireless gaming system with user profiles
US10510214B2 (en) 2005-07-08 2019-12-17 Cfph, Llc System and method for peer-to-peer wireless gaming
US8566109B2 (en) * 2005-11-29 2013-10-22 Alcatel Lucent Common interest community service via presence messaging
US20080014964A1 (en) 2006-07-12 2008-01-17 Loc-Aid Technologies, Inc. System and method for generating use statistics for location-based applications
US9306952B2 (en) 2006-10-26 2016-04-05 Cfph, Llc System and method for wireless gaming with location determination
US8645709B2 (en) 2006-11-14 2014-02-04 Cfph, Llc Biometric access data encryption
US9411944B2 (en) 2006-11-15 2016-08-09 Cfph, Llc Biometric access sensitivity
US20080139187A1 (en) * 2006-12-12 2008-06-12 Ramachandran Subramanian Session establishment in a group communication system
US8255811B2 (en) * 2006-12-20 2012-08-28 International Business Machines Corporation Providing auto-sorting of collaborative partners or components based on frequency of communication and/or access in a collaboration system user interface
US20080162505A1 (en) * 2006-12-29 2008-07-03 Hill Charles R Context browser based navigation of pivotally related information for a document
US8321794B2 (en) * 2007-06-28 2012-11-27 Microsoft Corporation Rich conference invitations with context
EP2235902B1 (en) * 2008-01-23 2018-11-14 Telefonaktiebolaget LM Ericsson (publ) Communication arrangement
US20090210822A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Locating meeting users
US8200819B2 (en) * 2008-03-14 2012-06-12 Industrial Technology Research Institute Method and apparatuses for network society associating
US8219624B2 (en) * 2008-05-08 2012-07-10 International Business Machines Corporation System, method, and apparatus for electronic communication initiation contingent on busyness
US8412930B2 (en) 2008-10-09 2013-04-02 Microsoft Corporation Device authentication within deployable computing environment
KR20110106869A (en) * 2008-12-05 2011-09-29 소우셜 커뮤니케이션즈 컴퍼니 Pervasive realtime framework
US10356136B2 (en) 2012-10-19 2019-07-16 Sococo, Inc. Bridging physical and virtual spaces
US20100281095A1 (en) * 2009-04-21 2010-11-04 Wehner Camille B Mobile grid computing
US20100274852A1 (en) * 2009-04-28 2010-10-28 Nokia Corporation Method and Apparatus for Sharing Context to One or More Users
US8893000B2 (en) * 2009-08-26 2014-11-18 International Business Machines Corporation Relocation between virtual environments based upon promotional and alert conditions
US20110055135A1 (en) * 2009-08-26 2011-03-03 International Business Machines Corporation Deferred Teleportation or Relocation in Virtual Worlds
US9160975B2 (en) * 2009-09-25 2015-10-13 At&T Intellectual Property I, L.P. Providing a dedicated channel accessible to a group of users
CN101699877B (en) * 2009-11-05 2012-10-10 中兴通讯股份有限公司 Mobile terminal and method and system for establishing end-to-end internet protocol connection
KR101059658B1 (en) * 2010-07-01 2011-08-25 엔에이치엔(주) Method and system for providing developer interface
WO2012058610A1 (en) * 2010-10-29 2012-05-03 Paul Everton Electronic emergency messaging system
US9256840B2 (en) * 2011-12-01 2016-02-09 Sap Se Establishing business networks using a shared platform
US20150007060A1 (en) * 2012-01-09 2015-01-01 Christine Marie Nielsen System and Method for an Improved Communication and Interactive News Forum
TW201838697A (en) 2012-02-28 2018-11-01 美商Cfph有限責任公司 Method and apparatus for providing gaming service
CN103312587A (en) * 2012-03-13 2013-09-18 腾讯科技(深圳)有限公司 Appointment management method, device and terminal
GB201210598D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB2504461B (en) 2012-06-14 2014-12-03 Microsoft Corp Notification of communication events
GB201210596D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB201210600D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Call invites
WO2014029089A1 (en) * 2012-08-22 2014-02-27 Nokia Corporation Method and apparatus for exchanging status updates while collaborating
CN102946418B (en) * 2012-10-26 2015-12-09 北京奇虎科技有限公司 A kind of terminal equipment, a kind of picture provide system and a kind of picture transmission method
US10223156B2 (en) 2013-06-09 2019-03-05 Apple Inc. Initiating background updates based on user activity
US9462429B2 (en) * 2013-12-12 2016-10-04 Futurewei Technologies, Inc. Missed call notification by notifying contacts of the called party
US20160014059A1 (en) * 2015-09-30 2016-01-14 Yogesh Chunilal Rathod Presenting one or more types of interface(s) or media to calling and/or called user while acceptance of call
US9432796B2 (en) * 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on peer event data
US9354860B2 (en) 2014-07-15 2016-05-31 Sap Se Optimizing software change processes using real-time analysis and rule-based hinting
WO2016057005A1 (en) * 2014-10-08 2016-04-14 Вячеслав Васыльовыч Полиновськый Method and system for creating technology transfer
US10594835B2 (en) 2015-06-05 2020-03-17 Apple Inc. Efficient context monitoring
US11836679B2 (en) * 2021-02-18 2023-12-05 Microsoft Technology Licensing, Llc Object for pre- to post-meeting collaboration
US11962427B2 (en) 2021-02-18 2024-04-16 Microsoft Technology Licensing, Llc Auto-generated object for impromptu collaboration
CN113709406B (en) * 2021-10-27 2022-03-08 广州朗国电子科技股份有限公司 Software collaboration method, system and storage medium for Hongmon conference all-in-one machine

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020140730A1 (en) 2000-12-29 2002-10-03 International Business Machines Corporation Method and system for indentifying and displaying information that is new or has been updated in a place

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242213A (en) * 1992-03-02 1993-09-21 Casio Comput Co Ltd Line graphic drawing device
US7185054B1 (en) * 1993-10-01 2007-02-27 Collaboration Properties, Inc. Participant display and selection in video conference calls
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US5854898A (en) * 1995-02-24 1998-12-29 Apple Computer, Inc. System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween
US5724508A (en) * 1995-03-09 1998-03-03 Insoft, Inc. Apparatus for collaborative computing
US5706462A (en) * 1996-02-23 1998-01-06 Microsoft Corporation Self optimizing font width cache
US5917480A (en) * 1996-06-04 1999-06-29 Microsoft Corporation Method and system for interacting with the content of a slide presentation
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6163809A (en) * 1997-12-08 2000-12-19 Microsoft Corporation System and method for preserving delivery status notification when moving from a native network to a foreign network
US6078948A (en) * 1998-02-03 2000-06-20 Syracuse University Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions
US6216110B1 (en) * 1998-02-27 2001-04-10 Microsoft Corporation System and method for publishing calendar information to a publicly accessible location
US6108687A (en) * 1998-03-02 2000-08-22 Hewlett Packard Company System and method for providing a synchronized display to a plurality of computers over a global computer network
US6155840A (en) * 1998-09-18 2000-12-05 At Home Corporation System and method for distributed learning
US6363352B1 (en) * 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6636888B1 (en) * 1999-06-15 2003-10-21 Microsoft Corporation Scheduling presentation broadcasts in an integrated network environment
DE19943453A1 (en) 1999-09-11 2001-03-15 Daimler Chrysler Ag System and method to support group interaction (GIA) in hypermedia information spaces
US6675205B2 (en) * 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6526411B1 (en) * 1999-11-15 2003-02-25 Sean Ward System and method for creating dynamic playlists
US6636889B1 (en) * 2000-01-04 2003-10-21 International Business Machines Corporation System and method for client replication of collaboration space
US20010035976A1 (en) * 2000-02-15 2001-11-01 Andrew Poon Method and system for online presentations of writings and line drawings
US6745178B1 (en) * 2000-04-28 2004-06-01 International Business Machines Corporation Internet based method for facilitating networking among persons with similar interests and for facilitating collaborative searching for information
US20030158897A1 (en) * 2000-05-09 2003-08-21 Viryanet Ltd. Networked platform for creating and supporting communities
US6986046B1 (en) * 2000-05-12 2006-01-10 Groove Networks, Incorporated Method and apparatus for managing secure collaborative transactions
GB2365671A (en) * 2000-05-17 2002-02-20 Ibm Teleconferencing system and method
CN1300677C (en) * 2000-06-22 2007-02-14 微软公司 Distributed computing services platform
US6968179B1 (en) * 2000-07-27 2005-11-22 Microsoft Corporation Place specific buddy list services
US6714966B1 (en) * 2000-07-31 2004-03-30 The Boeing Company Information delivery service
US6701344B1 (en) * 2000-07-31 2004-03-02 The Boeing Company Distributed game environment
JP3946426B2 (en) * 2000-09-28 2007-07-18 株式会社日立製作所 Variable valve operating device for internal combustion engine
AU784512B2 (en) * 2000-10-19 2006-04-13 International Business Machines Corporation Method and system for persistent chat sessions
GB2372846A (en) 2000-11-15 2002-09-04 Vhsoft I P Company Ltd Selective distribution of electronic files via a common access platform
US20020073204A1 (en) * 2000-12-07 2002-06-13 Rabindranath Dutta Method and system for exchange of node characteristics for DATA sharing in peer-to-peer DATA networks
US7925703B2 (en) * 2000-12-26 2011-04-12 Numedeon, Inc. Graphical interactive interface for immersive online communities
US7020686B2 (en) * 2000-12-29 2006-03-28 International Business Machines Corporation Method and system for providing synchronous communication and person awareness in a place
US7127676B2 (en) * 2000-12-29 2006-10-24 International Business Machines Corporation Method and system for providing a separate browser window with information from the main window in a simpler format
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7302634B2 (en) * 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7176942B2 (en) * 2001-03-23 2007-02-13 Dassault Systemes Collaborative design
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7171415B2 (en) * 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
GB2378268B (en) 2001-06-04 2005-08-03 Gordon Ross A method of providing an interactive multi dimensional visual user interface to groups of users
US6801604B2 (en) * 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US7383433B2 (en) * 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US20030036941A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation System and method for scheduling multiple meetings on an electronic calendar
JP4446368B2 (en) * 2001-09-14 2010-04-07 富士通株式会社 Collaboration method, system, program, and recording medium
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US20030217096A1 (en) * 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
JP3967589B2 (en) * 2001-12-28 2007-08-29 富士通株式会社 Advertisement distribution method and advertisement distribution apparatus
US20030126027A1 (en) * 2001-12-31 2003-07-03 Kimberly-Clark Worldwide Integrated web ring site and method for presenting information
US20030130014A1 (en) * 2002-01-07 2003-07-10 Rucinski David B Reduced complexity user interface
US20040128350A1 (en) * 2002-03-25 2004-07-01 Lou Topfl Methods and systems for real-time virtual conferencing
US20030217073A1 (en) * 2002-05-14 2003-11-20 Walther Dan E. Increasing the level of automation when scheduling and managing meetings
US20030217142A1 (en) * 2002-05-15 2003-11-20 Microsoft Corporation Method and system for supporting the communication of presence information regarding one or more telephony devices
GB2391135B (en) * 2002-06-28 2006-01-11 Nokia Corp User group creation
US20040111423A1 (en) * 2002-07-13 2004-06-10 John Irving Method and system for secure, community profile generation and access via a communication system
US7275215B2 (en) * 2002-07-29 2007-09-25 Cerulean Studios, Llc System and method for managing contacts in an instant messaging environment
JP4411545B2 (en) * 2002-07-30 2010-02-10 ソニー株式会社 Program, information processing method and apparatus
GB0218711D0 (en) * 2002-08-12 2002-09-18 Mitel Knowledge Corp System and method for facilitating communication using presence and communication services
US7234117B2 (en) * 2002-08-28 2007-06-19 Microsoft Corporation System and method for shared integrated online social interaction
JP2004102459A (en) * 2002-09-06 2004-04-02 Sony Corp System and method for information processing, processor and method for information processing, and program
US8204992B2 (en) * 2002-09-26 2012-06-19 Oracle America, Inc. Presence detection using distributed indexes in peer-to-peer networks
US20040078436A1 (en) * 2002-10-18 2004-04-22 International Business Machines Corporation Adding meeting information to a meeting notice
US7328243B2 (en) * 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7249123B2 (en) * 2002-10-31 2007-07-24 International Business Machines Corporation System and method for building social networks based on activity around shared virtual objects
US20040172456A1 (en) * 2002-11-18 2004-09-02 Green Mitchell Chapin Enhanced buddy list interface
US20040143603A1 (en) * 2002-11-21 2004-07-22 Roy Kaufmann Method and system for synchronous and asynchronous note timing in a system for enhancing collaboration using computers and networking
US8095409B2 (en) * 2002-12-06 2012-01-10 Insors Integrated Communications Methods and program products for organizing virtual meetings
AU2002359846A1 (en) 2002-12-20 2004-07-22 Philippe Bennett Virtual meetings
US7209948B2 (en) * 2002-12-20 2007-04-24 International Business Machines, Corporation Collaborative review of distributed content
US20040122901A1 (en) * 2002-12-20 2004-06-24 Nortel Networks Limited Providing computer presence information to an integrated presence system
US20040141005A1 (en) * 2003-01-22 2004-07-22 International Business Machines Corporation System and method for integrating online meeting materials in a place
US7701882B2 (en) * 2003-02-10 2010-04-20 Intercall, Inc. Systems and methods for collaborative communication
JP2004246812A (en) * 2003-02-17 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> Network community system, configuration method for network community, and terminal device used for same system
JP4389450B2 (en) * 2003-02-24 2009-12-24 富士ゼロックス株式会社 Work space forming device
US20040184445A1 (en) * 2003-03-18 2004-09-23 Burne Jeffrey K. Computer algorithm and method for facilitating the networking of individuals
US7549924B2 (en) * 2003-05-09 2009-06-23 Microsoft Corporation Instant messaging embedded games
US7454460B2 (en) * 2003-05-16 2008-11-18 Seiko Epson Corporation Method and system for delivering produced content to passive participants of a videoconference
US20040243580A1 (en) * 2003-05-27 2004-12-02 Outi Markki System and method for message handling in a peer-to-peer environment
US7539771B2 (en) * 2003-06-06 2009-05-26 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays
US7337213B2 (en) * 2003-06-19 2008-02-26 International Business Machines Corporation Method and apparatus for managing messages in a messaging session
US20050009537A1 (en) * 2003-07-11 2005-01-13 Crocker Ronald T. Method and apparatus for facilitating wireless presence-based services
US20050027805A1 (en) * 2003-07-15 2005-02-03 Aoki Norihiro Edwin Instant messaging and enhanced scheduling
US8140980B2 (en) * 2003-08-05 2012-03-20 Verizon Business Global Llc Method and system for providing conferencing services
US7512653B2 (en) * 2003-08-11 2009-03-31 Sony Corporation System and method for dynamically grouping messaging buddies in an electronic network
US7546343B2 (en) * 2003-09-23 2009-06-09 Alcatel-Lucent Usa Inc. System and method for supporting virtual conferences
US7200638B2 (en) * 2003-10-14 2007-04-03 International Business Machines Corporation System and method for automatic population of instant messenger lists
US8260857B2 (en) * 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US20050102245A1 (en) * 2003-11-07 2005-05-12 International Business Machines Corporation System, method, and service for negotiating schedules while preserving privacy through a shared representation
US20050125496A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Automatically initiating an instant messaging action when a subscriber's availability status changes
US20050198173A1 (en) * 2004-01-02 2005-09-08 Evans Alexander W. System and method for controlling receipt of electronic messages
US7885901B2 (en) * 2004-01-29 2011-02-08 Yahoo! Inc. Method and system for seeding online social network contacts
EP1587239A1 (en) * 2004-04-14 2005-10-19 Siemens Mobile Communications S.p.A. Method of and apparatus for server-side management of buddy lists
US7444379B2 (en) * 2004-06-30 2008-10-28 International Business Machines Corporation Method for automatically setting chat status based on user activity in local environment
US20060075091A1 (en) * 2004-09-30 2006-04-06 Siemens Information And Communication Networks, Inc. System and method for historical presence map
US7464168B1 (en) * 2004-10-19 2008-12-09 Sun Microsystems, Inc. Mechanism for decentralized entity presence
US20060112177A1 (en) * 2004-11-24 2006-05-25 Microsoft Corporation Method and system for controlling access to presence information on a peer-to-peer basis
US20060190600A1 (en) * 2005-02-18 2006-08-24 Siemens Communications, Inc. Group based presence availability management
US20060242235A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Presence monitoring in a serverless peer-to-peer system
US20060242236A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation System and method for extensible computer assisted collaboration
US8036140B2 (en) * 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US7617281B2 (en) * 2005-04-25 2009-11-10 Microsoft Corporation System and method for collaboration with serverless presence

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020140730A1 (en) 2000-12-29 2002-10-03 International Business Machines Corporation Method and system for indentifying and displaying information that is new or has been updated in a place

Also Published As

Publication number Publication date
TW200638717A (en) 2006-11-01
EP1875368A4 (en) 2010-11-24
CN101167068B (en) 2010-04-21
MX2007013353A (en) 2008-01-11
MY147346A (en) 2012-11-30
JP2008539504A (en) 2008-11-13
WO2006115527A1 (en) 2006-11-02
RU2385487C2 (en) 2010-03-27
CN101167068A (en) 2008-04-23
JP5254005B2 (en) 2013-08-07
TWI387287B (en) 2013-02-21
US7752253B2 (en) 2010-07-06
RU2007139520A (en) 2009-04-27
US20060242639A1 (en) 2006-10-26
BRPI0520057A2 (en) 2009-04-14
KR20080010390A (en) 2008-01-30
EP1875368A1 (en) 2008-01-09

Similar Documents

Publication Publication Date Title
KR101122801B1 (en) Collaborative invitation system and method
US7617281B2 (en) System and method for collaboration with serverless presence
US8036140B2 (en) Application programming interface for inviting participants in a serverless peer to peer network
US8271649B2 (en) Access rights used for resource discovery in peer-to-peer networks
EP1974501B1 (en) Ad-hoc creation of group based on contextual information
AU2007296792B2 (en) Distributable, scalable, pluggable conferencing architecture
US7596625B2 (en) Peer-to-peer grouping interfaces and methods
AU2004211407B2 (en) Systems and methods for collaborative communication
US20060239234A1 (en) Application programming interface for discovering endpoints in a serverless peer to peer network
JP2008539504A5 (en)
JP2009500708A (en) Peer-to-peer group management framework and method
US7593988B2 (en) Systems and methods for multiparty session invite
CN110971506B (en) Decentralized real-time cluster communication method, device, equipment and system
Ådahl Shared resource for collaborative editing over a wireless network
US20060242236A1 (en) System and method for extensible computer assisted collaboration
AU2011253547A1 (en) Distributable, scalable, pluggable conferencing architecture
DONG Application group support infrastructure for octopus: A multimedia communication middleware

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 8