SIP Servlets Container
Enviado por Tadeo Rivera • 22 de Octubre de 2019 • Documentos de Investigación • 1.565 Palabras (7 Páginas) • 144 Visitas
SIP Servlets Container.
Julian Rivera-Pineda
Arquitectura de Redes – ARD0
Maestría en Informática Aplicada en Redes – MIR
Postgrados & Educación Continua
Resumen
La Plataforma Java EE hace posible la implementación de Containers (Contenedores de aplicaciones empresariales) que pueden contener/manejar el ciclo de vida de componentes Java llamados Servlets que desarrollan la lógica de protocolos de red (HTTP(S) es el más utilizado) implementando servicios variados utilizando el Stack de red del Servidor de Aplicaciones Java. Para el presente articulo se abordara el SIP Servlet Container como una implementación del protocolo SIP.
Alcance.
El presente artículo de investigación tiene como objetivo abordar de manera general la tecnología SIP[1] Servlet Container, que forma parte del Stack de tecnologías para desarrollo de aplicaciones empresariales de Java EE [2]/ Jakarta EE [3], se explicara la Java API para crear aplicaciones SIP en el Servidor de aplicaciones Java .
Propósito.
En la actualidad cada vez mas se usan los servicios de comunicación entre personas (Internautas) a través de Internet, reduciéndose grandemente el uso de los servicios telefónicos (Voz y SMS) e incrementándose el uso de Internet móvil. Las TELECOM necesitan crear/componer nuevos servicios dependientes de IP Multimedia Subsystem ( (Dinsing, y otros, 2007)) para poder ofrecer a sus usuarios Individuales y Corporativos mejores opciones de comunicación y Multimedios dependientes del Internet móvil ISP[4].
Introducción.
La plataforma Java [5]cuenta con el framework para desarrollo de aplicaciones empresariales llamado Java EE que permite crear arquitecturas distribuidas de N capas basada en componentes de software publicables en contenedores (Containers), dichos contenedores forman parte de lo que conoce como Servidor de aplicaciones AS[6], que es donde finalmente se publican las aplicaciones. El Servidor de aplicaciones implementa el Estándar de Java EE que viene dado por las diversas JSR [7] dictadas por cada versión del estándar regido por JCP [8]. El Servidor de aplicaciones está compuesto por los siguientes tipos de contenedores:
- Contenedor Web (Web Container, HTTP(S) Servlet Container)
- Contenedor EJB[9] (EJB Container)
- Contenedor de aplicaciones cliente (Application Client Container)
- Contenedor de Applets[10] (Applet Container)
- Otros contenedores y/o servicios de base
Figura 1. Servidor de aplicaciones Java EE con sus contenedores básicos.[pic 2]
(Fuente: http://www.jpassion.com/portal/)
La manera en que funcionan los diversos contenedores es implementando el ciclo de vida de componentes de software específicos dados por cada especificación de JSR. Por ejemplo, el contenedor Web implementa el ciclo de vida de los componentes llamados HTTP Servlets, son componentes que desarrollan la lógica de un servidor Web usando los protocolos HTTP(S) implementando los diversos verbos de HTTP GET, POST, PUT, DELETE, OPTIONS, etc. La forma de publicar los componentes en los diversos contenedores se hace a través de archivos en formatos compatibles a la plataforma Java con su correspondiente descriptor [11] y/o anotación:
- Archivos JAR: Java Archive que contienen una estructura de directorios donde almacenan los archivos de bytecode [12] con extensión .class y otros recursos varios. Estos archivos son los que genéricamente se emplean para aplicaciones Java de escritorio, Application Clients y EJB Components.
- Archivos WAR: Web Archive que contiene una estructura de directorios (para páginas web, recursos web y applets) y la carpeta WEB-INF donde se deposita el descriptor web.xml y los archivos .class y .jar que definen la programación de la aplicación web.
- Archivos EAR: Enterprise Archive que contienen uno o más archivos JAR, uno o más archivos WAR, otros archivos de recursos y el descriptor application.xml
Para extender el servidor de aplicaciones Java tradicional se creó el JSR 289 (Cosmadopoulos & Pulijala, 2011) que define el estándar de SIP Servlet Container que implementa el protocolo SIP en componentes Servlets ( (Kristensen, 2002)) y API [13] necesaria para programarlos.
La siguiente figura muestra la estructura del AS Java con el SIP Servlet Container ya incluido:
[pic 3]
Figura 2. Servidor de aplicaciones Java EE incluyendo SIP Servlet Container.
(Fuente:
https://docs.oracle.com/cd/E13205_01/wcp/wlss201/sipserverdoc/system/architecture/wls-sip.gif)
SIP Servlet Container contiene y maneja aplicaciones SIP y provee acceso a los mecanismos de Session Initiation Protocol (SIP) vía Java API.
El Servidor de aplicaciones Java provee servicios de red sobre los cuales las peticiones y respuestas SIP son enviadas y recibidas.
Objetivos de la SIP Servlet API.
A continuación, se resumen algunas propiedades importantes de la SIP Servlet API:
- Señalización SIP: permite que las aplicaciones realicen un conjunto bastante completo de acciones de señalización SIP, incluido el soporte para actuar como User Agent Client (UAC), User Agent Server (UAS) y proxy.
- Simplicidad: Los contenedores manejan la complejidad "no esencial", como la gestión de red de listenpoints, retransmisiones, CSeq, Call-ID y Via headers, rutas, etc.
- Aplicaciones convergentes: es posible que los contenedores admitan aplicaciones convergentes, es decir, aplicaciones que abarcan múltiples protocolos y tipos de medios, por ejemplo, web, telefonía y presencia.
- Desarrollo de aplicaciones de terceros: el modelo de Servlet admite el desarrollo de aplicaciones de terceros. Se utiliza un descriptor de implementación XML para comunicar la información de la aplicación del desarrollador de la aplicación a los implementadores.
- Composición de las aplicaciones: es posible que varias aplicaciones se ejecuten en la misma solicitud o respuesta entrante o saliente. Cada aplicación tiene su propio conjunto de reglas y se ejecuta independientemente de otras aplicaciones de una manera bien definida y ordenada.
- Carrier Grade: Los Servlets almacenan datos de aplicaciones en objetos gestionados por contenedor. Las implementaciones pueden persistir y / o replicar estos datos para lograr una alta disponibilidad.
¿Qué es un SIP Servlet?
Un SIP Servlet es un componente de Aplicación Java el cual es manejado por un Contenedor de Servlets SIP el cual ejecuta Señalización SIP. Como otros componentes Java para AS, Los Servlets son clases Java regulares que son cargadas dinámicamente en un AS que tenga habilitado el Soporte de SIP. El Contenedor a veces conocido como Motor de Servlet (Servlet Engine), es una extensión del AS que provee esa funcionalidad. Los Servlets interactúan con los clientes (SIP) intercambiando mensajes de peticiones y respuestas a través del contenedor de Servlets.
...