Portada » Informática » Conceptos Esenciales de Sistemas Distribuidos y Arquitecturas de Software
Es una colección de computadoras autónomas enlazadas por una red y equipadas con un sistema de software distribuido.
Describe una única aplicación de software en la que la interfaz de usuario y el código de acceso a datos se combinan en un solo programa de una plataforma única.
Todas las entradas de usuario, verificación, lógica de negocio y acceso de datos podrían encontrarse juntas.
Una aplicación monolítica también es llamada de una capa, y sus datos se encuentran mezclados o altamente acoplados, lo que indica que no puede hacerse una separación física o lógica para determinar la reutilización de sus partes.
Es una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información de forma transparente, incluso en entornos multiplataforma.
Esta arquitectura permite distribuir físicamente los procesos y los datos de forma más eficiente, lo que en computación distribuida afecta directamente el tráfico de la red, reduciéndolo considerablemente.
El proceso que permite al usuario formular los requerimientos y pasarlos al servidor se le conoce como front-end.
El cliente normalmente maneja todas las funciones relacionadas con la manipulación y despliegue de datos.
Es el proceso encargado de atender a múltiples clientes que hacen peticiones de algún recurso administrado por él. Al proceso servidor se le conoce como back-end.
El servidor normalmente maneja todas las funciones relacionadas con la mayoría de las reglas del negocio y los recursos de datos.
Las funciones que lleva a cabo el proceso servidor se resumen en:
Compartir recursos.
Conectar usuarios remotos a recursos remotos de manera abierta y escalable.
No hay restricciones en el tipo de recursos y componentes que forman el sistema. Los componentes están abiertos a interacciones continuas con otros componentes.
El sistema puede acomodar fácilmente incrementos en el número de usuarios y recursos. Ejemplo: Internet.
Este será la parte diferente del sistema que gestione una colección de recursos relacionados y presenta su funcionalidad a usuarios y aplicaciones.
Donde este nivel es en el que se encuentra toda la interfaz del sistema y es la que el usuario puede disponer para realizar su actividad con el sistema.
Este nivel de la base de datos, también llamado el repositorio de datos, es la capa en donde se almacena toda la información ingresada en el sistema y que se deposita en forma permanente.
Solo tiene que trabajar con la semántica propia de la aplicación, sin tener que preocuparse de cómo está implementado este ni de su estructura física.
La diferencia de este nivel aplicado ahora en una arquitectura de tres capas es que solo tiene que trabajar con la semántica propia de la aplicación, sin tener que preocuparse de cómo está implementado este ni de su estructura física.
En cambio, este nivel se encarga de toda la estructura física y el dominio de aplicación.
Algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora únicamente se cambia la regla en el servidor de aplicación y esta actuará en todos los clientes, cosa que no sucedía con la arquitectura en dos capas, que si alguna regla se cambiaba, se tenía que ir a cada cliente a realizar el cambio.
Sigue siendo la capa en donde se almacenan los datos y toda la información.
El surgimiento de la tecnología de componentes distribuidos es la clave de las arquitecturas de N-capas. Estos sistemas de computación utilizan un número variable de componentes individuales que se comunican entre ellos utilizando estándares predefinidos y *frameworks* de comunicación como:
Algunas de las aplicaciones distribuidas más conocidas son *remote login*, correo electrónico, navegación web, *streaming*, telefonía IP y compartición de ficheros (P2P).
Es un nivel de diseño que se enfoca en aspectos más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificaciones de la estructura global del sistema es un nuevo tipo de problema, la forma en que se concibe la estructura de algo.
Es una aplicación con distintos componentes que se ejecutan de forma separada, normalmente en diferentes plataformas conectadas.
Una vez agrupada la funcionalidad en capas lógicas es fácil relacionar unas con otras.
El esquema que mostramos es un esquema lógico, no físico. La capa de negocios podría residir en diferentes máquinas, por ejemplo, o las entidades de negocio y la capa de servidor podrían formar parte de la misma DLL.
Se refiere al mecanismo de interacción del usuario con el sistema.
Aplicaciones de ventanas y web.
El ratón, el teclado, el micrófono, pantallas táctiles, dispositivos de imagen y audio.
Formularios y los controles que se encuentran en los formularios.
No es más que un sistema de presentación y manejo de datos que se obtienen y se actualizan con los objetos de negocio comunes para todas las aplicaciones que los usan.
En computación paralela y distribuida, el término granularidad es una propiedad que dice cuánto procesamiento y comunicación una determinada aplicación requiere.
Es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso.
Representa el grueso de la lógica de funcionamiento de la aplicación distribuida.
Es aislar la capa de presentación de la capa de servidor, de forma que las estructuras de datos subyacentes y la lógica que las utilizan sean independientes de la capa de presentación.
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 negocio.
Son procesos que se ejecutan en los equipos servidores y que se mantienen a la escucha esperando que los procesos cliente les soliciten funcionalidad o datos.
Los SGBD como SQL Server u Oracle disponen de toda la infraestructura de servicios necesarios para que los equipos cliente les realicen peticiones y para responder a ellas.
Que nos permiten crear reglas de negocio.
Windows Communication Foundation (WCF) es un marco de trabajo para la creación de aplicaciones orientadas a servicios.
Es un sistema informático que ha quedado anticuado pero continúa siendo utilizado por el usuario y no se quiere o no se puede reemplazar o actualizar de forma sencilla.
La reutilización de sistemas y aplicaciones heredadas existentes, que se logra mediante la integración con aplicaciones corporativas desarrolladas recientemente.
Un método no intrusivo para reutilizar aplicaciones críticas que residen en sistemas heredados, como un sistema *mainframe*.
Cuando se trata de proteger los datos y recursos TI de una organización, la plataforma Power de IBM incorpora características avanzadas de autenticación y cifrado, así como recursos de control de gastos y administración.
Como memoria, procesadores y almacenamiento, a fin de funcionar eficientemente y con independencia del tamaño o la complejidad de la red.
Ahorrar dinero por medio del aprovechamiento de recursos existentes, que ya han demostrado su capacidad para incrementar el retorno de la inversión.
Integration Objects crea un canal a la información del *host* a nivel de búfer de pantalla, lo que permite leer y escribir datos en los campos de entrada y el espacio de presentación del *host*, abrir y cerrar sesiones, obtener cadenas de texto específicas de la pantalla, crear valores de cadenas, enviar teclas de función al *host*, cambiar a otras tareas, y mucho más.
Puede utilizarse como un servidor programático de integración de *host* para sistemas heredados.
Workflow Foundation permite la automatización de tareas, actividades y procesos.
Se refiere a la necesidad de distribuir los elementos de un sistema dependiendo de las características y necesidades del lugar.
En los sistemas homogéneos, todos los sitios emplean idéntico software de gestión de base de datos, son conscientes de la existencia de los demás sitios y acuerdan cooperar en el procesamiento de las solicitudes de los usuarios.
Las tecnologías Heterogéneas: son aquellas donde sitios diferentes utilizan diferentes DBMS, siendo cada uno esencialmente autónomo.
Es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.
XML: Es el formato estándar para los datos que se vayan a intercambiar.
Representar información estructurada en la web.
Conjunto de datos con sus respectivas etiquetas de marcado XML.
Soap, XMLRPC, HTTP, TCP, SMTP, WSDL, UDDI.
Es el modelo que se propone para ese sistema. Contiene todas las especificaciones que le dan forma y estructura al sistema.
Conectividad, Orientación a Objetos, Cliente/Servidor, Internet, Ofimática, Servicios.
Es el proceso de crear una arquitectura para la implementación; este solo puede comenzar una vez que el equipo tenga un entendimiento razonable de los requerimientos del sistema. El diseño nunca terminará hasta que el sistema finalmente sea entregado.
Para armonizar la arquitectura distribuida, el diseñador debe marcarse como objetivo:
Indica el formato del texto.
Utiliza etiquetas para describir los fragmentos de texto, pero sin especificar cómo deben ser representados, o en qué orden.
Es el proceso de comunicar información en forma binaria entre dos o más puntos.
Conjunto de reglas que posibilitan la transferencia de datos entre dos o más computadores.
El propósito de la arquitectura de niveles es reducir la complejidad de la comunicación de datos agrupando lógicamente ciertas funciones en áreas de responsabilidad (niveles).
Es una forma de codificar un documento que, junto con el texto, incorpora etiquetas o marcas que contienen información adicional acerca de la estructura del texto o su presentación.
Se suele diferenciar entre tres clases de lenguajes de marcado, aunque en la práctica pueden combinarse varias clases en un mismo documento.
Es aquel que indica el formato del texto.
Está enfocado hacia la presentación del texto; sin embargo, también es visible para el usuario que edita el texto.
Standard Generalized Markup Language (SGML) fue definido por la norma ISO 8879 en 1986 y desde entonces ha sido considerado el lenguaje estándar para mantener los depósitos centrales de la estructura documental. Se trata de un lenguaje para marcar y describir documentos con independencia total del hardware y software utilizados.
Los lenguajes de marcado son la herramienta fundamental en el diseño de la web semántica, aquella que no solo permite acceder a la información, sino que además define su significado, de forma que sea más fácil su procesamiento automático y se pueda reutilizar para distintas aplicaciones.
Primero, hay que identificar qué es la interfaz de un programa.
Es un conjunto de elementos *hardware* y *software* de una computadora que presentan información al usuario y le permiten interactuar con la información.
El lenguaje llamado HTML indica al navegador dónde colocar cada texto, cada imagen o cada video y la forma que tendrán estos al ser colocados en la página.
Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página web.
Las sentencias escritas en Javascript se encapsulan entre las etiquetas <script>
y </script>
. Por ejemplo, si en el código de una página Web incluimos la sentencia…
Es otra manera de incluir código a ejecutar en los clientes que visualizan una página web. Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página.
Los *applets* de Java están programados en Java y precompilados, es por ello que la manera de trabajar de estos varía un poco con respecto a los lenguajes de *script* como Javascript.
Es el sistema más antiguo que existe para la programación de las páginas dinámicas de servidor.
Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el código de los *scripts* en Perl no se compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito.
La tecnología ASP (Active Server Pages) está estrechamente relacionada con el modelo tecnológico de Microsoft. Intenta ser solución para un modelo de programación rápida ya que programar en ASP es como programar en Visual Basic, por supuesto con muchas limitaciones.
PHP es un lenguaje interpretado de propósito general ampliamente usado y que está diseñado especialmente para desarrollo web y puede ser incrustado dentro de código HTML.
JSP es un acrónimo de Java Server Pages o Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con programación en Java.
Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual.
El servidor de archivos es uno de los servidores más importantes en un sistema distribuido. Soporta el procesamiento realizado por diversas computadoras, facilitando la compartición de archivos y base de datos y provee una base para la construcción de otros tipos de servidores requeridos por los usuarios tales como servidores de impresión o servidores de nombres.
El rendimiento de un sistema distribuido depende de la eficiencia del servidor de archivos, cuya implementación juega un papel muy importante.
La técnica más eficiente para construir servidores de archivos es dividirlo en varias partes, cada una de las cuales es implementada de manera separada como un proceso medio.
Un componente es una unidad de software cuya finalidad y dependencia están completamente definidas por un conjunto de interfaces públicas.
Proporciona a los programadores y administradores control y flexibilidad sobre la manera en que se ejecutarán las aplicaciones.
Es posible optimizar el rendimiento del sistema para diferentes clases de usuarios, aunque los usos de canales cruzados observarán alguna degradación.