SISTEMA Y METODO PARA DETERMINAR EL RETROCESO AL OBJETIVO Y LA PRIORIDAD DEL OBJETIVO PARA UN SISTEMA DE ARCHIVO DISTRIBUIDO
REFERENCIA CRUZADA CON SOLICITUDES
RELACIONADAS La presente invención reclama la prioridad sobre la solicitud de patente provisional Norteamericana Serie No. 60/615,411 presentada en Octubre 1, 2004 e incorporada en su totalidad a la presente descripción como referencia. Campo de la Invención La presente invención se refiere generalmente a sistemas de cómputo y más particularmente a un sistema y método mejorado para determinar el retroceso al objetivo y la prioridad del objetivo para un sistema de archivo distribuido. Antecedentes de la Invención Un Sistema de Archivo Distribuido (Dfs), es un componente del servidor de red que localiza y administra los datos en una red. El Dfs puede ser utilizado para unir archivos en diferentes computadoras en un solo espacio de nombre, por lo tanto, permitiendo que un usuario construya una sola visión jerárquica de servidores múltiples de archivo y comparta servidores de archivo en una red. En el contexto de una computadora del servidor o un conjunto de computadoras de servidores, el Dfs, puede ser enlazado a un sistema de archivo para discos duros en un sistema de cómputo personal. Por ejemplo, similar al rol de los sistemas de archivo para proporcionar un acceso de nombres uniformes a las colecciones de sectores en los discos, el Dfs puede proporcionar una convención de denominación uniforme y mapear colecciones de servidores, distribuciones y archivos. Por lo tanto, el Dfs puede organizar los servidores de archivos y sus distribuciones dentro de una jerarquía lógica, la cual hace posible que una empresa grande administre y utilice sus recursos de información de una manera más eficiente. Además, el Dfs no está limitado a un solo protocolo de archivo, y puede soportar el mapeo de servidores, distribuciones y archivos, independientemente del cliente del archivo que esté siendo utilizado, siempre que el cliente soporte el servidor y las distribuciones de origen. El Dfs también puede proporcionar la transparencia del nombre para volúmenes y distribuciones disparejos del servidor. A través del Dfs, un administrador puede construir un solo sistema de archivo jerárquico cuyo contenido es distribuido en una red de área amplia (WAN)de una organización. En el pasado, con la Convención de Denominación Universal (UNC), al usuario o aplicación se le requería especificar el servidor y la acción física con el objeto de tener acceso a la información del archivo. Por ejemplo, un usuario o aplicación tenía que especificar \\Server\Share\Path\Filename. Aunque las UNCs pueden ser utilizadas directamente, una UNC generalmente es mapeada a una unidad de letras, tales como x:, la cual, a la vez, puede ser mapeada para \\Server\Share, A un usuario se le requería navegar desde este punto más allá de la conducción nuevamente dirigida a los datos a la que él o ella deseaban tener acceso. Por ejemplo, se requería que el usuario copiara x: \Path\More_Path\\Filename para navegar a un archivo particular. Conforme las redes crecen en tamaño y conforme las empresas comienzan a utilizar el almacenamiento existente -- tanto interna como externamente -- para propósitos, tales como las intranets, el mapeo de una sola letra de unidad a distribuciones individuales se escala de una manera más bien deficiente. Además, aunque los usuarios pueden utilizar directamente los nombres UNC, estos usuarios pueden ser abrumados por el número de usuarios en donde pueden estar almacenados los datos. El Dfs soluciona estos problemas permitiendo el enlace de los servidores y distribuciones en un espacio de nombre en el que se puede navegar de una manera más fácil y simple. Un volumen de Dfs permite que las distribuciones sean conectadas de manera jerárquica a otras distribuciones. Como el Dfs mapea el almacenamiento físico en una representación lógica, el beneficio de la red es que la localización física de cualquier número de archivos se vuelve transparente para los usuarios y las aplicaciones. Además, conforme crece el tamaño de la red al nivel de una red global, varias copias del mismo archivo o archivos pueden estar localizadas en varias localizaciones diferentes dentro de la red para ayudar a reducir los costos (en términos de tiempo de la red, carga de la red, etc.) asociados con la recuperación de un archivo de la red. Por ejemplo, los usuarios de una red grande localizada cerca de una primera ubicación de un servidor generalmente utilizarán una copia de un archivo de un servidor que sea la más cercana a ellos (por ejemplo, los usuarios de Seattle pueden estar más cerca de un servidor nombrado Redmond que se encuentra localizado cerca de Seattle). De un modo similar, los usuarios de una red grande localizados cerca de una segunda ubicación del servidor, generalmente utilizarán una copia de un archivo en un servidor diferente y cercano a ellos (por ejemplo, los usuarios de Tailandia pueden estar más cercanos a un servidor denominado Bangkok localizado en Bangkok). Por lo tanto, el costo-sitio (es decir, un número de escalación el cual es una indicación pseudoarbitraria de un número de parámetros de red, incluyendo la distancia entre el cliente y el servidor, los grados de separación del servidor y otros parámetros físicos de la red) de la recuperación de un archivo pueden ser minimizados teniendo acceso al servidor más cercano que tiene el archivo o archivos requeridos. Cuando un usuario desea recuperar un archivo de un Dfs, la computadora cliente desde la cual el usuario está solicitando un archivo determina como ir a recuperar el archivo solicitado. Una computadora del cliente puede emitir una solicitud de referencia para obtener una o más ubicaciones para el archivo o archivos requeridos. La referencia puede ser una trayectoria relativa entre la computadora cliente que lo solicita y una computadora del servidor, en la cual pueden encontrarse el archivo o archivos. Una computadora cliente puede solicitar el archivo o archivos conocidos que no se encuentran disponibles localmente y se puede tomar una determinación con respecto a como muchas ubicaciones diferentes pueden proporcionar una copia del archivo requerido. Generalmente, pueden haber cientos o hasta miles de objetivos (es decir, la trayectoria relativa a los archivos) indicando ubicaciones que pueden proporcionar el archivo requerido. Como tal, una respuesta de referencia, la cual es regresada a las computadoras en respuesta a una solicitud de referencia, generalmente incluye una lista de objetivos que corresponden a los servidores y/o distribuciones que tienen el archivo requerido. Sin embargo, en el pasado las respuestas de referencia regresadas a la computadora cliente podían tener los objetivos identificados en una lista en un orden aleatorio o, en algunos casos por costo-sitio. Cada objetivo de la respuesta de referencia no tiene necesariamente relación alguna como un objetivo que la precedió inmediatamente o la siguió inmediatamente. Como resultado, la computadora cliente puede haber iniciado simplemente en la parte superior de la lista ordenada de manera aleatoria de los objetivos e intentar establecer una conexión con cada objetivo sucesivo de la lista, hasta que uno responde con la conectividad. Sin embargo, un problema con esta aleatoriedad, es el hecho de que el primer objetivo disponible puede, en efecto, estar literalmente localizado en el otro lado del mundo. Por lo tanto, el costo-sitio para comunicarse con el primer objetivo disponible puede ser más bien alto y no deseable en el largo plazo. Sin embargo, conservar la continuidad de una conexión con un objetivo es algo importante. Esto es conocido como "pegado" o "capacidad de pegado". Por lo tanto, una vez que el primer objetivo disponible es localizado, el cual puede llenar la solicitud de archivo de la computadora cliente, generalmente, todas las referencias y solicitudes futuras son también enrutadas al objetivo, a menos que el usuario de la computadora cliente solicite específicamente una nueva referencia. Por lo tanto, la conexión posiblemente de costo-sitio alto al primer objetivo disponible puede permanecer indefinidamente ocasionando más tráfico de la red y un costo de la red general. El problema de mantener referencias ineficientes entre la computadora cliente y una computadora del servidor para conservar la continuidad puede dar como resultado sesiones de comunicación de costo-sitio alto. Lo que se necesita es un medio para conservar la continuidad de las conexiones de referencia mientras que se reduce el costo de un sitio para la conexión de referencia. Sumario de la Invención Brevemente, la presente invención proporciona un sistema y método para organizar y clasificar los objetivos recibidos en una respuesta de referencia y para determinar una retroceso al objetivo y una prioridad del objetivo para la nueva falla del objeto en un sistema de archivo distribuido. En una modalidad, un método de clasificación puede incluir solicitar, de una computadora cliente, una pluralidad de ubicaciones (es decir objetivos) de archivos, directorios, distribuciones, etc., localizados en una o más computadoras de una red de computadoras. Entonces, una computadora, tal como un servidor Dfs puede regresar una lista de objetivos a la computadora cliente en donde la lista de objetivos incluye una pluralidad de referencias que corresponden cada una al archivo solicitado o ubicación de directorio en la red de computadoras. Además, la lista de objetivos puede ser clasificada basada en una evaluación de un costo-sitio asociado con cada objetivo respectivo. De manera provechosa, los objetivos de costo más bajo identificados por la computadora del servidor pueden ser clasificados en la parte superior de la respuesta de referencia. La computadora cliente puede simplemente analizar de manera lógica a través de la respuesta de referencia, iniciando con los objetivos de costo más bajo para la conectividad intentada antes de hacer un intento para establecer la conectividad con objetivos de costo más alto. Dicho sistema de clasificación también puede ser implementado incluyendo el uso de una clasificación de prioridad de objetivos. Los objetivos de prioridad más alta también pueden ser clasificados en la parte superior de la respuesta de referencia. Además, la respuesta de referencia puede ser clasificada adicionalmente para que incluya provisiones para ambos el costo-sitio y la prioridad del objetivo. Por lo tanto, los grupos de objetivos que tienen un costo-sitio asociado equivalente pueden ser clasificados además, dentro del grupo de acuerdo con cada prioridad del objetivo asociada respectiva para cada objetivo. En otra modalidad de la presente invención, la política de retroceso al objetivo y prioridad del objetivo puede ser implementada, de modo que puede utilizar una lista de objetivos clasificados proporcionados en una respuesta de referencia. Por consiguiente, el sistema de cómputo puede seleccionar y designar un objetivo como el conjunto de objetivos de una lista de objetivos clasificados de acuerdo con el costo-sitio para recuperar por lo menos un archivo o directorio requerido en una computadora cliente. Entonces, el sistema de cómputo puede determinar que el conjunto objetivo está asociado con el costo-sitio más bajo, cuando es comparado con todos los objetivos disponibles en la lista clasificada. De no ser así, el sistema puede retroceder de nuevo a un objetivo diferente que está asociado con un costo-sitio más bajo que el conjunto del objetivo y designar el nuevo objetivo como el conjunto del objetivo. Estas ventajas se podrán apreciar a partir de la siguiente descripción detallada, cuando es tomada en conjunto con los dibujos, en los cuales: Breve Descripción de los Dibujos La figura 1 es un diagrama de bloques que representa generalmente el sistema de cómputo dentro del cual puede ser incorporada la presente invención; La figura 2 es un diagrama de bloques que representa generalmente una arquitectura de ejemplo de un entorno de cómputo distribuido para impiementar la retroceso al objetivo y la prioridad del objetivo en una modalidad, de acuerdo con un aspecto de la presente invención; La figura 3 es una gráfica de flujo que representa generalmente los pasos tomados para solicitar y recuperar un archivo utilizando un sistema de archivo distribuido, de acuerdo con un aspecto de la presente invención; La figura 4 es una gráfica de flujo que representa generalmente los pasos tomados en una modalidad de ensamble de una respuesta de referencia basada en el costo--sitio de acuerdo con un aspecto de la presente invención; La figura 5 es una gráfica de flujo que representa generalmente los pasos tomados en una modalidad para ensamblar una respuesta de referencia basada en la prioridad del objetivo, de acuerdo con un aspecto de la presente invención; La figura 6 es una gráfica de flujo que representa generalmente los pasos tomados en una modalidad para el retroceso a un objetivo de costo-sitio más bajo que puede ser utilizado por una respuesta de referencia clasificada, de acuerdo con un aspecto de la presente invención; La figura 7 es una gráfica de flujo que representa generalmente los pasos tomados en una modalidad para el retroceso a un objetivo de prioridad más alta, que puede ser utilizado con una respuesta de referencia clasificada, de acuerdo con un aspecto de la presente invención; y La figura 8 es una gráfica de flujo que representa generalmente los pasos tomados en una modalidad para clasificar una respuesta de referencia, de acuerdo con un aspecto de la presente invención. Descripción Detallada de la Invención ENTORNO OPERATIVO DE EJEMPLO La figura 1 ¡lustra un ejemplo de un entorno de sistema de cómputo adecuado 100 en el cual puede ser implementada la presente invención. El entorno del sistema de cómputo 100 solamente es un ejemplo de un entorno de cómputo adecuado y no pretende sugerir limitación alguna con respecto al alcance de uso o funcionalidad de la presente invención. Ni debe de ser interpretado el entorno de cómputo 100 como que tiene dependencia o requerimiento alguno relacionado con cualquiera o una combinación de los componentes ilustrados en el entorno operativo de ejemplo 100. La presente invención se puede operar con numerosos otros entornos de sistemas de cómputo o configuraciones de uso general o para usos especiales. Los ejemplos de los sistemas de cómputo, entornos y/o configuraciones bien conocidos que pueden ser adecuados para utilizarlos con la presente invención, incluyen pero no están limitados a: computadoras personales, computadoras de servidor, aparatos portátiles o manuales, aparatos de tableta, servidores de automatización de bibliotecas para computadoras, sistemas de multiprocesador, sistemas basados en microprocesadores, cajas de descodificadores, productos electrónicos programables por el consumidor, PCs de red, minicomputadoras, computadoras de sistemas, entornos de cómputo distribuidos que incluyen cualquiera de los sistemas o aparatos anteriores y similares. La presente invención puede ser descrita en el contexto general de las instrucciones ejecutables por computadora, tales como módulos de programa, que están siendo ejecutados por una computadora. De un modo general, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos y así sucesivamente, los cuales realizan tareas particulares o implementan tipos de datos abstractos particulares. La presente invención puede ser también practicada en entornos de cómputo distribuidos en donde las tareas son realizadas por aparatos de procesamiento remotos que están enlazados a través de una red de comunicaciones en un entorno de cómputo distribuido, los módulos del programa pueden estar localizados en los medios de almacenamiento de computadoras locales y/o remotos, incluyendo los dispositivos de almacenamiento de memoria. Haciendo referencia a la figura 1, un sistema de ejemplo para implementar la presente invención incluye un aparato de cómputo de uso general en la forma de una computadora 110. Los componentes de la computadora 110 pueden incluir, pero no están limitados a, una unidad de procesamiento 120, una memoria del sistema 130, un bus del sistema 121 que conecta varios componentes del sistema incluyendo la memoria del sistema a la memoria de la unidad de procesamiento 120. El bus del sistema 121 puede ser cualquiera de varios tipos de estructuras del bus incluyendo un bus de memoria o controlador de memoria, un bus periférico y un bus local utilizando cualquiera de una variedad de arquitecturas del bus. A modo de ejemplo y no de limitación, dichas arquitecturas incluyen el bus de Arquitectura Estándar de la Industria (ISA), el bus de Arquitectura de Micro Canal (MCA), el bus ISA Mejorado (EISA), el bus local de la Asociación de Estándares de Componentes Electrónicos de Video (VESA), el bus de Interconexión de Componentes Periféricos (PCI) también conocido como bus Mezzanine. La computadora 110 generalmente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualquier medio disponible al que se pueda tener acceso por medio de la computadora 110 e incluye tanto medios volátiles como no volátiles y medios removibles y no removibles. A modo de ejemplo y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento de computadoras y medios de comunicación. Los medios de almacenamiento de computadora incluyen medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para el almacenamiento de información, tal como las instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento de computadora incluyen pero no están limitados a, memorias RAM, ROM, EEPROM, memoria instantánea u otra tecnología de memoria, CD-ROM, discos digitales versátiles (DVD) u otros almacenamientos de disco óptico, cassettes magnéticos, cintas magnéticas, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio el cual puede ser utilizado para almacenar la información deseada y al cual se puede tener acceso por medio de la computadora 110. Los medios de comunicación generalmente incorporan las instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte e incluyen cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características ajustadas o cambiadas de un modo tal como para codificar la información de la señal. A modo de ejemplo y no de limitación, los medios de comunicación incluyen medios cableados, tales como una red cableada o una conexión cambiada directa y medios inalámbricos, tales como medios acústicos, RF, infrarrojos y otros medios inalámbricos. Las combinaciones de cualquiera de los anteriores también deben de estar incluidas dentro del alcance de los medios legibles por computadora. La memoria del sistema 130 incluye un medio de almacenamiento de computadora en la forma de una memoria volátil y/o no volátil, tal como una memoria solo de lectura (ROM) 131 y una memoria de acceso aleatorio (RAM) 132. Un sistema básico de entrada/salida 133 (BIOS), que contiene las rutinas básicas que ayudan para transferir la información entre los elementos dentro de la computadora 110, tales como durante el arranque y generalmente es almacenado en la memoria ROM 131. La memoria RAM 132 generalmente contiene datos y/o módulos de programa a los que se puede acceder inmediatamente y/o que están siendo operados actualmente por la unidad de procesamiento 120. A modo de ejemplo y no de limitación, la figura 1 ilustra el sistema operativo 134, los programas de aplicación 135, otros módulos de programa 136 y los datos del programa 137. La computadora 110 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles. A modo de ejemplo solamente, la figura 1 ¡lustra una unidad de disco duro 141 que lee o escribe en los medios magnéticos no removibles, no volátiles, una unidad de disco magnético 151 que lee y escribe en un disco magnético removible, no volátil 152, y una unidad de disco óptico 155 que lee o escribe en un disco óptico removible, no volátil 156, tal como un CD ROM u otros medios ópticos. Otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles que pueden ser utilizados en el entorno operativo de ejemplo incluyen pero no están limitados a, cassettes de cinta magnética, tarjetas de memoria instantánea, discos digitales versátiles, cintas digitales de video, memorias RAM de estado sólido, memorias ROM de estado sólido y similares. La unidad de disco duro 141 es conectada generalmente al bus del sistema 121 a través de una interfase de memoria no removible, tal como la interfase 140 y la unidad de disco magnético 151 y la unidad de disco óptico 155 son conectadas generalmente al bus del sistema 121 por una interfase de memoria removible, tal como la interfase 150. Las unidades y sus medios de almacenamiento de computadora asociados, explicados anteriormente e ¡lustrados en la figura 1, proporcionan el almacenamiento de las instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos para la computadora 110. En la figura 1, por ejemplo, la unidad de disco duro 141 está ilustrada como que almacena el sistema operativo 144, los programas de aplicación 145, otros módulos de programa 146 y los datos de programa 147. Observar que estos componentes pueden ser, ya sea el mismo o diferentes al sistema operativo 134, los programas de aplicación 135, otros módulos de programa 136 y los datos del programa 137. El sistema operativo 144, los programas de aplicación 145, otros módulos de programa 146, y los datos de programa 147 tienen en la presente descripción números diferentes para ilustrar que, como mínimo son copias diferentes. Un usuario puede ingresar comandos e información en la computadora 110 a través de los dispositivos de entrada, tales como una tableta, o un digitalizador electrónico 164, un micrófono 163, un teclado 162 y un dispositivo de señalamiento 161, al que generalmente nos referimos como un ratón, una bola de rastreo o almohadilla de contacto. Otros dispositivos de entrada no mostrados en la figura 1 pueden incluir una palanca, almohadilla de juegos, platos de satélite, un escáner u otros aparatos que incluyen un dispositivo que contiene un sensor biométrico, sensores ambientales, sensores de posición u otros tipos de sensores. Estos y otros dispositivos de entrada con frecuencia son conectados a la unidad de procesamiento 120 a través de una interfase de entrada del usuario 160 que está conectada al bus del sistema, pero también pueden ser conectados por otra interfase y estructuras del bus, tales como un puerto paralelo, un puerto de juegos o un bus de serie universal (USB). Un monitor 191 u otro tipo de dispositivo de pantalla también está conectado al bus del sistema 121 por medio de una interfase, tal como una interfase de video 190. El monitor 191 también puede estar integrado con un panel de pantalla de contacto o similar. Observar que el monitor y/o el panel de pantalla de contacto pueden estar conectados físicamente a un alojamiento en el cual el aparato de cómputo 110 esté incorporado, tal como una computadora personal de tipo de tableta. Además, las computadoras tales como el aparato de cómputo 110 también pueden incluir otros dispositivos de salida periféricos, tales como bocinas 195 e impresoras 196, los cuales pueden ser conectados a través de una interfase periférica de salida 194 o similar. La computadora 110 puede operar en un entorno de red utilizando conexiones lógicas a una o más computadoras remotas, tales como la computadora remota 180. La computadora remota 180 puede ser una computadora personal, un servidor, un enrutador, una PC de red, un dispositivo semejante u otro nodo de red común, y generalmente incluye muchos o todos los elementos descritos anteriormente en relación con la computadora 110, aunque solamente se ha ilustrado en la figura 1 el dispositivo de almacenamiento de memoria 181. Las conexiones lógicas ilustradas en la figura 1 incluyen una red de área local (LAN) 171 y una red de área amplia (WAN) 173, pero también pueden incluir otras redes. Dichos entornos de red son un lugar común en las oficinas, redes de cómputo en las empresas, intranets y la Internet. Cuando es utilizada en un entorno de red LAN, la computadora 110 es conectada a la red LAN 171 a través de una interfase de red o adaptador 170. Cuando es utilizada en un entorno de red WAN, la computadora 110 generalmente incluye un módem 172 u otros medios para establecer comunicaciones por la red WAN 173, tales como la Internet. El módem 172, el cual puede ser interno o externo, puede ser conectado al bus del sistema 121 por medio de una interfase de entrada del usuario 160 u otro mecanismo apropiado. En un entorno de red, los módulos de programa ilustrados en relación con la computadora 110, o porciones de los mismos pueden ser almacenados en un dispositivo de almacenamiento de memoria remoto. A modo de ejemplo y no de limitación, la figura 1 ¡lustra programas de aplicación remota 185 que residen en un dispositivo de memoria 181. Se deberá apreciar que las conexiones de red mostradas son de ejemplo y que se pueden utilizar otros medios para establecer el enlace de comunicaciones entre las computadoras. CLASIFICACIÓN DE RESPUESTA DE REFERENCIA La presente invención generalmente se relaciona con un sistema y método para determinar el retroceso al objetivo y la prioridad del objetivo para un sistema de archivo distribuido. El sistema y método puede proporcionar de manera provechosa un método de clasificación para una computadora cliente que solicita una lista de computadoras que pueden tener un archivo o directorio deseado en una red de computadoras. En respuesta a la solicitud, se puede proporcionar una lista de objetivos a una computadora cliente la cual puede ser clasificada basada en una evaluación de ciertos parámetros, incluyendo un costo-sitio asociado con cada objetivo respectivo. Como se podrá apreciar, los objetivos de costo más bajo identificados pueden ser clasificados en la parte superior de la respuesta de referencia, de modo que la computadora cliente pueda analizar de manera simple y lógicamente a través de la respuesta de referencia que inicia con los objetivos de costo más bajo para intentar la conectividad antes de hacer un intento de establecer la conectividad con los objetivos de costo más alto. Dicho sistema de clasificación también puede ser implementado utilizando una clasificación de prioridades de los objetivos en donde, en una modalidad, los objetivos de prioridad más alta también pueden ser clasificados en la parte superior de la respuesta de referencia. Además, la respuesta de referencia puede ser clasificada adicionalmente para que incluya provisiones, tanto para el costo-sitio, como la prioridad del objetivo. Por lo tanto, los grupos de objetivos que tienen un costo-sitio asociado equivalente pueden ser clasificados adicionalmente dentro del grupo, de acuerdo con cada prioridad del objetivo asociada con cada objetivo respectivo. Como se podrá entender, los diferentes diagramas de bloques, gráficas de flujo y escenarios aquí descritos, son solamente de ejemplo, y pueden existir muchos otros escenarios a los cuales puede ser aplicada la presente invención. Haciendo referencia a la figura 2 de los dibujos, se muestra un diagrama de bloques que representa generalmente una arquitectura de ejemplo de un entorno de cómputo distribuido para implementar el retroceso al objetivo y la prioridad del objetivo, de acuerdo con un aspecto de la presente invención. Generalmente, una computadora cliente 104, la cual puede ser similar a la computadora personal 110 de la figura 1, puede ser conectada de manera operable a una primera red 250 la cual puede ser una porción de una intranet de empresa o una porción de la Internet. La computadora cliente 205 puede ser parte de un Dfs o puede incluir un Dfs cliente 270 el cual puede proporcionar un acceso integral a los archivos localizados en cualquier parte a través del Dfs. La red también puede ser conectada de manera operable a otras computadoras, tales como la computadora del servidor m1 210, el servidor de directorio activo 220, un servidor raíz de Dfs 230. El servidor de directorio activo 220 puede ser utilizado para almacenar información del Dfs incluyendo la información de referencia de enlace Dfs. Sin embargo, en varias modalidades, esta información puede ser almacenada en cualquier medio legible por computadora al que se pueda tener acceso por medio de la red 250. A la vez, el servidor Dfs 230 también puede ser conectado de manera operable con otra red 280 la cual también puede ser otra intranet de empresa u otra porción de la Internet. La red 280 puede ser conectada de manera operable a la red 250 a través de un enrutador 260 como es común en cualquier red de cómputo. El servidor raíz Dfs 230 puede ser conectado de manera operable a una distribución raíz Dfs 240 que puede incluir una o más referencias de enlace. Por ejemplo, el enlace Wr1\s1\l1 puede proporcionar una referencia para un archivo directorio localizado en Wm1\s1. De un modo similar el enlace Wr1\s1\l2 puede proporcionar una referencia para un archivo directorio localizado en Wm2\s1. Además, un enlace puede proporcionar una referencia a una pluralidad de computadoras, servidores, distribuciones y/o directorios. Por lo tanto, muchas computadoras, incluyendo la computadora del servidor m2 215 pueden ser conectadas de manera comunicativa a la computadora cliente 205 a través de una miríada inmensa de redes y computadoras. La computadora cliente 205 puede solicitar y recuperar archivos y/o directorios de virtualmente cualquier ubicación del servidor en la red 250 o en las redes 250 y 280. Sin embargo, puede no ser factible que la computadora cliente 205 mantenga información acerca de todas las computadoras que pueden ser conectadas a una red 250. En general, una solicitud puede ser para un archivo o un directorio. Por lo tanto, aunque cualquier archivo (y/o directorios o similares como lo implica la solicitud del archivo y la recuperación a través del resto de esta descripción) puede ser recuperado de cualquier computadora de la red 250, a la computadora cliente 205 generalmente se le proprociona la ubicación del archivo solicitado de otro recurso. Por lo tanto, se puede operar la computadora del servidor Dfs 230 para mantener la información acerca de muchas computadoras conectadas a las redes 250 y 280, de modo que cuando la computadora cliente 205 solicita un archivo que no está disponible localmente, la computadora del servidor Dfs 230 puede proporcionar una lista de objetivos, en donde cada objetivo corresponde a una trayectoria hacia el archivo solicitado. Generalmente, la computadora del servidor Dfs 230 puede regresar muchos cientos y hasta miles de objetivos en respuesta a una solicitud de referencia y puede proporcionar un orden para los objetivos de acuerdo con un número de parámetros. Dos de dichos métodos para clasificar la referencia pueden estar clasificando por un costo-sitio asociado con cada objetivo y clasificando por una prioridad del objetivo asociada con cada objetivo. Cada uno de estos métodos de clasificación se describirán con mayor detalle más adelante. Una vez que la lista de objetivos puede ser clasificada por la computadora del servidor Dfs 230 (u otros sistemas de cómputo dedicados que pueden operar para proporcionar y clasificar objetivos en respuesta a una solicitud de referencia), puede ser regresada a la computadora cliente 205. Entonces la computadora cliente 220 puede comenzar de manera iterativa el intento para establecer conectividad con cada objetivo (en el orden que ha sido clasificado) hasta que puede ser establecida la conectividad con el objetivo. Un archivo puede estar localizado en un objetivo correspondiente a la computadora del servidor m1 210 en una distribución s1 212, o simplemente Wm1\1. La distribución s1 212 puede estar asociada con un servidor de archivo 211 en la computadora del servidor m1 210 y por lo tanto, se puede hacer referencisa ella por medio de la computadora del servidor Dfs 230. De un modo similar, el archivo solicitado puede estar localizado en la computadora del servidor m2 215 en una distribución s2 217. La distribución s2 212 puede estar asociada también con el servidor de archivo 216 en la computadora del servidor m2 215, y por lo tanto, también nos podemos referir a ella por medio de la computadora del servidor Dfs 230. Sin embargo, debido a que la computadora del servidor 215 puede estar conectada de manera operable a través de la red 280, a la trayectoria que no podemos referir para la computadora cliente también puede ser más compleja, ya que la conexión de comunicación puede ser establecida a través del servidor raíz Dfs 260. Utilizando el Dfs en la arquitectura de la figura 2, los archivos de cualquier ubicación de la red pueden ser recuperados a través de proporcionar la referencia a la computadora cliente 205 por medio de la computadora del servidor Dfs 230. La figura 3 presenta una gráfica de flujo que representa generalmente los pasos tomados para solicitar y recuperar un archivo utilizando un sistema de archivo distribuido, de acuerdo con un aspecto de la presente invención. La computadora cliente 205 puede ser parte de un Dfs o puede incluir un cliente Dfs 270 el cual puede proporcionar un acceso integral a los archivos localizados en cualquier parte del Dfs. La computadora cliente 205 puede solicitar y recuperar de manera correspondiente los archivos, ya que todos los archivos solicitados se encuentran localmente. Cuando una computadora cliente 205 puede necesitar un archivo particular que no está disponible localmente en la computadora cliente 205, una solicitud de archivo puede ser iniciada en la computadora cliente 205 utilizando al cliente Dfs 270. En varias modalidades, un cliente Dfs también puede residir en un servidor de directorio activo 220 y puede ser utilizado para localizar el servidor raíz Dfs 230. La computadora del servidor Dfs 230 puede proporcionar una respuesta de referencia a la computadora cliente 205 que puede incluir una lista de objetivos correspondientes a computadoras de un servidor remoto disponibles a través del Dfs en el paso 308. La lista de objetivos puede ser clasificada de acuerdo con diferentes parámetros tales como costo-sitio (cuyo método se describirá más adelante con respecto a la figura 4), una prioridad asociada (cuyo método se describirá más adelante con respecto a la figura 5) y/o el conocimiento/sitio, (descrito generalmente más adelante). Además, la respuesta de referencia puede incluir una indicación de los conjuntos limitados incluyendo cada uno un grupo de objetivos. En una modalidad, una indicación del inicio de un conjunto limitado puede ser hecha proporcionando un valor de demarcación asociado con la información acerca del primer objetivo del conjunto limitado. Esto se puede realizar proporcionando atributos de los límites a la computadora cliente en la respuesta de referencia, tales como un costo asociado con al recuperación de un archivo o directorio entre un objetivo y la computadora cliente. Los conjuntos limitados pueden estar basados en cualquier número de parámetros incluyendo el costo-sitio, el conocimiento-sitio, la prioridad objetivo y/o la salud de las computadoras comprendidas en la referencia. Como se usa en la presente descripción, la salud puede significar el tiempo de respuesta para proporcionar una referencia, la carga de tráfico, la carga del procesador y otros atributos de una computadora comprendida en la referencia, incluyendo las medidas de funcionamiento, Una vez que la computadora cliente 205 puede recibir la respuesta de referencia, la computadora cliente 205 puede comenzar a intentar establecer una sesión de comunicación con cada uno de los objetivos de la lista en el orden en que fue clasificada. Por lo tanto, la computadora cliente 205 puede intentar el objetivo 1 en el paso 310 pero fallar en conectarse. La computadora cliente 205 entonces puede intentar el objetivo 2 en el paso 312, pero también falla para conectarse. La computadora cliente 205 puede continuar intentando conexiones con cada objetivo de la respuesta de referencia hasta que se pueda establecer una conexión con el objetivo m en el paso 314. Cuando puede ser restablecida la conectividad a un objetivo, el objetivo puede ser designado como un objetivo del conjunto y utilizado hasta que ya no se encuentre disponible con el objeto de conservar la continuidad de la comunicación con el objetivo. Por ejemplo, el objetivo m puede ser establecido como el objetivo del conjunto para la recuperación posterior de archivos hasta que la computadora cliente 205 puede solicitar una nueva referencia, por ejemplo, para descubrir un nuevo objetivo, o puede ser instruida de otra manera. Aquellos expertos en la técnica apreciarán que una implementación puede seleccionar realizar estos pasos en un orden diferente o puede seleccionar solamente realizar algunos de estos pasos por propósitos de eficiencia o flexibilidad, mientras que logra el mismo efecto y sin salirse del alcance de la presente invención. Además, este mismo concepto puede ser aplicado para localizar un servidor de Dfs 230 en primer lugar, de acuerdo con las referencias para un servidor Dfs particular que puede ser proporcionado por un servidor del directorio activo 220 de una manera bastante similar. La figura 4 presenta una gráfica de flujo que representa generalmente los pasos tomados para ensamblar una respuesta de referencia basada en el costo-sitio de acuerdo con un aspecto de la presente invención. En general, la respuesta de referencia puede ser clasificada de acuerdo con un número de parámetros, tales como el costo-sitio o conocimiento-sitio. En una modalidad, los objetivos que se encuentran dentro del mismo sitio que la computadora cliente 205 pueden ser clasificados de acuerdo con el conocimiento-sitio anterior a la clasificación de acuerdo con el costo-sitio. Por ejemplo, los objetivos dentro del mismo sitio que la computadora cliente 205 pueden ser clasificados en la parte superior de la respuesta de referencia y luego los parámetros de costo-sitio pueden ser utilizados para clasificar los objetivos restantes. La figura puede presentar una modalidad y un método que utiliza el costo-sitio y el conocimeinto-sitio para clasificar objetivos en una respuesta de referencia generada por la computadora del servidor 230. Aquellos expertos en la técnica podrán apreciar, sin embargo, que se pueden utilizar cualquier número de parámetros o combinaciones para clasificar los objetivos de la respuesta de referencia. La computadora del servidor Dfs 230 puede recopilar una lista de objetivos que pueden cubrir la solicitud de referencia de una computadora cliente 205. Estos objetivos pueden ser ensamblados en un orden aleatorio para que comiencen con el paso 402. Luego, la computadora del servidor Dfs 230 puede identificar cada objetivo que se puede encontrar dentro del mismo sitio (Wm1\s1, por ejemplo) que la computadora cliente 205. En el paso 404, aquellos objetivos identificados pueden ser movidos a la parte superior de la lista para producir una respuesta de referencia que ahora es clasificada por un parámetro de conocimiento-sitio. En varias modalidades, la respuesta de referencia puede ser enviada de nuevo a la computadora cliente 205 en este punto. Sin embargo, en otras modalidades, una respuesta de referencia puede ser clasificada adicionalmente de acuerdo con otro parámetro, costo— sitio, tal y como se muestra en la figura 4. Los objetivos restantes pueden ser clasificados en el paso 408 de acuerdo con un costo-sitio asociado, y separados en conjuntos limitados. Cada objetivo que tiene un primer costo-sitio asociado con el mismo, puede ser movido dentro de un conjunto limitado con otros objetivos que tienen el mismo costo-sitio asociado. De un modo similar, un segundo conjunto limitado puede tener uno o más objetivos con un segundo costo-sitio asociado. Por lo tanto, la lista de objetivos puede entonces llegar a ser clasificada en conjuntos enlazados en donde el primer conjunto enlazado puede incluir objetivos con el costo-sitio asociado más bajo, y el siguiente conjunto limitado puede incluir objetivos con el siguiente costo-sitio asociado, y así sucesivamente. Cada conjunto limitado puede entonces incluir un número grande de objetivos en la lista en un orden aleatorio, pero que tienen el mismo costo-sitio asociado con el mismo. Por lo tanto, como la computadora cliente 205 puede intentar reiterativamente establecer una sesión de comunicación través de intentos, puede ciclar a través de los objetivos de costo-sitio más bajo primero. Además, en el paso 410, el primer objetivo de la lista de cada conjunto limitado también puede ser asociado con un bit de límites que puede ser ajustado para indicar el inicio de un conjunto limitado. De esta manera, la computadora cliente puede identificar fácilmente el límite entre los conjuntos limitados. El bit del límite puede servir como una indicación de que el objetivo tiene un costo-sitio asociado más alto que el objetivo anterior de la lista. Por lo tanto, se puede tomar una decisión más informada acerca de la nueva falla o la falla proporcionando conjuntos limitados basados en el costo-sitio. La computadora del servidor Dfs 230 entonces puede ensamblar una respuesta de referencia final que tiene una lista clasificada de objetivos basada en el conocimiento-sitio y el costo-sitio y puede enviar la respuesta de referencia de vuelta a la computadora cliente 205 en el paso 412. La figura 5 presenta una gráfica de flujo que representa generalmente los pasos tomados para ensamblar una respuesta de referencia basada en la prioridad-objetivo de acuerdo con un aspecto de la presente invención. Nuevamente, una respuesta de referencia puede ser clasificada de acuerdo con un número de parámetros, tales como la prioridad-objetivo y/o el conocimiento-sitio como se mencionó brevemente con anterioridad. La figura 5 puede presentar una modalidad de un método que utiliza la prioridad-objetivo y el conocimiento-objetivo para clasificar objetivos en una respuesta de referencia generada por la computadora del servidor Dfs 230. Aquellos expertos en la técnica podrán apreciar, sin embargo, que se pueden utilizar cualquier número de parámetros o combinaciones de parámetros para clasificar los objetivos de la respuesta de referencia. Como se explicó anteriormente, la computadora del servidor Dfs 230 puede recopilar una lista de objetivos que pueden cubrir la solicitud de referencia de una computadora cliente 205. Estos objetivos pueden ser ensamblados en un orden aleatorio para iniciar con el mismo en el paso 502. Entonces, la computadora del servidor Dfs 230 puede identificar cada objetivo que se encuentra dentro del mismo sitio (por ejemplo, //ml/sl/), que la computadora cliente 205. En el paso 504, estos objetivos identificados pueden ser movidos a la parte superior de la lista para presentar una respuesta de referencia que ahora es clasificada por un parámetro de conocimiento-sitio. En algunas modalidades, la respuesta de referencia se puede volver a enviar a la computadora cliente 205 en este punto. Sin embargo, en otras modalidades, una respuesta de referencia puede ser clasificada adicionalmente de acuerdo con otro parámetro, prioridad-objetivo, como se muestra en la figura 5. Cada objetivo que tiene una primera prioridad-objetivo, tal como prioridad global alta, asociada con la misma, puede ser movida dentro de un conjunto limitado con otros objetivos que tienen la misma prioridad-objetivo asociada. De un modo similar, un segundo conjunto limitado puede tener uno o más objetivos con una o más prioridad-objetivo asociados, tales como costo global bajo. Por lo tanto, la lista de objetivos entonces puede ser clasificada en conjuntos limitados en donde el primer conjunto limitado puede incluir objetivos con la prioridad-objetivo asociada más alta, por ejemplo, prioridad global alta, el siguiente conjunto limitado incluye objetivos con la siguiente prioridad-objetivo asociada más alta, por ejemplo, prioridad global alta normal, y así sucesivamente. Cada conjunto limitado entonces puede incluir un número grande de objetivos en la lista en un orden aleatorio, pero que tienen la misma prioridad-objetivo asociada con el mismo. Por lo tanto, como la computadora cliente 205 puede reiterar a través de los objetivos e intentar establecer una sesión de comunicación, puede hacer primero un ciclo a través de los objetivos de prioridad-objetivo más alta. Además, en el paso 510, la primera prioridad de la lista de cada conjunto limitado también puede tener un conjunto de bits de límite para indicar el inicio del conjunto limitado. De esta manera, la computadora cliente 205 puede identificar fácilmente el límite entre los conjuntos limitados. El bit del límite puede servir como una indicación de que el objetivo puede tener una prioridad-objetivo asociada más baja que el objetivo anterior de la lista. Por lo tanto, se puede tomar una decisión más informada acerca de la nueva falla o la falla proporcionando conjuntos limitados basados en la prioridad-objetivo. La computadora del servidor Dfs 230 entonces puede ensamblar una respuesta de referencia final que tiene una lista clasificada de objetivos basada en el conocimiento-sitio y la prioridad-objetivo y puede enviar la respuesta de referencia de nuevo a la computadora cliente 205 en el paso 512. La computadora del servidor Dfs 230 también puede utilizar una combinación de parámetros de clasificación para establecer la respuesta de referencia clasificada. Por ejemplo, una primera clasificación puede ser mover los objetivos del mismo sitio a la parte superior de la lista. Entones, los objetivos pueden ser clasificados basados en las prioridades globales asociadas con cada uno. Por ejemplo, todos los objetivos que tienen una prioridad global alta asociada pueden ser clasificados en la parte superior de la respuesta de referencia. De un modo similar, todos los objetivos que tienen una prioridad global baja asociada pueden ser clasificados al final de la lista. Entonces, los objetivos restantes (a los cuales nos podemos referir como de una prioridad global normal) pueden ser clasificados adicionalmente en conjuntos limitados basados en el costo-sitio. En otra modalidad, una segunda clasificación puede establecer conjuntos limitados basados en los costos-sitio e indicados por los bits del límite del conjunto en los objetivos en la parte superior de cada conjunto. Entonces, cada conjunto limitado puede ser clasificado de acuerdo con la prioridad-objetivo, de modo que se encuentren dentro de cada conjunto limitado (los cuales pueden tener inherentemente el mismo costo-sitio asociado), los objetivos pueden ser ordenados además de acuerdo con una prioridad asociada con cada objetivo. Por lo tanto, dentro de los conjuntos limitados basados en el costo-sitio, los objetivos en la parte superior del conjunto enlazado pueden ser asociados con una prioridad alta, el siguiente grupo de objetivos puede ser asociado con la siguiente prioridad más alta (normal, por ejemplo), y así sucesivamente. Todavía en otra modalidad, las dos modalidades anteriores pueden ser implementadas juntas, de modo que los objetivos sean clasificados con prioridad en una base global y dentro de cada conjunto limitado. Como otro ejemplo, la primera clasificación puede ser nuevamente mover los objetivos del mismo sitio a la parte superior de la lista. Entonces, una segunda clasificación puede establecer los conjuntos limitados basados en la prioridad-objetivo e indicados por los bits del límite, el conjunto en los objetivos de la parte superior de cada conjunto. Entonces, cada conjunto limitado puede ser clasificado de acuerdo con el costo-sitio, de modo que dentro de cada conjunto limitado (el cual puede tener inherentemente la misma prioridad-objetivo asociada), los objetivos sean ordenados adicionalmente de acuerdo con un costo-sitio asociado con cada objetivo. Por lo tanto, dentro de los conjuntos limitados basados en la prioridad-objetivo, los objetivos de la parte superior del conjunto limitado pueden ser asociados con el costo-sitio más bajo, y luego el agrupamiento de objetivos puede ser asociado con el siguiente costo-sitio más bajo, y así sucesivamente. Clasificando los objetivos en una respuesta de referencia en un orden establecido y ajustando ciertos bits dentro de cada objetivo en la respuesta de referencia, una computadora cliente entonces puede implementar una política eficiente de retroceso al del objetivo y una política de retroceso a la prioridad, utilizando los objetivos clasificados en la respuesta de referencia, como se describirá más adelante. RETROCESO AL OBJETIVO Y PRIORIDAD Además del método de clasificación para una computadora cliente que solicita una lista de computadoras del servidor que puede tener un archivo deseado en una red de computadoras del servidor, el sistema y métodos también pueden proporcionar de manera ventajosa una política de retroceso al objetivo y prioridad del objetivo que puede utilizar una lista de objetivos clasificados proporcionados en una respuesta de referencia. Como se podrá apreciar, un sistema de cómputo puede seleccionar y designar un objetivo como el objetivo del conjunto de una lista de objetivos clasificados de acuerdo con el costo-sitio. Entonces, el sistema de cómputo puede determinar si el objetivo del conjunto está asociado con el costo-sitio cuando es comparado con todos los objetivos disponibles de la lista clasificada. De no ser así, el sistema puede retroceder a un objetivo diferente que está asociado con un costo-sitio más bajo que el objetivo del conjunto y designar el nuevo objetivo como el objetivo del conjunto. Como se podrá apreciar, las diferentes gráficas de flujo y escenarios aquí descritos son solamente de ejemplo, y existen muchos escenarios a los cuales se podrá aplicar la política de retroceso al objetivo y prioridad del objetivo aquí descrita. Haciendo referencia a la figura 6 de los dibujos, se muestra una gráfica de flujo que representa generalmente los pasos tomados para el retroceso al objetivo de costo-sitio más bajo que puede ser utilizado con una respuesta de referencia clasificada de acuerdo con un aspecto de la presente invención. En varias modalidades del entorno de la política de retroceso al objetivo, la computadora del servidor Dfs 230 puede clasificar la información acerca de los objetivos que pueden ser utilizados por el Dfs cuando se genera una respuesta de referencia. En una modalidad, la computadora del servidor Dfs 230 puede clasificar la información acerca de los objetivos basada en el conocimiento-sitio. De este modo, la respuesta de referencia puede consistir esencialmente de dos conjuntos de objetivos: un conjunto que contiene los objetivos del mismo sitio que la computadora cliente 205, y el otro conjunto que contiene objetivos de sitios diferentes al de la computadora cliente 205. Inicialmente, los objetivos de cada conjunto pueden ser ordenados de manera aleatoria. En otra modalidad, la computadora del servidor Dfs 230 puede clasificar referencias que pueden estar basadas en un costo-sitio. En este modo de operación, la respuesta de referencia puede ser clasificada en conjuntos limitados múltiples. Cada conjunto limitado puede incluir objetivos que tienen el mismo costo-sitio determinado por el servidor Dfs (el cual puede ser determinado basado en la información de costo-sitio relacionada con la computadora cliente que lo solicita). Los conjuntos limitados pueden ser ordenados aumentando el costo-sitio, de modo que los objetivos del mismo sitio del cliente puedan estar en el primer conjunto limitado; los objetivos que tienen el costo-sitio más bajo siguiente pueden ser un segundo conjunto y así sucesivamente. Inicialmente, los objetivos dentro de cada conjunto pueden ser ordenados de manera aleatoria. Por lo tanto, cuando una computadora cliente solicita una referencia en el paso 602, se puede proporcionar una respuesta de referencia clasificada por la computadora del servidor Dfs 230. La computadora cliente entonces puede comenzar a intentar establecer la conectividad con cada objetivo de la respuesta de referencia para determinar el primer objetivo disponible en el paso 604. Cuando no se puede tener acceso a un objetivo por cualquier número de razones, tales como errores de la red, averías del objetivo, etc., el cliente Dfs puede retroceder al siguiente objetivo disponible. Por ejemplo, se puede hacer un intento para establecer la conectividad con el siguiente objetivo de la lista de objetivos de la respuesta de referencia. Cuando puede ser establecida la conectividad con un objetivo, el objetivo particular puede ser designado como el objetivo del conjunto en el paso 606. Cuando uno o más objetivos anteriores pueden ser mejores que el objetivo del conjunto disponible nuevamente, el cliente Dfs puede continuar utilizando el objetivo del conjunto para propósitos de continuidad e integración, o puede adquirir o volver a adquirir un objetivo mejor disponible. De una manera provechosa, teniendo una política de retroceso y los conjuntos limitados de los objetivos, se permite que un objetivo mejor, tal como un objetivo con un costo-sitio más bajo, sea adquirido o se vuelva a adquirir cuando está disponible. Por lo tanto, si la política de retroceso al objetivo lo especifica (por ejemplo, que tiene un conjunto de bits de política de retroceso al objetivo), la computadora cliente puede determinar que un objetivo más preferido, tal como un objetivo de costo-sitio más bajo, pueda estar disponible en el paso 608. La determinación se puede tomar en cualquier momento, y puede ser iniciada por la computadora cliente 205, la computadora del servidor Dfs 230, o cualquier otra computadora remota. Además, el tiempo de retroceso puede corresponder a una cantidad transcurrida de tiempo desde el momento en el que la conectividad pudo haber sido establecida con el objetivo del conjunto. Por ejemplo, la computadora cliente puede revisar un objetivo mejor después de 30 minutos, ya que la conectividad para el primer conjunto de objetivos estuvo establecida. Además, el tiempo de retroceso puede corresponder a un tiempo del día particular, tal como cada media hora o cada cinco minutos. Todavía adicionalmente, el tiempo de retroceso puede corresponder a la solicitud siguiente más próxima por un archivo de la computadora cliente 205. En el tiempo de retroceso, si un objetivo más preferido tal como el objetivo de costo-sitio más bajo, puede estar disponible, entonces se puede establecer la conectividad con el objetivo disponible más preferido, y el objetivo más preferido disponible puede ser designado en el objetivo del conjunto en el paso 612. Sin embargo, si ya no pueden haber objetivos preferidos disponibles, tal como el de costo-sitio más bajo, entonces el objetivo del conjunto puede continuar siendo usado como el objetivo actual en el paso 610. La política de retroceso puede ser implementada para una raíz/enlace Dfs determinado en la respuesta de referencia. Si el retroceso al objetivo no puede ser activado en un nivel de enlace individual, se puede utilizar el ajuste del nombre de espacio Dfs completo. En una madalidad, el retroceso al objetivo puede ser inhabilitado en el nivel de enlace, cuando el retroceso al objetivo puede ser habilitado en el nivel de espacio de nombre Dfs. La información de retroceso al objetivo puede ser almacenada en una modalidad junto con otra información Dfs, tal como los meta-datos Dfs. Por ejemplo, se puede utilizar un campo de "Tipo" en la información por raíz/enlace de los meta-datos de cada objetivo. Una posición de bit libre en este campo puede ser identificada y verificada para que funcione a través de los sistemas de herencia. Esta nueva posición de bit puede definirse para que sea
PKT_E TRY_TYPE_TARGETFAIL. BACK. Por lo tanto, un formato típico para los meta-datos para el Dfs basado en el campo (al que nos referimos como el "ID BLOB") puede ser definido en una modalidad por la seudo-estructura siguiente: GUID Volumeld; USHORT PrefixLength; WCHAR Prefijo [PrefixLength]; USHORT ShortPrefixLength; WCHAR ShortPrefix [ShortPrefixLength];
ULONG Tipo; ULONG Estado; USHORT CommentLength ; WCHAR Comentario [CommentLength]; FILETIME PrefixTimeStamp; F1LET1ME StateTimeStamp; FILET1ME CommentTimeStamp; ULONG Versión; De un modo similar, el formato típico para los meta-datos para un Dfs independiente (al que nos referimos como el "ID BLOB") puede ser definido por la siguiente seudo-estructura: USHORT PrefixLength; WCHAR Prefijo [PrefixLength]; USHORT ShortPrefixLength; WCHAR ShortPrefix [ShortPrefixLength]; GUID Volumeld; ULONG Estado; ULONG Tipo; USHORT CommentLength ; WCHAR Comentario [CommentLength]; FILETIME PrefixTimeStamp; FILETIME StateTimeStamp; FILETIME CommentTimeStamp; Las APls NetDfsGetlnfo/NetDfsEnum pueden recuperar el ajuste de los meta-datos por raíz/enlace. El extremo frontal de la API el cual puede validar los parámetros puede ser modificado de manera correspondiente y la rutina que puede interceptar y regresar la información específica a "nivel de información" también puede ser modificado de manera conveniente. Para soportar tanto la prioridad del objetivo, como el retroceso al objetivo, un cliente Dfs puede intentar retroceder a otro objetivo de un costo-sitio más bajo y/o una prioridad más alta. En una modalidad, un cliente Dfs puede no retroceder a otro objetivo en el mismo costo-sitio y/o la misma prioridad que el objetivo activo actual. El conjunto del objetivo puede ser definido en una modalidad para que sea un conjunto limitado de los objetivos. Por ejemplo, un conjunto limitado de objetivos puede ser un conjunto de objetivos clasificados de manera aleatoria que tienen el mismo costo-sitio. Se puede hacer una indicación de un límite para un conjunto limitado de objetivos, por ejemplo, en una respuesta de referencia incluyendo una indicación de un límite en una entrada de referencia. Por consiguiente, una respuesta de referencia a un cliente Dfs para una raíz/enlace debe indicar en una modalidad, si está habilitado el retroceso o no para la raíz/enlace y también puede indicar los límites del conjunto limitado entre los objetivos regresados. En una modalidad, el formato de una respuesta de referencia existente anteriormente para una raíz/enlace puede ser utilizado agregando un nuevo campo de bit en las definiciones del campo de bit existentes en ambos el encabezado de referencia y la entrada de referencia de la manera siguiente: Typedef struct { USHORT PathConsumed; // Número de WCHARs consumidos en el DfsPathName USHORT NumberOfReferrals; // Número de referencias contenidas aquí struct { ULONG ReferralServers: 1; // Los elementos en las referencias [ ] son servidores de referencia ULONG StorageServers: 1; // Los elementos en las referencias [ ] son servidores de almacenamiento ULONG TargetFailback: 1; // El retroceso al objetivo está habilitado para esta raíz/enlace de espacio de nombre }; ULONG ReferralHeaderFlags }; unión { // El vector de las referencias DFS_REFERRAL_V1 v1; DFS_REFERRAL_V2 v2; DFS REFERRAL V3 v3;
DFS_REFERRAL_V4 v4; } Referencias [ i ]; / / [NumberOfReferrals] // // WCHAR String Buffer [ ]; / / Utilizado por el DFS ..
REFERRAL_V2 // } RESP _GET_DFS_REFERRAL; typedef RESP _GET_DFS_REFERRAL *PRESP _GET_DFS_REFERRAL; typedef struct { USHORT VersionNumber; / / = = 4 USHORT Size; / / Tamaño de este elemento completo USHORT ServerType; / / Tipo de servidor: 0 = = No sabe que, 1 = = SMB, 2 = = Netware unión { struct { USHORT StripPath: 1; // Desprendimiento de los caracteres PathConsumed del DfsPathName elemento frontal antes de presentar el nombre al UncShareName USHORT NameListReferral: 1; // Esta referencia contiene una lista de nombres expandida USHORT TargetSetBoundary: 1 // Indica que este objetivo es el primero del conjunto de objetivos // Todos los objetivos que tienen el mismo costo-sitio o clasificación de prioridad; }; USHORT ReferralEntryFlags
}; ULONG TimeToLive; / / En números de segundos unión { struct { USHORT DfsPathOffset; // Compensación desde el inicio de este elemento a la trayectoria para acceder
USHORT DfsAlternatePathOffset; // Compensación desde el inicio de este elemento a la trayectoria 8.3 USHORT NetworkAddressOffset; // Compensación desde el inicio de este elemento a la trayectoria de Red GUID ServiceSiteGuid; // La guía para el sitio }; struct { USHORT Special NameOffset; // Compensación de este elemento a la cadena de nombre especial USHORT NumberOf ExpandedNames; // Número de nombres expandidos USHORT ExpandedNameOffset; // Compensación de este elemento a la lista de nombres expandida
}; } DFS REFERRAL_V4;
typedef DFS_REFERRAL_V4 *PDFS_REFERRAL_V4; Aquellos expertos en la técnica apreciarán que otras estructuras de datos, tales como una estructura de datos separada puede ser utilizada para proporcionar una indicación de los límites del conjunto limitado entre los objetivos en una respuesta de referencia o para indicar si se ha habilitado el retroceso o no. La figura 7 presenta una gráfica de flujo que representa generalmente los pasos tomados para el retroceso a un objetivo de prioridad más alta que puede ser utilizado con una respuesta de referencia clasificada de acuerdo con un aspecto de la presente invención. En varias modalidades de un entorno de política de retroceso al objeto, la computadora del servidor Dfs 320 puede clasificar la información acerca de los objetivos basada en el conocimiento-sitio. En esta modalidad, la respuesta de referencia puede consistir esencialmente de dos conjuntos de objetivos: un conjunto que contiene los objetivos del mismo sitio que la computadora cliente 205, y el otro conjunto contiene objetivos de sitios diferentes al de la computadora cliente 205. Inicialmente, los objetivos de cada conjunto pueden ser ordenados de manera aleatoria. En otra modalidad, la computadora del servidor Dfs 230 puede clasificar las referencias basada en la prioridad-objetivo. En esta modalidad de operación, la respuesta de referencia puede ser clasificada en conjuntos limitados múltiples. Cada conjunto-limitado puede incluir objetivos que pueden tener la misma prioridad-objetivo determinada por el servidor Dfs que solicita la referencia. Los conjuntos limitados pueden ser ordenados en términos de una prioridad-objetivo descendente, de modo que los objetivos con la prioridad más alta puedan estar en el primer conjunto limitado; los objetivos que tienen la siguiente prioridad más alta puedan encontrarse en el segundo conjunto y así sucesivamente. Inicialmente, los objetivos de cada conjunto pueden ser ordenados de manera aleatoria. La computadora del servidor Dfs 230 también puede utilizar una combinación de parámetros de clasificación para establecer la respuesta de referencia clasificada. Por ejemplo, la primera clasificación puede ser mover los objetivos del mismo sitio a la parte superior de la lista. Luego, los objetivos pueden ser clasificados basados en las prioridades globales asociadas con cada uno. Por ejemplo, todos los objetivos que tienen una prioridad global alta asociada pueden ser clasificados en la parte superior de la respuesta de referencia. De un modo similar, todos los objetivos que tienen una prioridad global baja asociada pueden ser clasificados al final de la lista. Entonces, los objetivos restantes (a los que nos podemos referir como con prioridad global normal) pueden ser clasificados adicionalmente en conjuntos limitados basados en el costo-sitio. En otra modalidad, se puede establecer una segunda clasificación de conjuntos limitados basada en los costos-sitios, e indicada por los bits del límite del conjunto en los objetivos que se encuentran en la parte superior de cada conjunto. Entonces, cada conjunto limitado puede ser clasificado de acuerdo con la prioridad-objetivo, de modo que dentro de cada conjunto limitado (el cual puede tener inherentemente el mismo costo-sitio asociado) los objetivos pueden ser ordenados además de acuerdo con una prioridad asociada con cada objetivo. De este modo, dentro de los conjuntos limitados basados en el costo-sitio, los objetivos que se encuentran en la parte superior del conjunto limitado pueden estar asociados con una prioridad alta, el siguiente grupo de objetivos puede estar asociado con la siguiente prioridad más alta (normal, por ejemplo), y así sucesivamente. Todavía en otra modalidad, pueden ser implementadas las dos modalidades anteriores juntas, de modo que los objetivos sean clasificados por prioridad en una base global y dentro de cada conjunto limitado. Por lo tanto, cuando la computadora cliente 205 solicita una referencia en el paso 702, se puede proporcionar una respuesta de referencia clasificada por la computadora del servidor Dfs 230. La computadora cliente puede entonces comenzar a intentar establecer la conectividad con cada objetivo de la respuesta de referencia para determinar el primer objetivo disponible en el paso 704. Por ejemplo, se puede hacer un intento para establecer la conectividad con el siguiente objetivo de la lista de objetivos de la respuesta de referencia. Cuando puede ser establecida la conectividad con un objetivo, el objetivo particular puede ser designado como el objetivo del conjunto en el paso 706. Cuando uno o más objetivos anteriores que pueden ser mejores que el objetivo del conjunto antes de que el objetivo del conjunto esté disponible nuevamente, el cliente DFS puede continuar utilizando el objetivo del conjunto para propósitos de continuidad e integridad, o puede adquirir o volver a adquirir el objetivo mejor disponible. Provechosamente, teniendo la política de retroceso y los conjuntos limitados de objetivos, se permite que un mejor objetivo, tal como un objetivo con una prioridad-objetivo más alta, pueda ser adquirido o se vuelva a adquirir, cuando está disponible. Por lo tanto, si la política de retroceso al objetivo especifica (por ejemplo, que tiene un conjunto de bits de la política de retroceso al objetivo) la computadora cliente puede determinar que un objetivo más preferido, tal como un objetivo dentro de un conjunto limitado más preferido, esté disponible en el paso 708. Se puede tomar la determinación en cualquier momento, y puede ser iniciada por la computadora cliente 205, la computadora del servidor Dfs 230, o cualquier otra computadora remota. Además, el tiempo de revisión de prioridad puede corresponder a un tiempo transcurrido desde que se estableció el objetivo del conjunto. Por ejemplo, la computadora cliente 205 puede revisar un objetivo mejor después de 30 minutos de que se estableció el primer objetivo del conjunto. Todavía adicionalmente, el tiempo de revisión de prioridad puede corresponder a una hora particular del día, tal como cada media hora o cada cinco minutos. Todavía de manera adicional, el tiempo de revisión de la prioridad puede corresponder a la siguiente solicitud por un archivo de la computadora cliente 205. En el tiempo de revisión de prioridad, si puede estar disponible un objetivo de prioridad-objetivo más alta, entonces se puede establecer la conectividad con el objetivo de prioridad-objetivo más alta disponible y el objetivo de prioridad-objetivo más alta puede ser designado como el objetivo del conjunto en el paso 712. Sin embargo, sí no existiera objetivo disponible alguno con una prioridad-objetivo más alta, entonces el objetivo del conjunto puede continuar siendo utilizado como el objetivo actual en el paso 710. Por lo tanto, un método simple para clasificar los objetivos dentro del Dfs mismo puede proporcionar ventajas útiles de clasificación. La prioridad-objetivo del servidor puede coincidir con el costo-sitio, como se describió anteriormente. La prioridad-objetivo del servidor puede crear una clasificación permanente entre los objetivos, de modo que un objetivo de prioridad más baja no puede recibir tráfico si el objetivo de prioridad más alta está disponible. Como se describió anteriormente, una respuesta de referencia puede ser clasificada en conjuntos limitados basados en cada costo-sitio asociado con los objetivos. Con la prioridad del objetivo del servidor, estos conjuntos limitados todavía pueden estar basados en el costo de los objetivos a los que se tiene acceso. La prioridad del objetivo del servidor puede extender simplemente los criterios de clasificación de costo para los objetivos, de modo que los objetivos pueden ser aquellos objetivos que tienen el mismo costo-sitio y la prioridad del objetivo del servidor. La prioridad del objetivo del servidor puede ser representada en una modalidad por dos valores: un clase de prioridad y una clasificación de prioridad. Las clases de prioridad pueden ser definidas en dos niveles: localmente, dentro de los conjuntos de objetivos de costo-sitio igual, y globalmente. Dentro de cada una de estas clases, puede haber un ordenamiento simple de objetivos de prioridad alta, normal y baja. Esto puede proporcionar cinco clases de prioridad:
Prioridad global alta Costo-sitio alto Costo-sitio normal Costo-sitio bajo Prioridad global baja la cual puede ser ordenada en las prioridades de la lista. Observar que puede no existir una clase de "prioridad normal global" separada, ya que puede ser considerada equivalente a las clases de costo-sitio. La clasificación de prioridad puede ser una clasificación de enteros simple - 0, 1, 2, y así sucesivamente. Para ordenar una referencia, el proceso en una modalidad puede ser el siguiente: 1. los conjuntos de objetivos con prioridad global alta y prioridad global baja pueden ser identificados, junto con los objetivos de "prioridad global normal" restantes. 2. estos tres conjuntos pueden ser colocados por orden de prioridad, de acuerdo con una prioridad global alta, prioridad global normal y prioridad global baja. 3. si se puede establecer una política de exclusión, entonces los objetivos dentro del conjunto de exclusión pueden ser eliminados. 4. dentro de cada uno de estos tres conjuntos, los objetivos pueden ser ordenados por el mecanismo de costo-sitio (ya sea sitio local o por el costeo-sitio completo), produciendo conjuntos limitados de objetivos de un costo-sitio igual. 5. dentro de los conjuntos de objetivos de prioridad "global normal" de costo-sitio igual, los objetivos pueden ser ordenados por clase de prioridad, es decir, sitio-costo alto, normal y bajo. 6. dentro de los conjuntos limitados de objetivos de costo-sitio y clase de prioridad igual, los objetivos pueden ser ordenados por clasificación de prioridad (siendo 0 la más alta). 7. dentro de los conjuntos limitados de objetivos de costo-sitio, con clase prioridad y clasificación de prioridad iguales, los objetivos pueden ser acomodados de manera aleatoria para el balanceo de la carga. Aquellos expertos en la técnica apreciaran que una implementación puede elegir realizar estos pasos en un orden diferente, o puede seleccionar solamente realizar algunos de estos pasos para propósitos de eficiencia o flexibilidad, mientras que logra el mismo efecto y sin salirse del alcance de la presente invención. Gráficamente, estos pueden ser los conjuntos en el orden en el cual un cliente recibiría los objetivos: [clase de prioridad global alta] [costo-sitio clase prioridad alta para objetivos de costo- sitio = 0] [ normal costo = 0]
[ bajo costo = 0]
[costo-sitio clase de prioridad alta para objetivos de costo-sitio = 1 ] [ normal costo = 1]
[ bajo costo = 1]
[clase de prioridad global baja] Debido a que la información de prioridad-objetivo puede encontrarse en una base por objetivo, el lugar natural para mantener esta información puede ser una información de meta-datos de replica del Dfs, la cual incluye la lista de objetivos por cada raíz-enlace. Cada información del objetivo puede ser definida por la seudo estructura siguiente: FILETIME ReplicaTimeStamp; ULONG ReplicaState; ULONG ReplicaType; USHORT ServerNameLength; WCHAR ServerName [ServerNameLength]; USHORT ShareNameLength; WCHAR ShareName [ShareNameLegth]; En una modalidad, la prioridad objetivo puede ser codificada en un UCHAR para el almacenamiento en los meta-datos: • Bits 0-4: clasificación de prioridad dentro de la clase de prioridad • Bits 5-7: clase de prioridad Las clases de prioridad pueden ser representadas en una modalidad por los siguientes valores: Costo-sitio normal (Default) 0x0 Prioridad global alta 0x1 Prioridad global baja 0x2 Costo-sitio alto 0x3 Costo-sitio bajo 0x4 Como un ejemplo, un objetivo de clasificación de prioridad 1 dentro de la clase de prioridad global baja puede ser codificado como Bit 7 6 5 / 4 3 2 1 0 0 1 0 / 0 0 0 0 1 Esta codificación puede proporcionar 32 clasificaciones de prioridad y 8 clases posibles de prioridad de las cuales cinco pueden ser definidas utilizando la clasificación de prioridad de prioridad global alta, costo-sitio alto, costo-sitio normal, costo-sitio bajo y prioridad global baja. La clasificación de prioridad puede ser un valor de 0 a 31, siendo considerado el cero como la prioridad más alta. Por lo tanto, los objetivos con una clasificación de prioridad 0 pueden ser regresados primero y aquellos con una clasificación de prioridad 31 pueden ser regresados al final dentro de cada conjunto. Una utilidad, tal como un DsfUTIL puede ser utilizada para exponer las exposiciones de la clase de utilidad directamente para las operaciones de ajuste/vista. Alternativamente, una interfase del usuario puede exponer las clases de prioridad por medio de botones de radio en la página de propiedad del objetivo. Ambas, la DsfUTIL y la Ul pueden seleccionar "la clase de prioridad normal costo-sitio", como el valor por omisión (default). La prioridad del objetivo puede ser considerada un atributo de un objetivo Dfs. Por consiguiente, el valor UCHAR anterior puede ser almacenado como un atributo por objetivo en el objeto Dfs, en ambos en el directorio y el registro activo, en una modalidad. Se puede proporcionar una nueva estructura de DFS_REPLICA_INFORMATION de la manera siguiente: typedef struct DFS_REPLICA_I N FORMATION { PVOID pData; ULONG DataSize; UCHAR TargetPriority; UCHAR [7] No utilizada; ULONG ReplicaState; ULONG ReplicaType; UNICODE STRING ServerName; UNICODE STRING ShareName; DFS_REPLICA_IN FORMATION, *PDFS_REPLICA JNFOR ATION; } La clase DFS_TARGET_PR!ORITY_CLASS puede proporcionar un nuevo tipo de enumeración que puede definir cinco ajustes de la clase de prioridad del objetivo posibles en una modalidad: typedef enum { DfsInvalidPriorityClass = -1, DfsSiteCostNormalPriorityClass 0, DfsGlobalHighPriorityClass, DfsSiteCostHighPriorityClass, DfsSiteCostLowPriorityClass, DfsGIobalLowPriorityClass }DFS TARGET PRIORITY CLASS; El ajuste de la prioridad del objetivo por omisión
(default) puede ser <PriorityClass =
SiteCostNormalPriorityClass, PriorityRank = 0>. Esto puede ser por medio del diseño, ya que el valor por omisión (default) de los meta-datos de nivel bajo será 0. El valor para DfsSiteCostNormalPriorityClass puede ser 0 aunque puede ser inferior en la prioridad comparado con DfsSiteCostHighPriorityClass. La siguiente estructura puede ser proporcionada para encapsular la definición de la prioridad del objetivo la cual puede ser el registro <clase de prioridad, clasificación de pr¡oridad> en una modalidad: typedef struct _DFS_TARGET_PRIORITY { DFS_TARGET_PRIORITY_CLASS TargetPriorityClass;
USHORT TargetPriorityRank USHORT Reserved; } DFS_TARGET_PRIORITY; La clase DfsReplica que puede representar un objetivo de raíz o enlace en el servicio Dfs puede contener un objeto específico de una Clase nueva DfsTargetPriority: Clase DfsTargetPriority ( privada: DFS_TARGET_PRI ORITY_TargetPriority; La clase DfsTargetPriority puede convertir el UCHAR empacado que contiene la información de prioridad del objetivo tomada desde los meta-datos del DFS a la forma más utilizable DFS_TARGET_PRIORITY. También puede crear el valor UCHAR empacado dado por DFS_TARGET_PRIORITY. También se puede realizar el mapeo entre la definición de la clase de prioridad de la clase DFS_TARGET_PRIORITY_CLASS y la definición de la clase de prioridad utilizada para almacenarla en los meta-datos. Una estructura existente
REPLICA_COST_INFORMATION puede ser convertida en una nueva clase denominada DfsTargetCostlnfo: Clase DfsTargetCostlnfo privada: ULONG TargetCost; // Costo-sitio DfsReplica *pReplica; // La prioridad del servidor es un atributo de DfsReplica BOOLEAN IsBoundary; pública: BOOLEAN operator< = (DfsTargetCost!nfo &rhs); BOOLEAN operator!={DfsTargetCostlnfo &rhs); DfsTargetCostlnfo& operator= (const DfsTargetcostlnfo &rhs); La estructura existente REFERRAL_INFORMATION puede ser convertida en una clase que contendrá una adaptación de objetos DfsTargetCostInfo. La lógica con respecto a la reorganización, clasificación y generación de referencias puede ser encapsulada en esta nueva clase. Esta clase también puede convertir la adaptación generada de objetos DfsTargetCostInfo en el formato REFERRAL_H EADER el cual espera el protocolo DFS. La clasificación de referencia por prioridad del objetivo puede ser implementada de la manera siguiente. Debido a dos objetivos, r1 y r2, r1 puede ser considerado < = r2 si r1 necesita ser ordenado antes que r2. De modo que, si r1 < = r2, la referencia clasificada se puede mirar como {r1, r2}. La implementación para esa < = comparación depende de la siguiente observación: Para objetivos con una clase de prioridad global, las clases de prioridad pueden ser comparadas primero. Y para objetivos en las clases de prioridad que no es global, el costo-sitio puede ser comparado primero. 1. Si uno o ambos objetivos pueden estar en una clase de prioridad global: a Si las clases de prioridad pueden no ser la misma, determinar el ordenamiento basado en las clases de prioridad. Por ejemplo si r1 puede estar en DfsGlobalHighPriorityClass, r1 puede ser ordenado antes de r2 independientemente de la clase de prioridad de r2. b Además, las clases de prioridad pueden ser la misma, comparar los costos-sitio de r1 y r2. r1 < r2 si el costo-sitio de r1 < costo-sitio de r2. c Las clases de prioridad y los costos-sitio pueden ser los mismos, ir al paso 3. 2. Ningún objetivo puede estar en una clase de prioridad global: a Si los costos-sitio del objetivo no pueden ser el mismo, r1 < r2 si el costo-sitio de r1 < costo-sitio de r2. b Además los costos-sitio pueden ser el mismo, de modo que se debe revisar las clases de prioridad. r1 < r2 si r1 puede estar en una clase de prioridad más alta comparado con r2.
c Los costos-sitio y clases de prioridad pueden ser el mismo, ir al paso 3. 3. Las clases de prioridad y los costos-sitio pueden ser el mismo. r1 < r2 si r1 puede tener una clasificación de prioridad más alta (numéricamente inferior) comparado con r2. Para las clases de prioridad global, las referencias pueden ser ordenadas primero por los costos-sitio y luego ordenadas por las clasificaciones de prioridad. Esto puede ocurrir debido a que puede existir el modelo para las comparaciones en otros casos. Por ejemplo, para las clases de prioridad las cuales no son globales, la clasificación de prioridad solamente puede ser tomada en cuenta cuando los costos-sitio son iguales. La figura 8 representa una gráfica de flujo que representa generalmente los pasos tomados en una modalidad para clasificar una respuesta de referencia, de acuerdo con un aspecto de la presente invención. Cuando puede ser clasificada una solicitud de referencia, se pueden ¡mplemen'tar varias combinaciones de los métodos anteriormente descritos. En la modalidad mostrada en la gráfica de flujo de la figura 8, el conocimiento-sitio, costo-sitio y prioridad del objetivo pueden ser utilizados cada uno para clasificar los objetivos en una respuesta de referencia. En el paso 802, una lista de objetivos puede satisfacer la solicitud de la computadora cliente que puede ser ensamblada para una respuesta de referencia para la clasificación. Entonces, en el paso 804, los objetivos dentro del mismo sitio tal y como la computadora que lo solicita pueden ser clasificados en la parte superior de la lista como ha sido descrito anteriormente como conocimiento-sitio. En el paso 806, los objetivos restantes pueden ser clasificados de acuerdo con la prioridad global. Más específicamente, los objetivos asociados con una prioridad global alta pueden ser clasificados hacia la parte superior de la lista de objetivos mientras que los objetivos asociados con una prioridad global baja pueden ser clasificados hacia la parte inferior de la lista de objetivos. Luego, los objetivos que no pueden ser designados, ya sea como de prioridad global alta o prioridad global baja pueden ser clasificados de acuerdo con un costo-sitio asociado. En una modalidad, dichos objetivos que no pueden ser designados, ya sea como de prioridad global alta o prioridad global baja, pueden ser designados como de prioridad global normal. Por lo tanto, estos objetivos pueden ser agrupados en conjuntos limitados de objetivos, de modo que cada uno de los objetivos en un conjunto limitado determinado pueda ser asociado con un costo— sitio similar o equivalente a todos los otros objetivos en ese conjunto limitado particular. Además, en una modalidad cada primer objetivo en cada conjunto limitado puede incluir un bit de límite del conjunto que puede indicar el inicio de conjunto limitado. Cada conjunto limitado puede ser clasificado además en el paso 810 basado en la prioridad asociada con cada objetivo en los conjuntos limitados. Por lo tanto, los objetivos dentro de los conjuntos limitados asociados con una prioridad alta pueden ser clasificados en la parte superior del conjunto limitado y los objetivos dentro de un conjunto limitado asociado con una prioridad baja pueden ser clasificados al final del conjunto limitado. De esta manera, cada conjunto limitado puede ser clasificado por prioridad y puede ser anidado dentro de la clasificación de costo-sitio, la cual a la vez, puede ser anidada dentro de la clasificación de prioridad global. Nuevamente, aquellos expertos en la técnica apreciarán que una implementación puede seleccionar realizar estos pasos en un orden diferente o puede seleccionar solamente realizar algunos de estos pasos con propósitos de eficiencia y flexibilidad, mientras se logra el mismo efecto y sin salirse del alcance de la presente invención. De este modo, el sistema y método pueden soportar, tanto la prioridad de objetivos como el retroceso al objetivo. Un sistema de computadoras cliente puede intentar retroceder a otro objetivo de un costo-sitio más bajo y/o prioridad más alta. La presente invención puede soportar de manera ventajosa la clasificación de referencias basadas en el conocimiento-sitio y/o prioridad-objetivo. La referencia de clasificación basadas en el conocimiento-sitio puede proporcionar un conjunto de objetivos en el mismo sitio que el servidor Dfs, proporcionando referencias al sistema de cómputo cliente y otro conjunto que tiene todos los otros objetivos. La clasificación de las referencias basada en la prioridad-objetivo puede proporcionar conjuntos limitados en orden de prioridad, en donde cada conjunto limitado puede incluir objetivos que tiene la misma prioridad de un objetivo determinada por el sistema de cómputo cliente que solicita la referencia. En una modalidad, una respuesta de referencia puede ser clasificada en conjuntos limitados que tienen el mismo costo-sitio y una prioridad del objetivo del servidor. Como se puede apreciar de la descripción detallada anterior, la presente invención proporciona un sistema y método mejorados para determinar el retroceso al objetivo y la prioridad de objetivos para un sistema de archivos distribuido. En respuesta a una solicitud de una computadora cliente, se puede proporcionar una lista de objetivos a una computadora cliente que puede ser clasificada basada en una relación de un conjunto-sitio asociado con cada objetivo respectivo. Los objetivos de costo más bajo pueden ser clasificados en la parte superior de la respuesta de referencia, de modo que una computadora cliente pueda simplemente analizar lógicamente a través de la respuesta de referencia comenzando con los objetivos de costo más bajo para intentar establecer la conectividad antes de intentar establecer conectividad con objetivos de costo más alto. Adicionalmente, la clasificación de los objetivos también puede ser implementada utilizando la clasificación de prioridad de los objetivos por medio de la cual, en una modalidad, los objetivos de prioridad más alta también pueden ser clasificados en la parte superior de la respuesta de referencia. Además, la respuesta de referencia puede ser, clasificada adicionalmente para incluir provisiones, tanto para el costo-sitio como la prioridad de un objetivo. Por lo tanto, los grupos de objetivos que tienen un costo-sitio asociado equivalente pueden ser clasificados adicionalmente dentro del grupo de acuerdo con cada prioridad-objetivo asociada respectiva del objetivo. Cualquier sistema de cómputo puede utilizar adicionalmente una respuesta de referencia clasificada de la presente invención para retroceder a un objetivo de prioridad más alta seleccionando y designando un objetivo del conjunto nuevo de una lista de objetivos clasificados de acuerdo con el costo-sitio y/o prioridad de un objetivo. Como ahora se puede entender, el sistema y método proporcionan de este modo ventajas y beneficios importantes necesarios en la computación contemporánea.
Aunque la presente invención es susceptible a varias modificaciones y construcciones alternativas, ciertas modalidades ilustradas de la mismas son ilustradas en los dibujos y han sido descritas detalladamente en párrafos anteriores. Deberá quedar entendido, sin embargo, que no existe la intención de limitar la invención a las formas específicas descritas, sino al contrario, la intención es cubrir todas las modificaciones, construcciones alternativas y equivalentes que se encuentran dentro del espíritu y alcance de la presente invención.