Servidor de Aplicaciones Web en OpenSolaris
1. Introducción
2. Servidor de Aplicaciones
Con la introducción de Internet y del Web en concreto, se han abierto infinidad de posibilidades en cuanto al acceso a la información desde casi cualquier sitio. Esto representa un desafío a los desarrolladores de aplicaciones, ya que los avances en tecnología demandan cada vez aplicaciones más rápidas, ligeras y robustas que permitan utilizar el Web.
2.1 Definición
Afortunadamente, tenemos herramientas potentes para realizar esto, ya que han surgido nuevas tecnologías que permiten que el acceso a una base de datos desde el Web, por ejemplo, sea un mero trámite. El único problema es decidir entre el conjunto de posibilidades la correcta para cada situación. El viejo CGI ha cumplido con el propósito de añadir interactividad a las páginas Web pero sus deficiencias en el desarrollo de aplicaciones y en la escalabilidad de las mismas ha conducido al desarrollo de APIs específicos de servidor como Active Server Pages, ASP, y PHP, que son más eficientes que su predecesor CGI. Para aprovechar el potencial de estas tecnologías y ofertar una solución de servidor más extensible y portable, Sun ha desarrollado la tecnología llamada servlet. Los servlets Java son muy eficientes, debido al esquema de threads en el que se basan y al uso de una arquitectura estándar como la JVM, Java Virtual Machine. Otra nueva tecnología viene a sumarse a las que extienden la funcionalidad de los servidores Web, llamada JavaServer Pages, JSP. Los JSP permiten juntar HTML, aplicaciones Java, y componentes como las JavaBeans creando una página Web especial que el servidor Web compila dinámicamente en un servlet la primera vez que es llamada.
En informática, se denomina servidor de aplicaciones a un servidor en una red de computadores que ejecuta ciertas aplicaciones. Usualmente se trata de un dispositivo de software que proporciona servicios de aplicación a las computadoras cliente. Un servidor de aplicaciones generalmente gestiona la mayor parte (o la totalidad) de las funciones de lógica de negocio y de acceso a los datos de la aplicación. Los principales beneficios de la aplicación de la tecnología de servidores de aplicación son la centralización y la disminución de la complejidad en el desarrollo de aplicaciones. Si bien el término es aplicable a todas las plataformas de software, hoy en día el término servidor de aplicaciones se ha convertido en sinónimo de la plataforma Java EE (antes J2EE) de Sun Microsystems.
2.2 Servidores de Aplicación J2EE Como consecuencia del éxito del lenguaje de programación Java, el término servidor de aplicaciones usualmente hace referencia a un servidor de aplicaciones Java EE. WebSphere (IBM) y WebLogic (Oracle, antes BEA Systems) están entre los servidores de aplicación Java EE privativos más conocidos. EAServer (Sybase Inc.) es también conocido por ofrecer soporte a otros lenguajes diferentes a Java, como PowerBuilder. El servidor de aplicaciones JOnAS, desarrollado por el consorcio ObjectWeb, fue el primer servidor de aplicaciones libre en lograr certificación oficial de compatibilidad con J2EE. JBoss es otro servidor de aplicaciones libre y muy popular en la actualidad, así como el GlassFish de SUN. Mucha gente confunde Tomcat (The Apache Software Foundation) como un servidor de aplicaciones; sin
embargo, es solamente un contenedor de servlets [1]. Java EE provee estándares que permiten a un servidor de aplicaciones servir como "contenedor" de los componentes que conforman dichas aplicaciones. Estos componentes, escritos en lenguaje Java, usualmente se conocen como Servlets, Java Server Pages (JSPs) y Enterprise JavaBeans (EJBs) y permiten implementar diferentes capas de la aplicación, como la interfaz de usuario, la lógica de negocio, la gestión de sesiones de usuario o el acceso a bases de datos remotas. La portabilidad de Java también ha permitido que los servidores de aplicación Java EE se encuentren disponibles sobre una gran variedad de plataformas, como Unix, Microsoft Windows y GNU/Linux.
2.3 Otros Servidores de Aplicación 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 comercial 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. 2.4 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.
3. Servidor Web 3.1 Definición Un servidor web es un programa que implementa el protocolo HTTP (HyperText Transfer Protocol). Este protocolo pertenece a la capa de aplicación del modelo OSI y está diseñado para transferir lo que llamamos hipertextos, páginas web o páginas HTML (HyperText Markup Language): textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de música. Es un programa que se ejecuta continuamente en un ordenador (también se emplea el término para referirse al ordenador que lo ejecuta), manteniéndose a la espera de peticiones por parte de un cliente (un navegador web) y que responde a estas peticiones adecuadamente, mediante una página web que se exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error. Instalar un servidor web en nuestro PC nos permitirá, entre otras cosas, poder montar nuestra propia página web sin necesidad de contratar hosting, probar nuestros desarrollos vía local, acceder a los archivos de nuestro equipo desde un PC remoto (aunque para esto existen otras opciones, como utilizar un servidor FTP) o utilizar
alguno de los programas basados en web tan interesantes que están viendo la luz últimamente. El problema de usar nuestro ordenador como servidor web es que conviene tenerlo encendido permanentemente (para que esté accesible de forma continua como la mayoría de los sitios webs), con el consiguiente coste debido al consumo de electricidad (conviene tener en cuenta que hay alojamientos web gratuitos, incluso sin publicidad y con interesantes funciones). Sin embargo, el hecho de que HTTP y HTML estén íntimamente ligados no debe dar lugar a confundir ambos términos. HTML es un lenguaje de marcas y HTTP es un protocolo. Un servidor web se mantiene a la espera de peticiones HTTP por parte de un cliente HTTP que solemos conocer como navegador. El cliente realiza una petición al servidor y éste le responde con el contenido que el cliente solicita. Las aplicaciones de servidor muchas veces suelen ser la mejor opción para realizar aplicaciones web. La razón es que, al ejecutarse ésta en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí ocurre en el caso de querer ejecutar aplicaciones javascript o java. Así pues, cualquier cliente dotado de un navegador web básico puede utilizar este tipo de aplicaciones.
Algunos servidores web importantes son:
Apache Cherokee
4. Servidor HTTP Apache El servidor HTTP Apache es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, Solaris, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.11 y la noción de sitio virtual. Apache presenta entre otras características altamente configurables, bases de datos de
autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.
4.1 Usos Apache es usado primariamente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web. Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby). Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos. Los programadores de aplicaciones web a veces utilizan una versión local de Apache en orden de previsualizar y probar código mientras éste es desarrollado.
5. Configuración de Servidor Web Solaris Primero debemos colocar la dirección IP correspondiente, al servidor debemos de hacerlo del mismo modo como se realiza en cualquier distribución que tenga entorno de escritorio Gnome.
Esto nos inicializara todas las opciones para poder manejar un servidor WEB, esperamos a que cargue la configuración. Una vez configurada la dirección IP debemos ir al Package Manager, y esperar que cargue todos los paquetes.
Debemos paquetes.
de
instalar
los
siguientes
Una vez instalados los paquetes vamos al menú de “Aplicaciones”, en “Herramientas para desarrolladores” y damos clic en “Web Stack Initialize”
Vamos de nuevo al menú de “Herramientas para desarrolladores”, y tenemos un nuevo menú “Web Stack Admin”, le damos clic en Start Apache2/MySQL Servers.
Esperamos que termine la configuración.
$pfexec pkg install SUNWapch22 SUNWapch22d Instalación de módulos de apache 2
$pfexec pkg install SUNWapch22msecurity SUNWapch22m-jk SUNWapch22m-fcgid SUNWapch22m-dtrace 2. Ahora procederemos con la instalación de PHP 5 Una vez hecho esto, ya podemos montar páginas WEB, en la siguiente dirección “/var/apache2/2.2/htdocs”; recordemos que para que la página entre directamente se debe hacer con “index.php” o “index.html”.
$pfexec pkg install SUNWphp524 SUNWphp524core SUNWphp524man SUNWphp524-mysql SUNWphp524pgsql SUNWapch22m-php5 3. Ahora procederemos con la instalación de Mysql
Como podemos ver al entrar a “localhost” o “127.0.0.1”, nos muestra la página hecha y configurada para que muestre.
6. Como instalar Apache+PHP+Mysql en Open Solaris. Vamos a explicar la forma de instalación de Apache, php y Maysql en Open Solaris, así como la realización de una página de prueba en php, para verificar que nuestra instalación es correcta. 1. Vamos a abrir una terminal de line de comandos y ejecutaremos lo siguiente: Instalación del core Apache 2 (para ejecutar lo siguiente no necesitas ser root)
Nota: En caso de tener instalado Mysql ya no es necesaria la ejecución del siguiente comando. Además por lo que pude observar al instalar PHP 5 en automático Open Solaris trae por defecto dependencias de Mysql, pero aun así ejecutemos el siguiente comando.
$pfexec pkg install SUNWphp524 SUNWphp524core SUNWphp524man SUNWphp524-mysql SUNWphp524pgsql SUNWapch22m-php5 4. Procederemos a levantar los servicios de Apache 2 y Mysql para lo cual vamos (todo esto en las opciones de de la barra de tareas) a la opción System–>Services y activar la opción MySQL RDBMS así como Apache 2 HTTP Server en la lista que le aparecerá y dar click en el botón ok.
5. En este paso vamos a verificar que la instalación de nuestros componentes se hallan instalado correctamente por lo cual en una terminal de comandos ejecutamos: $cd /var/apache2/2.2/htdocs $cd ls -l
Guardamos el archivo y salimos del editor vi. 8. Ahora vamos a firefox y ejecutamos la siguiente dirección y podremos ver la siguiente información. http://localhost/hello.php
Deberá salir una lista de archivos similar a la siguiente:
9. Para saber si esta funcionando Mysql estando en la misma url 6. Ahora vamos a realizar la prueba de que Apache esta funcionado correctamente para lo cual abriremos firefox y ejecutamos el la barra de tareas la siguiente dirección:
http://localhost/hello.php Se puede verificar, solo basta ver la imagen y buscar algo similar a la siguiente imagen.
http://localhost/index.html Recuerde que Apache corre en el puerto 80, una vez realizado esto podrá ver una pantalla similar a la siguiente:
7,- Ahora vamos a realizar la prueba de funcionamiento de PHP, para lo cual vamos a crear un archivo con el nombre hello.php de la siguiente manera:
$cd /var/apache2/2.2/htdocs $vi hello.php Estando dentro del archivo colocamos lo siguiente:
7. Conclusiones
Sobre el servicio web clásico podemos disponer de aplicaciones web. Éstas son porciones de código que se ejecutan cuando se realizan ciertas peticiones o respuestas HTTP. Hay que distinguir entre:
Aplicaciones en el lado del cliente: el cliente web es el encargado de ejecutarlas en la máquina del usuario. Son las aplicaciones tipo Java o
Javascript: el servidor proporciona el código de las aplicaciones al cliente y éste, mediante el navegador, las ejecuta. Es necesario, por tanto, que el cliente disponga de un navegador con capacidad para ejecutar aplicaciones (también llamadas scripts). Comúnmente, los navegadores permiten ejecutar aplicaciones escritas en lenguaje javascript y java, aunque pueden añadirse más lenguajes mediante el uso de plugins. Aplicaciones en el lado del servidor: el servidor web ejecuta la aplicación; ésta, una vez ejecutada, genera cierto código HTML; el servidor toma este código recién creado y lo envía al cliente por medio del protocolo HTTP.
Las aplicaciones de servidor muchas veces suelen ser la mejor opción para realizar aplicaciones web. La razón es que, al ejecutarse ésta en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí ocurre en el caso de querer ejecutar aplicaciones javascript o java. Así pues, cualquier cliente dotado de un navegador web básico puede utilizar este tipo de aplicaciones. 8. Bibliografía [1] Servidor de Aplicaciones. Wikipedia, la enciclopedia libre. [2] Configuración de Servidor Web Solaris. [3] Héctor Hugo Hidalgo Martínez. Como instalar Apache + PHP + Mysql en Open Solaris. [4] Servidor Web. Wikipedia, enciclopedia libre.
la