by Johan Santiago Romero Duarte 4 years ago
224
More like this
*Establece las transformaciones a realizar en el documento. *Se definen utilizando el elemento xsl:template. *A través del atributo match, se establece el patrón. *El patrón indica la rama del árbol XML sobre la que se aplica la plantilla *El atributo name que dará nombre a la plantilla para poder ser invocada desde la instrucción *Para seleccionar el árbol del documento completo, se utiliza el patrón raíz (/): instrucciones de plantilla *Las instrucciones de plantilla indican la transformación a realizar sobre el patrón. Este ejemplo, transforma el elemento nombre en su valor con formato título:
*Una hoja de estilos XSL es un documento XML con extensión .xsl, en el que se define las transformaciones a realizar en el documento, mediante una serie de elementos y atributos. *La hoja de estilo incluye el elemento stylesheet, que declara el espacio de nombres para poder utilizar los elementos y atributos XSL: *Para utilizar una hoja de estilos XSL en un documento, se utiliza la instrucción de procesamiento xml-stylesheet:
*para definir la estructura de un documento se utiliza otro documento. *Ambas sirven para lo mismo. * estructural. *DTD en XML. *Schema su propia especificación
SCHEMAS
*Son documentos XML. *Soportan tipos de datos. *Soportan namespaces. *Permite definir nuevos tipos de datos y restricciones sobre valores de un elemento. *Ofrecen mayor precisión que los DTD.
DTD
*La sintaxis DTD es distinta de XML. *Pobre soporte de namespaces. *No permite crear nuevos tipos. *No permite establecer restricciones complejas. *son parte de XML
Etiqueta Elemento Atributo Comentario
es un estándar para definir lenguajes de marcado generalizados para documentos.
El grado de acoplamiento determinará el soporte necesario para implementar el modelo de comunicación, pero éste puede estar basado tanto en memoria compartida como en paso de mensajes.
Comunicación basada en mensajes
Fiabilidad
En lo referente a la fiabilidad de la comunicación, el mecanismo de paso de mensajes depende del soporte que le proporcione la red.
En cambio, un mecanismo no fiable permitirá una comunicación menos costosa, pero delega en la aplicación la responsabilidad de verificar la corrección de la comunicación.
Si se implementa sobre un protocolo de transporte seguro, la comunicación se considera fiable, en el sentido de que el emisor puede confiar en que el receptor acabe por recibir el mensaje correctamente o sea informado de lo contrario.
Modelo de Sincronización
Por una parte, si el canal de comunicación está ocupado, la primitiva de enviar puede bloquear al proceso hasta que se libere el canal (lo que depende también de si permite buffering o no) y pueda depositar el mensaje (modo bloqueante o síncrono).
Hemos acotado el concepto de sistema distribuido como aplicable a aquellos sistemas compuestos por nodos con espacios propios de memoria y E/S. Cada nodo posee su propio sistema operativo y los servicios de red básicos. Esta descripción concuerda con la de las redes de computadores, pero también puede incluir los multicomputadores.
Infraestructura de Red
Como se ha comentado más arriba, hoy en día los sistemas distribuidos se basan en la existencia de una red de comunicaciones que conecta dispositivos de cómputo estándares.
Elementos de Computo
La definición de sistema distribuido que hemos proporcionado antes (conjunto de computadores interconectados que comparten un estado) es lo suficientemente ambigua como para plantear discusiones, por ejemplo (1) qué se entiende por computador, y (2) cómo se definen los estados.
Entornos de las aplicaciones distribuidas
Puede decirse que, en la actualidad, Internet proporciona el entorno más general, pero hay aplicaciones que tienen sentido en entornos más específicos.
Entornos Ubicuos
En un sistema ubicuo las aplicaciones no están sujetas a ámbitos administrativos o de red concretos, como las intranets, pero tampoco operan de manera ilimitada en el ámbito de Internet.
Intranets
Se utilizan los mismos protocolos y los mismos medios de acceso que en Internet, si bien el acceso se circunscribe a un dominio administrativo concreto o un conjunto de ellos (por ejemplo, en una empresa).
Internet
Se basa en la existencia de una fuerte estructura de comunicaciones, que incluye una infraestructura de enlaces troncales de gran capacidad (backbones) donde se conectan las subredes y los ISP (proveedores de servicios de Internet), que proporcionan el acceso a esta infraestructura a los usuarios particulares.
Objetivos de las aplicaciones distribuidas
Ubicuidad
A veces los recursos están inherentemente distribuidos. El usuario se mueve en un entorno con recursos (ubicuos) no previstos apriori, y la aplicación trata de ofrecer un comportamiento inteligente en función de las necesidades del usuario y la naturaleza y disponibilidad de los recursos.
Movilidad
Cada vez más se trabaja sobre espacios virtuales de información en vez de sobre dispositivos físicos concretos, que se convierten en meras caches del espacio de información del usuario. Así, el usuario se mueve desde un dispositivo a otro y accede al espacio de su información de forma actualizada y consistente.
Alta disponibilidad
Hay aplicaciones donde la distribución se realiza para acercar la información al usuario y disminuir los tiempos de respuesta.
Tolerancia a fallos
En estos sistemas es crítico conseguir una actualización consistente de las réplicas. Hoy en día, fundamentalmente por motivos de rendimiento, los sistemas comerciales utilizan técnicas muy conservadoras y poco transparentes, pero, como veremos, las bases teóricas para una gestión transparente de la replicación están bien establecidas.
Alto Rendimiento
Una aplicación paralela puede ser también distribuida. Por ejemplo, puede utilizarse una red local para distribuir los procesos de la tarea entre los nodos de la red con el fin de aprovechar los recursos de cómputo disponibles (generalmente PCs de bajo coste) para reducir el tiempo de finalización.
La distribución de recursos introduce importantes beneficios. Por una parte, contribuye al incremento del rendimiento a través del paralelismo y promoviendo el acceso a copias locales del recurso (disminuyendo los costes de comunicación).
La fiabilidad de un sistema puede definirse como su capacidad para realizar correctamente y en todo momento las funciones para las que se ha diseñado
Tolerancia a Fallos
la tolerancia a fallos implica (1) detectar el fallo, y (2) continuar el servicio, todo ello de forma transparente para la aplicación (transparencia de fallos).
Disponibilidad
Es la fracción de tiempo que el sistema está operativo. El principal parámetro para medir la disponibilidad es el tiempo medio entre fallos (MTBF), pero hay que considerar también el tiempo de reparación. La
Con un diseño basado en la replicación de componentes que permita al sistema seguir operando aún cuando alguno(s) de ellos falle(n).
Utilizando componentes de mayor calidad, y/o
Una de las características de los sistemas distribuidos es su modularidad, lo que le permite una gran flexibilidad y posibilita su escalabilidad, definida como la capacidad del sistema para crecer sin aumentar su complejidad ni disminuir su rendimiento.
Complejidad/Rendimiento
El crecimiento de un sistema distribuido puede introducir cuellos de botella y latencias que degradan su rendimiento.
Espacio de Nombres
Los espacios de nombres, al igual que en los sistemas centralizados, pueden identificar objetos de diferente naturaleza, como ficheros, procesos, variables, o incluso direcciones de memoria (en los sistemas de memoria compartida distribuida, DSM).
Un sistema distribuido que pretenda ofrecer una visión de sistema único deberá cumplir las propiedades que se presentan a continuación.
De Rendimiento
Inevitablemente, implementar las propiedades de los sistemas distribuidos será a costa de una pérdida de rendimiento. Por lo tanto, generalmente es necesario buscar soluciones de compromiso.
De Compartición
El que un recurso compartido intente ser accedido simultáneamente desde varias aplicaciones no tiene efectos sobre la ejecución de la aplicación.
De Paralelismo
Una aplicación puede ejecutarse en paralelo, sin que la aplicación tenga que especificarlo, y sin consecuencias sobre la ejecución, salvo por cuestiones de rendimiento.
De Replicación
Ni los usuarios ni las aplicaciones conocen cuántas unidades hay de cada recurso, ni si se añaden o eliminan copias del recurso.
De Ubicación Física
Ni los usuarios ni las aplicaciones conocen en qué nodo reside el recurso accedido, o si éste es local o remoto. Esto implica también que los recursos pueden migrar entre nodos sin que las aplicaciones se vean afectadas.
De Identificación
Los espacios de nombres de los recursos son independientes de la topología de la red y de la propia distribución de los recursos.
Los recursos de diferentes máquinas en red se integran de forma que desaparece la dualidad local/remoto. La diferencia fundamental con los sistemas en red es que la ubicación del recurso es transparente a las aplicaciones y usuarios, por lo que, desde este punto de vista, no hay diferencia con un sistema de tiempo compartido.
El concepto de computador central desaparece; ahora hay que hablar de un conjunto de computadores que se conectan entre sí utilizando una infraestructura de red.
Un sistema personal posee sus propios recursos locales. Inicialmente, éstos eran los únicos recursos accesibles, pero hoy en día la situación ha cambiado.
Se diferencian del modelo anterior en que los terminales —más recientemente, sistemas personales— son remotos y acceden a un sistema central utilizando una infraestructura de red (por ejemplo la telefónica) y un protocolo de comunicaciones normalmente de tipo propietario.
Fue el siguiente paso, a mediados de los 60. El objetivo es incrementar la eficiencia en el uso de la CPU, un recurso entonces caro y escaso, disminuyendo los tiempos de respuesta de los usuarios, que operan interactivamente.
Son los primeros sistemas operativos, que permitían procesar en diferido y secuencialmente datos suministrados en paquetes de tarjetas perforadas.