Title: CORBA: Common Object Request Broker Arquitecture
1CORBACommon Object Request Broker Arquitecture
- CORBA es una especificación. No es un software o
aplicación. - Auspiciado por Object Managament Group (OMG),
para establecer una especificación de
inter-operabilidad entre plataformas. - OMG es fundada en 1989, por American Airlines,
Canon, Data General, HP, Philips
Telecomunicaciones, Sun , 3Com y Unisys - Hay un gran número de implementaciones de CORBA.
Estas son conocidas como Object Request Broker
(ORB)
2que soluciona Corba?
- Aplicaciones. Procesos clientes y servidores que
representan la lógica del negocio como objetos
que pueden residir en distintas máquinas. - Middleware. Soporte que permite la comunicación
entre aplicaciones. - Servicios de Red. Transporta la información entre
computadores. - Servicios Locales. Ejemplo, bases de datos y
administradores de transacciones. - Sistema Operativo. Provee servicios básicos de
scheduling.
3Definición Middleware
- Conjunto de servicios comunes no relacionado con
la lógica de negocio que permite que
aplicaciones servidoras y clientes interactuen
con otras a través de una Red. En esencia el
Middleware es el software que reside sobre la red
, permitiendo software de aplicacion orientados
sólo a logica de negocio.
4Conceptos claves en CORBA
- Los conceptos claves de CORBA son
- Esencialmente especifica los servicios de
middleware que serán usados por las aplicaciones
(objetos). - Existe una interfaz entre aplicaciones clientes y
servidoras. Una lenguaje de definición de
interfaz (IDL) ha sido definido específicamente
para CORBA. - Cualquier objeto puede ser un cliente, un
servidor o ambos. Para efectos de descripción
CORBA usa el modelo Cliente/Servidor. - Soporta static binding y dinamic binding
- No conoce los detalles de las implementaciones
fundamentales de los objetos. Un object adapter
mapea modelos genéricos a implementaciones,
siendo la principal manera en que las
implementaciones de los objetos acceden los
servicios provistos por el ORB (object Request
Broker).
5Diagrama conceptual de CORBA
6Implementación de CORBA
7como ha evolucionado?
- CORBA es una especificación. Como cualquier
especificación hubo áreas dejadas a la
interpretación de los implementadores. - A través de Internet Inter-ORB Protocol (IIOP),
la OMG espera que ORBs de diferentes vendedores
puedan comunicarse fácilmente entre si. - Recientemente las especificaciones Portable
Object Adapter (POA) permite a clientes escritos
para acceder un ORB en particular, pueda acceder
fácilmente otros productos de diferentes
vendedores. - Se ha adaptado a los tiempos y a la competencia.
8como ha evolucionado?
- CORBA es una especificación. Como cualquier
especificación hubo áreas dejadas a la
interpretación de los implementadores. - A través de Internet Inter-ORB Protocol (IIOP),
la OMG espera que ORBs de diferentes vendedores
puedan comunicarse fácilmente entre si. - Recientemente las especificaciones Portable
Object Adapter (POA) permite a clientes escritos
para acceder un ORB en particular, pueda acceder
fácilmente otros productos de diferentes
vendedores. - Se ha adaptado a los tiempos y a la competencia.
9como ha evolucionado?
10No es único
- Competidores
- DCOM
- RMI/RMP
- HTTP/CGI
- Servlets
- Sockets
- .............
11Java Database Connectivity JDBC
- JDBC es una API, formada por conjunto de clases e
interfaces en el lenguaje de programación Java,
para ejecutar sentencias SQL. - Ofrece un estándar de conexión a cualquier base
de datos disponible en el mercado. - Permite obtener los datos en forma fácil y cómoda
en ambientes cliente-servidor a través de
Internet/Intranet.
12Qué hace JDBC?
- Establece una conexión a una base de datos.
- Envía sentencias SQL.
- Procesa los resultados de estas sentencias.
13Arquitectura JDBC
Aplicaciones Java
Aplicaciones Java
JDBC API
JDBC API
Adm. de controladores JDBC
Adm. de controladores JDBC
Puente JDBC/ODBC
Controlador JDBC
Controlador JDBC
Adm. de controladoresODBC
C. ODBC
C. ODBC
DB
DB
DB
DB
14Primer ejemplo básico
- Connection con DriverManager.getConnection (
- "jdbcodbcnombre", "login", "password")
- Statement stmt con.createStatement()
- ResultSet rs stmt.executeQuery("SELECT a, b, c
FROM Table1") - while (rs.next())
- int x rs.getInt("a")
- String s rs.getString("b")
- float f rs.getFloat("c")
- JDBC usa una URL para especificar la base de
datos.
15...Primer ejemplo básico
- Ejemplos de URL
- jdbcmysql//myserver4444/db1
- jdbcoracle//oraserver
- jdbcodbcmydatabase
16JDBC vs. ODBC
- Se puede usar ODBC desde Java, pero el puente
JDBC-ODBC ayuda bastante. - ODBC tiene una interfaz tipo C rompiendo el
esquema de seguridad, robustez e implementación
de Java. - ODBC mezcla funciones simple y complejas.
- Los controladores de ODBC deben ser instalados en
cada cliente.
17...JDBC vs. ODBC
- JDBC es una interfaz natural en Java.
18Modelos de acceso a BD
- De 2 capas
- La aplicación habla directamente con la base de
datos. - Controlador JDBC se comunica con el sistema
específico que maneja la base de datos. - La base de datos puede estar en otra máquina, con
lo que el cliente se comunica por red. Esta es la
configuración llamada cliente/servidor.
Cliente
Aplicación Java
JDBC
Protocolo BD
DBMS
Servidor BD
19Modelos de acceso a BD
Cliente (GUI)
- De 3 capas
- Los comandos son enviados a la capa intermedia de
servicios, la cual envía sentencias SQL a la base
de datos. Ésta las procesa y envía los resultados
de vuelta a la capa intermedia, para luego ser
enviados al cliente. - Permite un control de acceso y de actualización.
- Provee ventajas de performance.
Applet en Java o Navegador HTML
Llamadas HTTP, RMI,CORBA
Aplicación Java
Servidor
JDBC
Protocolo BD
DBMS
Servidor BD
20Categorías de los controladores JDBC
- Puente JDBC-ODBC.
- Parte API Nativa-Parte Java. Se convierte las
llamadas JDBC al sistema de la Base de datos. - JDBC-Red. Es sólo Java. Las llamadas JDBC son
convertidas a un protocolo de red independiente
del sistema de la base de datos. Este protocolo
es convertido en un servidor - Protocolo Nativo. Es sólo Java. Se usa un
protocolo de red con la BD.
21Conexión
- Un objeto Connection representa una conexión a
una base de datos. - Una sesión incluye las sentencias SQL que son
ejecutadas y los resultados de éstas. - Establecer la conexión DriverManager.getConnecti
on - La clase DriverManager intenta ubicar el
controlador que pueda conectarse a la base de
datos representada en la URL.
22...Conexión
- Sintáxis de una URL JDBC
- jdbcltsubprotocologtltsubnombregt
- ltsubprotocologt es el nombre del controlador o del
mecanismo de conexión. Ejemplo odbc. - ltsubnombregt es la identificación de la base de
datos. El formato varia según el controlador
especificado. Ejemplo //servidorpuerto/etc
23Enviando sentencias SQL
- JDBC permite que se escriba cualquier tipo de
sentencia SQL. Aunque ésta fuera dependiente de
la base de datos sólo se correría el riesgo de
incompatibilidad al cambiar de base de datos. - Llamadas a procedimientos almacenados
- Formatos de fecha
24...Enviando sentencias SQL
- JDBC provee 3 clases
- Statement Este objeto es usado para enviar
sentecias SQL simples. Es creado por el método
createStatement. - PreparedStatement Este objeto es usado para
sentencias que requieren uno o más parámetros. La
sentencia es precompilada y guardada para uso
futuro. - CallableStatement Es usado para ejecutar
procedimientos almacenados.
25Transacciones
- Una transacción consiste en una o más sentencias
que han sido ejecutadas y luego confirmadas
(commit) o deshechas (rolled back) - Auto-commit está predeterminado.
- Si Auto-commit está desactivado se debe usar los
métodos commit o rollback explícitamente.
26Procesando respuestas
- Las respuestas a las sentencias SQL se reciben en
el objeto ResultSet que mantiene las filas. - Este objeto provee el acceso a los datos de esas
filas a través de un conjunto de métodos get,
los cuales, a su vez, permiten el acceso a cada
columna de estas filas.
27Cargando la clase del controlador JDBC
- Ejemplo
- Class.forName(empresa.db.Driver")
- Esto crea una instancia del controlador y llama
al método DriverManager.registerDriver
registrando este controlador en la lista de
controladores disponibles para conexiones.
28Ejemplo de sentencia
- Connection con DriverManager.getConnection (
- "jdbcodbcnombre", "login", "password")
- PreparedStatement pstmt con.prepareStatement(
UPDATE tabla1 SET m? WHERE x?) - pstmt.setString(1, "Hola")
- for (int i 0 i lt 10 i)
- pstmt.setInt(2, i)
- int rowCount pstmt.executeUpdate()
29Primer ejemplo básico
- Connection con DriverManager.getConnection (
- "jdbcodbcnombre", "login", "password")
- Statement stmt con.createStatement()
- ResultSet rs stmt.executeQuery("SELECT a, b, c
FROM Table1") - while (rs.next())
- int x rs.getInt("a")
- String s rs.getString("b")
- float f rs.getFloat("c")
30Applets
- El funcionamiento del Web está basado en el
paradigma cliente/servidor - Un applet es un programa escrito en Java que
anima una porción de la página Web.Al igual que
el resto de los medio audio/visuales, el applet
está almacenado en el servidor y se transmite al
cliente por medio de Internet - El usuario puede interactuar con un applet,
gracias a que se trata de un programa - Un applet se ejecuta completamente en el cliente.
- Velocidad de la interacción no depende de la
velocidad de la red . - Si es necesario, el applet también se puede
comunicar con el servidor. - Para que un programa de navegación en el Web
pueda ejecutar un applet es necesario que posea
un intérprete de Java.
31- Portabilidad de Applets
- Sueño ejecutar un programa de cualquier parte
del mundo - Problema portabilidad. Existe una amplia gama
de plataformas con procesadores y sistemas
operativos incompatibles entre sí. - Java resuelve el problema de la incompatibilidad
de los procesadores
32- El problema de la seguridad enfoque paranoico
- Riesgo que corre un usuario cuando recupera
programas por medio de Internet - gt DIR
- FILE NOT FOUND
- Java resuelve el problema de la seguridad de los
usuarios haciendo que un applet no - tenga acceso a
- Los archivos del cliente.
- Los dispositivos del cliente (por ejemplo la
impresora). - La red.
- Colocando un monitor entre el applet y los
recursos que posee el computador - del cliente
33- Seguridad del monitor
- Java fue diseñado de modo que un applet sólo
puede consultar y modificar - la memoria que pidió legalmente para sus objetos.
- Esto se logra porque Java es semánticamente muy
distinto a C - Java chequea los índices en arreglos.
- Java no posee aritmética de punteros.
- Java realiza chequeo estático y dinámico de
tipos.
34- Seguridad del código intermedio
- Puede un hacker fabricar un applet, escribiendo
directamente su código - intermedio sin pasar por el fuente escrito en
Java? - Qué tan seguro es el código intermedio?
- Validación
- Verificar que en el código intermedio no se
realicen operaciones peligrosas. - Demuestra que existe un programa en Java cuya
compilación es el código intermedio - que se recuperó por la red.
- Si encuentra secuencias de instrucciones que no
pueden ser generadas por el - compilador de Java entonces el applet se rechaza.
35- Seguridad Enfoque de confianza en el proveedor
- El proveedor del applet firma digitalmente su
contenido. - El browser verifica que la firma corresponde a
un proveedor - de confianza.
- La firma permite asegurar que el applet no fue
alterado en - el camino.
- El browser ejecuta el applet sin restricciones.
36- Que son las firmas digitales?
- Una firma digital es un bloque de caracteres que
acompaña a un documento, - acreditando quién es su autor ("autenticación") y
que no ha existido ninguna - manipulación posterior de los datos
("integridad"). - Para firmar un documento digital, su autor
utiliza su propia clave secreta, - a la que sólo él tiene acceso.
- Cualquier persona puede verificar la validez de
una firma si dispone de la clave - pública del autor.
37- Cómo se realiza una firma digital?
- El software del firmante aplica (de forma
transparente al usuario) un algoritmo hash - sobre el texto a firmar, obteniendo un extracto
de longitud fija, y absolutamente - específico para ese mensaje (cualquier
modificación lo afecta). - Este extracto, cuya longitud oscila entre 128 y
160 bits, se somete a continuación a - cifrado mediante la clave secreta del autor.
- El extracto cifrado constituye la firma y se
añade al final del mensaje - (o en un fichero adherido a él).
38- Cómo se comprueba la validez de una firma
digital? - Se necesita disponer de la clave pública del
firmante para poder verificar su firma. - El sw del receptor descifra el extracto cifrado
que constituye la firma digital - (de forma transparente al usuario), utilizando
para ello la clave pública del remitente. - Como resultado obtiene un bloque de caracteres.
- A continuación, aplica algoritmo hash que
corresponde al texto del mensaje. - Si el resultado coincide exactamente con el
bloque de caracteres obtenido en la - operación anterior, la firma se considera válida.
- Si existe la menor diferencia, la firma se
considera no válida.
39(No Transcript)
40Cuál es el punto débil? la firma digital nos
permite comprobar la relación entre un mensaje y
la clave utilizada pero... Esa clave
corresponde realmente a la persona o entidad que
dice poseerla? Autoridad de Certificación Actuan
do como una especie de notario que extiende un
certificado de claves (la ligazón entre una
determinada clave y su propietario real)
41(No Transcript)
42 Los Servlet
- Que son
- Como funcionan
- El método init
- El método doGet
- El método doPost
- La sección
43Que son los Servlet
- Definición Son una pequeña plataforma que puede
ser usada para extender la funcionalidad de un
servidor web en muchas formas
44Que son los Servlet
- Su ciclo de vida
- Instalación y cargado
- Inicialización
- Ciclo útil
- Destrucción
- Recolección de basura
45Como funciona un Servlet
- El método init
- Se ejecuta una sola vez al subir el servlet
- Debe inicializar todas la conexiones que no sean
las normales del servlet (JDBC,EJB,etc.) - Reemplaza el concepto de constructor
46Como funciona un Servlet
- El método doGet
- Es llamado desde un href o un formulario con
methodget - Permite enviar texto a el browser desde donde se
solicito la petición
47Como funciona un Servlet
- El método doPost
- Es llamado cuando en un formulario se ocupa
methodpost - Permite enviar texto a el browser desde donde se
solicito la petición
48Como funciona un Servlet
- La Sección
- Es la conexión que establece cada usuario al
servlet - Reconoce la maquina y el browser
- Permite distinguir una sección de otra y
almacenar datos en su interior
49Algunas notas
- La clase ServletRequest
- public Object getAtributte(Strring name)
- public Enumeration getAtributtesNames()
- public String getParameter(String name)
- public Enumeration getParameterName()
50Algunas notas
- La clase ServletRequest
- public String getParameterValues(String name)
- La clase ServletResponse
- public PrinterWrite getWriter() throws
Ioexception - public ServletOutputStream getOutputStream()
throws Ioexception
51- Conclusiones
- Un applet en Java
- Es portable se distribuye en un formato
independiente de la máquina. - Es seguro
- corre aislado de los recursos del navegante, o
alternativamente - se puede comprobar su origen.