martes, 16 de abril de 2013

UNIDAD V: LOS MODELOS DE OBJETOS DISTRIBUIDOS ACTUALES



5.1 WEB OBJETS

WebObjects es un producto desarrollado por Apple desde hace unos diez años. La versión actual del software es la 5.2 en la que el entorno está basado completamente en la tecnología Java desarrollada por Sun Microsystems, lo que lo convierte evidentemente en un sistema orientado a objetos. Este conjunto de herramientas que forman WebObjects permiten desarrollar distintos tipos de aplicaciones, de las cuales lo más común es la creación de aplicaciones web (aunque permite desarrollar cualquier tipo de aplicación Java como por ejemplo aplicaciones de escritorio con interfaz gráfica de usuario, apartado que no se verá en este informe). Un ejemplo de lo que se puede llegar a desarrollar con el framework para aplicaciones web es la “Apple Store1” (ver Figura 1). En un principio se usaba como lenguaje base del entorno Objective-C pero desde la versión 5.0 todo el sistema está totalmente escrito en Java. ¿Cuál es la importancia de que se use este lenguaje? Básicamente esto es importante por varias razones: No es necesario aprender un nuevo lenguaje de programación para la web, ya que Java es suficientemente conocido por los programadores con experiencia. Este lenguaje permite que las aplicaciones WO2 sean portables a cualquier sistema en el que haya una máquina virtual Java instalada (como por ejemplo, Macintosh, Linux, MS Windows…)
Un servidor de aplicaciones básicamente es un entorno que guarda su contenido en una base de datos y emplea alguna forma de scripting para crear páginas web dinámicamente. Esto permite a los desarrolladores crear sitios con contenido fácilmente actualizable. Todo ello hace que el entorno sea bastante complejo.
La arquitectura de WebObjects está basada en separar la capa de acceso a bases de datos, el código Java específico de la aplicación y la capa de presentación de la página web, todo ello soportado por un entorno orientado a objetos y por un motor de mapeo objeto-relacional que permite interactuar con bases de datos relacionales mediante objetos.
La separación en esas tres grandes partes es lo que explica la existencia de sus aplicaciones más importantes: EOModeler (encargado del acceso a la base de datos), ProjectBuilder (se ocupa del código Java) y WOBuilder (permite el diseño de la interfaz). En el capítulo 2 se explicarán con más detalle estas herramientas.
DESARROLLO EN WEBOBJECTS
En este apartado se hará una introducción a las tres principales herramientas de desarrollo que proporciona WebObjects3 (ver figura 3):
•Project Builder: es el corazón del entorno de desarrollo donde se podrá editar, compilar y depurar el código y organizar el proyecto.
•WebObjects Builder: esta herramienta permite crear la interfaz de la aplicación sin tener que crear directamente con un editor de texto el código HTML y asociar a las variables de este código métodos del código Java creado con Project Builder.
•EOModeler: quizás es la aplicación más poderosa del entorno de desarrollo. Permite definir y manejar relaciones entre objetos de la aplicación y registros de una base de datos.



Project Builder
Cuando un programador quiere construir una aplicación web mínimamente compleja, fácilmente nos encontramos con bastantes archivos. Un desarrollador experimentado sabrá como organizarlo para poder hacer un buen mantenimiento de la aplicación. WebObjects realiza ese trabajo por nosotros facilitándonos la organización del proyecto mediante esta aplicación.


Esta herramienta divide los archivos en distintos directorios según su funcionalidad para hacer más fácil encontrar lo buscado (por ejemplo, un determinado componente, un archivo java…) durante el periodo de desarrollo. Cuando se he encontrado el archivo, permite modificar su código mediante un avanzado editor de texto.
El editor que se incluye no es malo. Tiene soporte para resaltar mediante colores el código y automáticamente tabula las líneas. Pero, quizás quede un poco pequeño para los programadores expertos en Java que están acostumbrados a entornos como Forte for Java o NetBeans, además de que no tiene soporte para la generación automática de JavaDoc. Todo eso se ha tenido en cuenta y Project Builder nos permite usar un IDE externo para editar el código. Automáticamente detecta si un archivo ha sido modificado y es capaz de recargarlo para su posterior uso.
Una vez terminado el desarrollo de la aplicación, permite compilar y construir la WOA4 y poder probarla para su depuración. Aquí tiene una opción interesante ya que durante la ejecución el Project Builder muestra una ventana de consola que nos muestra información relativa a los componentes (como por ejemplo el inicio de sesión por parte del usuario).
Organización de un proyecto
Todos los archivos relacionados con la aplicación están organizados dentro de un proyecto WebObjects. Project Builder controla todos estos ficheros organizándolos en varias carpetas:
Classes (clases principales): contiene tres ficheros java – aplicación, sesión y acciones directas – que especifican el comportamiento por defecto de la aplicación, como por ejemplo el proceso de respuesta ante una petición de un cliente.
Components (componentes): una aplicación está formada por componentes, cada uno de los cuales representa una página web o una parte de ella. Un componente incluye varios ficheros que se verán en el apartado dedicado a WebObject Builder.
Resources (recursos): son los archivos de datos a los que la aplicación necesita tener acceso pero que no necesariamente se van a servir a los clientes (como por ejemplo archivos de configuración de la aplicación).
Web Server Resources (recursos del servidor web): contiene elementos estáticos que se servirán directamente al usuario a través del servidor web, como por ejemplo imágenes, archivos de sonido, archivos CSS o incluso páginas con HTML estático.
Frameworks (entorno de trabajo): contiene bibliotecas que añaden funcionabilidad a la aplicación. Pueden ser tanto librerías incluidas por defecto como otras creadas por el programador.
WebObjects Builder
En la aplicación anterior quedó clara la facilidad para editar el código de los distintos componentes5 pero, a la hora de crear una página web compleja, manejar su código directamente mediante un editor de texto puede resultar duro. Por ello el entorno de desarrollo incluye esta aplicación.




Esencialmente el WOBuilder es un editor de código HTML que incluye diversas opciones para añadir código especial webobjects dentro de una página. La herramienta dispone de dos opciones principales: un editor gráfico para previsualizar la página y un editor de texto para modificar manualmente el código HTML.
Elementos principales
Este código especial del que hablamos se inserta entre las etiquetas <WEBOBJECT> y </WEBOBJECT> y puede ser distintos tipos de elementos.


A continuación se muestran los elementos principales que se observan en la figura 6:
1- WOForm: es el equivalente a la etiqueta <FORM> de HTML.
2- WOTextField: usado junto con WOForm permite al usuario introducir texto en una variable.
3- WOTextArea: usado en un WOForm para aceptar largas cadenas de texto que introducirá el usuario.
4- WOSubmitButton: usado dentro de un WOForm, tiene la misma función que su homólogo en un formulario HTML.
5- WOResetButton: es el equivalente al botón reset de un formulario HTML
6- WOPopupButton: crea una lista desplegable en la que el usuario deberá elegir una de las variables.


7- WOString: muestra el contenido de la variable asociada a este elemento en el código Java.
8- WOHyperlink: al igual que en HTML se crea un hiperenlace a otra página, pero además añade la funcionalidad de apuntar a un método Java que retorna un componente.
9- WORepetition: usado para repetir secciones en las cuales se repite el código.
10- WOConditional: similar a una sentencia if, permite mostrar o no una parte del componente.
11- WOImage: muestra una imagen desde una ruta definida o la crea si la imagen es devuelta por un método Java.
A todos estos elementos se les puede asociar una variable cuyo nombre (value) será el mismo que tendrá en el código Java asociado a la página web (component). Dentro del código se especificará cómo se obtendrá el valor de la variable y podrá ser de una de estas tres formas:
  • La variable se puede asociar a una instancia de una variable del código Java.
  • El valor puede ser devuelto por un método.
  • Hay un método que da valor a la variable asociada.

 5.2 CORBAWEB
En un sentido general, CORBA “envuelve” el código escrito en otro lenguaje, en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos. 
CORBA utiliza un lenguaje de definición de interfaces ( IDL) para especificar las interfaces con los servicios que los objetos ofrecerán. CORBA puede especificar a partir de este IDL, la interfaz a un lenguaje determinado, describiendo cómo los tipos de dato CORBA deben ser utilizados en las implementaciones del cliente y del servidor. 
Al compilar una interfaz en IDL se genera código para el cliente y el servidor (el implementador del objeto). El código del cliente sirve para poder realizar las llamadas a métodos remotos. Es el conocido como stub, el cual incluye un proxy(representante) del objeto remoto en el lado del cliente. El código generado para el servidor consiste en unos skeletons (esqueletos) que el desarrollador tiene que rellenar para implementar los métodos del objeto.
La OMG El Object Management Group (OMG) es responsable de la definición de CORBA. El OMG comprende más de 700 empresas y organizaciones, incluyendo casi todos los principales fabricantes y desarrolladores de tecnología de objetos distribuidos, incluyendo la plataforma, base de datos y proveedores de aplicaciones, así como de herramientas de software y desarrolladores





No hay comentarios:

Publicar un comentario