KR20040065961A - 확장가능 통신 제어 - Google Patents

확장가능 통신 제어 Download PDF

Info

Publication number
KR20040065961A
KR20040065961A KR1020030019249A KR20030019249A KR20040065961A KR 20040065961 A KR20040065961 A KR 20040065961A KR 1020030019249 A KR1020030019249 A KR 1020030019249A KR 20030019249 A KR20030019249 A KR 20030019249A KR 20040065961 A KR20040065961 A KR 20040065961A
Authority
KR
South Korea
Prior art keywords
communication
scalable
activity
program
request
Prior art date
Application number
KR1020030019249A
Other languages
English (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 KR20040065961A publication Critical patent/KR20040065961A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/48Message addressing, e.g. address format or anonymous messages, aliases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4535Network directories; Name-to-address mapping using an address exchange platform which sets up a session between two nodes, e.g. rendezvous servers, session initiation protocols [SIP] registrars or H.323 gatekeepers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

본 발명은 장치 사이의 통신을 처리하기 위한 확장 및 적응가능 소프트웨어 통신 제어에 관한 것이다. 확장가능 통신 제어는 컴퓨팅 장치와 원격 통신 장치 사이에서 통신하기 위해 사용된다. 확장가능 통신 제어를 사용하도록 적응된 컴퓨팅 프로그램에서, 접촉인에 관한 정보가 검색된다. 검색된 접촉 정보로부터 어떤 형태의 액티비티가 원격 통신 장치의 접촉인과 통신하는데 사용될 수 있는지 판정된다. 통신 액티비티가 접촉인의 정보로부터 판정된 후, 통신 요청이 통신 액티비티에 관련된 통신 주소로 전송된다. 수신 후, 확장가능 통신 제어는 원격 통신 장치와의 통신을 시작한다.

Description

확장가능 통신 제어{EXTENSIBLE COMMUNICATION CONTROLS}
본 발명은 일반적으로 망 통신에 관한 것으로, 구체적으로 망상의 통신을 위한 애플리케이션 내장가능 제어에 관한 것이다.
통신망은 컴퓨터 전화 통신 분야에 공지되어 있다. 정의하면, 망은 통신 설비 또는 링크에 의해 연결된 컴퓨터 및/또는 장치의 그룹이다. 망 통신은 케이블을 통하는 것과 같은 영구적인 것이거나, 전화 또는 무선 링크를 통해 이루어진 연결과 같은 임시적인 것일 수 있다. 망은 몇 개의 컴퓨터 또는 워크스테이션 및 관련 장치를 포함하는 근거리 통신망(LAN)으로부터, 일시적 통신 링크를 통해 원격 컴퓨터를 연결하는 원격 액세스 서비스(RAS)에 지역적으로 분산된 컴퓨터 및 LAN을 연결하는 원거리 통신망(WAN)까지 크기가 다양할 수 있다. 인터망은 게이트웨이 또는 라우터를 이용하여 다양한 망으로부터의 데이타 전달 및 변환을 용이하게 하는 유사하거나 유사하지 않은 다중 컴퓨터 망의 결합이다. 인터망에 대한 공지된 용어는 "인터넷"이다. 일반적으로 알 수 있는 것처럼, 대문자로 쓰여진 "인터넷(Internet)"은 서로 통신하기 위한 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 또는 유니폼 데이타그램 패킷/인터넷 프로토콜(UDP/IP)과 같은 상위층 프로토콜과 함께 인터넷 프로토콜(IP)을 이용하는 망 및 라우터의 집합을 지칭한다.
인터넷은 전세계에 흩어져 있는 컴퓨터 및 장치를 링크할 수 있는 그 기능성으로 인해 최근에 폭발적으로 증가하여 왔다. 다른 상호작용적 환경은 특히 셀룰라 전화 산업계의 여러 무선 망 제공자가 제공하는 "무선 웹"은 물론 마이크로소프트 네트워크(MSN) 또는 다른 서비스 제공자가 제공하는 것과 같은 전용 환경을 포함할 수 있다. 이하 설명에서 알 수 있는 것처럼, 본 발명은 이러한 상호작용적 환경에 이용될 수 있지만, 설명을 목적으로, 인터넷이 본 발명을 구현하기 위한 예시적인 상호작용 환경으로 이용된다.
인터넷은 다양한 형태의 정보를 전달할 수 있는 기능에 주로 기인하여 통신하는 방법으로 빨리 인기있게 되었다. 인터넷에서 정보를 통신하기 위해서 사용자는 통상 인터넷에 연결된 원격 컴퓨터 상에서 실행하는 다른 통신 프로그램과 통신하는 통신 프로그램을 실행한다. 이러한 종래의 통신 프로그램은 일반적으로 통신 프로그램의 형태와 관련된 단일 통신 프로토콜을 이용한다. 예를 들면, 비디오 통신 프로그램은 전용 비디오 통신 프로토콜을 이용할 것이고, 텍스트 채팅 프로그램은 전용 채팅 통신 프로토콜을 이용할 것이다. 다른 형태의 통신 프로토콜은 종종 특정 통신 프로그램에 한정된다. 그러므로, 한 소프트웨어 제공자로부터 텍스트 채팅 프로그램은 다른 소프트웨어 제공자로부터의 채팅 프로그램이 사용할 동일한 채팅 프로토콜을 반드시 이용하지는 않을 것이다. 이러한 전용 통신 환경은 수많은 다른 형태의 통신을 야기하였고 이러한 유형의 통신 내에서 각 유형의 통신을 가능하게 하는 수많은 다른 프로토콜을 야기하였다.
다양한 통신 애플리케이션 환경의 다른 결과는 특정 소프트웨어 개발자에 의해 최선의 실시(best practice)가 발견되고 그 통신 프로그램에 구현되고, 단지 그 통신 프로그램만이 이러한 최선의 실시로부터 이익을 얻는다는 것이다. 다른 소프트웨어 개발자는 새로이 개발된 "최선의 실시"를 구현하기를 희망하였다면 소프트웨어를 각각이 개별적으로 갱신할 필요가 있을 것이다.
현재 통신 프로그램의 다른 단점은 각각의 애플리케이션 프로그램이 일반적으로 특정 통신 프로그램의 다른 사용자만을 위한 접촉 정보를 저장한다는 것이다. 따라서, 통신 프로그램을 이용하는 온라인에 있을 수 있는 특정 사용자에게 도달하려고 시도할 때, 사용자를 접촉하는 프로세스는 일반적으로 올바른 통신 애플리케이션이 주어질 때까지의 시행착오반복이다. 또한, 접촉 정보는 분리된 각각의 통신 프로그램에 재입력될 필요가 있다.
종래의 통신 프로그램의 또다른 단점은 이들이 컴퓨팅 환경에서 사용되는 다른 애플리케이션으로부터 일반적으로 분리되어 있다는 것이다. 예를 들면, 비디오 회의 및 문서 작성 애플리케이션을 동시에 실행하는 것이 가능하지만, 일반적으로 동일한 애플리케이션에서 비디오 통신 요소를 포함하는 협동적인 문서 작성 세션을 실행하기는 어렵다. 이러한 애플리케이션을 설계하는 것은 가능하지만, 그 능력은 통신 애플리케이션 및 문서 작성 애플리케이션을 설계하고 필요한 집적을 수동으로 생성하는 것과 같다. 이러한 수동 생성은 단일 목적(예를 들면, 문서 작성 및 비디오 회의, 문서 작성 및 텍스트 채팅, 또는 게임 경기 및 오디오 채팅)을 위한 것이다. 이러한 수동 생성은 확장가능하지 않고(예를 들면, 갱신되거나 수정되거나 모듈라 요소로서 대체될 수 없다), 분리된 접촉을 유지하는 단점이 있다. 또한, 새로운 형태의 통신이 사용가능해지면서, 새로운 형태 또는 형태의 조합의 통신을 포함하기 위해서 이러한 하이브리드 통신 애플리케이션을 수동으로 갱신하는 것이 필요할 것이다.
따라서, 보다 유연하고 확장가능한 통신 환경에 대한 요구가 있다. 특정 사용자에 대해 접촉 정보가 주어지면 동적으로 프로토콜 및/또는 통신 유형을 정의하는 능력을 새로운 통신 환경에서 구비하는 것이 바람직할 것이다. 통신을 사용하도록 적응된 모든 애플리케이션이 모든 통신 애플리케이션이 최선의 실시를 얻을 때마다 최선의 실시를 받게 되는 방식으로 통신 애플리케이션에 대한 최선의 실시를 얻을 수 있는 것이 더 바람직할 것이다.
본 발명은 장치 사이의 통신을 처리하기 위한 확장가능 및 적응가능 소프트웨어 통신 제어(프로그램 요소)를 제공한다. 본 발명의 일형태에 있어서, 확장가능 통신 제어는 컴퓨팅 장치와 원격 통신 장치 사이에서 통신하는데 이용된다. 확장가능 통신 제어를 사용하도록 적응된 컴퓨팅 장치 상의 컴퓨팅 프로그램에서, 접촉인에 대한 정보가 검색된다. 검색된 접촉 정보로부터, 원격 통신 장치의 접촉인과 통신하는데 어떤 유형의 액티비티가 사용될 수 있는지를 판정한다. 접촉 액티비티는 접촉인의 통신 주소만 포함할 뿐만 아니라, 통신할 때 어떤 유형의 통신이 사용되어야 하는지 잠재적으로 어떤 통신 프로그램이 사용되어야 하는지를 포함한다. 통신 액티비티가 접촉인의 정보로부터 판정되면, 그 통신 액티비티와 관련된 통신 주소로의 통신 요청이 전송된다. 통신 요청이 수용된다고 가정하면, 확장가능 통신 제어는 원격 통신 장치와 통신을 시작할 수 있다.
본 발명의 일부 실시예에서, 통신 액티비티가 특정 통신 프로그램을 지정하지 않고, 원격 통신 장치가 통신할 디폴트 프로그램을 결정하는 것이 가능하다. 본 발명의 다른 예시적인 실시예에서, 디폴트 프로그램은 확장가능 통신 제어를 내장하는 셸 프로그램이다. 장치 사이의 통신은, 이에 한정되지는 않지만, 텍스트 채팅, 인스턴트 메시지, 비디오 회의, 오디오 회의 등을 포함하는 무수한 통신 유형 중 임의의 것일 수 있다. 이러한 통신은 종래의 컴퓨팅 망 및 전화망과 같은 다른 유형의 망상에서 일어날 수 있다.
본 발명의 다른 형태에서, 통신 장치 및 컴퓨터 장치는 피어 대 피어 방식으로 통신하지 않는다. 따라서, 두 장치가 통신하기 위해 중간 위치에서 접촉하는 분리된 "대화"가 생성된다. 이러한 대화는 컴퓨팅 장치 및 원격 통신 장치 모두가 대화에 연결하기 위해 대화 식별자를 사용한 후 서로 통신할 수 있도록 식별자가 붙을 것이다.
본 발명의 다른 형태에서, 확장가능 통신 제어는 이에 한정되지는 않지만 통신 프로그램을 포함하는 많은 유형의 프로그램에 의해 사용될 수 있는 적응가능한 모듈이다. 본 발명의 확장가능성의 이 형태는 통신 제어가 사용되어야 하지만, 요구되거나 희망하는 다른 통신 서비스를 제공하기 위해 제어가 수행될 수 있다는 것을 프로그램이 지정할 수 있게 한다. 이 프로그램은 어떤 유형의 통신, 프로토콜, 주소 및 구성이 확장가능 통신 제어에 의해 사용되어야 한다는 것을 지정할 수 있다. 본 발명의 이 형태에서처럼, 확장가능 통신 제어는 이를 사용하도록 적응된 애플리케이션에 응답하는 모듈이고, 확장가능 통신 제어는 한 프로그램에서 분리되어 다른 프로그램에 부착될 수 있다. 이러한 실시예에서, 분리 및 부착은 통신 연결을 단절시킬 수 있지만 확장가능 통신 제어가 다른 프로그램에 부착된 후 이를 재부착한다. 본 발명의 다른 실시예에서, 통신은 확장가능 통신 제어가 한 프로그램에서 분리된 후 다른 프로그램으로 부착되려고 전달되는 동안에도 계속된다.
본 발명의 또다른 형태에서, 확장가능 통신 제어는 원격 통신 장치로서 넌컴퓨팅 장치 또는 컴퓨팅 장치와 통신하도록 적응될 수 있다. 따라서, 일실시예에서, 원격 통신 장치는 확장가능 통신 제어로부터의 통신 요청에 응답하여 프로그램을 포함할 수도 있다. 원격 통신 장치 상의 이러한 프로그램은 수신된 통신 요청으로부터 모든 확장가능 통신 액티비티를 판정하고 이러한 확장가능 통신 액티비티를 이용하여 통신하기 위해서 원격 통신 장치 상의 하나 이상의 통신 프로그램을 할성화할 수 있다.
상기로부터 알 수 있는 것처럼, 본 발명은 컴퓨터 판독가능 매체 및 시스템과 함께 장치 사이에서 통신을 제공하기 위한 확장가능 및 적응가능 통신 환경을 제공한다.
도 1은 본 발명에 따른 장치 사이의 통신 연결을 제공하는 망에 연결된 다수의 장치의 도면.
도 2는 본 발명에 따른 통신 연결을 가능하게 하는 컴퓨터와 같은 통신 장치의 블럭도.
도 3은 본 발명에 따른 통신 연결을 위해 제공하기 위해 클라이언트 장치, 접촉 데이타베이스, 대화 스토어, 통신 장치에 의해 취해진 행동을 도시하는 도면.
도 4는 본 발명에 따른 통신 연결을 제공하기 위해 통신 장치에 의해 구현된 통신 연결 루틴을 도시하는 전체적인 흐름도.
도 5는 본 발명에 따른 통신 연결을 형성하는 접촉 연결 루틴을 도시하는 전체적인 흐름도.
도 6은 본 발명에 따른 통신 연결을 형성하는 접촉 연결 루틴을 도시하는 전체적인 흐름도.
도 7은 본 발명에 따른 통신 연결 상에서 설정하고 통신하기 위한 통신 연결 서브루틴을 도시하는 전체적인 흐름도.
도 8은 본 발명에 따른 내장된 통신 제어를 구비한 애플리케이션 사이의 통신의 개략적인 도면.
도 9는 본 발명에 따른 통신 제어를 포함하는 예시적인 셸 애플리케이션을 도시하는 도면.
도 10은 본 발명에 따른 통신 제어 분리 루틴을 도시하는 전체적인 흐름도.
도 11은 본 발명에 따른 내장된 통신 제어를 구비한 애플리케이션으로부터 분리되는 통신 제어의 예시적인 도면.
<도면의 주요 부분에 대한 부호의 설명>
105: 접촉 데이타베이스
110: 망
120: 통신 서비스 제공자
125: 대화 스토어
150: 통신 장치
200: 클라이언트 장치
이하 상세한 설명은 프로세서, 프로세서를 위한 메모리 스토리지, 연결된 디스플레이 장치, 및 입력 장치를 포함하는 종래의 컴퓨터 구성요소에 의한 동작의 프로세스 및 심볼 표현으로 주로 표현된다. 또한, 이 프로세스 및 동작은 원격 파일 서버, 컴퓨터 서버, 메모리 스토리지 장치를 포함하는 이질적인 분산 컴퓨팅 환경의 종래의 컴퓨팅 구성요소를 이용할 수 있다. 이러한 종래의 분산 컴퓨팅 구성요소의 각각은 통신망을 통해 프로세서에 의해 액세스 가능하다.
본 발명은 컴퓨팅 및 넌컴퓨팅 망 환경의 확장가능 통신 제어 사이의 통신을 제공하는 것이다. 확장가능 통신 제어는 컴퓨팅 장치(200) 및 원격 통신 장치(150) 사이에서 통신하기 위해 사용된다. 컴퓨팅 장치(200)는 본 발명에 따라 확장가능 통신 제어를 사용하도록 적응된 최소한 하나의 컴퓨팅 프로그램을 구비한다. 이 통신 제어는 통신 장치(150)와 같은 망의 다른 장치와 통신하기 위해 사용될 수 있다. 통신 제어, 통신 제어를 사용하도록 적응된 프로그램, 장치 사이의 이러한 통신 및 상호관계가 이하 더 상세하게 설명될 것이다.
이미 설명된 것처럼, "인터넷(Internet)"은 서로간의 통신을 이용하는 망 및 라우터(router)의 집합을 지칭한다. 도 1은 장치 사이의 통신 연결을 제공하는 통신 시스템(100)의 기능 블럭도를 도시한다. 시스템(100)이 망(110)(인터넷과 같은) 상에서 상호연결된 개별 컴퓨터 시스템을 포함하는 일반적으로 분산 컴퓨팅 환경에서 동작하지만, 시스템(100)이 이하 더 상세하게 설명된 것처럼 POTS(Plain Old Telephone System) 망과 같은 넌컴퓨팅 망에서 동일하게 기능을 수행할 수 있다는 것을 당업자는 알 수 있을 것이다. 도 1에 도시된 시스템(100)은 모두 망(100)을 통해 상호연결된 클라이언트(client) 장치(200), 접촉 데이타베이스(contact database)(105), 통신 장치(150), 통신 서비스 제공자(120) 및 대화 스토어(conversation store)(125)를 포함한다. 클라이언트 장치(200)는 컴퓨팅 능력을 구비하고 본 발명의 루틴을 처리할 수 있는 임의의 형태의 장치일 수 있다. 통신 장치(150)도 컴퓨팅 장치이거나 전화와 같은 보다 단순한 장치일 수 있다. 당업자는 대화 스토어(125) 및 접촉 데이타베이스(105)가 통신 시스템(100)에 도시된 클라이언트 장치(200)에 의해 액세스 가능한 임의의 장치에 내장될 수 있다는 것을 알 것이다. 예시적인 컴퓨터 클라이언트 장치(200)는 도 2에 더 상세하게 도시되고 이하 설명될 것이다. 또한, 단일 클라이언트 장치(200) 및 단일 통신 장치(150)만이 도시되었지만, 보다 많은 클라이언트 장치(200) 및/또는 통신 장치(150)가 시스템(100)에 포함될 수 있다는 것을 알 수 있다. 클라이언트 장치(200)는 발신 장치라 지칭될 수 있고 통신 장치(150)는 접촉 장치라 지칭될 수 있다.
도 2는 본 발명의 이하 설명된 형태를 구현하는 예시적인 클라이언트 장치(200)를 도시한다. 보다 기본적인 형태에서, 클라이언트 장치(200)는 최소한 하나의 처리 유닛(202) 및 메모리(204)를 통상 포함한다. 클라이언트 장치의 정확한 구성 및 유형에 따라, 메모리(204)는 휘발성(RAM과 같은), 비휘발성(ROM, 플래시 메모리 등과 같은), 또는 이 둘의 조합일 수 있다. 이 가장 기본적인 구성은 도 2에 점선(206)으로 도시되어 있다. 클라이언트 장치(200)는 추가적인 특징 및 기능을 구비할 수 있다. 예를 들면, 장치(200)는 이에 한정되지는 않지만 자기 또는 광학 디스크 또는 테이프를 포함하는 추가적인 스토리지(탈착가능 및/또는 비탈착가능)도 포함할 수 있다. 이러한 추가적인 스토리지는 탈착가능 스토리지(208) 및 비탈착가능 스토리지(210)로 도 2에 도시되어 있다. 컴퓨터 스토리지 매체는 컴퓨터 판독가능 명령, 데이타 구조, 프로그램 모듈 또는 다른 데이타와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 탈착가능 및 비탈착가능 매체를 포함한다. 메모리(204), 탈착가능 스토리지(208), 비탈착가능 스토리지(210)는 컴퓨터 스토리지 매체의 모든 예이다. 컴퓨터 스토리지 매체는 이에 한정되지는 않지만 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지탈 다용도 디스크("DVD"), 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 장치, 또는 희망하는 정보를 저장 또는 판독하는데 사용될 수 있고 클라이언트 장치(200)에 의해 액세스될 수 있는 모든 다른 매체를 포함한다. 모든 이러한 컴퓨터 스토리지 매체는 클라이언트 장치(200)의 일부일 수 있다.
또한, 클라이언트 장치(200)의 컴퓨터 스토리지 매체는 통신 서비스 제공자(120) 및 원격 클라이언트 장치(200)와 같은 원격 컴퓨터와 통신하고 그로부터의 정보를 처리하기에 적절한 컴퓨터 프로그램 및/또는 루틴을 포함한다.
클라이언트 장치(200)는 장치가 다른 장치와 통신할 수 있게 하는 통신 연결(212)도 포함한다. 통신 연결(212)은 통신 매체의 예이다. 통신 매체는 통상 컴퓨터 판독가능 명령, 데이타 구조, 프로그램, 또는 반송파 또는 다른 전송 메카니즘과 같은 변조된 데이타 신호의 다른 데이타를 실시하고 임의의 정보 전달 매체를 포함한다. "변조된 데이타 신호"는 설정되거나 신호에 정보를 인코드하기 위한 방식으로 변경되는 하나 이상의 특징을 갖는 신호를 의미한다. 한정하지 않는 예로서, 통신 매체는 유선망 또는 직접 유선 연결과 같은 유선 매체, 및 무선 주파수, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다. 본 명세서에서 사용된 "컴퓨터 판독가능 매체"라는 용어는 스토리지 매체, 통신 매체, 및 당업자에게 공지된 모든 다른 컴퓨터 판독가능 매체를 포함한다.
클라이언트 장치(200)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(214)도 구비할 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(216)도 포함될 수 있다. 이러한 모든 장치가 당업계에 공지되어 있으므로, 상세하게 설명하지는 않는다.
본 발명에 따라 형성된 통신 제어의 동작을 도시하기 위해서, 도 3은 도 1에 도시된 장치와 통신 시스템(100) 사이의 상호작용의 한가지 시퀀스를 도시한다. 도 3에 도시된 시스템(100)의 장치는 접촉 데이타베이스(100) 및 대화 스토어(125)와 함께 클라이언트 장치(200) 및 통신 장치(150)를 포함한다. 여러 장치에 의해 수행되는 명령 및 루틴은 도 4-7을 상세하게 참조하여 도시되고 설명된다.
본 발명의 장치 사이의 통신에 대한 상기 설명에서 알 수 있는 것처럼, 통신 처리의 많은 부분이 클라이언트 장치(200)에 의해 처리된다. 본 발명의 다른 형태에서, 통신 장치(150)는 클라이언트 장치(200)보다 덜 복잡한 장치일 수 있다. 예를 들면, 오디오 통신 전화의 유형을 이용할 때, 클라이언트 장치(200)가 전화였던 통신 장치(150)에 통신 요청을 개시하는 것이 가능할 것이다. 이는 그 통신 장치(즉, 전화)에서 특정 접촉에 도달하기 위해 전화 및 필요한 주소(즉, 전화 번호)와 통신하기 요구되는 전화 프로토콜의 정의를 구비하여 달성될 것이다. 다음의 도 6은 보다 복잡한 클라이언트 장치(200)와 간단한 접촉 통신 장치(150)의 상호작용에 들어갈 간단한 처리를 도시한다.
도 3을 참조하면, 통신 연결 및 처리는 클라이언트 장치(200)가 새로운 통신 "액티비티"(302)를 개시할 때 개시된다. 새로운 통신 액티비티(302)는 이 예시적인 상호작용에서 접촉 데이타베이스(105)에 대한 주소 요청(304)을 이용하여 얻어지는 접촉 정보를 요구할 것이다. 접촉 데이타베이스(105)로 전송된 주소 요청(304)은 클라이언트 장치(200)가 전송한 희망 또는 임의의 양호한 프로토콜 및/또는 통신 상세설명일 수 있는 통신의 유형을 포함하는 개시된 통신에 관한 정보를 포함한다. 접촉 데이타베이스(105)는 있으면 어떤 주소가 주소 요청에 의해 전송된 요구사항을 만족하는지를 판정한다. 예를 들면, 접촉 데이타베이스(105)로 전송된 주소 요청에 비디오 요청 및 텍스트 채팅 요청이 모두 표시되었다면, 접촉데이타베이스(105)는 주소 요청의 비디오의 유형 및 텍스트 채팅 요구사항이 일치하는 가능한 액티비티(306)를 리턴할 것이다.
"액티비티"의 개념은 주소, 통신 유형, 선택적으로 통신 프로그램, 서비스 제공자 및/또는 프로토콜을 포함한다. 주소는 액티비티를 이용하여 통신하기 위해서 초대를 전송할 곳을 판정하기 위해 사용된다. 통신 유형은 수신단에서 개시할 통신 초대의 유형을 판정하는데 사용된다. 서비스 제공자가 포함되면, 이는 액티비티 초대가 초기에 어디로 전송될 지(예를 들면, 접촉 주소로 전달하기 위해 서비스 제공자에게 초대를 전송할 수 있음)에 관한 정보도 포함한다. 특정 통신 프로그램(또는 내장된 확장가능 통신 제어가 있는 프로그램)의 포함은 통신 장치(150)로 액티비티 초대를 보낼 곳의 표시를 더 준다. 통신 장치(150)가 특정 프로그램을 로딩하지 않았다면, 초대는 프로그램이 로딩되게 할 수도 있고, 최소한 로딩할 프로그램의 표시가 통신 장치(150)에 나타날 것이다. 예시적인 일실시예에서, 접촉 장치(150)는 이러한 초대를 처리하기 위한 프로그램을 포함한다. 이러한 프로그램에 대한 예시적인 하나의 흐름도가 도 5에 도시되어 있고 이하 설명된다. 통신 유형에 대한 통신 프로그램이 다수의 프로토콜에 대해 사용될 수 있다면, 액티비티에서 프로토콜을 지정하여, 올바른 프로토콜이 통신 초대에서 사용될 것이다.
예시적인 시나리오에서, 접촉을 위한 텍스트 채팅 액티비티가 UNIX "talk" 세션이면, UNIX 컴퓨터의 사용자 이름 및 호스트 이름은 UNIX talk 프로토콜이 사용자 이름 및 호스트 이름의 접촉인과 접촉하기 위해 필요하다는 것의 표시와 함께 리턴된다. 물론, 특정 접촉을 위해 하나 이상의 유형의 액티비티가 사용가능할 수있고, 따라서, 여러 유형의 주소 및 프로토콜이 리턴될 수 있다(306). 당업자는 많은 유형의 액티비티가 가능하고 본 발명과 호환가능하다는 것을 알 것이다. 또한, 본 발명의 일형태에 따르면, 액티비티의 정의는 클라이언트 장치에 의해 확장가능하다. 더 이상의 도시적인 예가 이하 설명으로부터 이해될 것이다.
다음, 클라이언트 장치(200)는 통신 장치(150)에서 접촉을 접촉하기 위해 사용하기 위한 주소 또는 주소들 및 프로토콜을 결정한다(308). 예를 들면, 접촉 또는 클라이언트 장치(200)의 사용자가 여러 유형이 사용가능한데도 특정 유형의 액티비티에 대한 선호(preference)를 표시하였다면, 이 선호는 주소와 함께 다시 통신될 수 있고 양호한 유형의 액티비티는 양자에 의해 사용가능하면 선택될 것이다. 판정 프로세스(310)가 클라이언트 장치(200) 상에서 배타적으로 수행되거나, 판정 프로세스(308)가 접촉이 현재 사용가능한 지를 판정하기 위해 다른 장치와의 상호작용을 포함할 수 있다. 예를 들면, 일부 인스턴트 메시지 텍스트 채팅 시스템(instant messaging text chat system)에서 사용자 및 접촉은 이들이 채팅에 사용가능한 때의 표시를 방송한다. 그러므로, 통신을 위해 사용할 주소의 결정은 접촉이 현재 온라인일 수 있는 주소를 판정하는 것을 더 포함할 수 있다.
주소, 프로토콜 및 가능하다면 특정 통신 프로그램이 결정된다면(308), 새로운 통신 요청 또는 요청들(다중 유형의 통신이 희망되면)이 생성된다(310). 도 3에 도시된 상호작용에서, 이를 통해 접촉과 실제 통신이 이루어질 중간 서비스를 구비하는 비피어 대 피어(non-peer-to-peer) 통신이 있다. 그러므로, 클라이언트 장치(200)는 대화 스토어(125)로 대화 상세설명을 제공한다. 대화 스토어(125)는클라이언트 장치(200)와 통신 장치(150)가 만나서 "대화"로 통신을 처리할 수 있는 가상의 만남 장소이다. 당업자는 대화 스토어(125)가 통신 서비스 제공자(120), 클라이언트 장치(200), 통신 장치(150) 또는 당업자에게 공지된 다른 장치 상에 장착될 수 있다는 것을 알 것이다. 본 발명에서 사용된 것처럼, 대화는 특성상 피어 대 피어가 아닌 환경인 통신을 호스트하는 중간 서비스를 불러내는 모든 통신이다. 대화 상세설명(312)이 대화 스토어(125)로 전송되면, 대화가 대화 스토어에서 생성된다(314). 그리고나서, 클라이언트 장치(200)로 대화 확인(316)이 리턴되어 생성된 대화를 연결하기 위한 상세설명이 주어진다.
다음, 통신 요청(318)은 접촉을 위해 미리 지정되어 있던 주소로 전송된다. 이 통신 요청(초대)(318)은 이 실시예에서 통신 주소에 해당하는 통신 장치(150)로 전송된다. 통신 장치(150)가 통신 요청을 수신하면, 이는 통신 요청의 액티비티를 인식한다(320). 초대가 받아들여지면, 통신 장치는 통신 요청의 지정된 액티비티에 해당하는 애플리케이션(322)을 시작한다. 예를 들면, 통신 요청(318)은 이름 또는 통신 요청에 지정된 액티비티의 일부와 같은 다른 표시(예, 프로토콜, 파일 유형, 통신 유형 등)를 통해 특정 애플리케이션을 지정할 수 있다. 대안적으로, 통신 장치(150)는 특정 액티비티를 처리하기 위한 디폴트 애플리케이션을 구비할 수 있다. 통신 장치(150) 상에서 애플리케이션이 시작된 후, 연결 상세설명(324)이 대화 스토어(125)로 다시 전송되어, 통신 장치(120)를 대화 스토어(125)에 연결한다. 또한, 통신 확인통지(326)는 클라이언트 장치(200)로 직접 다시 전송될 수 있다. 당업자는 대화 스토어(125)의 통신에 참여하는 것이 충분한 통신 확인통지가 될 수 있다는 것과 본 발명의 일부 실시예에서 추가적인 통신 확인통지(326)가 클라이언트 장치(200)로 다시 전송되지 않는다는 것을 알 것이다. 클라이언트 장치(200) 및 통신 장치(150) 모두가 대화 스토어(125)에 연결하기 위한 모든 연결 상세설명(connection details)을 갖게 되면, 대화 스토어(125)를 통해 서로의 통신을 진행할 수 있다(328).
당업자는 대화 스토어(125)가 당업계에 알려진 다수의 중간 통신 프로그램 중 임의의 것을 포함할 수 있다는 것을 알 것이다. 통신 스토어(125)가 비디오 회의 리플렉터, 텍스트 채팅 서버 애플리케이션, 오디오 채팅 서버 애플리케이션 등으로 주어질 수 있다.
또한, 도 3이 시스템(100)의 장치 사이의 상호작용의 단지 하나의 예시적인 세트를 나타낸다는 것을 당업자는 알 것이다. 그러므로, 장치 및 연결의 추가적인 구성이 다른 이러한 상호작용에 포함될 수 있다. 도 3의 상호작용은 본 발명의 이해를 돕기 위한 단지 도시적인 것을 의미하고 본 발명의 범주를 한정하는 것을 의미하지 않는다.
도 1, 2 및 3에 도시된 것처럼, 본 명세서에 설명된 통신 시스템(100)의 실시예는 통신을 개시하고 이를 처리하기 위해 사용되는 클라이언트 장치(200)를 포함한다. 본 발명의 일실시예에 따른 클라이언트 장치(200)로부터 개시된 통신에 대한 사용자 연결 루틴(400)을 도시하는 흐름도가 도 4에 도시되어 있다. 사용자 연결 루틴(400)은 새로운 통신이 개시될 때 블럭(401)에서 시작하고 블럭(405)으로 진행한다. 다음으로, 블럭(410)에서, 루틴(400)은 접촉인에 대한 가능한 통신 액티비티를 얻는다. 이 액티비티들은 사용자에 의해 수동으로 입력되거나 로컬 접촉 데이타베이스(105)로부터 얻어지거나, 회사 디렉토리 또는 탐색 엔진과 같은 원격 위치로부터 얻어질 수 있다.
본 발명의 예시적인 일실시예에서, 접촉 데이타베이스(105)는 이름, 우편 주소, 이메일 주소, 실시간 주소 등을 포함하지만, 실시간 주소와 액티비티 사이의 대응을 저장하지 않는다. 사용자는 액티비티와 통신하고 액티비티를 선택하기 위해 접촉을 선택하고, 클라이언트 장치(200)는 클라이언트 장치(200)로부터 사용가능한 특정 서비스 제공자를 통해 그 액티비티를 구현하기 위해 접촉 주소 중 어느 것을 사용할 지를 판단한다. 본 발명의 대안적 실시예에서, 접촉 기록은 액티비티를 위한 양호한 주소를 표시할 수 있다. 또다른 실시예에서, 양호한 주소는 다른 곳, 예를 들면 접촉 기록과 단지 느슨하게 링크된 "사용자당 태스크 선호 데이타베이스(per user task preference database)"에 모든 사용자가 공유하는 시스템적 선호로 저장되거나, 또는 사용자의 현재 설정(예, 셀 전화를 통한 온라인, 광대역 연결을 통한 온라인, 작업장에서의 온라인, 가정에서의 온라인 등)에 기초하여 그때그때 판정될 수 있다.
다음, 블럭(415)에서, 어느 주소 또는 주소들 및 애플리케이션이 접촉인과 통신하기 위해 사용되어야 하는지가 판정된다. 상술한 것처럼, 접촉인과 통신하기 위한 주소 또는 주소들을 판정하는 것은 다양한 방식으로 수행될 수 있다. 그러나, 본 발명의 예시적인 일실시예에서, 블럭(410)에서, 특정 접촉인을 위한 접촉 데이타베이스(105)로부터 사용가능한 모든 액티비티가 검색되고, 블럭(405)에서,접촉인과 관련된 통신 장치(150)와 통신하기 위한 적절한 주소 및 통신 유형 조합이 있는지 판정하기 위해 개시된 새로운 통신과 비교된다.
모든 관련된 통신 유형 및 다른 액티비티 정보와 함께 주소 또는 주소들이 판정되면, 블럭(420)에서 최소한 하나의 액티비티를 포함하는 새로운 통신 요청이 생성된다. 판단 블럭(425)에서, 모든 액티비티 또는 액티비티가 특성상 피어 대 피어(예, 중간 장치가 통신에 참여하거나 관리하지 않음)인지를 판정한다. 모든 액티비티가 피어 대 피어이면, 블럭(430)에서 통신 요청은 통신 장치(150)로 즉시 전송될 수 있다. 그러나, 판단 블럭(425)에서 모든 액티비티가 피어 대 피어는 아니라고 판정되면(예, 통신에 참여하거나 관리하는 최소한 하나의 중간 장치가 있음), 처리는 통신 요청이 블럭(430)에서 전송된 후 원격 대화가 시작되는 블럭(440)으로 진행한다. 다음, 판단 블럭(435)에서 요청이 확인통지 되었는지가 판정된다. 요청이 확인통지되지 않았으면, 루틴은 블럭(499)에서 종료된다. 그러나, 통신 요청의 최소한 하나의 액티비티가 확인통지되면, 처리는 통신이 장치 사이에서 시작하는 서브루틴 블럭(700)으로 진행한다. 통신 서브루틴(700)은 도 7에 도시되어 있고 이하 상세하게 설명된다. 통신 서브루틴(700)이 리턴하면, 루틴(400)은 블럭(499)에서 종료한다.
도 1 및 3에 도시된 것처럼, 본 명세서에 설명된 통신 시스템(100)의 실시예는 클라이언트 장치(200)와 통신하기 위해 접촉인이 사용하는 통신 장치(150)를 포함한다. 이미 언급한 것처럼, 통신 장치(150)는 클라이언트 장치(200)와 아주 유사한 컴퓨팅 장치일 수 있거나, 전화와 같은 훨씬 단순한 통신 장치일 수 있다.따라서, 도 5 및 6은 통신 장치(150)를 사용하는 접촉인의 견지에서 예시적인 통신 연결 루틴을 도시한다.
도 5는 컴퓨팅 애플리케이션을 실행할 수 있는 능력을 구비하고 클라이언트(200)와 유사한 요소를 포함하는 통신 장치(150)를 이용하는 예시적인 통신 연결 루틴(500)을 도시한다. 통신 연결 루틴(500)은 도래하는 통신 요청을 처리하기 위한 통신 장치(150) 상의 상주 프로세스로 실시될 수 있다. 이러한 상주 프로세스는 통신 장치(150)의 상태도 통신하여 접촉인과 통신하기 희망하는 사용자는 접촉인의 현재 상태를 알 수 있다.
접촉 통신 연결 루틴(500)은 블럭(501)에서 시작되고 새로운 통신 요청이 수신되는 블럭(505)으로 진행한다. 다음, 블럭(510)에서 통신 요청에 어떤 유형의 액티비티가 실시되었는지 판정한다. 요청된 액티비티가 블럭(510)에서 판정되면, 블럭(515)에서, 판정된 액티비티가 사용가능하여 통신 장치(150) 상의 프로그램이 통신 요청에 응답할 수 있는 지를 판정한다. 그렇다면, 블럭(520)에서, 통신 요청이 확인통지된다. 통신은 서브루틴 블럭(700)에서 시작된다. 서브루틴(700)은 도 7에 도시되어 있고 이하 설명된다. 통신 서브루틴(700)이 리턴되면, 루틴(500)은 블럭(599)에서 종료한다. 그러나, 판단 블럭(515)에서 통신 요청에 응답하여 통신하는데 사용가능한 액티비티가 없다고 판정되면, 블럭(525)에서 통신 실패 통지가 클라이언트 장치(200)로 다시 전송되고 블럭(599)에서 처리가 종료된다.
도 6은 접촉 통신 연결 루틴도 도시한다. 그러나, 도 6에 도시된 접촉 통신 연결 루틴(600)은 통신 요청에 응답하여 컴퓨팅 루틴을 실행할 수 없는 전화, 무선, 호출기 등과 같은 동일한 통신 장치(150)에 대한 것이다. 따라서, 루틴(600)은 블럭(601)에서 시작하고 새로운 통신 요청이 수신되는 블럭(605)으로 진행한다. 다음, 판단 블럭(610)에서 통신 요청이 인식되는지가 판정된다. 그렇다면, 블럭(615)에서 통신이 연결된다. 그리고나서, 블럭(620)에서 통신 요청으로부터 인식된 통신 유형을 이용하여 통신이 시작된다. 통신이 블럭(620)에서 종료된 후, 루틴(600)은 블럭(699)에서 종료한다. 판단 블럭(610)에서 인식된 통신 유형이 없으면 다시 루틴(600)은 블럭(699)에서 종료된다.
당업자는 클라이언트 장치(200) 상의 확장가능 통신 제어를 이용하여 확장가능 통신 제어 내에서 다수의 다른 유형의 통신을 제공하는 것이 가능하다는 것을 알 것이다. 이 통신 제어는 클라이언트 장치(200)[및 보다 발전된 통신 장치(150)]의 다른 컴퓨팅 프로그램에 포함될 수 있다. 제어는 실행 시에 제어는 다른 장치와 접촉할 때 사용할 통신 유형에 대해 제어되도록 프로그램이 개발될 때 포함될 수 있다. 이러한 플레이스홀더 설계는 컴퓨터 프로그램을 보다 유연하게 하고 통신 제어를 희망하는 대로 업그레이드하고 개선될 수 있게 한다. 특정 통신 장치(150)가 통신이 희망될 수 있는 장치로서 개발되므로, 통신 연결 루틴(400) 및 접촉 연결 루틴(500 및/또는 600) 모두에 의해 인식될 수 있도록 새로운 프로토콜을 정의하고 통신 요청을 맞추는 것이 가능하다. 예를 들면, 통신 장치(150) 상의 오디오 채팅 프로그램을 위해 디지탈 신호를 전송하도록 적응된 오디오 채팅 통신 제어는 전화 통신 장치(150)에 의해 제공된 신호가 클라이언트 장치(200) 상의 적응된 통신 제어에 의해 인식될 수 있도록(예, 링 톤, 통화중 신호, 행업, 터치 톤,다이얼 톤 등) 전화 통신 장치(150)로 전화 오디오 신호를 전송하도록 대신 적응될 수 있다.
상기한 것처럼, 도 7은 예시적인 통신 서브루틴(700)을 도시한다. 예시적인 통신 서브루틴(700)은 블럭(701)에서 시작하고 통신 연결의 일부인 모든 애플리케이션(통신 유형에 대해 지정된 애플리케이션 또는 디폴트 애플리케이션)을 통해 반복하는 루프 블럭(705)으로 진행한다. 그리고, 각각의 애플리케이션에 대해 착수되지 않았다면, 블럭(710)에서 애플리케이션이 착수된다. 다음, 루프 블럭(715)에서, 현재 애플리케이션이 이용하는 각각의 통신 유형에 대해, 연결이 피어 대 피어 통신인지를 판정한다. 그렇다면, 블럭(725)에서 애플리케이션은 피어 장치[예, 클라이언트 장치(200) 또는 통신 장치(150)]로 연결된다. 판단 블럭(720)에서 통신 유형이 피어 대 피어가 아니라고 판정되면, 애플리케이션이 대화 스토어(125)에서 원격 대화에 연결되는 블럭(745)으로 진행한다.
블럭(745 또는 725) 후, 현재 애플리케이션에 대해 최종 통신 유형인지를 판단 블럭(730)에서 판정한다. 최종 통신 유형이 아니었다고 판단 블럭(730)에서 판정되면, 다시 루프 블럭(715)으로 돌아간다. 그러나, 판단 블럭(730)에서 현재 애플리케이션에 대해 최종 통신 유형이었다고 판정되면, 이것이 최종 애플리케이션이었는지를 판정하는 판단 블럭(735)으로 진행한다. 그렇지 않다면, 다음 애플리케이션이 현재 애플리케이션이 되는 루프 블럭(705)으로 다시 돌아간다. 그러나, 판단 블럭(735)에서 최종 애플리케이션이라고 판정되면, 통신 유형과 관련된 모든 애플리케이션을 이용하는 통신의 연결된 유형 상에서 통신이 진행하는 블럭(740)으로진행한다. 이와 같이 통신 장치 및/또는 클라이언트 장치에 의해 통신이 종료되면, 서브루틴(700)은 블럭(799)에서 통화 루틴으로 리턴한다.
도 8은 애플리케이션(800, 850)에 내장된 통신 제어(810 및 860) 사이에 텍스트 채팅 및 비디오 통신이 있는 2가지 애플리케이션(800, 850)의 예시적인 도면을 도시한다. 통신 제어(810)의 텍스트 채팅(815)은 비피어 대 피어 텍스트 채팅이고 따라서 대화(830)에 연결한다. 이에 따라, 애플리케이션(850)의 통신 제어(860)는 텍스트 채팅(815)을 하는 것과 동일한 대화(830)와도 연결하는 텍스트 채팅(865)을 구비한다. 따라서, 애플리케이션(800) 및 애플리케이션(850)은 대화(830)를 이용하여 텍스트 채팅을 통해 통신할 수 있다. 상기한 것처럼, 대화(830)는 클라이언트 장치(200), 통신 장치(150), 통시 서비스 제공자(120) 또는 통신망(100)과 통신하는 다른 장치 상에 대화 스토어(125)에 내장될 수 있다. 또한, 애플리케이션(800) 및 애플리케이션(850)은 피어 대 피어 연결인 비디오 연결(840)을 포함한다. 그러므로, 통신 제어(810) 및 통신 제어(860)는 중간 "대화"가 없는 비디오 통신(840)에 대한 직접 피어 대 피어 연결을 갖는다. 당업자는 도 8이 본 발명에 따른 애플리케이션 및 통신의 단지 예시적인 실시예를 도시한다는 것을 알 것이다. 도 8은 애플리케이션 및/또는 통신의 가능한 유형의 모든 것을 제시하는 것을 절대 의미하지 않는다.
본 발명에 따른 통신 제어와의 보다 복잡한 상호작용이 가능하다. 예를 들면, 본 발명에 따라 통신 제어를 이용하도록 적응된 애플리케이션 사이에서 이동되는 통신 제어를 이용하여 도출하는 통신을 유지하는 것이 가능하다. 일례는 텍스트 채팅을 문서 작성 애플리케이션과 분리하여 이를 웹 브라우저 애플리케이션으로 이동시키는 것일 수 있다. 이는 사용자로 하여금 불필요하게 애플리케이션을 열어놓게 하지 않고서 통신을 유지할 수 있게 한다. 또한, 사용자가 선택한 애플리케이션에 활성 통신 제어를 구비하여, 보다 좋은 협력이 가능하다. 통신하기 위해 애플리케이션 사이를 왔다갔다 할 필요가 더 이상 없다.
도 10은 하나의 애플리케이션으로부터 통신 제어를 분리하고, 셸 애플리케이션(900)과 같은 디폴트 애플리케이션 내에서 자신의 것에서 이를 이용하거나 목표 애플리케이션에 분리된 통신 제어를 재부착하는 분리 루틴(1000)을 도시한다. 분리 루틴(1000)은 블럭(1001)에서 시작하고 현재 액티비티 또는 활성화된 액티비티를 포함하는 통신 제어를 분리하기 위한 표시가 수신되는 블럭(1005)으로 진행한다. 분리하기 위한 하나의 예시적인 표시는 사용자가 애플리케이션의 창 밖으로 제어를 "드래그"할 때(제어 위에 클릭하고 이를 이동시킴)이다. 당업자는 디폴트에 대한 다른 표시가 사용될 수 있다는 것을 알 것이다. 다음, 블럭(1010)에서 현재 액티비티 또는 액티비티들에 대한 디폴트 애플리케이션이 판정되다는 것이다. 다음, 블럭(1015)에서 현재 통신 제어는 그 이전 애플리케이션으로부터 물리적으로 분리된다. 도 9는 본 발명에 따른 통신 제어를 포함하기 위한 디폴트 셸 애플리케이션의 도시적인 실시예를 도시한다. 도 9에 도시된 도시적인 쉘(900)은 셸 통신 프로그램을 형성하기 위한 요소로서 채팅 통신 제어(910)를 포함한다. 도 11은 셸 애플리케이션(900)과 같은 디폴트 애프리케이션(1120)으로부터 분리된 통신 제어(1110)가 있는 예시적인 애플리케이션(1100)을 도시한다. 분리 루틴(1000)은통신 제어가 셸 애플리케이션(900)과 같은 디폴트 애플리케이션에 부착되는 블럭(1020)으로 진행한다. 다음, 판단 블럭(1025)에서 목표 애플리케이션 또는 애플리케이션이 지정되었는지를 판정한다. 판단 블럭(1025)에서 목표 애플리케이션 또는 애플리케이션들이 지정되었다고 판정되면, 현재 통신 또는 통신들이 목표 애플리케이션 또는 애플리케이션들에 부착(드래그)되는 블럭(103)으로 진행한다. 당업자는 혼재된 통신 유형이 있을 수 있고 하나 이상의 통신 유형이 목표 애플리케이션에 부착될 수 있고 하나 이상이 디폴트 애플리케이션에 부착된 채 있을 수 있다는 것을 알 것이다. 예를 들면, 이는 부착된 텍스트 채팅 창이 아닌 별개 연결되는 유동적인 비디오 창을 허용한다. 목표 애플리케이션이 판단 블럭(1025)에서 지정된 것으로 발견되던지 아니던지 어떠한 경우에도, 통신은 상술된 서브루틴(700)에서 계속된다. 분리 서브루틴은 통신 서브루틴(700)이 리턴하는 블럭(1099)에서 종료한다.
서브루틴(700)의 통신은 다수의 다른 방식으로 수행될 수 있다는 것을 당업자는 알 것이다. 예를 들면, 기존 애플리케이션으로부터 분리하고 다른 애플리케이션에 부착할 때 통신 제어는 현재 연결을 유지하거나 간단하게 현재 애플리케이션에 재연결할 방법을 기억할 수 있다. 이는 통신 유형(예를 들면, 일부 통신 유형은 끊어짐없는 절단 및 재연결이 가능하지 않을 수 있다), 다른 유형의 클라이언트 장치(200) 및/또는 통신 장치(150)에 따라 변하거나, 그 통신 제어에 관해 사용자가 구성할 수 있는 선호로부터 간단히 변할 수 있다.
본 발명의 도시적인 실시예가 도시되고 설명되었지만, 본 발명의 사상 및 범주를 벗어남없이 다양한 변경이 이루어질 수 있다는 것을 알 것이다.
본 발명에 따르면, 보다 유연하고 확장가능한 통신 환경을 제공할 수 있다. 즉, 동적으로 프로토콜 및/또는 통신 유형을 정의하는 능력을 새로운 통신 환경에서 구비할 수 있다.

Claims (42)

  1. 컴퓨팅 장치와 원격 통신 장치 사이에서 통신하기 위해 확장가능 통신 제어를 이용하는 방법에 있어서,
    접촉(contact)의 정보로부터 확장가능 통신 액티비티(extensible communication activity)를 판정하는 단계와,
    상기 확장가능 통신 제어를 상기 확장가능 통신 액티비티의 통신 주소로의 통신 요청을 생성하도록 적응시키는 단계와,
    상기 통신 확장가능 통신 액티비티에 적합한 통신 연결을 상기 원격 통신 장치에 대해 설정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 확장가능 통신 제어는 운영 체계에 의해 제공되는 방법.
  3. 제2항에 있어서, 상기 확장가능 통신 제어를 갱신하여 상기 확장가능 통신 제어를 이용하도록 적응된 임의의 컴퓨팅 프로그램을 갱신하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 컴퓨팅 프로그램은 상기 확장가능 통신 제어를 위한쉘(shell) 프로그램인 방법.
  5. 제1항에 있어서, 상기 통신 연결은 텍스트 채팅(text chat), 인스턴트 메시지(instant messages), 비디오 스트리밍(video streaming), 오디오 스트림(audio streams)을 포함하는 그룹으로부터 선택되는 방법.
  6. 제1항에 있어서, 상기 통신 연결은 컴퓨팅 망상에 있는 방법.
  7. 제1항에 있어서, 상기 통신 연결은 전화 망상에 있는 방법.
  8. 제1항에 있어서, 상기 원격 통신 장치는 넌컴퓨팅 장치인 방법.
  9. 제1항에 있어서, 상기 통신 연결을 설정하는 단계는 대화를 생성하는 단계를 더 포함하고, 상기 원격 통신 장치와 상기 컴퓨팅 장치는 상기 대화를 통해 연결을 설정하는 방법.
  10. 제1항에 있어서, 상기 컴퓨팅 프로그램은 상기 확장가능 통신 제어 및 확장가능 통신 액티비티를 상기 컴퓨팅 프로그램에 의해 사용하도록 지정하는 단계를 더 포함하는 방법.
  11. 제10항에 있어서, 상기 컴퓨팅 프로그램은 확장가능 마크업 언어로 확장가능 통신 액티비티를 지정하는 방법.
  12. 제1항에 있어서, 상기 컴퓨팅 프로그램으로부터 상기 확장가능 통신 제어를 분리하는 단계를 더 포함하는 방법.
  13. 제12항에 있어서, 분리된 상기 확장가능 통신 제어를 상기 확장가능 통신 제어를 이용하도록 적응된 제2 컴퓨팅 프로그램에 부착하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서, 상기 확장가능 통신 제어를 분리하고 이를 상기 제2 컴퓨팅 프로그램에 부착하는 단계는 상기 설정된 통신 연결을 유지하는 방법.
  15. 제1항에 있어서, 상기 통신 요청은 상기 확장가능 통신 액티비티, 발신 식별자(origination identifier) 및 리턴 식별자(return identifier)를 포함하는 방법.
  16. 제15항에 있어서, 상기 통신 액티비티는 상기 통신 요청에 응답하기 위한 특수 통신 프로그램의 표시를 더 포함하는 방법.
  17. 제15항에 있어서, 상기 통신 요청은 복수의 통신 액티비티를 포함하고, 각각의 액티비티는 통신 유형을 지정하고, 상기 통신 연결의 설정 단계는 각각의 지정된 통신 액티비티에 해당하는 복수의 통신 연결을 설정하는 단계를 포함하는 방법.
  18. 컴퓨팅 장치와 원격 통신 장치 사이에서 통신하기 위해 확장가능 통신 제어를 이용하기 위한 컴퓨터 실행가능 명령을 구비하는 컴퓨터 판독가능 매체에 있어서, 상기 컴퓨터 실행가능 명령은
    접촉 정보로부터 확장가능 통신 액티비티를 판정하는 단계와,
    상기 확장가능 통신 제어를 상기 확장가능 통신 액티비티의 통신 주소로의 통신 요청을 생성하도록 적응시키는 단계와,
    상기 통신 확장가능 통신 액티비티에 적합한 통신 연결을 상기 원격 통신 장치에 대해 설정하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  19. 제18항에 있어서, 상기 확장가능 통신 제어는 운영 체계에 의해 제공되는 컴퓨터 판독가능 매체.
  20. 제19항에 있어서, 상기 컴퓨터 실행가능 명령은 상기 확장가능 통신 제어를 갱신하여 상기 확장가능 통신 제어를 이용하도록 적응된 임의의 컴퓨팅 프로그램을 갱신하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  21. 제18항에 있어서, 상기 통신 연결은 텍스트 채팅, 인스턴트 메시지, 비디오 스트리밍, 오디오 스트림을 포함하는 그룹으로부터 선택되는 컴퓨터 판독가능 매체.
  22. 제18항에 있어서, 상기 통신 연결을 설정하는 단계는 대화를 생성하는 단계를 더 포함하고, 상기 원격 통신 장치와 상기 컴퓨팅 장치는 상기 대화를 통해 연결을 설정하는 컴퓨터 판독가능 매체.
  23. 제18항에 있어서, 상기 컴퓨팅 프로그램은 상기 확장가능 통신 제어 및 확장가능 통신 액티비티를 상기 컴퓨팅 프로그램에 의해 사용하도록 지정하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  24. 제23항에 있어서, 상기 컴퓨팅 프로그램은 확장가능 마크업 언어로 확장가능 통신 액티비티를 지정하는 컴퓨터 판독가능 매체.
  25. 제18항에 있어서, 상기 통신 요청은 상기 확장가능 통신 액티비티, 발신 식별자 및 리턴 식별자를 포함하는 컴퓨터 판독가능 매체.
  26. 제25항에 있어서, 상기 통신 액티비티는 상기 통신 요청에 응답하기 위한 특수 통신 프로그램의 표시를 더 포함하는 컴퓨터 판독가능 매체.
  27. 제25항에 있어서, 상기 통신 요청은 복수의 통신 액티비티를 포함하고, 각각의 액티비티는 통신 유형을 지정하고, 상기 통신 연결의 설정 단계는 각각의 지정된 통신 액티비티에 해당하는 복수의 통신 연결을 설정하는 단계를 포함하는 컴퓨터 판독가능 매체.
  28. 원격 통신 장치와 통신하기 위해 확장가능 통신 제어를 이용하기 위한 컴퓨터 실행가능 명령을 구비한 메모리 및 프로세서를 갖는 컴퓨팅 장치에 있어서, 상기 컴퓨터 실행가능 명령은
    접촉 정보로부터 확장가능 통신 액티비티를 판정하는 단계와,
    상기 확장가능 통신 제어를 상기 확장가능 통신 액티비티의 통신 주소로의 통신 요청을 생성하도록 적응시키는 단계와,
    상기 통신 확장가능 통신 액티비티에 적합한 통신 연결을 상기 원격 통신 장치에 대해 설정하는 단계를 포함하는 컴퓨팅 장치.
  29. 제28항에 있어서, 상기 확장가능 통신 제어는 운영 체계에 의해 제공되는 컴퓨팅 장치.
  30. 제29항에 있어서, 상기 컴퓨터 실행가능 명령은 상기 확장가능 통신 제어를 갱신하여 상기 확장가능 통신 제어를 이용하도록 적응된 임의의 컴퓨팅 프로그램을갱신하는 단계를 더 포함하는 컴퓨팅 장치.
  31. 제28항에 있어서, 상기 통신 연결은 텍스트 채팅, 인스턴트 메시지, 비디오 스트리밍, 오디오 스트림을 포함하는 그룹으로부터 선택되는 컴퓨팅 장치.
  32. 제28항에 있어서, 상기 통신 연결을 설정하는 단계는 대화를 생성하는 단계를 더 포함하고, 상기 원격 통신 장치와 상기 컴퓨팅 장치는 상기 대화를 통해 연결을 설정하는 컴퓨팅 장치.
  33. 제28항에 있어서, 상기 컴퓨팅 프로그램은 상기 확장가능 통신 제어 및 확장가능 통신 액티비티를 상기 컴퓨팅 프로그램에 의해 사용하도록 지정하는 단계를 더 포함하는 컴퓨팅 장치.
  34. 제33항에 있어서, 상기 컴퓨팅 프로그램은 확장가능 마크업 언어로 확장가능 통신 액티비티를 지정하는 컴퓨팅 장치.
  35. 제28항에 있어서, 상기 통신 요청은 상기 확장가능 통신 액티비티, 발신 식별자 및 리턴 식별자를 포함하는 컴퓨팅 장치.
  36. 제35항에 있어서, 상기 통신 액티비티는 상기 통신 요청에 응답하기 위한 특수 통신 프로그램의 표시를 더 포함하는 컴퓨팅 장치.
  37. 제35항에 있어서, 상기 통신 요청은 복수의 통신 액티비티를 포함하고, 각각의 액티비티는 통신 유형을 지정하고, 통신 연결의 설정 단계는 각각의 지정된 통신 액티비티에 해당하는 복수의 통신 연결을 설정하는 단계를 포함하는 컴퓨팅 장치.
  38. 컴퓨팅 장치로부터 통신 장치로의 확장가능 통신 요청에 응답하는 방법에 있어서,
    수신된 통신 요청으로부터 확장가능 통신 액티비티를 판정하는 단계와,
    통신 프로그램이 상기 확장가능 통신 액티비티에 응답하는지를 판정하는 단계와,
    상기 통신 요청에 응답하여 상기 통신 프로그램을 활성화하는 단계
    를 포함하는 방법.
  39. 제20항에 있어서, 상기 통신 요청은 복수의 확장가능 통신 액티비티를 포함하고, 상기 복수의 확장가능 통신 액티비티에 응답하여 복수의 통신 프로그램을 활성화시키는 단계를 더 포함하는 방법.
  40. 제20항에 있어서, 상기 통신 요청은 복수의 확장가능 통신 액티비티를 포함하고, 상기 복수의 확장가능 통신 액티비티에 응답하여 단지 하나의 상기 통신 프로그램을 활성화시키는 단계를 더 포함하는 방법.
  41. 컴퓨팅 장치로부터 통신 장치로의 확장가능 통신 요청에 응답하기 위한 컴퓨터 실행가능 명령을 구비하는 컴퓨터 판독가능 매체에 있어서, 상기 컴퓨터 실행가능 명령은
    수신된 통신 요청으로부터 확장가능 통신 액티비티를 판정하는 단계와,
    통신 프로그램이 상기 확장가능 통신 액티비티에 응답하는지를 판정하는 단계와,
    상기 통신 요청에 응답하여 상기 통신 프로그램을 활성화시키는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  42. 상기 메모리는 컴퓨팅 장치로부터 통신 장치로의 확장가능 통신 요청에 응답하기 위한 컴퓨터 실행가능 명령을 구비한 메모리 및 프로세서를 구비하는 컴퓨팅 장치에 있어서, 상기 컴퓨터 실행가능 명령은
    수신된 통신 요청으로부터 확장가능 통신 액티비티를 판정하는 단계와,
    통신 프로그램이 상기 확장가능 통신 액티비티에 응답하는지를 판정하는 단계와,
    상기 통신 요청에 응답하여 상기 통신 프로그램을 활성화시키는 단계
    를 포함하는 컴퓨팅 장치.
KR1020030019249A 2003-01-15 2003-03-27 확장가능 통신 제어 KR20040065961A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/346,891 2003-01-15
US10/346,891 US7577705B2 (en) 2003-01-15 2003-01-15 Extensible communication controls

Publications (1)

Publication Number Publication Date
KR20040065961A true KR20040065961A (ko) 2004-07-23

Family

ID=23361452

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030019249A KR20040065961A (ko) 2003-01-15 2003-03-27 확장가능 통신 제어

Country Status (13)

Country Link
US (1) US7577705B2 (ko)
EP (1) EP1439681A3 (ko)
JP (1) JP2004220549A (ko)
KR (1) KR20040065961A (ko)
CN (1) CN1518290A (ko)
AU (1) AU2003202437A1 (ko)
BR (1) BR0300982A (ko)
CA (1) CA2422385A1 (ko)
MX (1) MXPA03002792A (ko)
NO (1) NO20031214L (ko)
RU (1) RU2313188C2 (ko)
TW (1) TWI271058B (ko)
ZA (1) ZA200302349B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001061544A1 (en) 2000-02-16 2001-08-23 Bea Systems, Inc. Open market collaboration system for enterprise wide electronic commerce
US7409427B2 (en) * 2003-02-25 2008-08-05 Bea Systems, Inc. Systems and methods for lightweight conversations
CN1315307C (zh) * 2004-08-05 2007-05-09 北京航空航天大学 一种利用Mbus通讯中间件来进行传输的方法
US20070113188A1 (en) * 2005-11-17 2007-05-17 Bales Christopher E System and method for providing dynamic content in a communities framework
US20070112781A1 (en) * 2005-11-17 2007-05-17 Mcmullen Cindy System and method for providing search controls in a communities framework
US8255818B2 (en) 2005-11-17 2012-08-28 Oracle International Corporation System and method for providing drag and drop functionality in a communities framework
US8185643B2 (en) 2005-11-17 2012-05-22 Oracle International Corporation System and method for providing security in a communities framework
US7590687B2 (en) 2005-11-17 2009-09-15 Bea Systems, Inc. System and method for providing notifications in a communities framework
US8078597B2 (en) 2005-11-17 2011-12-13 Oracle International Corporation System and method for providing extensible controls in a communities framework
US8046696B2 (en) 2005-11-17 2011-10-25 Oracle International Corporation System and method for providing active menus in a communities framework
US7680927B2 (en) 2005-11-17 2010-03-16 Bea Systems, Inc. System and method for providing testing for a communities framework
US7493329B2 (en) 2005-11-17 2009-02-17 Bea Systems, Inc. System and method for providing generic controls in a communities framework
US7805459B2 (en) * 2005-11-17 2010-09-28 Bea Systems, Inc. Extensible controls for a content data repository
DE602007001884D1 (de) * 2007-06-18 2009-09-17 Alcatel Lucent Steuerung eines Telekommunikationsdienstsystems mittels Peer-to-peer-Techniken
KR20110073086A (ko) * 2009-12-23 2011-06-29 두산인프라코어 주식회사 건설장비간 통신 지원 시스템 및 방법
US9961608B2 (en) * 2013-08-19 2018-05-01 Microsoft Technology Licensing, Llc Seamless call transitions
US9681095B2 (en) 2013-08-19 2017-06-13 Microsoft Technology Licensing, Llc Seamless call transitions with pre-escalation participation confirmation
US9888210B2 (en) 2013-08-19 2018-02-06 Microsoft Technology Licensing, Llc Seamless call transitions with pinpoint call escalation
CN105430319A (zh) * 2015-11-30 2016-03-23 小米科技有限责任公司 视频通信结束方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1031540C (zh) 1990-09-19 1996-04-10 菲利浦光灯制造公司 记录载体、主数据和控制文件的记录方法和装置及读出装置
DE69624168T2 (de) 1995-05-26 2003-05-28 Intel Corp Erweiterbares System zur Verwaltung von Kommunikationsverfahren für ein Rechnersystem
US6185184B1 (en) * 1995-09-25 2001-02-06 Netspeak Corporation Directory server for providing dynamically assigned network protocol addresses
US6275490B1 (en) * 1996-08-21 2001-08-14 Netspeak Corporation Method and apparatus for establishing communications from browser application
US6430604B1 (en) 1999-08-03 2002-08-06 International Business Machines Corporation Technique for enabling messaging systems to use alternative message delivery mechanisms
US6941345B1 (en) * 1999-12-03 2005-09-06 Nortel Networks Limited Real-time, text-based messaging between devices in plural communities
EP1139631A1 (en) 2000-03-31 2001-10-04 BRITISH TELECOMMUNICATIONS public limited company Method of initiating a data transfer from a server to a client
US6917612B2 (en) * 2000-09-01 2005-07-12 Telefonaktiebolaged L M Ericsson System and method for address resolution in internet protocol (IP)-based networks
US6988132B2 (en) 2001-03-15 2006-01-17 Microsoft Corporation System and method for identifying and establishing preferred modalities or channels for communications based on participants' preferences and contexts
US6874126B1 (en) * 2001-11-30 2005-03-29 View Space Technologies Method and apparatus for controlling content display by the cursor motion
US7127685B2 (en) * 2002-04-30 2006-10-24 America Online, Inc. Instant messaging interface having a tear-off element
US7676579B2 (en) * 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
US7363345B2 (en) * 2002-08-27 2008-04-22 Aol Llc, A Delaware Limited Liability Company Electronic notification delivery mechanism selection based on recipient presence information and notification content
US9100218B2 (en) * 2002-11-18 2015-08-04 Aol Inc. Enhanced buddy list interface
US7059159B2 (en) * 2003-02-06 2006-06-13 Mi-Jack Products, Inc. Security system for cargo trailers
US20050055405A1 (en) * 2003-09-04 2005-03-10 International Business Machines Corporation Managing status information for instant messaging users

Also Published As

Publication number Publication date
EP1439681A3 (en) 2005-01-26
BR0300982A (pt) 2004-11-03
TW200412754A (en) 2004-07-16
JP2004220549A (ja) 2004-08-05
AU2003202437A1 (en) 2004-08-05
CA2422385A1 (en) 2004-07-15
NO20031214D0 (no) 2003-03-17
MXPA03002792A (es) 2005-02-14
TWI271058B (en) 2007-01-11
ZA200302349B (en) 2003-10-06
CN1518290A (zh) 2004-08-04
NO20031214L (no) 2004-07-16
RU2313188C2 (ru) 2007-12-20
US20040136511A1 (en) 2004-07-15
EP1439681A2 (en) 2004-07-21
US7577705B2 (en) 2009-08-18

Similar Documents

Publication Publication Date Title
KR20040065961A (ko) 확장가능 통신 제어
EP1574029B1 (en) Dynamic user state dependent processing
JP4199670B2 (ja) 収束通信サービスのための通信アプリケーション・サーバ
US6785380B2 (en) Network-centric self-administered call center with intelligent mobile agent terminals
US7653715B2 (en) Method and system for supporting the communication of presence information regarding one or more telephony devices
EP1977574B1 (en) Content and service delivery in telecommunication networks
US20060187931A1 (en) Communication system and method for providing information on interface connecting network components
US8180933B2 (en) Dynamic call handling from multiple attached devices wherein devices advertize its capabililes before facilitating call through appropriate device
JP4949403B2 (ja) テレフォニーシステム及びテレフォニー方法上のモバイルエンタープライズアプリケーション
US7870418B2 (en) Enhanced presence routing and roster fidelity by proactive crashed endpoint detection
US20070206566A1 (en) Adaptive phonebook database supporting communications between multiple users and devices
US8391456B2 (en) Dynamic configuration of call controls for communication peripherals
JP2006237815A (ja) 通信セッション切替方法およびシステム
JP2006094488A (ja) 経路情報に関するストレージ要件の軽減
US20080117897A1 (en) External data access information in a voip conversation
US20140032774A1 (en) Client-emulating Gateways for Communication Network Migration
JP2007207013A (ja) 情報処理装置、情報共有プログラム
EP1817682B1 (en) Providing a proxy server feature at an endpoint
KR100442352B1 (ko) 음성 데이터 통합 기술 기반의 인터넷 폰 시스템 및 그의정보 공유 방법
Engelstad et al. Middleware supporting adaptive services in on-demand ad hoc networks
Saternus et al. A middleware for context-aware applications and services based on messenger protocols
US20120079553A1 (en) Methods and Arrangements in a Telecommunication Network
Ahmad Distributing a SIP servlet engine for standalone mobile ad hoc networks
Thomas Distributed Multimedia Processing Using Opportunistic Resources
JP2007124450A (ja) ソフトフォン機能を備える通信端末及び通信プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application