KR101352694B1 - Sip 서블릿 애플리케이션 공동 호스팅 방법, 서버 및 컴퓨터 판독 가능한 저장매체 - Google Patents

Sip 서블릿 애플리케이션 공동 호스팅 방법, 서버 및 컴퓨터 판독 가능한 저장매체 Download PDF

Info

Publication number
KR101352694B1
KR101352694B1 KR1020100029284A KR20100029284A KR101352694B1 KR 101352694 B1 KR101352694 B1 KR 101352694B1 KR 1020100029284 A KR1020100029284 A KR 1020100029284A KR 20100029284 A KR20100029284 A KR 20100029284A KR 101352694 B1 KR101352694 B1 KR 101352694B1
Authority
KR
South Korea
Prior art keywords
application
message
sub
router
sip
Prior art date
Application number
KR1020100029284A
Other languages
English (en)
Other versions
KR20110001863A (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 KR20110001863A publication Critical patent/KR20110001863A/ko
Application granted granted Critical
Publication of KR101352694B1 publication Critical patent/KR101352694B1/ko

Links

Images

Classifications

    • 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/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • 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
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

서버와 같은 단일 머신이 SIP서블릿 기반 제품을 제공하는 멀티-SIP Archive(SAR) 애플리케이션을 공동 호스팅할 수 있게 하는 방법, 장치 및 시스템을 제공한다. 개별적인 SAR가 아닌 다른 서브-애플리케이션 라우터를 조절하도록 구성되는 루트 애플리케이션 라우터의 개념이 도입된다. 이들 다른 서브-애플리케이션 라우터는 고유의 권한으로 완전히 갖추어진 애플리케이션 라우터이지만, 제어하는 루트 애플리케이션 라우터를 알지 못한다.

Description

SIP 서블릿 애플리케이션 공동 호스팅 방법, 서버 및 컴퓨터 판독 가능한 저장매체{SIP SERVLET APPLICATIONS CO-HOSTING}
본 발명은 전반적으로 통신에 관한 것이며, 더 구체적으로 SIP 분야에 관한 것이다.
SIP(Session Initiation Protocol)는 많은 종류의 실시간 통신 세션을 확립하기 위한 오픈 시그널링 프로토콜(open signaling protocol)이다. SIP를 사용하여 확립될 수 있는 통신 세션의 유형의 예로는 음성, 비디오 및/또는 인스턴트 메시징이 있다. 이들 통신 세션은 개인용 컴퓨터, 랩탑 컴퓨터, PDA(Personal Digital Assistant) 등과 같은 임의의 유형의 통신 장치 상에서 실행될 수 있다. SIP의 한가지 핵심적인 특징은 그것이 최종 사용자의 AOR(Address of Record)을 모든 통신에 있어서 하나의 통합 공개 어드레스로서 사용할 수 있다는 것이다. 따라서, SIP 향상 통신(SIP-enhanced communication)의 세계에서는, 사용자의 AOR이 그 사용자와 관련된 모든 통신 장치에 사용자를 링크시키는 단일 어드레스가 된다. 이 AOR을 사용하면, 발신자는 고유 장치 어드레스들 또는 전화번호들 각각을 알 필요없이 UA(User Agent)라고도 하는 사용자의 통신 장치들 중 어느 하나에 도달할 수 있다.
JSR(Java Specification Request) 289 사양과 함께 애플리케이션 라우터의 개념이 도입되었는데, 그 전체 내용은 본원에 참고로서 포함된다. 애플리케이션 라우터는 애플리케이션 구성(application composition)을 담당한다. 이러한 상황에서, 애플리케이션 구성은 복수의 애플리케이션을 논리적인 시퀀스에 "체이닝(chaining)"하는 프로세스이다. 복수의 애플리케이션이 함께 체이닝될 때, 애플리케이션은 주어진 SIP 메시지를 프로세싱하고, 필요한 프로세싱이 행해지면 애플리케이션은 SIP 메시지를 그 체인 내의 다음 애플리케이션에게 전달한다.
애플리케이션 구성에 포함될 수 있는 SIP 애플리케이션의 예로는 프레즌스(presence) 애플리케이션, 접속 분석 애플리케이션(contact resolution application), 통화 설정 애플리케이션, 블랙리스트 애플리케이션, 음성메일 애플리케이션 및 SIP 아키텍처 내의 일부 종류의 특징을 제공하는 기타 애플리케이션을 포함한다. 애플리케이션 구성의 일례로서, 인입 SIP 메시지는 정상적인 통화 설정 애플리케이션으로 전달되기 전에 블랙리스트 애플리케이션에 의해 먼저 필터링되고, 그 다음에 N 회의 벨이 울린 후에 음성메일 애플리케이션으로 전달될 수 있다.
JSR 289는 개발자의 역할이 애플리케이션 라우터를 구현함으로써 애플리케이션 구성을 정의하는 것임을 밝히고 있다. 이런 의미에서 애플리케이션을 SAR(SIP Archive) 또는 SAR 파일이라 하는데, 여기서 SAR 파일은 하나 이상의 서블릿(servlet)을 포함한다. 그러나, 실제로는 애플리케이션은 흔히 여러 개의 SAR 파일 및 여러개의 서블릿을 포함한다(이는 멀티 SAR 애플리케이션으로 알려져 있다). 각각의 SAR 파일은 애플리케이션의 일부 특징의 래퍼(wrapper)를 나타낸다. 개발자는 흔히 자신의 SAR 파일만 조정할 수 있는 특화된 애플리케이션 라우터를 포함한다. 서블릿은 또한 WAR(Web Archive) 또는 WAR 파일에 포함될 수도 있다.
JSR 289는 SIP 서블릿 콘테이너가 복수의 애플리케이션 라우터를 어떻게 관리하는 지 정의하지 않고, 따라서 현재로는 하나보다 많은 멀티 SAR 애플리케이션을 동일한 SIP 서블릿 콘테이너 상에서 신뢰할 수 있게 분배하는 메커니즘이 존재하지 않는다. 이것은 애플리케이션 서버가 극도로 제한된 애플리케이션만 분배할 수 있다는 것을 의미하는데, 이는 비효율적이고 SIP 애플리케이션 서버를 사용하는 주 이유에 반하는 것이다. 당업자라면 알 수 있듯이, 서버는 흔히 하나보다 많은 멀티 SAR 애플리케이션을 지원하기 위해 충분한 프로세싱 자원 및/또는 메모리 자원을 갖고 있기 때문에. 이것은 매우 불편하며 자원 낭비가 된다. 사실, 이것은 많은 웹사이트와 서비스를 동시에 호스트할 수 있는 대신에 한 세트의 페이지 또는 애플리케이션만 서비스하는 WAS 또는 웹로직(Weblogic)과 같은 웹 서버를 사용하는 것과 유사하다.
예컨대, SIP 애플리케이션 서버에게 분배되는, 각각이 복수의 SAR로 이루어지는 2개의 복합 애플리케이션을 고려해 보자. 제 1 애플리케이션은 PBX 유형의 애플리케이션이고, 제 2 애플리케이션은 호 라우팅 애플리케이션일 수 있다. 호 라우팅 애플리케이션의 복잡도로 인해, 각각의 애플리케이션에 대해 커스텀 애플리케이션 라우터를 기록할 필요가 있다. 이들 논리 애플리케이션 및 관련 애플리케이션 라우터는 개별적으로 개발되었지만 이제 그들을 동일 애플리케이션 서버 상에서 호스트하는 것이 요구된다. 이 문제에 대한 종래기술의 해법은 단일 커스텀 애플리케이션 라우터를 배치할 수 있는 것만으로 제한된다. 따라서, 2개의 애플리케이션 라우터를 단일 애플리케이션 라우터로 재기록/병합할 필요가 있다. 이러한 프로세스는 시간이 많이 걸리고 어렵다.
이러한 아키텍처가 도 1에 도시되어 있는데, 여기서 통신 시스템(100)은 통신망(104)를 통해 애플리케이션 서버(112)에 연결된 다수의 통신 장치(108)를 포함한다. 도 1에 도시되어 있는 바와 같이, 애플리케이션 서버(112)는 애플리케이션 서버(112)가 통신망(104)로부터 인입 SIP 메시지를 수신할 수 있게 하는 네트워크 인터페이스(116)를 포함할 수 있다.
네트워크 인터페이스(116)에서 수신된 메시지는 DIP 서블릿 콘테이너(120)로 전달된다. SIP 서블릿 콘테이너(120)는 최초 메시지 요구를 프로세싱하고 그러한 요구를 애플리케이션 라우터(124)로 전달하는 것을 담당한다. SIP 서블릿 콘테이너는 또한 B2BUA(Back-to-Back User Agent) 또는 프록시 역할을 한다. 메시지가 애플리케이션 라우터(124)로 전달되면, 애플리케이션 라우터(124)는 SIP 요구를 검사하고 요구 프로세싱을 완료하기 위해 실행될 필요가 있는 애플리케이션(즉, SAR 파일(128a-N))을 선택한다. 애플리케이션 라우터는 일반적으로 어떠한 요구도 변경하지 않는다. 따라서, 애플리케이션 라우터(124)는 적절한 SAR 파일(128)을 식별하고, SIP 서블릿 콘테이너(120)에게 자신의 결정을 통보한다. 그러면, SIP 서블릿 콘테이너(120)는 JSR289에 기술된 메카니즘에 의해 결정된) SAR 내의 적절한 서블릿을 호출하고, 서블릿에 따라 요구가 프로세싱된다. 요구가 적절히 프로세싱되면, SIP 서블릿 콘테이너(120)는 요구를 다시 네트워크 인터페이스(116)로 전송하고, 여기서 요구는 추후의 프로세싱을 위해 통신망(100) 내의 다른 장치로 전송될 수 있다. 이것은 요구를 다른 애플리케이션 서버에게 전달하거나 요구를 사용자 통신 장치(108)에게 전달하는 것을 포함할 수 있다.
JSR289에 따라 복수의 애플리케이션을 공통 호스트하는 2개의 일반적인 접근법이 있다. 첫번째 접근법은 단순히 애플리케이션 서버(112)의 복수의 인스턴스를 실행하는 것으로, 여기서 각각의 서버는 하나의 멀티 SAR 애플리케이션을 호스트한다. 이것은 하나의 물리적 머신을 분할하는 가상화 기술을 포함한다. 두 번째 접근법은 전개자가 동일 서버 상에서 이들 애플리케이션을 조정하도록 커스텀 애플리케이션 라우터를 구현하는 것이다.
현재의 상업적 관례는 일반적으로 전술한 각각의 멀티 SAR 애플리케이션을 호스트하도록 복수의 서버 인스턴스를 배치하지만, 서버 접근법에 의하면 하나의 애플리케이션이 부가적인 하드웨어 및 관리 비용을 부과할 수 있다. 두번째 접근법은 개발자가 호스팅되는 각각의 애플리케이션에 대한 라우팅 로직을 이해하여 재구현할 것을 요구한다. 이 방법은 오류가 발생하기 쉽고 개발/배치 시간을 증가시킨다. 또한, 존재하는 애플리케이션의 수에 따라 머신의 복잡도가 증가한다.
따라서, 본 발명의 일측면은 개별 SAR보다 다른 서브애플리케이션 라우터를 조정하는 루트 애플리케이션 라우터의 개념을 도입하는 것이다. 이들 다른 서브 애플리케이션 라우터는 자체로 완전한 애플리케이션 라우터이지만 제어 루트 애플리케이션 라우터는 알지 못한다.
본원 명세서에서 사용되는 바와 같이, SAR은 애플리케이션의 특정 기능 또는 특징을 수행하는 애플리케이션이지만, 애플리케이션은 일반적으로 여러개의 SAR(예컨대, 멀티 SAR 애플리케이션)을 포함한다. SAR 파일, WAR 파일, EAR 등은 SIP 메시지 또는 SIP 요구에 대한 동작을 실행하는 것과 함께 사용되는 서블릿을 포함하는 것을 담당한다. SAR/WAR 파일은 실제 비즈니스/애플리케이션 로직및 특정 기능을 실행하는 라우팅 로직을 포함하는 아카이브이다.
서브-애플리케이션 라우터는 JSR 289에서 정의되는 애플리케이션 라우터 인터페이스를 구현하며 자신 고유로 JSR 289 순응 콘테이너 내에서 개발될 수 있다. 그러나, 본 발명의 적어도 일부 실시예에 따르면, 이들 서브-애플리케이션 라우터는 SIP 서블릿 콘테이너가 아닌 루트 애플리케이션 라우터에 의해 로딩되고 관리될 수 있다.
SIP 서블릿 콘테이너는 루트 애플리케이션 라우터를 인식하기 위해서만 제공될 수 있다. SIP 서블릿 콘테이너에서 수신되는 인입 SIP 메시지는 루트 애플리케이션 라우터로 전달될 것이다. 루트 애플리케이션 라우터는 (선택 알고리즘에 따라서) 인입 SIP 메시지를 서브-애플리케이션 라우터의 인스턴스로 위임할 것인데, 이는 SIP 메시지의 후속 프로세싱을 조정함으로써, 이 방안이 JSR 289에 따른 단일 애플리케이션 라우터로서 보이게할 것이다.
본 발명의 적어도 일부 실시예에 따르면, 애플리케이션 라우터 기반으로 정의되는 라우팅 규칙(즉, 메시지를 서브-애플리케이션 라우터로 라우팅하기 위해 루트 애플리케이션 라우터에 의해 사용되는 규칙)은 서브-애플리케이션 라우터에 대해 중요하지 않다. 오히려, 이 구성은 시스템 개발자의 책임일 것이다.
일례는 아래와 같다.
Figure 112010020593790-pat00001
이는, 루트 URI 또는 요청 URI 사용자 부분이 텍스트 "voicemail"과 일치하면 메시지를 서브-애플리케이션 라우터로 송신하고 해석될 수 있다. 이는 필수적으로 메시지 콘텐츠에 기초하여 서브-애플리케이션 라우터의 선택을 구분하게 한다. SIP 메시지를 수신하면, 루트 애플리케이션 라우터는 순차적으로 규칙 세트를 평가할 것이다. 평가 순서는 중요하며 개발자(통상적으로 고객 네트워크 관리자)는 이 리스트를 완전히 제어한다. 예를 들어, 전면에 배치되는 와일드카드 규칙은 그 뒤의 애플리케이션이 어떠한 SIP 메시지도 보지않을 것이라는 것을 의미한다. 서브-애플리케이션이 어떠한 매칭 규칭도 지정하지 않는 경우, 와일드카드이며 모든 메시지를 프로세싱하기를 원한다고 가정한다.
본 발명의 적어도 일부 실시예에 따르면, 제 1 애플리케이션 서버의 네트워크 인터페이스에서 제 1 메시지를 수신하는 단계와, 제 1 애플리케이션 서버 내의 루트 애플리케이션 라우터로 제 1 메시지를 전달하는 단계와, 루트 애플리케이션 라우터에 의해, 제 1 메시지를 수신하고 이어서 분석할 서브-애플리케이션 라우터를 결정하는 단계와, 제 1 메시지를 서브-애플리케이션 라우터로 전달하는 단계를 포함하는 방법이 제공되는데, 이 서브-애플리케이션 라우터 또한 제 1 애플리케이션 서버 내에 상주한다.
본 발명의 적어도 일부 실시예에 따르면, SIP 서블릿은 SAR 파일, WAR 파일, EAR 파일 등과 같은 자기-포함 jar 파일(self-contained jar file)로 패키징되는데, 이는 개별적으로 개발되거나 개발되지 않을 수 있다. SIP 서블릿은 SIP 기능을 지원하기 위해 로딩되는 인터페이스를 향상시킨다는 점에서 다른 유형의 서블릿과 매우 유사하다. 다른 유형의 서블릿의 일례는, 웹 서버 또는 애플리케이션 서버를 운영하고 통상적으로 데이터베이스에 접속하거나 e-commerce 프로세싱을 위한 서버측 프로세싱을 제공하는 Java 애플리케이션인 http 서블릿이다. 이는 CGI 스크립트, ASP(Active Server Pages) 및 C와 C++로 기록된 독점 플러그-인에 대한 Jave-기반 교체이다. 서블릿은 CGI 개념과 유사하지만, 별도의 프로세스를 사용하는 대신, 서버 내부의 가상 머신 내에서 실행되는 클래스로 메시지가 전달된다.
많은 서블릿이 이들을 서버와 운영 시스템 사이에서 이식 가능하게 하는 특정 프로그래밍 언어(가령, Java)로 기록된다. Java는 서블릿을 생성하기 위해 사용될 수 있는 프로그래밍 언어의 일례이지만, 당업자는 본 발명의 실시예에 이에 한정되지 않는다는 것을 인식할 것이다. 더 구체적으로, 본 발명의 실시예는, 서버 및/또는 운영 시스템 사이에서 SIP 서블릿을 이식 가능하게 하는 임의의 유형의 프로그래밍 언어로 서블릿을 생성하는 것을 고려한다. 또한, 본 발명의 실시예는 서버(가령, 기업 서버 및 특히 SIP 서버)상의 가상 머신 내부에서 실행될 수 있는 SIP 서블릿을 고려한다.
본 명세서에서 사용되는 "컴퓨터-판독 가능한 매체"라는 용어는 실행을 위해 인스트럭션을 프로세서에 제공하는 데에 참가하는 임의의 유형적 저장매체 및/또는 전송 매체를 지칭한다. 이러한 매체는 비휘발성 매체, 휘발성 매체 및 전송 매체를 포함하는 많은 형태를 취할 수 있으며, 이에 한정되지 않는다. 비휘발성 매체는, 예를 들어, NVRAM 또는 자기 또는 광 디스크를 포함한다. 비휘발성 매체는 메인 메모리와 같은 동적 메모리를 포함한다. 컴퓨터 판독 가능한 매체의 공통적인 형태는, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프 또는 임의의 다른 자기 매체, 자기-광 매체, CD-ROM, 임의의 다른 광 매체, 펀치 카드, 페이퍼 테이프, 홀 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 메모리카드와 같은 고체 상태 매체, 임의의 다른 메모리 칩 또는 카트리지, 후술할 바와 같은 반송파, 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다. 이메일 또는 자기-포함 정보 아카이브 또는 아카이브 세트에 첨부되는 디지털 파일은 유형의 저장 매체와 균등한 분산 매체로서 고려된다. 컴퓨터 판독 가능한 매체가 데이터베이스로서 구성되는 경우, 이 데이터베이스는 관계적, 계층적, 객체 지향적 데이터베이스 등과 같은 임의의 유형의 데이터베이스일 수 있다는 것을 이해할 것이다. 따라서, 본 발명은 유형의 저장 매체 또는 분산 매체 및 종래 인식되는 균등물 및 후속 매체를 포함하는 것으로 고려되며, 여기에 본 발명의 소프트웨어 구현이 저장된다.
본 명세서에서 사용되는 "결정하다", "계산하다" 및 "연산하다"와 같은 용어 및 그 어미 변화는 상호 교환 가능하게 사용되며 임의의 유형의 방법, 프로세스, 수학적 연산 또는 기술을 포함한다.
본 명세서에서 사용되는 "모듈", "에이전트" 또는 "툴"과 같은 용어는 임의의 알려지거나 추후에 개발된 하드웨어, 소프트웨어, 인공 지능, 퍼지 로직 도는 그 요소와 관련되는 기능을 수행할 수 있는 하드웨어와 소프트웨어의 조합을 지칭한다. 또한, 실시예를 참조하여 본 발명을 설명하지만, 본 발명의 각 측면이 개별적으로 청구될 수 있다는 것을 인식해야 한다.
이상은 본 발명의 일부 측면의 이해를 제공하기 위한 본 발명의 실시예의 간단한 요약이다. 이 요약은 본 발명과 그 다양한 실시예에 대한 확장된 개요도 아니고 배타적인 개요도 아니다. 이는 본 발명의 핵심 요소를 지정하기 위한 것도 아니고 본 발명의 범위를 정하는 것도 아니며, 본 발명의 선택된 개념을 이하 제공될 발명의 상세한 설명에 대한 도입으로서 간단한 형태로 제공하기 위한 것이다. 인식할 바와 같이, 전술한 특징 및 후술할 특징 중 하나 이상을 단독으로 또는 조합하여 사용하는 본 발명의 다른 실시예가 가능하다.
본 발명에 의하면, 애플리케이션의 수를 감소시켜서 머신의 복잡도를 낮춘다.
도 1은 종래 기술의 실시예에 따른 통신 시스템을 도시하는 블록도이다.
도 2는 본 발명의 적어도 일부 실시예에 따른 통신 시스템을 도시하는 블록도이다.
도 3은 본 발명의 적어도 일부 실시예에 따른 SIP 메시지를 프로세싱하는 방법을 도시하는 흐름도이다.
예시적 통신 시스템을 참조하여 본 발명을 설명할 것이다. 가령, 서버 및/또는 데이터베이스를 사용하는 시스템에서 사용하기에 적합하지만, 본 발명은 어떤 특정 유형의 통신 시스템 또는 시스템 요소의 구성에 한정되지 않는다. 당업자는 개시된 기술이 서버가 다수의 서블릿을 호스팅하는 것이 바람직한 임의의 통신 분야에서 사용될 수 있음을 인식할 것이다.
또한, 본 발명의 예시적 시스템 및 방법은 분석 소프트웨어, 모듈, 및 관련 관련 분석 하드웨어와 관련하여 설명할 것이다. 그러나, 본 발명을 불필요하게 모호하게 하지 않기 위해서, 아래의 설명에서 잘 알려진 구조, 구성요소 및 장치들은 블록도에서 생략한다.
설명을 위해, 본 발명의 완전한 이해를 제공하기 위한 많은 세부 사항을 설정한다. 그러나, 본 발명은 본 명세서에서 설정된 특정 세부 사항을 넘어서 다양한 방식으로 실시될 수 있음을 인식해야 한다.
이제 도 2를 참조하면, 예시적 통신 시스템(200)이 본 발명의 적어도 일부 실시예에 따라 설명될 것이다. 더 구체적으로, 통신 시스템(200)은 애플리케이션 서버(204)와 하나 이상의 통신 장치들(108)을 상호접속시키도록 구성되는 통신 네트워크(104)를 포함한다.
통신 네트워크(104)는 임의의 종류의 알려진 통신 매체 또는 통신 매체의 집합일 수 있으며, 종단점들 사이에서 메시지를 전송하기 위해 임의의 종류의 프로토콜을 사용할 수 있다. 통신 네트워크(104)는 유선 및/또는 무선 통신 기술을 포함할 수 있다. 인터넷은 전세계에 걸쳐 위치되는 많은 컴퓨터와 다른 통신 장치들로 구성되는 IP 네트워크를 구성하는 통신 네트워크(104)의 일례인데, 이는 많은 전화 시스템 및 다른 수단을 통해 접속된다. 통신 네트워크(104)의 다른 예는 표준 POTS(a standard Plain Old Telephone System), ISDN(Integrated Services Digital Network), PSTN(the Public Switched Telephone Network), LAN(a Local Area Netwrok), WAN(Wide Area Network), SIP(Session Initiation Protocol) 네트워크, 임의의 유형의 기업 네트워크 및 공지된 임의의 다른 유형의 패킷 교환 또는 회선 교환 네트워크를 포함하지만, 이에 한정되는 것은 아니다. 또한, 통신 네트워크(104)는 어떤 하나의 네트워크 유형에 한정되지 않으며 다수의 상이한 네트워크 및/또는 네트워크 유형으로 구성될 수 있음을 인식할 수 있다.
통신 장치(108)는 개인용 컴퓨터, 랩탑, PDA, 셀룰러 전화, 스마트폰, 전화, 아날로그 전화, DCP 전화 또는 그 조합과 같은 임의의 유형의 알려진 통신 또는 프로세싱 장치일 수 있다. 하나의 통신 장치(108)가 하나의 사용자에 의해 제어되거나 관련될 수 있거나, 많은 사용자에 의한 사용(가령, 유효 사용자 이름 및 패스워드의 제공에 따라 어떤 기업 사용자가 통신 장치를 사용할 수 있게 하는 기업 통신 장치)을 위해 구성될 수 있다.
통신 장치(108)의 각각이 동일한 사용자와 관련될 수 있다. 즉, 통신 장치(108)는 하나의 사용자에게 속할 수 있고, 상이한 유형의 통신 장치에 대응할 수 있다. 일례로서, 사용자는 4개의 통신 장치(108)를 가질 수 있고, 이들 각각이 한명의 사용자의 개인 전화, 업무 전화, 개인 컴퓨터 및 이메일 검색 장치에 각각 대응할 수 있다. 이와 달리, 통신 장치(108)의 각각이 여러 사용자에 의해 소유되고 동작(가령, 관련)될 수 있다.
일반적으로, 통신 장치(108)는 다른 통신 장치(108)와의 비디오, 오디오, 텍스트 및/또는 데이터 통신을 지원하도록 구성될 수 있다. 다른 통신 장치(108)와의 통신을 위해 통신 장치(108)에 의해 사용되는 매체의 유형은 통신 장치(108)상에서 이용 가능한 통신 애플리케이션에 의존할 수 있다.
본 발명의 적어도 일부 실시예에 따르면, 하나 이상의 통신 장치(108)는 SIP 메시지와 같은 메시지를 애플리케이션 서버(204)로 송신할 수 있는데, 이는 서버의 네트워크 인터페이스(208)에서 수신된다. 네트워크 인터페이스(208)는 통신 포트 및/또는 네트워크 어댑터를 포함할 수 있다. 일례로서, 네트워크 인터페이스(208)는 이더넷 포트 및 이더넷 카드/어댑터를 포함할 수 있다. 다른 예로서, 네트워크 인터페이스(208)는 안테나 및 802.11 또는 블루투스 어댑터를 포함할 수 있다. 따라서, 당업자가 인식할 바와 같이, 네트워크 인터페이스(208)는 애플리케이션 서버(204)와 통신 네트워크(104) 사이의 유선 및/또는 무선 접속을 지원할 수 있으며, 다수의 통신 프로토콜을 추가로 지원할 수 있다.
애플리케이션 서버(204)는 애플리케이션 서버(204)에서 초기에 수신되는 메시지를 프로세싱하기 위한 SIP 서블릿 콘테이너(212)를 더 포함할 수 있다. 또한, SIP 서블릿 콘테이너(212)는 애플리케이션 서버(204)상에 저장되는 하나 이상의 애플리케이션(224)으로 SIP 요청을 전송할 수 있는데, 여기서 요청은 애플리케이션(224)의 기능에 따라 프로세싱될 수 있다.
이제 도 2 및 3을 참조하면, 네트워크 인터페이스(208)로부터 SIP 서블릿 콘테이너(212)에서 수신(단계 304)되는 메시지는 루트 애플리케이션 라우터(216)로 전달될 수 있다(단계 308). 루트 애플리케이션 라우터(216)는 애플리케이션 서버(204)의 다수의 서브-애플리케이션 라우터(220) 사이에서의 SIP메시지 분배를 조정할 수 있다. 더 구체적으로, 루트 애플리케이션 라우터(216)는 특정 메시지 또는 요청이 서브-애플리케이션 라우터(220) 사이에서 어떻게 라우팅되어야 하는지를 정의하는 사업 규칙 또는 논리를 포함할 수 있으며, 목표 서브-애플리케이션 라우터(220)를 식별(단계 316)하는 데에 이러한 규칙을 적용할 수 있다(단계 312). 보다 더 구체적으로, 루트 애플리케이션 라우터(216)는 서브-애플리케이션 라우터(220)에 대한 계층적 마스터 또는 메시지 게이트키퍼로서 기능할 수 있다. 따라서, 서브-애플리케이션 라우터(220)에서 수신된 임의의 메시지는 루트 애플리케이션 라우터(216)를 통해 수신된다.
그러나, 본 발명의 적어도 일부 실시예에 따르면, 서브-애플리케이션 라우터(220)는 루트 애플리케이션 라우터(216) 및 루트 애플리케이션 라우터(216)에 의해 실행되는 임의의 알고리즘을 인식하지 못한다. 대신, 서브-애플리케이션 라우터(220)의 관점에서, 메시지는 SIP 서블릿 콘테이너(212)로부터 수신되어, 서브-애플리케이션 라우터(220)에 의해 프로세싱되고, 다시 SIP 서블릿 콘테이너(212)로 송신되는데, 이는 루트 애플리케이션 라우터(216)를 다시 호출하여 요청을 보아야하는 다수의 SAR 애플리케이션(224)에 다른 SAR(228)이 존재하는지를 판단하도록 구성된다. 또한, 2개 이상의 서브-애플리케이션 라우터(220a 및 220b)에 대한 규칙에 요청이 일치할 수 있다는 것을 유의해야 한다. 이 상황에서, 루트 애플리케이션 라우터(216)가 요청이 서브-애플리케이션 라우터(220a 및 220b)로 라우팅되어야 한다고 판단하면, 루트 애플리케이션 라우터(216)는 요청을 제 1 서브-애플리케이션 라우터(220a)로 전달하고 일단 대응 제 1 애플리케이션(224a)이 메시지 프로세싱을 완료하면, 루트 애플리케이션 라우터(216)는 요청을 다음 서브-애플리케이션 라우터(220b)상으로 자동적으로 전달할 수 있다.
서브-애플리케이션 라우터(220)가 메시지를 수신하면(단계 320), 서브-애플리케이션 라우터(220)는 메시지를 분석하여 어느 애플리케이션(224)이 실제 메시지를 프로세싱할 것인지를 판단한다(단계 324). 따라서, 서브-애플리케이션 라우터(220)는 질세로 메시지를 프로세싱하지 않고 단지 메시지의 정보를 분석하여 어느 애플리케이션(224)이 메시지를 프로세싱하는 데에 사용될 것인지를 판단한다.
이러한 판단을 내리면, 서브-애플리케이션 라우터(220)는 메시지를 프로세싱할 애플리케이션(224)의 신원과 함께 메시지를 다시 SIP 서블릿 콘테이너로 송신한다. SIP 서블릿 콘테이너(212)는 이 메시지를 수신하고, 애플리케이션 신원을 분석하며, 이 메시지를 적합한 애플리케이션(224)으로 전송한다. 도 2에 도시된 바와 같이, 애플리케이션(224)은 2개 이상의 SAR 파일(228)을 포함할 수 있는데, 각각 SIP 서블릿과 같은 서블릿을 포함한다.
메시지가 특정 애플리케이션(224)에 할당되면, SIP 서블릿 콘테이너(212)는 애플리케이션(224)의 SAR 파일(228) 내의 적합한 서블릿을 호출하여 메시지를 실제로 프로세싱한다(단계 328). 당업자가 인식할 바와 같이, 애플리케이션(224)은 각각 3개 및 2개의 SAR 파일(228a, 228b)를 포함하는 것으로 도시되어 있지만, 애플리케이션(224)은 애플리케이션(224)의 기능에 따라 더 많거나 더 적은 수의 SAR 파일(228)을 포함할 수 있다. 예를 들어, 애플리케이션(224)은 본 발명의 범위를 벗어나지 않고 1개, 2개, 3개 또는 4개의 SAR 파일(228)을 포함할 수 있다. 2개 이상의 SAR 파일(228)을 포함하는 애플리케이션(224)은 본 명세서에서 멀티-SAR 애플리케이션(224)으로 지칭된다. 본 발명의 실시예는 특히 루트 애플리케이션 라우터(216)의 사용을 통해 공통 서버(204)상의 다수의 멀티-SAR 애플리케이션(224)을 공동 호스팅하는 기능을 제공한다.
본 발명의 적어도 일부 실시예에 따르면, 애플리케이션(224)은 SIP메시지에 대한 일반적인 기능 또는 특징을 제공한다. 애플리케이션(224) 내에 포함되는 SAR 파일(228)은 애플리케이션(224)의 기능을 제공하기 위해 필요한 단계들을 실행하는 프로세스인 서블릿을 포함한다. 일례로서, 애플리케이션(224)은 음성메일 기능에 대응할 수 있다. 음성메일 애플리케이션(224) 내의 SAR 파일(228)은 서블렛을 포함할 수 있는데, 이는 호가 음성메일 커버리지로 진행해야 하는지를 판단하고, 적합한 음성메일 서버의 위치를 식별하며, 음성 메일 서버로 호를 전송하고, IVR 기능을 호출자에게 제공하며, 호출자로부터의 메시지를 기록하고, 이 메시지를 음성메일 서버에 저장하는 등의 프로세스를 실행한다. 물론, 전술한 음성메일 프로세스의 일부는 다른 애플리케이션(224)상의 별도의 SAR 파일로서 실행될 수 있다. 또한, 음성메일은 애플리케이션(224)에 의해 제공되는 예시적 기능의 일례일 뿐이다. 애플리케이션(224)에 의해 제공되는 다른 유형의 기능은, 호 전송 기능, 호 라우팅 기능, 커버리지 기능, 기록 기능, 호 설정 기능, 블랙리스트 기능, 화이트리스트 기능, 인입 호 통보 기능, 종료 호 기능 및 청구 고객 기능을 포함하지만, 이에 한정되는 것은 아니다. 애플리케이션(224)을 통해 이용 가능한 다른 기능은 당업자에게 명백할 것이며, 본 발명의 범위 내에 존재하는 것으로 고려된다.
메시지가 SAR 파일(228) 내의 서블릿에 의해 프로세싱될 때, 서블릿은 제 2 메시지 또는 SIP 요청(가령, 전술한 예의 음성메일 애플리케이션의 호 전송 메시지)을 생성할 수 있다. 따라서, 단계(332)에서 최초로 수신된 메시지의 프로세싱으로 인해 새로운 요청 또는 메시지가 서블릿에 의해 생성되었는지를 판단한다. 이 질의에 대한 응답이 긍정이면, 메시지는 SIP 서블릿 콘테이너(212)로 다시 전송되는데, 이는 애플리케이션 서버(204)에 존재할 수도 하지 않을 수도 있는 다른 연산 구성요소로 전송될 수 있다(단계 336). 이러한 메시지가 서블릿에 의해 생성되면, 루트 애플리케이션 라우터(216)에 의해 평가되지 않고 제 2 SIP 메시지가 연산 구성요소로 송신된다.
일단 애플리케이션(224)이 SAR 파일(228) 내의 서블릿 모두를 호출했고 그 서블릿에 의해 메시지가 프로세싱되었거나 단계(332)의 질의에 대한 응답이 부정이면, 이 방법은 제 1 메시지에 대한 추가 프로세싱이 요구되는지를 판단함으로써 계속된다(단계 340). 메시지가 가능하게는 다른 애플리케이션(224)에 의해 추가 프로세싱을 요구하는 경우, 이 방법은 단계(304)로 복귀하고 메시지는 SIP서블릿 콘테이너(212)로 전송되고 이어서 다시 루트 애플리케이션 라우터(216)으로 제공된다. 추가 프로세싱이 요구되지 않는 경우, 이 방법은 종료된다(단계 344). 물론, 메시지 프로세싱 완료의 일부로서, 메시지는 네트워크 인터페이스(208)를 통해 애플리케이션 서버(204)로부터 전송될 수 있다.
당업자가 인식할 바와 같이, 도 2에 도시된 애플리케이션 서버(204)는 2개의 서브-애플리케이션(220a, 220b)을 포함하지만, 애플리케이션 서버(204)는 본 발명의 실시예에 따라 더 많거나 더 적은 수의 서브-애플리케이션 라우터(220)를 포함할 수 있다.
유사하게, 애플리케이션 서버(204)가 단지 2개의 애플리케이션(224a, 224b)를 갖는 것으로 도시되어 있지만, 애플리케이션 서버(204)는 본 발명의 실시예에 따라 더 많거나 더 적은 수의 애플리케이션(224)을 포함할 수 있다. 또한, 서브-애플리케이션 라우터(220)의 수는 애플리케이션 서버(204)의 애플리케이션(224)의 수와 일치하지 않으며 통상적으로 일치하지 않을 것이다. 따라서, 하나의 서브-애플리케이션 라우터(220)가 복수의 애플리케이션(228) 사이의 메시지 라우팅 결정을 내리도록 구성될 수 있다. 즉, 서브-애플리케이션 라우터(220)는 프로세싱을 위해 제 1, 제 2, 제 3, 제 4 등의 애플리케이션(224)으로 송신되어야 하는지를 판단하도록 구성될 수 있으며, 서브-애플리케이션 라우터(220)에서 수신되는 상이한 메시지들에 대해 상이한 결정을 내릴 수 있다. 또한, 2개의 서브-애플리케이션 라우터(220)가 공통 애플리케이션(224)로 메시지를 라우팅하도록(즉, 서브-애플리케이션 라우터(220)가 애플리케이션(224)을 공유할 수 있도록) 구성될 수 있지만, 이러한 실시예는 많은 다른 고려사항에 의존할 것이다.
전술한 흐름도는 특정 이벤트 시퀀스와 관련하여 설명하였지만, 본 발명의 동작에 실질적으로 영향을 주지 않고 이 시퀀스에 변경이 이루어질 수 있음을 인식해야 한다. 또한, 정확한 이벤트 시퀀스는 실시예에서 설명된 바와 같이 발생할 필요가 없다. 본 명세서에서 설명되는 예시적 기술은 구체적으로 설명되는 실시예에 한정되지 않으며 다른 실시예를 사용할 수 있고, 각 설명되는 특징은 개별적이고 별도로 청구 가능하다.
본 발명의 시스템, 방법 및 프로토콜은 설명된 통신 장치에 추가하여 또는 이를 대신하여 특수 목적 컴퓨터, 프로그래밍된 마이크로프로세서 또는 마이크로콘트롤러 및 주변 집적회로 소자, ASIC 또는 기타 집적 회로, 디지털 신호 프로세서, 개별 소자 회로와 같은 하드와이어드 전자소자 또는 로직 회로, PLD, PLA, FPGA, PAL과 같은 프로그래밍 가능한 논리 소자, 서버와 같은 통신 장치, 개인 컴퓨터, 임의의 상응하는 수단 등에서 구현될 수 있다. 일반적으로, 본 명세서에서 설명되는 방법을 구현할 수 있는 상태 머신을 구현할 수 있는 임의의 장치가 본 발명에 따른 다양한 통신 방법, 프로토콜 및 기술을 구현하는 데에 사용될 수 있다.
또한, 개시된 방법은 다양한 컴퓨터 또는 워크스테이션 플랫폼에서 사용될 수 있는 휴대용 소스 코드를 제공하는 객체 또는 객체 지향 소프트웨어 개발 환경을 사용하는 소프트웨어에서 쉽게 구현될 수 있다. 이와 달리, 개시된 시스템은 표준 논리 회로 또는 VLSI 설계를 사용하여 하드웨어에서 부분적으로 또는 전체적으로 구현될 수 있다. 본 발명에 따른 시스템을 구현하기 위해 소프트웨어를 사용할지 하드웨어를 사용할지는 시스템의 속도 및/또는 효율성, 특정 기능 및 특정 소프트웨어 또는 하드웨어 시스템 도는 마이크로프로세서 또는 마이크로컴퓨터 시스템이 사용되는지에 따라 결정된다. 본 명세서에서 설명되는 분석 시스템, 방법 및 프로토콜은, 임의의 알려진 시스템 또는 장차 개발될 시스템 또는 구조, 당업자가 본 명세서에서 제공되는 기능적 설명으로부터 적용 가능한 장치 및/또는 소프트웨어를 사용하여, 그리고 통신 및 컴퓨터 분야의 일반적인 기본 지식을 사용하여 하드웨어 및/또는 소프트웨어로 쉽게 구현될 수 있다.
또한, 개시된 방법은 저장 매체에 저장될 수 있고, 제어기 및 메모리의 공동 동작을 사용하는 프로그래밍된 범용 컴퓨터, 특수 목적 컴퓨터, 마이크로프로세서 등에서 실행되는 소프트웨어로 쉽게 구현될 수 있다. 이들 예에서 본 발명의 시스템 및 방법은 애플릿, JAVA® 또는 CGI 스트립트와 같은 개인용 컴퓨터에 내장되는 프로그램으로서, 서버 또는 컴퓨터 워크스테이션에 상주하는 리소스로서, 전용 통신 시스템 또는 시스템 구성요소에 내장되는 루틴 등으로서 구현될 수 있다. 또한, 이 시스템은 통신 장치 또는 시스템의 하드웨어 및 소프트웨어 시스템과 같은 시스템 및/또는 방법을 소프트웨어 및/또는 하드웨어 시스템으로 물리적으로 통합하여 구현될 수 있다.
그러므로, 본 발명의 실시예에 따르면, 서버상의 SIP 서블릿 애플리케이션을 공공 호스팅하는 시스템, 장치 및 방법이 제공되었다는 것이 명백하다. 본 발명은 다수의 실시예를 참조하여 설명하였지만, 당업자에게 많은 대체물, 수정물 및 변형물이 자명하다. 따라서, 모든 이러한 대체물, 수정물, 균등물 및 변형물은 본 발명의 사상과 범위 내에 존재한다는 것이 명백하다.

Claims (10)

  1. 제 1 애플리케이션 서버의 네트워크 인터페이스에서 제 1 메시지를 수신하는 단계 - 상기 제 1 메시지는 SIP 메시지를 포함하고 상기 제 1 애플리케이션 서버는 2개 이상의 애플리케이션을 포함하고 각각의 애플리케이션은 하나 이상의 서블릿(servlets)을 가짐 - 와,
    상기 제 1 애플리케이션 서버 내의 루트 애플리케이션 라우터로 상기 제 1 메시지를 전달하는 단계와,
    상기 루트 애플리케이션 라우터에 의해, 상기 제 1 메시지를 수신하고 이어서 분석할 서브-애플리케이션 라우터를 결정하는 단계와,
    상기 제 1 메시지를 상기 서브-애플리케이션 라우터로 전달하는 단계 - 상기 서브 애플리케이션 라우터 또한 상기 제 1 애플리케이션 서버 내에 있음 - 와,
    상기 서브-애플리케이션 라우터에 의해, 상기 2개 이상의 애플리케이션 중에서 어느 애플리케이션이 상기 제 1 메시지를 프로세싱할지를 결정하는 단계와,
    상기 서브-애플리케이션 라우터에 의해 내려진 결정의 결과를 상기 제 1 애플리케이션 서버 내의 SIP 서블릿 콘테이너(SIP Servlet Container)로 송신하는 단계와,
    상기 SIP 서블릿 콘테이너에 의해, 상기 제 1 메시지를 상기 2개 이상의 애플리케이션 중에서 상기 결정된 애플리케이션으로 전송하는 단계와,
    상기 네트워크 인터페이스에서 제 2 메시지를 수신하는 단계 - 상기 제 1 메시지 및 상기 제 2 메시지는 상이함 - 와,
    상기 루트 애플리케이션 라우터로 상기 제 2 메시지를 전달하는 단계와,
    상기 루트 애플리케이션 라우터에 의해, 상기 제 2 메시지를 수신하고 이어서 분석할 제 2 서브-애플리케이션 라우터를 결정하는 단계 - 상기 제 2 메시지를 수신하도록 결정된 상기 제 2 서브-애플리케이션 라우터는 상기 제 1 메시지를 수신하도록 결정된 상기 서브-애플리케이션 라우터가 아님 - 와,
    상기 제 2 메시지를 상기 제 2 서브-애플리케이션 라우터로 전달하는 단계 - 상기 제 2 서브-애플리케이션 라우터는 또한 상기 제 1 애플리케이션 서버 내에 상주함 - 와,
    상기 제 2 서브-애플리케이션 라우터에 의해, 상기 2개 이상의 애플리케이션 중에서 어느 애플리케이션이 상기 제 2 메시지를 프로세싱할지를 결정하는 단계와,
    상기 제 2 서브-애플리케이션 라우터에 의해 내려진 결정의 결과를 상기 SIP 서블릿 콘테이너로 송신하는 단계와,
    상기 SIP 서블릿 콘테이너에 의해, 상기 제 2 메시지를 상기 2개 이상의 애플리케이션 중에서 상기 결정된 애플리케이션으로 전송하는 단계를 포함하는
    방법.
  2. 루트 애플리케이션 라우터와,
    상기 루트 애플리케이션 라우터와 통신하는 복수의 서브-애플리케이션 라우터 - 상기 루트 애플리케이션 라우터는 상기 복수의 서브-애플리케이션 라우터 사이에 메시지를 분배하도록 구성됨 - 와,
    복수의 애플리케이션 - 각 서브-애플리케이션 라우터는 상기 루트 애플리케이션 라우터로부터 메시지를 수신하고, 상기 복수의 애플리케이션 중에서 상기 메시지를 프로세싱하기 위해 사용될 애플리케이션을 결정하도록 구성되고, 상기 복수의 애플리케이션은 2개 이상의 서블릿을 포함하고 상기 메시지는 SIP 메시지를 포함함 - 과,
    SIP 서블릿 컨테이너 - 각 서브-애플리케이션 라우터는 그들의 메시지 프로세싱 결정의 결과를 상기 SIP 서블릿 컨테이너로 송신하도록 구성되고 상기 SIP 서블릿 컨테이너는 상기 메시지를 적절한 애플리케이션으로 전송하도록 구성됨 - 을 포함하되,
    각 애플리케이션은 서블릿을 이용하여 메시지를 프로세싱하도록 구성되고, 각 애플리케이션은 특정 기능을 제공하고 상기 서블릿은 상기 결정된 애플리케이션의 특정 기능에 따라 상기 메시지에 대한 동작을 실행하는
    서버.
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 결정된 애플리케이션에 의해, 2개 이상의 서블릿을 사용하여 상기 제 1 메시지를 프로세싱하는 단계를 더 포함하되,
    상기 결정된 애플리케이션은 특정 기능을 제공하고, 상기 2개 이상의 서블릿의 각각은 상기 결정된 애플리케이션의 상기 특정 기능에 따라 상기 제 1 메시지에 대한 동작을 실행하는
    방법.
  6. 제 5 항에 있어서,
    상기 특정 기능은 음성메일 기능, 호 전송 기능, 호 라우팅 기능, 커버리지 기능, 기록 기능, 호 설정 기능, 블랙리스트 기능, 화이트리스트 기능, 인입 호 통보 기능, 종료 호 기능 및 청구 고객 기능 중 하나 이상을 포함하는
    방법.
  7. 제 5 항에 있어서,
    상기 2개 이상의 서블릿 중 하나에 의해, 제 2 SIP 메시지를 생성하는 단계 - 상기 제 2 SIP 메시지는 상기 제 1 메시지의 프로세싱 동안에 생성됨 - 와,
    상기 제 2 SIP 메세지를 상기 SIP 서블릿 콘테이너로 송신하는 단계와,
    상기 SIP 서블릿 콘테이너에 의해, 상기 제 2 SIP 메시지가 상기 루트 애플리케이션 라우터에 의해 평가되지 않고, 상기 제 2 SIP 메시지를 연산 구성요소로 전송하는 단계를 더 포함하는
    방법.
  8. 제 7 항에 있어서,
    상기 연산 구성요소는 상기 제 1 애플리케이션 서버에 상주하지 않는
    방법.
  9. 삭제
  10. 프로세서에 의해 실행되면 제 1 항 및 제 5 항 내지 제 8 항 중 어느 한 항에 기재된 방법을 수행하는, 프로세서 실행 가능한 인스트럭션을 포함하는
    컴퓨터 판독 가능한 매체.
KR1020100029284A 2009-06-30 2010-03-31 Sip 서블릿 애플리케이션 공동 호스팅 방법, 서버 및 컴퓨터 판독 가능한 저장매체 KR101352694B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/495,372 2009-06-30
US12/495,372 US8179889B2 (en) 2009-06-30 2009-06-30 SIP servlet applications co-hosting

Publications (2)

Publication Number Publication Date
KR20110001863A KR20110001863A (ko) 2011-01-06
KR101352694B1 true KR101352694B1 (ko) 2014-02-17

Family

ID=42153779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100029284A KR101352694B1 (ko) 2009-06-30 2010-03-31 Sip 서블릿 애플리케이션 공동 호스팅 방법, 서버 및 컴퓨터 판독 가능한 저장매체

Country Status (5)

Country Link
US (1) US8179889B2 (ko)
EP (1) EP2270659A1 (ko)
JP (1) JP5649840B2 (ko)
KR (1) KR101352694B1 (ko)
CN (1) CN101938510A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011096045A (ja) * 2009-10-30 2011-05-12 Hitachi Ltd 計算機、計算機システム、及び、アプリケーション実行方法
US8488575B2 (en) * 2010-11-18 2013-07-16 At&T Intellectual Property, I, L.P. Methods, devices, and computer program products for providing a plurality of application services via a customized private network connection
US9367367B2 (en) 2013-06-06 2016-06-14 Avaya Inc. Application router
US9350594B2 (en) * 2013-06-26 2016-05-24 Avaya Inc. Shared back-to-back user agent
KR101516215B1 (ko) 2013-11-15 2015-05-04 한국지질자원연구원 장력계를 포함하는 시추시스템 및 이를 이용한 정확한 시추의 판단방법
CN106534140A (zh) * 2016-11-25 2017-03-22 西安烽火电子科技有限责任公司 一种sip消息的传递系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004077269A2 (en) * 2003-02-26 2004-09-10 Bea Systems Inc. Creating network services using source code annotations

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
EP1274011B1 (en) * 2001-07-06 2017-05-03 Alcatel Lucent A method and system for routing and logging a request
US7028311B2 (en) * 2002-01-04 2006-04-11 Telefonaktiebolaget Lm Ericsson (Publ) Communications node architecture and method for providing control functions in a telecommunications network
US6798755B2 (en) * 2002-12-31 2004-09-28 Motorola, Inc. Apparatus and method for controlling and managing individual directed sessions in a communications system
CN1577251B (zh) * 2003-07-28 2012-07-18 国际商业机器公司 小服务器程序的远程协作方法和系统
JP4593152B2 (ja) * 2004-03-31 2010-12-08 日本電気株式会社 サーバ装置およびその制御方法
US7664818B2 (en) 2004-04-21 2010-02-16 Sap (Ag) Message-oriented middleware provider having multiple server instances integrated into a clustered application server infrastructure
US20060239247A1 (en) * 2005-04-26 2006-10-26 Peter Postmus Method and session initiation protocol (SIP) server with end-point capabilities check
JP4735068B2 (ja) * 2005-06-15 2011-07-27 沖電気工業株式会社 通信システム、通信方法及び通信装置
JP4433309B2 (ja) * 2005-08-24 2010-03-17 日本電気株式会社 負荷分散装置
US7865607B2 (en) * 2006-04-04 2011-01-04 Movius Interactive Corporation Servlet model for media rich applications
US8001250B2 (en) * 2006-05-16 2011-08-16 Oracle International Corporation SIP and HTTP convergence in network computing environments
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US20080158336A1 (en) * 2006-10-11 2008-07-03 Richard Benson Real time video streaming to video enabled communication device, with server based processing and optional control
US7895475B2 (en) * 2007-07-11 2011-02-22 Oracle International Corporation System and method for providing an instrumentation service using dye injection and filtering in a SIP application server environment
CN101483613B (zh) * 2008-01-09 2012-02-15 国际商业机器公司 为呈现服务器提供QoS控制能力的方法和设备及其系统
US9654515B2 (en) * 2008-01-23 2017-05-16 Oracle International Corporation Service oriented architecture-based SCIM platform
US8806512B2 (en) * 2008-05-30 2014-08-12 Red Hat, Inc. Collocation in a Java virtual machine of JSLEE, SIP servlets, and Java EE

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004077269A2 (en) * 2003-02-26 2004-09-10 Bea Systems Inc. Creating network services using source code annotations

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Next Generation Mobile Applications, Services and Technologies, 2008. NGMAST '08. The Second International Conference on, IEEE, 16 September 2008, pages 207-212 *
Next Generation Mobile Applications, Services and Technologies, 2008. NGMAST '08. The Second International Conference on, IEEE, 16 September 2008, pages 207-212*

Also Published As

Publication number Publication date
JP5649840B2 (ja) 2015-01-07
JP2011014125A (ja) 2011-01-20
US8179889B2 (en) 2012-05-15
KR20110001863A (ko) 2011-01-06
US20100329239A1 (en) 2010-12-30
CN101938510A (zh) 2011-01-05
EP2270659A1 (en) 2011-01-05

Similar Documents

Publication Publication Date Title
US8738748B2 (en) Metadata driven automatic deployment of distributed server systems
KR101352694B1 (ko) Sip 서블릿 애플리케이션 공동 호스팅 방법, 서버 및 컴퓨터 판독 가능한 저장매체
US8166547B2 (en) Method, apparatus, signals, and medium for managing a transfer of data in a data network
US6003083A (en) Workload management amongst server objects in a client/server network with distributed objects
US8817777B2 (en) Hybrid unified communications deployment between cloud and on-premise
CN101326493B (zh) 用于多处理器服务器中的负载分配的方法和装置
US8032624B2 (en) Pluggable contact resolution
EP3891955B1 (en) Detecting attacks using handshake requests systems and methods
CN1855884A (zh) 负载分散装置和负载分散系统
US11336734B1 (en) System and method for aggregating communication connections
EP2795849A1 (en) Method and apparatus for messaging in the cloud
US20070226745A1 (en) Method and system for processing a service request
US20150312322A1 (en) Distributed high availability processing methods for service sessions
KR101451459B1 (ko) 인공 지능 모듈 시퀀싱 방법 및 애플리케이션 서버
KR101384868B1 (ko) 호출 추적 방법 및 애플리케이션 서버
EP2184902B1 (en) Implication of a Composite Endpoint in a Multimedia Call
US11824839B1 (en) Obscuring connections between source and destination devices via a pool of disposable proxies
CN115174592A (zh) 企业级数据请求转发系统及方法
CN115242791A (zh) 服务平台的访问方法、装置、设备及存储介质
KR20160023760A (ko) 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출
Mounika et al. A communication aware load balancing technique for cluster file systems based on distributed hash tables (DHTs)
EP4381764A1 (en) System and method for enabling lawful interception management (lim) integration
US20160255033A1 (en) Content based message delivery

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: 20161229

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 7