Liberty의 SIP(Session Initiation Protocol) 애플리케이션

SIP 애플리케이션은 하나 이상의 SIP(Session Initiation Protocol) 서블릿을 사용하는 Java 프로그램입니다.

SIP 서블릿은 SIP 서블릿 컨테이너에 의해 관리되고 SIP 시그널링을 수행하는 Java™ 애플리케이션 컴포넌트입니다. 기타 Java 컴포넌트처럼, 서블릿은 Java 사용 SIP 애플리케이션 서버(예: Liberty 서버)에 의해 실행되며 동적으로 로드될 수 있는 플랫폼 중립적인 바이트코드로 컴파일되는 플랫폼 독립적인 Java 클래스입니다. 컨테이너(종종 서블릿 엔진이라고도 함)는 서블릿 상호작용을 처리하는 서버 확장기능입니다. SIP 서블릿은 서블릿 컨테이너를 통해 요청과 응답 메시지를 교환함으로써 클라이언트와 상호작용합니다.

SIP은 IP 전화 통신, 존재 및 인스턴트 메시징을 포함하여 멀티미디어 IP 세션을 설정, 수정하고 종료하는 데 사용됩니다. 이 문맥에서 "존재"는 사용자 상태(예: "활성", "부재 중" 또는 "다른 용무 중")를 의미합니다. SIP 기반 서블릿 애플리케이션을 작성하기 위한 프로그래밍 모델을 정의하는 표준은 JSR 289입니다. 스펙에 내제된 개념은 사용이 용이한 SIP 프로그래밍 모델을 제공하는 HTTP 서블릿과 유사한 Java API(Application Programming Interface)를 제공하는 것입니다. HTTP 서블릿 프로그래밍 모델과 마찬가지로, 사용 용이성과 가치 구현 시간(time-to-value)을 최적화하기 위해 일부 유연성은 제한됩니다.

그러나 프토토콜이 상당히 다르므로 SIP 서블릿 API는 여러 측면에서 HTTP 서블릿과 다릅니다. SIP는 요청-응답 프로토콜이지만, 모든 하나의 요청에 대해 반드시 하나의 응답만 있지는 않습니다. 이 복잡도와 고성능 솔루션에 대한 요구사항은 SIP 서블릿을 기본적으로 비동기하기가 더 용이했음을 의미합니다. 또한 많은 애플리케이션이 다른 서버나 프록시에 대한 클라이언트 또는 프록시의 역할을 수행하므로, HTTP 서블릿과는 달리 SIP 서블릿의 프로그래밍 모델은 클라이언트 요청이 기타 로직과 함께 손쉽게 작성할 수 있도록 시도했습니다.

SipServlet 요청

HTTP 서블릿과 마찬가지로, 각 SIP 서블릿은 기본 javax.servlet.sip.SipServlet 클래스를 확장합니다. 모든 메시지는 확장 가능한 서비스 메소드를 통해 수신됩니다. 그러나 SIP에서 요청 대 응답의 일대일 맵핑이 없으므로, 대신 doRequest 또는 doResponse 메소드를 확장하도록 권장합니다. doRequest 또는 doResponse 메소드를 확장할 때는 처리가 완료되기 위해 확장된 메소드를 호출하는 것이 중요합니다.

스펙이 지원해야 하는 각 요청 메소드에는 HTTP와 같은 doxxx 메소드가 있습니다. HTTP에는 doGet 및 doPost 등의 메소드가 GET 및 POST 요청에 대해 존재합니다. SIP에는 각 SIP 요청 메소드에 대해 doInvite, doAck, doOptions, doBye, doCancel, doRegister, doSubscribe, doNotify, doMessage, doInfo 및 doPrack 메소드가 존재합니다.

HTTP 서블릿과는 달리, SIP 서블릿에는 지원되는 각 응답 유형에 대한 메소드가 있습니다. 따라서 SIP 서블릿에는 doProvisionalResponse, doSuccessResponse, doRedirectResponse 및 doErrorResponse 응답이 포함됩니다. 구체적으로, 상태를 표시하려면 임시 응답(1xx 응답)을, 트랜잭션의 완료를 나타내려면 성공 응답(2xx 응답)을, 이동된 자원이나 엔티티로 클라이언트 경로를 재지정하려면 경로 재지정 응답(3xx 응답)을, 장애 또는 특정 오류 조건을 나타내려면 오류 응답(4xx, 5xx 및 6xx 응답)을 사용합니다. 이 유형의 응답 메시지는 HTTP와 유사하지만, SIP 서블릿 프로그래밍 모델에 클라이언트 프로그래밍 모델이 포함되므로 응답도 역시 프로그래밍 방식으로 처리되어야 합니다.


주제의 유형을 표시하는 아이콘 개념 주제

파일 이름: cwlp_sip_introapps.html