Diferencia entre revisiones de «Servidor de Aplicaciones»

(Etiqueta: nuestro-nuestra)
m (Texto reemplazado: «<div align="justify">» por «»)
 
(No se muestran 15 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
{{Aplicación|nombre=Servidor de Aplicaciones|logo=Servidor.png|descripcion=Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas|creador=JCSC1|fecha_de_creacion=2011|sitio_web=}}<div align="justify">'''Servidor de Aplicaciones''':Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas. Es el corazón de un gran sistema distribuido.</div>  
+
{{Ficha Software
 
+
|nombre=Servidor de Aplicaciones
 +
|imagen=Servidor_de_Aplicaciones.jpg
 +
|descripción=Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas
 +
|creador=JCSC1
 +
|fecha de creación=
 +
|versiones=
 +
|sistemas operativos=
 +
|idioma=Español
 +
|licencia=
 +
|premios=
 +
|web=
 +
}}  
 +
'''Servidor de Aplicaciones''':Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas. Es el corazón de un gran sistema distribuido.</div>  
 
== Introducción  ==
 
== Introducción  ==
<div align="justify">El concepto de servidor de aplicaciones está relacionado con el concepto de sistema distribuido. Un sistema distribuido, en oposición a un sistema monolítico, permite mejorar tres aspectos fundamentales en una aplicación: la alta disponibilidad, la escalabilidad y el mantenimiento. En un sistema monolítico un cambio en las necesidades del sistema (aumento considerable del número de visitas, aumento del número de aplicaciones, etc.) provoca un colapso y la adaptación a dicho cambio puede resultar catastrófica. Vamos a ver estas características con ejemplos. </div>  
+
El concepto de servidor de aplicaciones está relacionado con el concepto de sistema distribuido. Un sistema distribuido, en oposición a un sistema monolítico, permite mejorar tres aspectos fundamentales en una aplicación: la alta disponibilidad, la escalabilidad y el mantenimiento. En un sistema monolítico un cambio en las necesidades del sistema (aumento considerable del número de visitas, aumento del número de aplicaciones, etc.) provoca un colapso y la adaptación a dicho cambio puede resultar catastrófica. Vamos a ver estas características con ejemplos. </div> La alta disponibilidad hace referencia a que un sistema debe estar funcionando las 24 horas del día los 365 días al año. Para poder alcanzar esta característica es necesario el uso de técnicas de balanceo de carga y de recuperación ante fallos (failover). </div> La escalabilidad es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el número de peticiones). Cada máquina tiene una capacidad finita de recursos y por lo tanto sólo puede servir un número limitado de peticiones. Si, por ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas máquinas para dar servicio.</div> El mantenimiento tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solución al mantenimiento es la construcción de la lógica de negocio en unidades reusables y modulares.</div>
La alta disponibilidad hace referencia a que un sistema debe estar funcionando las 24 horas del día los 365 días al año. Para poder alcanzar esta característica es necesario el uso de técnicas de balanceo de carga y de recuperación ante fallos (failover).  
 
 
 
La escalabilidad es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el número de peticiones). Cada máquina tiene una capacidad finita de recursos y por lo tanto sólo puede servir un número limitado de peticiones. Si, por ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas máquinas para dar servicio.  
 
 
 
El mantenimiento tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solución al mantenimiento es la construcción de la lógica de negocio en unidades reusables y modulares.  
 
 
 
 
== ¿Qué es un servidor de aplicaciones?  ==
 
== ¿Qué es un servidor de aplicaciones?  ==
<div align="justify">El estándar J2EE permite el desarrollo de aplicaciones de empresa de una manera sencilla y eficiente. Una aplicación desarrollada con las tecnologías J2EE permite ser desplegada en cualquier servidor de aplicaciones o servidor web que cumpla con el estándar. Un servidor de aplicaciones es una implementación de la especificación J2EE. </div>  
+
El estándar J2EE permite el desarrollo de aplicaciones de empresa de una manera sencilla y eficiente. Una aplicación desarrollada con las tecnologías J2EE permite ser desplegada en cualquier servidor de aplicaciones o servidor web que cumpla con el estándar. Un servidor de aplicaciones es una implementación de la especificación J2EE. </div>  
 
'''Conceptos de la arquitectura J2EE'''  
 
'''Conceptos de la arquitectura J2EE'''  
 
+
'''Cliente web''' (contenedor de applets): Es usualmente un navegador e interactúa con el contenedor web haciendo uso de [[HTTP]]. Recibe páginas [[HTML|HTML]] o [[XML]] y puede ejecutar applets y código [[JavaScript]].</div> '''Aplicación cliente''': Son clientes que no se ejecutan dentro de un navegador y pueden utilizar cualquier tecnología para comunicarse con el contenedor web o directamente con la base de datos.</div> '''Contenedor web''': Es lo que comúnmente denominamos servidor web. Es la parte visible del servidor de aplicaciones. Utiliza los protocolos HTTP y SSL (seguro) para comunicarse.</div> '''Servidor de aplicaciones''': Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas. Es el corazón de un gran sistema distribuido.</div> Frente a la tradicional estructura en dos capas de un servidor web, un servidor de aplicaciones proporciona una estructura en tres capas que permite estructurar nuestro sistema de forma más eficiente. Un concepto que debe quedar claro desde el principio es que no todas las aplicaciones de empresa necesitan un servidor de aplicaciones para funcionar. Una pequeña aplicación que acceda a una base de datos no muy compleja y que no sea distribuida probablemente no necesitará un servidor de aplicaciones, tan solo con un servidor web (usando servlets y jsp) sea suficiente.</div>Como hemos comentado, un servidor de aplicaciones es una implementación de la especificación J2EE. Existen diversas implementaciones, cada una con sus propias características que la pueden hacer más atractiva en el desarrollo de un determinado sistema. Algunas de las implementaciones más utilizadas son las siguientes: </div>  
'''Cliente web''' (contenedor de applets): Es usualmente un navegador e interactúa con el contenedor web haciendo uso de [[Http]]. Recibe páginas HTML o [[XML]] y puede ejecutar applets y código [[JavaScript]].  
 
 
 
'''Aplicación cliente''': Son clientes que no se ejecutan dentro de un navegador y pueden utilizar cualquier tecnología para comunicarse con el contenedor web o directamente con la base de datos.  
 
 
 
'''Contenedor web''': Es lo que comúnmente denominamos servidor web. Es la parte visible del servidor de aplicaciones. Utiliza los protocolos HTTP y SSL (seguro) para comunicarse.  
 
 
 
'''Servidor de aplicaciones''': Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas. Es el corazón de un gran sistema distribuido.  
 
<div align="justify">Frente a la tradicional estructura en dos capas de un servidor web, un servidor de aplicaciones proporciona una estructura en tres capas que permite estructurar nuestro sistema de forma más eficiente. Un concepto que debe quedar claro desde el principio es que no todas las aplicaciones de empresa necesitan un servidor de aplicaciones para funcionar. Una pequeña aplicación que acceda a una base de datos no muy compleja y que no sea distribuida probablemente no necesitará un servidor de aplicaciones, tan solo con un servidor web (usando servlets y jsp) sea suficiente.</div><div align="justify">Como hemos comentado, un servidor de aplicaciones es una implementación de la especificación J2EE. Existen diversas implementaciones, cada una con sus propias características que la pueden hacer más atractiva en el desarrollo de un determinado sistema. Algunas de las implementaciones más utilizadas son las siguientes: </div>  
 
 
• BEA WebLogic  
 
• BEA WebLogic  
  
Línea 34: Línea 32:
  
 
• HP Bluestone  
 
• HP Bluestone  
<div align="justify">Los dos primeros son los más utilizados en el mercado. Nosotros vamos a utilizar el servidor BEA WebLogic. La principal ventaja de WebLogic es que podemos crear un sistema con varias máquinas con distintos sistemas operativos: [[Linux]], [[Unix]], [[Windows NT]], etc. El sistema funciona sin importarle en qué máquina está corriendo el servidor. </div>  
+
Los dos primeros son los más utilizados en el mercado. Nosotros vamos a utilizar el servidor BEA WebLogic. La principal ventaja de WebLogic es que podemos crear un sistema con varias máquinas con distintos sistemas operativos: [[Linux]], [[Unix]], [[Windows NT]], etc. El sistema funciona sin importarle en qué máquina está corriendo el servidor. </div>  
'''Otros conceptos
+
'''Otros conceptos '''  
'''
+
'''Servidor proxy''': Centraliza peticiones de los clientes y las reenvía hacia otras máquinas. Puede servir como nivel de indirección y seguridad. También puede ser usado para realizar balanceo de carga.</div> '''Cortafuegos''' (firewall): Proporciona servicios de filtrado, autorización y autentificación. Puede actuar como proxy y ayuda a manejar los ataques de los hackers. </div> '''Máquina''': Representa una unidad física donde reside un servidor. Una máquina se define como tipo Unix o no Unix (Windows NT, etc.).</div> '''Servidor''': Un servidor es una instancia de la clase weblogic.Server ejecutándose dentro de una máquina virtual de Java. Un servidor está alojado en una máquina, pero una máquina puede contener varios servidores. Si un servidor no lo declaramos en ninguna máquina WLS asume que está en una creada por defecto.</div> '''Dominio''': Un dominio es una unidad administrativa. Sirve para declarar varios servidores, aplicaciones, etc. y que todos ellos estén asociados mediante el nombre del dominio.</div> '''Clustering''' (asociación): Los clusters permiten asociar maquinas y servidores para que actúen de forma conjunta como una única instancia. La creación de un cluster va a permitir el balanceo de carga y la recuperación frente a fallos. </div> '''Balanceo de carga''': Es una técnica utilizada para distribuir las peticiones entre varios servidores de tal forma que todos los servidores respondan al mismo número de peticiones.</div> '''Recuperación ante fallos''' (failover): Permite evitar la caída de un sistema cuando una máquina deja de funcionar o funciona incorrectamente.</div> '''Puerto de escucha''': Un servidor tiene varios puertos por los que puede "escuchar" las peticiones. Existen puertos ya asignados a aplicaciones concretas, como por ejemplo el puerto de http que suele ser el 80. Los puertos permiten que varias aplicaciones puedan atender distintas peticiones en la misma máquina. Un puerto en una dirección se especifica de la siguiente manera: http://localhost:7001/direc. Con 7001 indicamos el puerto que estamos atacando. Los puertos del 0 al 1023 son reservados por el sistema. Podemos disponer de los puertos del 1024 al 65536. Hay que tener en cuenta que dos servicios no pueden estar escuchando en el mismo puerto.</div> '''Modo producción y modo desarrollo'''. Hablaremos muy a menudo de modo desarrollo y modo producción. El modo desarrollo es cuando nos encontramos desarrollando nuestra aplicación y no está disponible exteriormente. El modo producción es cuando está funcionando a pleno rendimiento y tenemos clientes que se encuentran utilizándola. Por defecto, un dominio se arranca en modo desarrollo.</div>
'''Servidor proxy''': Centraliza peticiones de los clientes y las reenvía hacia otras máquinas. Puede servir como nivel de indirección y seguridad. También puede ser usado para realizar balanceo de carga.  
 
 
 
'''Cortafuegos''' (firewall): Proporciona servicios de filtrado, autorización y autentificación. Puede actuar como proxy y ayuda a manejar los ataques de los hackers.  
 
 
 
'''Máquina''': Representa una unidad física donde reside un servidor. Una máquina se define como tipo Unix o no Unix (Windows NT, etc.).  
 
 
 
'''Servidor''': Un servidor es una instancia de la clase weblogic.Server ejecutándose dentro de una máquina virtual de Java. Un servidor está alojado en una máquina, pero una máquina puede contener varios servidores. Si un servidor no lo declaramos en ninguna máquina WLS asume que está en una creada por defecto.  
 
 
 
'''Dominio''': Un dominio es una unidad administrativa. Sirve para declarar varios servidores, aplicaciones, etc. y que todos ellos estén asociados mediante el nombre del dominio.  
 
 
 
'''Clustering''' (asociación): Los clusters permiten asociar maquinas y servidores para que actúen de forma conjunta como una única instancia. La creación de un cluster va a permitir el balanceo de carga y la recuperación frente a fallos.  
 
 
 
'''Balanceo de carga''': Es una técnica utilizada para distribuir las peticiones entre varios servidores de tal forma que todos los servidores respondan al mismo número de peticiones.  
 
 
 
'''Recuperación ante fallos''' (failover): Permite evitar la caída de un sistema cuando una máquina deja de funcionar o funciona incorrectamente.  
 
 
 
'''Puerto de escucha''': Un servidor tiene varios puertos por los que puede "escuchar" las peticiones. Existen puertos ya asignados a aplicaciones concretas, como por ejemplo el puerto de http que suele ser el 80. Los puertos permiten que varias aplicaciones puedan atender distintas peticiones en la misma máquina. Un puerto en una dirección se especifica de la siguiente manera: http://localhost:7001/direc. Con&nbsp;:7001 indicamos el puerto que estamos atacando. Los puertos del 0 al 1023 son reservados por el sistema. Podemos disponer de los puertos del 1024 al 65536. Hay que tener en cuenta que dos servicios no pueden estar escuchando en el mismo puerto.
 
 
 
'''Modo producción y modo desarrollo'''. Hablaremos muy a menudo de modo desarrollo y modo producción. El modo desarrollo es cuando nos encontramos desarrollando nuestra aplicación y no está disponible exteriormente. El modo producción es cuando está funcionando a pleno rendimiento y tenemos clientes que se encuentran utilizándola. Por defecto, un dominio se arranca en modo desarrollo.
 
 
 
 
== Otros servidores de aplicación  ==
 
== Otros servidores de aplicación  ==
<div align="justify">[[Image:Servidor aplicaciones.png|left|Servidor aplicaciones.png]]El término servidor de aplicaciones también ha sido aplicado a otros productos no-J2EE. Por ejemplo, con el aumento de la popularidad de .NET, Microsoft califica a su producto Internet Information Server como un servidor de aplicaciones. Adicionalmente, se pueden encontrar servidores de aplicación de código abierto y comerciales de otros provedores; algunos ejemplos son Base4 Server y Zope. </div>  
+
[[Image:Estructura de servidores.jpg|thumb|left|165x165px]]El término servidor de aplicaciones también ha sido aplicado a otros productos no-J2EE. Por ejemplo, con el aumento de la popularidad de .NET, Microsoft califica a su producto Internet Information Server como un servidor de aplicaciones. Adicionalmente, se pueden encontrar servidores de aplicación de código abierto y comerciales de otros provedores; algunos ejemplos son Base4 Server y Zope. </div>  
 
<br> <br> <br> <br> <br>  
 
<br> <br> <br> <br> <br>  
 +
 +
<br>
  
 
== Características comunes  ==
 
== Características comunes  ==
<div align="justify">Los servidores de aplicación típicamente incluyen también middleware (o software de conectividad) que les permite intercomunicarse con variados servicios, para efectos de confiabilidad, seguridad, no-repudio, etc. Los servidores de aplicación también brindan a los desarrolladores una Interfaz para Programación de Aplicaciones (API), de tal manera que no tengan que preocuparse por el sistema operativo o por la gran cantidad de interfaces requeridas en una aplicación Web moderna. </div> <div align="justify">Los servidores de aplicación también brindan soporte a una gran variedad de estándares, tales como [[HTML]], [[XML]], [[IIOP]], [[JDBC]], [[SSL]], etc., que les permiten su funcionamiento en ambientes Web (como Internet) y la conexión a una gran variedad de fuentes de datos, sistemas y dispositivos. </div> <div align="justify">Un ejemplo común del uso de servidores de aplicación (y de sus componentes) son los portales de Internet, que permiten a las empresas la gestión y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente, desde cualquier dispositivo. </div>  
+
Los servidores de aplicación típicamente incluyen también middleware (o software de conectividad) que les permite intercomunicarse con variados servicios, para efectos de confiabilidad, seguridad, no-repudio, etc. Los servidores de aplicación también brindan a los desarrolladores una Interfaz para Programación de Aplicaciones (API), de tal manera que no tengan que preocuparse por el sistema operativo o por la gran cantidad de interfaces requeridas en una aplicación Web moderna. </div> Los servidores de aplicación también brindan soporte a una gran variedad de estándares, tales como [[HTML]], [[XML]], IIOP, JDBC, SSL, etc., que les permiten su funcionamiento en ambientes Web (como Internet) y la conexión a una gran variedad de fuentes de datos, sistemas y dispositivos. </div> Un ejemplo común del uso de servidores de aplicación (y de sus componentes) son los portales de Internet, que permiten a las empresas la gestión y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente, desde cualquier dispositivo. </div>  
 
=== Principios  ===
 
=== Principios  ===
  
 
Los tres principios fundamentales de un servidor de aplicaciones son:  
 
Los tres principios fundamentales de un servidor de aplicaciones son:  
 
+
La alta disponibilidad hace referencia a que un sistema debe estar funcionando las 24 horas del día los 365 días al año. Para poder alcanzar esta característica es necesario el uso de técnicas de balanceo de carga y de recuperación ante fallos (failover).</div> La escalabilidad es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el número de peticiones). Cada máquina tiene una capacidad finita de recursos y por lo tanto sólo puede servir un número limitado de peticiones. Si, por ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas máquinas para dar servicio.</div> El mantenimiento tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solución al mantenimiento es la construcción de la lógica de negocio en unidades reusables y modulares.</div>
La alta disponibilidad hace referencia a que un sistema debe estar funcionando las 24 horas del día los 365 días al año. Para poder alcanzar esta característica es necesario el uso de técnicas de balanceo de carga y de recuperación ante fallos (failover).  
 
 
 
La escalabilidad es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el número de peticiones). Cada máquina tiene una capacidad finita de recursos y por lo tanto sólo puede servir un número limitado de peticiones. Si, por ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas máquinas para dar servicio.  
 
 
 
El mantenimiento tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solución al mantenimiento es la construcción de la lógica de negocio en unidades reusables y modulares.  
 
 
 
 
=== Usos  ===
 
=== Usos  ===
<div align="justify">Un ejemplo común del uso de servidores de aplicación (y de sus componentes) son los portales de [[Internet]], que permiten a las empresas la gestión y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente, desde cualquier dispositivo. </div>  
+
Un ejemplo común del uso de servidores de aplicación (y de sus componentes) son los portales de [[Internet]], que permiten a las empresas la gestión y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente, desde cualquier dispositivo. </div>  
 
== Ventajas de los servidores de aplicaciones  ==
 
== Ventajas de los servidores de aplicaciones  ==
 +
'''Integridad de datos y códigos''': al estar centralizada en una o un pequeño número de máquinas servidoras, las actualizaciones están garantizadas para todos sus usuarios. No hay riesgos de versiones viejas.* Configuración centralizada: los cambios en la configuración de la aplicación, como mover el servidor de base de datos o la configuración del sistema, pueden ser hechos centralmente.</div>
 +
'''Seguridad''': se consideran más seguras.
 +
'''Rendimiento''': limitando el tráfico de la red solamente al tráfico de la capa de presentación, es percibido como un modelo cliente/servidor que mejora el rendimiento de grandes aplicaciones.</div>
 +
Un núcleo de ejecución que soporta el despliegue y gestión de aplicaciones de negocio de altas prestaciones.
 +
El entorno de desarrollo [[.net|.NET]] [[Framework]], que ofrece un modelo de programación simplificado y un modelo de ejecución de alto rendimiento para aplicaciones basadas en servidor, habilita la publicación de servicios Web y permite integrar las aplicaciones nuevas con las infraestructuras y aplicaciones ya existentes.</div>
 +
Un asistente para Añadir Roles sencillo que ayuda a elegir los servicios y funcionalidades necesarios para ejecutar las aplicaciones corporativas.
  
• Integridad de datos y códigos: al estar centralizada en una o un pequeño número de máquinas servidoras, las actualizaciones están garantizadas para todos sus usuarios. No hay riesgos de versiones viejas.* Configuración centralizada: los cambios en la configuración de la aplicación, como mover el servidor de base de datos o la configuración del sistema, pueden ser hechos centralmente.
+
Instalación automática de todas las funcionalidades necesarias para un rol determinado.
 
 
• Seguridad: se consideran más seguras.
 
 
 
• Performance: limitando el tráfico de la red solamente al tráfico de la capa de presentación, es percibido como un modelo cliente/servidor que mejora la performance de grandes aplicaciones.
 
 
 
• Un núcleo de runtime que soporta el despliegue y gestión de aplicaciones de negocio de altas prestaciones.
 
 
 
• El entorno de desarrollo .NET [[Framework]], que ofrece un modelo de programación simplificado y un modelo de ejecución de alto rendimiento para aplicaciones basadas en servidor, habilita la publicación de servicios Web y permite integrar las aplicaciones nuevas con las infraestructuras y aplicaciones ya existentes.
 
 
 
• Un asistente para Añadir Roles muy amigable que ayuda a elegir los servicios y funcionalidades necesarios para ejecutar las aplicaciones corporativas.
 
 
 
Instalación automática de todas las funcionalidades necesarias para un rol determinado.  
 
  
 
== ¿Cuándo hay que instalar un Servidor de Aplicaciones?  ==
 
== ¿Cuándo hay que instalar un Servidor de Aplicaciones?  ==
<div align="justify">El rol de Servidor de Aplicaciones se necesita si [[Windows Server]] [[2008]] ejecuta aplicaciones que dependen de servicios o funcionalidades de rol que forman parte del rol integrado de Servidor de Aplicaciones y éstas se seleccionan durante el proceso de instalación. Por ejemplo, podría ser una configuración concreta de Microsoft BizTalk® Server que utiliza un conjunto de servicios o funcionalidades de rol que se incluyen dentro del entorno del Servidor de Aplicaciones. </div> <div align="justify">Habitualmente el rol de Servidor de Aplicaciones se necesita si se está poniendo en marcha una aplicación de negocio desarrollada internamente (o por un fabricante independiente) y cuando el desarrollador ha prescrito los servicios de rol concretos que se necesitan para ella. Por ejemplo, en su organización podría tener una aplicación de tramitación de pedidos que accede a registros de clientes almacenados en una base de datos. La aplicación accede a la información del cliente por medio de una serie de servicios Web WCF. En este caso, puede configurarse un equipo Windows Server 2008 como servidor de aplicación e instalar la base de datos en este mismo equipo o en otra máquina diferente. </div> <div align="justify">No siempre es necesario instalar el rol de Servidor de Aplicaciones para que funcionen las aplicaciones correctamente. Por ejemplo, este rol no es necesario para el soporte de [[Microsoft Exchange Server]] o [[Microsoft SQL Server]] sobre [[Windows Server]] [[2008]]. Para saber si necesita este rol para ejecutar sus aplicaciones corporativas, los administradores deben cooperar estrechamente con los desarrolladores de las aplicaciones a fin de determinar correctamente los requisitos de éstas, y saber si utilizan, por ejemplo Microsoft .NET Framework 3.0 o componentes COM+.</div>  
+
El rol de Servidor de Aplicaciones se necesita si Windows Server 2008 ejecuta aplicaciones que dependen de servicios o funcionalidades de rol que forman parte del rol integrado de Servidor de Aplicaciones y éstas se seleccionan durante el proceso de instalación. Por ejemplo, podría ser una configuración concreta de Microsoft BizTalk® Server que utiliza un conjunto de servicios o funcionalidades de rol que se incluyen dentro del entorno del Servidor de Aplicaciones. </div> Habitualmente el rol de Servidor de Aplicaciones se necesita si se está poniendo en marcha una aplicación de negocio desarrollada internamente (o por un fabricante independiente) y cuando el desarrollador ha prescrito los servicios de rol concretos que se necesitan para ella. Por ejemplo, en su organización podría tener una aplicación de tramitación de pedidos que accede a registros de clientes almacenados en una base de datos. La aplicación accede a la información del cliente por medio de una serie de servicios Web WCF. En este caso, puede configurarse un equipo Windows Server 2008 como servidor de aplicación e instalar la base de datos en este mismo equipo o en otra máquina diferente. </div> No siempre es necesario instalar el rol de Servidor de Aplicaciones para que funcionen las aplicaciones correctamente. Por ejemplo, este rol no es necesario para el soporte de [[Microsoft Exchange Server]] o [[Microsoft SQL Server]] sobre Windows Server 2008. Para saber si necesita este rol para ejecutar sus aplicaciones corporativas, los administradores deben cooperar estrechamente con los desarrolladores de las aplicaciones a fin de determinar correctamente los requisitos de éstas, y saber si utilizan, por ejemplo Microsoft [[.net|.NET]] Framework 3.0 o componentes COM+.</div>  
 
<br>  
 
<br>  
  
Línea 99: Línea 67:
 
http://www.jtech.ua.es/j2ee/2003-2004/abierto-j2ee-2003-2004/sa/sesion1-apuntes.htm  
 
http://www.jtech.ua.es/j2ee/2003-2004/abierto-j2ee-2003-2004/sa/sesion1-apuntes.htm  
  
http://enciclopedia.us.es/index.php/Servidor_de_aplicaciones http://www.microsoft.com/spain/windowsserver2008/web/web_as.mspx<br>  
+
http://enciclopedia.us.es/index.php/Servidor_de_aplicaciones  
 +
 
 +
http://www.microsoft.com/spain/windowsserver2008/web/web_as.mspx<br>
 +
 
 +
http://www.genexus.com/portal/hgxpp001.aspx?2,61,1109,O,S<br>
 +
 
 +
http://www.tresese.es/que.html<br>  
  
 
[[Category:Ciencias_Aplicadas_y_Tecnologías]] [[Category:Ciencias_informáticas_y_Telecomunicaciones]] [[Category:Ciencias_informáticas]] [[Category:Programación]] [[Category:Desarrollo_web]]
 
[[Category:Ciencias_Aplicadas_y_Tecnologías]] [[Category:Ciencias_informáticas_y_Telecomunicaciones]] [[Category:Ciencias_informáticas]] [[Category:Programación]] [[Category:Desarrollo_web]]

última versión al 04:18 13 jul 2019

Servidor de Aplicaciones
Información sobre la plantilla
Servidor de Aplicaciones.jpg
Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas
CreadorJCSC1
IdiomaEspañol

Servidor de Aplicaciones:Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas. Es el corazón de un gran sistema distribuido.

Introducción

El concepto de servidor de aplicaciones está relacionado con el concepto de sistema distribuido. Un sistema distribuido, en oposición a un sistema monolítico, permite mejorar tres aspectos fundamentales en una aplicación: la alta disponibilidad, la escalabilidad y el mantenimiento. En un sistema monolítico un cambio en las necesidades del sistema (aumento considerable del número de visitas, aumento del número de aplicaciones, etc.) provoca un colapso y la adaptación a dicho cambio puede resultar catastrófica. Vamos a ver estas características con ejemplos. La alta disponibilidad hace referencia a que un sistema debe estar funcionando las 24 horas del día los 365 días al año. Para poder alcanzar esta característica es necesario el uso de técnicas de balanceo de carga y de recuperación ante fallos (failover). La escalabilidad es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el número de peticiones). Cada máquina tiene una capacidad finita de recursos y por lo tanto sólo puede servir un número limitado de peticiones. Si, por ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas máquinas para dar servicio. El mantenimiento tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solución al mantenimiento es la construcción de la lógica de negocio en unidades reusables y modulares.

¿Qué es un servidor de aplicaciones?

El estándar J2EE permite el desarrollo de aplicaciones de empresa de una manera sencilla y eficiente. Una aplicación desarrollada con las tecnologías J2EE permite ser desplegada en cualquier servidor de aplicaciones o servidor web que cumpla con el estándar. Un servidor de aplicaciones es una implementación de la especificación J2EE.

Conceptos de la arquitectura J2EE

Cliente web (contenedor de applets): Es usualmente un navegador e interactúa con el contenedor web haciendo uso de HTTP. Recibe páginas HTML o XML y puede ejecutar applets y código JavaScript. Aplicación cliente: Son clientes que no se ejecutan dentro de un navegador y pueden utilizar cualquier tecnología para comunicarse con el contenedor web o directamente con la base de datos. Contenedor web: Es lo que comúnmente denominamos servidor web. Es la parte visible del servidor de aplicaciones. Utiliza los protocolos HTTP y SSL (seguro) para comunicarse. Servidor de aplicaciones: Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas. Es el corazón de un gran sistema distribuido. Frente a la tradicional estructura en dos capas de un servidor web, un servidor de aplicaciones proporciona una estructura en tres capas que permite estructurar nuestro sistema de forma más eficiente. Un concepto que debe quedar claro desde el principio es que no todas las aplicaciones de empresa necesitan un servidor de aplicaciones para funcionar. Una pequeña aplicación que acceda a una base de datos no muy compleja y que no sea distribuida probablemente no necesitará un servidor de aplicaciones, tan solo con un servidor web (usando servlets y jsp) sea suficiente.Como hemos comentado, un servidor de aplicaciones es una implementación de la especificación J2EE. Existen diversas implementaciones, cada una con sus propias características que la pueden hacer más atractiva en el desarrollo de un determinado sistema. Algunas de las implementaciones más utilizadas son las siguientes:

• BEA WebLogic

• IBM WebSphere

• Sun-Netscape IPlanet

• Sun One

• Oracle IAS

• Borland AppServer 

• HP Bluestone

Los dos primeros son los más utilizados en el mercado. Nosotros vamos a utilizar el servidor BEA WebLogic. La principal ventaja de WebLogic es que podemos crear un sistema con varias máquinas con distintos sistemas operativos: Linux, Unix, Windows NT, etc. El sistema funciona sin importarle en qué máquina está corriendo el servidor.

Otros conceptos

Servidor proxy: Centraliza peticiones de los clientes y las reenvía hacia otras máquinas. Puede servir como nivel de indirección y seguridad. También puede ser usado para realizar balanceo de carga. Cortafuegos (firewall): Proporciona servicios de filtrado, autorización y autentificación. Puede actuar como proxy y ayuda a manejar los ataques de los hackers. Máquina: Representa una unidad física donde reside un servidor. Una máquina se define como tipo Unix o no Unix (Windows NT, etc.). Servidor: Un servidor es una instancia de la clase weblogic.Server ejecutándose dentro de una máquina virtual de Java. Un servidor está alojado en una máquina, pero una máquina puede contener varios servidores. Si un servidor no lo declaramos en ninguna máquina WLS asume que está en una creada por defecto. Dominio: Un dominio es una unidad administrativa. Sirve para declarar varios servidores, aplicaciones, etc. y que todos ellos estén asociados mediante el nombre del dominio. Clustering (asociación): Los clusters permiten asociar maquinas y servidores para que actúen de forma conjunta como una única instancia. La creación de un cluster va a permitir el balanceo de carga y la recuperación frente a fallos. Balanceo de carga: Es una técnica utilizada para distribuir las peticiones entre varios servidores de tal forma que todos los servidores respondan al mismo número de peticiones. Recuperación ante fallos (failover): Permite evitar la caída de un sistema cuando una máquina deja de funcionar o funciona incorrectamente. Puerto de escucha: Un servidor tiene varios puertos por los que puede "escuchar" las peticiones. Existen puertos ya asignados a aplicaciones concretas, como por ejemplo el puerto de http que suele ser el 80. Los puertos permiten que varias aplicaciones puedan atender distintas peticiones en la misma máquina. Un puerto en una dirección se especifica de la siguiente manera: http://localhost:7001/direc. Con 7001 indicamos el puerto que estamos atacando. Los puertos del 0 al 1023 son reservados por el sistema. Podemos disponer de los puertos del 1024 al 65536. Hay que tener en cuenta que dos servicios no pueden estar escuchando en el mismo puerto. Modo producción y modo desarrollo. Hablaremos muy a menudo de modo desarrollo y modo producción. El modo desarrollo es cuando nos encontramos desarrollando nuestra aplicación y no está disponible exteriormente. El modo producción es cuando está funcionando a pleno rendimiento y tenemos clientes que se encuentran utilizándola. Por defecto, un dominio se arranca en modo desarrollo.

Otros servidores de aplicación

Estructura de servidores.jpg

El término servidor de aplicaciones también ha sido aplicado a otros productos no-J2EE. Por ejemplo, con el aumento de la popularidad de .NET, Microsoft califica a su producto Internet Information Server como un servidor de aplicaciones. Adicionalmente, se pueden encontrar servidores de aplicación de código abierto y comerciales de otros provedores; algunos ejemplos son Base4 Server y Zope.







Características comunes

Los servidores de aplicación típicamente incluyen también middleware (o software de conectividad) que les permite intercomunicarse con variados servicios, para efectos de confiabilidad, seguridad, no-repudio, etc. Los servidores de aplicación también brindan a los desarrolladores una Interfaz para Programación de Aplicaciones (API), de tal manera que no tengan que preocuparse por el sistema operativo o por la gran cantidad de interfaces requeridas en una aplicación Web moderna. Los servidores de aplicación también brindan soporte a una gran variedad de estándares, tales como HTML, XML, IIOP, JDBC, SSL, etc., que les permiten su funcionamiento en ambientes Web (como Internet) y la conexión a una gran variedad de fuentes de datos, sistemas y dispositivos. Un ejemplo común del uso de servidores de aplicación (y de sus componentes) son los portales de Internet, que permiten a las empresas la gestión y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente, desde cualquier dispositivo.

Principios

Los tres principios fundamentales de un servidor de aplicaciones son:

La alta disponibilidad hace referencia a que un sistema debe estar funcionando las 24 horas del día los 365 días al año. Para poder alcanzar esta característica es necesario el uso de técnicas de balanceo de carga y de recuperación ante fallos (failover). La escalabilidad es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el número de peticiones). Cada máquina tiene una capacidad finita de recursos y por lo tanto sólo puede servir un número limitado de peticiones. Si, por ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas máquinas para dar servicio. El mantenimiento tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solución al mantenimiento es la construcción de la lógica de negocio en unidades reusables y modulares.

Usos

Un ejemplo común del uso de servidores de aplicación (y de sus componentes) son los portales de Internet, que permiten a las empresas la gestión y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente, desde cualquier dispositivo.

Ventajas de los servidores de aplicaciones

Integridad de datos y códigos: al estar centralizada en una o un pequeño número de máquinas servidoras, las actualizaciones están garantizadas para todos sus usuarios. No hay riesgos de versiones viejas.* Configuración centralizada: los cambios en la configuración de la aplicación, como mover el servidor de base de datos o la configuración del sistema, pueden ser hechos centralmente.

Seguridad: se consideran más seguras.

Rendimiento: limitando el tráfico de la red solamente al tráfico de la capa de presentación, es percibido como un modelo cliente/servidor que mejora el rendimiento de grandes aplicaciones.

Un núcleo de ejecución que soporta el despliegue y gestión de aplicaciones de negocio de altas prestaciones.

El entorno de desarrollo .NET Framework, que ofrece un modelo de programación simplificado y un modelo de ejecución de alto rendimiento para aplicaciones basadas en servidor, habilita la publicación de servicios Web y permite integrar las aplicaciones nuevas con las infraestructuras y aplicaciones ya existentes.

Un asistente para Añadir Roles sencillo que ayuda a elegir los servicios y funcionalidades necesarios para ejecutar las aplicaciones corporativas.

Instalación automática de todas las funcionalidades necesarias para un rol determinado.

¿Cuándo hay que instalar un Servidor de Aplicaciones?

El rol de Servidor de Aplicaciones se necesita si Windows Server 2008 ejecuta aplicaciones que dependen de servicios o funcionalidades de rol que forman parte del rol integrado de Servidor de Aplicaciones y éstas se seleccionan durante el proceso de instalación. Por ejemplo, podría ser una configuración concreta de Microsoft BizTalk® Server que utiliza un conjunto de servicios o funcionalidades de rol que se incluyen dentro del entorno del Servidor de Aplicaciones. Habitualmente el rol de Servidor de Aplicaciones se necesita si se está poniendo en marcha una aplicación de negocio desarrollada internamente (o por un fabricante independiente) y cuando el desarrollador ha prescrito los servicios de rol concretos que se necesitan para ella. Por ejemplo, en su organización podría tener una aplicación de tramitación de pedidos que accede a registros de clientes almacenados en una base de datos. La aplicación accede a la información del cliente por medio de una serie de servicios Web WCF. En este caso, puede configurarse un equipo Windows Server 2008 como servidor de aplicación e instalar la base de datos en este mismo equipo o en otra máquina diferente. No siempre es necesario instalar el rol de Servidor de Aplicaciones para que funcionen las aplicaciones correctamente. Por ejemplo, este rol no es necesario para el soporte de Microsoft Exchange Server o Microsoft SQL Server sobre Windows Server 2008. Para saber si necesita este rol para ejecutar sus aplicaciones corporativas, los administradores deben cooperar estrechamente con los desarrolladores de las aplicaciones a fin de determinar correctamente los requisitos de éstas, y saber si utilizan, por ejemplo Microsoft .NET Framework 3.0 o componentes COM+.


Fuentes

http://www.jtech.ua.es/j2ee/2003-2004/abierto-j2ee-2003-2004/sa/sesion1-apuntes.htm

http://enciclopedia.us.es/index.php/Servidor_de_aplicaciones

http://www.microsoft.com/spain/windowsserver2008/web/web_as.mspx

http://www.genexus.com/portal/hgxpp001.aspx?2,61,1109,O,S

http://www.tresese.es/que.html