KR20170036735A - 통신 종단점들 간의 가상 트랜잭션 - Google Patents

통신 종단점들 간의 가상 트랜잭션 Download PDF

Info

Publication number
KR20170036735A
KR20170036735A KR1020177004862A KR20177004862A KR20170036735A KR 20170036735 A KR20170036735 A KR 20170036735A KR 1020177004862 A KR1020177004862 A KR 1020177004862A KR 20177004862 A KR20177004862 A KR 20177004862A KR 20170036735 A KR20170036735 A KR 20170036735A
Authority
KR
South Korea
Prior art keywords
communication
transaction
synthetic transaction
client
client device
Prior art date
Application number
KR1020177004862A
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 KR20170036735A publication Critical patent/KR20170036735A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/06Testing, supervising or monitoring using simulated traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • H04L67/38
    • 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/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

통신 종단점들 간의 가상 트랜잭션을 위한 기술이 설명된다. 다양한 실시예들에 따르면, 가상 트랜잭션은 상이한 통신 종단점들 간의 통신 세션의 시뮬레이션을 나타낸다. 적어도 일부 실시예들에 따르면, 가상 트랜잭션의 성능 속성은 가상 트랜잭션의 다양한 단계들 동안 기록될 수 있다. 성능 속성에 기초하여, 오류를 완화시키고 통신 세션 성능을 최적화하기 위해 다양한 조치가 취해질 수 있다.

Description

통신 종단점들 간의 가상 트랜잭션{SYNTHETIC TRANSACTIONS BETWEEN COMMUNICATION ENDPOINTS}
현대의 통신 시스템은 상이한 서비스와 다양한 통신 양상의 통합을 비롯한 다수의 능력을 갖는다. 예를 들어, 인스턴트 메시징, 음성/비디오 통신, 데이터/애플리케이션 공유, 화이트 보딩(white-boarding), 및 기타 통신 형태가 가입자의 존재 및 가용성 정보와 결합될 수 있다. 이러한 시스템은 다양한 상태 카테고리, 대체 연락처, 캘린더 정보, 및 비교 가능한 기능들에 대한 지시를 호출자에게 제공하는 것과 같은 향상된 능력을 가입자에게 제공할 수 있다. 또한, 사용자가 다양한 타입의 문서 및 컨텐츠 작성 및 수정에 있어서 공유 및 협업을 가능하게 하는 협업 시스템이 상이한 종류의 통신 및 협업 능력을 제공하는 멀티 모드 통신 시스템과 통합될 수 있다. 이러한 통합 시스템은 때때로 통합 커뮤니케이션(Unified Communication; UC) 시스템으로서 언급된다.
UC 시스템은 통신의 융통성을 증가시키지만, 또한 다수의 구현 과제를 제시한다. 예를 들어, UC 시스템은 통상적으로 다양한 통신을 라우팅하기 위해 다수의 상호 연결된 네트워크들을 사용한다. 상이한 네트워크들은 상이한 엔티티에 의해 관리될 수 있으므로, 독립적으로 관리되는 네트워크들 간에 라우팅되는 통신의 통신 품질을 유지하는데 있어서 과제가 발생한다. 또한, UC는 통상적으로 모바일 디바이스, 예를 들어, 태블릿, 스마트 폰, 랩톱 등에 로딩될 수 있는 소프트웨어를 통해 구현된다. 따라서, UC&C 통신 트래픽을 관리하는 기술은 통상적으로 연결 시나리오를 변경하는 것을 수용하기 위해 유동적 및 동적이어야 한다.
이 요약은 아래의 상세한 설명에서 더욱 기술되는 개념들의 선택을 간략화된 형태로 소개하기 위해서 제공된다. 이 요약은 주장되는 대상의 중요 특징 또는 필수 특징을 식별하기 위한 것도 아니고, 주장되는 대상의 범위를 결정하는 것을 돕기 위해 사용되는 것도 아니다.
통신 종단점들 간의 가상 트랜잭션(synthetic transaction)을 위한 기술이 설명된다. 다양한 실시예들에 따르면, 가상 트랜잭션은 상이한 통신 종단점들 간의 통신 세션의 시뮬레이션을 나타낸다. 적어도 일부 실시예들에 따르면, 가상 트랜잭션의 성능 속성은 가상 트랜잭션의 다양한 단계들 동안 기록될 수 있다. 성능 속성에 기초하여, 오류를 완화시키고 통신 세션 성능을 최적화하기 위해 다양한 조치가 취해질 수 있다.
상세한 설명은 첨부 도면들을 참조하여 설명된다. 도면에서, 참조 번호의 제일 왼쪽의 숫자(들)은 참조 번호가 처음 나타나는 도면을 식별한다. 설명 및 도면의 상이한 경우에서 동일한 참조 번호의 이용은 유사하거나 동일한 항목을 나타낼 수 있다.
도 1은 본 명세서에 논의된 기술들을 사용하도록 동작 가능한 예시적인 구현예에서의 환경의 예시이다.
도 2는 하나 이상의 실시예들에 따라 가상 트랜잭션을 수행하기 위한 예시적인 구현 시나리오를 도시한다.
도 3은 하나 이상의 실시예들에 따라 다수의 상이한 디바이스들 간의 가상 트랜잭션을 구현하기 위한 예시적인 구현 시나리오를 도시한다.
도 4는 하나 이상의 실시예들에 따라 가상 트랜잭션의 일부로서 관측되는 행동 및 성능 속성을 보고하기 위한 예시적인 구현 시나리오를 도시한다.
도 5는 하나 이상의 실시예들에 따라 가상 트랜잭션을 개시하기 위한 방법의 단계들을 설명하는 흐름도이다.
도 6은 하나 이상의 실시예들에 따라 가상 트랜잭션을 수행하기 위한 방법의 단계들을 설명하는 흐름도이다.
도 7은 하나 이상의 실시예들에 따라 가상 트랜잭션의 속성을 로깅(log)하기 위한 방법의 단계들을 설명하는 흐름도이다.
도 8은 하나 이상의 실시예들에 따라 가상 트랜잭션의 개시를 트리거링하기 위한 방법의 단계들을 설명하는 흐름도이다.
도 9는 하나 이상의 실시예들에 따라 시뮬레이션 시나리오를 생성하기 위한 방법의 단계들을 설명하는 흐름도이다.
도 10은 도 1을 참조하여 설명된 바와 같은 예시적인 시스템 및 컴퓨팅 디바이스를 도시하고, 이는 본 명세서에 설명된 기술들의 실시예들을 구현하도록 구성된다.
개요
통신 종단점들 간의 가상 트랜잭션을 위한 기술이 설명된다. 다양한 구현예들에 따르면, 가상 트랜잭션은 상이한 통신 종단점들 간의 통신 세션의 시뮬레이션을 나타낸다. 일반적으로, "통신 종단점"은 음성 데이터, 비디오 데이터, 콘텐츠 공유, 및 이들의 조합과 같은 통신 매체의 교환을 통해 통신할 수 있는 다양한 디바이스들을 나타낸다.
통신 세션은 상이한 통신 종단점들의 사용자들 간의 실시간 통신 세션의 일부와 같은, 통신 종단점들 간의 통신 매체의 교환을 나타낸다. 통신 세션의 예로서, VoIP(Voice over Internet Protocol) 통화, 영상 통화, 텍스트 메시징, 파일 전송 및/또는 이들의 조합을 포함한다. 적어도 일부 실시예들에서, 통신 세션은 통합 커뮤니케이션(Unified Communication; UC) 세션을 나타낸다. 따라서, 가상 트랜잭션은 사용자들이 통신 매체에 입력하기 위해 존재할 필요 없이, 실제 통신 세션의 조건을 시뮬레이션한다.
다양한 구현예들에 따르면, 가상 트랜잭션에 대한 다양한 트랜잭션 파라미터들을 포함하는 시뮬레이션 시나리오가 생성된다. 이러한 트랜잭션 파라미터의 예로서, 가상 트랜잭션의 일부로서 적용 및/또는 시뮬레이션될 통신 종단점, 매체 타입, 디바이스 설정 등에 대한 식별자를 포함한다. 일반적으로, 시뮬레이션 시나리오는 사람 대 사람 통화, 전화 회의(conference call), 멀티 캐스트 통화 등과 같은 상이한 통신 세션 타입 및/또는 조건을 시뮬레이션할 수 있다. 가상 트랜잭션은 상이한 통신 종단점들 간에 수행될 수 있고, 트랜잭션 파라미터에 기초할 수 있다.
다양한 구현예들에 따르면, 가상 트랜잭션은 다양한 트리거 이벤트에 응답하여 수행될 수 있다. 예를 들어, 상이한 통신 종단점들 간의 통신 품질을 결정하기 위한 것과 같이, 가상 트랜잭션을 개시하기 위해 사용자 입력에 응답하여 가상 트랜잭션이 수행될 수 있다.
다른 예에서, 곧 있을 스케줄링된 통신 세션, 예컨대, 곧 있을 캘린더 이벤트의 일부를 검출하는 것에 응답하여, 가상 트랜잭션이 트리거될 수 있다. 예를 들어, 캘린더 애플리케이션은 특정 통신 종단점들 간의 통화를 지정하는 캘린더 이벤트에 대한 항목(entry)을 포함할 수 있다. 따라서, 본 명세서에 논의된 기술들은 스케줄링된 통신 세션의 다양한 파라미터들을 시뮬레이션하는 시뮬레이션 시나리오를 생성하기 위해 사용될 수 있다. 시뮬레이션 시나리오는 스케줄링된 통신 세션 이전에 가상 트랜잭션을 수행하기 위해, 예컨대, 곧 있을 통신 세션 동안 경험할 수 있는 예상된 통화 품질을 확인(ascertain)하기 위해 사용될 수 있다. 가상 트랜잭션 동안 세션 문제가 검출되면, 곧 있을 통신 세션의 품질을 개선하기 위해 시정 조치가 취해질 수 있다.
또 다른 예에서, 주기적 가상 트랜잭션이 상이한 통신 종단점들 간의 통신 품질 및/또는 상이한 통신 경로들을 통한 통신 품질을 주기적으로 테스트하도록 스케줄링될 수 있다.
다양한 구현예들에 따르면, 가상 트랜잭션의 성능 속성은 가상 트랜잭션의 다양한 단계들 동안 기록될 수 있다. 예를 들어, 성능 속성은 가상 트랜잭션 동안 발생하는 통화 품질 및/또는 오류를 표시할 수 있다. 성능 속성에 기초하여, 오류를 완화시키고 통신 세션 성능을 최적화하기 위해 다양한 조치가 취해질 수 있다. 예를 들어, 성능 속성은 네트워크 관리자, 통신 서비스, 최종 사용자 디바이스 등과 같은, 가상 트랜잭션에 포함된 상이한 엔티티들에 전달될 수 있다. 각각의 엔티티는 성능 속성에 기초하여 다양한 보정 및 최적화 절차를 구현할 수 있다.
다음의 논의에서, 본 명세서에 설명된 기술들을 사용하도록 동작 가능한 예시적인 환경이 먼저 설명된다. 다음으로, "가상 트랜잭션 파라미터 및 관측"이라는 제목의 섹션이 가상 트랜잭션에 대한 파라미터 및 가상 트랜잭션의 관측을 전달하기 위한 몇 가지 예시적인 방법을 논의한다. 이 다음으로, "예시적인 구현 시나리오"라는 제목의 섹션이 하나 이상의 실시예들에 따라 일부 예시적인 구현 시나리오들을 설명한다. 다음으로, "예시적인 절차"라는 제목의 섹션이 하나 이상의 실시예들에 따라 일부 예시적인 절차들을 설명한다. 마지막으로, "예시적인 시스템 및 디바이스"라는 제목의 섹션이 하나 이상의 실시예들에 따라 본 명세서에서 논의된 기술들을 이용하도록 동작 가능한 예시적인 시스템 및 디바이스를 설명한다.
하나 이상의 실시예들에 따라 예시적인 구현예들에 대한 개요가 제시되었고, 이제 예시적인 구현예들이 사용될 수 있는 예시적인 환경을 고려한다.
예시적인 환경
도 1은 본 명세서에 설명된 통신 종단점들 간의 가상 트랜잭션을 위한 기술들을 사용하도록 동작 가능한 예시적인 구현예에서의 환경(100)의 예시이다. 일반적으로, 환경(100)은 다양한 상이한 양상을 통한 통신을 가능하게 하는 다양한 디바이스들, 서비스들, 및 네트워크들을 포함한다. 예를 들어, 환경(100)은 네트워크(104)에 연결된 클라이언트 디바이스(102)를 포함한다. 클라이언트 디바이스(102)는 종래의 컴퓨터(예를 들어, 테스크톱 퍼스널 컴퓨터, 랩톱 컴퓨터 등), 이동국, 오락 기기, 스마트 폰, 넷북, 게임 콘솔, 핸드 헬드 디바이스(예를 들어, 태블릿) 등과 같은 다양한 방식으로 구성될 수 있다.
네트워크(104)는 광역 네트워크(wide area network; WAN), 근거리 통신망(local area network; LAN), 인터넷 등과 같은 유선 및 무선 네트워크의 다양한 타입 및 조합을 나타낸다. 네트워크(104)는 광대역 케이블, 디지털 가입자 회선(digital subscriber line; DSL), 셀룰러, 무선 데이터 연결(예를 들어, WiFiTM), T-캐리어(예를 들어, Tl), 이더넷 등과 같은 다양한 상이한 연결 기술들을 통해 클라이언트 디바이스(102)에 연결성을 제공할 수 있다.
네트워크(104)는 네트워크 관리자(106)에 의해 제공 및/또는 관리되고, 네트워크 관리자(106)는 네트워크(104)의 기반 구조 및 관리를 제공하는 상이한 엔티티들을 나타낸다. 예를 들어, 네트워크 관리자(106)는 네트워크 컴포넌트(108)를 제공 및 유지하고, 네트워크 컴포넌트(108)는 네트워크(104)를 구현하기 위한 하드웨어 및 로직을 나타낸다. 네트워크 컴포넌트(108)의 예로서, 게이트웨이, 스위치, 라우터, 허브, 무선 액세스 포인트, 네트워크 요소 등을 포함한다.
클라이언트 디바이스(102)는 통신 클라이언트(110)를 포함하고, 통신 클라이언트(110)는 클라이언트 디바이스(102)와 통신 종단점(112) 간의 통신을 가능하게 하는 기능을 나타낸다. 일반적으로, 통신 클라이언트(110)는 클라이언트 디바이스(102)를 통한 상이한 형태의 통신을 가능하게 하는 기능을 나타낸다. 통신 클라이언트(110)의 예로서, 음성 통신 애플리케이션(예를 들어, VoIP 클라이언트), UC 클라이언트, 비디오 통신 애플리케이션, 메시징 애플리케이션, 콘텐츠 공유 애플리케이션, 및 이들의 조합을 포함한다. 예를 들어, 통신 클라이언트(110)는 다양한 통신 시나리오를 제공하기 위해 상이한 통신 양상들이 조합될 수 있게 한다. 적어도 일부 구현예들에서, 통신 클라이언트(110)는 클라이언트 디바이스(102) 상에 설치된 애플리케이션을 나타낸다. 부가적으로 또는 대안적으로, 통신 클라이언트(110)는 웹 브라우저, 웹 애플리케이션 등을 통해 액세스되는 것과 같은, 원격 애플리케이션에 대한 포털로서 구현될 수 있다.
환경(100)은 통신 서비스(114)를 더 포함하고, 통신 서비스(114)는 클라이언트 디바이스(102)와 통신 종단점(112) 간의 통신 관리를 위한 다양한 태스크를 수행하는 서비스를 나타낸다. 예를 들어, 통신 서비스(114)는 통신 세션의 개시, 조정, 및 종료를 관리할 수 있다. 통신 서비스(114)의 예로서, VoIP 서비스, 온라인 회의 서비스, UC 서비스 등을 포함한다. 적어도 일부 실시예들에서, 통신 서비스(114)는 클라이언트 디바이스(102)와 통신 종단점(112) 간의 음성 통신을 가능하게 하기 위해 공중 전화망(Public Switched Telephone Network; "PSTN")과 통신하는 사설 구내 교환기(private branch exchange; PBX)로 구현되거나 이에 연결될 수 있다.
적어도 일부 구현예들에서, 통신 클라이언트(110)는 통신 서비스(114)에 의해 관리 및/또는 호스팅된다. 예를 들어, 통신 클라이언트(110)는 통신 서비스(114)에 의해 제공되는 통신 서비스에 대한 인터페이스를 나타낸다.
환경(100)은 시뮬레이션 제어기(116)를 더 포함하고, 시뮬레이션 제어기(116)는 본 명세서에서 논의된 통신 종단점들 간의 가상 트랜잭션을 위한 기술들의 다양한 양태를 수행하는 기능을 나타낸다. 예를 들어, 시뮬레이션 제어기(116)는 클라이언트 디바이스(102)와 통신 종단점(112)과 같은 다른 통신 종단점들 간의 다양한 통신 시나리오를 시뮬레이션하는 가상 통신 트랜잭션("가상 트랜잭션")을 구현할 수 있다. 적어도 일부 구현예들에서, 시뮬레이션 제어기(116)는 상이한 통신 종단점들 간의 통신 품질의 다양한 양태들을 관리하기 위해 통신 서비스(114)에 의해 구현된다.
시뮬레이션 제어기(116)는 종단점 데이터베이스(DB)(118) 및 시뮬레이션 시나리오 데이터베이스(DB)(120)를 포함한다. 종단점 DB(118)는 클라이언트 디바이스(102), 통신 종단점(112) 등과 같은, 상이한 통신 종단점들에 관한 정보를 저장한다. 예를 들어, 종단점 DB(118)는 상이한 종단점들에 대한 식별자를 종단점들을 포함하는 시뮬레이션 트랜잭션의 결과와 상관시킨다. 시뮬레이션 시나리오 DB(120)는 상이한 가상 트랜잭션들을 생성하기 위해 사용될 수 있는 시뮬레이션 파라미터들 및 속성들을 저장한다. 종단점 DB(118) 및 시뮬레이션 시나리오 DB(120)에 관한 더 상세한 설명은 아래에서 논의된다.
하나 이상의 구현예들에 따르면, 시뮬레이션 제어기(116)는 상이한 가상 트랜잭션들이 구현될 수 있도록 클라이언트 디바이스(102) 상의 시뮬레이터 모듈(122)과 인터페이스한다. 예를 들어, 시뮬레이션 시나리오 DB(120)로부터의 시뮬레이션 시나리오에 기초하여, 시뮬레이션 제어기(116)는 트랜잭션 파라미터들을 시뮬레이터 모듈(122)에 전달한다. 그런 다음, 시뮬레이터 모듈(122)은 클라이언트 디바이스(102)와 통신 종단점들(112) 중 하나의 종단점 간의 통신 세션을 시뮬레이션하는 것과 같은, 가상 트랜잭션을 구현하기 위해 트랜잭션 파라미터들을 사용할 수 있다.
클라이언트 디바이스(102)는 캘린더 모듈(124)을 더 포함하고, 캘린더 모듈(124)은 클라이언트 디바이스(102)에 대한 이벤트 스케줄링 태스크를 관리하는 기능을 나타낸다. 예를 들어, 클라이언트 디바이스(102)의 사용자는 캘린더 모듈(124)을 사용하여 회의, 약속, 개인 이벤트 등과 같은 상이한 이벤트를 생성 및/또는 관리할 수 있다. 적어도 일부 구현예들에서, 캘린더 모듈(124)은 사용자가 이벤트를 생성하고, 다른 사용자들로부터의 이벤트에 대한 초대를 수신하고, 곧 있을 이벤트에 관한 리마인더를 수신할 수 있게 하는 소프트웨어 애플리케이션 및/또는 서비스의 일부로서 구현될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 시뮬레이터 모듈(122) 및/또는 시뮬레이션 제어기(116)는 곧 있을 스케줄링된 통신 세션을 검출하기 위해 캘린더 모듈(124)과 인터페이스할 수 있다. 그런 다음, 가상 트랜잭션은 통신 이벤트의 잠재적 품질 속성을 검출하는 것과 같이, 스케줄링된 통신 세션의 다양한 파라미터들을 시뮬레이션하도록 구현될 수 있다.
환경(100)은 시뮬레이션 종단점(126)을 더 포함하고, 시뮬레이션 종단점(126)은 통신 종단점을 시뮬레이션하는 기능을 나타낸다. 예를 들어, 시뮬레이션 종단점(126)은 가상 트랜잭션이 수행될 수 있는 최종 사용자 디바이스의 논리적 표현으로서 구현될 수 있다. 예를 들어, 시뮬레이션 제어기(116)는 통신 세션의 일부로서 발생할 수 있는 상이한 조건들을 시뮬레이션하기 위해 클라이언트 디바이스(102)와 시뮬레이션 종단점(126) 간의 가상 트랜잭션을 구현할 수 있다. 적어도 일부 구현예들에서, 시뮬레이션 종단점(126)은 시뮬레이션 종단점(126)에 대한 사용자 입력과는 독립적으로 클라이언트 디바이스(102) 및/또는 다른 통신 종단점과의 가상 트랜잭션에 관여하도록 구성된다.
통신 종단점(112)은 클라이언트 디바이스(102)가 통신할 수 있는 디바이스 및/또는 기능을 나타낸다. 통신 종단점(112)은 각각의 통신 클라이언트(128) 및 시뮬레이터 모듈(130)을 포함한다. 다양한 구현예들에 따라, 시뮬레이션 제어기(116)는 클라이언트 디바이스(102)의 시뮬레이터 모듈(122)에, 그리고 특정 통신 종단점(112)의 시뮬레이터 모듈(130)에 다양한 지시들 및/또는 시뮬레이션 파라미터들을 전달할 수 있다. 지시 및 파라미터에 기초하여, 클라이언트 디바이스(102)와 통신 종단점(112) 간에 가상 트랜잭션이 구현될 수 있다. 가상 트랜잭션의 성능 속성은 클라이언트 디바이스(102)와 통신 종단점(112) 간의 통신 품질을 확인하기 위해 로깅될 수 있다.
하나 이상의 실시예들에 따르면, 시뮬레이션 제어기(116)는 클라이언트 디바이스(102)와 통신 종단점(112) 간의 통신을 위한 라우팅 정보에 액세스하는 로직 및 연결성을 포함한다. 예를 들어, 시뮬레이션 제어기(116)는 네트워크(104)를 위해, 예를 들어, 네트워크 컴포넌트(108)를 위해, 내부 게이트웨이 프로토콜(Interior Gateway Protocol; IGP) 및/또는 스패닝 트리 스위칭 토폴로지에 액세스할 수 있다. 이는 시뮬레이션 제어기(116)가 가상 트랜잭션 데이터의 라우팅에 관련된 상이한 네트워크 컴포넌트들(108)을 식별하고, 가상 트랜잭션의 일부로서 검출된 다양한 성능 관련 현상을 일으킬 수 있는 특정 네트워크 컴포넌트(108)를 식별할 수 있게 한다. 다양한 구현예들에 따르면, 시뮬레이션 제어기(116)는 네트워크 데이터베이스(DB)(132)의 일부로서 상이한 네트워크들(104) 및/또는 네트워크 컴포넌트들(108)의 성능 속성들을 저장한다.
예를 들어, 네트워크 DB(132)는 개별 네트워크 및/또는 컴포넌트에 걸친 데이터 흐름 품질의 표시와 같은, 개별 네트워크(104) 및/또는 네트워크 컴포넌트(108)에 대한 성능 데이터를 표시한다. 예를 들어, 개별 네트워크(104) 및/또는 네트워크 컴포넌트(108)는 특정 네트워크(104)를 포함하는 가상 트랜잭션의 일부로서 검출되는 바와 같은, 이력 품질 메트릭에 기초하여 네트워크 DB(132)에서 특징지어질 수 있다. 적어도 일부 구현예들에서, 시뮬레이션 제어기(116)는 네트워크 DB(132)를 통해, 그리고 가상 트랜잭션의 일부로서 검출되는 상이한 네트워크들(104) 및/또는 네트워크 컴포넌트들(108)의 세션 품질 속성에 기초하여, 네트워크(104)의 활성 상태 인식을 유지한다. 적어도 일부 실시예들에서, 네트워크 DB(132)로부터의 데이터는 네트워크 관리자(106)에 제공될 수 있어, 네트워크(104)의 다양한 통신 경로에 걸쳐 통신 품질을 증가시키기 위해, 특정 네트워크 컴포넌트(108)이 재구성, 수리 또는 교체될 수 있게 한다.
다양한 구현예들에 따르면, 네트워크 관리자(106)는 관측 모듈(observation module)(134)을 유지하고, 관측 모듈(134)은 네트워크(104) 내에서 발생하는 행동을 관측하고 기록하는 기능을 나타낸다. 예를 들어, 개별 네트워크 관리자(106)는 각각의 네트워크(104)에 걸쳐 발생하는 가상 트랜잭션에 대한 데이터 흐름의 성능 속성을 관측하고 기록하는 관측 모듈(134)을 유지할 수 있다. 관측 모듈(134)은 각각의 네트워크(104) 및/또는 네트워크 컴포넌트(108)에 대한 행동 정보를 시뮬레이션 제어기(116)에 전파하여 네트워크 DB(132)에 의해 저장될 수 있다. 적어도 일부 구현예들에서, 관측 모듈(134)은 시뮬레이션 제어기(118)에 의해 각각의 네트워크(104)에 배치 및/또는 호스팅될 수 있다.
환경(100)에서 논의된 다양한 엔티티들 및 기능들은 소프트웨어, 하드웨어, 펌웨어 및/또는 이들의 조합으로 구현될 수 있다. 환경(100)의 다양한 엔티티들의 더욱 상세한 설명 및 구현예들이 아래에서 논의된다.
본 명세서에서 설명된 기술들이 동작할 수 있는 예시적인 환경이 설명되었으므로, 이제 하나 이상의 실시예들에 따라 통신 시스템에서 통신 세션의 다양한 속성들을 전파하는 예시적인 방법들의 논의를 고려한다.
가상 트랜잭션 파라미터 및 관측
다양한 구현예들에 따라, 매우 다양한 상이한 파라미터들을 갖는 가상 트랜잭션에 대한 시뮬레이션 시나리오들을 생성하기 위한 기술들이 사용될 수 있다. 예를 들어, 가상 트랜잭션의 일부로서 적용될 다양한 트랜잭션 파라미터들을 지정하는 통지 이벤트가 생성될 수 있다. 통지 이벤트는 본 명세서에서 논의된 통신 종단점들 간의 가상 트랜잭션을 위한 기술들에 따라 가상 트랜잭션을 구현하기 위해 사용될 상이한 엔티티들에 전달될 수 있다.
적어도 일부 실시예들에서, 통지 이벤트는, 예를 들어, 클라이언트 디바이스(102)의 시뮬레이터 모듈(122)과 같은 다양한 엔티티들에, 가상 트랜잭션에 대한 파라미터를 구성하여 전달하기 위해 영향력을 미칠 수 있는 시뮬레이션 애플리케이션 프로그래밍 인터페이스(application programming interface; API)를 사용하여 구성될 수 있다. 예를 들어, 통지 이벤트를 통해 전달될 수 있는 다음 파라미터들을 고려한다.
(1) 매체 타입: 이 파라미터는 가상 트랜잭션의 일부로서 전송 및/또는 시뮬레이션될 매체 타입 및/또는 타입들을 지정하기 위해 사용될 수 있다. 매체 타입의 예로서, 음성 데이터(예를 들어, 오디오), 비디오, 컨텐츠, 및 이들의 조합을 포함한다.
(2) 개시자 주소(들): 이 파라미터는 가상 트랜잭션을 개시할 종단점들에 대한 주소를 지정하기 위해 사용될 수 있다. 주소의 예로서, 매체 접근 제어(media access control; MAC) 주소, 인터넷 프로토콜(Internet protocol; IP) 주소, 사용자 이름, 전화 번호 등을 포함한다.
(3) 수신자 주소(들): 이 파라미터는 가상 트랜잭션의 일부로서 "통화"할 종단점들에 대한 주소를 지정하기 위해 사용될 수 있다. 적어도 일부 구현예들에서, 전화 회의, 멀티 캐스트 통신 이벤트 등과 같은 다수의 수신자 주소들이 표시될 수 있다.
(4) 코덱: 이 파라미터는 가상 트랜잭션을 구현하기 위해 사용될 코덱/코덱들을 지정하기 위해 사용될 수 있다.
(5) 통신 클라이언트 설정: 이 파라미터는 가상 트랜잭션의 일부로서 적용 및/또는 시뮬레이션될 다양한 통신 클라이언트 설정을 지정하기 위해 사용될 수 있다.
(6) 서비스 품질: 이 파라미터는 가상 트랜잭션의 일부로서 통신 매체에 적용될 서비스 품질(quality of service; QoS)을 지정하기 위해 사용될 수 있다. 예를 들어, 속성은 통신 매체에 적용될 QoS 마킹을 지정할 수 있다. QoS 마킹의 예로서, BE(Best Effort), EF(Eedicated Forwarding), AF(Assured Forwarding) 등을 포함한다.
(7) 트랜잭션 라우팅: 이 파라미터는 가상 트랜잭션의 일부로서 사용될 특정 라우트를 지정하기 위해 사용될 수 있다. 예를 들어, 라우트는 특정 게이트웨이, 서버(예를 들어, UC 서버), UC 네트워크 등과 같은 네트워크 컴포넌트의 특정 인스턴스 면에서 지정될 수 있다.
(8) 트랜잭션 타입: 이 파라미터는 두 개의 디바이스들 간의 통화, 전화 회의, 콜 멀티 포킹, 멀티 캐스트 통화 등과 같은 상이한 트랜잭션 타입을 지정하기 위해 사용될 수 있다.
(9) 트랜잭션 행동: 이 파라미터는 사용자 개시 행동, 통신 서비스 행동, 디바이스 행동 등과 같은, 트랜잭션 동안 및/또는 트랜잭션의 일부로서 발생할 수 있는 다양한 행동들을 지정하기 위해 사용될 수 있다. 트랜잭션 행동의 예로서, 통화 보류, 통화 볼륨 조정, 통화 녹음 옵션 선택, 상이한 사용자 및/또는 디바이스로 통화 돌리기 등과 같은 상이한 통신 옵션들의 선택을 포함한다.
(10) 트랜잭션 타이밍: 이 파라미터는 가상 트랜잭션이 개시될 날짜 및/또는 시간, 가상 트랜잭션의 지속 시간, 가상 트랜잭션 동안 발생하는 특정 이벤트의 타이밍 등과 같은, 가상 트랜잭션의 다양한 시간적 파라미터들을 지정하기 위해 사용될 수 있다.
이러한 트랜잭션 파라미터들은 단지 예시를 위해 제시되며, 본 명세서에서 명시적으로 언급하지 않은 매우 다양한 상이한 파라미터들이 주장되는 구현예들에 따라 추가적으로 또는 대안적으로 사용될 수 있음이 이해될 것이다.
적어도 일부 실시예들에서, 가상 트랜잭션의 일부로서 관측되는 행동을 식별하는 통지 이벤트가 생성될 수 있다. 예를 들어, 통지 이벤트는 다양한 엔티티들에서 관측되는 가상 트랜잭션 행동을 전달하기 위해 영향력을 미칠 수 있는 관측 API를 사용하여 구성될 수 있다. 예를 들어, 관측 API는 가상 트랜잭션의 속성이 식별될 수 있는 대화 이벤트 및 세션 이벤트를 식별할 수 있다. 예를 들어, 관측 API는 위에 상세히 설명된 시뮬레이션 API의 확장 또는 대안을 나타낼 수 있다. 예를 들어, 통지 이벤트를 통해 전달될 수 있는 다음의 이벤트 및 속성을 고려한다.
대화 이벤트 - 이 이벤트는 가상 트랜잭션의 시작, 갱신, 및 끝과 같은, 가상 트랜잭션의 다양한 부분들에 적용된다. 대화 이벤트는 다음의 예시적인 속성들 중 하나 이상을 포함할 수 있다.
(1) 타임 스탬프: 이 속성은 가상 트랜잭션의 시작에 대한 타임스탬프, 가상 트랜잭션 동안 발생하는 갱신, 및 가상 트랜잭션의 끝(예를 들어, 종료)을 지정하기 위해 영향력을 미칠 수 있다.
(2) 소스 IP 주소: 이 속성은 가상 트랜잭션 동안 매체의 소스인 종단점, 예를 들어, 가상 트랜잭션을 개시하는 디바이스에 대한 IP 주소를 지정하기 위해 영향력을 미칠 수 있다.
(3) 목적지 IP 주소: 이 속성은 가상 트랜잭션의 일부로서 매체를 수신할 종단점에 대한 IP 주소를 지정하기 위해 영향력을 미칠 수 있다.
(4) 전송 타입: 이 속성은 가상 트랜잭션에 대한 전송 타입 또는 전송 타입들의 조합을 지정하기 위해 영향력을 미칠 수 있다. 전송 타입의 예로서, 전송 제어 프로토콜(Transmission Control Protocol; TCP), 사용자 데이터그램 프로토콜(User Datagram Protocol; UDP) 등을 포함한다.
(5) 소스 포트: 이 속성은 소스 종단점, 예를 들어, 위에서 언급된 소스 IP 주소에 의해 식별되는 소스 디바이스에서 포트에 대한 식별자를 지정하기 위해 영향력을 미칠 수 있다.
(6) 목적지 포트: 이 속성은 목적지 종단점, 예를 들어, 위에서 언급된 목적지 IP 주소에 의해 식별되는 목적지 디바이스에서 포트에 대한 식별자를 지정하기 위해 영향력을 미칠 수 있다.
(7) 매체 타입: 이 속성은 가상 트랜잭션의 일부로서 전송될 및/또는 전송되고 있는 매체 타입 및/또는 타입들을 지정하기 위해 영향력을 미칠 수 있다. 본 명세서의 다른 곳에서 논의된 바와 같이, 가상 트랜잭션은 다수의 상이한 타입의 매체를 포함할 수 있다. 따라서, 매체 타입 속성은 가상 트랜잭션의 일부로서 교환되는 매체 타입을 식별하기 위해 사용될 수 있다.
(8) 대역폭 추정: 이 속성은 가상 트랜잭션의 일부로서 할당되는, 추정된 대역폭을 지정하기 위해 영향력을 미칠 수 있다.
(9) To: 이 속성은 가상 트랜잭션이 어떤 매체로 전송되는지 사용자가 식별하기 위해 영향력을 미칠 수 있다.
(10) From: 이 속성은 가상 트랜잭션이 어떤 매체로부터 전송되는지 사용자가 식별하기 위해 영향력을 미칠 수 있다.
(11) 오류 코드: 이 속성은 가상 트랜잭션의 일부로서 발생할 수 있는 오류에 대해 다양한 오류 코드들을 지정하기 위해 영향력을 미칠 수 있다. 예를 들어, 오류는 가상 트랜잭션의 개시 동안 발생하는 오류, 가상 트랜잭션 동안 발생하는 오류, 가상 트랜잭션이 종료될 때 발생하는 오류 등을 포함한다.
트랜잭션 성능 이벤트 - 이러한 이벤트는 가상 트랜잭션의 일부로서 관측되는 다양한 행동들 및 성능 파라미터들을 지정하기 위해 생성되어 적용될 수 있다. 트랜잭션 성능 이벤트는 대화 이벤트를 참조하여 앞서 논의된 속성들 중 하나 이상의 속성을 포함할 수 있고, 또한 다음 속성들 중 하나 이상의 속성을 포함할 수도 있다.
(1) 평균 의견 점수(Mean Opinion Score; MOS) 저하: 이 속성은 가상 트랜잭션에 대한 MOS를 지정하기 위해 영향력을 미칠 수 있다. 예를 들어, 이 속성은 가상 트랜잭션에 대한 전체 품질 메트릭을 표시하기 위해 사용될 수 있다.
(2) 도착 간격 시간 지터: 이 속성은 가상 트랜잭션에 대한 지터 값을 지정하기 위해 영향력을 미칠 수 있다.
(3) 패킷 손실률: 이 속성은 가상 트랜잭션에 대한 패킷 손실률을 지정하기 위해 영향력을 미칠 수 있다.
(4) 라운드 트립 지연(Round Trip Delay; RTD): 이 속성은 가상 트랜잭션에서 패킷에 대한 RTD 값을 지정하기 위해 영향력을 미칠 수 있다.
(5) 은폐율: 이 속성은 가상 트랜잭션에 대해 관측된 음성 시간에 대한 은폐 시간의 관측된 누적 비율을 표시하기 위해 영향력을 미칠 수 있다.
따라서, 여기에서 논의된 다양한 통지들은 앞서 논의된 속성들 중 하나 이상의 속성을 포함할 수 있으며, 속성들을 다양한 엔티티들에 전파하기 위해 사용될 수 있다. 속성들의 이러한 리스트는 완전한 것이 아니며, 주장되는 실시예들에 따라 매우 다양한 다른 속성들이 전달될 수 있음이 이해될 것이다.
가상 트랜잭션의 관측된 행동 및 파라미터를 전파하는 예시적인 방법이 설명되었으므로, 이제 하나 이상의 실시예들에 따른 통신 종단점들 간의 가상 트랜잭션에 대한 일부 예시적인 구현 시나리오들을 고려한다.
예시적인 구현 시나리오
다음 섹션은 하나 이상의 실시예들에 따라 통신 종단점들 간의 가상 트랜잭션에 대한 예시적인 구현 시나리오를 설명한다. 구현 시나리오는 앞서 논의된 환경(100) 및/또는 임의의 다른 적절한 환경에서 구현될 수 있다.
도 2는 하나 이상의 구현예들에 따라 가상 트랜잭션을 수행하기 위한 예시적인 구현 시나리오(200)를 도시한다. 시나리오(200)에서, 시뮬레이션 제어기(116)는 가상 트랜잭션이 생성되어 수행될 것을 표시하는 개시 이벤트(202)를 검출한다. 개시 이벤트(202)는 시뮬레이션 제어기(116)에 대한 사용자 입력, 자동 생성 이벤트, 시간 지정 이벤트, 곧 있을 스케줄링된 통신 세션의 표시 등과 같은 다양한 현상에 대응할 수 있다. 일반적으로, 개시 이벤트(202)는 시뮬레이션 제어기(116)에 대한 프롬프트에 대응하여 시뮬레이션 시나리오를 생성한다.
개시 이벤트(202)에 응답하여, 시뮬레이션 제어기(116)는 가상 트랜잭션의 일부로서 적용 및/또는 시뮬레이션될 다양한 파라미터들을 표시하는 시뮬레이션 시나리오(204)를 생성한다. 상이한 파라미터들의 예가 앞서 논의되었다. 시뮬레이션 시나리오(204)는 시뮬레이션 제어기(116)에 대한 사용자 입력에 기초, 개시 이벤트(202)에 대한 자동 응답 등과 같은 다양한 방식으로 생성될 수 있다. 적어도 일부 구현예들에서, 시뮬레이션 시나리오(204)는 시뮬레이션 시나리오 DB(132)로부터의 미리 구성된 시나리오에 대응할 수 있다. 대안적으로 또는 부가적으로, 시뮬레이션 시나리오(204)는 검출된 이벤트 또는 조건에 기초하는 것과 같이, 동적으로 생성될 수 있다.
시나리오(200)를 계속하면, 시뮬레이션 제어기(116)는 시뮬레이션 시나리오(202)를 클라이언트 디바이스(102)에 전달한다. 시뮬레이터 모듈(122)은 시뮬레이션 시나리오(204)에서 지정된 다양한 트랜잭션 파라미터들을 식별하기 위해 시뮬레이션 시나리오(204)를 분석한다. 예를 들어, 시뮬레이션 시나리오(204)는 통신 클라이언트(110)가 가상 트랜잭션을 개시할 통신 종단점(112)의 특정 인스턴스 또는 인스턴스들을 식별한다.
다양한 구현예들에 따르면, 시뮬레이션 제어기(116)는 또한 시뮬레이션 제어기(116)가 가상 트랜잭션의 일부로서 데이터의 라우팅에 관련될 수 있다는 트랜잭션 통지(206)를 특정 네트워크 관리자(106)에 전달한다. 예를 들어, 트랜잭션 통지(206)는 가상 트랜잭션이 개시되고 있다는 것을, 그리고 관측 모듈(134)이 각각의 네트워크 컴포넌트(108)에 걸쳐 가상 트랜잭션에 대한 데이터 흐름 행동을 관측하고 기록할 것임을 각각의 네트워크(104)에 대해 관측 모듈(134)에 통지한다. 트랜잭션 통지(206)는 관측 모듈(134)이 다른 데이터 흐름들로부터 가상 트랜잭션의 데이터를 구별할 수 있게 하는 다양한 정보, 예컨대, 클라이언트 디바이스(102) 및 통신 종단점(112)에 대한 식별자, 가상 트랜잭션의 데이터를 식별하는 스트림 식별자(패킷 식별자) 등을 포함할 수 있다.
시나리오(200)에 덧붙여, 시뮬레이션 제어기(116)는 종단점 시나리오(208)를, 가상 트랜잭션이 개시될 통신 종단점(112)의 시뮬레이터 모듈(122)에 전달한다. 예를 들어, 종단점 시나리오(208)는 클라이언트 디바이스(102)와 통신 종단점(112) 간에 가상 트랜잭션이 개시되고 있다는 것을 시뮬레이터 모듈(130)에 통지한다. 예를 들어, 종단점 시나리오(208)는 클라이언트 디바이스(102)를 식별하고, 통신 종단점(112)이 클라이언트 디바이스(102)로부터의 통신, 예를 들어, 통신 세션을 개시하라는 요청을 수신할 것임을 표시한다.
종단점 시나리오(208)는 시뮬레이션 시나리오(204)의 복제일 수 있다. 예를 들어, 시뮬레이션 시나리오(204)는 가상 트랜잭션의 일부로서 적용될 통신 종단점(112)에 대한 트랜잭션 파라미터, 및 클라이언트 디바이스(102)에 대한 트랜잭션 파라미터를 지정할 수 있다. 대안적으로, 종단점 시나리오(208)는 시뮬레이션 시나리오(204)와는 상이할 수 있고, 통신 종단점(112)에 대해 특별히 생성될 수 있다.
시나리오(200)에 덧붙여, 시뮬레이터 모듈(122)은 통신 클라이언트(110)와 상호 작용하여 통신 클라이언트(110)와 통신 종단점(112)의 통신 클라이언트(128) 간의 가상 트랜잭션(210)을 개시한다. 예를 들어, 시뮬레이터 모듈(122)은 가상 트랜잭션(210)을 개시하기 위해 통신 클라이언트(110)에 대한 사용자 입력을 시뮬레이션한다. 적어도 일부 구현예들에서, 통신 클라이언트(110)는 시뮬레이터 모듈(122)로부터 수신된 입력이 클라이언트 디바이스(102)에 대한 실제 사용자 입력을 시뮬레이션한다는 점에서, 가상 트랜잭션(210)이 "가상"이라는 것을 알지 못할 수 있다.
일반적으로, 가상 트랜잭션(210)은 클라이언트 디바이스(102)와 통신 종단점(112) 간의 통신 매체의 교환을 나타낸다. 예를 들어, 가상 트랜잭션(210)은 통신 종단점들의 사용자 간의 실시간 통신 세션을 시뮬레이션하는 통신 매체의 실시간 교환이다. 통신 매체는 시뮬레이션 시나리오(204) 및/또는 종단점 시나리오(208)의 일부로서 포함될 수 있다. 대안적으로 또는 부가적으로, 통신 매체는 클라이언트 디바이스(102) 및/또는 통신 종단점(112)에 의해 생성될 수 있다. 시뮬레이션 시나리오(204) 및 종단점 시나리오(208)에 의해 지정된 다른 파라미터들 및 행동들이 가상 트랜잭션(210)의 일부로서 적용될 수 있으며, 그 예는 앞서 설명된 바와 같다.
다양한 구현예들에 따르면, 시나리오(200)는 예를 들어 통신 종단점(112)에 더하여 또는 대안적으로, 클라이언트 디바이스(102)와 시뮬레이션 종단점(126) 간의 가상 트랜잭션을 개시하기 위해 사용될 수 있다. 예를 들어, 시뮬레이션 시나리오(204)는, 예컨대, 시뮬레이션 종단점(126)에 대한 네트워크 주소 및/또는 다른 식별자를 통해, 시뮬레이션 종단점(126)을 식별할 수 있다. 따라서, 클라이언트 디바이스(102)는 통신 종단점(112)과의 가상 트랜잭션(210)을 개시하기 위해 수행되는 것과 유사한 방식으로, 시뮬레이션 종단점(126)과 가상 트랜잭션(210)을 개시할 수 있다. 적어도 일부 구현예들에서, 시뮬레이션 제어기(116)는 다양한 종단점 행동들을 시뮬레이션하기 위해 시뮬레이션 종단점(126)을 제어할 수 있다. 대안적으로 또는 추가적으로, 시뮬레이션 종단점(126)은, 시뮬레이션 종단점(126)이 실제 통신 종단점과의 상호 작용을 시뮬레이션하도록 그 자신을 제어할 수 있게 하는 통합 로직을 포함할 수 있다. 따라서, 클라이언트 디바이스(102)는 실제 사용자 제어 통신 종단점(112)에서와 같이, 시뮬레이션 종단점(126)과 통신할 수 있다.
가상 트랜잭션(210)을 둘러싼 다양한 행동 데이터가 구현 시나리오(400)를 참조하여 아래에서 설명되는 바와 같이, 가상 트랜잭션(210)에 관련된 엔티티들에 의해 수집된다.
시나리오(200)가 두 개의 종단점들 간의 가상 트랜잭션을 참조하여 논의되었지만, 본 명세서에서 논의된 기술들은 다수의 상이한 디바이스들 간에 가상 트랜잭션을 개시하고 수행하기 위해 사용될 수 있음이 이해될 것이다. 예를 들어, 다음의 예시적인 시나리오를 고려한다.
도 3은 다수의 상이한 디바이스들 간의 가상 트랜잭션을 구현하기 위한 예시적인 구현 시나리오(300)를 도시한다. 시나리오(300)에서, 시뮬레이션 제어기(116)는, 가상 트랜잭션이 클라이언트 디바이스(102)와 다수의 통신 종단점들 간에 생성되어 수행될 것을 표시하는 개시 이벤트(302)를 검출한다. 다양한 타입의 개시 이벤트들이 앞서 논의되었다.
개시 이벤트(302)에 응답하여, 시뮬레이션 제어기(116)는 가상 트랜잭션에 대한 다양한 파라미터들을 표시하는 시뮬레이션 시나리오(304)를 생성한다. 상이한 파라미터들의 예가 앞서 논의되었다. 시뮬레이션 시나리오(304)는 클라이언트 디바이스(102)와 통신 종단점(306a), 통신 종단점(306b), 및 통신 종단점(306n) 간에 가상 트랜잭션이 구현될 것을 지정한다. 통신 종단점들(306a-306n) 각각은 앞서 논의된 통신 종단점들(112)의 구현을 나타낸다. 따라서, 여기서 명확하게 도시되지는 않았지만, 통신 종단점들(306a-306n) 각각은 통신 클라이언트(128) 및 시뮬레이터 모듈(130)의 각각의 인스턴스들을 포함한다.
시뮬레이션 시나리오(304)는 시뮬레이션 제어기(116)에 대한 사용자 입력에 기초, 개시 이벤트(302)에 대한 자동 응답 등과 같은, 다양한 방식으로 생성될 수 있다. 적어도 일부 구현예들에서, 시뮬레이션 시나리오(304)는 시뮬레이션 시나리오 DB(120)로부터의 미리 구성된 시나리오에 대응할 수 있다. 대안적으로 또는 부가적으로, 시뮬레이션 시나리오(304)는 검출된 이벤트 또는 조건에 기초하는 것과 같이, 동적으로 생성될 수 있다.
시나리오(300)를 계속하면, 시뮬레이션 제어기(116)는 시뮬레이션 시나리오(304)를 클라이언트 디바이스(102)에 전달한다. 시뮬레이터 모듈(122)은 시뮬레이션 시나리오(304)에서 지정된 다양한 트랜잭션 파라미터들을 식별하기 위해 시뮬레이션 시나리오(304)를 분석한다. 예를 들어, 시뮬레이션 시나리오(304)는 통신 종단점들(306a-306n)을 식별한다.
다양한 구현예들에 따르면, 시뮬레이션 제어기(116)는 또한 시뮬레이션 제어기(116)가 가상 트랜잭션의 일부로서 데이터의 라우팅에 관련될 수 있다는 트랜잭션 통지(308)를 특정 네트워크 관리자(106)에 전달한다. 예를 들어, 트랜잭션 통지(308)는 가상 트랜잭션이 개시되고 있다는 것을, 그리고 관측 모듈(134)이 각각의 네트워크 컴포넌트(108)에 걸쳐 가상 트랜잭션에 대한 데이터 흐름 행동을 관측하고 기록할 것임을 각각의 네트워크(104)에 대해 관측 모듈(134)에 통지한다. 트랜잭션 통지(308)는 관측 모듈(134)이 다른 데이터 흐름들로부터 가상 트랜잭션의 데이터를 구별할 수 있게 하는 다양한 정보, 예컨대, 클라이언트 디바이스(102) 및 통신 종단점들(306a-306n)에 대한 식별자, 각각의 가상 트랜잭션의 데이터를 식별하는 스트림 식별자(패킷 식별자) 등을 포함할 수 있다.
시뮬레이션 제어기(116)는 또한 종단점 시나리오(310)를 각각의 통신 종단점들(306a-306n)에 대한 시뮬레이터 모듈에 전달한다. 일반적으로, 종단점 시나리오(310)는 가상 트랜잭션의 일부로서 통신 종단점들(306a-306n)에 의해 적용될 다양한 파라미터들을 지정한다. 예를 들어, 종단점 시나리오(310)는 가상 트랜잭션의 일부로서 교환될 매체를 포함할 수 있다. 다양한 구현예들에 따르면, 종단점 시나리오들(310)은 예를 들어 각각이 동일한 정보 및 속성을 포함할 수 있는 것과 같이 중복될 수 있다. 대안적으로, 종단점 시나리오들(310) 중 적어도 일부는 종단점 시나리오들(310)의 다른 것들과는 상이한 정보 및/또는 속성들을 포함할 수 있다. 따라서, 각각의 통신 종단점들(306a-306n)에 대한 시뮬레이터 모듈들은, 종단점 시나리오(310)를 분석하여 가상 트랜잭션에 대한 다양한 파라미터들을 확인한다.
시나리오(300)에 덧붙여, 시뮬레이터 모듈(122)은 통신 클라이언트(110)와 상호 작용하여 통신 클라이언트(110)와 각각의 통신 종단점들(306a-306n)의 통신 클라이언트들 간에 가상 트랜잭션들(312a, 312b, 312n)을 개시한다. 예를 들어, 시뮬레이터 모듈(122)은 가상 트랜잭션들(312a-312n)을 개시하기 위해 통신 클라이언트(110)에 대한 사용자 입력을 시뮬레이션한다. 적어도 일부 구현예들에서, 통신 클라이언트(110)는 시뮬레이터 모듈(122)로부터 수신된 입력이 클라이언트 디바이스(102)에 대한 실제 사용자 입력을 시뮬레이션한다는 점에서, 가상 트랜잭션들(312a-312n)이 "가상"이라는 것을 알지 못할 수 있다. 일반적으로, 가상 트랜잭션들(312a-312n)은 병행의 및/또는 동시의 가상 트랜잭션들을 나타낼 수 있다.
가상 트랜잭션들(312a-312n)은, 예를 들어, 시뮬레이션 시나리오(304) 및 각각의 종단점 시나리오(310)에 의해 지정된 매체 및 속성에 따라, 클라이언트 디바이스(102)와 각각의 통신 종단점들(306a-306n) 간의 통신 매체의 교환을 나타낸다.
시나리오(300)가 네 개의 통신 종단점들(예를 들어, 클라이언트 디바이스(102) 및 통신 종단점들(306a-306n)) 간의 가상 트랜잭션을 참조하여 도시되었지만, 기술들이 다수의 통신 종단점들, 예를 들어, 수백, 수천 등의 다수의 통신 종단점들과 동시적 가상 트랜잭션들을 개시하기 위해 사용될 수 있다는 것이 이해될 것이다. 예를 들어, 시나리오(300)는 다수의 당사자들 간의 엔터프라이즈 미팅의 시뮬레이션과 같은 전화 회의 및/또는 멀티 캐스트 통신 이벤트의 시뮬레이션의 일부로서 구현될 수 있다. 적어도 일부 구현예들에서, 시나리오(300)는 예를 들어 통신 종단점들(306a-306n)에 더하여, 클라이언트 디바이스(102)와 시뮬레이션 종단점(126) 간의 가상 트랜잭션을 포함하도록 구현될 수 있다.
도 4는 하나 이상의 구현예들에 따라 가상 트랜잭션의 일부로서 관측되는 행동 및 성능 속성을 보고하기 위한 예시적인 구현 시나리오(400)를 도시한다. 적어도 일부 구현예들에서, 시나리오(400)는 앞서 논의된 시나리오(200 및/또는 300)의 연속을 나타낸다.
시나리오(400)에서, 클라이언트 디바이스(102)는 트랜잭션 리포트(402)를 시뮬레이션 제어기(116)에 전달한다. 일반적으로, 트랜잭션 리포트(402)는 가상 트랜잭션의 일부로서 관측되는 다양한 행동들 및 성능 속성들을 포함한다. 트랜잭션 리포트(402)에 지정된 행동 및 속성의 예로서, 큐 처리, 클라이언트 디바이스(102) 구성, 데이터 라우팅, 장애 처리 속성, 지터 속성, 패킷 대기 시간, 패킷 손실 등을 포함한다. 예를 들어, 트랜잭션 리포트(402)는 앞서 논의된 통지 이벤트 및/또는 관측 API에 적어도 부분적으로 기초한 속성 및 값이 덧붙을 수 있다.
다양한 구현예들에 따르면, 트랜잭션 리포트(402)는 다양한 방식으로 생성 및 전달될 수 있다. 예를 들어, 시뮬레이터 모듈(122)은 가상 트랜잭션의 개시, 수행 및 종료 동안 트랜잭션 리포트(402)를 상이한 속성 및 값으로 덧붙일 수 있다. 예를 들어, 클라이언트 디바이스(102)는 가상 트랜잭션의 종료 후에 트랜잭션 리포트(402)를 시뮬레이션 제어기(116)에 전달할 수 있다.
대안적으로 또는 부가적으로, 트랜잭션 리포트(402)는, 예를 들어, 가상 트랜잭션의 개시, 수행, 및/또는 종료 동안, 가상 트랜잭션의 상이한 단계 동안 동적으로 시뮬레이션 제어기(116)에 전달될 수 있다. 예를 들어, 트랜잭션 리포트(402)의 상이한 인스턴스들은 가상 트랜잭션의 상이한 지점에서 시뮬레이션 제어기(116)에 (예를 들어, 주기적으로) 전달될 수 있으며, 개별 트랜잭션 리포트(402)는 최근에 관측된 가상 트랜잭션의 행동 및 속성에 기초하여 업데이트된다.
시나리오(400)에 덧붙여, 통신 종단점(112)은 종단점 리포트(404)를 시뮬레이션 제어기(116)에 전달한다. 다양한 구현예들에 따라, 종단점 리포트(404)는 가상 트랜잭션의 일부로서 통신 종단점(112)에서 관측되는 다양한 속성들 및 행동들을 포함한다. 예를 들어, 종단점 리포트(404)는 트랜잭션 리포트(402)와 유사하게 덧붙여지고 및/또는 전달되지만, 통신 종단점(112)에서 관측된 값 및 속성을 갖는다.
시나리오(400)를 계속하면, 네트워크 관리자(106)는 네트워크 리포트(406)를 시뮬레이션 제어기(116)에 전달한다. 다양한 구현예들에 따르면, 네트워크 리포트(406)는 가상 트랜잭션의 일부로서 네트워크 관리자(106)에 의해 관측되는 다양한 속성들 및 행동들을 포함한다. 예를 들어, 네트워크 리포트(406)는 트랜잭션 리포트(402)와 유사하게 덧붙여지고 및/또는 전달될 수 있지만, 네트워크 관리자(106)에서 관측된 값 및 속성을 갖는다. 다수의 네트워크들이 가상 트랜잭션에 관련되는 구현예들에서, 관련된 네트워크에 대한 개별 네트워크 관리자(106)가 각각의 네트워크(104)에서 관측된 속성 및 행동이 덧붙은 개별 네트워크 리포트(406)를 전달할 수 있다.
다양한 구현예들에 따르면, 시뮬레이션 제어기(116)는 다양한 리포트를 수신하고 다양한 방식으로 리포트를 처리한다. 예를 들어, 트랜잭션 리포트(402) 및 종단점 리포트(404)로부터의 정보는 종단점 DB(118)에 전파될 수 있다. 클라이언트 디바이스(102)에 대한 종단점 DB(118)의 엔트리는 트랜잭션 리포트(402)로부터의 정보가 덧붙을 수 있다. 또한, 통신 종단점(112)에 대한 종단점 DB(118)의 엔트리는 종단점 리포트(404)로부터의 정보가 덧붙을 수 있다. 따라서, 시뮬레이션 제어기(116)는 가상 트랜잭션의 일부로서 상이한 디바이스들 및/또는 종단점들에서 관측된 속성들 및 행동들을 추적할 수 있다. 또한, 종단점 DB(118)는 다수의 상이한 가상 트랜잭션에 걸쳐 그리고 일정 기간 동안 상이한 디바이스들 및 종단점들의 이력 성능을 추적하기 위해 사용될 수 있다.
시뮬레이션 제어기(116)는 또한 네트워크 리포트(406)로부터의 정보를 네트워크 DB(132)에 전파한다. 가상 트랜잭션에 관련된 특정 네트워크(104)에 대한 네트워크 DB(132)의 엔트리는 네트워크 리포트(406)로부터의 정보가 덧붙을 수 있다. 따라서, 시뮬레이션 제어기(116)는 가상 트랜잭션의 일부로서 상이한 네트워크들(104)에서 관측된 속성들 및 행동들을 추적할 수 있다. 다수의 네트워크(104)가 가상 트랜잭션에 관련되는 경우, 시뮬레이션 제어기(116)는 상이한 네트워크들로부터 수신된 네트워크 리포트(406)로부터의 정보를 각각의 네트워크(104)에 대한 네트워크 DB(132)의 엔트리에 덧붙일 수 있다. 적어도 일부 구현예들에서, 네트워크 DB(132)는 다수의 상이한 가상 트랜잭션에 걸쳐 그리고 일정 기간 동안 상이한 네트워크들의 이력 성능을 추적하기 위해 사용될 수 있다.
하나 이상의 구현예들에 따르면, 시나리오(400)의 일부로서 생성된 상이한 리포트는 도 2를 참조하여 앞서 논의된 단일의 가상 트랜잭션인 가상 트랜잭션(210)에 따라 생성된다. 따라서, 상이한 리포트들의 정보가 종합되어 가상 트랜잭션의 포괄적인 단대단 관점을 제시할 수 있다.
(예를 들어, 도 3을 참조하여 설명된 바와 같이) 다수의 가상 트랜잭션들이 동시에 수행되는 구현예들에서, 상이한 가상 트랜잭션에 기초하여 생성된 리포트들은, 예를 들어 상이한 관련 가상 트랜잭션들을 연결하는 트랜잭션 식별자에 기초하여 연결될 수 있다. 따라서, 상이한 연결된 리포트들로부터의 정보를 종합하여 관련된 가상 트랜잭션의 전체적인 관점을 제시할 수 있다.
시나리오(400)에 덧붙여, 상이한 리포트들로부터의 정보는 상이한 엔티티들에 전파될 수 있다. 예를 들어, 시뮬레이션 제어기(116)는 가상 트랜잭션에 대해 각각의 네트워크(104)가 사용되는, 상이한 디바이스들 및/또는 종단점들에서 관측되는 행동들 및 성능 속성들을 상이한 네트워크 관리자들(106)에게 통지할 수 있다. 또한, 클라이언트 디바이스(102)에는 네트워크 및/또는 종단점의 행동들 및 속성들이 통지될 수 있다. 통신 종단점(112)에는 또한 각각의 네트워크(104) 및 클라이언트 디바이스(102)에서 관측되는 행동들 및 속성들이 통지될 수 있다. 따라서, 본 명세서에 논의된 기술들에 의해 가능하게 되는 가상 트랜잭션의 행동들 및 속성들에 대한 단대단 인식은 가상 트랜잭션에 관련된 엔티티들에게 보급될 수 있다. 이러한 인식은, 개별 엔티티들이 컴포넌트, 설정 및/또는 프로세스를 복구 및/또는 최적화하여 성능 문제를 완화시키고 각자의 책임 영역에서 성능 품질을 증가시킬 수 있다.
일부 예시적인 구현 시나리오들이 기술되었고, 이제 하나 이상의 실시예들에 따라 몇몇 예시적인 절차의 논의를 고려한다.
예시적인 절차
다음 섹션은 하나 이상의 실시예들에 따라 통신 종단점들 간의 가상 트랜잭션에 대한 일부 예시적인 절차들을 설명한다. 예시적인 절차는 도 1의 환경(100), 도 10의 시스템(1000), 및/또는 임의의 다른 적합한 환경에서 이용될 수 있다. 예를 들어, 절차는 앞서 논의된 예시적인 구현 시나리오를 구현하기 위한 절차를 나타낸다. 적어도 일부 실시예들에서, 다양한 절차들에 대해 설명된 단계들은 자동으로 그리고 사용자 상호 작용과는 독립적으로 구현될 수 있다.
도 5는 하나 이상의 실시예들에 따라 방법의 단계들을 기술하는 흐름도이다. 상기 방법은 하나 이상의 실시예들에 따라 가상 트랜잭션을 개시하기 위한 예시적인 절차를 설명한다.
단계(500)는 클라이언트 디바이스의 통신 클라이언트와 통신 종단점의 통신 클라이언트 간의 가상 트랜잭션을 개시하라는 표시를 수신한다. 다양한 구현예들에 따르면, 상기 표시는 발생하는 다양한 이벤트들 및 조건들에 기초하여 수신될 수 있다. 예를 들어, 상기 표시는 통신 세션을 수반할 곧 있을 캘린더 이벤트를 검출하는 것을 포함할 수 있다. 다른 예에서, 사용자는 가상 트랜잭션을 개시하기 위해 입력을 제공할 수 있다. 적어도 일부 구현예들에서, 가상 트랜잭션은 통신 라인의 행동 및 속성을 테스트하는 것과 같이, 주기적으로 자동으로 수행되도록 스케줄링될 수 있다.
단계(502)는 클라이언트 디바이스 및 통신 종단점을 식별하고, 가상 트랜잭션에 적용될 파라미터들을 포함하는 가상 트랜잭션에 대한 시뮬레이션 시나리오를 생성한다. 일반적으로, 시뮬레이션 시나리오는 가상 트랜잭션에 포함될 다양한 통신 종단점들 및 디바이스들을 지정한다. 시뮬레이션 시나리오는 또한 적용될 설정(예를 들어, 디바이스 및/또는 통신 클라이언트 설정), 교환될 통신 매체의 타입(들), 시뮬레이션될 행동(예를 들어, 사용자 행동), 가상 트랜잭션에 대한 타이밍 파라미터 등과 같은, 가상 트랜잭션에 대한 다양한 파라미터들을 지정한다. 적어도 일부 구현예들에서, 시뮬레이션 시나리오는 음성 데이터, 비디오 데이터, 콘텐츠 등과 같은, 가상 트랜잭션의 일부로서 교환될 통신 매체를 포함한다. 시뮬레이션 시나리오 및 가상 트랜잭션에 대한 예시적인 파라미터들이 앞서 논의되었다.
단계(504)는 시뮬레이션 시나리오에 따라 클라이언트 디바이스의 통신 클라이언트와 통신 종단점의 통신 클라이언트 간의 가상 트랜잭션을 개시하도록 클라이언트 디바이스에 지시한다. 예를 들어, 시뮬레이션 시나리오의 파라미터들은 클라이언트 디바이스에 전달된다. 적어도 일부 구현예들에서, 시뮬레이션 제어기는 시뮬레이션 시나리오에 따라 가상 트랜잭션을 구현하라는 통지를 클라이언트 디바이스에 전달한다.
단계(506)는 가상 트랜잭션을 수신자 통신 종단점에 통지한다. 예를 들어, 가상 트랜잭션의 다양한 속성들을 포함하는 통지가 가상 트랜잭션이 개시되는 하나 이상의 통신 종단점들에 전달된다. 적어도 일부 구현예들에서, 다양한 종단점 특유 행동 및 트랜잭션 속성을 지정하는 종단점 시나리오가 통신 종단점에 전달된다. 예를 들어, 종단점 시나리오는 가상 트랜잭션의 일부로서 수신자 통신 종단점에 의해 개시 디바이스에 전달될 통신 매체를 포함할 수 있다.
도 6은 하나 이상의 실시예들에 따라 방법의 단계들을 기술하는 흐름도이다. 상기 방법은 하나 이상의 실시예들에 따라 가상 트랜잭션을 수행하기 위한 예시적인 절차를 설명한다.
단계(600)는 시뮬레이션 시나리오에 따라 클라이언트 디바이스와 통신 종단점 간의 가상 트랜잭션을 개시하라는 지시를 수신한다. 예를 들어, 상기 지시는 클라이언트 디바이스의 통신 클라이언트와 통신 종단점의 통신 클라이언트 간의 가상 트랜잭션을 개시하라는 지시를 나타낸다. 예를 들어, 클라이언트 디바이스는 시뮬레이션 제어기로부터 지시를 수신한다. 대안적으로 또는 부가적으로, 지시는 클라이언트 디바이스에 의해, 예를 들어, 가상 트랜잭션을 개시할 디바이스에 의해 생성될 수 있다.
단계(602)는 시뮬레이션 시나리오로부터 가상 트랜잭션에 대한 파라미터를 확인한다. 예를 들어, 클라이언트 디바이스는 시뮬레이션 시나리오를 분석하여, 가상 트랜잭션이 개시될 하나 이상의 통신 종단점들을 식별한다. 클라이언트 디바이스는 가상 트랜잭션을 위해 사용될 다양한 트랜잭션 파라미터들을 더 식별할 수 있다.
단계(604)는 시뮬레이션 시나리오의 트랜잭션 파라미터에 따라 클라이언트 디바이스와 통신 종단점 간의 가상 트랜잭션을 수행한다. 예를 들어, 가상 트랜잭션은 클라이언트 디바이스의 통신 클라이언트와 통신 종단점의 통신 클라이언트 간에 수행된다. 예를 들어, 클라이언트 디바이스는 통신 세션을 개시하라는 요청을 통신 종단점에 전달한다. 적어도 일부 구현예들에서, 요청은 클라이언트 디바이스와의 VoIP 통화 및/또는 다른 통신 세션에 참여하는 것과 같은, 표준 호출 요청으로서 구현될 수 있다. 그런 다음, 클라이언트 디바이스는 시뮬레이션 시나리오에 지정 및/또는 시뮬레이션 시나리오에 포함된 통신 매체를 통신 종단점과 교환한다. 가상 트랜잭션의 일부로서 수행되는 행동 및 이벤트와 같이, 시뮬레이션 시나리오에 의해 지정된 다양한 트랜잭션 파라미터들이 또한 구현된다. 이러한 트랜잭션 파라미터들의 예가 앞에 논의되었다.
다양한 구현예들에 따라, 방법은 클라이언트 디바이스로부터 다수의 상이한 통신 종단점들로의 멀티 캐스트 통신 세션의 시뮬레이션의 일부와 같이, 다수의 상이한 통신 종단점들과 다수의 동시적 가상 트랜잭션들을 개시하도록 수행될 수 있다.
도 7은 하나 이상의 실시예들에 따라 방법의 단계들을 기술하는 흐름도이다. 상기 방법은 하나 이상의 실시예들에 따라 가상 트랜잭션의 속성들을 로깅하기 위한 예시적인 절차를 설명한다. 적어도 일부 구현예들에서, 방법은 도 6을 참조하여 앞서 논의된 방법의 예시적인 확장을 설명한다. 방법은 통신 종단점, 시뮬레이션 제어기, 네트워크 관리자 등과 같은, 가상 트랜잭션과 관련 및/또는 연관되는 다양한 엔티티들 의해 수행될 수 있다.
단계(700)는 가상 트랜잭션의 속성을 검출한다. 일반적으로, 속성은 시뮬레이션 사용자 입력, 기계 생성 이벤트 등과 같은, 가상 트랜잭션 동안 발생하는 행동 및 이벤트를 포함한다. 다양한 구현예들에 따르면, 속성은 또한 가상 트랜잭션 동안 경험된 대역폭, 패킷 대기 시간, 지터, 지연 등과 같은 성능 속성을 포함한다. 속성은 가상 트랜잭션의 개시, 수행 및 종료에서와 같은, 가상 트랜잭션의 다양한 지점에서 감지될 수 있다.
적어도 일부 구현예들에서, 검출된 속성은 통신 세션의 일부로서 사용자 경험에 관련된 속성과 같은 매체 품질 속성을 포함할 수 있다. 매체 품질 속성의 예로서, 음질, 음성 이해도, 비디오 품질, 매체 타입 및/또는 통신 종단점들 간의 동기화 품질 등을 포함한다.
단계(702)는 가상 트랜잭션의 속성을 기록한다. 예를 들어, 속성은 다른 가상 트랜잭션들 및/또는 통신 세션들로부터 해당 가상 트랜잭션을 구별하는 트랜잭션 식별자와 함께 로깅된다. 속성은 또한 개별 속성이 감지되었을 때 가상 트랜잭션 동안의 시간을 표시하기 위해 타임스탬핑될 수 있다. 예를 들어, 속성은 가상 트랜잭션의 개시, 수행, 또는 종료시 감지된 것으로 태그될 수 있다.
단계(704)는 가상 트랜잭션의 속성을 전달한다. 예를 들어, 속성은 가상 트랜잭션과 관련된 엔티티들과 같은 다양한 엔티티들에 전달될 수 있다. 적어도 일부 구현예들에서, 속성은 앞서 논의된 통지 이벤트 및/또는 관측 API를 통해 전달될 수 있다.
적어도 일부 구현예들에서, 본 명세서에서 논의된 기술들은 가상 트랜잭션의 검출된 속성에 응답하여 행해지는 변경을 테스트하기 위해 사용될 수 있다. 예를 들어, 디바이스 및/또는 네트워크 속성은 가상 트랜잭션 동안 감지된 성능 문제를 기반으로 하여 통신 성능을 복구 및/또는 최적화기 위해 변경될 수 있다. 속성이 변경된 후, 가상 트랜잭션은 다시 수행되어 변경이 통신 성능을 복구 및/또는 최적화하는데 효과적이었는지를 확인할 수 있다.
도 8은 하나 이상의 실시예들에 따라 방법의 단계들을 기술하는 흐름도이다. 상기 방법은 하나 이상의 실시예들에 따라 가상 트랜잭션의 개시를 트리거링하기 위한 예시적인 절차를 설명한다. 적어도 일부 구현예들에서, 방법은 도 5를 참조하여 앞서 논의된 단계(500)의 예시적인 구현예를 설명한다.
단계(800)는 통신 세션을 포함하는 곧 있을 캘린더 이벤트를 검출한다. 예를 들어, 캘린더 이벤트는 원격 회의, 화상 회의, UC 세션 등을 포함할 수 있다. 캘린더 이벤트는 다양한 방법으로 검출될 수 있다. 예를 들어, 환경(100)을 참조하면, 시뮬레이터 모듈(122)은 캘린더 모듈(124)로부터 캘린더 이벤트를 검출할 수 있다. 캘린더 이벤트는, 예를 들어, 캘린더 이벤트를 식별하는 캘린더 모듈(124)로부터의 통지 및/또는 캘린더 모듈(124)에 대한 질의에 기초하여 검출될 수 있다.
단계(802)는 캘린더 이벤트의 파라미터를 확인한다. 예를 들어, 캘린더 이벤트에 대한 데이터는 통신 세션에 관련된 통신 종단점들, 통신 세션에 대한 날짜 및 시간 파라미터, 통신 세션 동안 교환될 매체 타입 등을 식별할 수 있다.
단계(804)는 캘린더 이벤트의 파라미터에 기초하여 시뮬레이션 시나리오를 생성한다. 예를 들어, 시뮬레이션 시나리오는 개시 디바이스, 수신 디바이스(들) 등과 같은, 캘린더 이벤트와 관련된 다양한 통신 종단점들을 식별할 수 있다. 트랜잭션 파라미터의 다양한 다른 예들이 앞서 논의되었다.
단계(806)는 캘린더 이벤트에 대한 시뮬레이션 시나리오에 기초하여 가상 트랜잭션을 개시한다. 예를 들어, 가상 트랜잭션은 캘린더 이벤트 이전의 특정 시간, 예를 들어, 1 시간 전, 30 분전 등에서 개시되도록 스케줄링될 수 있다. 따라서, 가상 트랜잭션은 통신 종단점, 네트워크, 및 네트워크 컴포넌트 등과 같은, 캘린더 이벤트에 관련된 엔티티들에 대한 성능 속성을 테스트하기 위해 수행될 수 있다.
적어도 일부 구현예들에서, 가상 트랜잭션의 속성은 도 7을 참조하여 앞서 논의된 바와 같이 다양한 엔티티들에 보고될 수 있다. 예를 들어, 가상 트랜잭션 동안 성능 문제(예를 들어, 오류 및/또는 열악한 통신 성능)가 검출되면, 실제 캘린더 이벤트 전에 다양한 보정 작업들을 수행하여 성능 문제를 완화시키고 관련 통신 세션의 품질을 증가시킬 수 있다.
도 9는 하나 이상의 실시예들에 따라 방법의 단계들을 기술하는 흐름도이다. 상기 방법은 하나 이상의 실시예들에 따라 실제 통신 세션에 기초하여 시뮬레이션 시나리오를 생성하기 위한 예시적인 절차를 설명한다.
단계(900)는 통신 세션의 파라미터를 기록한다. 일반적으로, 통신 세션은 상이한 사용자들 간의 상호 작용의 일부로서 상이한 종단점들 간의 통신 매체의 교환을 나타낸다. 예를 들어, 통신 세션은 사용자 개시되며, 가상 트랜잭션에 대응하지 않는다.
단계(902)는 통신 세션의 파라미터에 기초하여 시뮬레이션 시나리오를 생성한다. 예를 들어, 시뮬레이션 시나리오는 통신 세션에 관련된 종단점, 통신 세션 동안 교환되는 매체 타입, 통신 세션 동안 제공되는 사용자 입력, 통신 세션에 관련된 네트워크 및 네트워크 컴포넌트, 통신 세션 동안 발생된 디바이스 행동 및 이벤트, 통신 세션 동안 시행되는 설정 등을 식별한다. 예를 들어, 시뮬레이션 시나리오는 통신 세션 동안 발생된 이벤트 및 행동을 재현한다.
다양한 구현예들에 따르면, 이 방법은 세션 오류, 열악한 통신 성능 등과 같은, 통신 세션 동안 문제가 발생했음을 검출하는 것에 응답하여 수행될 수 있다. 따라서, 시뮬레이션 시나리오는 원래 통신 세션을 시뮬레이션하는 가상 트랜잭션을 구현하기 위해 사용될 수 있다. 가상 트랜잭션의 성능 속성은 검출되어 통신 세션 동안 발생된 문제의 원인을 식별하기 위해 사용될 수 있다.
일부 예시적인 절차들이 논의되었고, 이제 하나 이상의 실시예들에 따라 예시적인 시스템 및 디바이스에 대한 논의를 고려한다.
예시적인 시스템 및 디바이스
도 10은 본 명세서에서 기술되는 다양한 기술들을 구현할 수 있는 하나 이상의 컴퓨팅 시스템 및/또는 디바이스를 나타내는 예시적인 컴퓨팅 디바이스(1002)를 포함하는 예시적인 시스템(일반적으로, 1000)을 나타낸다. 예를 들어, 도 1을 참조하여 앞서 논의된 클라이언트 디바이스(102) 및/또는 통신 종단점(112)은 컴퓨팅 디바이스(1002)로서 구현될 수 있다. 컴퓨팅 디바이스(1002)는, 예를 들어, 서비스 제공자의 서버, 클라이언트와 연관된 디바이스(예컨대, 클라이언트 디바이스), 온칩 시스템, 및/또는 임의의 다른 적합한 컴퓨팅 디바이스 또는 컴퓨팅 시스템일 수 있다.
예시된 바와 같은 예시적인 컴퓨팅 디바이스(1002)는 프로세싱 시스템(1004), 하나 이상의 컴퓨터 판독 가능 매체(1006), 및 서로 통신 가능하게 결합된 하나 이상의 입출력(I/O) 인터페이스(1008)를 포함한다. 도시되지 않았지만, 컴퓨팅 디바이스(1002)는 또한 다양한 컴포넌트들을 서로 결합시키는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 포함할 수 있다. 시스템 버스는 다양한 버스 아키텍처들 중 임의의 버스 아키텍처를 사용하는 메모리 버스 또는 메모리 제어기, 주변 버스, 범용 직렬 버스 및/또는 프로세서 또는 로컬 버스와 같은, 상이한 버스 구조 중 임의의 하나 또는 이들의 조합을 포함 할 수 있다. 제어 및 데이터 라인과 같은, 다양한 다른 예들이 또한 고려된다.
프로세싱 시스템(1004)은 하드웨어를 사용하여 하나 이상의 동작들을 수행하기 위한 기능을 나타낸다. 따라서, 프로세싱 시스템(1004)은 프로세서, 기능 블록 등으로 구성될 수 있는 하드웨어 요소(1010)를 포함하는 것으로 나타난다. 이것은 하나 이상의 반도체를 사용하여 형성된 주문형 반도체 또는 다른 로직 디바이스로서 하드웨어의 구현예를 포함할 수 있다. 하드웨어 요소(1010)는 이들이 형성되는 물질 또는 그 내부에 사용되는 프로세싱 메커니즘에 의해 제한되지 않는다. 예를 들어, 프로세서는 반도체(들) 및/또는 트랜지스터(예컨대, 전자 집적 회로(IC))로 구성될 수 있다. 이러한 문맥에서, 프로세서 실행 가능 명령어는 전자적으로 실행 가능한 명령어일 수 있다.
컴퓨터 판독 가능 매체(1006)는 메모리/스토리지(1012)를 포함하는 것으로 나타난다. 메모리/스토리지(1012)는 하나 이상의 컴퓨터 판독 가능 매체와 연관된 메모리/저장 용량을 나타낸다. 메모리/스토리지(1012)는 휘발성 매체(예를 들어, 랜덤 액세스 메모리(RAM)) 및/또는 비휘발성 매체(예를 들어, 판독 전용 메모리(ROM), 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수 있다. 메모리/스토리지(1012)는 고정형 매체(예컨대, RAM, ROM, 고정형 하드 드라이브 등)뿐만 아니라, 분리형 매체(예컨대, 플래시 메모리, 분리형 하드 드라이브, 광 디스크 등)을 포함할 수 있다. 컴퓨터 판독 가능 매체(1006)는 아래에서 더욱 설명되는 바와 같은 다양한 다른 방식으로 구성될 수 있다.
입출력 인터페이스(들)(1008)은 사용자가 컴퓨팅 디바이스(1002)에 커맨드 및 정보를 입력하도록 하고, 또한 다양한 입출력 디바이스를 사용하는 사용자 및/또는 다른 컴포넌트 또는 디바이스에 정보가 제시되도록 허용하기 위한 기능을 나타낸다. 입력 디바이스의 예로서 키보드, 커서 제어 디바이스(예컨대, 마우스), 마이크로폰(예컨대, 음성 인식 및/또는 구두 입력용), 스캐너, 터치 기능(예컨대, 물리적 터치를 검출하도록 구성된 용량성 또는 다른 센서들), 카메라(예컨대, 터치를 포함하지 않는 동작으로서 움직임을 검출하기 위해 적외선 주파수와 같은 비가시광 파장 또는 가시광 파장을 사용할 수 있음) 등을 포함한다. 출력 디바이스의 예로서, 디스플레이 디바이스(예컨대, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 반응 디바이스 등을 포함한다. 따라서, 컴퓨팅 디바이스(1002)는 사용자 상호 작용을 지원하기 위해 아래에서 더욱 설명되는 바와 같은 다양한 방식으로 구성될 수 있다.
다양한 기술들은 소프트웨어, 하드웨어 요소, 또는 프로그램 모듈의 일반적인 문맥으로 본 명세서에 기술될 수 있다. 일반적으로, 이러한 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 본 명세서에서 이용되는 바와 같은 용어 "모듈", "기능" 및 "컴포넌트"는 일반적으로 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 나타낸다. 본 명세서에 설명된 기술들의 특징은 플랫폼 독립적이고, 이것은 기술들이 다양한 프로세서를 갖는 다양한 상업용 컴퓨팅 플랫폼 상에서 구현될 수 있다는 것을 의미한다.
설명된 모듈 및 기술의 구현예는 일부 형태의 컴퓨터 판독 가능 매체를 통해 저장되거나 전송될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨팅 디바이스(1002)에 의해 액세스될 수 있는 다양한 매체를 포함할 수 있다. 제한이 아닌 예로서, 컴퓨터 판독 가능 매체는 "컴퓨터 판독 가능 저장 매체" 및 "컴퓨터 판독 가능 신호 매체"를 포함할 수 있다.
"컴퓨터 판독 가능 저장 매체"는 단순한 신호 전송, 반송파, 혹은 신호 그 자체에 대조하여 정보의 영구 저장을 가능하게 하는 매체 및/또는 디바이스를 나타낼 수 있다. 컴퓨터 판독 가능 저장 매체는 신호 그 자체를 포함하지 않는다. 컴퓨터 판독 가능 저장 매체는 휘발성 및 비휘발성, 분리형 및 비분리형 매체 및/또는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 로직 요소/회로, 또는 다른 데이터와 같은 정보의 저장에 적합한 방법 또는 기술로 구현되는 저장 디바이스와 같은 하드웨어를 포함한다. 컴퓨터 판독 가능 저장 매체의 예로서, 비제한적으로, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광학 저장 장치, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 디바이스, 또는 다른 저장 디바이스, 유형 매체, 또는 원하는 정보를 저장하는데 적합하고 컴퓨터에 의해 액세스될 수 있는 제조 물품을 포함할 수 있다.
"컴퓨터 판독 가능 신호 매체"는, 예컨대, 네트워크를 통해 컴퓨팅 디바이스(1002)의 하드웨어에 명령어를 송신하도록 구성되는, 신호 베어링 매체를 나타낼 수 있다. 신호 매체는 통상적으로 반송파, 데이터 신호 또는 다른 전송 메커니즘과 같은, 변조된 데이터 신호에 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구현할 수 있다. 신호 매체는 또한 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 신호 내에 정보를 인코딩하는 것과 같은 방식으로 설정되거나 변경된 그 특성들 중 하나 이상을 갖는 신호를 의미한다. 비제한적인 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체, 및 음향, 무선 주파수(RF), 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다.
전술한 바와 같이, 하드웨어 요소(1010) 및 컴퓨터 판독 가능 매체(1006)는 본 명세서에 설명된 기술들 중 적어도 일부 양태들을 구현하기 위해 일부 실시예들에서 사용될 수 있는 하드웨어 형태로 구현된 명령어, 모듈, 프로그램 가능 디바이스 로직 및/또는 고정 디바이스 로직을 나타낸다. 하드웨어 요소는 집적 회로 또는 온칩 시스템의 컴포넌트, 주문형 반도체(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA), 복합 프로그램 가능 로직 디바이스(CPLD), 및 실리콘 또는 다른 하드웨어 디바이스의 다른 구현예를 포함할 수 있다. 이 문맥에서, 하드웨어 요소는 하드웨어 요소에 의해 구현되는 명령어, 모듈 및/또는 로직에 의해 정의된 프로그램 태스크를 수행하는 프로세싱 디바이스뿐만 아니라 실행을 위한 명령어들을 저장하는데 이용되는 하드웨어 디바이스, 예컨대, 앞서 기술된 컴퓨터 판독 가능 저장 매체로서 동작할 수 있다.
앞서 말한 것의 조합은 또한 본 명세서에 기술된 다양한 기술 및 모듈을 구현하기 위해 사용될 수 있다. 따라서, 소프트웨어, 하드웨어, 또는 프로그램 모듈 및 다른 프로그램 모듈은 하나 이상의 하드웨어 요소(1010)에 의해 및/또는 일부 형태의 컴퓨터 판독 가능 저장 매체 상에 구현된 하나 이상의 명령어들 및/또는 로직으로 구현될 수 있다. 컴퓨팅 디바이스(1002)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정 명령어 및/또는 기능을 구현하도록 구성될 수 있다. 따라서, 소프트웨어로서의 컴퓨팅 디바이스(1002)에 의해 실행 가능한 모듈의 구현은, 예컨대, 컴퓨터 판독 가능 저장 매체 및/또는 프로세싱 시스템의 하드웨어 요소(1010)의 사용을 통해, 적어도 부분적으로 하드웨어에서 달성될 수 있다. 명령어 및/또는 기능은 본 명세서에 설명된 기술, 모듈, 및 실례를 구현하기 위해 하나 이상의 제조 물품들(예를 들어, 하나 이상의 컴퓨팅 디바이스(1002) 및/또는 프로세싱 시스템(1004))에 의해 실행 가능/동작 가능할 수 있다.
도 10에 더욱 예시된 바와 같이, 예시적인 시스템(1000)은 퍼스널 컴퓨터(PC), 텔레비전 디바이스, 및/또는 모바일 디바이스 상에서 애플리케이션을 작동하는 경우 원활한 사용자 경험을 위해 유비쿼터스 환경을 가능하게 한다. 애플리케이션을 사용하고, 비디오 게임을 하며, 비디오를 시청하는 동안 한 디바이스에서 다음의 디바이스로 이행할 때 공통의 사용자 경험을 위해 서비스 및 애플리케이션은 세 가지 환경에서 모두 실질적으로 유사하게 작동한다.
예시적인 시스템(1000)에서, 다수의 디바이스들은 중앙 컴퓨팅 디바이스를 통해 상호 연결된다. 중앙 컴퓨팅 디바이스는 다수의 디바이스에 대해 로컬일 수도 있고, 다수의 디바이스들로부터 원격으로 위치할 수도 있다. 일 실시예에서, 중앙 컴퓨팅 디바이스는 네트워크, 인터넷, 또는 다른 데이터 통신 링크를 통해 다수의 디바이스들에 연결되는 하나 이상의 서버 컴퓨터들의 클라우드일 수 있다.
일 실시예에서, 이러한 상호 연결 아키텍처는 다수의 디바이스들의 사용자에게 공통적이고 원활한 경험을 제공하기 위해 다수의 디바이스들을 통해 기능이 전달될 수 있게 한다. 다수의 디바이스들 각각은 상이한 물리적 요건 및 능력을 가질 수 있고, 중앙 컴퓨팅 디바이스는 디바이스에 대해 조정되고 모든 디바이스들에 공통인, 디바이스에 대한 경험 전달을 가능하게 하는 플랫폼을 사용한다. 일 실시예에서, 한 클래스의 타겟 디바이스들이 생성되고, 경험은 일반 클래스의 디바이스들에 대해 조정된다. 한 클래스의 디바이스들은 물리적 특징, 용도의 종류, 또는 디바이스의 다른 공통적 특성에 의해 정의될 수 있다.
다양한 구현예들에서, 컴퓨팅 디바이스(1002)는 컴퓨터(1014), 모바일(1016), 및 텔레비전(1018) 용도 등의 여러 가지 상이한 구성을 사용한다는 것을 가정할 수 있다. 이러한 구성들 각각은 일반적으로 상이한 구조 및 능력을 가질 수 있는 디바이스를 포함하고, 이에 따라, 컴퓨팅 디바이스(1002)는 상이한 디바이스 클래스들 중 하나 이상에 따라 구성될 수 있다. 예를 들어, 컴퓨팅 디바이스(1002)는 퍼스널 컴퓨터, 데스크톱 컴퓨터, 멀티 스크린 컴퓨터, 랩톱 컴퓨터, 노트북 등을 포함하는 컴퓨터(1014) 클래스 디바이스로서 구현될 수 있다.
컴퓨팅 디바이스(1002)는 또한 휴대 전화, 휴대용 뮤직 플레이어, 휴대용 게이밍 디바이스, 태블릿 컴퓨터, 멀티 스크린 컴퓨터, 웨어러블 디바이스 등과 같은, 모바일 디바이스를 포함하는 모바일(1016) 클래스 디바이스로서 구현될 수 있다. 컴퓨팅 디바이스(1002)는 또한 평상시의 시청 환경에서 일반적으로 큰 스크린에 접속되거나 이를 갖는 디바이스를 포함하는 텔레비전(1018) 클래스 디바이스로서 구현될 수 있다. 이러한 디바이스들은 텔레비전, 셋톱 박스, 게이밍 콘솔 등을 포함한다.
본 명세서에 설명된 기술들은 컴퓨팅 디바이스(1002)의 다양한 구성들에 의해 지원될 수 있으며, 본 명세서에 설명된 기술들의 특정 예들로 제한되지 않는다. 예를 들어, 환경(100)의 엔티티들을 참조하여 논의된 기능들은 아래에서 설명되는 바와 같이 플랫폼(1022)을 거쳐 분산 시스템의 이용을 통해, 예컨대, "클라우드"(1020)를 통해, 전부 또는 일부 구현될 수 있다.
클라우드(1020)는 자원(1024)에 대한 플랫폼(1022)을 나타내거나 및/또는 이를 포함한다. 플랫폼(1022)은 클라우드(1020)의 하드웨어(예컨대, 서버) 및 소프트웨어 자원의 기본 기능을 추출한다. 자원(1024)은 컴퓨터 프로세싱이 컴퓨터 디바이스(1002)로부터 원격으로 있는 서버 상에서 실행되는 동안 사용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 자원(1024)은 또한 셀룰러 또는 Wi-Fi 네트워크와 같은, 가입자 네트워크를 통해 및/또는 인터넷을 통해 제공되는 서비스를 포함할 수 있다.
플랫폼(1022)은 다른 컴퓨팅 디바이스와 컴퓨팅 디바이스(1002)를 연결하기 위해 자원 및 기능을 추출할 수 있다. 플랫폼(1022)은 또한 플랫폼(1022)을 통해 구현되는 자원(1024)에 대한 직면하는 수요에 대해 대응하는 규모 레벨을 제공하기 위해 자원의 규모를 추출하는 역할을 할 수 있다. 따라서, 상호 연결 디바이스 실시예에서, 본 명세서에 기술된 기능의 구현은 시스템(1000)에 걸쳐 분산될 수 있다. 예를 들어, 기능은 클라우드(1020)의 기능을 추출하는 플랫폼(1022)뿐만 아니라 컴퓨팅 디바이스(1002) 상에 일부 구현될 수 있다.
본 명세서에 논의된 기술들을 수행하기 위해 구현될 수 있는 다수의 방법들이 본 명세서에 논의된다. 방법들의 양태들은 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 방법은 하나 이상의 디바이스들에 의해 수행되는 동작들을 지정하는 단계들의 세트로서 도시되었지만, 개개의 단계들에 의한 동작들을 수행하기 위해 반드시 도시된 순서로 제한되는 것은 아니다. 게다가, 특정 방법에 대하여 도시된 동작은 하나 이상의 구현예들에 따른 상이한 방법의 동작과 결합 및/또는 상호 교환될 수 있다. 방법의 양태들은 환경(100)을 참조하여 앞서 논의된 다양한 엔티티들 간의 상호 작용을 통해 구현될 수 있다.
결론
통신 종단점들 간의 가상 트랜잭션을 위한 기술이 설명된다. 실시예들이 구조적 특징 및/또는 방법론적 행위에 특정한 언어로 설명되었지만, 첨부된 특허 청구 범위에 정의된 실시예들은 반드시 설명된 특정한 특징 또는 행위로 제한되는 것이 아님이 이해될 것이다. 오히려, 특정한 특징 및 행위는 주장되는 실시예들을 구현하는 예시적인 형태로서 개시된다.

Claims (15)

  1. 통신 세션의 성능을 최적화하기 위한 시스템에 있어서,
    적어도 하나의 프로세서; 및
    저장된 명령어들을 포함하는 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함하고, 상기 명령어들은 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 상기 시스템이,
    시뮬레이션 시나리오에 따라, 클라이언트 디바이스의 통신 클라이언트와 통신 종단점의 통신 클라이언트 간의 가상 트랜잭션(synthetic transaction)을 개시하라는 지시를 수신하는 동작;
    상기 시뮬레이션 시나리오로부터 상기 가상 트랜잭션의 파라미터 - 상기 파라미터는 상기 가상 트랜잭션이 수행될 하나 이상의 통신 종단점, 및 상기 가상 트랜잭션의 일부로서 적용될 트랜잭션 파라미터를 포함함 - 를 확인하는 동작;
    상기 트랜잭션 파라미터에 따라, 상기 클라이언트 디바이스의 통신 클라이언트와 상기 통신 종단점의 통신 클라이언트 간의 상기 가상 트랜잭션을 수행하는 동작; 및
    통신 세션의 최적화를 발생시키기 위해 상기 가상 트랜잭션의 일부로서 검출된 하나 이상의 속성을 전달하는 동작
    을 수행하게 하는 것인, 통신 세션의 성능을 최적화하기 위한 시스템.
  2. 제 1 항에 있어서, 상기 가상 트랜잭션을 개시하라는 지시는, 상기 클라이언트 디바이스와의 통신 세션을 포함하는 곧 있을 캘린더 이벤트를 검출하는 것에 응답하여 수신되고, 상기 트랜잭션 파라미터는 상기 통신 세션의 하나 이상의 파라미터를 시뮬레이션하는 것인, 통신 세션의 성능을 최적화하기 위한 시스템.
  3. 제 1 항에 있어서, 상기 시스템은,
    상기 클라이언트 디바이스의 통신 클라이언트와 상기 통신 종단점의 통신 클라이언트 간의 상기 가상 트랜잭션과 동시에, 상기 클라이언트 디바이스의 통신 클라이언트와 적어도 하나의 다른 통신 종단점의 통신 클라이언트 간의 추가의 가상 트랜잭션을 개시하라는 추가의 지시를 수신하는 동작; 및
    상기 클라이언트 디바이스의 통신 클라이언트와 상기 통신 종단점의 통신 클라이언트 간의 상기 가상 트랜잭션을 수행하는 동시에, 상기 클라이언트 디바이스의 통신 클라이언트와 상기 적어도 하나의 다른 통신 종단점의 통신 클라이언트 간의 상기 추가의 가상 트랜잭션을 수행하는 동작
    을 더 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 시스템.
  4. 제 3 항에 있어서, 상기 적어도 하나의 다른 통신 종단점은 다수의 상이한 통신 종단점을 포함하고, 상기 추가의 가상 트랜잭션은 상기 클라이언트 디바이스에 의해 상기 다수의 상이한 통신 종단점으로 개시된 멀티 캐스트 통신 세션의 시뮬레이션을 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 시스템.
  5. 제 1 항에 있어서, 상기 시스템은,
    상기 가상 트랜잭션의 성능 속성 또는 매체 품질 속성 중 하나 이상을 포함하는, 상기 가상 트랜잭션의 속성을 검출하는 동작; 및
    상기 가상 트랜잭션의 상기 속성을 기록하는 동작
    을 더 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 시스템.
  6. 제 1 항에 있어서, 상기 시뮬레이션 시나리오는 음성 매체 또는 영상 매체 중 적어도 하나를 포함하는 통신 매체의 하나 이상의 인스턴스를 포함하고, 상기 가상 트랜잭션을 수행하는 동작은, 상기 클라이언트 디바이스의 통신 클라이언트와 상기 통신 종단점의 통신 클라이언트 간에 상기 통신 매체의 하나 이상의 인스턴스를 교환하는 동작을 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 시스템.
  7. 제 1 항에 있어서, 상기 통신 종단점은 최종 사용자 디바이스의 논리적 표현(logical representation)인 시뮬레이션 통신 종단점을 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 시스템.
  8. 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법에 있어서,
    클라이언트 디바이스의 통신 클라이언트와 통신 종단점의 통신 클라이언트 간의 가상 트랜잭션을 개시하라는 표시를 수신하는 단계;
    상기 클라이언트 디바이스 및 상기 통신 종단점을 식별하고 상기 가상 트랜잭션에 적용될 파라미터를 포함하는, 상기 가상 트랜잭션에 대한 시뮬레이션 시나리오를 생성하는 단계;
    상기 시뮬레이션 시나리오에 따라, 상기 클라이언트 디바이스의 통신 클라이언트와 상기 통신 종단점의 통신 클라이언트 간의 상기 가상 트랜잭션을 개시하도록 상기 클라이언트 디바이스에 지시하는 단계; 및
    통신 세션의 성능 최적화를 발생시키도록 상기 가상 트랜잭션의 하나 이상의 속성이 전달되게 하는 단계
    를 포함하는 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
  9. 제 8 항에 있어서, 상기 표시는 상기 클라이언트 디바이스의 통신 클라이언트와 상기 통신 종단점의 통신 클라이언트 간의 주기적으로 스케줄링된 가상 트랜잭션에 덧붙여 수신되는 것인, 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
  10. 제 8 항에 있어서, 상기 수신하는 단계는,
    상기 통신 세션을 포함하는 곧 있을 캘린더 이벤트를 검출하는 단계; 및
    상기 캘린더 이벤트의 파라미터를 확인하는 단계를 포함하고,
    상기 생성하는 단계는, 상기 캘린더 이벤트의 상기 파라미터에 적어도 부분적으로 기초하여 상기 시뮬레이션 시나리오를 생성하는 단계를 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
  11. 제 10 항에 있어서, 상기 지시하는 단계는, 상기 캘린더 이벤트 이전에 상기 가상 트랜잭션을 개시하도록 상기 클라이언트 디바이스에 지시하는 단계를 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
  12. 제 8 항에 있어서, 상기 생성하는 단계는, 이전에 기록된 통신 세션을 시뮬레이션하기 위해 상기 시뮬레이션 시나리오를 생성하는 단계를 포함하는 것인, 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
  13. 제 8 항에 있어서,
    상기 클라이언트 디바이스의 통신 클라이언트와 하나 이상의 다른 통신 종단점의 통신 클라이언트 간의 추가의 가상 트랜잭션을 개시하라는 표시를 수신하는 단계;
    상기 클라이언트 디바이스 및 상기 하나 이상의 다른 통신 종단점을 식별하고 상기 추가의 가상 트랜잭션에 적용될 파라미터를 포함하는, 상기 추가의 가상 트랜잭션에 대한 추가의 시뮬레이션 시나리오를 생성하는 단계; 및
    상기 클라이언트 디바이스의 통신 클라이언트와 상기 통신 종단점의 통신 클라이언트 간의 상기 가상 트랜잭션과 동시에, 상기 추가의 가상 트랜잭션을 개시하도록 상기 클라이언트 디바이스에 지시하는 단계
    를 더 포함하는 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
  14. 제 13 항에 있어서, 상기 가상 트랜잭션 및 상기 추가의 가상 트랜잭션은,
    상기 클라이언트 디바이스로부터 다수의 통신 종단점으로의 멀티 캐스트 통신 세션의 시뮬레이션, 또는
    상기 클라이언트 디바이스와 다수의 통신 종단점 간의 전화 회의(conference call)의 시뮬레이션
    중 적어도 하나를 나타내는 것인, 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
  15. 제 8 항에 있어서,
    상기 가상 트랜잭션의 속성을 기록하는 단계; 및
    상기 가상 트랜잭션에 관련된 하나 이상의 엔티티들에 상기 속성을 전달하는 단계
    를 더 포함하는 통신 세션의 성능을 최적화하기 위한 컴퓨터 구현 방법.
KR1020177004862A 2014-07-22 2015-07-16 통신 종단점들 간의 가상 트랜잭션 KR20170036735A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/337,857 2014-07-22
US14/337,857 US10021214B2 (en) 2014-07-22 2014-07-22 Synthetic transactions between communication endpoints
PCT/US2015/040673 WO2016014323A1 (en) 2014-07-22 2015-07-16 Synthetic transactions between communication endpoints

Publications (1)

Publication Number Publication Date
KR20170036735A true KR20170036735A (ko) 2017-04-03

Family

ID=53836199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177004862A KR20170036735A (ko) 2014-07-22 2015-07-16 통신 종단점들 간의 가상 트랜잭션

Country Status (18)

Country Link
US (1) US10021214B2 (ko)
EP (1) EP3146755B1 (ko)
JP (1) JP2017523709A (ko)
KR (1) KR20170036735A (ko)
CN (1) CN106664584B (ko)
AU (1) AU2015294437A1 (ko)
BR (1) BR112017000859A2 (ko)
CA (1) CA2955016A1 (ko)
CL (1) CL2017000127A1 (ko)
CO (1) CO2017000373A2 (ko)
IL (1) IL249586A0 (ko)
MX (1) MX2017000894A (ko)
PH (1) PH12016502423A1 (ko)
RU (1) RU2017101818A (ko)
SG (1) SG11201700261YA (ko)
TW (1) TW201611545A (ko)
WO (1) WO2016014323A1 (ko)
ZA (1) ZA201608383B (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582399B2 (en) * 2014-03-14 2017-02-28 Ca, Inc. Entropy weighted message matching for opaque service virtualization
CN105335142B (zh) * 2014-07-29 2019-03-15 国际商业机器公司 在事务处理系统中标识事务的性能瓶颈的方法和装置
US9730133B2 (en) * 2015-05-15 2017-08-08 Microsoft Technology Licensing, Llc Synthetic transaction for wireless handover
US20170295209A1 (en) * 2016-04-11 2017-10-12 Microsoft Technology Licensing, Llc Subscription for Communication Attributes
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US10313406B2 (en) 2016-11-01 2019-06-04 Microsoft Technology Licensing, Llc Synthetic transaction to determine centroid for cloud hosting
US10992729B2 (en) 2017-04-18 2021-04-27 Microsoft Technology Licensing, Llc Endpoint configuration for a communication session
US20180316741A1 (en) * 2017-05-01 2018-11-01 Microsoft Technology Licensing, Llc Synthetic Transaction based on Network Condition
US10541940B2 (en) * 2017-05-03 2020-01-21 International Business Machines Corporation Quality of service (QoS) stored procedures
US11070581B1 (en) * 2017-08-24 2021-07-20 Wells Fargo Bank, N.A. Eliminating network security blind spots
EP3600581B1 (en) 2017-10-10 2024-02-21 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
US11140207B2 (en) * 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
EP3700640B1 (en) 2018-03-22 2021-05-26 Google LLC Methods and systems for rendering and encoding content for online interactive gaming sessions
EP3773953B1 (en) 2018-04-02 2024-06-19 Google LLC Methods, devices, and systems for interactive cloud gaming
US11872476B2 (en) 2018-04-02 2024-01-16 Google Llc Input device for an electronic system
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
JP7073494B2 (ja) 2018-04-10 2022-05-23 グーグル エルエルシー ゲームレンダリングにおけるメモリ管理
US11068380B2 (en) 2018-08-08 2021-07-20 Servicenow, Inc. Capturing and encoding of network transactions for playback in a simulation environment
US10678676B2 (en) * 2018-08-08 2020-06-09 Servicenow, Inc. Playback of captured network transactions in a simulation environment
WO2020102493A1 (en) 2018-11-16 2020-05-22 Google Llc Shadow tracking of real-time interactive simulations for complex system analysis
US11916775B1 (en) 2023-03-17 2024-02-27 Netskope, Inc. Multi-tenant cloud native control plane system
US11968269B1 (en) 2023-03-17 2024-04-23 Netskope, Inc. Hybrid tag based virtual private network with scalable next hop convergence

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1387271A1 (en) * 2002-07-29 2004-02-04 Sun Microsystems, Inc. Method and apparatus for generating an operational processing load
GB2398457B (en) * 2003-02-12 2006-05-10 Ubinetics Ltd Developing a user activity profile
US7433925B1 (en) 2003-08-29 2008-10-07 Cisco Technology, Inc. Method and apparatus for measuring health and performance of a messaging system
WO2006099473A2 (en) 2005-03-15 2006-09-21 Mformation Technologies Inc. System and method for monitoring and measuring end-to-end performance using wireless devices
WO2007008929A2 (en) * 2005-07-13 2007-01-18 Grape Technology Group, Inc. System and method for providing mobile device services using sms communications
JP5000652B2 (ja) 2005-07-28 2012-08-15 エムフォメーション・テクノロジーズ・インコーポレイテッド ワイヤレス装置のサービス品質管理のためのシステムおよび方法
US8051163B2 (en) * 2006-05-11 2011-11-01 Computer Associates Think, Inc. Synthetic transactions based on system history and load
US20080080536A1 (en) 2006-10-02 2008-04-03 Texas Instruments Incorporated Media access control layer bridging of a real communication device to a simulated network
US8898325B2 (en) * 2007-03-06 2014-11-25 Trion Worlds, Inc. Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment
CN101389107B (zh) * 2007-09-10 2012-04-18 中兴通讯股份有限公司 一种大话务模拟测试系统和方法
US7890821B2 (en) 2007-10-04 2011-02-15 Veriwave, Inc. Channel impairment emulator systems and methods
US8326971B2 (en) * 2007-11-30 2012-12-04 International Business Machines Corporation Method for using dynamically scheduled synthetic transactions to monitor performance and availability of E-business systems
US8295191B2 (en) * 2008-03-04 2012-10-23 Microsoft Corporation Endpoint report aggregation in unified communication systems
US8659639B2 (en) * 2009-05-29 2014-02-25 Cisco Technology, Inc. System and method for extending communications between participants in a conferencing environment
US20110004926A1 (en) * 2009-07-01 2011-01-06 International Business Machines Coporation Automatically Handling Proxy Server and Web Server Authentication
WO2012018477A2 (en) * 2010-07-26 2012-02-09 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
EP2523494B1 (en) * 2011-05-11 2014-01-29 Prisma Engineering S.r.l. Mobile terminal simulator for a wireless telecommunications network and method to simulate a mobile terminal
US9106513B2 (en) 2012-03-23 2015-08-11 Microsoft Technology Licensing, Llc Unified communication aware networks
US9413792B2 (en) 2012-11-09 2016-08-09 Microsoft Technology Licensing, Llc Detecting quality of service for unified communication and collaboration (UC and C) on internetworks

Also Published As

Publication number Publication date
CN106664584A (zh) 2017-05-10
CN106664584B (zh) 2020-10-27
CL2017000127A1 (es) 2017-08-18
TW201611545A (zh) 2016-03-16
ZA201608383B (en) 2018-05-30
IL249586A0 (en) 2017-02-28
EP3146755B1 (en) 2019-01-16
MX2017000894A (es) 2017-05-04
WO2016014323A1 (en) 2016-01-28
BR112017000859A2 (pt) 2017-12-05
US10021214B2 (en) 2018-07-10
PH12016502423A1 (en) 2017-03-06
AU2015294437A1 (en) 2017-01-12
US20160028854A1 (en) 2016-01-28
CA2955016A1 (en) 2016-01-28
SG11201700261YA (en) 2017-02-27
EP3146755A1 (en) 2017-03-29
RU2017101818A (ru) 2018-07-23
JP2017523709A (ja) 2017-08-17
CO2017000373A2 (es) 2017-02-09

Similar Documents

Publication Publication Date Title
US10021214B2 (en) Synthetic transactions between communication endpoints
CN110537348B (zh) 用于通信会话的端点配置
CN106664249B (zh) 传播针对自主网络的路由感知
US10608996B2 (en) Trust status of a communication session
US9730133B2 (en) Synthetic transaction for wireless handover
US9860321B2 (en) Propagating communication awareness over a cellular network
US20180316741A1 (en) Synthetic Transaction based on Network Condition
US20180287931A1 (en) Provisioning a Network Node for Attribute Sharing
US9667777B1 (en) Automated bulk provisioning of primary rate interface and SIP trunk telephone numbers
US9609064B2 (en) Propagating communication awareness for communication sessions
US20170295209A1 (en) Subscription for Communication Attributes
US20170026474A1 (en) Communication Session Recording
BR112017001317B1 (pt) Método implementado por computador e sistema para propagação de consciência de comunicação para sessões de comunicação