Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivo:
Identificará la arquitectura de una aplicación distribuida así como los servicios y
tecnologías que intervienen.
Funciones principales.
• Puesta en marcha y apagado.
• Control de las funciones manipulables del equipo.
• Manipulación de archivos y directorios.
• Herramientas de desarrollo de aplicaciones.
• Comunicación con otros sistemas.
• Información de estado.
• Configuración de la propia interfaz y entorno.
• Intercambio de datos entre aplicaciones.
• Control de acceso.
• Sistema de ayuda interactivo.
Especialización
Las estrategias se establecen como sigue:
- Una única tabla para todas las clases.
Análisis de Estrategias:
Una únicaUna tabla por claseUna tabla por
tabla concreta clase
Facilidad de
Simple Medio Difícil
implementación
facilidad acceso a datos Simple Simple Medio/Simple
Acoplamiento Muy alto Alto Bajo
velocidad acceso a los
Rápido Rápido Medio/Rápido
datos
Conectividad de Datos.
Cómo conectar las clases ya construidas en Java a una base de datos para poder
tratar los datos;
JDBC.
Java Database Connectivity, más conocida por sus siglas JDBC, es una API que
permite la ejecución de operaciones sobre bases de datos desde el lenguaje de
programación Java independientemente del sistema operativo donde se ejecute o
de la base de datos a la cual se accede utilizando el dialecto SQL del modelo de
base de datos que se utilice.
El API JDBC se presenta como una colección de interfaces Java y métodos de
gestión de manejadores de conexión hacia cada modelo específico de base de
datos. Un manejador de conexiones hacia un modelo de base de datos en
particular es un conjunto de clases que implementan las interfaces Java y que
utilizan los métodos de registro para declarar los tipos de localizadores a base de
datos (URL) que pueden manejar. Para utilizar una base de datos particular, el
usuario ejecuta su programa junto con la librería de conexión apropiada al modelo
de su base de datos, y accede a ella estableciendo una conexión, para ello provee
en localizador a la base de datos y los parámetros de conexión específicos. A
partir de allí puede realizar con cualquier tipo de tareas con la base de datos a las
que tenga permiso: consulta, actualización, creación, modificación y borrado de
tablas, ejecución de procedimientos almacenados en la base de datos, etc.
Los desarrolladores de los SGDB: Sistemas de gestión de bases de datos, son los
que proporcionan la implementación de esa interfaz (los Drivers).
Arquitectura de un JDBC.
Hay 4 tipos que vamos a detallar a continuación:
- Tipo1: JDBC-ODBC Bridge: puente, delegan el acceso a datos a una API
ODBC.
- Tipo2: Usan código nativo para el acceso a datos y proveen un envoltorio
de clases java para las llamadas al driver, es un tipo especifico de una
plataforma, el tipo2 de conectores aísla la JVM y se comunica directamente
con el SO.
o JAVA
o JDBC
o Driver JDBC
o JVM
o SO
- Tipo3: Estos Driver java al 100% se comunican con el SGBD usando el
protocolo de red del servidor que usamos.
- Tipo4: También es un Driver 100% java hace las peticiones al SGBD a
través de un intermediario que es independiente del protocolo de red que
se use.
Por ejemplo, usted puede seleccionar almacenar la lógica de negocios sobre cada
estación de cliente, u optar por ejecutar la lógica de negocios sobre un servidor de
aplicaciones, permitiendo a todos los clientes acceder a un recurso centralizado.
Los objetos de negocios son diseñados para reflejar o representar sus negocios.
Ellos se convierten en un modelo de sus entidades de negocios e interrelaciones.
Esto incluye tanto objetos físicos como conceptos abstractos. Estos son algunos
ejemplos de objetos del mundo real: un empleado, un cliente, un producto, una
orden de compra.
Sus aplicaciones pueden hacer que estos objetos interactúen unos con otros como
ellos lo hacen en el mundo real. Por ejemplo, un empleado puede crear una
orden de compra a un cliente que contiene una lista de productos.
Siguiendo esta lógica usted puede crear objetos de negocios de una orden
conteniendo el código necesario para administrarse a si mismo, así usted nunca
necesitará replicar código para crear ordenes, usted solo usará el objeto.
Similarmente, un objeto cliente contiene y administra sus propios datos.
Un buen diseño de un objeto cliente contiene todos los datos y rutinas necesitadas
para representarlo a través del negocio completo, y puede ser usado a través de
toda la aplicación de ese negocio.
Otras no requieren un frecuente acceso a los datos, pero es de uso frecuente por
una interfase de usuario robusta para la validación en la entrada de campos u
otras interacciones de usuarios.
Los objetos de esta capa son considerados sin estado, solo poseen métodos.
Los Enterprise JavaBeans (también conocidos por sus siglas EJB) son una de
las API que forman parte del estándar de construcción de aplicaciones
empresariales J2EE de Sun Microsystems (ahora JEE 5.0).
En términos de las extensiones que añade a COM, DCOM tenía que resolver los
problemas de
Uno de los factores clave para resolver estos problemas es el uso de DCE/RPC
como el mecanismo RPC subyacente bajo DCOM. DCE/RPC define reglas
estrictas en cuanto al aplanamiento y a quién es responsable de liberar la
memoria.
Muchos de estos sistemas antiguos aún son importantes para sus respectivos
negocios, es decir, las empresas cuentan con los servicios suministrados por
estos sistemas y cualquier fallo en estos servicios tendría un efecto serio en el
funcionamiento de la organización. Estos sistemas antiguos reciben el nombre de
sistemas heredados.
Lo habitual es que los sistemas heredados, los que ya suponen un problema para
una empresa u organización por la dificultad para sustituirlos, no sean los mismos
sistemas que originalmente se empezaron a utilizar en la empresa.
Esas empresas han erogado enormes sumas de dinero y han reunido grandes
cantidades de datos en esos sistemas heredados.
Esta integración suele ser uno de los grandes retos al construir un servicio web.
Sin embargo, Java proporciona una solución relativamente sencilla para la
integración de sistemas heredados.
La capa de interconexión de redes de HIS 2004 soporta redes que usan DLC
solamente, TCP/IP únicamente y las tecnologías emergentes de SNA sobre
Protocolos de Internet.
Para tomar estas decisiones, debe tener un conocimiento claro de los procesos
empresariales que realizará la aplicación (sus requisitos funcionales), así como los
niveles de escalabilidad, disponibilidad, seguridad y mantenimiento necesarios
(sus requisitos no funcionales, funcionales u operativos).
Como todas las piezas del rompecabezas Java, fue desarrollado originalmente
por Sun Microsystems.
Así, cuando se escribe una aplicación Java, se hace pensando que será ejecutada
en una máquina virtual Java en concreto, siendo ésta la que en última instancia
convierte de código bytecode a código nativo del dispositivo final.
La gran ventaja de la máquina virtual java es aportar portabilidad al lenguaje de
manera que desde Sun Microsystems se han creado diferentes máquinas virtuales
java para diferentes arquitecturas y así un programa .class escrito en un Windows
puede ser interpretado en un entorno Linux. Tan solo es necesario disponer de
dicha máquina virtual para dichos entornos. De ahí el famoso axioma que sigue a
Java, "escríbelo una vez, ejecútalo en cualquier parte", o "Write once, run
anywhere".
Para poder ejecutar una aplicación en una Máquina Virtual de Java, el programa
código debe compilarse de acuerdo a un formato binario portable estandarizado,
normalmente en forma de ficheros con extensión .class. Un programa puede
componerse de múltiples clases, en cuyo caso cada clase tendrá asociada su
propio archivo .class. Para facilitar la distribución de aplicaciones, los archivos de
clase pueden empaquetarse juntos en un archivo con formato jar. Esta idea
apareció en la época de los primeros applets de Java. Estas aplicaciones pueden
descargar aquellos archivos de clase que necesitan en tiempo de ejecución, lo que
suponía una sobrecarga considerable para la red en una época donde la velocidad
suponía un problema. El empaquetado evita la sobrecarga por la continua apertura
y cierre de conexiones para cada uno de los fragmentos necesarios.
El código resultante de la compilación es ejecutado por la JVM que lleva a cabo la
emulación del conjunto de instrucciones, bien por un proceso de interpretación o
más habitualmente mediante un compilador JIT (Just In Time), como el HotSpot de
Sun. Esta última opción convierte el bytecode a código nativo de la plataforma
destino, lo que permite una ejecución mucho más rápida. El inconveniente es el
tiempo necesario al principio para la compilación.
En un sentido amplio, la Máquina Virtual de Java actúa como un puente entre el
resultado de la compilación (el bytecode) y el sistema sobre el que se ejecuta la
aplicación. Para cada dispositivo debe haber una JVM específica, ya sea un
teléfono móvil, un PC con Windows XP, o un microondas. En cualquier caso, cada
máquina virtual conoce el conjunto de instrucciones de la plataforma destino, y
traduce un código escrito en lenguaje Java al código nativo que es capaz de
entender el Hardware de la plataforma.
Otros métodos de permitir la integración de las aplicaciones son el uso de
Modelos de cómo:
Web services.
Los Web Servicices son una implementación de Servicios Orientados a la
Arquitectura (SOA). SOA está compuesto por tres partes: un proveedor, un agente
y un cliente, los cuales están bajamente acoplados.
JMS
JMS es una interfaz de Mensajes Asíncronos. Puede ser utilizado para accesar a
la lógica del negocio de forma distribuida entre sistemas heterogéneos.
Los elementos que componen nuestra arquitectura pueden ser muy diversos en
cuanto a:
- Hardware
o Distintas arquitecturas
- Software
o Diversos Sistemas de comunicación
o Programas en diversos lenguajes
- Redes
o Distintas topologías (Tamaños LAN, MAN, WAN)
o Distintos protocolos
Tecnología CORBA.
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.
Los objetos que resultan pueden entonces ser invocados desde otro programa (u
objeto CORBA) desde la red.
Con frecuencia, una aplicación necesita obtener acceso a los recursos del lado
cliente para que se puedan integrar en la solución global.
En ocasiones, entre los recursos del lado cliente se incluye hardware (impresora,
teléfono, lector de código de barras, etc.) o software (integración de otras
aplicaciones de escritorio o de unidad de negocio).
Este enfoque no resulta muy flexible y en ocasiones depende del usuario tomar las
decisiones de seguridad en cuanto a la descarga de componentes para que se
ejecuten en el cliente desde su cuenta de inicio de sesión.
Principalmente se usa este nombre para denominar al sistema que provee este
servicio en Internet, mediante el protocolo SMTP, aunque por extensión también
puede verse aplicado a sistemas análogos que usar otras tecnologías.
Dirección de correo.
Servicio WEB.
El primer paso consiste en traducir la parte del nombre del servidor de la URL en
una dirección IP usando la base de datos distribuida de Internet conocida como
DNS.
Esta dirección IP es necesaria para contactar con el servidor web y poder enviarle
paquetes de datos.
El siguiente paso es enviar una petición HTTP al servidor Web solicitando el
recurso. En el caso de una página web típica, primero se solicita el texto HTML y
luego es inmediatamente analizado por el navegador, el cual, después, hace
peticiones adicionales para los gráficos y otros ficheros que formen parte de la
página. Las estadísticas de popularidad de un sitio web normalmente están
basadas en el número de 'páginas vistas' o las 'peticiones' de servidor asociadas,
o peticiones de fichero, que tienen lugar.
Así que se han recibido los ficheros solicitados desde el servidor web, el
navegador renderiza la página tal y como se describe en el código HTML, el CSS
y otros lenguajes web. Al final se incorporan las imágenes y otros recursos para
producir la página que ve el usuario en su pantalla.
La mayoría de las páginas web contienen hiperenlaces a otras páginas
relacionadas y algunas también contienen descargas, documentos fuente,
definiciones y otros recursos web.
Todos los URL, independientemente del esquema, deben seguir una sintaxis
general. Cada esquema puede determinar sus propios requisitos de sintaxis para
su parte específica, pero el URL completo debe seguir la sintaxis general.
Los esquemas que usan protocolos típicos basados en conexión usan una sintaxis
común para "URL genéricos", definida a continuación:
esquema://autoridad/ruta?consulta#fragmento
Servidores Web:
• CERN httpd
• Servidor HTTP Apache (Libre, servidor más usado del mundo)
• Servidor HTTP Cherokee
• IIS
• Resin
• Tomcat (Libre, del proyecto Jakarta de Apache)
• Geronimo (Libre, orientado a J2EE, del proyecto Jakarta de Apache, en
desarrollo)
• JBoss
• JOnAS
• Lighttpd
En este sentido, una biblioteca puede considerarse una base de datos compuesta
en su mayoría por documentos y textos impresos en papel e indexados para su
consulta.
SGBD gratuitos
• Microsoft SQL Server Compact Edition
• Sybase ASE Express Edition para Linux (Edición gratuita para Linux)
SGBD comerciales
• Advantage Database
• dBase
• FileMaker
• Fox Pro
• IBM DB2 Universal Database (DB2 UDB)
• IBM Informix
• Microsoft Access
• Microsoft SQL Server
• Open Access
• Oracle
• Paradox
• PervasiveSQL
• Progress (DBMS)
• Sybase ASE
• WindowBase
• Softland ERP
Servidor de Aplicaciones.
En informática se denomina servidor de aplicaciones a un servidor en una red
de computadores que ejecuta ciertas aplicaciones.
Usualmente se trata de un dispositivo de software que proporciona servicios de
aplicación a las computadoras cliente. Un servidor de aplicaciones generalmente
gestiona la mayor parte (o la totalidad) de las funciones de lógica de negocio y de
acceso a los datos de la aplicación. Los principales beneficios de la aplicación de
la tecnología de servidores de aplicación son la centralización y la disminución de
la complejidad en el desarrollo de aplicaciones. Si bien el término es aplicable a
todas las plataformas de software, hoy en día el término servidor de aplicaciones
se ha convertido en sinónimo de la plataforma J2EE de Sun Microsystems.
El término servidor de aplicaciones también ha sido aplicado a otros productos no-
J2EE. Por ejemplo, con el aumento de la popularidad de .NET, Microsoft califica a
su producto Internet Information Server como un servidor de aplicaciones.
Adicionalmente, se pueden encontrar servidores de aplicación de código abierto y
comercial de otros proveedores; algunos ejemplos son Base4 Server y Zope.
Servidor de transacciones
El servidor de transacciones es un programa que corre en un servidor de Internet
o de red y administra las solicitudes de transacción de aplicaciones y solicitudes
en representación del usuario de un ordenador cliente. El servidor de
transacciones verifica el ordenador del usuario y cliente para formular solicitudes a
bases de datos no muy conocidas y, si es necesario, envía las solicitudes a los
servidores de bases de datos. También administra la seguridad, la conexión a
otros servidores y la integridad de las transacciones.
Productos:
• Servidor de Transacciones Microsoft (Microsoft Transaction Server, MTS)
Sistemas operativos.
Funciones básica.
Los sistemas operativos, en su condición de capa software que posibilitan y
simplifica el manejo de la computadora, desempeñan una serie de funciones
básicas esenciales para la gestión del equipo. Entre las más destacables, cada
una ejercida por un componente interno (módulo en núcleos monolíticos y servidor
en micronúcleos), podemos reseñar las siguientes:
- Proporcionar más comodidad en el uso de un computador.
- Gestionar de manera eficiente los recursos del equipo, ejecutando servicios
para los procesos (programas)
- Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
- Permitir que los cambios debidos al desarrollo del propio SO se puedan
realizar sin interferir con los servicios que ya se prestaban (evolutividad).
Un sistema operativo desempeña 5 funciones básicas en la operación de un
sistema informático: suministro de interfaz al usuario, administración de recursos,
administración de archivos, administración de tareas y servicio de soporte y
utilidades.
Servcio de Firewall.