Download servidores_objetos
Document related concepts
no text concepts found
Transcript
SERVIDORES DE OBJETOS Christian Andrés Castellanos 255988 Carlos Alberto Algarra 255888 SYBASE - EAServer ENTERPRISE APPLICATION SERVER EAServer es un conjunto de herramientas y servidores de aplicaciones que se utilizan para implementar aplicaciones web distribuidas que soporten un alto volumen de tráfico, contenido dinámico, y un intenso procesamiento de transacciones en línea. Está compuesto por: • Power Dynamo • Adaptive Server Anywhere • Jaguar • Integrador de Aplicaciones • PowerJ DYNAMO •Es un servidor de aplicaciones que actúa como intermediario entre el servidor web y el DBMS. •Provee las herramientas necesarias para construir y administrar una aplicación web que contienen html estático y dinámico. •El servidor de aplicaciones procesa templates, que son paginas html con sql embedido, y dinámicamente genera páginas HTML para enviarlas al servidor web. JAGUAR Es un servidor de componentes con la habilidad de servir componentes powerbuilder, Java(CORBA o Enterprise JavaBeans), ActiveX, o C++, a un cliente que hace llamadas a métodos . Dynamo en algunos casos es cliente de Jaguar. COMPONENTES •Los componentes son módulos de código reutilizable que combinan tareas relacionadas o métodos. •Residen en un servidor (por ejemplo un servidor jaguar) y puede ser usados por muchos programas diferentes, prescindiendo del leguaje de presentación del programa. •Un cliente ejecuta los métodos de un componente. COMPONENTES •En lugar de crear un programa pesado, usted crea un cliente que contiene la interface y código de validación y varios componentes individuales que contienen la funcionalidad (business logic) de su programa. •Los componentes Jaguar son instalados sobre un servidor jaguar y contienen los métodos que se ejecutan en la infraestructura del negocio, permitiendole acceder a fuentes de datos. COMPONENTES •El administrador instala el código ejecutable del componente sobre el servidor Jaguar. •Los componentes pueden ser ditribuidos a través de una red (internet o intranet) sobre diferentes servidores. •Los componentes instalados pueden ser usados por cualquier número de aplicaciones independientes. •Se pueden utilizar diferentes herramientas de desarrollo (PowerJ, PowerBuilder, Visual Basic, Visual C ++) •Modelos de componentes (java beans, java servlets, ActiveX, PowerBuilder nvo) para desarrollar componentes middle-tier e implementarlas sobre un servidor Jaguar. •Se utilizan scripts para llamar los métodos de los componentes sobre el servidor jaguar. CONSIDERACIONES La infraestructura del lado del cliente para aplicaciones empresariales debe ser tan pequeña y eficiente como sea posible para conservar el ancho de banda de la red. Particiones de la aplicación: • Estructura de la Presentación • Estructura del negocio • Estructura de la base de datos. •La estructura de la presentación reside en el escritorio del usuario, nivel alto, o es descargada dinámicamente al escritorio del usuario. •La estructura del negocio reside en el nivel medio o servidor transaccional de componentes. •La base de datos reside en el nivel inferior del sistema empresarial para mantener y asegurar la información de la organización. ARQUITECTURAS Tipicamente las aplicaciones usan una de las tres siguientes architecturas: •Distribuida •web •Cliente / Servidor Algunas aplicaciones requieren una combinación de las anteriores. Arquitectura de aplicaciones distribuidas El cliente y el servidor trabajan juntos para desarrollar tareas para el usuario del negocio. El cliente puede manipular todas las interacciones con el usuario mientras el servidor middle-tier provee servicios de fondo a el cliente. Arquitectura de aplicaciones distribuidas El servidor middle-tier ejecuta muchos de los procedimientos y accesos a bases de datos. Para invocar los servicios del servidor, el cliente llama un método o función asociado con un componente u objeto que reside en el servidor. Arquitectura de aplicaciones distribuidas Jaguar CTS puede hospedar componentes powerbuilder, EJB, Java, ActiveX, y C/C++. Cualquier tipo de cliente Jaguar puede acceder a cualquier tipo de componente corriendo en Jaguar, prescindiendo del lenguaje que fue utilizado para desarrollar el componente. Arquitectura de aplicaciones distribuidas Arquitectura de aplicaciones web En una aplicación web, un browser web cliente envía peticiones o solicitudes por documentos HTML hacia un servidor web. Los documentos pueden incluir referencias a otros recursos, tales como imágenes, archivos de sonido, plugins, Java applets, o controles ActiveX. Arquitectura de aplicaciones web Algunos recursos de programas, tales como plugins y controles ActiveX, pueden requerir software adicional en el cliente o navegadores específicos. Arquitectura de aplicaciones web Las páginas web también pueden contener scripts del lado del cliente y del lado del servidor. •Los scripts del lado del cliente contiene instrucciones que son ejecutados sobre navegador. •Los scripts del lado del servidor contiene instrucciones que son ejecutadas sobre un servidor de aplicaciones. Arquitectura de aplicaciones web Un servidor de aplicaciones actua como un intermediario entre el servidor web y el DBMS. El servidor de aplicaciones procesa las instrucciones empotradas (tales como sentencias SQL y scripts), forma la salida como HTML, y las envía al servidor web. Arquitectura de aplicaciones web Arquitectura cliente/servidor En una aplicación tradicional cliente/servidor, un programa corriendo en la máquina del cliente accede a una base de datos corriendo o ejecutandose en un servidor. En el modelo del cliente/servidor, la interface del usuario y la estructura del negocio se encuentran juntos en el computador del cliente. El cliente puede opcionalmente incluir uno o más componentes. Arquitectura cliente/servidor EJEMPLO 1. En un navegador Web, un usuario solicita una página. 2. El servidor Web pasa la solicitud al servidor de páginas, quien localiza el template para la página solicitada y ejecuta los scripts del template. 3. Los scripts conectan hacia el servidor de componentes, pasando información de la conexión a la base de datos. 4. Los métodos en el servidor de componentes obtienen los datos requeridos desde la base de datos y los genera una página HTML de forma dinámica, gracias a Dynamo. 5. El servidor de componentes retorna la página HTML al servidor de páginas. 6. El servidor de páginas reemplaza el script en la página Web solicitada con el HTML generado, y retorna la página al navegador Web por medio del servidor Web. 7. El usuario interactua con la página, puede solicitar otra página o actualizar información. 8. El servidor Web pasa la URL junto con los parámetros de acción al servidor de páginas y el ciclo se repite. ASP ACTIVE SERVER PAGES Microsoft introdujo esta tecnología llamada Active Server Pages en diciembre de 1996. Es parte del Internet Information Server (IIS) desde la versión 3.0 y es una tecnología de páginas activas que permite el uso de diferentes scripts y componentes en conjunto con el tradicional HTML para mostrar páginas generadas dinámicamente. El ASP es una tecnología dinámica funcionando del lado del servidor, lo que significa que cuando el usuario solicita un documento ASP, las instrucciones de programación dentro del script son ejecutadas para enviar al navegador únicamente el código HTML resultante. Para insertar instrucciones ASP dentro del código HTML se incluye encerrado entre "<% %>". Estos comandos son los que procesa el servidor antes de enviar la página al navegador. <P> <% For I = 1 To 5 Step 1 %> <FONT SIZE="<%= I %>">Maestros del Web!</FONT><BR> <% Next %> </P> Maestros del Web! Maestros del Web! Maestros del Web! Maestros del Web! Maestros del Web! •El lenguaje con el que se escribe (VBScript o Jscript) permite unas funcionalidades que no van más allá de las básicas de cualquier lenguaje: trabajo con variables, tipos, estructuras de control y un juego de funciones (que en el caso de VBScript es bastante limitado). •Para hacer algo complejo en una página ASP, lo más seguro es que se deba realizar a través de algún componente, ejemplo ActiveX. Para crear componentes de servidor se puede utilizar cualquier lenguaje de programación. Aunque muy habitualmente se hacen en Visual Basic, se pueden hacer también en Delphi, Visual C++ o el propio C++ por ejemplo. Para su programación es necesario que se sigan unas normas y estructuras. La creación de un componente se hace a través del objeto server de ASP. Set mi_componente = Server.CreateObject(IDENTIFICADOR) El identificador que se le pasa es una cadena de caracteres que contiene el código del componente que se quiere crear. Un componente suele ser un archivo .dll y es habitual que la instalación de esa dll se realice manualmente. Para ello se copia el archivo .dll en el directorio system del servidor, (\winnt\system32 en NT o \windows\system en Win95) y luego se registra la dll en el sistema con el comando regsvr32 mi_componente.dll Ventajas Es liviano y puede correr en PCs normales que tengan Windows y un servidor web. Se puede utilizar desde cualquier computadora que esté conectada a la red que tenga instalado un navegador. Es muy fácil de programar, y tiene muchas utilidades que con una breve línea de aprendizaje pueden ser modificadas a su gusto. APACHE Apache: Servidor "libre" de HTTP Originalmente basado en el servidor mas popular de la época: NCSA http a principios de 1995. Desde su origen a evolucionado hasta convertirse en uno de los mejores servidores en términos de eficiencia, funcionalidad y velocidad. Apache es el servidor WWW mas popular del momento. Apache a demostrado ser substancialmente mas rápido que muchos otros servidores libres y compite de cerca con los mejores servidores comerciales. Apache es el número uno de los servidores web de todo el mundo. Más del 50% de los servidores de la red utilizan Apache. Como Obtenerlo - Licencia Una de las características que atraen a más usuarios es que el código fuente de Apache es gratuito, así se puede explorar, ver como está hecho y si se quiere, modificarlo a tu gusto. Este software gratuito lo podemos encontrar de dos formas: • Mediante FTP: en el sitio web Java.sun.com. • En la página web: www.apache.org Aquí encontrará las últimas versiones de Apache (estable y oficial), parches, módulos, etc... Compatibilidad Apache se puede instalar en Windows y Linux Antes de instalar el servidor de Internet Apache es necesario tener en cuenta que paquetes se requieren previamente. Dependiendo de la versión de Windows en ejecución asi: Windows 95. Debe instalar Winsock2 para actualizar el dll de Winsock. Windows 98 y NT 4.0. Debe instalar MSI. Versiones posteriores de Windows a las mencionadas anteriormente no requieren de la instalación de estos paquetes Configuración Apache tiene 3 ficheros de configuración: • httpd.conf, • access.conf • srm.conf . Son de texto y tienen dos tipos de información: ordenes y comentarios (que van precedidos por #). Por medio de las órdenes se le indica al servidor que haga algo de una forma concreta. Configuración El httpd.conf: es el archivo principal de configuración. Se utiliza para indicarle al servidor qué programas ha de ejecutar. srm.conf: Fichero en el que se configuran los recursos del sistema. access.conf: Controla los permisos de los ficheros y directorios que se encuentran en el sitio Web. Archivos de Registro Por defecto Apache utiliza dos ficheros de registro. • El access.log para monitorizar los accesos y el error.log que guardará los fallos que sucedan. Contiene una línea para cada petición en formato CLF: host ident authuser date request status bytes • error.log anota la fecha y hora, cliente y error producido. Instalación Conceptos Los servlets y Java Server Pages (JSPs) son dos métodos de creación de páginas web dinámicas en servidor usando el lenguaje Java. Ambos necesitan un programa que los contenga, y sea el que envíe efectivamente páginas web al servidor, y reciba las peticiones, las distribuya entre los servlets, y lleve a cabo todas las tareas de gestión propias de un servidor web. Existen servidores específicos para servlets y JSPs llamados contenedores de servlets ó servlet engines. A veces también se llaman “Web-Container”. TOMCAT • Es un servidor de aplicaciones. • Tomcat es un contenedor de Servlets Quizas el nombre que más salga a relucir con "Servlet Engines" es Tomcat o Jakarta Apache. • Surgió de Sun Microsystem's cuando desarrollaban un "Servidor de Paginas" que utilizara "Java",y posteriormente cedieron el código fuente a la fundación Apache. • A pesar del nombre Apache-Tomcat, no requiere de Apache para su funcionamiento (solo requiere de un JDK ("Java Development Kit") ". La comunicación entre el "Servidor de Paginas (Ejm. Apache)" y el "Servlet Engine (Tomcat)" se lleva acabo mediante el protocolo denominado ajp12 y recientemente con su sucesor ajp13 . Instalación de Tomcat LINUX (1) Pasos Previos Instalación del JDK La base para operar cualquier producto que utiliza "Java" es el "JDK" de la plataforma correspondiente, en este caso el enfoque será sobre la plataforma "Linux“ (También puede ser "Windows" o "Sun Solaris“). Inclusive los pasos de Instalación despues del "JDK" no distan mucho de las diversas plataformas. Se tiene al instalar el jdk un directorio llamado jdk1.4, para mayor uniformidad se recomienda cambiar el nombre de este directorio a jdk y movilizarlo al directorio /usr/local/. Posteriormente se debe definir una variable ambiental la cual le indicará al sistema la ubicación del JDK, esta variable se llama JAVA_HOME la cual debe ser agregada a /etc/bashrc , si no está familiarizado con ambientes *nix, esto significa agregar la linea: export JAVA_HOME=/usr/local/jdk;. Instalación de Tomcat (2) Instalación de Tomcat Bajar la versión binaria de Tomcat en: http://jakarta.apache.org/tomcat. (La versión de Código Fuente (src) solo es necesaria si quiere experimentar y/o Instalar Apache con Tomcat ). Descomprimir el archivo Tar de Tomcat en /usr/local/, esto genera un directorio llamado jakarta-tomcat-<número_de_version>, para dar mayor uniformidad se recomienda cambiar el nombre de este directorio a Tomcat. Posteriormente se debe definir una variable ambiental la cual le indicará al sistema la ubicación de Tomcat , esta variable se llama TOMCAT_HOME la cual debe ser agregada a /etc/bashrc , si no esta familiarizado con ambientes *nix, esto significa agregar la linea: Instalación de Tomcat (4) Configuración Local Solo para ilustrar esta instalación inicial modifique el archivo /etc/hosts agregando una línea como la siguiente: 127.0.0.1 www.servidorprueba.com Ejecución y Pruebas Descienda al directorio bin de Tomcat (/usr/local/tomcat/bin ) y ejecute el archivo startup.sh : Al introducir la dirección www.servidorprueba.com:8080 en un navegador, se le esta indicando que solicite la pagina principal de www.servidorprueba.com en el puerto TCP 8080 ; En su navegador debe aparecer la pagina principal de documentación de Tomcat y los diversos Links hacia los ejemplos de Tomcat . Configuración de Tomcat (1) Aunque ya este observando la documentación de Tomcat, seguramente esto no le servirá de mucho a los visitantes de su sitio y seguramente tampoco sabrán que deben agregar :8080 a sus solicitudes, para realizar estos cambios es necesario entrar en los detalles de configuración de Tomcat Configuración de Tomcat (2) server.xml server.xml es el archivo principal de configuración para Tomcat, contiene una gran variedad de parámetros. Algunos son: <-- --> y valores "Default" El archivo server.xml es un archivo en XML , el cual de no contener una estructura conforme a XML, se indicará al arranque de Tomcat; dicho archivo se encuentra bajo el directorio /usr/local/tomcat/conf donde /usr/local/tomcat es el directorio definido en TOMCAT_HOME. Todo contenido entre <-- --> es considerado un comentario, y por lo tanto cualquier parámetro que se encuentre entre estos caracteres no es utilizado por "Tomcat"; aquellos parámetros que no sean definidos dentro de server.xml son asignados un valor "Default" por Tomcat. <Server> - </Server> <Server> es el elemento principal del archivo server.xml y todas las demás secciones deben encontrarse entre estos nodos. Instalación de Tomcat WINDOWS Apache y Tomcat (1) Porque se necesita Tomcat para ejecutar Java en Apache ? El funcionamiento principal de Apache desde su creación fue la de aceptar y responder requisiciones de Paginas en Internet, estas requisiciones correspondían a documentos estáticos (puro HTML), es por esto que cuando se requiere ejecutar algún tipo de contenido dinámico (programas) como "Java", es necesario coordinar los esfuerzos de Apache con otro ambiente, en el caso de "Java" es precisamente "Tomcat" quien ofrece facilidades para ejecutar los dos componentes más utilizados en ambientes "Java": "JSP ("Java Server Pages")" y "Servlets". Apache y Tomcat (2) Configurar Tomcat para Cooperar con Apache Web Server Usar Tomcat como un contenedor independiente trae algunos problemas: - Tomcat no es tan rápido como Apache cuando sirve páginas estáticas. Tomcat no es tan configurable como Apache. Tomcat no es tan robusto como Apache. Hay mucho sites que llevan mucho tiempo de investigación sobre ciertos servidores web, por ejemplo, sites que usan scripts CGI o módulos perl o php... No podemos asumir que todos ellos quieran abandonar dichas tecnologías. Por todas estas razones es recomendable que las sites del mundo real usen un servidor web, como Apache, para servir el contenido estático de la site, y usen Tomcat como un plugin para Servlets/JSP. Instalación de Tomcat en “Apache” (1) EN LINUX Creación del Modulo Mod_JK El modulo Mod_JK es aquel utilizado por Apache para comunicarse con "Tomcat", debido a que este modulo es externo de Apache, se incluye en la distribución de Código Fuente de "Tomcat" , a continuación se mencionan los pasos a seguir para su creación: - Obtener el archivo Tar con el Código Fuente de "Tomcat" (no el binario!). - Descomprimir el Código Fuente de "Tomcat" en un directorio temporal (generalmente /tmp) , esto genera un directorio por nombre jakarta- tomcat-<numero_de_version>-src . - Ahora se debe descender al directorio src/native/apache1.3. Dentro de este directorio se debe ejecutar el siguiente comando: apxs -o mod_jk.so -I../jk -I/usr/local/jdk/include/ I/usr/local/jdk/include/linux -c *.c ../jk/*.c apxs es un comando incluido en Apache utilizado para compilar módulos empleados por productos que operan en conjunción con Apache. Las letras -I en la instrucción indican los directorios que deben ser incluidos al compilar el modulo. Una vez ejecutado el comando anterior exitosamente, se genera el archivo mod_jk.so dentro del directorio. (Este es el Modulo en sí) Instalación de Tomcat en “Apache” (2) Instalación del Modulo Mod_JK Para instalar el módulo en Apache primeramente se debe copiar el Módulo (mod_jk.so) al directorio /usr/local/apache/libexec, para que este disponible en Apache. A diferencia de los módulos incluidos en Apache los cuales generalmente requieren que Apache sea re-compilado-instalado, el modulo Mod_JK solo requiere de unas modificaciones al archivo general de configuración httpd.conf httpd.conf Los parámetros para incluir el modulo Mod_JK son los siguientes: LoadModule jk_module libexec/mod_jk.so AddModule mod_jk.c JkWorkersFile /usr/local/tomcat/conf/workers.properties JkLogFile /usr/local/tomcat/log/mod_jk.log JkLogLevel warn Las primeras dos líneas LoadModule y AddModule indican que el modulo debe ser cargado y agregado, respectivamente. JkWorkersFile le indica muy específicamente a Apache como comunicarse con "Tomcat", este archivo aunque utilizado primordialmente por Apache se incluye en "Tomcat" (he ahí la razón por la cual reside en /usr/local/tomcat/conf), este archivo debe ser modificado para contener los siguientes parámetros: Instalación de Tomcat en “Apache” (3) Modificando JkWorkersFile workers.tomcat_home=/usr/local/tomcat workers.java_home=/usr/local/jdk ps=/ worker.list=ajp12, ajp13 worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=ajp13 Lo que se esta indicando en este archivo es que "Apache" se comunicará con "Tomcat" mediante el protocolo ajp13 (otra alternativa seria ajp12), que "Tomcat" también reside en el mismo "Host" local y esta utilizando el puerto TCP 8009 para atender solicitudes. JkLogFile y JkLogLevel indican el lugar donde serán enviados errores relacionados con Apache y "Tomcat" y el nivel de errores reportados , respectivamente. Instalación de Tomcat en “Apache” JkMount (4) Hasta este punto ya estan configurados casi todos los aspectos relacionados con "Tomcat" y "Apache", solo falta uno: Como indicar a Apache que solicitudes deben ser enviadas a Tomcat ?, esto es, si ya se diseñaron 5 o 10 programas en "Java" ( JSP y/o Servlets ) como se coordinan éstas con la información que actualmente es enviada por Apache ? Se utiliza el parámetro JkMount dentro de httpd.conf: JkMount /*.jsp ajp13 JkMount /servidordatos/Insertar ajp13 La declaración indica que toda requisición terminada en jsp (un Java Server Page), será enviada por Apache vía el protocolo ajp13 , este protocolo da precisamente a Tomcat. SERVLETS Los Servlets son programas Java que se ejecutan en un servidor Web y construyen páginas Web. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); } } JSP (Java Server Page) Una JSP es un archivo de texto, que combina tags HTML con nuevos tags de scripting Java. Básicamente es un archivo HTML con código JAVA intercalado. Una JSP, la primera vez que se invoca, se traduce y se compila a un servlet Java. El servlet resultante de la JSP es una combinación de los tags HTML, más el contenido dinámico embebido en los nuevos tags JSP.