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.