Sei sulla pagina 1di 31

Unidad 2. Arquitectura de aplicaciones distribuidas.

Objetivo:
Identificará la arquitectura de una aplicación distribuida así como los servicios y
tecnologías que intervienen.

La arquitectura de aplicaciones distribuidas (AAD) es el diseño que permite a los


usuarios de una red de computadoras accesar a la información, aplicaciones y
servicios, así como también intercambiar información con otros usuarios, a través
de un único, pero consistente entorno de usuario. Esta arquitectura permite la
construcción de nuevas aplicaciones y servicios; y proporciona las facilidades para
la integración y migración de las aplicaciones existentes, también llamados
sistemas heredados.

Un sistema completamente basado en la arquitectura de aplicaciones distribuidas


(AAD) incluidos los componentes que proporcionan servicios como parte de la
infraestructura y un conjunto de convenciones o políticas que definen como los
componentes interactúan con el proveedor de servicios y unos con otros. Estas
convenciones, en particular, permiten la integración de los componentes en un
contexto empresarial amplio.

Modelo de Arquitectura de Aplicación Distribuida

Un sistema completo basado en AAD incluye la infraestructura de componentes


que proporcionan servicios a objetos y establecen un conjunto de convenciones o
políticas que definen como los objetos interactúan con los servicios
proporcionados. La figura anterior muestra la arquitectura de forma visual.
La arquitectura de aplicaciones es organizada alrededor del concepto de objeto
AAD, un objeto de datos abstracto que usa a la infraestructura AAD e implementa
sus políticas. El Facilitador de Manejo de Objetos Distribuidos (DOMF) es el
componente de la infraestructura DAA que maneja la existencia y ejecución de los
objetos, así como la interacción entre los objetos. El DOMF es la capa central de
la arquitectura, proporciona la funcionalidad básica común para un sistema basado
en AAD.

2.1 Capa de interfaz de usuario.


La interfaz de usuario es el medio con que el usuario puede comunicarse con
una máquina, un equipo o una computadora, y comprende todos los puntos de
contacto entre el usuario y el equipo.

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.

Tipos de interfaces de usuario


Según la forma de interactuar del usuario, atendiendo como el usuario puede
interactuar con una interfaz, nos encontramos con varios tipos de interfaces de
Usuario:
• Interfaces alfanuméricas (intérpretes de comandos) que solo presentan
texto.

• Interfaces gráficas de usuario (GUI, Graphics User Interfaces), las que


permiten comunicarse con el ordenador de una forma muy rápida e intuitiva
representando gráficamente los elementos de control y medida.
• Interfaces táctiles, que representan gráficamente un "panel de control" en
una pantalla sensible que permite interaccionar con el dedo de forma similar
a si se accionara un control físico.

• Las interfaces web tienen ciertas limitaciones en las funcionalidades que se


ofrecen al usuario. Hay funcionalidades comunes en las aplicaciones de
escritorio como dibujar en la pantalla o arrastrar-y-soltar que no están
soportadas por las tecnologías web estándar. Los desarrolladores web
generalmente utilizan lenguajes interpretados o script en el lado del cliente
para añadir más funcionalidades, especialmente para ofrecer una
experiencia interactiva que no requiera recargar la página cada vez (lo que
suele resultar molesto a los usuarios). Recientemente se han desarrollado
tecnologías para coordinar estos lenguajes con tecnologías en el lado del
servidor, como por ejemplo PHP. Otro caso AJAX, que es una técnica de
desarrollo web que usa una combinación de varias tecnologías.
Según su construcción, pueden ser de hardware o de software:
• Interfaces hardware. Se trata de un conjunto de controles o dispositivos que
permiten la interacción hombre-máquina, de modo que permiten introducir o
leer datos del equipo, mediante pulsadores, reguladores e instrumentos.

• Interfaces software. Son programas o parte de ellos, que permiten expresar


nuestros deseos al ordenador o visualizar su respuesta.

La capa de interfaz de usuario o capa de presentación es una parte de vital


importancia en una aplicación, ya que su arquitectura no es la adecuada, puede
incrementar la complejidad de la aplicación, no favorecer su flexibilidad y hacer
que la experiencia del usuario sea poco eficaz y frustrante. Las aplicaciones de
cliente ligero presentan conocidas ventajas sobre las aplicaciones de cliente
enriquecido tradicionales en cuanto a implementación y capacidad de
administración, lo que ha contribuido a que aumente su popularidad en los últimos
años. Sin embargo, con la aparición de los clientes inteligentes, la elección de la
arquitectura de capa de presentación ha dejado de ser tan sencilla. Los clientes
enriquecidos han evolucionado a clientes inteligentes, que pueden combinar las
ventajas de la administración central de los ligeros, con la flexibilidad, el nivel de
respuesta y el rendimiento de los enriquecidos. En este artículo se describen los
enfoques de cliente ligero e inteligente y se proporciona información sobre cómo
optar por uno u otro.

La importancia de la capa de presentación


La capa de presentación de la mayoría de aplicaciones resulta con mucha
frecuencia esencial para su éxito. Después de todo, representa la interfaz entre el
usuario y el resto de la aplicación. Es, por así decirlo, el aspecto fundamental. Si el
usuario no puede interactuar con la aplicación de forma que le permita realizar su
trabajo con eficacia, el éxito global de la misma se verá seriamente perjudicado.

Lo importante de la capa de presentación es diseñarla de manera que se ofrezca


una buena experiencia al usuario que le permita interactuar eficazmente con la
aplicación. Asimismo, será necesario generar e implementar la capa de tal manera
que tenga en cuenta las necesidades empresariales de desarrollo, mantenimiento
y funcionamiento. La elección de la arquitectura correcta de la capa de
presentación de la aplicación resulta de vital importancia para lograr todos estos
objetivos.
Los dos enfoques de arquitectura y diseño de la capa de presentación
comúnmente adoptado son el enfoque de cliente ligero y el enfoque de cliente
inteligente. Son muchos los factores que pueden influir en la decisión de cuál de
los dos resulta más idóneo para una aplicación concreta (los requisitos de la
plataforma del cliente, la implementación y la actualización de la aplicación, la
experiencia del usuario, el rendimiento, la integración del lado cliente, las
capacidades sin conexión, etc.) y cada uno de ellos presenta puntos débiles y
fuertes inherentes y admite un determinado estilo de aplicación. Sin embargo, la
distinción entre ellos se puede desdibujar, lo que fácilmente puede conducir a la
aplicación del enfoque básico menos adecuado y a los consiguientes problemas.

Descripción de un cliente ligero.


Muchas tecnologías de cliente ligero pertenecen al lado servidor, y los marcos y
plataformas de servidor Web (ASP, ASP.NET, JSP, etc.) entre los que se puede
elegir son elevados. Cada uno presenta características especiales que intentan
hacer más fácil la creación de aplicaciones de cliente ligero, pero todos ellos
ofrecen la interfaz de usuario en un explorador en el cliente mediante una serie de
páginas HTML. Una aplicación de cliente ligero se puede definir de forma simple
como la aplicación que utiliza un explorador para proporcionar el entorno de
ejecución de su interfaz de usuario (definida con HTML).

Representación esquemática de una arquitectura de cliente ligero

Otras aplicaciones Web han recurrido a alojar componentes complejos dentro de


la página como subprogramas Java, controles ActiveX y .NET. Estos componentes
ofrecen bien una interfaz de usuario con mayor nivel de respuesta, bien lógica del
lado cliente que no se puede implementar en secuencias de comandos o por
razones de seguridad. Es en este punto donde el cliente ligero comienza a
mezclarse con el cliente inteligente conduciendo a lo que se conocen como
aplicaciones híbridas.
Aunque es posible utilizar estas aplicaciones híbridas para equilibrar los puntos
débiles y fuertes de cada enfoque, el término cliente ligero se define como una
aplicación Web genérica que no emplea tales componentes sino las
características básicas que ofrece el entorno del explorador. Las aplicaciones
híbridas se describirán en una sección posterior, junto con las aplicaciones de
cliente inteligente, dado que precisan utilizar capacidades de estas últimas para
evitar problemas de administración y funcionamiento.

Descripción de un cliente inteligente


Las aplicaciones de cliente inteligente no resultan tan sencillas de definir como las
de cliente ligero, porque pueden presentar muchas formas distintas y no se limitan
al enfoque que se podría denominar universal de estas últimas. La principal
diferencia que existe entre un cliente inteligente y un cliente ligero es que el
primero no se basa en un explorador para proporcionar el entorno de ejecución, de
seguridad y de interfaz de usuario que necesita para su funcionamiento.
Asimismo, los clientes inteligentes, en lugar de HTML y JScript, generalmente
llevan asociados elementos de código compilado (componentes ensamblados)
que se ejecutan en el equipo cliente para ofrecer la interfaz de usuario de la
aplicación y la lógica del lado cliente.

Representación esquemática de una arquitectura de cliente inteligente

.NET también proporciona la infraestructura de seguridad de acceso al código


(CAS). CAS asigna permisos específicos de código de .NET en función de la
evidencia que presenta y funciona de forma muy similar a como lo hace el
explorador en una aplicación de cliente ligero, ofreciendo un entorno de recinto en
el que opera la aplicación. La implementación "no-touch" se integra con CAS. De
forma predeterminada, se asigna a las aplicaciones que se implementan mediante
"no-touch" un conjunto restringido de permisos en función de la zona de URL
desde la que se realice la implementación. Los administradores de red pueden
modificar los permisos con directivas de seguridad para que se asignen o se
denieguen permisos específicos a la aplicación según los requisitos.
Al crear aplicaciones de cliente inteligente con .NET Framework se generan
aplicaciones menos frágiles. Tradicionalmente, al instalar una aplicación de cliente
enriquecido se podían interrumpir otras aplicaciones, ya que se reemplazaban
componentes y DLL importantes que compartían. .NET permite aislar las
aplicaciones y mantener todos sus componentes en un directorio local de manera
que todos los ensamblados sean independientes. Además, tales aplicaciones no
requieren ningún proceso de registro cuando se implementan, lo que reduce aún
más el riesgo de interrumpir las demás. Asimismo, .NET Framework permite
implementar varias versiones de un ensamblado en paralelo. De esta forma se
garantiza que, cuando la aplicación se ejecuta, utiliza las versiones exactas de los
ensamblados con los que se ha creado y probado.

Framework: Es una tecnología de soporte para software, une componentes, es


una arquitectura de software. Permitir enlazar las aplicaciones de cliente
inteligente y cliente ligero.

2.2 Capa de manejo de datos.


Es donde residen los datos y es la encargada de acceder a los mismos. Está
formada por uno o más gestores de bases de datos que realizan todo el
almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación
de información desde la capa de procesamiento de datos o capa de negocio.

Hay diferentes modelos de datos:

- Conceptuales. Utilizados para profundizar en el dominio del problema con


el cliente.
- Lógicos. es el diseño conceptual de la base de datos, esto es, entidades
de datos, atributos y relaciones.
- Físicos. Diseñar el esquema de las bases de datos, esto es, las tablas, sus
columnas y relaciones entre ellas.
Por lo tanto ahora tendremos que enumerara las diferencias entre los objetos y los
datos:
- El modelo de objetos contempla los datos y su comportamiento, la
normalización de las clases incrementa la cohesión y minimiza el
acoplamiento, usando para ellos las distintas formas normales de las bases
de datos: 1FN, 2FN, 3FN.
-
Notación para los modelos de datos:

La manera de representar los modelos de datos, está basada en la notación


UML.
Tabla
Atributo1: <<PK>>
Atributo2: String
Atributo1: VARCHAR
..
.
.
Atributo1: <<FK>>

Traducción de Objetos a Datos:


Como ya es costumbre en esta asignatura, surgen más problemas, en esta
ocasión el problema que se nos plantea es: como sabríamos qué
columnas necesitaremos a partir del modelo de clases, y como se identificarían las
entidades en una base de datos, para solucionarlo se plantean las siguientes
maneras:
Identificadores de objetos:
Características:
- Garantizan unicidad en toda la base de datos ya que los id solo la
garantizan en las tablas no en toda la base.
- No tienen sentido en la lógica de negocio o funcional de la aplicación
Algunas Estrategias:
- Incremento del valor máximo de una columna numérica
- Almacenando el valor en una tabla
- UUIDs (Universally Unique Identifier) y GUIDs (Globally Unique Identifier).

Traducción de clases y atributos


Por regla general, las clases son tablas, y los atributos que contienen se traducen
en columnas, teniendo en cuenta de que se añade en la tabla un literal OID para
identificar sus atributos y sus relaciones con las demás tablas.

Traducción de las relaciones:


Al efectuar estas traducciones hay que tener en cuenta ciertos detalles;
- una asociación = composición = agregación
- en el modelo relacional todas las asociaciones son bidireccionales
independientemente como estén en las clases de donde vienen.
La estrategia que se sigue para que se haga una traducción correcta de las
clases a tablas;
- las relaciones de 1 a 1 y 1 a * se hace con claves ajenas (<<FK>>).
- Las relaciones de muchos a muchos se hacen con tablas asociativas
(intermedias).
Un ejemplo más concreto de una relación n a n:

Especialización
Las estrategias se establecen como sigue:
- Una única tabla para todas las clases.

- Una tabla para cada clase concreta.


- Una tabla para cada clase.

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

Modelo Data Access Object.


Un Data Access Object (DAO, Objeto de Acceso a Datos) es un componente de
software que suministra una interfaz común entre la aplicación y uno o más
dispositivos de almacenamiento de datos, tales como una Base de datos o un
archivo.
La ventaja de usar objetos de acceso a datos es que cualquier objeto de negocio
(aquel que contiene detalles específicos de operación o aplicación) no requiere
conocimiento directo del destino final de la información que manipula.
Los Objetos de Acceso a Datos pueden usarse en Java para aislar a una
aplicación de la tecnología de persistencia Java subyacente(API de Persistencia
Java), la cual podría ser JDBC, JDO, EJB CMP(Persistencia controlada por el
Contenedor), TopLink, Hibernate, iBATIS, o cualquier otra tecnología de
persistencia. Usando Objetos de Acceso de Datos significa que la tecnología
subyacente puede ser actualizada o cambiada sin cambiar otras partes de la
aplicación.

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.

Modo de trabajo en JDBC.


Lo que se muestra en la figura a continuación es el modo de trabajar con un
recurso que en este caso es un Driver, lo que hacemos es cargarlo, obtener la
conexión, lanzar las consultas ejecutando las distintas sentencias SQL, tratamos
el resultado devuelto, y lo mostramos, y liberamos el recurso.
ADO.NET.

El ADO.NET es un conjunto de componentes del software que pueden ser usados


por los programadores para acceder a datos y a servicios de datos. Es una parte
de la biblioteca de clases base que están incluidas en el Microsoft .NET
Framework. Es comúnmente usado por los programadores para acceder y para
modificar los datos almacenados en un Sistema Gestor de Bases de Datos
Relacionales, aunque también puede ser usado para acceder a datos en fuentes
no relacionales. ADO.NET es a veces considerado como una evolución de la
tecnología ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente
que puede ser concebido como un producto enteramente nuevo.

2.3 Capa de procesamiento de datos.


Toda aplicación tiene código para implementar reglas de negocios, procesos
relacionados a los datos o cálculos y otras actividades relativas a los negocios.

Colectivamente este código es considerado para formar la capa de negocios. Otra


vez, uno de los principios del diseño lógico cliente/servidor, la lógica de negocios
debe mantenerse separada de la capa de presentación y de los servicios de datos.

Esto no significa necesariamente que la lógica de negocios está en cualquier


parte, por el contrario, esta separación es en un sentido lógico.

Hay muchas formas de separar la lógica de negocios. En términos orientados a


objetos, usted debería encapsular la lógica de negocios en un conjunto de objetos
o componentes que no contienen presentación o código de servicios de datos.
Teniendo separada lógicamente su lógica de negocios de ambas, la capa de
presentación y servicios de datos, usted ganará en flexibilidad en término de
donde usted puede almacenar físicamente la lógica de negocios.

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.

Todos estos son objetos en el mundo físico, y la idea en su totalidad detrás de


usar objetos de negocios de software, es crear una representación de los mismos
objetos dentro de su aplicación.

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.

No toda la lógica de negocio es la misma. Alguna lógica de negocio es un proceso


intensivo de datos, requiriendo un eficiente y rápido acceso a la base de datos.

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.

Si nosotros necesitamos una validación al nivel de pantallas y quizás cálculos en


tiempo real u otra lógica de negocios, pudiéramos considerar este tipo de lógica de
negocios para ser parte de la IU, ya que en su mayor parte es usada por la
interfase de usuario.

Una alternativa de solución es dividir la capa de lógica de negocios en dos:


• Objetos de negocios de la IU.
• Objetos de negocios de datos.
Un ejemplo del objeto Empleado de la capa objetos de negocios de la IU proveerá
propiedades y métodos para usar por el diseñador de la interfase de usuario.

Ejemplo de propiedades y métodos pudieran ser: IdEmpleado, Nombre, Dirección,


etc., y como métodos crear una de compra, etc.

El objeto Empleado de la capa de objetos de negocios de datos será responsable


de los mecanismos de persistencias, interactuar con la base de datos.

Los objetos de esta capa son considerados sin estado, solo poseen métodos.

Componentes Distribuidos de Java EJBs.

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

Su especificación detalla cómo los servidores de aplicaciones proveen objetos


desde el lado del servidor que son, precisamente, los EJBs:
• comunicación remota utilizando CORBA,
• transacciones,
• control de la concurrencia,
• eventos utilizando JMS (Java messaging service),
• servicios de nombres y de directorio,
• seguridad,
• ubicación de componentes en un servidor de aplicaciones.

Los EJBs proporcionan un modelo de componentes distribuido estándar del lado


del servidor.

El objetivo de los EJBs es dotar al programador de un modelo que le permita


abstraerse de los problemas generales de una aplicación empresarial
(concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el
desarrollo de la lógica de negocio en sí.

El hecho de estar basado en componentes permite que éstos sean flexibles y


sobre todo reutilizables.

No hay que confundir los Enterprise JavaBeans con los JavaBeans.

Los JavaBeans también son un modelo de componentes creado por Sun


Microsystems para la construcción de aplicaciones, pero no pueden utilizarse en
entornos de objetos distribuidos al no soportar nativamente la invocación remota
(RMI).
Componentes distribuidos DCOM.

Distributed Component Object Model (DCOM), en español Modelo de Objetos


de Componentes Distribuidos, es una tecnología propietaria de Microsoft para
desarrollar componentes software distribuidos sobre varios ordenadores y que se
comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el
sustrato de comunicación entre la infraestructura del servidor de aplicaciones
COM+ de Microsoft. Ha sido abandonada en favor del framework .NET

La adición de la "D" a COM fue debido al uso extensivo de DCE/RPC, o más


específicamente la versión mejorada de Microsoft, conocida como MSRPC.

En términos de las extensiones que añade a COM, DCOM tenía que resolver los
problemas de

• Aplanamiento - Serializar y deserializar los argumentos y valores de retorno


de las llamadas a los métodos "sobre el cable".

• Recolección de basura distribuida, asegurándose que las referencias


mantenidas por clientes de las interfaces sean liberadas cuando, por
ejemplo, el proceso cliente ha caído o la conexión de red se pierde.

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.

2.4 Integración de sistemas heredados.

Un sistema heredado, es un sistema informático (equipos informáticos y/o


aplicaciones) que se ha quedado anticuado y que continúa siendo utilizado por el
usuario (típicamente una organización o empresa) y no se quiere o no puede ser
reemplazado o actualizado de forma sencilla.

Las compañías gastan mucho dinero en sistemas informáticos y, para obtener un


beneficio de esa inversión el software o el hardware debe utilizarse por varios
años.

El tiempo de vida de los sistemas informáticos es muy variable, pero muchos


sistemas grandes se pueden llegar a utilizar hasta por más de 20 años.

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.

Muchos factores externos e internos, como el estado de las economías nacional e


internacional, los mercados cambiantes, los cambios en las leyes, los cambios de
administración o la reorganización estructural, conducen a que los negocios
experimenten cambios continuos.

Estos cambios generan o modifican los requerimientos del sistema de información


por lo que éstos van sufriendo cambios conforme cambian los negocios. Por esta
razón, los sistemas heredados incorporan un gran número de actualizaciones
hechas a lo largo de su vida útil.

Muchas personas diferentes pueden haber estado involucradas en la realización


de estas modificaciones a lo largo del tiempo, y es inusual para cualquier usuario o
administrador del sistema tener un conocimiento completo del mismo, sobre todo
cuando éste tiene una cierta envergadura.

Muchas de las grandes empresas tienen sistemas heredados escritos en variedad


de lenguajes diferentes, como COBOL y C++.

Esas empresas han erogado enormes sumas de dinero y han reunido grandes
cantidades de datos en esos sistemas heredados.

Por lo tanto, es indispensable que busquen un modo rápido y eficiente de


conservar y reutilizar esos servicios heredados para integrarlos y exponerlos como
servicios web.

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.

Java EE Connector Architecture (JCA) es una solución de tecnología basada en el


Lenguaje de programación Java para conectar servidores de aplicaciones y
sistemas de información de empresa (SIE) como parte de soluciones de
integración de aplicación de empresa (EAI).

Mientras JDBC se usa específicamente para conectar aplicaciones Java a Bases


de datos, JCA es una arquitectura más genérica para conectarse a sistemas
heredados (incluyendo bases de datos). JCA fue desarrollado bajo el Java
Community Process como JSR 16 (JCA 1.0) y JSR 112 (JCA 1.5).
En 2006, la versión JCA es la versión 1.5.
La JCA se puede usar para integrar sistemas heredados. Dicha arquitectura es
una especificación para crear adaptadores de recursos que entienden de qué
manera comunicarse con los sistemas heredados existentes, como los escritos en
COBOL, C++, etc. Estos adaptadores de recursos son reusables en cualquier
contenedor que soporte JCA. En la actualidad existe una gran cantidad de
grandes fabricantes en el mercado que manufacturan adaptadores y soportan
JCA.
.NET también presenta integración de heredados a través del Host Integration
Serve. Sin embargo, la conectividad se limita a los sistemas heredados a través de
ese servidor porque no hay mucho soporte fuera de Microsoft.
Conocida como Host Integration Server 2004 ó HIS 2004, la última versión de Host
Integration Server permite integrar los sistemas empresariales heredados de IBM
con las tecnologías emergentes de Microsoft Windows Server System ofreciendo
un entorno adaptable y fácil de administrar y ahorrando enormes costos
económicos.
No es sencillo para las empresas reemplazar sus plataformas heredadas de IBM
por sistemas basados en Windows, aun cuando valoran el menor tiempo de
desarrollo y ejecución y los menores costes de administración que ofrecen los
entornos desarrollados sobre la base de Microsoft .NET Framework, Microsoft
Visual Studio .NET y Microsoft Windows Server System.

Host Integration Server 2004 ofrece un medio eficiente para la integración de


aplicaciones que se ejecuta en los sistemas Windows y anfitriones IBM sin
necesidad de reescribir las aplicaciones del anfitrión.

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.

Transaction Integrator Designer, Transaction Integrator Manager y el Servicio HIP


(Procesamiento Iniciado por el Anfitrión) permiten a los desarrolladores de
aplicaciones heredadas de IBM, desarrolladores de aplicaciones de Windows,
editoras de Web y gerentes de unidades de negocio acceder e integrar
bidireccionalmente sus sistemas empresariales críticos para la misión en las
soluciones de Microsoft Windows Server System.

Como numerosos proveedores ya soportan JCA y ofrecen adaptadores de


recursos, la integración con sistemas heredados se vuelve mucho más fácil.

La portabilidad de Java también desempeña un gran papel en el desarrollo de


servicios web. Los programas creados en Java son portables en una red y pueden
funcionar en variedad de plataformas y sistemas operativos, como Win32, UNIX y
sistemas mainframe. Ésta es una fuerte ventaja, puesto que la mayoría de los
eBusiness tienen clientes cuya gama de plataformas es amplia.
Por otro lado, la portabilidad de .NET es limitada (en el mejor de los casos), pues
sólo opera con Windows. Si bien el proyecto Mono trata de crear una
implementación de fuente abierta para .NET, cuál sea el futuro de dicho proyecto,
es todavía incierto.

2.5 Distribución de elementos de una aplicación.

El diseño de una aplicación distribuida implica la toma de decisiones sobre su


arquitectura lógica y física, así como sobre la tecnología e infraestructura que se
emplearán para implementar su funcionalidad.

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

El objetivo consiste en diseñar una aplicación que:


• Solucione el problema empresarial para el que se diseña.
• Tenga en consideración la seguridad desde el principio, teniendo en cuenta
los mecanismos adecuados de autenticación, la lógica de autorización y la
comunicación segura.
• Proporcione un alto rendimiento y esté optimizada para operaciones
frecuentes entre patrones de implementación.
• Esté disponible y sea resistente, capaz de implementarse en centros de
datos de alta disponibilidad y redundantes.
• Permita la escalabilidad para cumplir las expectativas de la demanda y
admita un gran número de actividades y usuarios con el mínimo uso de
recursos.
• Se pueda administrar, permitiendo a los operadores implementar,
supervisar y resolver los problemas de la aplicación en función del
escenario.
• Se pueda mantener. Cada parte de funcionalidad debería tener una
ubicación y diseño predecibles teniendo en cuenta distintos tamaños de
aplicaciones, equipos con conjuntos de habilidades variadas y requisitos
técnicos y cambios empresariales.
• Funcione en los distintos escenarios de aplicaciones y patrones de
implementación

Una solución distribuida puede que necesite abarcar varias organizaciones o


niveles físicos, en cuyo caso tendrá sus propias directivas en relación a la
seguridad, administración operativa y comunicaciones de la aplicación.

Estas unidades de confianza, o zonas, pueden ser un nivel físico, un centro de


datos o un departamento, sección o empresa que tenga estas directivas definidas.
Unidas, estas directivas definen reglas para el entorno en el que se implementa la
aplicación y la forma en que los niveles del servicio o aplicación se comunican.
Las directivas abarcan toda la aplicación y la forma en que se implementan afecta
a las decisiones sobre el diseño en cada nivel. También tienen un impacto entre sí
(por ejemplo, la directiva de seguridad determina algunas de las reglas en la
directiva de comunicación y viceversa).

2.6 Integración de tecnologías heterogéneas y homogéneas.

La mayoría cuentan al día de hoy con un conjunto de aplicaciones las cuales se


requiere que interactúen de manera más automáticas y flexibles.

Esto le da a las empresas la ventaja de compartir la información y disparar los


procesos asociados a un evento de una manera más rápida y eficiente, pero al
mismo tiempo plantea problemas de seguridad, control del proceso, problemas de
interoperabilidad entre plataformas distintas, problemas de eficiencia y otros.

Existen diversas formas de permitir la integración, dos formas de hacer esto se


basan en las tecnologías tipo framework, que permiten la integración dentro de
sistemas heterogéneos

- MVJ. Maquina Virtual de Java


- Microsoft Framework.
-
Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un programa
nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y
ejecutar instrucciones expresadas en un código binario especial (el Java
bytecode), el cual es generado por el compilador del lenguaje Java.

El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código


máquina de bajo nivel, viable incluso como lenguaje de entrada para un
microprocesador físico.

Como todas las piezas del rompecabezas Java, fue desarrollado originalmente
por Sun Microsystems.

La JVM es una de las piezas fundamentales de la plataforma Java.

Básicamente se sitúa en un nivel superior al Hardware del sistema sobre el que se


pretende ejecutar la aplicación, y este actúa como un puente que entiende tanto el
bytecode, como el sistema sobre el que se pretende ejecutar.

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.

El proveedor ofrece un servicio de negocios que representa una implementación


en particular, la cual no es visible directamente al solicitante o cliente. El Cliente
aprende del Agente la estructura de la información que tiene que enviar y recibir
desde el proveedor y que protocolo de comunicación debe utilizar para accesar al
servicio.

El cliente no tiene conocimiento de la forma en que el proveedor implementa el


servicio.
JCA
Java Connector Architecture permite la comunicación entre la lógica del negocio
de sistemas Empresariales de información (SEI) de una forma fuertemente
acoplada.

El conector proporciona soporte para adaptación de recursos, los cuales son


vigilados por el J2EE Security, transacciones, así como soporte de optimización
para la comunicación para la correspondiente tecnología SEI.

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.

Eligiendo las Tecnologías de Interfaz

La forma en que ya se tienen implementada la lógica o capa de procesamiento de


datos en los sistemas empresariales afectará a las tecnologías que podremos
utilizar para las tecnologías de interfaz.

Como primer paso es necesario analizar la infraestructura existente.

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

La decisión de que interfaces se utilizaran se basara en los elementos


encontrados dentro de la arquitectura existente. Algunas decisiones pueden
basarse en las siguientes recomendaciones.

Si se tiene Aplicaciones en Java o se planea comenzar desde cero: usar


tecnologías de interfaz JMS o JCA los cuales permitirán una comunicación sencilla
entre las aplicaciones, abstracción de arquitecturas y uso de protocolo de red
TCP/IP.

Si es necesario interactuar con otras compañías que tienen distintas


arquitecturas y software: es recomendable hacer uso de tecnologías como
servicios Web para permitir la comunicación.
Si es necesario interacción con diferentes lenguajes: hacer uso de JMS o
Web services.

Otro factor de decisión es el alcance de la red: Internet, Intranet o extranet. Este


ámbito determina la flexibilidad en la selección del protocolo de transporte a
utilizar.

El uso de internet probablemente demande Servicios Web sobre HTTP de bajo


acoplamiento. JMS y JCA tienen más sentido en protocolos de Intranet o Extranet,
JMS es preferentemente para modos asíncronos y JCA es preferente para el
Fuerte acoplamiento.

Tecnología CORBA.

En computación, CORBA (Common Object Request Broker Architecture —


arquitectura común de intermediarios en peticiones a objetos), 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.

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.

Los objetos que resultan pueden entonces ser invocados desde otro programa (u
objeto CORBA) desde la red.

En este sentido CORBA se puede considerar como un formato de documentación


legible por la máquina, similar a un archivo de cabeceras pero con más
información.

La Integración del lado cliente.

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

Tanto el enfoque de cliente ligero como el de cliente inteligente funcionan dentro


de un recinto. En el caso del cliente ligero, el explorador proporciona el recinto,
mientras que en el caso del cliente inteligente, lo proporciona el tiempo de
ejecución de .NET Framework.

La integración de recursos del lado cliente en una aplicación de cliente ligero


normalmente requiere que se utilice una arquitectura de aplicación híbrida para
alojar un componente dentro de una página (por ejemplo, un control ActiveX) para
que se extienda fuera del recinto del explorador.

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.

El tiempo de ejecución de .NET Framework emplea un enfoque más flexible y


concede permisos de código administrado basándose en las evidencias que
presenta y en la directiva de seguridad local.

De forma predeterminada, el código descargado desde un servidor Web no puede


interactuar con los recursos locales excepto de formas muy limitadas y
específicas.

Sin embargo, la lógica de la aplicación puede conceder al código permisos


adicionales para obtener acceso a recursos específicos como directorios
concretos en el disco, otras aplicaciones, bases de datos locales, etc.

Este enfoque administrado representa un mecanismo más granular y flexible para


controlar los aspectos de seguridad de una aplicación, lo que permite que el
cliente inteligente integre otros recursos del lado cliente sin introducir ningún
riesgo para la seguridad.

Lo que es más importante, el administrador de red emplea directivas de seguridad


para tomar las decisiones de seguridad, en lugar de usuarios individuales, por lo
que el código de la aplicación no puede realizar acciones u obtener acceso a
recursos para los que no se le haya concedido permiso.

Las aplicaciones de cliente inteligente a menudo emplean seguridad de acceso al


código para controlar el almacenamiento en la caché del cliente de los datos y la
lógica.

Este comportamiento resulta esencial para proporcionar capacidades sin


conexión, por lo que este tipo de aplicaciones normalmente requieren cambios en
la directiva de seguridad para conceder permisos específicos.

Generalmente, esto implica conceder a la aplicación permiso para almacenar en


caché en el disco local el código y los datos.
Si la solución requiere acceso a los recursos del lado cliente como el hardware
local u otras aplicaciones instaladas localmente, el enfoque de cliente inteligente
constituye una solución segura y flexible.

2.7 Servicios de la arquitectura (email, web, base de datos, aplicaciones,


transacciones, sistemas operativos, firewall).

Servicio de Correo Electrónico.


Correo electrónico, o en inglés e-mail (electronic mail), es un servicio de red que
permite a los usuarios enviar y recibir mensajes rápidamente (también
denominados mensajes electrónicos o cartas electrónicas) mediante sistemas
de comunicación electrónicos.

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.

Por medio de mensajes de correo electrónico se puede enviar, no solamente


texto, sino todo tipo de documentos digitales. Su eficiencia, conveniencia y bajo
costo están logrando que el correo electrónico desplace al correo ordinario para
muchos usos habituales.

Dirección de correo.

Una dirección de correo electrónico es un conjunto de palabras que identifican


a una persona que puede enviar y recibir correo. Cada dirección es única y
pertenece siempre a la misma persona.

Un ejemplo es persona@servicio.com, que se lee persona arroba servicio punto


com.

El signo @ (llamado arroba) siempre está en cada dirección de correo, y la divide


en dos partes: el nombre de usuario (a la izquierda de la arroba; en este caso,
persona), y el dominio en el que está (lo de la derecha de la arroba; en este caso,
servicio.com).

Servidores de correo electrónico.

Éstos son usados en el ordenador de servidor de correo para proporcionar el


servicio a los clientes, que podrán usarlo mediante un programa de correo.

- Principales programas servidores


o Microsoft Exchange Server: Windows
o MailEnable: Windows
o Exim: Unix
o Sendmail: Unix
o Qmail: Unix
o Postfix: Unix
o Zimbra: Unix, Windows
- Gestión de correo electrónico
o Duroty: alternativa libre a Gmail

Protocolos de correo electrónico.

Simple Mail Transfer Protocol (SMTP) o protocolo simple de transferencia de


correo. Protocolo de red basado en texto utilizado para el intercambio de mensajes
de correo electrónico entre computadoras u otros dispositivos (PDA's, teléfonos
móviles, etc.).

Es un estándar oficial de Internet.


En informática se utiliza el Post Office Protocol (POP3) en clientes locales de
correo para obtener los mensajes de correo electrónico almacenados en un
servidor remoto. La mayoría de los suscriptores de los proveedores de Internet
acceden a sus correos a través de POP3.

IMAP (acrónimo inglés de Internet Message Access Protocol) es un protocolo de


red de acceso a mensajes electrónicos almacenados en un servidor. Mediante
IMAP se puede tener acceso al correo electrónico desde cualquier equipo que
tenga una conexión a Internet.

Servicio WEB.

World Wide Web (o la "Web") o Red Global Mundial es un sistema de


documentos de hipertexto y/o hipermedios enlazados y accesibles a través de
Internet. Con un navegador Web, un usuario visualiza páginas web que pueden
contener texto, imágenes, vídeos u otros contenidos multimedia, y navega a través
de ellas usando hiperenlaces.

La visualización de una página web de la World Wide Web normalmente comienza


tecleando la URL de la página en el navegador web, o siguiendo un enlace de
hipertexto a esa página o recurso.

En ese momento el navegador comienza una serie de comunicaciones,


transparentes para el usuario, para obtener los datos de la página y visualizarla.

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.

Esta colección de recursos útiles y relacionados, interconectados a través de


enlaces de hipertexto, es lo que ha sido denominado como 'red' (web, en inglés)
de información. Al trasladar esta idea a Internet, se creó lo que Tim Berners-Lee
llamó WorldWideWeb (un término escrito en CamelCase, posteriormente
desechado) en 1990.

Protocolos de servicio Web.

El protocolo HTTP define la sintaxis y la semántica que utilizan los elementos


software de la arquitectura web (clientes, servidores, proxies) para comunicarse.
Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta
entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador o un
spider) se lo conoce como "user agent" (agente del usuario).

A la información transmitida se la llama recurso y se la identifica mediante un


URL. Los recursos pueden ser archivos, el resultado de la ejecución de un
programa, una consulta a una base de datos, la traducción automática de un
documento, etc.

URL significa Uniform Resource Locator, es decir, localizador uniforme de recurso.


Es una secuencia de caracteres, de acuerdo a un formato estándar, que se usa
para nombrar recursos, como documentos e imágenes en Internet, por su
localización.

Sintaxis Genérica URL.

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.

Usando un conjunto limitado de caracteres, compatible con el subconjunto


imprimible de ASCII, la sintaxis genérica permite a los URL representar la
dirección de un recurso, independientemente de la forma original de los
componentes de la dirección.

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

La autoridad consiste usualmente en el nombre o Dirección IP de un servidor,


seguido a veces de dos puntos (":") y un número de Puerto TCP. También puede
incluir un nombre de usuario y una clave, para autenticarse ante el servidor.

La ruta es la especificación de una ubicación en alguna estructura jerárquica,


usando una barra diagonal ("/") como delimitador entre componentes.

La consulta habitualmente indica parámetros de una consulta dinámica a alguna


base de datos o proceso residente en el servidor.

El fragmento identifica a una porción de un recurso, habitualmente una ubicación


en un documento.

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

Servicio de Base de Datos.

Una base de datos o banco de datos es un conjunto de datos pertenecientes a un


mismo contexto y almacenados sistemáticamente para su posterior uso.

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.

En la actualidad, y debido al desarrollo tecnológico de campos como la


informática y la electrónica, la mayoría de las bases de datos están en formato
digital (electrónico), que ofrece un amplio rango de soluciones al problema de
almacenar datos.
Existen unos programas denominados sistemas gestores de bases de datos,
abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos
de forma rápida y estructurada. Las propiedades de estos SGBD, así como su
utilización y administración, se estudian dentro del ámbito de la informática.
Productos SGBD disponibles en el mercado
SGBD libres
• PostgreSQL - Licencia BSD
• MySQL Licencia Dual, depende el uso.
• Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC
LICENSE Version 1.0.
• SQLite (http://www.sqlite.org SQLite) Licencia Dominio Público
• DB2 Express-C
• Apache Derby

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.

Un sistema operativo es un software de sistema, es decir, un conjunto de


programas de computadora destinado a permitir una administración eficaz de sus
recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el
hardware de la máquina desde los niveles más básicos, permitiendo también la
interacción con el usuario.
Un sistema operativo se puede encontrar normalmente en la mayoría de los
aparatos electrónicos que utilicen microprocesadores para funcionar, ya que
gracias a éstos podemos entender la máquina y que ésta cumpla con sus
funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras,
radios, etc.).

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.

Uso actual de Sistemas Operativos

Servcio de Firewall.

Un cortafuegos (o firewall en inglés), es un elemento de hardware o software


utilizado en una red de computadoras para controlar las comunicaciones,
permitiéndolas o prohibiéndolas según las políticas de red que haya definido la
organización responsable de la red. Su modo de funcionar es indicado por la
recomendación RFC 2979, que define las características de comportamiento y
requerimientos de interoperabilidad. La ubicación habitual de un cortafuegos es el
punto de conexión de la red interna de la organización con la red exterior, que
normalmente es Internet; de este modo se protege la red interna de intentos de
acceso no autorizados desde Internet, que puedan aprovechar vulnerabilidades de
los sistemas de la red interna.

También es frecuente conectar al cortafuego una tercera red, llamada zona


desmilitarizada o DMZ, en la que se ubican los servidores de la organización que
deben permanecer accesibles desde la red exterior.

Un cortafuego correctamente configurado añade protección a una instalación


informática, pero en ningún caso debe considerarse como suficiente. La Seguridad
informática abarca más ámbitos y más niveles de trabajo y protección.

Potrebbero piacerti anche