KR101137099B1 - 확장형 실시간 공동작업 시스템을 위한 아키텍처 - Google Patents

확장형 실시간 공동작업 시스템을 위한 아키텍처 Download PDF

Info

Publication number
KR101137099B1
KR101137099B1 KR1020040084265A KR20040084265A KR101137099B1 KR 101137099 B1 KR101137099 B1 KR 101137099B1 KR 1020040084265 A KR1020040084265 A KR 1020040084265A KR 20040084265 A KR20040084265 A KR 20040084265A KR 101137099 B1 KR101137099 B1 KR 101137099B1
Authority
KR
South Korea
Prior art keywords
protocol
media
endpoint
objects
collaboration
Prior art date
Application number
KR1020040084265A
Other languages
English (en)
Other versions
KR20050039596A (ko
Inventor
포트라아드리안
가네산크리시나무르티
한무
보브드니킬피.
치트리아제이피.
오스터그렌브라이언에이치.
오스보르네로버트제이.
버클리워렌빈센트
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050039596A publication Critical patent/KR20050039596A/ko
Application granted granted Critical
Publication of KR101137099B1 publication Critical patent/KR101137099B1/ko

Links

Images

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

본 발명에서는 확장형 실시간 공동작업 시스템(an extensible real-time collaboration system)을 위한 아키텍처(architecture)가 제공된다. 본 아키텍처는 통신 프로토콜을 이용하는 응용 프로그램을 기록하기 위하여 통합 응용 프로그램 인터페이스(a unified application program interface)를 제공한다. 본 아키텍처는 활성 객체(activity objects), 종단점 객체(endpoint objects) 및 다수의 매체 스택(media stacks)을 가진다. 이들 객체는 접속 설정 프로토콜(Session Initiation Protocol) 또는 실시간 전송 프로토콜(Real-Time Transport Protocol)과 같은 다양한 통신 프로토콜을 이용하여 정보를 포함하는 메시지를 송신하고 수신할 수 있다. 활성 객체, 종단점 객체 및 다수의 매체 스택은 각기 하나 이상의 API를 가질 수 있어서, 응용 프로그램 개발자는 공동작업 관련 기능(functionality)에 액세스하거나 이를 제공하는 데에 이용할 수 있다. 이러한 객체는 API를 다른 객체에 의해서 제공되는 하위 구현(underlying implementation)에 맵핑(mapping)한다. 활성 객체를 이용하면 개발자는 복잡한 공동작업 서비스를 제공하는 데에 요구되는 것보다 적은 응용 프로그램 로직을 제공할 수 있게 된다.
확장형 실시간 공동작업 시스템, 활성 객체

Description

확장형 실시간 공동작업 시스템을 위한 아키텍처{ARCHITECTURE FOR AN EXTENSIBLE REAL-TIME COLLABORATION SYSTEM}
도 1은 일 실시예에서의 확장형 실시간 공동작업 시스템을 위한 아키텍처의 컴포넌트를 도시하는 블럭도.
도 2는 일 실시예에서의 확장형 실시간 공동작업 시스템의 종단점 객체의 컴포넌트를 도시하는 블럭도.
도 3은 일 실시예에서의 확장형 실시간 공동작업 시스템의 활성 객체를 도시하는 블럭도.
도 4는 일 실시예에서의 creat_server_endpoint 루틴을 도시하는 흐름도.
도 5는 일 실시예에서의 확장형 실시간 공동작업 시스템을 위한 아키텍처를 도시하는 아키텍처도.
<도면의 주요부분에 대한 부호의 설명>
110 : 응용 프로그램 102 : 공동작업 서비스
104 : 종단점 객체 106 : 활성 객체
108 : 매체 스택 객체 201 : 프로파일
206 : 프로토콜 스택 304 : 공동작업 세션
관련 출원의 상호 참조
본 출원은 2003년 10월 23일 출원된 미국 가출원 번호 60/513,790인 "Live Communication V2 API Architecture"라는 명칭의 미국 가출원 및 2004년 8월 6일 출원된 미국 가출원 번호 60/599,807인 "Real-Time Collaboration Systems"라는 명칭의, 대리인 문서 번호 41826-8067US00인 미국 가출원의 이익을 주장하며, 이 두 출원은 전체로서 본 명세서에서 참조로 인용된다.
본 명세서에 나타난 기술은 전반적으로 데이터 통신에 관한 것으로, 특히 확장형 실시간 공동작업 시스템을 위한 아키텍처에 관한 것이다.
다양한 통신 응용 프로그램 및 프로토콜은 소프트웨어 프로그램들 또는 이용자들 사이의 통신을 가능하게 한다. 예컨대, 마이크로소프트 윈도우 메신저(MICROSOFT WINDOWS MESSENGER) 또는 음성 패킷망(Voice over INternet Protocol("VoIP"))과 같은 실시간 통신 응용 프로그램은 서로 텍스트, 비디오 또는 음성 데이터를 보내는 이용자들간의 통신을 가능하게 한다. 이들 응용 프로그램들 은 접속 설정 프로토콜(SIP), 실시간 전송 프로토콜(RTP) 및 실시간 제어 프로토콜(RTCP)과 같은 다양한 프로토콜을 이용하여 세션을 확립하고 통신 관련 정보를 전송할 수 있다. SIP는 장치들이 서로를 발견하고 장치들 사이의 세션을 확립, 변경 및 종료하는 데에 이용할 수 있는 응용 계층 제어 프로토콜이다. RTP는 인터넷을 통해서 음성 및 영상 데이터를 전달하는 프로토콜이며, RTCP 및 H.323과 같은 다른 프로토콜과 결합하여 스트리밍 매체 시스템 및 영상회의 시스템에서 빈번하게 이용된다. RTCP는 클라이언트 응용 프로그램이 RTP를 이용하여 전송되거나 수신된 데이터를 모니터링하고 제어하는 것을 가능하게 하며, RTP와 함께 이용된다. SIP 및 RTP/RTCP는 인터넷 제안 표준이다. 이들의 세부사항인 "RFC 3261" 및 "RFC 3550"은 각기 인터넷상의 www.ietf.org/rfc/rfc3261.txt 및 www.faqs.org/rfcs/rfc3550.html에서 이용가능하며, 이들은 본 명세서에서 전체로서 참조된다.
응용 프로그램은 추가적으로 다른 프로토콜을 이용할 수 있다. 응용 프로그램은 상기된 프로토콜에 대한 향상된 버젼의 프로토콜을 이용하거나, 특별한 데이터를 전송하도록 의도된 상이한 프로토콜을 함께 이용할 수 있다. 예컨대, 영상회의 정보를 전송하는 새로운 또는 개선된 프로토콜이 이용가능하게 되는 때에는, 응용 프로그램을 개발하거나 변경하는 응용 프로그램 개발자는,예컨대 성능을 향상시키거나 추가적인 특징을 제공하기 위하여 새로운 또는 개선된 프로토콜을 이용하고자 할 수 있다. 개선된 프로토콜 또는 새로운 프로토콜은 이미 이용되고 있는 프로토콜과는 상이한 인터페이스를 가질 수 있기 때문에, 새로운 또는 개선된 프로토 콜을 이용하기 위하여 응용 프로그램 개발자는 통신 프로토콜과 상호작용하는 응용 프로그램의 일부를 변경할 필요가 있을 것이다. 예컨대, 새로운 세션을 생성하기 위하여 프로토콜은 NewSession 인터페이스를 가질 수 있는 반면에, 개선된 버젼은 StartSession 메서드를 가져 세션을 생성하여 개시하고 추가적인 파라미터를 수용할 수 있다. StartSession은 추가적인 파라미터들을 수용하기 때문에, 그 인터페이스는 NewSession과는 상이하며, 따라서 NewSession을 이용하는 응용 프로그램은 StartSession을 이용하기 위해서는 변경될 필요가 있다. 프로토콜이 상이한 인터페이스를 가지는 경우에, 응용 프로그램 개발자는 그 상이한 인터페이스를 습득하여 자신의 응용 프로그램을 변경해서 이 인터페이스를 이용하여 프로토콜을 이용할 필요가 있을 것이다.
응용 프로그램 개발자는 자신이 개발하는 응용 프로그램에서 이용하는 각각의 많은 통신 프로토콜들의 세부사항에 익숙해질 필요가 있을 것이다. 예컨대, 응용 프로그램 개발자가 SIP 및 RTP/RTCP를 이용하는 경우에, 응용 프로그램 개발자는 이들 프로토콜들과 관련된 프로그램 로직을 제공하기 위해서 세 프로토콜 모두에 익숙해질 필요가 있을 것이다. 이들 세 프로토콜 모두에 익숙하지 않은 응용 프로그램 개발자는 이들 프로토콜에 익숙해지기 위한 추가적인 훈련 및 시간을 필요로 할 것이다. 더우기, 추가되거나 개선된 프로토콜과 작업하도록 응용 프로그램이 변경되어야 할 경우에는, 응용 프로그램 개발자는 프로그래밍 로직을 교정하거나 추가하여서 응용 프로그램이 이들 프로토콜에서 잘 기능할 수 있도록 하여야 할 것이다. 이것은 추가적인 개발 비용 및 개발의 어려움을 초래할 수 있다.
더우기, 다양한 프로토콜은 다양한 복잡도를 나타낸다. 예컨대, 응용 프로그램에서 영상회의 기능을 제공하기 위하여, 응용 프로그램의 개발자는 많은 프로토콜에 익숙해져 이들 프로토콜을 조정하도록 로직을 제공하여 영상회의 기능을 추가하여야 할 것이다. 응용 프로그램에 텍스트 메시징, 음성 메시징 등과 같은 다른 공동작업 기능을 추가하는 것은 다른 유사한 복잡도를 나타낸다.
따라서, 개발자 훈련시에 상당한 투자를 하지 않고서 응용 프로그램에서의 공동작업 특성의 추가를 돕는 확장형 실시간 공동작업 시스템을 위한 아키텍처는 상당한 효용이 있을 것이다.
본 발명에서는 확장형 실시간 공동작업 시스템을 위한 아키텍처가 제공된다. 이러한 아키텍처는 통신 프로토콜을 이용하는 응용 프로그램을 기록하기 위하여 통합 응용 프로그램 인터페이스(API)를 제공한다. 본 아키텍처는 활성 객체(activity objects), 종단점 객체(endpoint objects) 및 다수의 매체 스택(media stacks)을 가진다. 이들 객체들은 접속 설정 프로토콜(SIP) 또는 실시간 전송 프로토콜(Real-Time Transport Protocol)과 같은 다양한 통신 프로토콜을 이용하여 정보를 포함하는 메시지를 송신 및 수신할 수 있다. 활성 객체, 종단점 객체 및 다수의 매체 스택은 각기 하나 이상의 API를 가질 수 있어서, 응용 프로그램 개발자는 공동작업 관련 기능에 액세스하거나 이를 제공하는 데에 이용할 수 있다. 이러한 객체는 API를 다른 객체에 의해서 제공되는 하위 구현(underlying implementation)에 맵핑(mapping)한다. 활성 객체를 이용하면 개발자는 복잡한 공동작업 서비스를 제공하는 데에 요구되는 것보다 적은 응용 프로그램 로직을 제공할 수 있게 된다.
일 실시예에서, 확장형 실시간 공동작업 시스템의 아키텍처가 제공된다. 이러한 아키텍처는 고수준의 응용 프로그램 인터페이스(API)를 제공하여, 공동작업 서비스를 제공하는 통신 프로토콜들을 이용하는 응용 프로그램을 기록한다. 응용 프로그램 개발자는 공동작업 서비스를 수행하는 몇몇 하위 프로토콜과 관련된 복잡한 기술을 습득할 필요없이 API를 이용함으로써 응용 프로그램에 공동작업 서비스를 추가할 수 있다.
이러한 아키텍처는 활성 객체, 종단점 객체 및 다수의 매체 스택을 포함한다. 이들 객체들은 SIP 또는 RTP/RTCP와 같은 다양한 통신 프로토콜을 이용하여 메시지를 송신하거나 수신할 수 있다. 활성 객체, 종단점 객체 및 다수의 매체 스택은 각기 응용 프로그램 개발자가 액세스하거나 이들 객체에 의해서 제공되는 기능을 제공하는 데에 이용할 수 있는 하나이상의 API를 가질 수 있을 것이다. 응용 프로그램 개발자는 종단점 객체 및 매체 스택에 의해서 제공되는 API를 이용하는 응용 프로그램 로직을 제공할 것을 선택하거나, 활성 객체에 의해서 제공되는 API를 이용하는 응용 프로그램 로직을 제공할 것을 선택할 수 있다. 종단점 객체 및 매체 스택에 의해서 제공되는 API를 이용함으로써, 응용 프로그램 개발자는 높은 정도의 유연성을 이용할 수 있을 것이지만, 활성 객체의 API만 이용되는 경우 보다는 상당히 많은 응용 프로그램 로직을 제공하여야 할 것이다. 응용 프로그램 개발자는 몇몇 이유로 활성 객체의 API를 이용하는 것을 선택할 수 있을 것이다. 활성 객체의 API는 종단점 객체 및 매체 스택의 API보다 고수준의 인터페이스를 제공한다. 더우기, 활성 객체는 종단점 객체와 매체 스택을 조정하여, 응용 프로그램 로직은 조정을 행하지 않아도 무방할 것이다.
활성 객체는 응용 프로그램과 다른 객체에 서비스를 제공한다. 활성 객체는 응용 프로그램이 다양한 특정 활동에 참여할 수 있도록 하는 객체이며, 예컨대 인스턴트 메시징, 원격회의, 영상회의, 응용 프로그램 공유 및 다른 활동을 포함할 수 있을 것이다. 활성 객체는 종단점 객체 및 매체 스택을 포함하는 하위 객체의 기능을 제공하는 "포장지(wrapper)" 객체로 간주될 수 있다. 특히, 활성 객체는 종단점 객체 및 매체 스택을 조정하여 응용 프로그램과 같은 활성 객체를 이용하는 다른 객체에 무결절성의 통합 세션을 제공한다.
다음의 예에서 활성 객체를 이용하는 장점의 일례가 제공된다. 응용 프로그램 개발자는 응용 프로그램에 영상회의 기능을 제공하기를 원할 수 있다. 이를 위하여, 먼저 응용 프로그램 개발자는 SIP와 같은 시그널링 프로토콜(a signaling protocol) 및 RTP/RTCP와 같은 매체 프로토콜에 익숙해져야 할 것이다. 다음으로, 응용 프로그램 개발자는 세션을 생성하고, 영상회의를 원하는 사람과의 접속이 현재 온라인 상태인지를 결정하며, 영상회의에 참여하도록 초대하고, 영상회의와 관련된 다양한 파라미터를 처리하며, 음성 및 영상 획득 하드웨어(sound and video capturing hardware)로부터 음성 및 영상을 획득하고, 최종적으로 RTP/RTCP를 이용하여 음성/영상 데이터를 교환하는 응용 프로그램 로직을 제공하여야 할 것이다. 이와 대조적으로, 본 아키텍처의 영상회의 활성 객체를 이용함으로써, 영상회의 활성 객체는 특히 이러한 응용 프로그램 로직을 몇몇 고수준의 인터페이스로 통합하도록 의도되었기 때문에 이들 중 많은 단계가 제거될 수 있다. 본 아키텍처는 다양한 다른 공동작업 활동을 위한 유사한 활성 객체를 가진다. 더우기, 본 아키텍처는 장래에 추가될 추가적인 활성 객체를 지원한다.
종단점 객체는 시그널링(signaling)과 같은 관리 서비스를 제공한다. 종단점 객체는 프로파일(profile), 발행(publishing)/구독(subscribing), 시그널링(signaling) 및 프로토콜 스택 컴포넌트(protocol stack components)를 포함한다. 프로파일 컴포넌트는 API를 통해서 이용자를 추상화할 수 있을 것이다. 발행/구독 컴포넌트는 트랙 존재(track presence)에의 인터페이스 및 이용자와 관련된 가용성 정보를 제공한다. 시그널링 컴포넌트는 세션을 확립하거나 제어하는 것과 관련된 부정기적인 트랜잭션 메시지(transactional messages)를 제공하거나 수신하는 데에 이용될 수 있을 것이다. 이러한 시그널링 컴포넌트는, 예컨대 대역폭 제한과 같은 매체 파라미터를 처리하는 데에도 이용될 수 있을 것이다. 이러한 프로토콜 스택 컴포넌트는 프로파일, 발행/구독 및 시그널링 컴포넌트에 의해서 이용되어, 데이터를 송신하거나 수신하며, SIP를 포함하는 다양한 프로토콜을 지원한다.
상기 기술된 바와 같이, 활성 객체는 응용 프로그램에 공동작업 서비스를 용이하게 추가하도록 응용 프로그램 개발자들에게 편의를 제공한다. 예컨대, 응용 프로그램에 영상회의 기능을 추가하고자 하는 응용 프로그램 개발자는 영상회의 활 성 객체를 생성하는(또는 "인스턴스를 생성하는(instantiate)") 로직을 제공할 수 있을 것이다. 그런 다음, 영상회의 활성 객체는 (SIP 종단점 객체와 같은)시그널링을 위한 종단점 객체 및 음성/영상 데이터를 운반하는 메시징 매체 스택의 인스턴스를 생성할 수 있다. (예컨대, 음성/영상 스트림을 송신하거나 수신할 때와 같은)이어지는 영상회의 활동 동안에, 활성 객체는 생성하거나 인스턴스를 생성한 객체를 조정할 수 있다. 일 실시예에서, 응용 프로그램은 이러한 객체를 생성할 것이며, 선택적으로, 활성 객체에 이들 객체에 대한 표시를 제공할 것이다. 이러한 경우에, 활성 객체는 이들 객체를 생성하지 않아도 될 것이다.
매체 스택 객체는 음성/영상 데이터 스트림의 조절과 같은 컨텐츠 통신 서비스를 제공한다. 예컨대, 매체 스택 객체는 RTP/RTCP를 이용하여 영상회의와 관련된 시청각 정보를 송신하거나 수신할 수 있다.
이제 도면을 살펴보면, 도 1은 일 실시예에서의 확장형 실시간 공동작업 시스템을 위한 아키텍처의 컴포넌트를 도시하는 블럭도이다. 확장형 실시간 공동작업 시스템을 위한 아키텍처는 공동작업 서비스 객체(102), 다수의 종단점 객체(104), 활성 객체(106) 및 다수의 매체 스택(108)을 포함한다. 하나 이상의 응용 프로그램(110)은 이러한 아키텍처에 관련된 다양한 메서드(methods), 속성(properties) 및 이벤트(events)에 액세스함으로써 아키텍처를 이용할 수 있다. 응용 프로그램을 기록하는 응용 프로그램 개발자는 각각의 매체 스택, 프로토콜 또는 응용 프로그램 또는 아키텍처가 이용할 수 있는 다른 컴포넌트에 대하여 상이한 API를 습득하여 수행하여야 하는 대신에 통합 API를 이용함으로써 본 아키텍처를 이용할 수 있다.
공동작업 서비스 객체(102)는 응용 프로그램에 다수의 종단점 객체를 공유하는 편의를 제공하며, 많은 종단점 객체에 대하여 일관된 API를 제공할 것이다. 예컨대, 종단점 객체 1이 수신(또는 송신) 정보와 관련된 인터페이스를 제공하고, 종단점 객체 2가 수신(또는 송신) 정보와 관련된 인터페이스를 유사하게 제공하나, 이들 2개의 인터페이스가 유사한 기능을 수행하지만 상이한 네임(name)을 이용한다면 공동작업 서비스 객체는 양 인터페이스 모두를 위한 공통의 네임을 제공할 것이다. 응용 프로그램 개발자가 응용 프로그램에서 이러한 공통 네임을 이용하는 경우에는, 응용 프로그램 개발자는 상이한 네임과의 인터페이스를 제공하는 새롭거나 변경된 객체가 공동작업 서비스 객체와 함께 이용되는 경우에 애플리케이션을 변경하지 않아도 될 것이다.
종단점 객체(104)는 다른 객체를 시그널링하는 편의를 제공한다. 시그널링은 세션을 가지는 2개의 종단점 객체 사이에서 이용되어, 예컨대 종단점 객체가 다른 종단점 객체를 초대 또는 요청하여 세션과 관련된 활동 또는 교환 정보를 처리할 수 있다. 예를 들어, 종단점 객체는 세션의 다른 종단점 객체를 인스턴트 메시징 대화에 초대하고, 이어서 이러한 대화와 관련된 텍스트 메시지를 전송할 수 있을 것이다. 종단점 객체는 도 2와 관련하여 아래에서 보다 상세하게 기술된다.
활성 객체는 응용 프로그램이 다양한 공동작업 관련 활동에 참가할 수 있도록 하는 컴포넌트이다. 이들 컴포넌트는 응용 프로그램 개발자가 종단점 객체와 매체 스택을 조정하는 데에 이용할 수 있는 API를 제공한다. 활성 객체(106)는 도 3과 관련하여 아래에서 보다 상세하게 기술된다.
매체 스택 객체(108)는 데이터 스트림의 조절과 같은 컨텐츠 통신 서비스를 제공하며, 다른 객체에 API를 제공하여 데이터를 송신하거나 수신하도록 한다. 본 아키텍처는 데이터 또는 매체 타입 사이에 구별이 요구되지 않는다는 사실에 기인하여 실질적으로 무수히 많은 매체 스택을 지원할 수 있다. 결과적으로, 요구사항이 변경됨에 따라 새로운 매체 스택이 추가되거나, 매체 스택이 변경될 수 있다. 매체 스택의 일례는 RTP/RTCP이다. 이러한 매체 스택은 시청각 정보를 전송하는 데에 이용될 수 있다.
도 2는 일 실시예에서의 확장형 실시간 공동작업 시스템의 종단점 객체의 컴포넌트를 도시하는 블럭도이다. 종단점 객체는 다른 객체에의 시그널링에 대한 편의와 같은 관리 서비스를 제공한다. 시그널링은 세션을 가지는 2개의 종단점 객체들 사이에서 이용되어, 예컨대 종단점 객체가 다른 종단점 객체를 초대하거나 요청하여 활동을 처리하거나 세션과 관련된 정보를 교환할 수 있다. 예컨대, 종단점 객체는 세션의 다른 종단점 객체를 인스턴트 메시징 대화에 초대하고, 이어서 그 대화와 관련된 텍스트 메시지를 전송할 수 있을 것이다.
본 아키텍처는 다양한 종단점 객체를 지원할 수 있을 것이며, 다양한 종단점 객체는 각기 여러번 인스턴스가 생성될 것이다. 예컨대, (예를 들면, MSN.COM과 같은)이용자의 개인 인터넷 서비스 제공자 계정과 관련된 종단점 객체와, (예를 들면, MICROSOFT.COM과 같은)이용자의 회사 인터넷 계정과 관련된 다른 종단점 객체가 존재할 수 있다. 이용자는 (예를 들어, 휴대용 컴퓨터 장치 및 데스크탑 컴퓨터 장치와 같은)다수의 장치상에서 개인 계정을 이용하여 서비스 제공자에 로그인할 수 있으며, (예를 들어, 데스크탑 컴퓨터 장치와 같은)몇몇 장치상에서 회사 계정을 이용하여 로그인할 수 있다. 따라서, 개인 계정과 관련된 URI와 관련하여 2개의 인스턴스가 존재할 것이다. 그런 다음, 종단점 객체의 개별적인 인스턴스는 URL(URI)과 종단점 식별자(EID)의 조합에 의해서 특유하게 식별될 것이다. 예컨대, 종단점 객체는 URI 이용자@MSN.COM과 EID "1234"에 의해서 식별될 것이다. 상기 기술한 바와 같이, EID는 특히 종단점 객체의 인스턴스를 동일한 URI와 관련된 종단점 객체의 다른 인스턴스와 구별하는 데에 이용될 수 있다.
종단점 객체는 "데이터" 인터페이스와 "시그널링" 인터페이스를 제공할 수 있다. 데이터 인터페이스는 종단점 객체에 의해서 발행되거나 구독된 데이터와 관련된 메서드, 이벤트 및 속성을 포함할 수 있을 것이다. 데이터를 발행하거나 구독함으로써, 응용 프로그램은 데이터를 제공하거나 데이터의 변화를 통지받을 수 있을 것이다. 시그널링 인터페이스는 종단점 객체의 시그널링의 제어와 관련된 메서드, 이벤트 및 속성을 제공할 수 있을 것이다. 예컨대, 시그널링 특성은 세션의 생성 또는 참가, 대화에 참여 또는 종료, 초대의 수락 또는 거절 및 다른 신호들을 포함한다.
도시된 객체(200)는 프로파일 컴포넌트(201), 발행 및 구독 컴포넌트(202), 시그널링 컴포넌트(204) 및 프로토콜 스택 컴포넌트(206)를 포함한다.
프로파일 컴포넌트는 API를 통한 이용자의 추상화를 제공할 수 있을 것이다. 이는 (예를 들면, URI와 같은)전자 주소, 서비스 제공자에 대하여 이용되는 자격 증명, 서비스 제공자의 상태, 능력 및 정책과 같은, 이용자에 대한 서비스 관련 정보를 유지한다. 이용자들은 상이한 서비스 제공자들과 관련된 다수의 프로파일을 가질 수 있을 것이다. 이용자는 서비스 제공자 당 하나 이상의 프로파일을 가질 수도 있다. 프로파일 컴포넌트는, 예컨대 이용자의 URI를 제공하는 것과 같은 다른 이용자들과의 세션을 생성하는 경우에 이용될 수 있을 것이다. 프로파일 컴포넌트는 서비스 제공자와 관련하여 이용자를 로그온 또는 로그오프하는 메서드를 제공할 수 있을 것이다.
발행/구독 컴포넌트는 트랙 존재에의 인터페이스 및 이용자와 관련된 가용성 정보를 제공한다. 존재 정보는 이용자가 특정한 컴퓨터 디바이스에 존재하는지 여부에 관한 것이다. 가용성 정보는 현재 이용자가 메시지를 수신할 수 있는지 또는 메시지를 수신할 의지가 있는지 여부에 관한 것이다. 예컨대, 휴대용 전화의 이용자는 휴대용 전화가 전원이 켜진 상태일 경우에는 존재할 것이지만, 이용자가 전화 통화에 참여하고 있는 경우에는 메시지 세션에 있어서는 가용 상태가 아닐 수 있다. 유사하게, 마이크로소프트 윈도우 메신저(MICROSOFT WINDOWS MESSENGER)에서 "바쁨(busy)" 표시를 설정한 이용자는 존재하기는 하지만 메시징에 있어서 가용 상태가 아닐 수 있다.
예컨대, 존재 객체는 존재하고 있으며, 컴퓨터 장치를 이용하여 마이크로소프트 윈도우 메신저 대화에 참여할 수 있으며, 또한 휴대용 전화를 이용하여 영상회의에 참여할 수 있는 이용자와 관련된 정보를 제공할 수 있을 것이다. 이용자가 더 이상 마이크로소프트 윈도우 메신저에 로그인하지 않은 경우에는 존재 객체는 이러한 정보를 갱신하여 존재 객체를 이용하는 응용 프로그램이 이용자가 더 이상 마이크로소프트 윈도우 메신저 대화에 존재하거나 가용 상태에 있지 않다는 결정을 할 수 있도록 할 것이다. 따라서, 존재 정보는 이용자 또는 다른 객체가 존재하는지 여부를 나타낸다. 다양한 서비스 제공자 또는 프로토콜은 상이한 메카니즘을 이용하여 존재 정보를 생성하거나 제공할 수 있을 것이다. 응용 프로그램 개발자가 존재 정보를 생성하거나 제공하는 여러가지 방법을 습득하지 않아도 무방하게 하기 위하여, 응용 프로그램 개발자는 종단점 객체를 이용하여 존재 정보를 생성하거나 이를 이용할 수 있을 것이다.
발행/구독 컴포넌트는 다른 객체의 발행에 대하여 구독을 생성하도록 구독 인터페이스를 제공하며, 다른 객체에 구독을 제공하도록 발행 인터페이스를 제공하고, 발행이 구독된 서비스와 관련된 통지를 수신하도록 통지 인터페이스를 제공한다. 이들 인터페이스들은 응용 프로그램이 컴포넌트를 이용하여 존재 정보를 제공, 수신 및 트랙킹할 수 있도록 한다. 예컨대, 이용자가 퍼스널 컴퓨터를 이용하여 마이크로소프트 윈도우 메신저 대화에 참여하고, 휴대 전화를 이용하여 원격회의에 참여하고 있는 경우에, 발행/구독 컴포넌트는 이용자의 존재를 탐지하여 양 위치에서의 이용자의 존재를 보고할 것이다. URI 및 EID는 함께 종단점 객체의 인스턴스를 특유하게 식별할 것이다. 이용자가 다수의 위치에 동시에 존재할 수 있기 때문에, 이용자의 URI는 이들 다수의 위치들에 존재하는 것으로 나타날 수 있을 것이다. 소정의 URI에 관련된 EID를 추가하여 존재의 특정 인스턴스를 특유하게 식별하는 메카니즘을 제공한다.
통지는 다양한 정보와 관련하여 제공될 수 있을 것이다. 예컨대, 통지는 이 용자가 온라인 상태인지, 바쁜 상태인지, 가용 상태인지, 외출중인 상태인지 등과 관련하여 제공될 수 있을 것이다. 통지는 또한 (예컨대, 위성 위치 확인 시스템(GPS)과 같은)이용자 접촉 정보의 지리적 위치, 달력 정보, 외출 메시지, 음성/영상 용량 등와 관련하여 제공될 수 있을 것이다.
시그널링 컴포넌트는 확립 또는 제어 세션과 관련된 부정기적인 트랜잭션 메시지를 제공하거나 수신하는 데에도 이용될 수 있을 것이다. 이러한 컴포넌트는, 예를 들어 초당 프레임 수와 같은 매체 파라미터의 처리에도 이용될 수 있을 것이다.
프로토콜 스택 객체는 프로토콜을 이용한 정보의 송신 및 수신을 담당한다. 예컨대, 시그널링 정보를 송신하거나 수신하는 데에 SIP가 이용될 수 있을 것이다. 다양한 실시예에서, 다른 프로토콜이 동일하게 이용될 수 있을 것이다. 일 실시예에서, 하나의 종단점 객체는 다수의 프로토콜에 필적할 수 있을 것이다. 이러한 경우에 종단점 객체는, 예컨대 필요한 만큼의 다수의 프로토콜을 이용하여 정보를 송신 또는 수신할 수 있을 것이다. 이와 달리, 본 아키텍처는 다수의 종단점 객체-프로토콜의 조합을 별개의 종단점 객체로서 지원할 수 있을 것이다. 이러한 경우에, 하나의 종단점 객체는 SIP에, 다른 종단점 객체는 다른 프로토콜에 이용될 수 있을 것이다.
도 3은 일 실시예에서의 확장형 실시간 공동작업 시스템의 활성 객체를 도시하는 블럭도이다. 활성 객체는 응용 프로그램 및 다른 객체에 서비스를 제공한다. 활성 객체는 응용 프로그램이 다양한 특정의 활동에 참여할 수 있도록 하는 객체이 며 이는, 예컨대 인스턴트 메시징, 원격회의, 영상회의, 응용 프로그램 공유 및 다른 활동들을 포함할 수 있을 것이다. 활성 객체는 종단점 객체 및 매체 스택을 포함하는 하위 객체의 기능을 제공하는 "포장지(wrapper)" 객체로 간주될 수 있을 것이다. 특히, 활성 객체는 종단점 객체와 매체 스택을 조정하여 응용 프로그램과 같은 활성 객체를 이용하는 객체에 무결성의 통합 세션을 제공한다.
각각의 활성 객체는 이러한 객체를 이용하는 응용 프로그램이 다양한 활동에 참여할 수 있는 기능을 제공한다. 예컨대, 활성 객체는 시그널링 및 매체 정보를 포함한다. 따라서, 활성 객체는 시그널링과 매체간의 브리지(a bridge)로서의 역할을 하여, 이러한 활성 객체를 이용하는 응용 프로그램에 통합화된 관점이 제공될 수 있을 것이다. 예컨대, 응용 프로그램 개발자는 별도의 SIP RTP/RTCP 접속 및 세션을 설정하여야 하는 대신에 단순히 영상회의를 요청하면 될 것이다. 도면에 나타난 활성 객체의 실시예는 아래에 기술된다.
공동작업 세션 활성 객체(304)는 응용 프로그램이 공동작업 서비스를 응용 프로그램 이용자에게 제공할 수 있도록 한다. 예컨대, 공동작업 세션 활성 객체는 공유된 문서에 접근 권한을 부여함으로써 2개의 다른 컴퓨터를 이용하는 2명의 이용자가 공동작업을 할 수 있도록 한다.
응용 프로그램 공유 활성 객체(310)는 활성 객체를 공유하는 응용 프로그램을 이용하는 응용 프로그램이 상이한 컴퓨터 장치를 이용하는 이용자들 사이의 응용 프로그램의 공유와 관련된 기능을 제공할 수 있도록 한다. 예컨대, 2명의 이용자는, 예를 들면 한 이용자는 다른 이용자가 눈으로 확인하여 조작할 수 있는 시각 정보를 제공할 수 있는 것을 이용하는 "화이트보드(whiteboard)" 응용 프로그램을 공유할 수 있을 것이다.
메시징 활성 객체(306)는 응용 프로그램이 응용 프로그램의 이용자에게 메시징 자격(capability)을 제공하는 능력을 제공한다. 예컨대, 응용 프로그램 개발자는 자신이 만들고 있는 응용 프로그램내에서 메시징을 가능하게 하기를 원할 수 있다. 특정한 예로서, 2명의 이용자가 문서를 동시에 편집하여 문서에 대한 공동작업을 하는 경우에, 이용자는 서로간에 텍스트 메시지를 전송하기를 원하거나, 공동작업 동안에 영상회의에 참여하기를 원할 수 있을 것이다. 이러한 경우에, 응용 프로그램 개발자는 공동작업 세션 활성 객체뿐만 아니라 메시징 또는 영상회의 활성 객체를 이용하여 이용자가 공동작업을 하고, 공동작업 동안에 서로간에 메시지를 교환할 수 있을 것이다.
영상회의 활성 객체(308)는 응용 프로그램에 영상회의 기능을 제공한다. 영상회의는 시청각 정보의 송신 및 수신을 포함할 수 있다.
추가적인 활성 객체가 또한 고려될 수 있으며, 이들은 활성 객체(312)로 나타난다.
응용 프로그램 개발자는 객체에 의해서 제공된 API를 이용하여 상기 기술된 아키텍처(및 상기 기술되지 않은 아키텍처)의 객체를 이용할 수 있다. 이들 객체는 사용하기 편리한 API를 제공하여 응용 프로그램 개발자가 활성 객체와 관련된 서비스를 제공하는 하위 컴포넌트에 의해서 제공되는 API를 참조하지 않아도 무방하도록 할 수 있을 것이다. 예컨대, 메시징 서비스 제공자는 개발자가 이용할 수 있는 API를 제공할 수 있을 것이다. 그렇게 하기 위해서, 개발자는 상당히 복잡할 수도 있을 API를 습득하는 데에 시간을 보낼 필요가 있을 수도 있다. 대신, 개발자는 아키텍처내의 객체에 의해서 제공되는 보다 간단한 API를 이용하기를 원할 수 있다. 더우기, 이러한 객체는 다수의 상이한 객체를 이용하는 데에 요구될 수도 있는 단계를 포함할 수 있다. 예컨대, 2개의 컴퓨터 사이에 메시지를 교환하기를 원하는 응용 프로그램 개발자는 SIP에 의해서 제공되는 API 뿐만 아니라 메시징 서비스를 제공하는 다른 저수준의 객체에 의해서 노출된 API를 이용할 필요가 있을 것이다. 이와 대조적으로, 응용 프로그램 개발자는 메시징 활성 객체만을 이용하면 되므로, 훨씬 용이하게 응용 프로그램에 메시징 기능을 추가할 수 있을 것이다. 더우기, 프레임워크는 다수의 객체들을 조정하도록 동작되어, 응용 프로그램 개발자로부터 보다 적은 프로그래밍 로직을 요구하도록 될 수 있다.
일 실시예에서, 공동작업 세션은 활성 객체를 포함하고, 이를 이용한다.
도 4는 일 실시예에서의 creat_server_endpoint 루틴을 도시하는 흐름도이다. 이러한 루틴은 응용 프로그램에 의해서 호출되어 서버에 접속하는 종단점 객체를 생성한다. 서버에 접속하는 종단점이 생성되는 경우에, 이것이 발행하는 정보는 생성된 종단점이 더 이상 동작하지 않는 경우에도 구독 객체에게 유용할 수 있다. 따라서, 서버에 접속된 종단점은 객체의 수명이 다한 후에도 정보가 이용가능함을 의미하는 "per-URI"를 제공할 수 있다.
이 루틴은 블럭(402)에서 개시한다. 블럭(404)에서, 루틴은 새로운 종단점 객체를 생성하며, 이 종단점이 응용 프로그램과 관련이 있음을 나타낸다. 표시된 응용 프로그램은 종단점을 생성하도록 동작하는 creat 함수에의 파라미터로서 제공될 수 있다. 종단점을 생성하는 때에, "친근한" 이름이 제공되어 종단점이 친근한 이름에 의해서 참조될 수 있도록 할 수 있다. 이와 달리, 새로이 생성된 종단점은 종단점과 관련된 특유의 식별자에 의해서 참조될 수도 있다. 이러한 특유의 식별자는 객체가 생성되는 때에 시스템에 의해서 생성될 수 있을 것이다.
블럭(406)에서, 종단점을 생성하면 응용 프로그램은 새로이 생성된 종단점 객체를 서버에 등록하여 서버가 메시지를 이 종단점에 라우팅(routing)할 수 있도록 한다. 종단점 객체로부터 등록 요청을 수신하면, 서버는 종단점에 시도(challenge)를 송신할 것이다. 이러한 시도는 서버와 관련된 "영역(realm)"을 나타낼 수도 있다. 예컨대, 서버는 "MICROSOFT.com" 영역을 가지는 시도를 송신할 수 있다.
블럭(408)에서, 루틴은 응용 프로그램과 관련된 (예를 들면, 이용자 id 및 패스워드와 같은)자격 증명을 제공함으로써 시도에 대하여 응답한다. 이러한 자격 증명은 이용자에 의해서, 또는 자동으로 공급될 수 있을 것이다. 서버는 루틴이 공급하는 자격 증명을 확인할 수 있을 것이다. 이러한 자격 증명은 영역과 관련되어 있다. 예컨대, 응용 프로그램이 서버의 영역("MICROSOFT.com")과 관련되지 않은 자격 증명을 공급하는 경우에는 서버는 응용 프로그램을 확증하지 않을 것이다.
등록이 성공적으로 이루어지면, 종단점은 다른 객체들로부터 메시지를 수신할 준비가 될 것이다. 그렇지 않다면, 종단점은 메시지를 수신할 수 없을 것이다.
블럭(412)에서 루틴은 호출자에게로 리턴한다.
일 실시예에서, 서버는 성공적으로 등록되지 않은 종단점이 메시지를 수신하지는 않고서 메시지를 송신하도록 할 수 있다. 이와 달리, 보안이 취약한 모델에서, 서버는 소정의 종단점이 메시지를 송신 또는 수신하는 것을 가능하게 할 수 있다.
일 실시예에서, 서버는 종단점이 메시지를 수신하는 때가 아니라, 종단점이 메시지를 송신하려고 할 때에 종단점을 시도할 수 있다.
교번하는 루틴(도시되지 않음)은 피어-투-피어 종단점을 생성할 수 있을 것이다. 피어-투-피어 종단점은 서버와 관련되지 않은 종단점이다. 종단점이 서버와 관련된 경우에는 종단점이 발행하는 정보는 종단점이 작동을 일단 멈추게되면 이용가능하지 않을 수 있다.
도 5는 일 실시예에서의 확장형 실시간 공동작업 시스템을 위한 아키텍처를 도시하는 아키텍처도이다. 이러한 아키텍처는 활성 객체(502), 종단점(504) 및 다수의 매체 스택 객체(506)를 포함한다. 이들 객체에 대하여는 앞서 상당히 상세하게 기술되었다. 본 아키텍처도는 일 실시예에서의 활성 객체, 종단점 객체 및 매체 스택 객체 사이의 관계를 나타낸다. 특히, 본 아키텍처도는 활성 객체에 의해서 제공되는 기능이 종단점 및 매체 스택 객체에 의해서 제공되는 기능을 포함함을 나타낸다.
일 실시예에서, 다수의 활성 객체는 상응하는 매체 스택 객체와 함께 이용될 수 있을 것이다.
응용 프로그램은 아키텍처의 객체의 메서드를 호출하거나, 기능을 수행하는 하위 객체의 메서드를 직접 호출할 수 있을 것이다. 아키텍처의 객체의 메서드를 호출함으로써, 응용 프로그램 개발자는 보다 적은 로직을 제공하여도 무방할 것이며, 하위 컴포넌트가 변경되더라도 응용 프로그램 로직을 교정할 필요가 없을 것이다.
아래에 본 아키텍처에 의해서 제공되는 몇몇 API가 기술된다.
응용 프로그램은 새로운 "CollaborationEndpoint"을 생성함으로써 종단점 객체를 생성할 수 있다. 이러한 응용 프로그램은 다음과 같은 파라미터, 즉 종단점 객체와 관련된 URI, 종단점 객체와 관련된 서버 및 네트워크 자격 증명의 표시를 제공할 수 있다.
NetworkCredential 메서드는 네트워크 자격 증명의 표시를 제공한다. 이러한 방법은 파라미터로서 이용자 계정, 패스워드 및 계정과 관련된 도메인의 표시를 수용한다.
Enter 메서드는 종단점을 등록하고, 성공 또는 실패의 표시를 제공한다. 이러한 메서드는 파라미터를 요구하지는 않는다.
Publish 메서드는 존재 정보를 발행한다. 예컨대,응용 프로그램은 이용자가 온라인, 오프라인, 바쁨, 통화중 등의 상태인지를 나타낼 수 있다. 본 아키텍처는 상당히 유연하여 실질적으로 무수히 많은 수의 존재 표시를 제공할 수 있다. 예컨대, 응용 프로그램은 이용자의 GPS 위치를 발행하는 것을 선택할 수 있다.
반대로, Subscribe 메서드는 종단점 객체의 발행을 구독한다.
Invite 메서드는 이용자를 공동작업 세션에 초대한다. 이 메서드는 초대되어야 할 URI의 표시를 수신한다.
Accept 메서드는 초대를 수락한다. 반대로, Decline 메서드는 초대를 거절 한다.
메시징 활성 객체는 InstantMessagingActivity 클래스로부터 생성될 수 있다. 이러한 활성 객체는, 예를 들어 메시지를 송신하는 SendMessage를 포함하는 다양한 메서드를 지원한다.
SendMessage 메서드는 메시지를 송신한다. 이것은 메시지 스트링을 파라미터로 수신한다.
이 메서드는 아키텍처의 다양한 객체에 의해서 제공될 수 있을 것이다. 이러한 아키텍처는 이용자 특성의 검색, 이용자를 접속 리스트에 추가, 대화에의 참가자의 추가 또는 제거 등과 관련된 메서드, 속성 및 이벤트를 추가적으로 제공한다.
본 아키텍처가 실시되는 컴퓨터 장치는 CPU, 메모리, (예를 들여, 키보드, 포인팅 디바이스와 같은)입력 장치, (예를 들어, 디스플레이 디바이스와 같은)출력 장치를 포함할 수 있다. 메모리 및 저장 장치는 시스템을 구현하는 명령을 포함할 수 있는 컴퓨터 판독가능한 매체이다. 추가적으로, 데이터 스트럭쳐(data structure) 및 메시지 스트럭쳐는 통신 링크상의 신호와 같이 데이터 전송 매체를 통하여 저장되거나 전송될 수 있다. 인터넷, LAN, WAN 또는 점대점 다이얼업 접속과 같은 다양한 통신 링크가 이용될 수 있을 것이다.
본 아키텍처는 마이크로소프트 윈도우 오퍼레이팅 시스템을 구동하는 컴퓨터 장치를 포함하는 다양한 오퍼레이팅 환경에서 실시될 수 있을 것이다. 이러한 오퍼레이팅 환경은 적절한 오퍼레이팅 환경의 한가지 예에 불과하며, 시스템의 이용 또는 기능의 범위에 대한 어떠한 제한을 암시하는 것은 아니다. 이용하기에 적절한 다른 잘 알려진 컴퓨터 시스템, 환경 및 구성은 퍼스널 컴퓨터, 서버 컴퓨터, 휴대용 또는 랩탑 장치를 포함하며, 이는 "스마트" 휴대 전화, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그램가능한 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 기술된 시스템 또는 장치 중 일부를 포함하는 분산 컴퓨터 환경 등을 포함한다.
본 아키텍처는 하나이상의 컴퓨터 또는 다른 장치에 의해서 수행되는, 프로그램 모듈과 같은 컴퓨터 수행가능 명령의 일반적인 컨텍스트로 나타날 수 있다. 통상적으로, 프로그램 모듈은 특정한 업무를 수행하거나, 특정한 추상적인 데이터 타입을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 스트럭쳐 등을 포함한다. 전형적으로 프로그램 모듈의 기능은 다양한 실시예에서 원하는 대로 결합되거나 분산될 수 있을 것이다.
상술한 바로부터, 본 발명의 특정한 실시예는 설명을 위하여 본 명세서에 기술된 것이며, 본 발명의 기술적 사상 및 본 발명의 범주를 벗어나지 않고서 다양한 변형이 이루어질 수 있음을 이해하게 될 것이다. 따라서, 본 발명은 첨부된 특허청구범위에 의해서 제한되는 바를 제외하고는 제한되지 않는다.
본 발명에서는 확장형 실시간 공동작업 시스템을 위한 아키텍처가 제공된다. 본 아키텍처는 통신 프로토콜을 이용하는 응용 프로그램을 기록하기 위하여 통합 응용 프로그램 인터페이스를 제공한다. 본 아키텍처는 활성 객체, 종단점 객체 및 다수의 매체 스택을 가진다. 이들 객체는 접속 설정 프로토콜(SIP) 또는 실시간 전송 프로토콜(Real-Time Transport Protocol)과 같은 다양한 통신 프로토콜을 이용하여 메시지를 송신하고 수신할 수 있다. 활성 객체, 종단점 객체 및 다수의 매체 스택은 각기 하나 이상의 API를 가질 수 있어서, 응용 프로그램 개발자는 공동작업 관련 기능에 액세스하거나 이를 제공하는 데에 이용할 수 있다. 이러한 객체는 API를 다른 객체에 의해서 제공되는 하위 구현에 맵핑(mapping)한다. 활성 객체를 이용하면 개발자는 복잡한 공동작업 서비스를 제공하는 데에 요구되는 것보다 적은 응용 프로그램 로직을 제공할 수 있게 된다.

Claims (24)

  1. 응용 프로그램(application)에서 실시간 공동작업 서비스(real-time collaboration services)를 제공하기 위한, 컴퓨팅 시스템에 의해서 수행되는 방법으로서,
    컴퓨팅 장치에서, 공동작업 서비스를 제공하기 위해서 종단점 객체(endpoint object) 및 매체 스택 객체(media stack object)를 사용하는 활성 객체(activity object)의 인스턴스를 생성하는(instantiate) 단계 - 상기 종단점 객체는 관리 서비스들(management services)을 제공하기 위한 시그널링 프로토콜(signaling protocol)을 지원하고, 상기 매체 스택 객체는 컨텐츠 통신 서비스들을 제공하기 위한 매체 프로토콜(media protocol)을 지원하고, 상기 활성 객체는 상기 매체 프로토콜과 상기 시그널링 프로토콜을 조정(coordinate)하기 위한 통합 응용 프로그램 인터페이스(unified application program interface)를 제공함 - ; 및
    상기 컴퓨팅 장치에서, 상기 활성 객체의 상기 통합 응용 프로그램 인터페이스의 메서드들을 호출하는 단계 - 상기 통합 응용 프로그램 인터페이스는 상기 매체 프로토콜과 상기 시그널링 프로토콜의 통합 프로그래밍 로직(consolidated programming logic)의 고수준(high-level) 인터페이스를 포함하고, 상기 호출된 메서드들은 상기 공동작업 서비스를 사용하여 정보를 통신하는 응용 프로그램들 사이의 상기 매체 스택 객체 및 상기 종단점 객체의 하위(underlying) 기능을 제공함 - 를 포함하는, 실시간 공동작업 서비스 제공 방법.
  2. 제1항에 있어서,
    상기 종단점 객체는 SIP(Session Initiation Protocol)을 이용하는, 실시간 공동작업 서비스 제공 방법.
  3. 제1항에 있어서,
    상기 매체 스택 객체는 상기 활성 객체가 사용하는 응용 프로그램 인터페이스를 통하여 상기 컨텐츠 통신 서비스들을 제공하는 것을 포함하는, 실시간 공동작업 서비스 제공 방법.
  4. 제1항에 있어서,
    상기 매체 스택 객체는 실시간 전송 프로토콜(Real-Time Transport Protocol; RTP)을 이용하는, 실시간 공동작업 서비스 제공 방법.
  5. 제1항에 있어서,
    상기 매체 통신 서비스들은 매체(media)를 제공하는 것을 포함하는, 실시간 공동작업 서비스 제공 방법.
  6. 확장형 실시간 공동작업 시스템(extensible real-time collaboration system)으로서,
    컴퓨팅 시스템에 의해 구현되는 적어도 두 개의 매체 스택 객체 - 제1 매체 스택 객체는 제1 매체 프로토콜을 사용하여 공동작업 컨텐츠를 통신하고, 제2 매체 스택 객체는 상기 제1 매체 프로토콜과는 상이한 제2 매체 프로토콜을 사용하여 공동 작업 컨텐츠를 통신함 - ;
    상기 컴퓨팅 시스템에 의해 구현되는 종단점 객체 - 상기 종단점 객체는 시그널링 프로토콜을 사용하여 시그널링 정보를 제공하고 수신하기 위한 것임 -; 및
    공동작업 서비스를 제공하기 위한 상기 컴퓨팅 시스템에 의해 구현되는 활성 객체 - 상기 활성 객체는 통합 응용 프로그램 인터페이스(unified application program interface)를 구비하고, 상기 통합 응용 프로그램 인터페이스는 상기 시그널링 프로토콜 및 상기 매체 프로토콜의 통합 프로그래밍 로직(consolidated programming logic)의 고수준 로직을 포함하고, 상기 통합 응용 프로그램 인터페이스의 호출된 메서드들은 상기 공동작업 서비스를 사용해서 정보를 통신하는 응용 프로그램들 사이의 상기 매체 스택 객체와 상기 종단점 객체의 하위(underlying) 기능을 제공함 - 을 포함하는, 확장형 실시간 공동작업 시스템.
  7. 제6항에 있어서,
    상기 통합 응용 프로그램 인터페이스는 제1 응용 프로그램 인터페이스 네임(interface name)을 제공하는 상기 제1 매체 스택 객체와 제2 응용 프로그램 인터페이스 네임을 제공하는 상기 제2 매체 스택 객체 모두를 위해 일관된 인터페이스 네임을 제공하는, 확장형 실시간 공동작업 시스템.
  8. 제6항에 있어서,
    상기 공동작업 서비스 중 하나는 메시징(messaging)인, 확장형 실시간 공동작업 시스템.
  9. 제6항에 있어서,
    상기 공동작업 서비스 중 하나는 영상회의(videoconferencing)인, 확장형 실시간 공동작업 시스템.
  10. 제6항에 있어서,
    상기 공동작업 서비스 중 하나는 응용 프로그램을 공유하는 것인, 확장형 실시간 공동작업 시스템.
  11. 제6항에 있어서,
    복수의 상기 매체 스택 객체들에 새로운 매체 스택 객체를 추가한, 확장형 실시간 공동작업 시스템.
  12. 제6항에 있어서,
    상기 종단점 객체는 프로파일 컴포넌트(profile component), 발행 및 구독 컴포넌트(publishing and subscribing component), 시그널링 컴포넌트(signaling component) 및 프로토콜 스택 컴포넌트(protocol stack component)를 포함하는, 확장형 실시간 공동작업 시스템.
  13. 제12항에 있어서,
    상기 프로토콜 스택 컴포넌트는 SIP를 이용하는, 확장형 실시간 공동작업 시스템.
  14. 제12항에 있어서,
    상기 프로토콜 스택 컴포넌트는 시그널링 프로토콜(signaling protocol)을 이용하는, 확장형 실시간 공동작업 시스템.
  15. 제6항에 있어서,
    복수의 상기 매체 스택 객체들 중 하나는 실시간 전송 프로토콜을 이용하는, 확장형 실시간 공동작업 시스템.
  16. 제15항에 있어서,
    상기 활성 객체는 상기 응용 프로그램의 지시하에 상기 종단점 객체와 복수의 상기 매체 스택 객체들 중 하나를 조정(coordinate)하는, 확장형 실시간 공동작업 시스템.
  17. 제1항에 있어서,
    사용자가 두 개의 장치들에서 온라인일 때, 상기 사용자는 가용가능(available)한, 실시간 공동작업 서비스 제공 방법.
  18. 제1항에 있어서,
    사용자가 제1 시간에서 두 개의 장치에서 온라인이었고, 상기 제1 시간 이후의 제2시간에서 상기 두 개의 장치중 하나에서만 온라인일 때, 상기 사용자는 가용가능(available)하지 않은, 실시간 공동작업 서비스 제공 방법.
  19. 컴퓨터 실행 가능 명령어들을 저장하는 컴퓨터 저장 매체로서, 상기 컴퓨터 실행 가능 명령어들은 실행시 응용 프로그램(application)에서 실시간 공동작업 서비스(real-time collaboration services)를 제공하기 위한 방법을 수행하고, 상기 명령어들은,
    공동작업 서비스를 제공하기 위해서 종단점 객체(endpoint object) 및 제1 매체 스택 객체(media stack object)를 사용하는 활성 객체(activity object)의 인스턴스를 생성(instantiate)하고 - 상기 종단점 객체는 관리 서비스들(management services)을 제공하기 위한 시그널링 프로토콜(signaling protocol)을 지원하고, 상기 매체 스택 객체는 컨텐츠 통신 서비스들을 제공하기 위한 매체 프로토콜(media protocol)을 지원하고, 상기 활성 객체는 상기 매체 프로토콜과 상기 시그널링 프로토콜을 조정(coordinate)하기 위한 통합 응용 프로그램 인터페이스(unified application program interface)를 제공함 - ;
    상기 활성 객체의 상기 통합 응용 프로그램 인터페이스의 메서드들을 호출하는 것 - 상기 통합 응용 프로그램 인터페이스는 상기 매체 프로토콜과 상기 시그널링 프로토콜의 통합 프로그래밍 로직(consolidated programming logic)의 고수준(high-level) 인터페이스를 포함하고, 상기 호출된 메서드들은 상기 공동작업 서비스를 사용하여 정보를 통신하는 응용 프로그램들 사이의 상기 매체 스택 객체 및 상기 종단점 객체의 하위(underlying) 기능을 제공함 - 을 포함하는, 컴퓨터 저장 매체.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
KR1020040084265A 2003-10-23 2004-10-21 확장형 실시간 공동작업 시스템을 위한 아키텍처 KR101137099B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US51379003P 2003-10-23 2003-10-23
US60/513,790 2003-10-23
US59980704P 2004-08-06 2004-08-06
US60/599,807 2004-08-06
US91833304A 2004-08-13 2004-08-13
US10/918,333 2004-08-13
US10/918,855 US8321506B2 (en) 2003-10-23 2004-08-14 Architecture for an extensible real-time collaboration system
US10/918,855 2004-08-14

Publications (2)

Publication Number Publication Date
KR20050039596A KR20050039596A (ko) 2005-04-29
KR101137099B1 true KR101137099B1 (ko) 2012-04-19

Family

ID=34397195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040084265A KR101137099B1 (ko) 2003-10-23 2004-10-21 확장형 실시간 공동작업 시스템을 위한 아키텍처

Country Status (11)

Country Link
US (1) US8321506B2 (ko)
EP (1) EP1526695B1 (ko)
JP (1) JP2005202926A (ko)
KR (1) KR101137099B1 (ko)
CN (1) CN100566335C (ko)
AT (1) ATE369002T1 (ko)
AU (1) AU2004222762B2 (ko)
BR (1) BRPI0404468A (ko)
CA (1) CA2485763C (ko)
DE (1) DE602004007864T2 (ko)
MX (1) MXPA04010559A (ko)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658091B1 (en) 2002-02-01 2003-12-02 @Security Broadband Corp. LIfestyle multimedia security system
US20050089023A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US8321506B2 (en) 2003-10-23 2012-11-27 Microsoft Corporation Architecture for an extensible real-time collaboration system
US7571245B2 (en) * 2003-12-19 2009-08-04 International Business Machines Corporation System and method for delivering the streaming of audio-video using external resources
US10127802B2 (en) 2010-09-28 2018-11-13 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US20160065414A1 (en) 2013-06-27 2016-03-03 Ken Sundermeyer Control system user interface
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
US20170118037A1 (en) 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
US9729342B2 (en) 2010-12-20 2017-08-08 Icontrol Networks, Inc. Defining and implementing sensor triggered response rules
US8988221B2 (en) 2005-03-16 2015-03-24 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
EP1738540B1 (en) 2004-03-16 2017-10-04 Icontrol Networks, Inc. Premises management system
US11277465B2 (en) 2004-03-16 2022-03-15 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US9531593B2 (en) 2007-06-12 2016-12-27 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US7711796B2 (en) 2006-06-12 2010-05-04 Icontrol Networks, Inc. Gateway registry methods and systems
US10444964B2 (en) 2007-06-12 2019-10-15 Icontrol Networks, Inc. Control system user interface
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US10156959B2 (en) 2005-03-16 2018-12-18 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US8963713B2 (en) 2005-03-16 2015-02-24 Icontrol Networks, Inc. Integrated security network with security alarm signaling system
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US11159484B2 (en) 2004-03-16 2021-10-26 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US11113950B2 (en) 2005-03-16 2021-09-07 Icontrol Networks, Inc. Gateway integrated with premises security system
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US10382452B1 (en) * 2007-06-12 2019-08-13 Icontrol Networks, Inc. Communication protocols in integrated systems
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US9609003B1 (en) 2007-06-12 2017-03-28 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US10339791B2 (en) 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US11368429B2 (en) 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US8635350B2 (en) 2006-06-12 2014-01-21 Icontrol Networks, Inc. IP device discovery systems and methods
US10375253B2 (en) 2008-08-25 2019-08-06 Icontrol Networks, Inc. Security system with networked touchscreen and gateway
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US9191228B2 (en) 2005-03-16 2015-11-17 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US9141276B2 (en) 2005-03-16 2015-09-22 Icontrol Networks, Inc. Integrated interface for mobile device
US10313303B2 (en) 2007-06-12 2019-06-04 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US11201755B2 (en) 2004-03-16 2021-12-14 Icontrol Networks, Inc. Premises system management using status signal
US10200504B2 (en) 2007-06-12 2019-02-05 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US7580867B2 (en) * 2004-05-04 2009-08-25 Paul Nykamp Methods for interactively displaying product information and for collaborative product design
US20060161620A1 (en) * 2004-12-30 2006-07-20 Microsoft Corporation Extensible activities within collaboration sessions
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US11615697B2 (en) 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US9306809B2 (en) 2007-06-12 2016-04-05 Icontrol Networks, Inc. Security system with networked touchscreen
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US7925701B2 (en) * 2005-07-25 2011-04-12 Sony Ericsson Mobile Communications Ab Mobile communication terminal supporting information sharing
JP4643430B2 (ja) * 2005-12-14 2011-03-02 富士通株式会社 通信プログラム、通信方法および通信装置
US7614060B2 (en) * 2006-04-28 2009-11-03 Microsoft Corporation Unified concept of presence
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
GB0616613D0 (en) * 2006-08-22 2006-10-04 Ibm Data processing system using matching engine and routing switch
US8817668B2 (en) * 2006-09-15 2014-08-26 Microsoft Corporation Distributable, scalable, pluggable conferencing architecture
US8150798B2 (en) 2006-10-10 2012-04-03 Wells Fargo Bank, N.A. Method and system for automated coordination and organization of electronic communications in enterprises
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US20080183645A1 (en) * 2007-01-31 2008-07-31 Microsoft Corporation Media continuity service between devices
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US8010093B2 (en) 2007-03-08 2011-08-30 Infineon Technologies Ag Communication network unit and method for exchanging capability information
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
US10423309B2 (en) 2007-06-12 2019-09-24 Icontrol Networks, Inc. Device integration framework
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11237714B2 (en) 2007-06-12 2022-02-01 Control Networks, Inc. Control system user interface
US10389736B2 (en) 2007-06-12 2019-08-20 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10666523B2 (en) 2007-06-12 2020-05-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US10616075B2 (en) 2007-06-12 2020-04-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US10498830B2 (en) 2007-06-12 2019-12-03 Icontrol Networks, Inc. Wi-Fi-to-serial encapsulation in systems
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US10051078B2 (en) 2007-06-12 2018-08-14 Icontrol Networks, Inc. WiFi-to-serial encapsulation in systems
US11089122B2 (en) 2007-06-12 2021-08-10 Icontrol Networks, Inc. Controlling data routing among networks
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US8583733B2 (en) * 2007-08-17 2013-11-12 Microsoft Corporation Real time collaboration file format for unified communication
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US10530839B2 (en) 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11258625B2 (en) 2008-08-11 2022-02-22 Icontrol Networks, Inc. Mobile premises automation platform
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
US20110154222A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Extensible mechanism for conveying feature capabilities in conversation systems
WO2011143273A1 (en) 2010-05-10 2011-11-17 Icontrol Networks, Inc Control system user interface
US9799004B2 (en) 2010-07-30 2017-10-24 Avaya Inc. System and method for multi-model, context-aware visualization, notification, aggregation and formation
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US11750414B2 (en) 2010-12-16 2023-09-05 Icontrol Networks, Inc. Bidirectional security sensor communication for a premises security system
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
US20140115069A1 (en) * 2012-10-22 2014-04-24 International Business Machines Corporation Generating a user unavailability alert in a collaborative environment
US9395955B2 (en) 2013-03-18 2016-07-19 Jayarama Marks Programming system and method
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US11146637B2 (en) 2014-03-03 2021-10-12 Icontrol Networks, Inc. Media content management
US10491641B2 (en) * 2015-02-20 2019-11-26 T-Mobile Usa, Inc. Inter-IMS service support in telecommunication systems
JP2022170173A (ja) * 2021-04-28 2022-11-10 オムロン株式会社 情報処理装置、方法およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097533A (en) 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
JPH1040080A (ja) 1996-07-26 1998-02-13 Nec Corp オープンビジネス共通基盤装置
KR19980065416A (ko) * 1997-01-09 1998-10-15 황대준 다중점 통신을 지원하는 응용프로그램 공유 방법
US20030014488A1 (en) * 2001-06-13 2003-01-16 Siddhartha Dalal System and method for enabling multimedia conferencing services on a real-time communications platform

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03158947A (ja) * 1989-11-17 1991-07-08 Nec Corp 通信制御方式
JP2763663B2 (ja) * 1990-07-24 1998-06-11 株式会社ケンウッド 光ディスク記録再生装置のレーザ駆動回路
US5327558A (en) 1992-04-30 1994-07-05 Motorola, Inc. Method for asynchronous application communication
GB2272311A (en) * 1992-11-10 1994-05-11 Ibm Call management in a collaborative working network.
US5872923A (en) * 1993-03-19 1999-02-16 Ncr Corporation Collaborative video conferencing system
US5576629A (en) * 1994-10-24 1996-11-19 Fourth State Technology, Inc. Plasma monitoring and control method and system
US5724508A (en) * 1995-03-09 1998-03-03 Insoft, Inc. Apparatus for collaborative computing
US6167395A (en) * 1998-09-11 2000-12-26 Genesys Telecommunications Laboratories, Inc Method and apparatus for creating specialized multimedia threads in a multimedia communication center
US7073172B2 (en) * 1998-09-21 2006-07-04 Microsoft Corporation On demand patching of applications via software implementation installer mechanism
JP2000250756A (ja) 1999-03-02 2000-09-14 Mitsubishi Electric Corp 監視データ処理ソフトウェア開発用フレームワーク
US6748420B1 (en) * 1999-11-23 2004-06-08 Cisco Technology, Inc. Methods and apparatus for providing shared access to an application
JP2001282952A (ja) * 2000-03-30 2001-10-12 Namco Ltd クライアント・コンピュータ、サーバ・コンピュータ、ネットワーク・ランキング・システム、ネットワーク・ランキング方法、課題処理方法および記録媒体
EP1158740B1 (en) * 2000-05-24 2009-09-16 Sony Deutschland GmbH Quality of Service negotiation
US6990513B2 (en) * 2000-06-22 2006-01-24 Microsoft Corporation Distributed computing services platform
US20020032730A1 (en) * 2000-09-11 2002-03-14 Rami Amit System and method for correlating data sessions
US20020069263A1 (en) * 2000-10-13 2002-06-06 Mark Sears Wireless java technology
US20040249811A1 (en) * 2000-12-14 2004-12-09 Shostack Ronald N. Web based dating service with filter for filtering potential friends/mates using physical and/or personality attractiveness criteria
US20030009603A1 (en) * 2000-12-27 2003-01-09 Ruths Derek Augustus Samuel System and method for managing collaborative data representations
US20030018719A1 (en) * 2000-12-27 2003-01-23 Ruths Derek Augustus Samuel Data-centric collaborative computing platform
US7155681B2 (en) * 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
AUPR459901A0 (en) * 2001-04-27 2001-05-24 Sharinga Networks Inc. Instant messaging
US7353252B1 (en) * 2001-05-16 2008-04-01 Sigma Design System for electronic file collaboration among multiple users using peer-to-peer network topology
JP4233775B2 (ja) 2001-07-06 2009-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーション データ通信方法、データ通信システムおよびプログラム
US20030041108A1 (en) * 2001-08-22 2003-02-27 Henrick Robert F. Enhancement of communications by peer-to-peer collaborative web browsing
US7054648B2 (en) * 2001-10-22 2006-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Location privacy proxy server and method in a telecommunication network
US7124080B2 (en) * 2001-11-13 2006-10-17 Microsoft Corporation Method and apparatus for adapting a class entity dictionary used with language models
US7535915B2 (en) * 2001-12-31 2009-05-19 Samsung Electronics Co., Ltd. System and method for scalable and redundant SIP message routing in an IP multimedia subsystem
US20030144892A1 (en) * 2002-01-29 2003-07-31 International Business Machines Corporation Method, system, and storage medium for providing knowledge management services
WO2003083692A1 (en) * 2002-03-27 2003-10-09 First Virtual Communications System and method for traversing firewalls with protocol communications
US7340745B2 (en) * 2002-06-25 2008-03-04 Sun Microsystems, Inc. Systems and methods for mapping API calls
US7926066B2 (en) * 2002-07-09 2011-04-12 Openpages, Inc. Adaptive content platform and application integration with the platform
US20040093595A1 (en) * 2002-08-08 2004-05-13 Eric Bilange Software application framework for network-connected devices
CA2505936A1 (en) * 2002-11-11 2004-05-27 Supracomm, Inc. Multicast videoconferencing
US20040107256A1 (en) * 2002-12-02 2004-06-03 Thomas Odenwald Collaboration integration
EP1584171B1 (en) * 2003-01-06 2007-01-17 Koninklijke Philips Electronics N.V. Multi-factor application selection
US7765551B2 (en) * 2003-02-10 2010-07-27 Novell, Inc. System for dynamically loading application resources from the first server to the second server based on the modified application resources from the first server
US7360164B2 (en) * 2003-03-03 2008-04-15 Sap Ag Collaboration launchpad
US7444425B2 (en) * 2003-03-10 2008-10-28 Meetrix, Inc. Applying multicast protocols and VPN tunneling techniques to achieve high quality of service for real time media transport across IP networks
US8375082B2 (en) * 2003-04-17 2013-02-12 Hewlett-Packard Development Company, L.P. Communications systems and methods
US7366163B1 (en) * 2003-04-25 2008-04-29 At&T Corp. Method for providing local and toll services with LNP, and toll-free services to a calling party which originates the call from an IP location connected to a sip-enabled IP network
US20040236639A1 (en) * 2003-05-20 2004-11-25 Arun Candadai Dynamic data collaboration
US20050089023A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US8321506B2 (en) 2003-10-23 2012-11-27 Microsoft Corporation Architecture for an extensible real-time collaboration system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097533A (en) 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
JPH1040080A (ja) 1996-07-26 1998-02-13 Nec Corp オープンビジネス共通基盤装置
KR19980065416A (ko) * 1997-01-09 1998-10-15 황대준 다중점 통신을 지원하는 응용프로그램 공유 방법
US20030014488A1 (en) * 2001-06-13 2003-01-16 Siddhartha Dalal System and method for enabling multimedia conferencing services on a real-time communications platform

Also Published As

Publication number Publication date
AU2004222762B2 (en) 2010-03-04
US8321506B2 (en) 2012-11-27
ATE369002T1 (de) 2007-08-15
US20050091435A1 (en) 2005-04-28
BRPI0404468A (pt) 2005-06-21
AU2004222762A1 (en) 2005-05-12
EP1526695B1 (en) 2007-08-01
CN1668038A (zh) 2005-09-14
CA2485763A1 (en) 2005-04-23
CN100566335C (zh) 2009-12-02
CA2485763C (en) 2012-06-26
KR20050039596A (ko) 2005-04-29
EP1526695A1 (en) 2005-04-27
DE602004007864D1 (de) 2007-09-13
DE602004007864T2 (de) 2008-04-17
MXPA04010559A (es) 2006-09-04
JP2005202926A (ja) 2005-07-28

Similar Documents

Publication Publication Date Title
KR101137099B1 (ko) 확장형 실시간 공동작업 시스템을 위한 아키텍처
US20050089023A1 (en) Architecture for an extensible real-time collaboration system
US8589547B2 (en) Side channel for membership management within conference control
RU2345495C2 (ru) Устройство и способ обеспечения совместного использования данных конференции
US8621090B2 (en) System and method for providing sequenced anonymous communication sessions over a network
US8250141B2 (en) Real-time event notification for collaborative computing sessions
US7769809B2 (en) Associating real-time conversations with a logical conversation
US20030014488A1 (en) System and method for enabling multimedia conferencing services on a real-time communications platform
US20100246576A1 (en) System and method for providing anonymity in a session initiated protocol network
US7870418B2 (en) Enhanced presence routing and roster fidelity by proactive crashed endpoint detection
NO325064B1 (no) Kommunikasjonsklient
US20100223320A1 (en) Data distribution efficiency for online collaborative computing sessions
US11283844B2 (en) Method and system for participating in an electronic communication using virtual presence
US20060161620A1 (en) Extensible activities within collaboration sessions
US20090328062A1 (en) Scalable and extensible communication framework
US7469293B1 (en) Using additional information provided in session requests
RU2377640C2 (ru) Архитектура для расширяемой системы совместной работы в реальном времени
US8284918B2 (en) Media specific feature invocation signaling in enhanced communication systems
Shim et al. An example of using presence and availability in an enterprise for spontaneous, multiparty, multimedia communications
Zhang et al. User-centric communication middleware
Wu et al. A Web-services based conference control framework for heterogenous A/V collaboration
Prasad et al. A proposal for distributed conferencing on SIP using conference servers
Taha Architecture for a SIP-based conferencing server
Mortada et al. Internet telephony signaling
Hawwa Floor control for multiparty sessions in 3G networks

Legal Events

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

Payment date: 20160318

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 6