Tecnologías Utilizadas
La elección de tecnologías siempre resulta un factor de vital importancia para el real desarrollo de una aplicación distribuida, dependiendo de la cantidad, cobertura, distribución geográfica y lógica de los equipos.Bases de Datos: PostgreSQL
Una base de datos, como se imaginarán, se utiliza para guardar información (datos) concernientes a un mismo contexto para ser utilizados posteriormente.En este caso se utilizó PostgreSQL, una poderosa base de datos relacional que tiene años de trayectoria y que tiene a su favor un sinnúmero de características que lo hacen ser el candidato más apto para este proyecto, destacando el ser de distribución Open Source.
Como deben saber, existen más bases de datos (Open Source) pero que no llegan a cumplir mnuchas veces los requisitos de seguridad que requieren sistemas de administración, como también el manejo de grandes cantidades de datos.
En nuestro proyecto, la base de datos está hecha para almacenar los objetos persistentes que son creados por la herramienta de Inventario, y de esta forma guardar de manera indefinida la información sobre los productos que se están manejando.
Servidor de Aplicaciones: GlassFish
Primero que todo, ¿qué es un Servidor de Aplicaciones?Un Servidor de Aplicaciones es un servidor en una cierta red de computadores que ejecuta ciertas aplicaciones.
Este tipo de servidores son quienes le prestan servicios de aplicación a las computadoras clientes, y son quienes se llevan la mayor parte de la carga en lo que es la lógica de negocios y el acceso a los datos de la aplicación.
Como se puede apreciar, será GlassFish quien se encargará de ser el contenedor de nuestra aplicación WEB, brindando el soporte necesario para interconectar cad a una de las componentes que lo conforman.
Java Persistence API (JPA): TopLink
Corresponde, como su traducción lo indica, a una API de persistencia Java, que lo que hace es unificar la manera en que funcionan las utilidades que proveen un mapeo objeto-relacional hacia las bases de datos. Fue desarrollada para la plataforma J2EE y se incluye en el estándar EJB 3.0Como nos podemos dar cuenta, el objetivo principal de esta API de persistencia es no perder las ventajas de la orientación a objetos al interactuar con una base de datos, como sí pasaba con EJB 2.0, y permitir usar objetos regulares (conocidos como POJOs - Plain Old Java Objects-).
En el caso de nuestro proyecto, se usó TopLink (en la actualidad llamado EclipseLink), que es un paquete de utilidades para el mapeo objeto-realcional que fue la base de JPA. Entonces, usando TopLink seremos capaces de almacenar nuestros objetos Java en una base de datos para su posterior utilización, consulta, modificación, etc.
Java Server Faces (JSF)
Es un framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa más comunmente JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas.Algunas de las características principales son:
- Un conjunto de APIs para representar componentes de interfaz de usuario, manejar eventos y validar entradas.
- Un paquete de librerías personalizadas para operar con JSP.
- Administración de estados.
Entonces, ¿cuál es su aporte en el proyecto?
Para el proyecto, JSF se utilizó para dar la interfaz de usuario necesaria para la interacción entre el cliente, la aplicación y los datos que serán guardados/modificados en la base de datos del inventario.
Enterprise Java Beans (EJB 3.0)
Esta tecnología es la componente del lado del servidor para la plataforma Java, edición Empresarial (Java EE). La tecnología EJB habilita el desarrollo rápido y simplificado de aplicaciones distribuidas, transaccionales, seguras y portables basadas en la tecnología Java.Como se decía anteriormente esta tecnología incluye la API de persistencia Java que nos permite manejar persistencia y el mapeo objeto/relacional.
Los EJB existen de variados tipos, están los de Sesión, los de Entidad y los Manejados por Mensajes.
En este proyecto se utiliza el EJB de Entidad para lo que se refiere al manejo de persistencia en conjunto con TopLink y una base de datos (en este caso PostgreSQL). De esta forma podemos almacenar los objetos Java, que sin este medio de persistencia desaparecerían luego de ejecutar una aplicación.
También se utilizó el EJB de Sesión, que está presente en el Session Facade de la aplicación. Esto último sirve para poder encapsular la complejidad de las interacciones entre los objetos de negocio participantes en un flujo de trabajo.
CORBA
CORBA (Common Object Request Broker Architecture — arquitectura común de intermediarios en peticiones a objetos) es un middleware., es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.CORBA fue definido y está controlado por el Object Management Group (OMG) que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperabilidad entre diferentes aplicaciones escritas en diferentes lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental en computación distribuida.
Servicio WEB
Un servicio web (en inglés Web service) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet.
La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.