miércoles, 13 de febrero de 2013

Objetivo de certificación 1.01: Conocer las tecnologías que ofrece el servidor Oracle



Las tecnologías del Servidor Oracle están conformadas por un conjunto de productos:
  • La base de datos Oracle: Es el repositorio de los datos y al mismo tiempo el motor que administra el acceso a estos.
  •  El servidor de aplicaciones Oracle: Corre el software a nombre de los usuarios finales, genera al usuario interfaz en forma de ventanas que se muestran en los navegadores y envía llamadas SQL a la base de datos para su ejecución.
  •  El Enterpise Manager de Oracle: Es una herramienta de administración integrada que gestiona, controla y ajusta los procesos de Oracle.
  • Varias herramientas y lenguajes para el desarrollo de aplicaciones que se ejecutan en las máquinas de los usuarios finales (cliente-servidor) o aplicaciones que se ejecutan en un servidor de aplicaciones.
La combinación de estas tecnologías y las herramientas de desarrollo constituyen el Gird de Oracle 11g.





La arquitectura del servidor Oracle

Una base de datos Oracle es un conjunto de archivos en un disco duro. El acceso a la base de datos es a través de una instancia. La instancia es un conjunto de procesos y estructuras de memoria. Una instancia puede iniciarse o detenerse. Los usuarios pueden establecer sesiones una y otra vez en la instancia, y ésta administra el acceso a la base de datos. Es imposible que un usuario tenga contacto directo con la base de datos de Oracle.
Imagen 1.1.1: Una instancia de Oracle junto con una base de datos Oracle conforman el Servidor Oracle.
El modelo de procesos implementado por Oracle es el de cliente-servidor. En un modelo de este tipo el cliente y el servidor usualmente se encuentran dentro de una red LAN, el cliente genera los comandos SQL y el servidor se encarga de ejecutarlos. El protocolo de comunicación utilizado es propio de Oracle, Oracle Net.
Del lado del cliente se manejan dos componentes: Los usuarios y los procesos de usuario. Por otro lado el servidor tiene 3 componentes: Los procesos de servidor, la instancia y la base de datos.
  • Cada usuario interactúa con un proceso de usuario y cada proceso de usuario interactúa con un proceso del servidor.
  • Los procesos del servidor interactúan con la instancia y la instancia interactúa con la base de datos.
Imagen 1.1.2: La imagen muestra el modelo de procesamiento implementado por el servidor Oracle. Note que la conexión entre la base de datos y el usuario no es directa.


  • Una sesión es un proceso de usuario en comunicación con un proceso de servidor.Puede haber solamente un proceso de usuario por cada usuario y un proceso de servidor por cada proceso de usuario. 
  • Estos procesos son puestos en marcha a demanda de los usuarios y terminan cuando ya no son necesarios. 
  • Los procesos de instancia y estructuras de memora son iniciadas por el administrador de la base de datos y persisten hasta que él los termine. 
  • El proceso de usuario puede ser cualquier software capaz de conectarse a un proceso de servidor de Oracle, por ejemplo: SQL*Plus, SQL Developer y aplicaciones desarrolladas con un lenguaje de tercera generación (java y c).
Toda la comunicación con el servidor Oracle sigue el modelo cliente-servidor, incluso si los procesos de usuario y servidor corren en la misma máquina. La forma más simple de un servidor es una instancia conectada a una base de datos, pero en un entorno más complejo una base de datos puede ser abierta por muchas instancias. A esto se le conoce como RAC (Real Application Cluster).

Toda la comunicación con el servidor Oracle sigue el modelo cliente-servidor, incluso si los procesos de usuario y servidor corren en la misma máquina.


La forma más simple de un servidor es una instancia conectada a una base de datos, pero en un entorno más complejo una base de datos puede ser abierta por muchas instancias. A esto se le conoce como RAC (Real Application Cluster). 



El servidor de aplicaciones Oracle
 
Un servidor de aplicaciones reemplaza el software instalado en las terminales de los usuarios finales. Corre aplicaciones de forma centralizada, presentándolas de forma local en los navegadores web. Estas aplicaciones hacen uso de los datos almacenados en una o más bases de datos.
El Servidor de aplicaciones Oracle es una plataforma para el desarrollo, la implementación y la gestión de aplicaciones web. Una aplicación web es cualquier aplicación que utilice el protocolo HTTP. Las aplicaciones web funcionan en al menos tres niveles: 
  • Un nivel de base de datos, que gestiona el acceso a los datos, 
  • el nivel de cliente, que se encarga de la gestión de ventanas local para la comunicación con los usuarios
  • y un nivel intermedio de aplicación, que ejecuta la lógica del programa que genera la interfaz del usuario y las llamadas de SQL a la base de datos.
En Oracle la capa del cliente es un navegador (como Mozilla), que se encarga de la gestión de ventanas local, controla el teclado y los movimientos del mouse. En el nivel intermedio hay un servidor de aplicaciones Oracle que ejecuta el software (puede ser escrito en java) que genera las ventanas de la capa del cliente y las instrucciones SQL que se envían a la capa de datos para su ejecución. Finalmente el nivel de datos es un Servidor Oracle: una instancia y una base de datos.


En este entorno de 3 niveles hay 2 tipos de sesiones: Las sesiones de usuarios finales, establecidas por HTTP y las sesiones de base de datos, que son sesiones cliente-servidor integradas por un proceso de usuario y un proceso de servidor.
 
Es posible que una aplicación utilice una asignación de uno a uno en estas sesiones: Un usuario establece una sesión con el servidor de aplicaciones y el servidor de aplicaciones establecerá una sesión con la base de datos en representación del usuario. Sin embargo, éste modelo es muy ineficiente. Es por eso que se opta por utilizar el pool de conexiones. Con el pool de conexiones, el servidor de aplicaciones establece un número relativamente pequeño de sesiones de base de datos y los pone a disposición de la demanda para un número relativamente grande de sesiones de usuario final.


Imagen 1.1.3: La imagen muestra cómo se conforma la sesión de usuario final y la sesión de Base de datos utilizando el modelo pool de conexiones.



El Enterprise Manager de Oracle


EL Enterprise Manager de Oracle viene en 3 formas:
  • Enterprise Manager Database Control
  • Enterprise Manager Application Server Control
  • Enterprise Manager Grid Control
El Enterprise Manager Database Control es una herramienta gráfica para administrar una base de datos. Los administradores se conectan al Database Control a través de un navegador, y el Database Control se conecta al servidor de la base de datos. 

El Enterprise Manager Application Server Control es una herramienta gráfica para administrar una instancia o un grupo de instancias de un servidor de aplicaciones.

El Enterprise Manager Grid Control globaliza el entorno de administración. Un repositorio de administración (residiendo en la base de datos Oracle) y uno o más servidores gestionan el entorno completo: Todas las bases de datos y servidores de aplicaciones donde sea que se encuentren.



Gird Computing

El concepto principal al que se refiere el Gird Computing es la virtualización. Esto significa que en todos los niveles hay una capa de abstracción entre lo que es requerido y lo que es suministrado.

El usuario final puede requerir de un servicio de aplicación y dejar al Grid examinar cuál servidor de aplicaciones puede proveerla mejor. El Servidor de aplicaciones pude requerir un servicio de base de datos y dejar al Gird seleccionar el mejor nodo del RAC con el que puede ser servido.

El objetivo es que el usuario final no tenga la necesidad ni la capacidad de saber de dónde están siendo proporcionados los recursos computacionales.

El Gird no es exclusivo de Oracle, algunos proveedores de sistemas operativos y de hardware ofrecen el Gird como posibilidades. Con esto es permitido dividir el servidor en máquinas virtuales y agregar o adicionar CPU(s) y RAM.



Lenguajes y herramientas de desarrollo

Hay tres lenguajes que pueden ser utilizados en base de datos Oracle:
  1. SQL: Es utilizado para el acceso a los datos, pero no para el desarrollo de aplicaciones completas.
  2. PL/SQL: Es un lenguaje de tercera generación (3GL) propio de Oracle. Tiene las usuales estructuras de control (if-then-else y looping) y facilidades para el diseño de interfaces. Se pueden incrustar llamadas a SQL.
  3. Java: Ofrece una capacidad similar para insertar llamadas a SQL con código Java.
La mayoría de los principales 3GLs pueden desarrollar aplicaciones cliente-servidor que corren externamente a la base de datos, para esto la Corporación Oracle provee librerías OCI (Oracle Call Interface) que le permiten al código, escrito en estos lenguajes, establecer sesiones con una base de datos Oracle e invocar instrucciones SQL. 
  
Oracle también cuenta con sus herramientas de desarrollo de aplicaciones como parte de la Suite de Desarrollo Oracle. Tanto los lenguajes, como las herramientas tienen el mismo fin: construir instrucciones SQL que son enviadas al servidor de base de datos para su ejecución. 



Bibliografía:

Watson, Jhon & Ramklass, Roopesh (2008). OCA Oracle Database 11g: SQL Fundamentals I. USA: The McGraw-Hill Companies.



Descarga versión PDF