CORBA: Common Object Request Broker Arquitecture - PowerPoint PPT Presentation

About This Presentation
Title:

CORBA: Common Object Request Broker Arquitecture

Description:

El software del firmante aplica (de forma transparente al usuario) un algoritmo hash ... Se ejecuta una sola vez al 'subir' el servlet ... – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 52
Provided by: vicg9
Category:

less

Transcript and Presenter's Notes

Title: CORBA: Common Object Request Broker Arquitecture


1
CORBACommon 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)

2
que 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.

3
Definició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.

4
Conceptos 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).

5
Diagrama conceptual de CORBA
6
Implementación de CORBA
7
como 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.

8
como 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.

9
como ha evolucionado?
10
No es único
  • Competidores
  • DCOM
  • RMI/RMP
  • HTTP/CGI
  • Servlets
  • Sockets
  • .............

11
Java 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.

12
Qué hace JDBC?
  • Establece una conexión a una base de datos.
  • Envía sentencias SQL.
  • Procesa los resultados de estas sentencias.

13
Arquitectura JDBC
  • Arquitectura normal
  • Puente JDBC-ODBC

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
14
Primer 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

16
JDBC 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.

18
Modelos 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
19
Modelos 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
20
Categorí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.

21
Conexió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

23
Enviando 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.

25
Transacciones
  • 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.

26
Procesando 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.

27
Cargando 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.

28
Ejemplo 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()

29
Primer 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")

30
Applets
  • 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)
40
Cuá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

43
Que 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

44
Que son los Servlet
  • Su ciclo de vida
  • Instalación y cargado
  • Inicialización
  • Ciclo útil
  • Destrucción
  • Recolección de basura

45
Como 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

46
Como 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

47
Como 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

48
Como 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

49
Algunas notas
  • La clase ServletRequest
  • public Object getAtributte(Strring name)
  • public Enumeration getAtributtesNames()
  • public String getParameter(String name)
  • public Enumeration getParameterName()

50
Algunas 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.
Write a Comment
User Comments (0)
About PowerShow.com