ES2209549T3 - Un aparato y procedimiento para determinar un programa cercano en un nodo cliente de una red cliente-servidor. - Google Patents
Un aparato y procedimiento para determinar un programa cercano en un nodo cliente de una red cliente-servidor.Info
- Publication number
- ES2209549T3 ES2209549T3 ES99966622T ES99966622T ES2209549T3 ES 2209549 T3 ES2209549 T3 ES 2209549T3 ES 99966622 T ES99966622 T ES 99966622T ES 99966622 T ES99966622 T ES 99966622T ES 2209549 T3 ES2209549 T3 ES 2209549T3
- Authority
- ES
- Spain
- Prior art keywords
- application
- server
- client
- user
- client system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4541—Directories for service discovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Método para visualizar cada programa de aplicación de programas de aplicación albergados en una pluralidad de servidores (30, 32, 34) de una red que está disponible para su uso por parte de un sistema cliente, comprendiendo el método las etapas de: (a) recibir credenciales de usuario asociadas a la identidad del usuario del sistema cliente (10, 20); (b) mantener la información relativa a la aplicación correspondiente a cada programa de aplicación que está albergado por cada servidor (30, 32, 34); (c) determinar si el usuario del sistema cliente (10, 20) está autorizado a usar cada programa de aplicación albergado por los servidores (30, 32, 34) basándose en las credenciales de usuario; y (d) transmitir información al sistema cliente (10, 20) en respuesta a la información relativa a la aplicación, describiendo la información transmitida cada programa de aplicación que el usuario del sistema cliente (10, 20) está autorizado a usar.
Description
Un aparato y procedimiento para determinar un
programa cercano en un nodo cliente de una red
cliente-servidor.
La invención se refiere en general a redes
cliente-servidor. Más específicamente, la
invención se refiere a un método para informar a un sistema cliente
de programas de aplicación instalados en los sistemas servidor que
están disponibles para su ejecución por el sistema cliente.
Las redes de ordenadores actuales constan de
varios sistemas de ordenador, llamados nodos, que se comunican con
otros sistemas de ordenador vía enlaces de comunicaciones.
Típicamente, algunos de los nodos son nodos cliente y otros nodos
son nodos servidor. Un nodo cliente formula y suministra consultas a
un nodo servidor. Un usuario del nodo cliente introduce las
consultas a través de una interfaz de usuario que opera en el nodo
cliente. El nodo servidor evalúa las consultas y suministra
respuestas al nodo cliente para su visualización en la interfaz de
usuario del
cliente.
cliente.
Usualmente, los nodos servidor albergan una
diversidad de programas de aplicación a los que pueden acceder y
que pueden ser ejecutados por los nodos cliente. Cuando un nodo
cliente inicia un programa de aplicación, la ejecución del programa
de aplicación puede producirse en el nodo cliente o en el nodo
servidor, dependiendo del modelo informático seguido por la red de
ordenadores. En un modelo informático basado en el servidor, el
nodo servidor ejecuta el programa de aplicación, y sólo la
información de control para la interfaz de usuario del cliente es
transmitida a través de la red de ordenadores al nodo cliente para
su visualización. En un modelo informático basado en el cliente, el
nodo servidor transmite el programa de aplicación al nodo cliente de
manera que el nodo cliente puede ejecutar el programa usando los
recursos del nodo cliente.
Un inconveniente de las redes de ordenadores
actuales es que los nodos cliente pueden ignorar los programas de
aplicación disponibles para su uso en los nodos servidor. De hecho,
los nodos cliente pueden incluso no conocer cada nodo servidor
disponible en la red. Para encontrar programas de aplicación
disponibles en un nodo servidor particular, un usuario del nodo
cliente puede necesitar encontrar y obtener acceso a dicho nodo
servidor y realizar un listado de directorios de los archivos
existentes en dicho nodo servidor. Incluso entonces, este listado
podría no indicar al usuario aquellas aplicaciones que el usuario
está autorizado a usar.
Además, una vez que el usuario conoce los
programas de aplicación en el nodo servidor, a menudo dicho usuario
debe establecer un enlace con dichas aplicaciones. La industria ha
desarrollado herramientas de software para ayudar al usuario a
crear estos enlaces, por ejemplo, el Gestor de Aplicaciones Remotas
desarrollado por Citrix Systems, Inc. de Ft. Lauderdale, Florida. El
Gestor de Aplicaciones Remotas es un programa de aplicación
instalado en el nodo cliente. Este programa de aplicación guía a un
administrador del nodo cliente para introducir información que
establezca un enlace con una aplicación publicada en un nodo
servidor particular. El administrador proporciona información tal
como el nombre de la sesión, el protocolo para acceder al nodo
servidor, el nombre del servidor o dirección IP o la aplicación
publicada. Enfoques de este tipo requieren que el administrador
conozca la información y entienda los detalles de protocolos y
dominios para establecer la conexión.
El documento
AU-A-199853031 describe un sistema
para crear automáticamente bases de datos que contienen datos de
industria, de servicios, de productos y clasificación de temas,
datos de contacto, datos de localización geográfica (datos CCG) y
enlaces a páginas web de páginas web codificadas en HTML, XML o
SGML expuestas en redes de ordenadores tales como Internet o
Intranets. Las páginas web que contienen datos CCG codificados en
HTML, XML o SGML, controles de actualización de bases de datos y
controles de visualización de exploradores web son creadas y
modificadas usando editores de texto simples, editores HTML, XML o
SGML o editores construidos para tal propósito. Las bases de datos
CCG pueden ser buscadas por referencias (URLs) a páginas web
mediante el uso de informaciones con referencia a uno o más de los
ítems de los datos CCG. Alternativamente, informaciones con
referencia a los datos CCG en las bases de datos pueden suministrar
datos de contacto sin referencias a páginas web. La duplicación y
coordinación de datos es reducida incluyendo en la página web
controles de visualización de datos CCG que son usados por los
exploradores web para formatear para la visualización los mismos
datos que son usados para actualizar automáticamente las bases de
datos.
El documento
US-A-5,689,708 describe un gestor de
recursos en una red de ordenadores cliente/servidor que controla de
disponibilidad de recursos del sistema. Un administrador del
sistema genera un conjunto de perfiles que especifica qué recursos
de sistema puede emplear cada usuario para cada uno de los múltiples
programas de aplicación. Programas de aplicación individuales
pueden configurar internamente sus posibles elecciones de tales
recursos del sistema de acuerdo con los perfiles apropiados en una
base dinámica.
La presente invención es como se especifica en
las reivindicaciones.
La presente invención permite al usuario de un
sistema cliente informarse acerca de los programas de aplicación
disponibles en los servidores en una red sin exigir que el usuario
conozca donde encontrar tales aplicaciones ni que introduzca
información técnica necesaria para enlazar con tales
aplicaciones.
En un aspecto, la invención se refiere a un
método para presentar programas de aplicación a un sistema cliente
en una red que incluye el sistema cliente y una pluralidad de
servidores. Los servidores incluyen un servidor principal que
recibe la información relativa a la aplicación correspondiente a
los programas de aplicación albergados por una pluralidad de
servidores en una red. Las credenciales de usuario son recibidas
desde el sistema cliente. Si cada programa de aplicación albergado
está disponible para su ejecución por el sistema cliente es
determinado basándose en las credenciales de usuario y la
información relativa a la aplicación recibida. La información es
transmitida desde el servidor principal al sistema cliente
indicando al sistema cliente cada aplicación albergada que está
disponible para su ejecución por el sistema cliente. En algunas
realizaciones, el servidor principal crea una visualización de
salida que contiene la información relativa a la aplicación, tal
como un archivo de lenguaje de composición de hipertexto (HTML),
archivo de lenguaje de composición extendido (XML), u archivo de
otro lenguaje de composición general estructurado (SGML).
El servidor principal puede autentificar al
sistema cliente basándose en las credenciales de usuario recibidas.
Cuando el sistema cliente selecciona una de las aplicaciones
disponibles para su ejecución, dicha aplicación puede ser ejecutada
sin requerir la entrada adicional de credenciales de usuario por
parte de un usuario del sistema cliente, aunque la aplicación
seleccionada esté en un servidor distinto del servidor
principal.
En una realización se establece una conexión
entre el sistema cliente y el servidor principal usando un
protocolo de Arquitectura de Computación Independiente (ICA). El
protocolo ICA puede establecer un canal virtual para transmitir
información al sistema cliente que indica cada programa de
aplicación albergado que está disponible para el sistema
cliente.
Una petición para ejecutar uno de los programas
de aplicación albergados disponibles puede ser recibida en la
conexión. En respuesta a la petición puede ser establecida una
segunda conexión entre el sistema cliente y el servidor principal
para intercambiar información asociada a la ejecución del programa
de aplicación solicitado. En otra realización puede ser establecida
una conexión entre el servidor principal y un segundo servidor que
alberga la aplicación solicitada en respuesta a la petición. La
información asociada a la ejecución del programa de aplicación
solicitado puede ser intercambiada entre el segundo servidor y el
sistema cliente vía el servidor principal.
Una segunda petición para ejecutar un segundo de
los programas de aplicación albergados disponibles puede ser
recibida en la conexión entre el servidor principal y el sistema
cliente. Otra conexión entre el servidor principal y un tercer
servidor que alberga la aplicación solicitada puede ser establecida
en respuesta a la segunda petición. La información asociada a una
ejecución del segundo programa de aplicación solicitado puede ser
intercambiada entre el tercer servidor y el sistema cliente vía el
servidor principal. La información recibida del segundo y tercer
servidores puede ser combinada para su transmisión al sistema
cliente.
En aún otra realización, la información de la
aplicación puede ser proporcionada por el servidor principal al
sistema cliente en respuesta a la primera petición. Una segunda
conexión puede ser establecida entre el sistema cliente y un
segundo servidor que alberga la aplicación solicitada en respuesta
a la información de la aplicación proporcionada.
El servidor principal puede transmitir la
información de la aplicación disponible en respuesta a una petición
por parte del sistema cliente. La información transmitida puede
producir una visualización de interfaz gráfica de usuario en el
sistema cliente que tenga iconos que representan los programas de
aplicación disponibles. La información transmitida puede también
describir cada programa de aplicación albergado que el sistema
cliente no está autorizado a usar.
El servidor principal puede comunicarse con cada
uno de los otros servidores para determinar los programas de
aplicación albergados por dichos otros servidores y desarrollar una
base de datos para almacenar la información relativa a la
aplicación. La base de datos puede ser accesible a cada uno de los
otros servidores de la pluralidad, o cada uno de los otros
servidores puede mantener una base de datos para almacenar la
información relativa a la aplicación.
En otro aspecto, la invención se refiere a un
método para presentar a un sistema cliente cada aplicación albergada
por un servidor que está disponible para el sistema cliente. Las
credenciales de usuario son recibidas desde el sistema cliente. La
información relativa a la aplicación es mantenida por el servidor.
Si cada aplicación albergada por el servidor está disponible para su
ejecución por el sistema cliente es determinado basándose en las
credenciales de usuario y la información relativa a la aplicación.
La información que indica cada aplicación que está disponible para
el sistema cliente es transmitida desde el servidor al sistema
cliente.
En otro aspecto, la invención se refiere a un
servidor que comprende un módulo de servicio que recoge la
información relativa a la aplicación correspondiente a los
programas de aplicación albergados por la pluralidad de servidores.
Una base de datos almacena la información relativa a la aplicación
recogida. Un receptor recibe las credenciales de usuario desde el
sistema cliente. El módulo de servicio determina para cada programa
de aplicación albergado por la pluralidad de servidores si dicho
programa de aplicación albergado se encuentra disponible para el
uso por parte del usuario del sistema cliente basándose en las
credenciales de usuario y en la información relativa a la
aplicación almacenada en la base de datos. Un transmisor transmite
la información al sistema cliente.
El módulo de servicio puede transmitir un
datagrama a otros servidores de la pluralidad para recoger la
información relativa a la aplicación correspondiente a los
programas de aplicación albergados por dichos servidores. La
información transmitida describe a un usuario del sistema cliente
cada programa de aplicación albergado que está disponible para su
uso por parte del usuario del sistema cliente. El transmisor puede
transmitir la información de la aplicación disponible usando un
protocolo de comunicaciones de canal virtual.
La invención está indicada en detalle en las
reivindicaciones adjuntas. Las anteriores y otras ventajas de la
invención pueden ser entendidas mejor con referencia a la siguiente
descripción junto a los dibujos adjuntos, en los que:
Fig. 1, es un diagrama de una realización de
nodos cliente en comunicación con un grupo de nodos servidor vía una
red, en la que un entorno de programas de un nodo cliente puede ser
determinado de acuerdo con los principios de la invención;
Fig. 2A, es un diagrama de bloques que ilustra un
procedimiento ejemplar por medio del cual uno de los nodos servidor
puede iniciar la ejecución de un programa de aplicación para
determinar el entorno de programas de un nodo cliente;
Fig. 2B, es un diagrama de bloques que ilustra un
procedimiento ejemplar por medio del cual un nodo cliente puede
iniciar la ejecución de un programa de aplicación para determinar
el entorno de programas de dicho nodo cliente;
Fig. 2C, es un diagrama de bloques que ilustra un
procedimiento ejemplar por medio del cual un nodo cliente usa una
aplicación de explorador web para determinar su entorno de
programas;
Figs. 3A,3B y 3C,son diagramas de bloques que
ilustran procedimientos ejemplares mediante los cuales un nodo
cliente puede iniciar un programa de aplicación de una ventana de
Entorno de Programas visualizada en dicho nodo cliente;
Fig. 3D, es un diagrama de bloques que ilustra un
procedimiento ejemplar mediante el cual un nodo cliente puede
iniciar un programa de aplicación de una página web de Entorno de
Programas visualizada en dicho nodo cliente;
Fig. 4, es un diagrama de bloques de una
realización informática basada en el cliente en la que un nodo
cliente que tiene instalada una aplicación de entorno de programas
de la invención está en comunicación con uno de los nodos
servidor;
Fig. 5, es un diagrama de bloques de una
realización informática basada en el servidor en la que un nodo
cliente está en comunicación con un nodo servidor que tiene
instalado un programa de aplicación de entorno de programas de la
invención;
Fig. 6A, es un cuadro de pantalla de una
visualización ejemplar en la pantalla de visualización de un nodo
cliente después de que el programa de aplicación de entorno de
programas ha sido ejecutado;
Fig. 6B, es un cuadro de pantalla de otra
visualización ejemplar en la pantalla de visualización de un nodo
cliente después de que el programa de aplicación de entorno de
programas ha sido ejecutado; y
Fig. 7, es una representación en diagrama de
flujo de una realización de un procedimiento por medio del cual un
nodo cliente es informado en cuanto a la disponibilidad de uso de
programas de aplicación en los servidores de aplicación.
La Fig. 1 muestra un primer sistema informático
(nodo cliente) 10 y un segundo sistema informático (nodo cliente) 20
en comunicación con sistemas informáticos (servidores de
aplicación) 30, 32, 34 y 36 a través de una red 40. La red 40 puede
ser una red de área local (LAN) o una red de área extensa (WAN) tal
como Internet o World Wide Web. Los usuarios de los nodos cliente
10, 20 pueden estar conectados a la red 40 a través una diversidad
de conexiones que incluyen líneas telefónicas estándar, enlaces LAN
y WAN (por ejemplo, T1, T3, 56 kb, X.25), conexiones de banda ancha
(ISDN, retransmisión de tramas (Frame Relay), ATM) y conexiones
inalámbricas. Las conexiones pueden ser establecidas usando una
diversidad de protocolos de comunicaciones (por ejemplo, TCP/IP,
IPX, SPX, NetBIOS, Ethernet, RS232 y conexiones asíncronas
directas).
El nodo cliente 10 puede ser cualquier ordenador
personal (por ejemplo, 286, 386, 486, Pentium, Pentium II,
ordenador Macintosh), terminal basada en Windows, ordenador en red,
dispositivo inalámbrico, dispositivo de información, RISC Power PC,
dispositivo X, estación de trabajo, miniordenador, gran sistema u
otro dispositivo informático que tenga un escritorio basado en
ventanas y almacenamiento persistente suficiente para ejecutar
programas de aplicación descargados desde los servidores de
aplicación 30, 32, 34 a través de la red 40. Las plataformas
orientadas a ventanas soportadas por el nodo cliente 10 pueden
incluir Windows 3.x, Windows 95, Windows 98, Windows NT 3.51,
Windows NT 4.0, Windows CE, Macintosh, Java y Unix. El nodo cliente
10 puede incluir una pantalla de visualización 12, un teclado 14,
memoria 16 para almacenar los programas de aplicación descargados,
un procesador 17, y un ratón 18. La memoria 16 puede proporcionar
almacenamiento persistente o volátil. El procesador 17 puede
ejecutar los programas de aplicación localmente en el nodo cliente
10 y visualizar un escritorio basado en ventanas resultante en la
pantalla de visualización 12. Tal procesamiento local en el nodo
cliente 10 está de acuerdo con el modelo informático basado en el
cliente descrito anteriormente.
Alternativamente, el nodo cliente 20 puede ser
cualquier terminal (basado en ventanas o no) o un dispositivo
cliente delgado que opera de acuerdo con un modelo informático
basado en el servidor. En un modelo informático basado en el
servidor, la ejecución de programas de aplicación se produce
enteramente en los servidores de aplicación 30, 32, 34, y la
interfaz de usuario, pulsaciones de teclas, y movimientos del ratón
son transmitidos a través de la red 40 al nodo cliente 20. La
interfaz de usuario puede ser conducida por texto (por ejemplo,
DOS) o conducida gráficamente (por ejemplo, Windows). Plataformas
que pueden ser soportadas por el nodo cliente 20 incluyen DOS y
Windows CE para terminales basados en ventanas. El nodo cliente 20
incluye una pantalla de visualización 22, un teclado 24, un ratón
28, un procesador (no mostrado) y almacenamiento persistente (no
mostrado).
Los servidores de aplicación 30, 32, 34 y 36
pueden ser cualquier dispositivo informático que controle el
acceso a otras porciones de la red (por ejemplo, estaciones de
trabajo, impresoras). Hay que entender que más o menos servidores
de aplicación pueden ser conectados a la red 40. Los servidores 30,
32, 34 y 36 pueden operar de acuerdo con un modelo informático
basado en el cliente o un modelo informático basado en el servidor
como se describió anteriormente.
Cada servidor de aplicación 30, 32, 34 y 36
alberga uno o más programas de aplicación a los que pueden acceder
los nodos cliente 10 y 20. A las aplicaciones puestas a disposición
para su uso por parte de los nodos cliente se hace referencia como
aplicaciones publicadas. Ejemplos de tales aplicaciones incluyen
programas de procesamiento de texto, tales como MICROSOFT WORD® y
programas de hoja de cálculo tales como MICROSOFT EXCEL®, ambos
desarrollados por Microsoft Corporation de Redmond, Washington,
programas de informes financieros, programas de registro de
clientes, programas que proporcionan información de soporte
técnico, aplicaciones de bases de datos de clientes o gestores de
conjuntos de aplicaciones.
Los servidores 30, 32 y 34 pueden pertenecer al
mismo dominio 38. En la red 40, un dominio es una subred que
comprende un grupo de servidores de aplicación y nodos cliente
sometidos al control de una base de datos de seguridad. Un dominio
puede incluir uno o más "granjas de servidores". (Una granja de
servidores es un grupo de servidores que están enlazados entre sí
para actuar como un único sistema servidor para proporcionar
administración centralizada). Recíprocamente, una granja de
servidores puede incluir uno o más dominios. Para que servidores de
dos dominios diferentes pertenezcan a la misma granja de servidores
puede ser necesario que exista una relación de confianza entre los
dominios. Una relación de confianza es una asociación entre los
diferentes dominios que permite a un usuario acceder a los recursos
asociados a cada dominio con sólo una autentificación de
entrada.
En una realización, el servidor de aplicación 36
está en un dominio diferente al dominio 38. En otra realización, el
servidor de aplicación 36 está en el mismo dominio que los
servidores 30, 32 y 34. Para cualquier realización, los servidores
de aplicación 30, 32 y 34 pueden pertenecer a una única granja de
servidores, mientras que el servidor 36 pertenece a otra granja de
servidores, o bien todos los servidores de aplicación 30, 32, 34 y
36 pueden pertenecer a la misma granja de servidores. Cuando un
nuevo servidor es conectado a la red 40, el nuevo servidor, o bien
se une a una granja de servidores existente, o bien inicia una
nueva granja de servidores,
La red 40 puede incluir un nodo servidor maestro
para realizar el equilibrio del nivel de carga entre los servidores
de aplicación 30, 32, 34 y 36. El nodo servidor maestro puede ser
uno de los servidores de aplicación 30, 32, 34 o 36. El nodo
servidor maestro incluye una lista de direcciones de servidores e
información de carga correspondiente a cada uno de los otros
servidores de aplicación. El nodo servidor maestro puede dirigir al
nodo cliente a un nodo servidor particular en el que ejecutar una
aplicación basándose en la lista de servidores disponibles y los
niveles de carga correspondientes. Alternativamente, los servidores
de aplicación 30, 32, 34, 36 pueden colaborar entre sí a la par
para intercambiar información de administración tal como niveles de
carga, permitiendo a cualquier servidor 30, 32, 34, 36 responder a
una petición hecha por un nodo cliente 10, 20.
De acuerdo con los principios de la invención, un
usuario de cualquier nodo cliente 10, 20 puede conocer la
disponibilidad de los programas de aplicación albergados por los
servidores de aplicación 30, 32, 34 y 36 en la red 40 sin necesitar
que el usuario sepa donde encontrar tales aplicaciones ni introducir
información técnica necesaria para enlazar con tales aplicaciones.
Estos programas de aplicación disponibles comprenden el "entorno
de programas" del usuario. Un sistema para determinar un entorno
de programas para un nodo cliente incluye un programa de aplicación
(en lo que sigue se hará referencia a él como aplicación de
"Entorno de programas"), memoria para almacenar componentes
del programa de aplicación, y un procesador para ejecutar el
programa de aplicación.
La aplicación de Entorno de Programas puede ser
instalada en la memoria del nodo cliente 10 y/o en los servidores
de aplicación 30, 32, 34 y 36 como se describió anteriormente. La
aplicación de Entorno de Programas es una colección de servicios,
interfaces de programas de aplicación (APIs) y programas de
interfaz de usuario (UI) que indican a los usuarios de los nodos
cliente 10, 20 aquellos programas de aplicación albergados por los
servidores de aplicación que cada nodo cliente está autorizado a
usar (por ejemplo, ejecutar).
Un servidor de aplicación que opere de acuerdo
con la aplicación de Entorno de Programas recoge información
relativa a la aplicación de cada uno de los servidores de
aplicación en una granja de servidores. La información relativa a
la aplicación para cada aplicación albergada puede ser una
diversidad de información que incluya, por ejemplo, una dirección
del servidor que alberga dicha aplicación, el nombre de la
aplicación, los usuarios o grupos de usuarios que están autorizados
a usar dicha aplicación, y las capacidades mínimas requeridas del
nodo cliente antes de establecer una conexión para ejecutar la
aplicación. Por ejemplo, la aplicación puede lanzar datos de vídeo,
y por tanto una capacidad mínima requerida es que el nodo cliente
soporte datos de vídeo. Otros ejemplos son que el nodo cliente
pueda soportar datos de audio o que pueda procesar datos
encriptados. La información relativa a la aplicación puede ser
almacenada en una base de datos como se describirá posteriormente en
la memoria descriptiva.
Cuando un nodo cliente entra en la red 40, el
usuario del nodo cliente proporciona credenciales de usuario. Las
credenciales de usuario incluyen típicamente el nombre del usuario
del nodo cliente, la contraseña del usuario, y el nombre del dominio
para el que el usuario está autorizado. Las credenciales de usuario
pueden ser obtenidas de tarjetas inteligentes, testigos basados en
tiempo, números de seguridad social, contraseñas de usuario, números
de identificación personal (NIP), certificados digitales basados en
criptografía de clave simétrica o curva elíptica, características
biométricas del usuario, o cualesquiera otros medios con los cuales
pueda ser obtenida la identificación del usuario del nodo cliente y
sometida a autentificación. El servidor que responde al nodo
cliente puede autentificar al usuario basándose en las credenciales
de usuario. Las credenciales de usuario pueden ser almacenadas
siempre que la aplicación de Entorno de Programas se esté
ejecutando. Cuando el nodo cliente 10 ejecuta la aplicación de
Entorno de Programas, las credenciales de usuario pueden ser
almacenadas en el nodo cliente 10. Cuando un servidor de aplicación
está ejecutando el Entorno de Programas, las credenciales de usuario
pueden ser almacenadas en dicho servidor.
A partir de las credenciales de usuario y la
información relativa a la aplicación, el servidor puede también
determinar qué programas de aplicación albergados por los servidores
de aplicación están disponibles para su uso por parte del usuario
del nodo cliente. El servidor transmite información que representa
los programas de aplicación disponibles al nodo cliente. Este
procedimiento elimina la necesidad para un usuario del nodo cliente
de establecer conexiones de aplicación. También, un administrador
del servidor puede controlar el acceso a las aplicaciones entre los
diversos usuarios del nodo cliente.
La autentificación de usuario realizada por el
ser servidor puede ser suficiente para autorizar el uso de cada
programa de aplicación albergado presentado al nodo cliente,
aunque tales aplicaciones pueden residir en otro servidor. Por
consiguiente, cuando el nodo cliente inicia (es decir, inicia la
ejecución de) una de las aplicaciones albergadas, la entrada
adicional de credenciales de usuario por parte del usuario puede
ser innecesaria para autentificar el uso de dicha aplicación. Así,
una entrada única de las credenciales de usuario puede servir para
determinar las aplicaciones disponibles y autorizar el inicio de
tales aplicaciones sin un procedimiento de autentificación de
entrada manual adicional por parte del usuario del cliente.
Un nodo cliente 10, 20 o un servidor de
aplicación puede iniciar la aplicación de Entorno de Programas como
está descrito con relación a las figuras 2A-2C. Los
resultados se muestran en la pantalla de visualización 12, 22 del
nodo cliente 10, 20. En una implementación gráfica basada en
ventanas, los resultados pueden ser visualizados en una ventana
gráfica de Entorno de Programas y cada programa de aplicación
autorizado puede ser representado mediante un icono gráfico en
dicha ventana.
Una realización de la aplicación de Entorno de
Programas filtra los programas de aplicación que el nodo cliente 10,
20 no está autorizado a usar y visualiza sólo los programas
autorizados (es decir disponibles). En otras realizaciones, la
aplicación de Entorno de Programas puede visualizar las aplicaciones
autorizadas y no autorizadas. Cuando las aplicaciones no
autorizadas no son filtradas de la visualización, puede ser
proporcionado un aviso que indique que tales aplicaciones no están
disponibles. Alternativamente, la aplicación de Entorno de
Programas puede informar de todas las aplicaciones albergadas por
los servidores de aplicación 30, 32, 34, 36 al usuario de un nodo
cliente, sin identificar qué aplicaciones el nodo cliente está
autorizado o no autorizado a ejecutar. La autorización puede ser
determinada posteriormente cuando el nodo cliente 10, 20 intenta
ejecutar una de dichas aplicaciones.
La Fig. 2a muestra un procedimiento ejemplar
mediante el cual un servidor inicia la aplicación de Entorno de
Programas (PN) y presenta los resultados de la aplicación PN al
nodo cliente 10. El servidor puede iniciar la aplicación PN en
respuesta a una petición 42 por parte del nodo cliente 10 para un
programa de aplicación particular. La petición pasa al nodo
servidor maestro, en este ejemplo el servidor 30. El nodo servidor
maestro 30, teniendo en cuenta el equilibrio de carga y la
disponibilidad de la aplicación, indica (flecha 43) al nodo cliente
10 que la aplicación solicitada está disponible en el servidor 32.
El nodo cliente 10 y el servidor 32 establecen una conexión (flechas
45 y 46). Mediante esta conexión, el servidor 32 puede transferir
el código ejecutable de la aplicación particular al nodo cliente
10, cuando el nodo cliente 10 y el servidor 32 están operando de
acuerdo con el modelo informático basado en el cliente.
Alternativamente, el servidor 32 puede ejecutar la aplicación
particular y transferir la interfaz gráfica de usuario al nodo
cliente 10, cuando el nodo cliente 10 y el servidor 32 están
operando de acuerdo con el modelo informático basado en el
servidor. Además, o bien el nodo servidor maestro 30 o el servidor
32 pueden ejecutar la aplicación de Entorno de Programas 41 y hacer
volver los resultados (flechas 43 o 46) al nodo cliente 10 para que
cuando el nodo cliente 10 solicite la aplicación de Entorno de
Programas, los resultados de entorno de programas estén ya
disponibles en el nodo cliente 10.
La Fig. 2B muestra otro procedimiento ejemplar
mediante el cual el nodo cliente 10 inicia la ejecución de la
aplicación de Entorno de Programas y un servidor presenta los
resultados de la aplicación PN al nodo cliente 10. El nodo cliente
10 inicia la aplicación de Entorno de Programas (por ejemplo,
pinchando en el icono 41 de Entorno de Programas que representa la
aplicación). La petición 50 para la aplicación de Entorno de
Programas es dirigida al nodo servidor maestro, en este ejemplo el
servidor 30. El nodo servidor maestro 30 puede ejecutar la
aplicación de Entorno de Programas si la aplicación está en el nodo
servidor maestro 30 y devolver los resultados al nodo cliente 10.
Alternativamente, el nodo servidor maestro 30 puede indicar (flecha
51) al nodo cliente 10 que la aplicación de Entorno de Programas
41está disponible en otro servidor, en este ejemplo el servidor 32.
El nodo cliente 10 y el servidor 32 establecen una conexión
(flechas 53 y 54) mediante la cual el nodo cliente 10 solicita la
ejecución de la aplicación de Entorno de Programas 41. El servidor
32 puede ejecutar la aplicación 41 y transferir los resultados (es
decir, la interfaz gráfica de usuario) al nodo cliente 10.
La Fig. 2C muestra otro procedimiento ejemplar
mediante el cual un nodo cliente 20 inicia la ejecución de la
aplicación de Entorno de Programas, en este ejemplo vía la World
Wide Web. Un nodo cliente 20 ejecuta una aplicación explorador web
80, tal como el NAVEGADOR NESTCAPE, desarrollado por Nestcape
Communications, Inc. de Mountain View, California o EXPLORADOR DE
INTERNET MICROSOFT, desarrollado por Microsoft Corporation de
Redmond, Washington.
El nodo cliente 20, vía el explorador web 80,
transmite una petición 82 para acceder a una dirección de
Localizador Uniforme de Recursos (URL) correspondiente a una
página HTML residente en el servidor 30. En algunas realizaciones,
la primera página HTML devuelta 84 al nodo cliente 20 por el
servidor 30 es una página de autentificación que persigue
identificar al nodo cliente 20.
La página de autentificación permite al nodo
cliente 20 transmitir las credenciales de usuario, vía el explorador
web 80, al servidor 30 para su autentificación. Las credenciales de
usuario transmitidas son verificadas por el servidor 30 o por otro
servidor en la granja. Esto permite que un dominio de seguridad sea
proyectado sobre el servidor 30. Por ejemplo, si el servidor 30
ejecuta el sistema operativo Windows NT, desarrollado por Microsoft
Corporation de Redmond, Washington, y el servidor de autentificación
ejecuta el sistema operativo UNIX, puede decirse que el dominio de
seguridad UNIX se ha proyectado sobre el servidor 30. Las
credenciales de usuario pueden ser transmitidas "sin
codificar", o pueden estar encriptadas. Por ejemplo, las
credenciales de usuario pueden ser transmitidas vía una conexión de
capa de conexiones seguras (SSL), que encripta los datos usando el
algoritmo RC3, fabricado por RSA Data Security, Inc. de San Mateo,
California.
El servidor 30 puede verificar las credenciales
de usuario recibidas del nodo cliente 20. Alternativamente, el
servidor 30 puede pasar las credenciales de usuario a otro servidor
para su autentificación. En esta realización, el servidor de
autentificación puede estar en un dominio diferente al del servidor
30. Las credenciales de usuario del nodo cliente 20 autentificadas
pueden ser almacenadas en el nodo cliente 20 en una cookie por
sesión o en campos que no son visualizados por el explorador web
80, o de cualquier otro modo normal en el mantenimiento de páginas
web. En algunas realizaciones, una granja de servidores a la que
está asociado el servidor 30 puede permitir descubrir usuarios, es
decir, usuarios que no tienen credenciales de usuario asignadas,
accediendo a las aplicaciones albergadas por los servidores en la
granja. En estas realizaciones, la página de autentificación puede
proporcionar un mecanismo para permitir que un nodo cliente 20
identifique que se trata de un usuario descubierto, tal como un
botón o selección de menú. En otras de estas realizaciones, el
servidor 30 puede omitir la página de autentificación por
completo.
Aún con referencia a la Fig. 2C, una vez que el
nodo cliente 20 es autentificado por el servidor 30, el servidor
prepara y transmite al nodo cliente 20 una página HTML 88 que
incluye una ventana 58 de Entorno de Programas en la que aparecen
iconos gráficos 57, 57' que representan los programas de aplicación
a los que tiene acceso el nodo cliente 20. Un usuario del nodo
cliente 20 invoca la ejecución de una aplicación representada por el
icono 57 pinchando en dicho icono 57.
La Fig. 3A muestra un procedimiento de
comunicación ejemplar entre el nodo cliente 10, el nodo servidor
maestro, en este ejemplo el servidor 30, y el servidor 32. El nodo
cliente 10 tiene una conexión activa 72 con el servidor 32. El nodo
cliente 10 y el servidor 32 pueden usar la conexión activa 72 para
intercambiar información concerniente a la ejecución de un primer
programa de aplicación. Las credenciales de usuario del nodo
cliente 10 son almacenadas en el nodo cliente. Tal almacenamiento
de las credenciales de usuario puede ser en memoria caché o
almacenamiento persistente.
En esta realización, la aplicación de Entorno de
Programas se ejecuta en el nodo cliente 10. La visualización del
nodo cliente tiene una ventana 58 de Entorno de Programas en la que
aparece un icono gráfico 57 que representa un segundo programa de
aplicación. Un usuario del nodo cliente 10 puede iniciar el segundo
programa de aplicación pinchando dos veces en el icono 57 con el
ratón. La petición pasa al nodo servidor maestro 30 vía una
conexión 59. El nodo servidor maestro 30 indica al nodo cliente 10
vía una conexión 59 que la aplicación solicitada está disponible en
el servidor 32. El nodo cliente 10 señala al servidor 32 que
establezca una segunda conexión 70. El servidor 32 requiere las
credenciales de usuario del nodo cliente 10 para autentificar el
acceso al segundo programa de aplicación. Con una autentificación
con éxito, el nodo cliente 10 y el servidor 32 establecen la
segunda conexión 70 e intercambian información concerniente a la
ejecución del segundo programa de aplicación. Por consiguiente, el
nodo cliente 10 y el servidor 32 se comunican entre sí a través de
múltiples conexiones.
La Fig. 3B muestra un procedimiento de
comunicación ejemplar entre el nodo cliente 20, el nodo servidor
maestro, en este ejemplo el servidor 30, y los servidores 32, 34 y
36. El nodo cliente 20 tiene una conexión activa 73 con el servidor
32. El nodo cliente 20 y el servidor 32 pueden usar la conexión
activa 73 para intercambiar información concerniente a la ejecución
de un primer programa de aplicación. Las credenciales de usuario
del nodo cliente 20 son almacenadas en el servidor 32 en memoria
caché o en almacenamiento persistente.
En esta realización, la aplicación de Entorno de
Programas se ejecuta en el servidor 32. El servidor 32 incluye
software que proporciona una máquina cliente 62 basada en el
servidor, que permite al servidor 32 operar en la capacidad del
nodo cliente 20. La visualización del nodo cliente 20 tiene una
ventana 58 de Entorno de Programas en la que aparecen iconos
gráficos 57, 57' que representan un segundo programa de aplicación
y un tercer programa de aplicación, respectivamente. Un usuario del
nodo cliente 20 puede iniciar el segundo programa de aplicación
pinchando dos veces en el icono 57. La petición de inicio del
segundo programa de aplicación pasa al servidor 32 vía la conexión
activa 73, y el servidor 32 remite la petición al nodo servidor
maestro 30 (flecha 65).
El nodo servidor maestro 30 indica (flecha 65) al
servidor 32 que la aplicación solicitada está disponible en el
servidor 34. El servidor 32 contacta con el servidor 34 para
establecer una conexión 66. Para autentificar el acceso a la
aplicación, el servidor 34 obtiene las credenciales de usuario para
el nodo cliente 20 del servidor 32. El servidor 32 y el servidor 34
establecen la conexión (flecha 66) mediante la cual el servidor 32
solicita la ejecución de la segunda aplicación y el servidor 34
devuelve los resultados de la interfaz gráfica de usuario al
servidor 32. El servidor 32 remite los resultados de la interfaz
gráfica de usuario al nodo cliente 20, donde son visualizados los
resultados. Por consiguiente, la información intercambiada entre el
nodo cliente 20 y el servidor 34 "pasa a través" del servidor
32.
De forma similar, el nodo cliente 20 puede
iniciar el tercer programa de aplicación pinchando dos veces en el
icono 57'. La petición de iniciar el tercer programa de aplicación
pasa al servidor 32. El servidor 32 remite la petición al nodo
servidor maestro 30, que considera el equilibrio de carga y la
disponibilidad de programas de aplicación para decidir que servidor
puede encargarse de la petición. En este ejemplo, el nodo servidor
maestro indica que el servidor 36 puede ejecutar el tercer programa
de aplicación.
El servidor 32 y el servidor 36 establecen una
conexión (flecha 74) mediante la cual el servidor 32 solicita la
ejecución del tercer programa de aplicación, y el servidor 36
devuelve los resultados de la interfaz gráfica de usuario al
servidor 32. Para permitir la ejecución del tercer programa de
aplicación, el servidor 36 puede autentificar las credenciales de
usuario del nodo cliente 20, que son obtenidas del servidor 32. El
servidor 32 remite los resultados de la interfaz gráfica de usuario
al nodo cliente 20 donde son mostrados los resultados. Por
consiguiente, los resultados de la ejecución del tercer programa de
aplicación pasan entre el nodo cliente 20 y el servidor 36 a través
del servidor 32.
De esta ilustración debería entenderse que el
nodo cliente 20 puede ejecutar múltiples programas de aplicación a
través de una conexión con el servidor 32, mientras que el servidor
32 mantiene múltiples conexiones (en este ejemplo, una conexión con
el servidor 32 y una segunda conexión con el servidor 36). También,
el servidor 32 combina la información recibida del servidor 34 con
la información recibida del servidor 36 en una única corriente de
datos para la transmisión al nodo cliente 20.
La Fig. 3C muestra un procedimiento de
comunicación ejemplar entre el nodo cliente 20, el nodo servidor
maestro, en este ejemplo el servidor 30, y los servidores 32 y 34.
El nodo cliente 20 tiene una conexión activa 76 con el servidor 32.
El nodo cliente 20 y el servidor 32 pueden usar la conexión activa
76 para intercambiar información concerniente a la ejecución de un
primer programa de aplicación. El nodo cliente 20 puede almacenar
las credenciales de usuario en memoria caché o en un almacenamiento
persistente.
En esta realización, la aplicación de Entorno de
Programas se ejecuta en el servidor 32. La visualización del nodo
cliente 20 tiene una ventana 58 de Entorno de Programas en la que
aparece un icono gráfico 57 que representa un segundo programa de
aplicación. Un usuario del nodo cliente 20 puede iniciar el segundo
programa de aplicación pinchando dos veces en el icono 57. La
petición de iniciar el segundo programa de aplicación pasa al
servidor 32. El servidor 32 responde (es decir "vuelve a
llamar") al nodo cliente 20 devolviendo la información relativa
a la aplicación tal como el nombre de la aplicación y las
capacidades que necesita el nodo cliente 20 para ejecutar la segunda
aplicación.
Con la información proporcionada por el servidor
32, el nodo cliente comunica entonces con el nodo servidor maestro
30 vía la conexión 77 para determinar el servidor para ejecutar el
segundo programa de aplicación. En este ejemplo, dicho servidor es
el servidor 34. El nodo cliente 20 establece entonces una conexión
78 con el servidor 34. El servidor 34 solicita las credenciales de
usuario del nodo cliente 20 para autentificar el usuario del nodo
cliente 20. El segundo programa de aplicación se ejecuta en el
servidor 34, y el servidor 34 devuelve la interfaz gráfica de
usuario al nodo cliente 20 vía la conexión 78 establecida. Por
consiguiente, el nodo cliente 20 puede tener múltiples conexiones
activas entre los múltiples servidores.
La Fig. 3D muestra un proceso de comunicación
ejemplar entre el nodo cliente 20, un servidor 30 que en este
ejemplo actúa como servidor web, y el servidor 32. El nodo cliente
20 se autentifica a sí mismo al servidor 30 como se describió
anteriormente con relación a la Fig. 2C. En una realización, el
servidor 30 accede a una plantilla de visualización de salida 90,
tal como un archivo SGML, HTML o XML, para usarlo como base para la
construcción de la ventana de Entorno de Programas para transmitir
al nodo cliente 20. La plantilla puede ser almacenada en memoria
volátil o persistente asociada al servidor 30 o puede ser
almacenada en memoria masiva 92, tal como una unidad de disco o
dispositivo óptico, como se muestra en la Fig. 3D.
En esta realización, la plantilla 90 es un
documento SGML, HTML o XML estándar que contiene los marcadores
específicos de Entorno de Programas que son reemplazados por
información dinámica. Los marcadores indican al servidor 30 donde
en la visualización de salida insertar la información
correspondiente a las aplicaciones disponibles, tal como imágenes
de iconos. En una realización particular, los marcadores
específicos de Entorno de Programas son incrustados dentro de
comentarios en el interior de un archivo, permitiendo al archivo
permanecer compatible con los intérpretes estándar. En otra
realización, los marcadores específicos de Entorno de Programas son
extensiones del idioma de composición usado como base para la
plantilla.
Ejemplos de marcadores HTML que pueden ser usados
en una plantilla de acuerdo con la presente invención están
indicados a continuación en la tabla 1:
Marcador | Descripción |
Campocontrolvalorcampo | \begin{minipage}[t]{110mm} Este marcador es usado para establecer el valor de los datos que o bien persisten entre páginas web de Entorno de Programas, son establecidos por el usuario, o son usados para ayudar en la navegación a través de la página, tales como nombre de usuario, dominio, contraseña, plantilla y aplicación \end{minipage} |
DibujarEntornoProgramas | \begin{minipage}[t]{110mm} Este marcador es usado para dibujar una visualización de Entorno de Programas en esta localización en una visualización de salida. \end{minipage} |
NombreAplic | \begin{minipage}[t]{110mm} Este marcador es sustituido por el nombre de la aplicación publicada en el contexto actual. \end{minipage} |
TipoVentana | \begin{minipage}[t]{110mm} Este marcador es sustituido por el tipo de ventana de la aplicación publicada en el contexto actual. \end{minipage} |
AlturaVentana | \begin{minipage}[t]{110mm} Este marcador es substituido por la altura de ventana de la aplicación publicada en el contexto actual. \end{minipage} |
AnchoVentana | \begin{minipage}[t]{110mm} Este marcador es substituido por el ancho de ventana de la aplicación publicada en el contexto actual. \end{minipage} |
EscalaVentana | \begin{minipage}[t]{110mm} Este marcador es substituido por la escala de ventana de la aplicación publicada en el contexto actual. \end{minipage} |
NúmColoresVentana | \begin{minipage}[t]{110mm} Este marcador es substituido por la profundidad de color de la aplicación publicada en el contexto actual. \end{minipage} |
TipoSonido | \begin{minipage}[t]{110mm} Este marcador es substituido por el ajuste de sonido de la aplicación publicada en el contexto actual. \end{minipage} |
TipoVídeo | \begin{minipage}[t]{110mm} Este marcador es substituido por el ajuste de vídeo de la aplicación publicada en el contexto actual. \end{minipage} |
NivelEncriptación | \begin{minipage}[t]{110mm} Este marcador es substituido por el nivel de encriptación de la aplicación publicada en el contexto actual. \end{minipage} |
Icono | \begin{minipage}[t]{110mm} Este marcador es substituido por el icono de la aplicación publicada en el contexto actual. \end{minipage} |
Pueden ser previstos otros marcadores para
ajustar los campos de control y proporcionar procesamiento
condicional relativo a la aplicación de Entorno de Programas.
En una realización, el modelo es construido
dinámicamente usando, por ejemplo, COLD FUSION, desarrollado por
Allaire Corp. de Cambridge, Massachusetts o ACTIVE SERVER PAGES
desarrollado por Microsoft Corporation de Redmond, Washington.
Alternativamente, la plantilla puede ser estática. La aplicación de
Entorno de Programas analiza sintácticamente la plantilla,
sustituyendo los marcadores específicos de Entorno de Programas
como se indicó anteriormente. Los marcadores que no son específicos
de Entorno de Programas son abandonados en el archivo para ser
analizados sintácticamente por el programa explorador 80 que se
ejecuta en el cliente 20.
En una realización, está previsto un objeto
analizador sintáctico de plantillas que acepta una plantilla HTML
como entrada, interpreta los marcadores específicos de Entorno de
Programas presentes en la plantilla y da como salida la plantilla
original con todos los marcadores de Entorno de programas
sustituidos por el texto apropiado. El objeto analizador sintáctico
de plantillas puede ser pasado a una cookie, una cadena de
consultas URL, o un campo de control de una interfaz de servidor
web para proporcionar la información con la que los marcadores
específicos de Entorno de Programas deberían ser sustituidos.
En otra realización, la aplicación de Entorno de
Programas permite aceptar scripts (secuencias de comandos) como
información vía la interfaz de programación de aplicación. Los
scripts pueden ser escritos, por ejemplo, VBScript o Jscript. En
esta realización, el lenguaje de scripts es usado para generar
dinámicamente una visualización de salida que usa la información
devuelta por la aplicación en respuesta a consultas planteadas por
el script. Una vez que la visualización de salida es generada, es
transmitida al nodo cliente 20 para su visualización por el programa
explorador 80.
Un usuario del nodo cliente 20 puede iniciar una
aplicación pinchando dos veces con un ratón en el icono 57, 57'
mostrado en la página web del Entorno de Programas. En algunas
realizaciones, cada icono 57, 57' es una URL codificada que
especifica: la localización de la aplicación (es decir, en qué
servidores está albergada o, alternativamente, la dirección de un
servidor maestro), un comando de inicio asociado a la aplicación, y
una plantilla que identifica cómo la salida de la aplicación
debería ser visualizada (es decir, en una ventana "incrustada"
en el explorador o en una ventana separada). En algunas
realizaciones, la URL incluye un archivo, o una referencia a un
archivo que contiene la información necesaria para que el cliente
cree una conexión con el servidor que alberga la aplicación. Este
archivo puede ser creado por la aplicación de Entorno de Programas
dinámicamente. El nodo cliente 20 establece una conexión (flecha
94) con el servidor identificado como que alberga la aplicación
solicitada (en este ejemplo, servidor 32) e intercambia información
concerniente a la ejecución de la aplicación deseada. En algunas
realizaciones, la conexión 94 se hace usando el protocolo
Arquitectura de Computación Independiente (ICA), desarrollado por
Citrix Systems, Inc. de Fort Lauderdale, Florida. Así, el nodo
cliente 20 puede visualizar la salida de la aplicación en una
ventana separada del explorador web 60 o puede "incrustar" la
salida de la aplicación dentro del explorador web.
La Fig. 4 ilustra una disposición ejemplar de los
componentes de programa para una implementación basada en el
cliente de la aplicación de Entorno de Programas. Una
implementación basada en el cliente de la aplicación de Entorno de
Programas puede ser usada en una red empleando el modelo informático
basado en el servidor, en el que los servidores ejecutan la
aplicación de Entorno de Programas, o el modelo informático basado
en el cliente, en el que el nodo cliente 10 ejecuta la aplicación
de Entorno de Programas localmente. La aplicación de Entorno de
Programas incluye un componente 44 de Servicio de Entorno de
Programas (PNSVC), un componente 48 de Base de Datos de Aplicación,
un componente 52 de Interfaz de Programa de Aplicación de Entorno de
Programas (PNAPI), un componente 56 de Interfaz de usuario de
Entorno de Programas y un caché local 60.
El servidor de aplicación 30, por ejemplo,
incluye el componente 44 de servicio (PNSVC) y la base de datos de
aplicación 48. El nodo cliente 10, que es un ejemplo representativo
de un nodo cliente que puede soportar una implementación basada en
el cliente de la aplicación de Entorno de Programas, incluye la
interfaz de programa de aplicación PNAPI 52, el componente 56 de la
interfaz de usuario y el caché local 60. El PNSVC 44 comunica con
la base de datos de la aplicación 48 y con la PNAPI 52 en el nodo
cliente 10 vía el enlace de comunicaciones 62.
El enlace de comunicaciones 62 puede ser
establecido, por ejemplo, usando el protocolo ICA. ICA es un
protocolo de servicios de presentación de propósito general
diseñado para ejecutarse a través de protocolos de red estándar en
la industria, tal como TCP/IP, IPX/SPX, NetBEUI, que usa protocolos
de transporte estándar en la industria, tales como ISDN,
retransmisión de tramas y modo de transferencia asíncrono (ATM). El
protocolo ICA proporciona canales virtuales, que son conexiones de
transmisión orientados a la sesión que pueden ser usadas por un
código de capa de aplicación para producir comandos para
intercambiar datos. Los comandos de canal virtual están diseñados
para estar íntimamente integrados con las funciones de los nodos
cliente. Un tipo de conexión de canal virtual soportado por el
protocolo ICA es un canal virtual de Entorno de Programas.
El protocolo de canal virtual de Entorno de
Programas puede incluir cuatro grupos de comandos:
(1) comandos relativos a la inicialización;
(2) comandos relativos a la autentificación única
que puede ser soportada por cada nodo cliente que quiere una copia
de las credenciales de usuario;
(3) comandos referidos a los datos de aplicación
para implementar la interfaz de usuario de Entorno de Programas;
y
(4) comandos relativos a la devolución de
llamada de inicio de aplicación para ejecutar la interfaz de
usuario en un servidor de aplicación.
La base de datos de aplicación 48 es un caché del
usuario autorizado e información de grupo para todas las
aplicaciones públicas (es decir, publicadas) en una granja de
servidores o en un grupo de dominios confiados. Cada servidor en
una granja de servidores puede mantener su propia información
relativa a la aplicación en almacenamiento persistente y constituir
la base de datos 48 en almacenamiento volátil. En otra realización,
toda la información relativa a la aplicación recogida en la base de
datos 48 puede ser almacenada en almacenamiento persistente y
hacerse accesible para cada uno de los otros servidores en la
granja de servidores. La base de datos 48 puede ser implementada en
un formato propietario (por ejemplo, como una lista enlazada en
memoria) o usando Servicios de Directorio de Novell (NDS) o
cualquier servicio de directorios que se adhiera al estándar X.500
definido por la Unión Internacional de Telecomunicaciones (UIT)
para directorios electrónicos distribuidos.
La base de datos de aplicación 48 incluye una
lista de los servidores de aplicación. Cada servidor en la lista
tiene un conjunto de aplicaciones asociado. Asociada a cada
aplicación está una información relativa a la aplicación que puede
incluir el nombre de la aplicación, una lista de servidores, y
usuarios del cliente que están autorizados a usar dicha
aplicación. Un ejemplo muy simplificado de la información relativa a
la aplicación mantenida en la base de datos está ilustrada por la
siguiente tabla 2. Los usuarios A y B son usuarios de los nodos
cliente 10, 20, "n/a" indica que la aplicación es albergada,
pero no está disponible para los usuarios del nodo cliente, y
"-" indica que la aplicación no está albergada.
Aplicaciones | ||||
Nombre de Servidor | Hoja de Cálculo | Base de Datos del Cliente | Procesador de texto | Calculador |
Servidor 30 | Usuario A | Usuario B | n/a | - |
Servidor 32 | Usuario B | n/a | Usuario A | - |
Servidor 34 | - | - | - | Usuario A |
Usuario B |
La Tabla 2 muestra una lista de servidores 30,
32, 34, las aplicaciones albergadas por los servidores, (Hoja de
Cálculo, Base de datos de cliente, Procesador de texto y
Calculador), y aquellos usuarios que están autorizados a usar las
aplicaciones. Por ejemplo, el servidor 30 alberga el programa de
Hoja de Cálculo, la base de datos de cliente y el procesador de
texto. El usuario A está autorizado a usar la hoja de cálculo, el
usuario B está autorizado a usar la base de datos del cliente, y
ningún usuario está autorizado a usar el procesador de texto. Hay
que entender que puede ser usadas otras técnicas para indicar
quienes están autorizados a usar una aplicación particular. Por
ejemplo, la información de usuario almacenada en la base de datos
puede ser usada para indicar aquellos usuarios que no están
autorizados a usar una aplicación particular en lugar de aquellos
que sí están autorizados.
Para obtener la información que está almacenada
en la base de datos 48, el servidor 30 obtiene la información
relativa a la aplicación de cada uno de los otros servidores de la
granja de servidores considerando las aplicaciones en aquellos
servidores, incluyendo la información de control que indica a qué
usuarios del cliente y servidores se les permite acceder a cada
aplicación particular. La información relativa a la aplicación
mantenida en la base de datos puede persistir o no a través de
rebotes del servidor 30.
La base de datos de aplicación 48 puede ser una
base de datos central que está almacenada en los servidores de
aplicación 30, 32 y 34, y es accesible a todos los servidores de la
granja de servidores. Por consiguiente, la información relativa a
la aplicación puede estar disponible para su uso por otros
servidores tales como aquellos servidores que realizan la
autentificación de la aplicación publicada durante la entrada en la
sesión y el inicio de la aplicación. En otra realización, la base
de datos de aplicación 48 puede ser mantenida en cada uno de los
servidores de aplicación 30, 32 y 34 basándose en la información
que cada servidor obtiene de las comunicaciones con cada uno de los
otros servidores de la granja de servidores.
Cada servidor 30, 32, 34 y 36 que tiene la
aplicación de Entorno de Programas instalada en él ejecuta el
software PNSVC 44. El software PNSVC 44 que opera en cada servidor
30, 32, 34 y 36 establece un enlace de comunicaciones (por ejemplo,
una tubería con nombre) con cada uno de los otros servidores. Los
servidores 30, 32, 34 y 36 intercambian la información relativa a la
aplicación en las tuberías con nombre. En otra realización, el
software PNSVC 44 recoge la información relativa a la aplicación de
los otros servidores de la granja de servidores a través de
llamadas de registro remoto (por ejemplo, el componente de servicio
44 transmite un datagrama a otros servidores en la pluralidad
solicitando la información relativa a la aplicación correspondiente
a los programas de aplicación albergados por aquellos servidores).
El software PNSVC 44 también mantiene las relaciones de grupos y
usuarios para las aplicaciones publicadas en la base de datos de
aplicación 48 y accede a la información cuando autentifica un
usuario del cliente. Un administrador del servidor 30 puede usar
una interfaz de usuario para configurar el PNSVC 44.
Otras funciones del software PNSVC 44 incluyen
implementar los servicios y funciones requeridos por la PNAPI 52 y
comunicar con la PNAPI 52 en el nodo cliente 10 usando un
controlador de dispositivo virtual de Entorno de Programas (VDPN).
El VDPN opera de acuerdo con el protocolo de canal virtual de
Entorno de Programas descrito anteriormente para establecer y
mantener una conexión ICA.
La PNAPI 52 es un conjunto de funciones de
software o servicios que son usados por la aplicación de Entorno de
Programas para realizar varias aplicaciones (por ejemplo, abrir
ventanas en una pantalla de visualización, abrir archivos, y
visualizar cajas de mensajes). La PNAPI 52 proporciona un mecanismo
genérico para iniciar objetos de aplicación (por ejemplo, iconos)
producidos por la ejecución de la aplicación de Entorno de Programas
y objetos de aplicación en una interfaz de usuario del cliente
heredada (es decir, predecesora o existente durante algún tiempo).
Cuando el nodo cliente 10 inicia una aplicación disponible, el
mecanismo de inicio puede iniciar la aplicación en el servidor 30,
si es necesario (por ejemplo, cuando un nodo cliente 10 no tiene
los recursos para ejecutar localmente la aplicación).
La PNAPI 52 proporciona toda la información de
aplicación publicada al componente 56 de interfaz de usuario para
su visualización en la pantalla 12 (Fig. 1) del nodo cliente 10. La
PNAPI 52 también gestiona las entradas de la granja de servidores
en una base de datos local de credenciales de entrada (por ejemplo,
contraseñas) por usuarios del nodo cliente 10 que soportan la
característica de autentificación simple. Las credenciales pueden
ser persistentes o no a través de botados (ciclos de conexión y
desconexión) del nodo cliente 10.
La PNAPI 52 proporciona gestión automática y
manual para los objetos de la aplicación de Entorno de Programas
almacenados en el caché local 60. El caché local 60 puede ser
refrescado manualmente por el usuario del nodo cliente 10 o a una
velocidad de refresco definible por el usuario, o por el servidor en
cualquier momento durante una conexión. En una implementación
Windows, la PNAPI 52 puede crear asociaciones de archivos de
aplicación remotos y gestionar el menú "Inicio" y los iconos
del escritorio para atajos de objetos de aplicación.
El módulo de interfaz de usuario 56 interactúa
con la PNAPI 52 y puede ser un superconjunto funcional de una
interfaz cliente-usuario existente (por ejemplo,
Gestor de Aplicaciones Remotas). El módulo de interfaz de usuario 56
accede a la información almacenada en el cache local 60 a través de
la PNAPI 52 y presenta visualmente dicha información al usuario en
la pantalla de visualización 12 (Fig. 1) del nodo cliente 10. La
información visualizada es una mezcla de información generada por
un usuario del nodo cliente 10 e información obtenida por la
aplicación de Entorno de Programas. El módulo de interfaz de
usuario 56 puede también mostrar al usuario todas las aplicaciones
que el usuario está ejecutando actualmente y todas las sesiones
activas y desconectadas.
En una realización basada en ventanas, el módulo
de interfaz de usuario 56 puede presentar una variedad de
componentes gráficos, tales como menús de ventanas y desplegables,
para ser visualizados en la pantalla de visualización 12 (Fig. 1).
A una visualización de una combinación de tales componentes de
interfaz gráfica de usuario se hace referencia generalmente como un
"escritorio". Un escritorio producido por el módulo de interfaz
de usuario 56 puede incluir una ventana de Entorno de Programas que
muestre el entorno de programas de aplicación disponibles al
usuario del nodo cliente 10 para su uso. Estos programas de
aplicación son una combinación filtrada de las aplicaciones
publicadas albergadas por una granja de servidores en la red. El
módulo de interfaz de usuario 56 puede generar una ventana de
Entorno de Programas para cada granja de servidores o combinar las
aplicaciones de diferentes granjas de servidores bajo una única
ventana de Entono de Programas.
A un nivel superior, la ventana de Entorno de
Programas incluye una carpeta para cada granja de servidores.
Pinchar en una de las carpetas con el ratón 18 (Fig. 1) produce una
ventana que contiene una representación (por ejemplo, un icono) de
cada aplicación albergada disponible para el usuario, por ejemplo,
véanse las figuras 6A y 6B. La ventana de Entorno de Programas se
convierte en el foco para el inicio de las aplicaciones publicadas,
y el módulo de interfaz de usuario 56 puede ser usado para iniciar
las aplicaciones a través de la PNAPI 52. Por ejemplo, el usuario
del nodo cliente 10 puede usar el ratón 18 para seleccionar uno de
los iconos mostrados e iniciar la aplicación asociada.
Una característica de una implementación basada
en el cliente es que el usuario puede explorar los objetos
mostrados en la ventana de Entorno de Programas aunque el nodo
cliente esté desconectado, es decir, la conexión ICA 62 esté
inactiva. También, un usuario del nodo cliente 10 puede arrastrar
objetos de aplicación y carpetas fuera de la ventana de Entorno de
Programas y dentro de otros componentes gráficos (por ejemplo,
otras ventanas, carpetas, etc.) del escritorio.
La Fig. 5 muestra una disposición ejemplar de
componentes de programa para una implementación basada en el
servidor de la aplicación de Entorno de Programas. Los componentes
incluyen un componente de Servicio (PNSVC) 44', un componente de
Base de Datos de Aplicación 48', un componente 52' de interfaz de
Programa de Aplicación (PNAPI), un componente de Interfaz de Usuario
56' y un cache local 60'. Cada componente de software 44', 48',
52', 56' y 60' está instalado en el servidor de aplicación 30'. Los
componentes de software para la implementación basada en el
servidor corresponden a los componentes de software para la
implementación basada en el cliente de la Fig. 4. La funcionalidad
de cada componente de software basado en el servidor es similar a
la homóloga basada en el cliente, con las diferencias o
capacidades añadidas descritas a continuación. El PNSVC 44' comunica
con la base de datos de la aplicación 48' y con la PNAPI 52' usando
llamadas de procedimiento locales. La PNAPI 52' comunica también
con el módulo de interfaz de usuario 56' y el caché local 60'.
De forma similar a la descrita en la Fig. 4 para
el nodo cliente 10, el nodo cliente 20 entra en la red 40 (Fig. 1),
el servidor 30' desarrolla y mantiene una base de datos que contiene
la información relativa a la aplicación recogida de los otros
servidores 32, 34 en la granja de servidores y un enlace de
comunicación se establece entre el servidor 30' y el nodo cliente
20. El servidor de aplicación 30' está en comunicación con el nodo
cliente 20 vía una conexión de canal ICA 62'. La conexión de canal
62' puede ser establecida por medio de un protocolo de canal
virtual ICA (por ejemplo, cableado fino). El protocolo de cableado
fino puede ser usado para transmitir comandos de presentación desde
aplicaciones basada en Windows que se están ejecutando en el
servidor de aplicación 30' al nodo cliente 20. Para un usuario del
nodo cliente 20, la aplicación parece estar ejecutándose en el nodo
cliente 20. El nodo cliente 20 puede incluir un programa de
aplicación de Gestor de Aplicaciones Remotas 64 que comunica con el
servidor de aplicación 30' vía la conexión de canal ICA 62'.
Para ejecutar la aplicación de Entorno de
Programas en una implementación basada en el servidor, el usuario
del nodo cliente 20 se conecta a un escritorio inicial (en el
servidor 30') e inicia la aplicación de Entorno de Programas desde
dentro del entorno del escritorio. La conexión al escritorio inicial
puede producirse automáticamente, por ejemplo, vía un script de
entrada del nodo cliente 20, vía una entrada en el grupo INICIO en
Windows 95, o por medio de otro mecanismo específico del servidor
gestionado centralmente. Toda la gestión de aplicaciones remotas e
inicio es realizada a través de este escritorio inicial.
De forma similar a la descrita en la Fig. 4 para
el servidor 30, el servidor 30' utiliza las credenciales de usuario
para determinar aquellos programas de aplicación que están
autorizados para el uso por parte del usuario del nodo cliente 20.
Una ventana gráfica de Entorno de Programas es devuelta al nodo
cliente 20 y visualizada en la pantalla 22 del cliente (Fig. 1).
Esta ventana puede contener iconos que representen los programas de
aplicación disponibles y posiblemente los no disponibles que están
en el entorno de programas del nodo cliente 20.
El usuario del nodo cliente 20 puede seleccionar
e iniciar uno de los programas de aplicación mostrados en la ventana
de Entorno de Programas. Cuando se inicia una aplicación, la
aplicación de Entorno de Programas puede ejecutar la aplicación en
el mismo servidor 30', donde sea aplicable, teniendo en cuenta los
requisitos de equilibrio de carga entre los servidores y la
disponibilidad de la aplicación en dicho servidor 30'. La PNAPI 52'
puede incluir un mecanismo de inicio para iniciar una aplicación
remota localmente en el servidor 30' cuando el servidor 30' es
nominado para iniciar la aplicación. Cuando es necesario un
servidor diferente para ejecutar la aplicación, la aplicación de
Entorno de Programas puede iniciar la aplicación vía el servidor 30'
(es decir, cliente basado en el servidor) usando ventanas para
presentar la aplicación en el escritorio del nodo cliente 20 como
se describió antes en la Fig. 3B.
En una realización, la aplicación de Entorno de
Programas basada en la web incluye un grupo de objetos que
gestionan diversos aspectos de la aplicación. En una realización,
la aplicación incluye tres clases de objetos primarios que "se
conectan" a un servidor web; una clase de objetos de pasarela,
una clase de objetos de credenciales; y una clase de objetos de
aplicaciones. En algunas realizaciones específicas, las clases de
objetos son proporcionadas como JavaBeans. Las tres clases de
objetos primarias facilitan: la validación de las credenciales de
usuario dentro de una granja de servidores; la generación de listas
de aplicaciones publicadas a las que un usuario especificado puede
acceder; la provisión de información detallada acerca de una
aplicación publicada específica, y la conversión de la información
de la aplicación publicada en un formato compatible ICA.
Cuando se proporciona como JavaBeans, a los
objetos se puede acceder de varias formas diferentes. Por ejemplo,
pueden estar compilados como objetos COM y puestos a disposición
del servidor web como componentes ActivoX. En otra realización, las
JavaBeans pueden ser usadas en su forma nativa tal como cuando el
servidor utiliza tecnología de páginas de servidor Java. En todavía
otra realización, las JavaBeans pueden ser lanzadas y usadas
directamente en un servlet Java. En todavía otra realización, el
servidor 30 puede lanzar las JavaBeans directamente como objetos
COM.
Una clase de objetos de credenciales gestiona la
información necesaria para autentificar un usuario en una granja de
servidores objetivo. Un objeto de credenciales pasa las credenciales
de usuario almacenadas a otros objetos del Entorno de Programas. En
algunas realizaciones, el objeto de credenciales es una clase
abstracta que no puede ser lanzada y representa unas credenciales de
usuario. Varias extensiones de clase puede ser previstas para
permitir que puedan usarse diferentes mecanismos de autentificación,
incluyendo biométricos, tarjetas inteligentes, mecanismos basados
en testigos, tales como generación de contraseñas
pregunta-respuesta y basadas en el tiempo, u otros.
Por ejemplo, puede ser prevista una extensión de "credenciales
sin codificar" que almacene el dominio del nombre de usuario y
contraseña en texto plano.
Una clase de objetos de pasarela se encarga de
las comunicaciones con una granja de servidores objetivo. En una
realización, la clase de objetos de pasarela está prevista como
una clase Java abstracta que no puede ser lanzada. Un objeto de
pasarela particular puede recuperar información de la aplicación
mediante la comunicación con una granja de servidores usando un
protocolo particular, leyendo la información de la aplicación
almacenada en caché, una combinación de estos dos métodos u otros
diversos métodos.
Como se advirtió antes, la clase de objetos de
pasarela almacena en caché información para minimizar la
comunicación con una granja de servidores objetivo. Las extensiones
al objeto de pasarela pueden ser previstas para comunicar con la
granja de servidores sobre protocolos específicos, tales como HTTP.
En una realización está prevista una clase de extensión que permite
que el objeto de pasarela comunique con la granja de servidores vía
tuberías con nombre WINDOWS NT. El objeto de pasarela puede
proporcionar un enganche de interfaz de programación de aplicación
que permita que otros objetos del Entorno de Programas consulten al
objeto acerca de información de la aplicación.
Una clase de objetos de aplicación contiene
información acerca de aplicaciones publicadas y devuelve la
información acerca de las aplicaciones albergadas por la granja de
servidores para crear la página web de Entorno de Programas. La
clase de objetos de aplicaciones crea objetos que representan
aplicaciones recuperando la información relativa a las aplicaciones,
ya sea de un objeto creado por el objeto pasarela o directamente de
los servidores en la granja de servidores. Un objeto de aplicación
actúa como un recipiente para ciertas propiedades de la aplicación,
algunas ajustables y algunas no ajustables, tales como: el nombre
de la aplicación (no ajustable); el porcentaje del escritorio del
cliente que debería ocupar la ventana de cliente (ajustable); el
ancho de la ventana de cliente, en pixels, para esta aplicación
(ajustable); la altura de la ventana de cliente, en pixels, para
esta aplicación (ajustable); el número de colores a usar cuando se
conecta a la aplicación (ajustable); la severidad de la restricción
de ancho de banda de audio (ajustable); el nivel de encriptación a
usar cuando se conecta la aplicación (ajustable); el nivel de
vídeo a usar cuando se conecta a esta aplicación (ajustable); si la
aplicación debiera ser colocada en el menú de inicio del cliente
(ajustable); si la aplicación debiera estar colocada en el
escritorio de cliente (ajustable); la identidad de la carpeta del
Entorno de Programas a la que pertenece la aplicación (ajustable);
la descripción de la aplicación (ajustable); la fuente del archivo
de iconos de gráficas para la aplicación (ajustable); el tipo de
ventana que debería usarse cuando se conecta a la aplicación (no
ajustable); y si hacer caso omiso de los parámetros por defecto
para el objeto.
La clase base de aplicaciones contiene
información acerca de las aplicaciones publicadas y es usada por la
clase base de pasarela para devolver información acerca de
aplicaciones albergadas por la granja de servidores para crear la
página web de Entorno de Programas.
La Fig. 6A es un cuadro de pantalla de una
ventana 120 de Entorno de Programas ejemplar que puede ser mostrada
en la pantalla 12, 22 (Fig. 1) del cualquier nodo cliente 10, 20
después de que la aplicación Entorno de Programas se ha ejecutado.
La ventana 120 incluye iconos gráficos 122. Cada icono 122
representa un programa de aplicación que es albergado por uno de los
servidores 30, 32, 34 y 36 en la red 40 (Fig. 1). Cada aplicación
representada está disponible al usuario del nodo cliente para su
ejecución. El usuario puede seleccionar e iniciar una de las
aplicaciones usando el ratón 18, 28 o el teclado 14, 24.
La Fig. 6B es un cuadro de pantalla de otra
ventana 124 de Entorno de Programas ejemplar que puede ser mostrada
en la pantalla 18, 22 de cualquier nodo cliente 10, 20 después de
que se ha ejecutado la aplicación de Entorno de Programas. La
ventana 124 incluye iconos gráficos 126, 128. Cada icono 126, 128
representa un programa de aplicación que es albergado por uno de los
servidores 30, 32, 34 y 36 en la red 40. Cada programa de
aplicación representado por uno de los iconos 126 está disponible
al usuario del nodo cliente 10, 20 para su ejecución. El usuario
puede seleccionar e iniciar una de las aplicaciones usando el ratón
18, 28 o el teclado 14, 24. Para contextos de entorno de programas
basados en la web, los cuadros de pantalla de las figuras 6A y 6B
son similares, excepto en que los iconos 122, 166, 128 se muestran
dentro de una ventana de explorador.
Cada programa de aplicación representado por uno
de los iconos 128 no está disponible para el usuario del nodo
cliente 10, 20, aunque tales aplicaciones están presentes en la
granja de servidores. La no disponibilidad de estos programas de
aplicación puede ser advertida en la pantalla de visualización (por
ejemplo, puede ser trazada una "X" a través de los iconos 128).
Un intento de iniciar tal programa de aplicación puede activar un
mensaje que indique que el usuario no está autorizado a usar la
aplicación.
La Fig. 7 muestra un procedimiento ejemplar por
medio del cual un usuario de cualquier nodo cliente 10, 20 puede
ser informado acerca de la disponibilidad de las aplicaciones
albergadas por los servidores de aplicación 30, 32, 34 y 36 en la
red. En la etapa 80, el nodo cliente 10, 20 requiere un servicio de
entrada de uno de los servidores, por ejemplo, el servidor 32. El
servidor 32 requiere credenciales de usuario válidas para
establecer la conexión. El servidor 32 recibe las credenciales de
usuario del nodo cliente 10 (etapa 82), y autentifica al usuario
para la entrada (etapa 84). Un escritorio es visualizado en el nodo
cliente 10, 20 (etapa 85). El escritorio puede incluir un icono
gráfico que represente el programa de aplicación de Entorno de
Programas.
En la etapa 86, el servidor 32 de la aplicación
establece una conexión con cada uno de los otros servidores 30, 34 y
36 para intercambiar información relativa a la aplicación, como se
describió antes, correspondiente a los programas de aplicación
albergados en dichos servidores (etapa 88). En la etapa 90, el
servidor de aplicación 32 desarrolla y mantiene una base de datos de
la información relativa a la aplicación recogida. Cada uno de los
otros servidores 30, 34, 36 en la granja de servidores puede
desarrollar una base de datos equivalente a la base de datos del
servidor 32 y de forma similar al servidor 32. En otra realización,
la base de datos del servidor 32 puede ser una base de datos
centralizada que sea accesible a cada uno de los otros servidores de
aplicación 30, 34, 36 en la granja de servidores. La recogida de
información relativa a la aplicación puede producirse
independientemente o ser activada por la petición del nodo cliente
10, 20 para entrar a la granja de servidores 38.
En la etapa 92, el nodo cliente 10, 20 puede
solicitar la ejecución de un programa de aplicación desde la
visualización del escritorio. El nodo servidor maestro puede
procesar la petición y, usando una evaluación de equilibrio de
cargas y disponibilidad de la aplicación como se describió antes,
determinar el servidor de aplicación para proporcionar el servicio
al nodo cliente 10, 20 (etapa 94). Por ejemplo, el servidor de
aplicación 32 puede ser seleccionado para servir a la petición con
el nodo cliente 10, 20. En la etapa 96, el nodo cliente 10, 20
establece un enlace de comunicaciones con el servidor 32. El
servidor 32 y el nodo cliente 10, 20 puede comunicarse según el
protocolo ICA apropiado para dicho nodo cliente como se describió
antes.
También en respuesta a esta petición de ejecutar
el programa de aplicación, el nodo servidor maestro 30 o el servidor
32 puede ejecutar la aplicación de Entorno de Programas (etapa 93) y
pasar los resultados al nodo cliente 10, 20, aunque el nodo cliente
10, 20 pueda no haber solicitado el programa de aplicación PN.
Cuando se ejecuta el programa de aplicación PN, el nodo servidor
maestro 30 o el servidor 32 filtra la información relativa a la
aplicación en la base de datos usando las credenciales de usuario
(etapa 100). El resultado del filtrado de la base de datos determina
aquellos programas de aplicación que son entorno del nodo cliente
10, 20. Este entorno de programas de la información de la aplicación
disponible es pasado al nodo cliente 10, 20 (etapa 102) y
visualizado en la pantalla 12, 22 del cliente en una ventana gráfica
de Entorno de Programas (etapa 104).
En otras realizaciones, la ventana de Entorno de
Programas puede incluir aplicaciones que están en la granja de
servidores pero no disponibles para su uso por parte del nodo
cliente 10, 20. En una implementación basada en Windows, los
programas de aplicación disponibles (y no disponibles) pueden ser
representados mediante iconos. El usuario del nodo cliente 10, 20
puede seleccionar e iniciar uno de los programas de aplicación
mostrados en la ventana de Entorno de Programas.
La presente invención puede ser prevista como uno
o más programas legibles por el ordenador realizados en uno o más
artículos manufacturados. El artículo manufacturado puede ser un
disquete, un disco duro, un CD ROM, una tarjeta de memoria flash,
una PROM, una RAM, una ROM o una cinta magnética. En general, los
programas legibles por el ordenador pueden ser implementados en
cualquier lenguaje de programación. Algunos ejemplos de lenguajes
que pueden ser usados incluyen C, C++ o JAVA. Los programas de
software pueden ser almacenados en uno o más artículos de
manufactura como código objeto.
Aunque la invención se ha mostrado y descrito con
referencia a realizaciones preferidas específicas, debería ser
entendido por aquellos expertos en la técnica que pueden hacerse
varios cambios en forma y detalle en la misma sin salirse del
alcance de la invención según está definida en las siguientes
reivindicaciones.
Claims (14)
1. Método para visualizar cada programa de
aplicación de programas de aplicación albergados en una pluralidad
de servidores (30, 32, 34) de una red que está disponible para su
uso por parte de un sistema cliente, comprendiendo el método las
etapas de:
(a) recibir credenciales de usuario asociadas a
la identidad del usuario del sistema cliente (10, 20);
(b) mantener la información relativa a la
aplicación correspondiente a cada programa de aplicación que está
albergado por cada servidor (30, 32, 34);
(c) determinar si el usuario del sistema cliente
(10, 20) está autorizado a usar cada programa de aplicación
albergado por los servidores (30, 32, 34) basándose en las
credenciales de usuario; y
(d) transmitir información al sistema cliente
(10, 20) en respuesta a la información relativa a la aplicación,
describiendo la información transmitida cada programa de aplicación
que el usuario del sistema cliente (10, 20) está autorizado a
usar.
2. Método según la reivindicación 1, en el que al
menos uno de la pluralidad de servidores es un servidor principal,
y en el que la información relativa a la aplicación es recibida por
el servidor principal y el servidor principal transmite al sistema
cliente la información que describe cada aplicación disponible que
el usuario del sistema cliente está autorizado a usar.
3. Método según la reivindicación 2, que
comprende además la etapa de establecer una conexión entre el
sistema cliente (10, 20) y el servidor principal usando un
protocolo de Arquitectura de Computación Independiente (ICA).
4. Método según la reivindicación 3, en el que el
protocolo ICA establece un canal virtual para transmitir la
información al sistema cliente (10, 20) indicando cada programa de
aplicación albergado que está disponible para el sistema
cliente.
5. Método según la reivindicación 2, que
comprende además las etapas de: establecer una conexión entre el
sistema cliente (10) y el servidor principal (30); recibir una
petición para ejecutar uno de los programas de aplicación
albergados disponibles; y establecer en respuesta a la petición una
segunda conexión entre el sistema cliente (10) y el servidor
principal (30) para intercambiar información asociada a la
ejecución del programa de aplicación solicitado.
6. Método según la reivindicación 2, que
comprende además las etapas de: establecer una primera conexión
entre el sistema cliente (20) y el servidor principal (32); recibir
una petición para ejecutar uno de los programas de aplicación
albergados disponibles; establecer en respuesta a la petición una
segunda conexión entre el servidor principal (32) y un segundo
servidor (34) que alberga la aplicación solicitada; e intercambiar
información asociada a una ejecución del programa de aplicación
solicitado entre el segundo servidor (34) y el sistema cliente (20)
vía el servidor principal (32), y opcionalmente, comprende además
las etapas de: recibir una segunda petición para ejecutar un
segundo de los programas de aplicación albergados disponibles;
establecer en respuesta a la segunda petición una tercera conexión
entre el servidor principal (32) y un tercer servidor (36) que
alberga la segunda aplicación solicitada; e intercambiar
información asociada a la ejecución del segundo programa de
aplicación solicitado entre el tercer servidor (36) y el sistema
cliente (20) vía el servidor principal (32), y, también
opcionalmente, comprende además la etapa de combinar la información
recibida del segundo servidor (34) y el tercer servidor (36) para
la transmisión al sistema cliente vía la primera conexión.
7. Método según la reivindicación 2 y o bien:
- a)
- que comprende además las etapas de: establecer una primera conexión entre el sistema cliente (20) y el servidor principal (32); recibir una petición para ejecutar uno de los programas de aplicación albergados disponibles; y en el que la etapa de transmitir información al sistema cliente es en respuesta a la petición de ejecutar el programa de aplicación;
- b)
- en el que la información transmitida se muestra en los iconos (122) del sistema cliente que representan los programas de aplicación disponibles en una ventana de interfaz gráfica de usuario;
- c)
- que comprende además la etapa de comunicar, por medio del servidor principal (32), con cada uno de los otros servidores (34; 36) en la pluralidad para determinar qué programas de aplicación están albergados por aquellos otros servidores;
- d)
- que comprende además la etapa de establecer un enlace de comunicaciones entre el servidor principal (32) y el sistema cliente (20), en el que el enlace de comunicaciones incluye al menos un canal virtual;
- e)
- en el que el servidor en el que el programa de aplicación iniciado está ejecutándose en uno de una pluralidad de servidores distinto del servidor principal y que comprende además las etapas de: autentificar en el servidor principal al usuario del sistema cliente (20) basándose en las credenciales de usuario recibidas; y ejecutar el programa de aplicación iniciado sin requerir otra entrada de credenciales de usuario por parte del usuario del sistema cliente;
- f)
- en el que el servidor principal (32) transmite la información de la aplicación disponible en respuesta a una petición de información de aplicación disponible por parte del sistema cliente (20);
- g)
- que comprende además la etapa de mantener una base de datos (48) en el servidor principal (30) para almacenar la información relativa a la aplicación, en el que la base de datos (48) es accesible para cada uno de los otros servidores de la pluralidad;
- h)
- que comprende además la etapa de mantener una base de datos (48) en cada uno de la pluralidad de servidores para almacenar la información relativa a la aplicación; o
- i)
- en el que la información transmitida describe además al usuario del sistema cliente (10) cada programa de aplicación albergado que el usuario del sistema cliente no está autorizado a usar.
8. Método según la reivindicación 2, en el que la
etapa (d) comprende:
(d-a) crear una visualización de
salida que indica cada programa de aplicación albergado que está
disponible para su ejecución por el sistema cliente; y
(d-b) transmitir la visualización
de salida creada al sistema cliente (10, 20), y, o bien:
- a)
- en el que la etapa (a) comprende además recibir por un servidor web información relativa a la aplicación correspondiente a los programas de aplicación albergados por al menos uno de una pluralidad de servidores (30, 32, 34), y, opcionalmente, comprende además las etapas de:
- (e) analizar sintácticamente un documento SGML;
- (f) recuperar, en respuesta al documento SGML analizado sintácticamente, información relativa a la aplicación correspondiente a programas de aplicación albergados por al menos uno de la pluralidad de servidores (30, 32, 34),
- b)
- en el que la etapa (b) comprende recibir por el sistema principal credenciales de usuario biométricas de un sistema cliente (10, 20),
- c)
- en el que la etapa (b) comprende recibir por el sistema servidor principal credenciales de usuario encriptadas desde un sistema cliente (10, 20),
- d)
- en el que la etapa (d-a) comprende además
- (a) recibir por el sistema principal credenciales de usuario desde un sistema cliente (10, 20)
- (b) autentificar en el servidor principal al usuario al usuario del sistema cliente (10, 20) basándose en las credenciales de usuario recibidas; y
- (c) ejecutar uno seleccionado de los programas de aplicación disponibles albergados por uno de la pluralidad de servidores (30, 32, 34) sin requerir otra recepción de credenciales de usuario del sistema cliente (10, 20);
- e)
- en el que la etapa (d-a) comprende crear una visualización de salida SGML que indique cada programa de aplicación albergado que está disponible para su ejecución por parte del sistema cliente (10, 20);
- f)
- en el que la etapa (d-a) comprende crear una visualización de salida HTML que indica cada programa de aplicación albergado que está disponible para su ejecución por parte del sistema cliente (10, 20);
- g)
- en el que la etapa (d-a) comprende crear una visualización de salida que represente los programas de aplicación disponibles como iconos en una ventana de interfaz gráfica de usuario.
- h)
- en el que la etapa (d-b) comprende transmitir la visualización de salida creada al sistema cliente (10, 20) usando HTTP;
- i)
- que comprende además la etapa de:
- (e) recibir una petición para ejecutar uno de los programas de aplicación albergados disponibles; y
- (f) ejecutar el programa de aplicación solicitado, y, opcionalmente, en el que la etapa (f) comprende además ejecutar la aplicación solicitada en una ventana contenida en la página de visualización de salida o que comprende además la etapa de establecer una conexión entre el sistema cliente (10, 20) y el servidor (30, 32, 34) que alberga la aplicación solicitada, o
- j)
- que comprende además la etapa de comunicación, por parte del servidor principal, con una pluralidad de servidores para determinar los programas de aplicación albergados por la pluralidad de servidores.
9. Método según cualquier reivindicación
precedente, en el que la etapa (d) comprende:
(d-a) crear, en respuesta a la
determinación, una visualización de salida que indica cada programa
de aplicación albergado que está disponible para su ejecución por
parte del sistema cliente (10); y
(d-b) transmitir la visualización
de salida creada al sistema cliente (10).
10. Método según la reivindicación 7, que
comprende además establecer, en respuesta a la recepción de la
petición de ejecución de uno de los programas de aplicación
albergados disponibles, una segunda conexión entre el sistema
cliente (10) y un servidor (30, 32, 34) que alberga la aplicación
solicitada.
11. Método según la reivindicación 2, y, o
bien:
- a)
- en el que el servidor principal (30, 32, 34) usa las credenciales de usuario para determinar si el usuario del sistema cliente (10, 20) está autorizado a acceder al servidor principal y determinar aquellos programas de aplicación que el usuario del sistema cliente está autorizado a ejecutar;
- b)
- que comprende además transmitir por cada servidor (30, 32, 34) información relativa a la aplicación asociada a cada programa de aplicación albergado por dicho servidor a una base de datos (48) centralizada; o
- c)
- que comprende además transmitir por cada servidor (30, 32, 34) información relativa a la aplicación asociada a cada programa de aplicación albergado por dicho servidor a cada uno de los otros servidores.
12. Servidor que comprende: un módulo de servicio
que recoge la información relativa a la aplicación correspondiente
a programas de aplicación que están albergados por la pluralidad de
servidores (30, 32, 34) y que son ejecutados en uno de la
pluralidad de servidores cuando son iniciados para ejecución; un
receptor que recibe credenciales de usuario asociadas a la identidad
del usuario del sistema cliente; una base de datos (48) que
almacena la información relativa a la aplicación recogida en la que
el módulo de servicio determina para cada programa de aplicación
albergado por la pluralidad de servidores si dicho programa de
aplicación albergado está disponible para su ejecución por parte del
sistema cliente basándose en las credenciales de usuario y en la
información relativa a la aplicación almacenada en la base de datos
(48); y un transmisor que transmite información al sistema cliente
(10, 20) que indica al sistema cliente cada programa de aplicación
albergado al que se le permite acceder al usuario del mismo para su
ejecución en un servidor que alberga dicho programa de
aplicación.
13. Servidor según la reivindicación 12, y, o
bien:
- a)
- en el que dicho módulo de servicio transmite un datagrama a otros servidores en la pluralidad para recoger la información relativa a la aplicación correspondiente a los programas de aplicación albergados por dichos servidores;
- b)
- en el que la base de datos (48) incluye información del cliente;
- c)
- en el que dicho transmisor transmite información de la aplicación disponible usando un protocolo de comunicaciones de canal virtual.
14. Servidor según la reivindicación 12, que
comprende una máquina de creación de visualización de salida que
crea visualizaciones de salida que indican cada programa albergado
disponible para su ejecución por el sistema cliente; y un transmisor
que transmite visualizaciones de salida creadas al sistema cliente
(10, 20), y, opcionalmente, en el que dicho módulo de servicio
transmite un datagrama a la pluralidad de servidores para recoger la
información relativa a la aplicación correspondiente a los
programas de aplicación albergados por dichos servidores (30, 32,
34), o en el que dicha máquina de creación de visualización de
salida analiza sintácticamente plantillas de documentos SGML, en
cuyo último caso, opcionalmente, dicho transmisor transmite la
información de la aplicación disponible usando HTTP.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11409998P | 1998-12-29 | 1998-12-29 | |
US114099P | 1998-12-29 | ||
US252391 | 1999-02-18 | ||
US09/252,391 US6643690B2 (en) | 1998-12-29 | 1999-02-18 | Apparatus and method for determining a program neighborhood for a client node in a client-server network |
US390928 | 1999-09-07 | ||
US09/390,928 US6928469B1 (en) | 1998-12-29 | 1999-09-07 | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2209549T3 true ES2209549T3 (es) | 2004-06-16 |
Family
ID=27381447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99966622T Expired - Lifetime ES2209549T3 (es) | 1998-12-29 | 1999-12-27 | Un aparato y procedimiento para determinar un programa cercano en un nodo cliente de una red cliente-servidor. |
Country Status (15)
Country | Link |
---|---|
US (2) | US6928469B1 (es) |
EP (1) | EP1141828B1 (es) |
JP (1) | JP2002533830A (es) |
KR (1) | KR100630212B1 (es) |
AT (1) | ATE252744T1 (es) |
AU (2) | AU2212900A (es) |
CA (1) | CA2293127C (es) |
DE (1) | DE69912317T2 (es) |
DK (1) | DK1141828T3 (es) |
ES (1) | ES2209549T3 (es) |
GB (1) | GB2349488A (es) |
HK (1) | HK1040124B (es) |
IL (1) | IL143762A0 (es) |
PT (1) | PT1141828E (es) |
WO (1) | WO2000039678A1 (es) |
Families Citing this family (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1305687B1 (en) * | 2000-05-24 | 2008-07-30 | Voltaire Ltd. | Filtered application-to-application communication |
US7117239B1 (en) | 2000-07-28 | 2006-10-03 | Axeda Corporation | Reporting the state of an apparatus to a remote computer |
WO2002025460A1 (en) * | 2000-09-19 | 2002-03-28 | Phatnoise, Inc. | Device-to-device network |
US8108543B2 (en) | 2000-09-22 | 2012-01-31 | Axeda Corporation | Retrieving data from a server |
US7185014B1 (en) | 2000-09-22 | 2007-02-27 | Axeda Corporation | Retrieving data from a server |
US7401125B1 (en) | 2000-10-10 | 2008-07-15 | Ricoh Corporation | System, computer program product and method for managing documents |
AU2002215210A1 (en) | 2000-11-16 | 2002-05-27 | Telefonaktiebolaget Lm Ericsson (Publ) | User authentication apparatus, controlling method thereof, and network system |
US8095624B2 (en) * | 2000-12-28 | 2012-01-10 | CenterBeam Inc. | Architecture for serving and managing independent access devices |
JP2002278903A (ja) * | 2001-03-15 | 2002-09-27 | Sony Corp | 情報処理装置および方法、記録媒体、並びにプログラム |
US9836424B2 (en) | 2001-08-24 | 2017-12-05 | Intel Corporation | General input/output architecture, protocol and related methods to implement flow control |
WO2003019393A1 (en) | 2001-08-24 | 2003-03-06 | Intel Corporation | A general intput/output architecture, protocol and related methods to implement flow control |
JP2003067274A (ja) * | 2001-08-27 | 2003-03-07 | Murata Mach Ltd | クライアント装置及び処理サーバ |
US20030088714A1 (en) * | 2001-10-15 | 2003-05-08 | Scott Madlener | User internet interface |
US7254601B2 (en) | 2001-12-20 | 2007-08-07 | Questra Corporation | Method and apparatus for managing intelligent assets in a distributed environment |
US6996620B2 (en) * | 2002-01-09 | 2006-02-07 | International Business Machines Corporation | System and method for concurrent security connections |
US8135843B2 (en) | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
AU2002321294A1 (en) * | 2002-03-28 | 2003-10-13 | Siemens Aktiengesellschaft | Methods and devices for informing the user of a mobile radio terminal about data services that are currently available to said user via the server of a mobile radio network service |
US7178149B2 (en) | 2002-04-17 | 2007-02-13 | Axeda Corporation | XML scripting of soap commands |
GB2388002B (en) * | 2002-04-26 | 2004-05-12 | Oracle Int Corp | Graphical modelling system |
US9171049B2 (en) * | 2002-06-13 | 2015-10-27 | Salesforce.Com, Inc. | Offline simulation of online session between client and server |
US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
US20040103438A1 (en) * | 2002-11-27 | 2004-05-27 | Yong Yan | Methods and systems for transferring events including multimedia data |
US7966418B2 (en) | 2003-02-21 | 2011-06-21 | Axeda Corporation | Establishing a virtual tunnel between two computer programs |
US8082339B2 (en) * | 2003-02-28 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Electronic device network having graceful denial of service |
US7287083B1 (en) * | 2003-03-20 | 2007-10-23 | Novell, Inc. | Computing environment failover in a branch office environment |
US7698435B1 (en) * | 2003-04-15 | 2010-04-13 | Sprint Spectrum L.P. | Distributed interactive media system and method |
US7305375B2 (en) * | 2003-04-23 | 2007-12-04 | Hewlett-Packard Development Company, L.P. | Method and system for distributed remote resources |
US7702668B2 (en) * | 2003-06-16 | 2010-04-20 | Microsoft Corporation | Asset composition |
US7562154B2 (en) * | 2003-06-30 | 2009-07-14 | International Business Machines Corporation | System and method for filtering stale messages resulting from membership changes in a distributed computing environment |
US7475125B2 (en) * | 2003-11-24 | 2009-01-06 | Microsoft Corporation | Seamless discovery of workstation-installed remote applications from an extranet |
US7823192B1 (en) * | 2004-04-01 | 2010-10-26 | Sprint Communications Company L.P. | Application-to-application security in enterprise security services |
FR2870022B1 (fr) * | 2004-05-07 | 2007-02-02 | Canon Kk | Procede et dispositif de distribution de donnees numeriques notamment pour reseau pair-a-pair |
US8117559B2 (en) | 2004-09-30 | 2012-02-14 | Citrix Systems, Inc. | Method and apparatus for virtualizing window information |
US7680758B2 (en) | 2004-09-30 | 2010-03-16 | Citrix Systems, Inc. | Method and apparatus for isolating execution of software applications |
US7853947B2 (en) * | 2004-09-30 | 2010-12-14 | Citrix Systems, Inc. | System for virtualizing access to named system objects using rule action associated with request |
US7752600B2 (en) * | 2004-09-30 | 2010-07-06 | Citrix Systems, Inc. | Method and apparatus for providing file-type associations to multiple applications |
US8171479B2 (en) | 2004-09-30 | 2012-05-01 | Citrix Systems, Inc. | Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers |
US8095940B2 (en) | 2005-09-19 | 2012-01-10 | Citrix Systems, Inc. | Method and system for locating and accessing resources |
US9356938B2 (en) | 2005-02-04 | 2016-05-31 | Koninklijke Philips N.V. | Method, device, system, token creating authorized domains |
US7779034B2 (en) | 2005-10-07 | 2010-08-17 | Citrix Systems, Inc. | Method and system for accessing a remote file in a directory structure associated with an application program executing locally |
EP2527978A3 (en) * | 2005-10-07 | 2013-01-09 | Citrix Systems, Inc. | Methods for selecting between a predetermined number of execution methods for an application program |
US20070083620A1 (en) * | 2005-10-07 | 2007-04-12 | Pedersen Bradley J | Methods for selecting between a predetermined number of execution methods for an application program |
US8131825B2 (en) | 2005-10-07 | 2012-03-06 | Citrix Systems, Inc. | Method and a system for responding locally to requests for file metadata associated with files stored remotely |
EP2541430A2 (en) * | 2005-12-22 | 2013-01-02 | Catalog.Com, Inc. | Social network-enabled interactive media player |
US8732284B2 (en) * | 2006-01-06 | 2014-05-20 | Apple Inc. | Data serialization in a user switching environment |
US7802243B1 (en) * | 2006-04-20 | 2010-09-21 | Open Invention Network Llc | System and method for server customization |
US20070274314A1 (en) * | 2006-05-23 | 2007-11-29 | Werber Ryan A | System and method for creating application groups |
US8555350B1 (en) * | 2006-06-23 | 2013-10-08 | Cisco Technology, Inc. | System and method for ensuring persistent communications between a client and an authentication server |
US8370479B2 (en) | 2006-10-03 | 2013-02-05 | Axeda Acquisition Corporation | System and method for dynamically grouping devices based on present device conditions |
US8065397B2 (en) | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
US8341651B2 (en) | 2007-01-10 | 2012-12-25 | Microsoft Corporation | Integrating enterprise search systems with custom access control application programming interfaces |
GB0707492D0 (en) * | 2007-04-18 | 2007-05-23 | Canon Europa Nv | A print apparatus, a method of controlling printing, and a program |
US8024407B2 (en) * | 2007-10-17 | 2011-09-20 | Citrix Systems, Inc. | Methods and systems for providing access, from within a virtual world, to an external resource |
US7925694B2 (en) | 2007-10-19 | 2011-04-12 | Citrix Systems, Inc. | Systems and methods for managing cookies via HTTP content layer |
US8171483B2 (en) | 2007-10-20 | 2012-05-01 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
US7792934B2 (en) * | 2008-01-02 | 2010-09-07 | Citrix Systems International Gmbh | Loading of server-stored user profile data |
CN101984778B (zh) | 2008-01-26 | 2014-08-13 | 思杰系统有限公司 | 用于细粒度策略驱动的cookie代理的系统和方法 |
US8169958B2 (en) * | 2008-03-27 | 2012-05-01 | Cisco Technology, Inc. | Obtaining information regarding services available from a wireless local area network |
AU2009231676B2 (en) | 2008-04-02 | 2013-10-03 | Twilio Inc. | System and method for processing telephony sessions |
US8837465B2 (en) | 2008-04-02 | 2014-09-16 | Twilio, Inc. | System and method for processing telephony sessions |
CN102227904A (zh) | 2008-10-01 | 2011-10-26 | 特维里奥公司 | 电话网络事件的系统和方法 |
US9270785B2 (en) | 2008-12-18 | 2016-02-23 | Citrix Systems, Inc. | System and method for a distributed virtual desktop infrastructure |
EP2404412B1 (en) | 2009-03-02 | 2019-05-01 | Twilio Inc. | Method and system for a multitenancy telephone network |
US9152401B2 (en) * | 2009-05-02 | 2015-10-06 | Citrix Systems, Inc. | Methods and systems for generating and delivering an interactive application delivery store |
US8090797B2 (en) | 2009-05-02 | 2012-01-03 | Citrix Systems, Inc. | Methods and systems for launching applications into existing isolation environments |
US9210275B2 (en) | 2009-10-07 | 2015-12-08 | Twilio, Inc. | System and method for running a multi-module telephony application |
US9054913B1 (en) | 2009-11-30 | 2015-06-09 | Dell Software Inc. | Network protocol proxy |
KR101633366B1 (ko) * | 2010-04-09 | 2016-06-24 | 삼성전자주식회사 | 앱스토어 서비스 제공 방법 및 시스템 |
US9590849B2 (en) | 2010-06-23 | 2017-03-07 | Twilio, Inc. | System and method for managing a computing cluster |
US20120208495A1 (en) | 2010-06-23 | 2012-08-16 | Twilio, Inc. | System and method for monitoring account usage on a platform |
US8838707B2 (en) | 2010-06-25 | 2014-09-16 | Twilio, Inc. | System and method for enabling real-time eventing |
KR101662660B1 (ko) * | 2010-09-30 | 2016-10-06 | 삼성전자주식회사 | 서버 및 그 서비스 제공 방법 |
US20120117490A1 (en) * | 2010-11-10 | 2012-05-10 | Harwood William T | Methods and systems for providing access, from within a virtual world, to an external resource |
US8649268B2 (en) | 2011-02-04 | 2014-02-11 | Twilio, Inc. | Method for processing telephony sessions of a network |
US9398622B2 (en) | 2011-05-23 | 2016-07-19 | Twilio, Inc. | System and method for connecting a communication to a client |
US20140044123A1 (en) | 2011-05-23 | 2014-02-13 | Twilio, Inc. | System and method for real time communicating with a client application |
US9648006B2 (en) | 2011-05-23 | 2017-05-09 | Twilio, Inc. | System and method for communicating with a client application |
JP2013025671A (ja) * | 2011-07-25 | 2013-02-04 | Fujitsu Ltd | サーバ装置、サーバ装置の制御方法、サーバ装置の制御プログラム及びコンピュータ |
US10182147B2 (en) | 2011-09-21 | 2019-01-15 | Twilio Inc. | System and method for determining and communicating presence information |
JP5733136B2 (ja) | 2011-09-26 | 2015-06-10 | 富士通株式会社 | 情報処理装置の制御方法、制御プログラム及び情報処理装置 |
EP2766820B1 (en) * | 2011-10-13 | 2021-07-07 | Citrix Systems Inc. | System and method for a distributed virtual desktop infrastructure |
US9495227B2 (en) | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
US9602586B2 (en) | 2012-05-09 | 2017-03-21 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US9247062B2 (en) | 2012-06-19 | 2016-01-26 | Twilio, Inc. | System and method for queuing a communication session |
US8737962B2 (en) | 2012-07-24 | 2014-05-27 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US8948356B2 (en) | 2012-10-15 | 2015-02-03 | Twilio, Inc. | System and method for routing communications |
US8938053B2 (en) | 2012-10-15 | 2015-01-20 | Twilio, Inc. | System and method for triggering on platform usage |
US9282124B2 (en) | 2013-03-14 | 2016-03-08 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US9160696B2 (en) | 2013-06-19 | 2015-10-13 | Twilio, Inc. | System for transforming media resource into destination device compatible messaging format |
US9225840B2 (en) | 2013-06-19 | 2015-12-29 | Twilio, Inc. | System and method for providing a communication endpoint information service |
US9380040B1 (en) * | 2013-07-11 | 2016-06-28 | Parallels IP Holdings GmbH | Method for downloading preauthorized applications to desktop computer using secure connection |
US9137127B2 (en) | 2013-09-17 | 2015-09-15 | Twilio, Inc. | System and method for providing communication platform metadata |
US9274858B2 (en) | 2013-09-17 | 2016-03-01 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US9325624B2 (en) | 2013-11-12 | 2016-04-26 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
US9553799B2 (en) | 2013-11-12 | 2017-01-24 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US10044787B1 (en) * | 2013-11-20 | 2018-08-07 | Simon Frazier | File transfer in a multi-node network |
US9344573B2 (en) | 2014-03-14 | 2016-05-17 | Twilio, Inc. | System and method for a work distribution service |
US9226217B2 (en) | 2014-04-17 | 2015-12-29 | Twilio, Inc. | System and method for enabling multi-modal communication |
US9774687B2 (en) | 2014-07-07 | 2017-09-26 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US9516101B2 (en) | 2014-07-07 | 2016-12-06 | Twilio, Inc. | System and method for collecting feedback in a multi-tenant communication platform |
US9251371B2 (en) | 2014-07-07 | 2016-02-02 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US11283866B2 (en) | 2014-07-07 | 2022-03-22 | Citrix Systems, Inc. | Providing remote access to applications through interface hooks |
US11310312B2 (en) * | 2014-07-07 | 2022-04-19 | Citrix Systems, Inc. | Peer to peer remote application discovery |
US9246694B1 (en) | 2014-07-07 | 2016-01-26 | Twilio, Inc. | System and method for managing conferencing in a distributed communication network |
WO2016065080A1 (en) | 2014-10-21 | 2016-04-28 | Twilio, Inc. | System and method for providing a miro-services communication platform |
US9477975B2 (en) * | 2015-02-03 | 2016-10-25 | Twilio, Inc. | System and method for a media intelligence platform |
US10419891B2 (en) | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
US9948703B2 (en) | 2015-05-14 | 2018-04-17 | Twilio, Inc. | System and method for signaling through data storage |
US10659349B2 (en) | 2016-02-04 | 2020-05-19 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US10063713B2 (en) | 2016-05-23 | 2018-08-28 | Twilio Inc. | System and method for programmatic device connectivity |
US10686902B2 (en) | 2016-05-23 | 2020-06-16 | Twilio Inc. | System and method for a multi-channel notification service |
Family Cites Families (266)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4387425A (en) * | 1980-05-19 | 1983-06-07 | Data General Corporation | Masterless and contentionless computer network |
USRE32632E (en) * | 1982-07-19 | 1988-03-29 | Apple Computer, Inc. | Display system |
US4499499A (en) * | 1982-12-29 | 1985-02-12 | International Business Machines Corporation | Method for identification and compression of facsimile symbols in text processing systems |
US4779189A (en) | 1985-06-28 | 1988-10-18 | International Business Machines Corporation | Peripheral subsystem initialization method and apparatus |
JPS62282328A (ja) | 1986-02-21 | 1987-12-08 | Hitachi Ltd | 多重画面制御方式 |
US4937036A (en) * | 1986-04-28 | 1990-06-26 | Xerox Corporation | Concurrent display of data from two different display processors and user interface therefore |
JP2585535B2 (ja) * | 1986-06-02 | 1997-02-26 | 株式会社日立製作所 | 複合計算機システムにおけるプロセス結合方法 |
US5062060A (en) | 1987-01-05 | 1991-10-29 | Motorola Inc. | Computer human interface comprising user-adjustable window for displaying or printing information |
US4887204A (en) | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US5202971A (en) * | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
US5175852A (en) | 1987-02-13 | 1992-12-29 | International Business Machines Corporation | Distributed file access structure lock |
US5072412A (en) | 1987-03-25 | 1991-12-10 | Xerox Corporation | User interface with multiple workspaces for sharing display system objects |
US4949281A (en) | 1987-04-23 | 1990-08-14 | H. Berthold Ag | Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves |
US4903218A (en) * | 1987-08-13 | 1990-02-20 | Digital Equipment Corporation | Console emulation for a graphics workstation |
US5367688A (en) | 1987-09-04 | 1994-11-22 | Digital Equipment Corporation | Boot system for distributed digital data processing system |
US4974173A (en) | 1987-12-02 | 1990-11-27 | Xerox Corporation | Small-scale workspace representations indicating activities by other users |
US5014221A (en) * | 1988-01-29 | 1991-05-07 | Digital Equipment Corporation | Mechanism for arbitrating client access to a networked print server |
JPH01246656A (ja) | 1988-03-29 | 1989-10-02 | Nec Corp | プロセッサ間共有メモリ管理方式 |
US5103303A (en) * | 1988-04-19 | 1992-04-07 | Konica Corporation | Multicolor imaging forming apparatus |
US4958303A (en) | 1988-05-12 | 1990-09-18 | Digital Equipment Corporation | Apparatus for exchanging pixel data among pixel processors |
US4949248A (en) | 1988-07-15 | 1990-08-14 | Caro Marshall A | System for shared remote access of multiple application programs executing in one or more computers |
US5155847A (en) | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
US5255361A (en) | 1988-12-19 | 1993-10-19 | International Business Machines Corporation | Method of and system for updating a display unit |
US5031089A (en) | 1988-12-30 | 1991-07-09 | United States Of America As Represented By The Administrator, National Aeronautics And Space Administration | Dynamic resource allocation scheme for distributed heterogeneous computer systems |
EP0381645A3 (en) | 1989-01-18 | 1992-08-05 | International Business Machines Corporation | System and method for communicating between a plurality of processors |
US5349678A (en) * | 1991-08-21 | 1994-09-20 | Norand Corporation | Versatile RF data capture system |
ATE151183T1 (de) | 1989-02-24 | 1997-04-15 | Digital Equipment Corp | Makler für die auswahl von rechnernetzwerkservern |
US5341477A (en) | 1989-02-24 | 1994-08-23 | Digital Equipment Corporation | Broker for computer network server selection |
KR930003126B1 (ko) | 1989-04-20 | 1993-04-19 | 가부시기가이샤 도시바 | 곡선정합에 있어서 형상을 표시하는 직선쇼트벡터의 접속상태를 판정하는 방법 및 시스템 |
US5305440A (en) * | 1989-05-15 | 1994-04-19 | International Business Machines Corporation | File extension by clients in a distributed data processing system |
US5187790A (en) * | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
DE69029441T2 (de) | 1989-08-24 | 1997-06-12 | Ibm | System für den Aufruf von Prozeduren von einem Fernnetzwerkknotenpunkt |
US5119319A (en) * | 1989-12-14 | 1992-06-02 | Options Unlimited Research Corp. | Full-duplex video communication system |
US5301270A (en) * | 1989-12-18 | 1994-04-05 | Anderson Consulting | Computer-assisted software engineering system for cooperative processing environments |
US5309555A (en) * | 1990-05-15 | 1994-05-03 | International Business Machines Corporation | Realtime communication of hand drawn images in a multiprogramming window environment |
CA2041992A1 (en) | 1990-05-18 | 1991-11-19 | Yeshayahu Artsy | Routing objects on action paths in a distributed computing system |
EP0463251A1 (en) | 1990-06-28 | 1992-01-02 | International Business Machines Corporation | Software installation |
AU639802B2 (en) | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
EP0475581A3 (en) | 1990-08-30 | 1993-06-23 | Hewlett-Packard Company | Method and apparatus for window sharing between computer displays |
US5583992A (en) | 1990-09-14 | 1996-12-10 | Kabushiki Kaisha Toshiba | Computer network system for detecting global deadlock |
US5303198A (en) * | 1990-09-28 | 1994-04-12 | Fuji Photo Film Co., Ltd. | Method of recording data in memory card having EEPROM and memory card system using the same |
US5204947A (en) | 1990-10-31 | 1993-04-20 | International Business Machines Corporation | Application independent (open) hypermedia enablement services |
US5241625A (en) | 1990-11-27 | 1993-08-31 | Farallon Computing, Inc. | Screen image sharing among heterogeneous computers |
EP0773685B1 (en) * | 1990-12-26 | 2002-06-05 | Canon Kabushiki Kaisha | Multi-media communication apparatus |
US5249290A (en) | 1991-02-22 | 1993-09-28 | At&T Bell Laboratories | Method of and apparatus for operating a client/server computer network |
JPH04271454A (ja) * | 1991-02-27 | 1992-09-28 | Toshiba Corp | 疎結合計算機システム |
JPH04311252A (ja) * | 1991-04-10 | 1992-11-04 | Hitachi Ltd | ネットワークを利用した情報処理方法 |
JPH04342055A (ja) * | 1991-05-20 | 1992-11-27 | Nec Corp | 複数コンピュータシステムの利用者認証方法 |
CA2069355C (en) | 1991-06-07 | 1998-10-06 | Robert C. Pike | Global user interface |
US5559958A (en) * | 1991-06-24 | 1996-09-24 | Compaq Computer Corporation | Graphical user interface for computer management system and an associated management information base |
US5204897A (en) * | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for license management system |
JPH0546568A (ja) | 1991-08-08 | 1993-02-26 | Internatl Business Mach Corp <Ibm> | 分散アプリケーシヨン実行装置および方法 |
IL99923A0 (en) | 1991-10-31 | 1992-08-18 | Ibm Israel | Method of operating a computer in a network |
US5315711A (en) * | 1991-11-01 | 1994-05-24 | Unisys Corporation | Method and apparatus for remotely and centrally controlling a plurality of host processors |
US5619716A (en) * | 1991-11-05 | 1997-04-08 | Hitachi, Ltd. | Information processing system having a configuration management system for managing the software of the information processing system |
US5351129A (en) | 1992-03-24 | 1994-09-27 | Rgb Technology D/B/A Rgb Spectrum | Video multiplexor-encoder and decoder-converter |
WO1993020511A1 (en) * | 1992-03-31 | 1993-10-14 | Aggregate Computing, Inc. | An integrated remote execution system for a heterogenous computer network environment |
FR2690260B1 (fr) | 1992-04-17 | 1997-01-03 | Bull Sa | Utilisation d'un protocole bidirectionnel de tres haut niveau pour la communication entre un systeme hypermedia et une pluralite d'editeurs. |
DE69220093T2 (de) * | 1992-06-18 | 1997-12-04 | Ibm | Verarbeitungsnetzwerk für verteilte anwendungsprogramme. |
US5440719A (en) | 1992-10-27 | 1995-08-08 | Cadence Design Systems, Inc. | Method simulating data traffic on network in accordance with a client/sewer paradigm |
US5329619A (en) | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
JP3553987B2 (ja) * | 1992-11-13 | 2004-08-11 | 株式会社日立製作所 | クライアント・サーバシステム |
JP2505974B2 (ja) | 1992-12-08 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 複数の適用業務プログラムを統合化グラフィカル・ユ―ザ・インタフェ―ス処理環境へ統合化するための方法 |
US5566302A (en) | 1992-12-21 | 1996-10-15 | Sun Microsystems, Inc. | Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist |
US5572674A (en) | 1993-01-07 | 1996-11-05 | Bmc Software, Inc. | Method of dynamically adjusting SNA network control program parameters |
US5325527A (en) * | 1993-01-19 | 1994-06-28 | Canon Information Systems, Inc. | Client/server communication system utilizing a self-generating nodal network |
US5469540A (en) | 1993-01-27 | 1995-11-21 | Apple Computer, Inc. | Method and apparatus for generating and displaying multiple simultaneously-active windows |
US5671379A (en) | 1993-01-29 | 1997-09-23 | International Business Machines Corporation | System and method for managing windows |
US5459837A (en) * | 1993-04-21 | 1995-10-17 | Digital Equipment Corporation | System to facilitate efficient utilization of network resources in a computer network |
US5930473A (en) * | 1993-06-24 | 1999-07-27 | Teng; Peter | Video application server for mediating live video services |
US5794207A (en) * | 1996-09-04 | 1998-08-11 | Walker Asset Management Limited Partnership | Method and apparatus for a cryptographically assisted commercial network system designed to facilitate buyer-driven conditional purchase offers |
JP2576762B2 (ja) | 1993-06-30 | 1997-01-29 | 日本電気株式会社 | リング網のノード間情報収集方式 |
CA2168762C (en) | 1993-08-03 | 2000-06-27 | Paul Butterworth | Flexible multi-platform partitioning for computer applications |
US5359593A (en) | 1993-08-26 | 1994-10-25 | International Business Machines Corporation | Dynamic bandwidth estimation and adaptation for packet communications networks |
DE4417588A1 (de) * | 1993-08-30 | 1995-03-02 | Hewlett Packard Co | Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung |
US5844553A (en) | 1993-08-30 | 1998-12-01 | Hewlett-Packard Company | Mechanism to control and use window events among applications in concurrent computing |
GB2281793A (en) | 1993-09-11 | 1995-03-15 | Ibm | A data processing system for providing user load levelling in a network |
US5553242A (en) | 1993-11-03 | 1996-09-03 | Wang Laboratories, Inc. | Client/server connection sharing |
US5574934A (en) | 1993-11-24 | 1996-11-12 | Intel Corporation | Preemptive priority-based transmission of signals using virtual channels |
US5499343A (en) * | 1993-12-17 | 1996-03-12 | Taligent, Inc. | Object-oriented networking system with dynamically configurable communication links |
US5548726A (en) | 1993-12-17 | 1996-08-20 | Taligeni, Inc. | System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node |
US5515508A (en) * | 1993-12-17 | 1996-05-07 | Taligent, Inc. | Client server system and method of operation including a dynamically configurable protocol stack |
US5495411A (en) * | 1993-12-22 | 1996-02-27 | Ananda; Mohan | Secure software rental system using continuous asynchronous password verification |
US5592626A (en) * | 1994-02-07 | 1997-01-07 | The Regents Of The University Of California | System and method for selecting cache server based on transmission and storage factors for efficient delivery of multimedia information in a hierarchical network of servers |
JP3454285B2 (ja) * | 1994-02-15 | 2003-10-06 | 富士ゼロックス株式会社 | データ処理装置およびデータ処理方法 |
US5473599A (en) | 1994-04-22 | 1995-12-05 | Cisco Systems, Incorporated | Standby router protocol |
CA2145921A1 (en) | 1994-05-10 | 1995-11-11 | Vijay Pochampalli Kumar | Method and apparatus for executing a distributed algorithm or service on a simple network management protocol based computer network |
US5596745A (en) * | 1994-05-16 | 1997-01-21 | International Business Machines Corporation | System and procedure for concurrent database access by multiple user applications through shared connection processes |
US5594490A (en) * | 1994-05-23 | 1997-01-14 | Cable Services Technologies, Inc. | System for distributing video/audio files from central location to a plurality of cable headends |
US5517617A (en) * | 1994-06-29 | 1996-05-14 | Digital Equipment Corporation | Automatic assignment of addresses in a computer communications network |
EP0692891A1 (fr) | 1994-07-12 | 1996-01-17 | T.R.T. Telecommunications Radioelectriques Et Telephoniques | Système d'interconnexion de réseaux locaux utilisant un protocole de routage de type "routage depuis la source" et équipement d'interconnexion destiné à être utilisé dans un tel système |
US5655218A (en) | 1994-07-29 | 1997-08-05 | Motorola, Inc. | Radiotelephone communication unit displaying chronological information |
JP3160830B2 (ja) * | 1994-08-02 | 2001-04-25 | 日本電信電話株式会社 | マルチメディアシステムアクセス方式、アクセス方法及び接続制御装置 |
US5557732A (en) | 1994-08-11 | 1996-09-17 | International Business Machines Corporation | Method and apparatus for protecting software executing on a demonstration computer |
US5485460A (en) * | 1994-08-19 | 1996-01-16 | Microsoft Corporation | System and method for running multiple incompatible network protocol stacks |
TW252248B (en) * | 1994-08-23 | 1995-07-21 | Ibm | A semiconductor memory based server for providing multimedia information on demand over wide area networks |
US5541927A (en) | 1994-08-24 | 1996-07-30 | At&T Corp. | Method of multicasting |
AUPM813394A0 (en) | 1994-09-14 | 1994-10-06 | Dolphin Software Pty Ltd | A method and apparatus for preparation of a database document in a local processing apparatus and loading of the database document with data from remote sources |
US5586312A (en) | 1994-10-11 | 1996-12-17 | Unisys Corporation | Method and apparatus for using an independent transaction processing application as a service routine |
US5838906A (en) | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5913920A (en) | 1994-12-13 | 1999-06-22 | International Business Machines Corporation | Indicating updates from a remote display |
US5623656A (en) * | 1994-12-15 | 1997-04-22 | Lucent Technologies Inc. | Script-based data communication system and method utilizing state memory |
JPH0926970A (ja) | 1994-12-20 | 1997-01-28 | Sun Microsyst Inc | 情報を検索するコンピュータによる実行方法及び装置 |
US5530852A (en) * | 1994-12-20 | 1996-06-25 | Sun Microsystems, Inc. | Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics |
US5680549A (en) | 1994-12-30 | 1997-10-21 | Compuserve Incorporated | System for transferring network connections from first to second program where the first enters an inactive state and resumes control of connections when second terminates |
US5583563A (en) | 1995-01-12 | 1996-12-10 | Us West Marketing Resources Group, Inc. | Method and system for delivering an application in an interactive television network |
US5682478A (en) | 1995-01-19 | 1997-10-28 | Microsoft Corporation | Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server |
US5557748A (en) | 1995-02-03 | 1996-09-17 | Intel Corporation | Dynamic network configuration |
JPH08235114A (ja) * | 1995-02-28 | 1996-09-13 | Hitachi Ltd | サーバアクセス方法と課金情報管理方法 |
US5819093A (en) | 1995-03-03 | 1998-10-06 | Sun Microsystems, Inc. | System and method for a distributed debugger for debugging distributed application programs |
US5655081A (en) * | 1995-03-08 | 1997-08-05 | Bmc Software, Inc. | System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture |
US5857102A (en) | 1995-03-14 | 1999-01-05 | Sun Microsystems, Inc. | System and method for determining and manipulating configuration information of servers in a distributed object environment |
US5870552A (en) * | 1995-03-28 | 1999-02-09 | America Online, Inc. | Method and apparatus for publishing hypermedia documents over wide area networks |
US5721876A (en) * | 1995-03-30 | 1998-02-24 | Bull Hn Information Systems Inc. | Sockets application program mechanism for proprietary based application programs running in an emulation environment |
US5666501A (en) | 1995-03-30 | 1997-09-09 | International Business Machines Corporation | Method and apparatus for installing software |
US5689708A (en) * | 1995-03-31 | 1997-11-18 | Showcase Corporation | Client/server computer systems having control of client-based application programs, and application-program control means therefor |
US5692183A (en) | 1995-03-31 | 1997-11-25 | Sun Microsystems, Inc. | Methods and apparatus for providing transparent persistence in a distributed object operating environment |
US5710918A (en) * | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
US5734865A (en) * | 1995-06-07 | 1998-03-31 | Bull Hn Information Systems Inc. | Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment |
US5774668A (en) | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US5701451A (en) | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5737592A (en) | 1995-06-19 | 1998-04-07 | International Business Machines Corporation | Accessing a relational database over the Internet using macro language files |
JP3535267B2 (ja) * | 1995-07-03 | 2004-06-07 | 富士通株式会社 | 監視システムの監視状態表示装置 |
US5874960A (en) * | 1995-07-05 | 1999-02-23 | Microsoft Corporation | Method and system for sharing applications between computer systems |
JP3137173B2 (ja) * | 1995-07-20 | 2001-02-19 | 富士ゼロックス株式会社 | 認証情報管理装置 |
US5644720A (en) * | 1995-07-31 | 1997-07-01 | West Publishing Company | Interprocess communications interface for managing transaction requests |
US5767849A (en) * | 1995-08-18 | 1998-06-16 | International Business Machines Corporation | Personality neutral window management subsystem |
US5657390A (en) | 1995-08-25 | 1997-08-12 | Netscape Communications Corporation | Secure socket layer application program apparatus and method |
JPH0997227A (ja) * | 1995-09-29 | 1997-04-08 | Fujitsu Ltd | クライアント/サーバスタイルにおける業務運用システム |
US5758186A (en) | 1995-10-06 | 1998-05-26 | Sun Microsystems, Inc. | Method and apparatus for generically handling diverse protocol method calls in a client/server computer system |
US5913060A (en) | 1995-10-11 | 1999-06-15 | Citrix Systems, Inc. | Method for deadlock avoidance in a distributed process system using a synchronous procedure call |
US5826027A (en) | 1995-10-11 | 1998-10-20 | Citrix Systems, Inc. | Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system |
JPH09114783A (ja) * | 1995-10-13 | 1997-05-02 | Sony Corp | 情報処理装置および方法 |
US5572643A (en) | 1995-10-19 | 1996-11-05 | Judson; David H. | Web browser with dynamic display of information objects during linking |
US5802306A (en) | 1995-10-31 | 1998-09-01 | International Business Machines Corporation | Supporting multiple client-server sessions from a protocol stack associated with a single physical adapter through use of a plurality of logical adapters |
US5729734A (en) | 1995-11-03 | 1998-03-17 | Apple Computer, Inc. | File privilege administration apparatus and methods |
US7555529B2 (en) * | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6950991B2 (en) | 1995-11-13 | 2005-09-27 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6088515A (en) * | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
PL326670A1 (en) | 1995-11-14 | 1998-10-12 | Ibm | Information processing system enabling a versatile worldwide www network scanning program to get access to servers of many different protocols |
US5684861A (en) | 1995-12-04 | 1997-11-04 | Lewis; Walter F. | Apparatus and method for monitoring cellular telephone usage |
US6161126A (en) | 1995-12-13 | 2000-12-12 | Immersion Corporation | Implementing force feedback over the World Wide Web and other computer networks |
US6101531A (en) | 1995-12-19 | 2000-08-08 | Motorola, Inc. | System for communicating user-selected criteria filter prepared at wireless client to communication server for filtering data transferred from host to said wireless client |
US5748896A (en) * | 1995-12-27 | 1998-05-05 | Apple Computer, Inc. | Remote network administration methods and apparatus |
US5706437A (en) * | 1995-12-29 | 1998-01-06 | Mci Communications Corporation | System and method for accessing a service on a services network |
DE19602718B4 (de) | 1996-01-26 | 2004-03-25 | Loewe Opta Gmbh | Verfahren zur Beeinflussung mindestens des Verbindungsaufbaus einer Telekommunikationsendeinrichtung an ein Telefonnetz und Schaltungsanordnung hierfür |
US5862348A (en) * | 1996-02-09 | 1999-01-19 | Citrix Systems, Inc. | Method and apparatus for connecting a client node to a server node based on load levels |
JPH09233467A (ja) | 1996-02-21 | 1997-09-05 | Fujitsu Ltd | 画像データ通信装置及び画像データ通信システムにおける通信データ量調整方法 |
US5961588A (en) | 1996-02-22 | 1999-10-05 | Alcatel Usa Sourcing, L.P. | Handling of commands passed between the server and client stations of a telecommunications system |
US6167432A (en) | 1996-02-29 | 2000-12-26 | Webex Communications, Inc., | Method for creating peer-to-peer connections over an interconnected network to facilitate conferencing among users |
US5761507A (en) * | 1996-03-05 | 1998-06-02 | International Business Machines Corporation | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
US5938733A (en) | 1996-03-08 | 1999-08-17 | International Business Machines Corporation | Object oriented representation of network requests in a client server model |
US5764915A (en) * | 1996-03-08 | 1998-06-09 | International Business Machines Corporation | Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack |
US5838910A (en) * | 1996-03-14 | 1998-11-17 | Domenikos; Steven D. | Systems and methods for executing application programs from a memory device linked to a server at an internet site |
US5748892A (en) * | 1996-03-25 | 1998-05-05 | Citrix Systems, Inc. | Method and apparatus for client managed flow control on a limited memory computer system |
US5625683A (en) * | 1996-03-25 | 1997-04-29 | Motorola, Inc. | Method of and telephone with call-reminding and auto-dialing |
US6101528A (en) * | 1996-03-27 | 2000-08-08 | Intel Corporation | Method and apparatus for discovering server applications by a client application in a network of computer systems |
US5754830A (en) * | 1996-04-01 | 1998-05-19 | Openconnect Systems, Incorporated | Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation |
US5905866A (en) * | 1996-04-30 | 1999-05-18 | A.I. Soft Corporation | Data-update monitoring in communications network |
US5802258A (en) | 1996-05-03 | 1998-09-01 | International Business Machines Corporation | Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure |
US5864678A (en) * | 1996-05-08 | 1999-01-26 | Apple Computer, Inc. | System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate |
JP4086340B2 (ja) * | 1996-05-17 | 2008-05-14 | 富士通株式会社 | ネットワーク認証システム |
US5918013A (en) * | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US6034689A (en) * | 1996-06-03 | 2000-03-07 | Webtv Networks, Inc. | Web browser allowing navigation between hypertext objects using remote control |
US6175854B1 (en) | 1996-06-11 | 2001-01-16 | Ameritech Services, Inc. | Computer system architecture and method for multi-user, real-time applications |
US6014133A (en) * | 1996-06-14 | 2000-01-11 | Seiko Epson Corporation | Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method |
US5881241A (en) * | 1996-06-19 | 1999-03-09 | Sun Microsystems, Inc. | System for transmitting data packet after matching data packet's routing pattern with predetermined data routes stored in a route table |
US6272556B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for migrating a client-server application (#5) |
US6031533A (en) * | 1996-07-03 | 2000-02-29 | Sun Microsystems, Inc. | Graphical user interface for use in a de-centralized network environment |
KR100203266B1 (ko) | 1996-07-09 | 1999-06-15 | 윤종용 | 윤곽선복호화장치 |
US5764908A (en) * | 1996-07-12 | 1998-06-09 | Sofmap Future Design, Inc. | Network system containing program modules residing in different computers and executing commands without return results to calling modules |
US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
US6115744A (en) * | 1996-07-30 | 2000-09-05 | Bea Systems, Inc. | Client object API and gateway to enable OLTP via the internet |
US5828840A (en) | 1996-08-06 | 1998-10-27 | Verifone, Inc. | Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal |
US5973696A (en) | 1996-08-08 | 1999-10-26 | Agranat Systems, Inc. | Embedded web server |
US5898835A (en) * | 1996-08-16 | 1999-04-27 | Electronic Data Systems Corporation | System and method for remotely executing a command |
US5842206A (en) | 1996-08-20 | 1998-11-24 | Iconovex Corporation | Computerized method and system for qualified searching of electronically stored documents |
US5805166A (en) * | 1996-08-23 | 1998-09-08 | Intenational Business Machines Corp. | Segmented status area for dynamically reporting status in a data processing system |
US6195678B1 (en) * | 1996-09-03 | 2001-02-27 | Fujitsu Limited | Remote resource management system for automatically downloading required files from application server depending on contents of selected files on requesting computer |
US5979757A (en) | 1996-09-05 | 1999-11-09 | Symbol Technologies, Inc. | Method and system for presenting item information using a portable data terminal |
US5944791A (en) | 1996-10-04 | 1999-08-31 | Contigo Software Llc | Collaborative web browser |
US5960409A (en) | 1996-10-11 | 1999-09-28 | Wexler; Daniel D. | Third-party on-line accounting system and method therefor |
US5884046A (en) * | 1996-10-23 | 1999-03-16 | Pluris, Inc. | Apparatus and method for sharing data and routing messages between a plurality of workstations in a local area network |
GB9623298D0 (en) | 1996-11-08 | 1997-01-08 | Int Computers Ltd | Updating mechanism for software |
US5870545A (en) * | 1996-12-05 | 1999-02-09 | Hewlett-Packard Company | System and method for performing flexible workflow process compensation in a distributed workflow management system |
US6061695A (en) * | 1996-12-06 | 2000-05-09 | Microsoft Corporation | Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document |
US6067568A (en) * | 1996-12-10 | 2000-05-23 | International Business Machines Corporation | Automatic setup of services for computer system users |
US6065059A (en) * | 1996-12-10 | 2000-05-16 | International Business Machines Corporation | Filtered utilization of internet data transfers to reduce delay and increase user control |
US6131116A (en) | 1996-12-13 | 2000-10-10 | Visto Corporation | System and method for globally accessing computer services |
US5889942A (en) | 1996-12-18 | 1999-03-30 | Orenshteyn; Alexander S. | Secured system for accessing application services from a remote station |
US6374237B1 (en) * | 1996-12-24 | 2002-04-16 | Intel Corporation | Data set selection based upon user profile |
US5978847A (en) | 1996-12-26 | 1999-11-02 | Intel Corporation | Attribute pre-fetch of web pages |
US5941988A (en) | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
GB2321729B (en) | 1997-02-04 | 2001-06-13 | Ibm | Data processing system, method, and server |
US5790977A (en) | 1997-02-06 | 1998-08-04 | Hewlett-Packard Company | Data acquisition from a remote instrument via the internet |
AU740007B2 (en) | 1997-02-21 | 2001-10-25 | Dudley John Mills | Network-based classified information systems |
US5923842A (en) | 1997-03-06 | 1999-07-13 | Citrix Systems, Inc. | Method and apparatus for simultaneously providing anonymous user login for multiple users |
US6067580A (en) * | 1997-03-11 | 2000-05-23 | International Business Machines Corporation | Integrating distributed computing environment remote procedure calls with an advisory work load manager |
JP3884123B2 (ja) * | 1997-03-11 | 2007-02-21 | 富士通株式会社 | ネットワークを利用した各種サービスへのアクセス方式 |
US5949975A (en) | 1997-03-12 | 1999-09-07 | Microsoft Corp. | Method and system for negotiating capabilities when sharing an application program with multiple computer systems |
US5978848A (en) | 1997-03-14 | 1999-11-02 | International Business Machines Corporation | Web browser method and system for backgrounding a link access during slow link access time periods |
US6023507A (en) * | 1997-03-17 | 2000-02-08 | Sun Microsystems, Inc. | Automatic remote computer monitoring system |
US6263377B1 (en) | 1997-03-28 | 2001-07-17 | International Business Machines Corporation | Method for managing distributed applications and distributed application manager |
GB2323946B (en) | 1997-04-04 | 2002-04-17 | Sony Uk Ltd | Database accessing method and apparatus |
JPH10301874A (ja) | 1997-04-22 | 1998-11-13 | Internatl Business Mach Corp <Ibm> | 遠隔操作方法、ネットワークを介して端末から遠隔操作されるサーバ及びhtmlファイルを格納する記憶媒体 |
US6038599A (en) * | 1997-04-23 | 2000-03-14 | Mpath Interactive, Inc. | Latency server and matchmaker |
US6161145A (en) * | 1997-05-08 | 2000-12-12 | International Business Machines Corporation | Updating server-related data at a client |
US6157944A (en) | 1997-05-14 | 2000-12-05 | Citrix Systems, Inc. | System and method for replicating a client/server data exchange to additional client notes connecting to the server |
US5941949A (en) | 1997-05-14 | 1999-08-24 | Citrix Systems, Inc. | System and method for transmitting data from a server application to more than one client node |
US5961586A (en) | 1997-05-14 | 1999-10-05 | Citrix Systems, Inc. | System and method for remotely executing an interpretive language application |
US6023721A (en) * | 1997-05-14 | 2000-02-08 | Citrix Systems, Inc. | Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility |
US5983190A (en) | 1997-05-19 | 1999-11-09 | Microsoft Corporation | Client server animation system for managing interactive user interface characters |
US6038596A (en) * | 1997-05-23 | 2000-03-14 | International Business Machines Corporation | Method and system in a network for decreasing performance degradation triggered by multiple user redundant input events |
US5877757A (en) * | 1997-05-23 | 1999-03-02 | International Business Machines Corporation | Method and system for providing user help information in network applications |
US6035337A (en) * | 1997-05-30 | 2000-03-07 | International Business Machines Corp. | Method and system for managing data flow within a collaboration system using proximity determination modules |
US5930804A (en) * | 1997-06-09 | 1999-07-27 | Philips Electronics North America Corporation | Web-based biometric authentication system and method |
US6292827B1 (en) | 1997-06-20 | 2001-09-18 | Shore Technologies (1999) Inc. | Information transfer systems and method with dynamic distribution of data, control and management of information |
US5999950A (en) | 1997-08-11 | 1999-12-07 | Webtv Networks, Inc. | Japanese text input method using a keyboard with only base kana characters |
US6078956A (en) * | 1997-09-08 | 2000-06-20 | International Business Machines Corporation | World wide web end user response time monitor |
US6393015B1 (en) * | 1997-09-12 | 2002-05-21 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for automatic network connection between a small business and a client |
US5940075A (en) | 1997-09-30 | 1999-08-17 | Unisys Corp. | Method for extending the hypertext markup language (HTML) to support enterprise application data binding |
US6125387A (en) | 1997-09-30 | 2000-09-26 | The United States Of America Represented By The Secretary Of The Navy | Operating methods for robust computer systems permitting autonomously switching between alternative/redundant |
US5848410A (en) | 1997-10-08 | 1998-12-08 | Hewlett Packard Company | System and method for selective and continuous index generation |
US6009410A (en) | 1997-10-16 | 1999-12-28 | At&T Corporation | Method and system for presenting customized advertising to a user on the world wide web |
US6185609B1 (en) * | 1997-10-24 | 2001-02-06 | Sun Microsystems, Inc. | Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system |
DE19747583B4 (de) * | 1997-10-28 | 2006-04-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Kommunikationssystem und Verfahren |
US6104392A (en) * | 1997-11-13 | 2000-08-15 | The Santa Cruz Operation, Inc. | Method of displaying an application on a variety of client devices in a client/server network |
US5999179A (en) | 1997-11-17 | 1999-12-07 | Fujitsu Limited | Platform independent computer network management client |
US5860068A (en) * | 1997-12-04 | 1999-01-12 | Petabyte Corporation | Method and system for custom manufacture and delivery of a data product |
US6157705A (en) * | 1997-12-05 | 2000-12-05 | E*Trade Group, Inc. | Voice control of a server |
US6141759A (en) * | 1997-12-10 | 2000-10-31 | Bmc Software, Inc. | System and architecture for distributing, monitoring, and managing information requests on a computer network |
US6154749A (en) * | 1998-01-15 | 2000-11-28 | At&T Corp. | Distributed caching scheme for database systems |
US6339826B2 (en) * | 1998-05-05 | 2002-01-15 | International Business Machines Corp. | Client-server system for maintaining a user desktop consistent with server application user access permissions |
US6108712A (en) | 1998-05-05 | 2000-08-22 | International Business Machines Corp. | Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system |
US6023572A (en) * | 1998-05-12 | 2000-02-08 | Unisys Corporation | Computer based system and method for modeling activities of people in an organization |
US6308212B1 (en) * | 1998-05-29 | 2001-10-23 | Hewlett-Packard Company | Web user interface session and sharing of session environment information |
US6289461B1 (en) | 1998-06-09 | 2001-09-11 | Placeware, Inc. | Bi-directional process-to-process byte stream protocol |
US6338086B1 (en) * | 1998-06-11 | 2002-01-08 | Placeware, Inc. | Collaborative object architecture |
US6446109B2 (en) | 1998-06-29 | 2002-09-03 | Sun Microsystems, Inc. | Application computing environment |
US6256666B1 (en) | 1998-07-14 | 2001-07-03 | International Business Machines Corp. | Method and system for remotely managing electronic mail attachments |
US6266781B1 (en) | 1998-07-20 | 2001-07-24 | Academia Sinica | Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network |
US6157953A (en) * | 1998-07-28 | 2000-12-05 | Sun Microsystems, Inc. | Authentication and access control in a management console program for managing services in a computer network |
US6738809B1 (en) * | 1998-08-21 | 2004-05-18 | Nortel Networks Limited | Network presence indicator for communications management |
US6336138B1 (en) * | 1998-08-25 | 2002-01-01 | Hewlett-Packard Company | Template-driven approach for generating models on network services |
US6311205B1 (en) * | 1998-10-19 | 2001-10-30 | International Business Machines Corporation | Persistent user groups on servers managed by central servers |
US6409602B1 (en) | 1998-11-06 | 2002-06-25 | New Millenium Gaming Limited | Slim terminal gaming system |
US6510466B1 (en) * | 1998-12-14 | 2003-01-21 | International Business Machines Corporation | Methods, systems and computer program products for centralized management of application programs on a network |
US6272493B1 (en) | 1999-01-21 | 2001-08-07 | Wired Solutions, Llc | System and method for facilitating a windows based content manifestation environment within a WWW browser |
US6263363B1 (en) | 1999-01-28 | 2001-07-17 | Skydesk, Inc. | System and method for creating an internet-accessible working replica of a home computer on a host server controllable by a user operating a remote access client computer |
US6792605B1 (en) | 1999-06-10 | 2004-09-14 | Bow Street Software, Inc. | Method and apparatus for providing web based services using an XML Runtime model to store state session data |
WO2000079460A1 (en) * | 1999-06-23 | 2000-12-28 | Webango, Inc. | Method for buy-side bid management |
US20010052932A1 (en) | 1999-12-30 | 2001-12-20 | Young Robert S. | Digital film processing method and system |
JP2001195465A (ja) | 2000-01-11 | 2001-07-19 | Fuji Photo Film Co Ltd | 出力サービスシステム |
US6654784B1 (en) | 2000-01-14 | 2003-11-25 | Nexaweb Technologies, Inc | Computing architecture |
US6271418B1 (en) * | 2000-02-22 | 2001-08-07 | Nippon Kayaku Co., Ltd. | Process for preparing (hetero) aromatic substituted benzene derivatives |
US7237114B1 (en) | 2000-04-26 | 2007-06-26 | Pronvest, Inc. | Method and system for signing and authenticating electronic documents |
US7127525B2 (en) * | 2000-05-26 | 2006-10-24 | Citrix Systems, Inc. | Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism |
US7958185B2 (en) * | 2000-09-18 | 2011-06-07 | Bentley Systems, Inc. | Spatial data enabled engineering, construction, and operations computer-aided design (CAD) project system, method and computer program product |
GB2368930B (en) * | 2000-10-17 | 2005-04-06 | Hewlett Packard Co | Establishment of a deferred network communication session |
US6986040B1 (en) * | 2000-11-03 | 2006-01-10 | Citrix Systems, Inc. | System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel |
US6912582B2 (en) | 2001-03-30 | 2005-06-28 | Microsoft Corporation | Service routing and web integration in a distributed multi-site user authentication system |
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
EP1321853A3 (en) | 2001-12-10 | 2009-12-23 | Sap Ag | Dynamic component transfer based on resource negotiations between computer systems |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7266582B2 (en) | 2002-08-09 | 2007-09-04 | Sun Microsystems, Inc. | Method and system for automating generation of web services from existing service components |
US7296022B2 (en) | 2003-07-14 | 2007-11-13 | Microsoft Corporation | Method and system for accessing a network database as a web service |
-
1999
- 1999-09-07 US US09/390,928 patent/US6928469B1/en not_active Expired - Lifetime
- 1999-12-24 CA CA2293127A patent/CA2293127C/en not_active Expired - Lifetime
- 1999-12-27 KR KR1020067014022A patent/KR100630212B1/ko active IP Right Grant
- 1999-12-27 EP EP99966622A patent/EP1141828B1/en not_active Expired - Lifetime
- 1999-12-27 ES ES99966622T patent/ES2209549T3/es not_active Expired - Lifetime
- 1999-12-27 DE DE69912317T patent/DE69912317T2/de not_active Expired - Lifetime
- 1999-12-27 AU AU22129/00A patent/AU2212900A/en not_active Abandoned
- 1999-12-27 JP JP2000591506A patent/JP2002533830A/ja active Pending
- 1999-12-27 AT AT99966622T patent/ATE252744T1/de active
- 1999-12-27 DK DK99966622T patent/DK1141828T3/da active
- 1999-12-27 PT PT99966622T patent/PT1141828E/pt unknown
- 1999-12-27 IL IL14376299A patent/IL143762A0/xx active IP Right Grant
- 1999-12-27 WO PCT/US1999/030827 patent/WO2000039678A1/en active IP Right Grant
- 1999-12-29 GB GB9930782A patent/GB2349488A/en not_active Withdrawn
- 1999-12-30 AU AU65552/99A patent/AU765088B2/en not_active Expired
-
2002
- 2002-03-11 HK HK02101823.9A patent/HK1040124B/zh not_active IP Right Cessation
-
2005
- 2005-05-02 US US10/908,202 patent/US8527615B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1141828A1 (en) | 2001-10-10 |
GB2349488A (en) | 2000-11-01 |
ATE252744T1 (de) | 2003-11-15 |
US6928469B1 (en) | 2005-08-09 |
DE69912317D1 (de) | 2003-11-27 |
DK1141828T3 (da) | 2004-02-23 |
CA2293127A1 (en) | 2000-06-29 |
EP1141828B1 (en) | 2003-10-22 |
HK1040124A1 (en) | 2002-05-24 |
AU6555299A (en) | 2000-07-06 |
IL143762A0 (en) | 2002-04-21 |
KR20060096474A (ko) | 2006-09-11 |
HK1040124B (zh) | 2004-05-14 |
PT1141828E (pt) | 2004-03-31 |
KR100630212B1 (ko) | 2006-10-02 |
US8527615B2 (en) | 2013-09-03 |
CA2293127C (en) | 2011-03-01 |
GB9930782D0 (en) | 2000-02-16 |
WO2000039678A1 (en) | 2000-07-06 |
AU765088B2 (en) | 2003-09-11 |
AU2212900A (en) | 2000-07-31 |
DE69912317T2 (de) | 2004-07-29 |
JP2002533830A (ja) | 2002-10-08 |
US20050198292A1 (en) | 2005-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2209549T3 (es) | Un aparato y procedimiento para determinar un programa cercano en un nodo cliente de una red cliente-servidor. | |
US11637828B2 (en) | Hybrid authentication systems and methods | |
KR100998515B1 (ko) | 클라이언트-서버 네트워크에서 파일-유형 연관성을 이용한분산 프로그램 실행 방법 | |
TWI400922B (zh) | 在聯盟中主用者之認證 | |
US8244837B2 (en) | Central administration of one or more resources | |
US6643690B2 (en) | Apparatus and method for determining a program neighborhood for a client node in a client-server network | |
US8006098B2 (en) | Integrating legacy application/data access with single sign-on in a distributed computing environment | |
US7334039B1 (en) | Techniques for generating rules for a dynamic rule-based system that responds to requests for a resource on a network | |
US20010013096A1 (en) | Trusted services broker for web page fine-grained security labeling | |
US20040073666A1 (en) | Secure resource access | |
RU2237275C2 (ru) | Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер | |
US20150058930A1 (en) | Method and apparatus for enabling authorised users to access computer resources | |
US20180183782A1 (en) | Single Sign-On for Interconnected Computer Systems | |
KR100678252B1 (ko) | 클라이언트-서버 네트워크에서 클라이언트 노드에 대해 근접지대 프로그램을 판별하기 위한 장치 및 방법 | |
EP1411429A2 (en) | An apparatus and method for determining a program neighbourhood for a client node in a client-server network | |
Al-Sinani et al. | A universal client-based identity management tool |