CA2248086A1 - Systems and methods for executing application programs from a memory device linked to a server - Google Patents
Systems and methods for executing application programs from a memory device linked to a server Download PDFInfo
- Publication number
- CA2248086A1 CA2248086A1 CA002248086A CA2248086A CA2248086A1 CA 2248086 A1 CA2248086 A1 CA 2248086A1 CA 002248086 A CA002248086 A CA 002248086A CA 2248086 A CA2248086 A CA 2248086A CA 2248086 A1 CA2248086 A1 CA 2248086A1
- Authority
- CA
- Canada
- Prior art keywords
- server
- file
- client
- providing
- file 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.)
- Abandoned
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
-
- 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
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
A computer (12) to connect to a server (14) of an Internet site for executing an application program that is stored on a disk (14a, 14b) linked to the server. Processes transport from the server a server address signal representative of a network address of the server, and a path name signal representative of a file system that includes an application program. The process further generates a mount request as a function of the path name signal and transports the mount request to the server to direct the server to provide an array of server file pointers that point to a file descriptor representative of the file system that includes the application program. The processes provide an array of remote file pointers to a program loader that transports a file block associated with the selected remote file pointer from the disk at the server site to a local program memory element. Process requests may be translated into HTTP compliant commands.
Description
WO 97/34225 ~CT/US97/04194 ~Y~l~;~S AND MET~IODS FOR EXECUTING APPLICATION
PRO(~R~M~ FROM A l!~F,l~ORY l-F,VI(~F, ~ KF.l~ T ) A ~F.l~V~R
Field of lnve~inn - The present invention relates to systems and .. ~ .ods for cQ~ g a col,lp.~l~r to a Cv~ )u~ network, and more particularly, to ~ s and m~.thoA.c that allow clients to execute ~ tinn ~lV~;,l~llS stored at a server site.
The digital coml)ut~l is a po~.rul data pn)cess;Qe tool that allows a user to r-gi--~i7~, store and analyze data in volumes and at rates that would be imros~ible by any prior known technique. The Cvlll~ut~ ,two~k has been a similar step Çv. ~ 1. By - linking tog. Il.e~ several co ~ and by providing shared .~ur~s and cross-platro.l"
com...~ n~ e lein~Pn have developed the co..~p.,tc~ n~twv~k into a tool that provides s -ffi~i~nt p~ ;ne power to su~pvll entire co,~.~l;nn~ and ulll~e.~iLies. The il~clcased power of colll~ut~~ nclwul~ over the individual mic~oco...l...t -. is provided by disl,il,uled r~ g. Distributed pl W-~ allows for the division or distribution of a col~.,l~linn~l wo kload among the dirrc~cl~t wo~k~ on~ col-nf~t~ to the coll,l,ut~
ll~lwul~.
One of the most widely ~ceple~ and heavily used co-l-yul~l nelwol~ is the TntPrmpt The ~ntPrnet is a global system of in~ d co...l-ulr-~ net-works formed into a single worldwide n~ twulL A user, through the TntPJnet, can intpr~ctively tr~n~mit mes~Ps with users in dirre~ent countries. Simil~rly, a user in the U.S. can access the files from libraries in Europe and Asia and download these files for pc ~nal use.
Accordingly, the TnternPt provides strong communic~tion functinn~ similar to thecollllllu~ tion fi)nctic)n~ provided by ham radio O~lal(~l~. Moreover, the Internet acts like a universal library, providing electronic access to fesuu~es and information available from Internet sites throughout the world.
WO 97/34225 ~ PCT/US97/04194 Although the Tn~ provides eYeP.llent and developed resources for co..ll.lunication and file sharing, the Tnternet is still basically a static ...e~ . In other words, the content of the Tnt~ornpt~ i.e., the l~so~lr~s available to a user ~c~s.sing a site on the Tnternet is mostly stored data. Typically, a user moves about the TntPrnet using a web bn~v~r plOgl~Ull. The web bl. wser program allows for multim~Ai~ p,es~ -lation of stored data inclu-~in~ teYt images, sound clips and video clips. This allows the user to connect via the Tntern~.t to dir~t;lcnt sites on the Int~ l. However, although a user can view the in~llllation stored at an Tntern~t site, and even make a copy for their own p~ on~l use, at present, a user lacks a suitable system for directly eY~I1ting an application yr~l~l. As such, the Tntern~.t generally fails to provide the advantages of di~llibul~d p~ ;ng.
It is, in part, the size of the Internet that has impeded the av~ ility of client/server applic~tion~ on the TntPrn~t In particular, because the Tnt~rnet is so vast and open, co.~-l)Anies and universities have disposed firewalls b~tw~n their intern~l servers and the Tnternet These firewalls deny access to useful appli~tion~ by preventing ~Yi.~ting ~t~llls, such as NFS and SMB, from -~ce.~sing the appli~tion~. As such, the firewall acts as a barrier that prevents the use of traditional n~.lwol~ g sy~llls from P~e~uting client/server applir~tionc.
In re~yollse to this problem, s~lellls have been plol)O~d that provide for application programs that move bclween an Tnt~rnet site that stores the application yr~
and an ~ntP.rn-o.t site that services a user wishing to use that application program. One such proposed system is the JAVA system yl'OpOSed by Sun Micr~s~;,tt;llls. The JAVA system provides an intelyleted language system that can be opt;l~.led by the TnternP.t user to download and run small application programs, referred to as applets, located at a remote Internet site. Accordingly, the JAVA system provides a form of distributed proc~ ing in that application programs located at Internet sites are being made available for distribution to Tnt~rn~t users. This is a ~ignifi-~nt advance over the prior functions available to Internet users which previously were limited to merely viewing and transferring stored data.
However, although JAVA offers an improvement over the prior art, the JAVA
system suffers from some cipnific~nt drawbacks. First of all, the JAVA system r~uiles that each application that is to be downlo~d to an Tnt~rn~t user and run at the Tntefnet user's site, has to be written in the JAVA p~gl~...mine language. ThereforG, available program applir~ion~ such as Microsoft Word, Microsoft Excel, Intuit Quicken, or other developed application pr~gl~l-s must be rewritten in a JAVA compatible pr~gli....,..i~-~age before they can be employed with the JAVA system. This of course creates an"~ te barrier to the deployment of application pr~gr~lls across the Tnt~fnet Moreover, a ~ignific~nt de~u~ging effort will be l~ui-~d as these ~Gw~ applic~tionc are not proven code and inevitably will fail either due to bugs created during the lGWlilil g of the ~lugr~ll or bugs created by the JAVA system. Moleo~l, the pr~lrûsed JAVA system is an intGl~Gl~d language system, and inte,l,lGted language systems are notoriously slow.
Cons~u~ntly, T..t~.l.. t users are likely to notice a s~lb~t~-lial decrease in op~ ;ol- speed - while they run these applir~tionc Ad-liti--n~lly, JAVA applic~tionc available for deployment from an TntPfnPt site are plu~l --.. ed specifir~lly for Internet deployment.
Acc~ldingly, these JAVA applir~tion progl~lls Wi~ not be the pnu-gl~lls typica~yemployed by users. TnQt~, it is likely that users will operate non-JAVA p~.gl~"S which are different from those JAVA p~gl~ns deployed over the Tnle. ~el Accord,ngly, aco",~tibility rift will develop b~ lween TntP-fnpt users at remote sites and users at the host sites. As such, the JAVA system inherently provides a barrier belweell users at remote loc.~tion~ and users at host sites.
Accordingly, it is an object of the invention to provide systems that allow for deplûyment and eYP~ution of applir~tion pr~g~ ls across the ~nle~.el It is a further object of the invention to provide systems capable of negotiating ~nte. nGl firewalls.
It is another object of the invention to provide systems that int~el~te remote users ~ with the Tnt~fnet network of the host site.
WO 97/34i25 PCT/US97/04194 It is still a further object of the invention to provide systems that deploy PYicting application programs across the TntPrn~t without having to rewrite the apI~lic~tionc.
It is a further object of the invention to provide a system for deploying applirati~mc across the Tnt~ el that provides pr~g~ S which eYe~.ute quickly at remote sites.
These and other objects of the invention will be made ap~ nt from the following description of the invention.
Summa~ of the Invention Systems and processes according to the invention allow a Colll~utC~, typically rere,led to as a client, to col~ to a server of an Tnt.o(n. l site for executing an applir-~tion pl~J~;l~n that is stored on a memory device linked to that server.
The mPthotlc of the invention can include mPth~ls for allowing a client to eY~ut~-an applirAtion pl~ugl~un stored on a memory device linked to an ~ server, and can comprise the steps of Illuunting a remote file system col-~Ail-ing the appli~tiQn plUgldlll and being linked to the HITP server, ..-ol.i~ g the ope~ A~ g system to detect file system uei~ for files stored within the remote file system and passing the file system r~uests to a redirec~or elern~nt for tr~n~l~tin~ the file system requests into HTIP cG...~ t signals for tr~n~mi~ion across a network. In this practice of the invention, the step of mounting can include the step of generating an array of file pointel~ ~ep,cse..lAI;~e of poin~l~ to files ~c~i~ted with the app~ tion pfOgl~l.
In a further practice, the p,~cesses of the invention can include the step of providing plural re~li,~lor elem~nts for trAnclAting the file system requests into a selected one of plural transport protocols. For example, the client element can have a network interface to a plurality of different networks each of which use a dirrt;.~llt file transport protocol, such as NCP, NFS, SMB or any other of the open or proprietary services that provide protocol for trancmitting or sharing data, such as files, across network media. In this practice, each one of the ~ire-;lor el~mçnt~ can be adapted for employment with one or more of the data l~ln spullpr~tocols~ lh( eby allowing the client elemçnt to access any one of a plurality of servers each having a dirr~lent remote file system. The process can include a step of s~l~cting one of the plural redi~Lor r1~- ..e~lts to t~n~l~tP the file system requests. The step of sele~ting the l~dil~cls)r elF ..I ~t can be made as a function of any suitable criteria or char~tçn~ti~ in~ ding the types of file systems, as well as a measure of the tr~n~mi~cion latency time of each of the nclwol~, as well as the tr~nsmi~ion protocols of the networks.
In one prnctit e of the invention, the plural r~di~ ol s are provided with a wla~lle~
interf~~e that, in a way, encars~ t~s each of the r~ir~tor c1f ..~n~ such that all the l~ilccl~)r elçmpnts are provided with the same intçrface to the op~ g system of the client cGllll u~r. This is unde~lùod to provide portability and to reduce the comp1~yity of the overall system.
- - The term "ledilectol as used herein will be understood to el co.npass a program or process that can direct a request for data or services to a se1e~tçd source of data or services and optionally can 1-,~ le file system requests into col.. a~ s or data signals that comply with at least one nelwulk ~ tocol for ~n~micci~n of data across network media.
In a further emhotliment~ the plUCeSSeS of the invention include the further steps of providing the client with access to a cache mellloly for cache storing portions of the file system which contain the applir~tion programs, and a further step of providing a cache edileclor P1~m~nt that responds to client file requests by ~cce~in~ portions of the file system stored within the cache Ill~llloly. The ~ccçssçd portions of the file system can be employed for running the applic~tion ~ùglalll within the clients local program memory. In one practice, the process can include the step of directing the cache memory to mirror the file system being stored therein. Accordingly, in this practice, a Illilluling process can operate such that as changes are detected within the file system being exported by the ~ server, the file, and file or di~ y structure m~int~ined within the cache memory device, are ~imil~rly updated. Optionally, this Illi.luliilg can be done autom~ti~lly, or upon the instruction of the user.
CA 02248086 l998-09-03 W O 97134225 PCTrUS97/04194 In a further practice, the plocesses of the invention can include a step of storing the portions of the file system according to a file or dilccloly structure that is employed by the server. Accordingly, the cache memory device can store information that is r~p;~-nl~ e of the files for executing the appli~ti~n p~g.~." as well as the info,...ation fe~ se~ re of the dil~:toly structure ~ ed with these files. This dil~lol~ structure can include dil~lulies, sub~ lo. ;~s, paths and other dir~;lc,ly structures. Moreover, the directory structure in the cache can conÇull,l to the file system employed by the server, so that, for ~u,ple, Windows clients can store a UNIX file structure in the cache memory.
In a further pr~ tic~, the proce sses of the invention can include the step of providing an off-line page which is ~~l~,en¢~ e of at least one link to an appli(~tion pr~gl~ll stored within the cache memory. The off-line page can be an HTML page stored within a memory device ~cç~ihle by the client and made available for connecting to files stored within the cache memory device of the client. Upon invocation of the off-line page, the user can activate links within the page to cause the ey~utinn of application ~lOgl~ullS stored within the cache memory device. In a further practice of the invention, the pn~cesses of the invention can include the step of providing a preload control for allowing a client to store selectively an appli~tinn program within the cache memory. Accordingly, the preload control will allow a client to select application pl~l~lls stored at a server site and made available by the server for ~A~lling to a client, to be stored within the cache memory device, for employment by the client without r~ui,~g access through a COlllpul~
.
In a further practice, the meth~ls can include the step of providing a process for directing the server to eYP~u~e the appli~ n programs within the pl'~glalll memory of the server. In this way, metho ~ of the invention can also include functionality that aUows a client system to act as a terminal while a program eY~cu~es within the server program memory, thereby allowing a user to select belween executing the application program within the client program memory, or alternatively eY~uting the application program within the server program memory.
In a further emb~im~qnt the invention can be understood as methn-l~ for allowing a server to provide remote eYecuti- n of an appli~qtion program stored on a memory device linked to the server. The plû~SSeS can include the steps of geneldling an application informqtion file that is ~cl)resen~ e of files qcsoc:3t~d with the application program. In a further step, the pl ~ sses willg~n~ dtc a link lcl)lesel~tdti~e of a pointer to the application info~l.,alion file, and detect a request from a client to execute the application pl~gl~ll.
Re,~llsi~le to the request, the processes of the invention can transmit data signals to the client which are l~pre3ent~t;~le of the files q-~soriqtP~ with the apl~lir-q-tion PrUE1~1l. In one practice of the invention, the step of gen.,.dting an application infollllalion file can include the step of gC'~lF ~ g il~Ço.",dlion that is lep~se.,ldti~/e of a file or dir~~.y structure q~oriqt~d with the files of the -arpli~qtiQn pl'Ugl~ . In this way, the application info.",ation file can include inrol".alion that is l~ sen~dli~e of the files q~ Dci~t~d with the appli~qtion ~rûgr~" as well as the file or dile-;lul ~ structure that is employed by the server for .n~int; ;--;n~ the applir~q-tion ~ ~-~,-s in a forrnat that is suitable for eYe~utin~.
The m~tho~ of the invention can also include the step of gel~F.~ e an appli~qtion file that inch~des information which is lep~ /e of the op~ ;ng envir~nll.cnt for the appli~q-tion plUgl~ll. In this way the qMli~qtion inforrnqtion file can contain info....~t;on that allows the client to reconfigure the local oper.qtin~ envi~nlllGnt to accommodate the application plOgl~ll.
In a further e,nbo~ n~nt~ the processes of the invention can include the steps of providing the server with a link to a second server, and dil~i~ing the server to identify to the client those application programs that are stored on the second server and which are made available for eY~ution by the client. This allows the server to advertise to the client those application plogla~us which are being made available by other servers and which can be invoked by the client. This provides the client with access to the appli~tion~ available on a plurality of dirrelGnl servers. Optionally, the selver can create links to the application programs available at other servers. The client will employ those links to execute these application programs.
WO 97/34i25 PCTtUS97/04194 In a further practice, the p~cesses of the invention can include a step of providing a mPterin~ process for monil~. ;n~ the number of clients running the application ~g~
Optionally, the mPt~rine process can gPnf'~ te st~ti~tir~l h~f~llllalion that identifi~s certain char~r,teri~tics of the use of the application and which can be provided to a system ~-lminictrator for ~ iminictrative functions, such as to ~lloc~tp r~s~,ur~es more appfoprialely.
In yet a further embo~limPnt, the pl'OCeSSeS of the invention can include the step of providing an access control process for allowing the server to control a client's access to the application progl~... In this emb~imPnt the server can include an access control p~cess that ~uil'~S ~thPntir~tion, either by password or other key, to limit to a SP1f~ct~P~l group those clients which can access application pr~...s .. ~in~ ~ by that server, or by other servers.
- - In a further e---bod;~ nt the processes of the invention can include pl~ ~ 5ses that allow a client to install an app1ir~tion plogl~-- stored on a memory device linked to a server. These pl~JCeSSes can include the steps of providing the server with access to an in~t~ tinn ~n~gl~lll for in~t~11ing the applic?tion plO 1~ll for op~r~ti~n by the server, gen~aLing an app1ir~tit~n inrolllla~n file that is lep~s~,l~Li~/e of files ~c~i~l~1 with that in~ ti-)n ~,logl~ lr -I;ng a request from the client to install the applir~tion ~r~l~-, locally, and tr~ncmitting to the client, responsive to the application information file, data which is ~q)lese .1;~ e of the files ~soci~ted with the in~t~ tion program. In this practice of the invention, the pruceises can also include the step of gene~ling an applir~tion inro...lalion file that has inf~,l---aLion r~plesçl-lAIi~e of files ~soci~tp~ with the application pl~)gl~.l.
In a further embo iimPnt~ the invention can be understood as server pl'OCCSSeS that allow a client to execute locally an application plogl~ stored at a memory device of a server. These processes can include the steps of providing an HTIP server process that can access a memory device having storage for one or more server dil~ fies that store files associated with an application program, including the executable code of the application program. The server provides the client with access to the files and dir~clo. ;es, W 0 97/34i2S PCTrUS97/04194 and the client can cache portions of the file system cnnlA;~ing the application p~g~ , and employ a cache r~direclor element to access the portions of the file system that is stored within the cache memory.
The term "client", as used herein, enco...l Ac~s any data proces~ g system suitable for opc,~lh~g a process accor~ing to the invention. The term "serva" can encompass any process running on a data proce~ing pl~lro..~ that connecls into a col-lpuler network and that receives access requei~, whether under HTTP, FTP or any other conventional or proprietary protocol. The term "appli~qtio~ plUgl~ 'l as used herein, encomrA~es any COIII~JU~1 file or set of files that contain data in a format for being ;~cces$e~ and processed by the proces~ing unit of a computer system. The term '~ll-c~no~ device" as used herein, encompA~ses any device that can store Col.,~ul~r readable data and that provides an interfq.-e for Acces~ing the stored data, and can be undc;~lood to include volatile and persistent memory devices, incllJ~ing hard-disks, RAM, n~wo.~ disks, and any other suitable data storage system.
The term "file system" as used herein enco...rA~fs logical structures that define the relationship ~elween files, dilc-;lo~;-es, disks, devices and ports that are stored on or linked to a col--l~u~r system, and include file systems of dil~lc,l~ structures that define the hierarchical relAtion~hir~ ~lw~n stored files, disks, disk partitions, file blocks, devices or other sources of COlllpu~l data.
The term "server address signal" as the term is used herein, encompA~Ps any desc.illlion that identifiPs a network address of a server. The term is understood to include any descliplion for an TnPrnPt address of a server in~ 1ing any host number, any host name, any domain name or any other descli~,lion sllffi~iPnt to identify the network address of a server. The term "path name signal" as used herein encompqc~es any description suitable for providing an op~latillg system with information for identifying one or more components of a file system inçlll(ling a file, a dil~lol~, a sub-directory, a device, a port or any other direc~ol~ primitive.
_ g _ W O 97/34225 PCTnUS97/04194 In a further emboflimPnt of the invention the system can include a server elemPnt that has an ~lmini~tr~tion pr~g~ for storing on the disk at least one file system of CO111YIIlG1 files stored according to a sel~Pcted file system ~lolocol. One such ~imini.Str~tion pl~gldlll can include means for storing a file system of c~n~y~ r files according to one or more of a DOS, UN~, VMS, WINDOWS, WINDOWS 95, WINDOWS NT, OS/2, or SYSTEM 7 file system pr~col. In a further embo 1im~nt of the invention, the system can include a connection e1emPnt that inr.l~lde~ an element for g~nelating a call to a port of a server HTDP process. For eY~mplP' the con~ ;on elemPnt can include a conl~f~ ;02l plUgl~LIII that genÇ~t~s a call to the port 80 of the server process. Port 80, a well known port, provides the Tnternet address of the HTTP server oyç~l;ng the ploCeSS coupled to the client system.
In a further embodi~ nl of the invention, the server inrllldes a file sharing p~ l~n. The file sharing plu~,ldlll can be NFS, SMB or HTTP co..~pliAnl, and the file sharing ylo~ldlll can create an array of file poinl~, such as a UniY~ inode, which can be understood as an array of yoint~ to colllyul~r files stored on the server system.
These and other ~l-lbo~ of the invention will be more clearly lmders~ood by rere.~nce to the following ~let~ilP~d de~-iylion and ~tt~rh~d dl~-wings, in which like reference numbers refer to like ele~....I.~i.
~rief n~ on of th~ n~w~
Figure 1 illu~tr~tçs one system according to the invention for establishing a connection to an TntPrnçt site and for ~-~u~ g application programs located at that site;
Figure 2 illustrates one process for creating a link to an application ylugl~ll at an HITP server;
Figure 3 illustrates in greater detail the system illustrated in Figure l;
Figure 4 illustrates the system of Figure 1 having a mounted logical disk partition;
Figure 5 illustr~tPc thesystem of Figure 1 having an array of file poin~s i~llP.g~,.ted into the hierarchy of the client file system for providing the client program loader with entry points to application p,ugld.ns stored at the Internet site;
Figure 6 illllsllntes an ~ltprn~tive embodiment of a system according to the invention;
Figure 7 illustrates the system of Figure 6 employing a cache memory for ~ cPAsin~
an application pr~g~
Figure 8 depicts a graphical interface suitable for employment with the systems of Figure 1 and Figure 6 which provides a dir~clol~l structure for ~ccesc-ing and PYe~utin appli~ation progl~lls; and Figure 9 is a filnctinn~1 block ~ia~r~m of a process according to the invention for PYe~uting application pr~gl~lls from a Web Intel,.~ l site.
~aj~41 n~rr~,otion of the Invention The invention comprises, in~er alia, systems and met~o-lc that enable a web site ~mini.ctr~tor to provide links to remote applications within their web pages. One r~li7~ti~n of the invention is that a remote client can be allowed to eY~ute an application ~r~gld..l stored at a HTTP server. To this end, the invention provides the server with access to a remote file system, and with access to a file that can contain information of the files, directory structure and system environment associaled with the applit~tion program.
The invention can also include a system for allowing the client to mount the portion of the shared file system that includes the application program. The system can include an HITP
redirec~ol elemPnt that tr~ncl~tçls Op~.~t;l-~ system requests to access portions of the shared file system into Hl rP compliant commands. An HTTP server at an Internet site responds to the col~---ands and provides access to the HTTP server directories. Accordingly, the W O 97t34225 - rcTrusg7/o4l94 edi~ )r creates a drive connection to the server directories to provide a client with access to files stored therein. This provides an HTIP shared file system. In this way, a remote application can be ~-uui~ted into the client file system and then run from within a window of a br~Gr plog,~., or from a lzllnrhing ~ a",. Optionally, the links canappear as plUgldtll icons within the window of the blU ~. s~,r or l~mt her program.
It will be understood that one advantage of the systems and methods according tothe invention is that legacy app~ tion~ available for t~Yec ltion within a col~lale nc Iwolk can be readily l~lmrhed over the TntPrn~-t an Intranet, or other network system, and Y~ecut~d within a window of a brow~r or lzll~n~her p[Uy,l~"
To this end, the systems and method~ of the invention provide the ability to create links that appear within a browser type ploglolll, and which can link the client to an applir~tic)n inrc"ma~ion file that is ...~inl~in~ at the server side of a n cl~ulk connection and that contz~in~ information for lunning the application pr~l~l,. The zlpplir~tir~n ,.rc,....~, ;on file can identify those files, such as *.exe f~es and *.dll files, that the client will employ to run the appli~tion within the plOgl~~ e-llol y of the client. In one przlrtice, the server makes these files available to the client via a shared file system.
Optionally, the client can use a transfer plulocol to download the files from the shared file system and to store the files within a cache memûry system that is connected to the client.
The client can then, optionally run the applicatiûn locally out of the cache memory.
~ltt rnzltively~ a pn~gl~ll loader process opel~ali,lg on the client can load blocks of eYecutzlhle code of the applir~~ion pl~Oglalll to the local memory of the client and the code can be executed from that local memory. -The invention will now be eYplztinçd with reÇel~nce to certain illustrativeembo-lim.ont~, which are eYemplztry and not to be understood as a limiting, or an eYhzlllstive es~t.~ ;on of the invention.
Figure 1 depicts a system l0 according tû the invention for z~rc~s~ing, deploying, and eyr~uting application programs stored at a drive linked to a server, and in particular to W O 97l34225 - PCT~US97/04194 an Hl rP compliant server. In particular, a website ~flminictr~tor can employ the systems of the invention to provide a user with access to application plOgl~llS stored at different network locations, inrll-fiin~ Internet and Tntr~nPt sites. As illustrated in Figure 1 the system 10 includes a client ehPmPnt 12, co~ u~r LANs 13a and 13b, an HTIP server 14, memory devices 14a and 14b, a server 15, a network node 17, an optional program interface 16, optional application icons 16a, 16b and 16c, cQrnmllnir~ti()n PlemPnt~ 18 and network nodes l9a and l9b.
The client e1Pmpnt 12 depicted in Figure 1 can be a co------el~ially available PC
co...~Lible co..ll,uler, Unix wv.k~l;on or any other data pr~ces~ g system suitable for running a process and for opcl~ling a co.. l~n;- ~tion interface that provides aco.. lJni~tion link with a server site. Moreover, the client 12 can be a stand alone co~ Julef system or, as depicted, a networked co...l,ulcr system. The client 12 can include a teleco~ ,-unic~tion~ e1~PmPnt 18, such as a modem, and also includes a bru~cl, or l~llnrh~Pr, p~ogl~m, such as the NTEt~c~re browser, which is suitable for establishing a conn~tion to an HTTP server. In the ~e~..bo li...~nt depict~Pd by Figure 1, the b~ ~r pie~lably provides an optional ~r~rhir~l int~rf~cp~ 16 that allows a user to control and direct the operation of the system 10 to access and execute selP~ d files. The ~3epictf~
graphical intf rf~r~ 16 displays an app~ tinn icon el~pmpnt7 such as 16a, that provides a gr~rhic~l device for a user to activate an ~oci~tP~ appli~tif)~ program stored at a memory device, such as disk 14a, linked to server 14.
Figure 1 further depicts an HTTP server site that includes a server elemP-nt 14 that connects to the co..,,.,-.ni~tion~ el~mPnt 18 and the memory devices 14a and 14b. The server 14 can be any server elpmpnt suitable for running an Hl'IP server process that can be ~ccçss~Pd by a client, such as client 14. Typically, the server 14 is a data proccc~in~
system that runs one or more server processes for m~in~ ing an Tnternet or Intranet site that includes one or more files for network access. In the e---bodiment depicted in Figure 1, the server 14 connects to two memory devices 14a and 14b, depicted as external disk drive systems. The memory devices 14a and 14b can be local memory storage for the server or can be remote storage that is linked to the server 14. Each disk drive system can W O 97/34225 PCTrUS97/04194 a set of col-lyul~l files, including dil~clolies and files of eYPcut~ble application pr~l~ll code, which the server can access and control. The server 14 can be a stand alone coll.l~uler system, or as depicted, the server can be a networked conlpuk l system, having one or more data processors that can access local or networked memory devices.
Figure 1 illustr~tPs that the systems of the invention extend the capabilities of the World Wide Web by enabling web site ~mini~tr~tQrs to provide web pages that have links to remote applic~tion~. Moreover, the web site ~~mini~tr~tor can employ the systems of the invention to provide transparent inst~ tion of an application pr~lal~l at the client site.
This allows a web site ~ 1minictr~tor to make ~rrlic~tiQn~, inr1~1-1ing legacy applir~tion~
stand alone applir~tion~ and client/server applic~tion~, available for PY~Cution within a corporate Intranet and across cG~ dte bounds ll-lu.lgh a browser or l~llnrher pl~l~JI.
This is shûwn in Figure 1, by the server 14 that connects to the coln-nu~ tiQn elPn Pnt 18, the memory devices 14a and 14b and the LAN 13b. For eY~mIllç, a nelwu,k ~ministr~tor chal~ed with providing users with access to certain appli~ ~tion plO~ such as anap~lic~ti~-n pr~gl~l- for allowing a user to invest in mutual funds, can store the application ~l~gl~ll on one of the memory devices 14a or 14b. The site s Imini~tMtor can install a server process on the server 14 that allows users at the nodes l9a or l9b to access the application piOgMIll and to PYPCute the pr~gl~l- for investing and m~n~ging funds.
Accordingly, the site ~dmini~tr~tor is able to provide this application program to users connected to the LAN 13b. The systems and metho~c of the invention allow the site ~mini~tr~tor to provide remote clients with access to the application pro~,~u". For eY~mple, an Hl~P server plvCf SS can be inct~ll~l on server 14. The ~ server process will provide links within HTML pages that will link a remote client to an applil~tion inîol",~Lion file that is ~oci~t~Pd with that link and that can store information lc~l~sf~ tive of the co"lponent~, environm~Pnt, and other data relevant for PYPcuting the application program. The client's browser 16 will display the HTML page showing the links as graphical devices, such as 16a. The client can mount the shared file system cont~ining the remote application co~ 2nt~, create the environment a~propliate for running that application, and invoke the application. The application can run locally within the client memory. Upon t~ll,lination of the applir~tion, the client notifies the HTIP
server process and the server process no longer services the client.
Figure 1 further depicts that the client e1F...ç-~t 12 can also access pl~lallls and files controlled by a local server, such as server 15, to which the client 12 is conn~cted by the local area network 13a. In particular, Figure 1 shows that systems of the invention can be inl~;~dled into esisting LAN technology to allow a client to PYecute applir~tion pr~g.dlns provided by a coll~ulate network, such as an Intranet running on LAN 13a, as well as appli~tion~ stored at a remote site such as the HlTP server 14. Accordingly, by c~lllbu~ing the S~t~,.lls and metho~s of the invention with ~Yi~ting ~nl~; ~et technology, a node on an Intranet can have access to application programs stored at a remote site, with the syst~llls of the invention providing ll~lsp~ nl access to the applir~tion pl~ llS at these remote sites.
Figure 2 depicts one process for providing a web page application link. In this process, the application p~o l~lll is provided within a shared dil~cluly, or an l ~l~d file system. The dil~to~ ;P-S are to be shared lllloulgll a file system server such as a LAN
manager system, the NFS system, the NCP system or any other suitable file system server, or optionally by employing the H'ITP l~dilwlol, can be placed on an Hl~P server. For the ~pplic~tion program in the shared dil~;luly, the web site ~ministrator can, as shown by step 21, gcllC~ale an appli~ ;on information file for the remote applic~tion Optionally, the file can be created autom~tit~lly by a process eYecuting on the seNer.
This application information file conl~ information I~P~s~ly for running the remote application on the client. For eY~mrle, the applic~tion information file can include the executable files (i.e., EXE files), the initi~li7~tion files (i.e., INI files), systems files (i.e. SYS files), dircc~clly structure information, and any other infolJ~Ialion or configuration ~ parameters that will identify the proper environment for running the application. A process OpeldLillg on the client, a~plo~lialely configures the o~ldlil~g environment to allow proper eYecution of the application progradm.
After creating the application info.,l,alion file, the process in step 23 can embed within the HTML page exported by the server, an icon that refers to a link to the application information file. Optionally, a set of access rules to the application link can be defined. This is typically done during the development of the application link and the access rules can include definition~ as to which set of users and or clients are yellllilLed to PYeCutp the application from the link, how many occurrences of the applir-~tion may be running .~imull;-nPuusly, ~ uiling a user to pay a prede~",ined fee, or any other such type of access rule. If the access control is ~tisfie~, the applir~tion plUgl~lll, can be invoked.
From the above ~eSc~;p!;on~ it will be ayppal~-nt that the systems and pl~esses shown in Figures 1 and 2 can be oye~ted on cG~Illlel~ially available hal.lw~uc, and typically can be in~t~llP~ by a site ~ lmini~trator onto an eYi~tin~ LAN, such as the network 13b. For eY~mpl~, each memory device 14a and 14b can be a commercially available hard disk system, or a partition of a hard disk system, a RAM card system, or C~Ill~Ult;l RAM
memory. However, it will be appa~enl to one of or~m~ ~ skill in the art of co,,~yuler engi~ . ;ng that any memory device suitable for storing data and for intP~ ing to a data r~cessor or a collll~ule~ WUll~ can be pr; etired with the present invention, without dep~ling from the scope thereof.
The co-,,,,,ui-i~tions elem~-nt~ 18 are figuratively depicted as modems for inl;~inillg a teleco.. ~ ic~tion link bGlw~n the client 12 and the server 14. However, the co,,,--~ ir~tion elemPnt~ can also be ISDN devices, fiber optic devices, cable devices or any other type of co".. --ir~tion device suitable for establishing a co.l,ll,~ ir~tion link to a remote site. The local area networks can be ell,e~"el systems, or any network system suitable for carrying data bel~n data ~rùces~ g systems.
Figure 3 depicts in more detail the system 10 of Figure 1, and depicts system 10 in a state before the client 12 has requested to eYe~ute an application pn ~gldUl stored on the server 14. Figure 3 depicts a system 10 that inclu~es the client elf!mPnt 12, the server e]Pmlont 14, a handle collection e1ement 20, a file system 22, a device driver 26, a disk mount element 28, a disk dismount element 30, an org~ni7~tion and management element WO 97/34225 PCItUS97tO4194 32, a data tr~n~rort inteff~e 34, a tr~n~mi~iQn path 36, a second data transport interface ~lPmpnt 40, a file sharing system 42, an ~ lmini~tration program 44, a memory elemPnt 46 having a PC partition 50, a Unix partition 52 and a Mac partition 54, wherein at least one of the partitions inr.ludes a logical file system such as file system 56, and further including a file hierarchy structure 58 of files acces~ihle to the server 14.
Figure 3 depicts each functional block as an el~P-ment of the system 10. However, it will be a~l,~ent to one of oldin~y skill in the art of co.npu~r and sorlwa.e e~.g;neenng that each ekPme-nt can be a software routine that ope~ates on a data pl~ces.~ g unit to configure the data proce.~ing unit to operate as the device ~lepict~Pd as system 10 or as a s~s~ of the system 10. Moreover, it will be al~p~enl to one of o-~in~ ~ skill in the art of colllpul~l and sorlwa~ PnginP~..;ilg that the filnctiorl~l blocks depictP~l can be col..bh~cd ehP-mPnt~ of h~dw~ and s~rlwate that operate to implP.mP.nt the function~ of the system 10.
As depictPll in Figure 3, the client 12 in~.lndes a data transport interface PlP.mPnt 34, which typically is a TCP/IP int~lr~ce suitable for establishing ~onnpction~ to an Tntf..--..l or Tntr~nP.t site. The bl~er program process running on the client 12, such as the Netscape Internet bio~ l, interfaces with the TCPtIP data tlans~oll int~lptfs~ce ekPmPnt 34 to transfer data under the TCP/IP plotocol to the server 14. .Simil~rly, the handle collPction ekP.mPnt 20, the mount elemPnt 28, the dismount PlPmP.nt 30, and other el~PmPnt~ of the system 10 employ the TCP/IP data ll~ulsp(jll interface elem~P-nt 34 to transfer data and comm~n~
b~w~n the client 12 and the server 14. The intetfac~ elpmpnt 34 can be any conventional Tnte~nP.t p~ollxol interface, such as any program that follows the Winsock protocol for interfacing Windows ol)c;laling system prog,~lls to the ~ntetnet~ such as the Trumpet Winsock TCP/IP data transport interface progl~ll. However, it will be apparent to one of on linal ~ skill in the art of computer enginP~ring that any system suitable for transporting data on an IP network can be practiced with the present invention without de~)~ling from the scope thereof.
WO 97t34225 PCT/US97/04194 In the depicted embo lim-Pnt7 the server element 14 also includ~Ps a TCP/IP datatransport interface 40 which conile~;ls via the tran~mi~ion path 36 to the data transport interf~re 34 of the client elPmPnt 12. The data transport intPrface 40 transports data and control information to and from the server 14 thereby providing a transport layer for ~u~ g the file sharing system 42 and the ~(~mini~tration progld~ll 44. The development of servers that include int~g~ ed lldllS~ull layer protocols is well known in the art of COIll~ el r.n~inPPring and any transport p,ulocol layer that allows for the exch~nge of data bt;lween the client 12 and the server 14 is suitable for practice with the present invention and considered within the scope thereof.
As further illustrated by Figure 3, the depicted server 14 inrllldes a server process 48. The server process 48 interfaces to the data transport interface 40 to con~ the client 12 to the server 14. In one p~cf~llcd embo~im-Pnt of the invention, the server process 48 is a web server process for providing HTML pages to the client 12 in resro~e to hyp~
link- requests from the client 12, as well as other P,lPmrnt~ of the system. The server pr~cess 48 is a l,r~~ that implements the process of the invention and that is constructed accol~lih~g to known rrinçiplp~s in the art of colllputel and software ~n~in~-~ g.
As further depicted in Figure 3, the server 14 inrllldes an ~1mini~tration lJlOgldlll 44 which configures the server 14 for providing eYr~ut~hle appli~tion plOgldlllS to the client 12. In one emb~iment, the ~-lmini~tration pl'~ldm 44 inrllldes a partition ~rog~
for parti~ioning the memory device 46 into several logical sPction~ d~Ppirtpd as section~ 50, 52 and 54, each of which can have a device name and each of which can contain a logical file system 56. The construction of such partition ~lu~,ldlllS is well known in the art of sorlw~ P.ngineP,ring.
In the embodiment of Figure 3, the partitiûn plogl~lll creates the logical section 52 for storing data according to the Unix file system protocol. As depicted, the partition 52 inrlu-les a logical file system 56 con~i~ting of one file, for which the file system 56 inc1~lde.s a boot block, a super block, an inode list that re~l~ se.lts an array ûf poinl~,~ to a set of data file blocks that lcpl~senl the physical location of the data on the disk 46. The file system 56 can be the convention~l UNIX opeldting system file system. As further depictP~ by Figure 2, each logical disk partition section can be employed by theadmini~tration program 14 for-storing different types of co.,.~uLer files according to different logical system file plulocols such as DOS, UNIX, VAX, or any other file system protocol wherein each logical disk section inrl~ldes a logical file system 56 that provides to a prùg~ loader, or the device driver that comm~nic~tes to a ~rogl~,. loader, the low level illfo.lll~lion le~les~n~ ve of the physical disk loc~tion on which it is stored the files of the ~cso~-:a~l disk partition.
In one ~ ~lbo~ np~t of the invention, the ~mini~tr~tion pr~gl~" 44 inclu-lPs a partition sul,n~uli, e that creates each logical section 50, 52, and 54 to provide a file system of ccn~uL~l files that can contain appli~tiol- programs for running on any type of client 12 that may connect to the Tnte nel site. Such subluuLin~s are well known in the art and any suitable ~llbrouline or op~l~ng system call can be employed by the invention.
Sperifiç~lly, the ~-~ministration progld--- can be employed to subdivide the disk 46 into logical sP~tion~ for each dirr~l~, l type of client 12. Typically, the type of client is del~l"-ined by the type of ope~;~t;ng system the client runs as well as the type of processor emplûyed by the client 12. Each client 12 would provide the server 14 with a client-type signal that allows the server 14 to det~l---ine which logical section of the disk 46 ...~ in~
files suitable for that particular client. For ~...pl~ a client 12 that ope.ates under the Unix opel,ll;ng system, can access the files stored under logical section 52 and a 486 PC
con~palible cclll~uLe~ nning DOS would access logical section 50. The a~1mini~tration pi~g,~.. 44 that implemPnt~ the process of the invention can be constructed according to well known principles of sorlw~u~ engin~ring as a sur~wa~e module, such as a complied C + ~ sûrLw~c module, that employs system calls to the server upe~d~ g system, such as the UNIX opelaLing system. However, it will be a~pa~enl to one of oldindly skill in the art of computer and software e..~ e~oring that any structure that implemPnt~ the functiûn of the ~(lmini~trative program can be practiced with the present invention without departing from the scope thereof.
W O 97134225 PCTrUS97/04194 In a further embo~lim~nt of the invention, the ~mini~tration proglalll inr~ les a file access control plOgl~lll that delell"ines as a function of a client privilege signal, the access rights available to the client 12. In one embodiment, the file access control program incllldes a d~t~h~ of client i-lPntific~ti~n signals. In this emho~iment the management plOgla~ll 32 inclll~les a client management program that provides a client idtontifir~tion signal that uniquely i-1PntifiPs the client 12. The file access control pr~gldlll includes a ~1~t~h~e of client identific~tion signals and further includes a client privilege field for each client identifir~tion signal. The file control pl'~ SlcUII employs the client privilege field to detrrmine the file access rights of the client 12. The file access control program provides the file access rights to the ~lmini~tr~tion l~lu~lcull 44 which can det~...inc the proper file system or disk partition to make available to the client 12.
Accordingly the ~ ..inl~h~dlion program can provide a lir~n~ing and security system for the system 10. It will be apparellt to one of or~y skill in the art that any file access control plu~ m suitable for controlling the files that are mounted into the server file system hierarchy 58, or that controls the copy of the server file poh tel~ provided to the client 12, inrlluling password systems, on-line charge ~ S~ or any providing other such system for controlling file access rights can be practiced with the present invention withuuL
dep~Lulg from the scope thereof. The ~mini~tration p~ u-l 44 can also include the process that allows an ~lmini~tr~tor, or optionally a client, to create and configure applir~tion information files which can be specified as links in web pages. In a further embo~imPnt the ~imini~t~tion pr~gl~-- 44 can contain a process that ~I~oni~ system use and g~n~ es st~ti~tiss that allow the site ~mini~trator to track and control l~Sûul'~;S.
In a further embo~limPnt of the invention, the m~n~m~nt Pl~m~nt 32 in~ des a client management elem~nt that provides to the server 14, along with the client-type signal, a client file having information signals r~l~sen~ e of the cha~ete i~tiss of the client.
These char~rteri~tir~ can include the memory size of the client, the available progla.ll memory, the system configuration, inrll-ding the config.sys file, win.ini file, configuration files for local applications and the file names of one or more of the systems stored on the client 12. The ~mini~tration program 44 employs this infol,l.dLion to de~l",ine which files to provide the client, as well as for other conventional m~n~gement functions.
In the depicted embo lim~nt, the ~-lmini~tration plOg~lll44iS Sep~Lldte from theserver process 48, however it will be appafent to one of oidhl~ y skill in the art of colllpuler and software er~g;i~ g that the ~lmini~t-ation p~gldm can be implem~nt~ as part of the server process 48.
The file sharing system 42, depicted in Figure 3, colllllluni~tes with the Ille.lloly device 46 and allows the server clr~ nt 14 to read and write h~fol",dtion, such as C~ U~
files, to and from the memory device 46. The file sharing system 42 further ~ in~ the file hierarchy 58 for the server 14 to provide thereby the logical structure for ~cces~ing and m~n~ging coll~p--~r files which are stored as data blocks within the memory device 46.
The file sharing system in~llules a mount procedure 42 that com~ec~ a file system in a ~ ifi~ section of a disk into the eYistin~ server file system hie.~.,lly 58. Moreover, the mount procedure call 42 can convert an o~ g system specific path name into a file handle. A file handle, as is known in the art, is a data-address structure that the server 14 can employ to cG~ ic~te with the client 12. The file handle acts as a file pointer to a file of the file system. Typically, the file handle, or file pointer, is a system unique 32 bit nllmher that i-l.o.ntifies to the server 14 a file when the file is first opened and provides Ille~r a handle the server 14 can employ to access the file pointed to by the handle. In one embo~iment the file sharing system 42 is the NFS system developed by Sun Microsystems of California that creates node arrays of file poi~ for sharing a file system on a Unix platform. However, it will be a~pa~. t to one of ordin~y skill in the art that any file sharing system that can mount a file system and gen~dte a file handle that acts as a file pointer to the files of the file system, can be practiced with the present invention ~ without departing from the scope thereof.
The client 12 includes a device driver 26. The illustrated device driver 26 controls a dynamic mount procedure 28, a dynamic dismount procedure 30 and one or more W 097/34225 - PCTrUS97/04194 org~ni7~tion and management procedures 32. As described in greater detail herein after, to access an application prUgl~ sorted at the Internet site, the device driver 26 activates the dynamic mount procedure 28. The mount procedure 28 creates a remote procedure call that is passed tû the data ~ S~,U1l interface and transported to the server 14.
With reference to Figure 4, which depicts the system 10 in a state after the client 12 has SPlPCt~P~ an app~ tion progl~l, for execution, the system 10 can be further explained.
As depicted in Figure 4, the system 10 inch~des the elem~nt~ of Figure 3 and the further elemPn~ of a server array of file pOil t~l~ 60, a file hierarchy 58 that in~ es the logical file system 56 mounted at the client mount point of the file hierarchy 58 and an array of remote file pointers 24 that are ...~in~ ~l by the file system 22 of the client 12. The system 10 generates the server array of file pOinlelS 60 and the array of remote file poinle 24 in response to the client 12 requesting to Pl~ecut~P an application program stored within the logical file system 56.
In one embod;...~-nl the client 12 e~llplu~ the web browser p~gl~UIl to contact a server process 48 running on server 14. The bro.. ser program provides the server prOCe~5 48 with a client-type signal that intlic~tPs to the server process 48 the system type of client 12 and the file system protocol employed by client system 12.
In the depicted e",bo ~ pnt the server pl'~)Ce55 48 provides the ~(lminictrationpr~gldlll 44 with the client-type signal. The ~llmini~ation program 44 employs the client-type signal to d~ ...il-P a co~ )atible logical file system that is to be provided to the client 12. In one emb~imP-nt, the ~1mini~tration pr~gl~", 44 del~ll.lines the proper file system to be provided to the client 12 and provides the server process 48 with a pointer to a URL
documPnt that in~11ldes dir~ly infol,l,ation signals that describe the dir~loly structure of the file system 56 that is co~Lible with the client 12 and that will be made accec~ible to the client 12. The ~-lmini~tration program 44 can provide the web server 48 with an H~P
URL that provides a hypertext page which graphically depicts the directory information signals. Optionally, the ~-1mini~tr~tinn p~ ,ldlll 44 includes a page elemPnt that has a hypertext link program for generating a hy~~ l signal which rt;~ sen~s the directory infollnation signals as graphical icons which are h~pt;.~Al links to further URL doc~mPnt.
that provide further detail of the dil~;lc~ly structure of the logical file system 56.
The server process 48 transports to the client 12 the di~ecloly inforlll~ion of the available logical file system 56 and further provides a data file that include~ the Tntp-tTlpt network address of the server 14 and a path name to the file system 56.
The connr~;l;on el~mPnt 20 receives the data file provided by the server process 48 and eYtt~t~ the n~,twolh address signal and the path name signal. The ct llPction el~m~P,nt 20 employs the r.el~4~k address signal and the path name signal to ge. ~.a~e the array of remote file point~l~ 24 and to provide the mount l~r~ 28 with the nf~.,~
arguments to mount a file system such as system 56. Typically, the conl-~ ;orl e~ -t in~ des a col~ tf-n~l;on pr~gl~ll to col~r~tf..~lte the address and p~l,n~"P. infollllation to &e~ lf the proper mount point. In alterative embo liment~, the conl-f~l;nn elemfnt receives the proper mount point and file system name from the ~tlmini~t~tion p[~l~ll. In a further step of the ~r~cess, the browser pr~ldlll of client 12 displays to the client user a ~phir~l depiction of the logical file system 56.
In one embodiment of the invention, the client user can request to execute an application progldlll i~entifiP~ within the file system 56 by çlic~l~in~ on an application program. In reSponc~ to the action of the user, the connPction el~PInPtlt 20 passes the ~--,ces~ y ar~ulllenls to activate the mount proc~ulc 28 that gen~dtes a remote pr~dul~;
call directing the server 12 to mount the logical file system 56 that cont~in~ the application pr~gl~ll requested by client 12, into the file hierarchy 58.
In one embo~imlont the connection e1emP.nt 20 receives a data file from the server process 48 that provides the IP address of the server and the p~thn~mP. to the files available to the client 12. In an ~lt~tn~tive embo~lim~ont the connection ~oletn~.nt 20 initi~t~.s a call to a port of the server process, such as well known port 80, that provides address information of the server 14. In one example, the client 12 can select to execute the appli~tion prog~ . XLANDER.EXE. Once the collection element has determined the network address and path name, the connecbon ~l~m~nt 20 can activate the mount procedu,~ to dyn~mi~ lly mount the file system that con~ine the file XLANDER.EXE. One such mount procedure 28 is understood from the following pseudo code.
int mount_fs(mntp) struct mntent *mntp;
{
int error;
/* The mount procedu~e makes a MOUNT - TRAP call. This calls the MOUNT - TRAP routine which is a call to an opcl~ling system library. Such function calls are provided, as one e~ le, by the Win library or the SYS library. You could also write your own mount function.
- error = MOUNT TRAP(type, mntp. flags, mnt data);
if (error < 0) {
plog(XLOG ERROR, "mount failed on % s: ermo= %d", mntp- > mnt_dir, ermo);
return (-1);
}
}
main (argc, argv) int argc;
char~
{
/* The main routine receives the host name and the mount point name from the collection program */
hostname = argv[l];
mp_name = argv[2];
/* the main routine then l~,m~ls the name of the file system that is to be mounted to format the file name for the web server process. Typically the file e~t~neion ".wfs" is added to denote the world wide web file system */
W O 97/34225 rcTrusg7/o4l94 fs_name=co~ Julc-fs-name(argv[l]);
/* the main routine then packs the file system name, the mount point name, a mount type field into a structure. */
mntp- > mnt_dir=mp_name;
mntp- > mnt_fs_name=fs_name;
mntp_> mnt_type=MNTTTYPE_WWFS;
/* The main that issues calls a mount file system pr~lu~c that o~)cldtes on the mntp structure*/
ret=mount_fs(&mntp, flags, (caddr-t) &nfs_args, 1, MOUNT_TYPE_NFS);
retum ret;
}
As ill~ dlcd by the above pseudo code, the mount pl~lU~C 28 receives from the collPction el~ment 30 two ~UgUIII~..It~ that rcplcsent the file system to mount and the u~ point for the file system. The mount pr~lule 28 can then create a remote pl~lUlC call for the file sharing system 42 to activate the mount l,~lul~ 62. The mount procedulc 62 mounts into the server file hierarchy 58 the file system, such as file system 56, which inrll~des the eYecut~t le l,r~l~ull file for the XLANDER.EXE applir~tion . The mounted file system can now be ~cce~d The file sharing system 42 is a pru~,l~" e1emPnt that creates an array of file pointc 60, ~l~cted as file ptr 1-n, that Ic~sent the locations of the disk 46 that contain the eYecllt~hle code for XLANDER.EXE. In one embo liment the server process 48 provides the client 12 with a copy of the file pointers. However, any system for providing the client with a copy of the file yoinlcl~ 60 can be employed by the present invention without departing from the scope thereof As depicted in Figure 5, the connection element 20 opens a file having the copy of the file poinl~l~ 60 and gencl~tes the array of remote file pointers 24. Each remote file pointer 24, depicted as IP + PATH + FILEPTR, is a handle, through the mounted disk W 0 97/34225 PCTnUS97/04194 partition, and to a physical location on the mounted disk 46 that can be employed by the client 12 as access points to the physical location of the disk 46 that contains the executable code for the XLANDER.EXE. In one embof~iment of the invention, the array of remote file poill~Gl~, is provided to the client 12 by integrating the array of file ~inte,~ into the file hierarchy of the client 12. It will be understood that any col-nP~;on ele~ment suitable for providing a remote file pointer to a file system can be practiced with the invention, including col-n~ on elPmPnt~ that employ a conc~lP~I;on routine for fo"l,ing poilltGl~7 by con~len~ a server address signal with a p~tl.n~-..e signal and a file pointer signal, such as a connP~tin elemPnt that forms a string WWW.EPICON.COM:USR/LOCAL/STORE/XLANDER.EXE, where WWW.EPICON.COM is a server address ~Gp esc.~t~tive of an IP address, USR ,ep~ nls the disk 46, and /LOCAL/STORED/XLANDER.EXE rep~nts the p~-lt..~...e signal.
- Figure 5 further depicts that client 12 can include a pl~glalll loader e1PmPnt 62. The program loader PlPmPnt depic~Pd in Figure 5 co~ to the device driver 26 and employs the device driver 26 to access the eYe~ut l le file sele~t~P~l by the user of client 12. The device driver 26 searches the file hierarchy of the client 12 and i~entifip~s the remote file pointer which points to a first block of code of the s-Plecte~l executable p~o l~ll. The device driver 24, which in~Prf~s with the data transport interface 34, ~ce-s~s the file block of eYe~ut~hle code by requesting a transfer of the file block from the disk 46. The program loader can run the process within a window in the bl~w~r process. For PY~mpl~, in one embodiment, the client 12 was configured to run the WINDOWS 95 operating system and employed the pro~ loader supplied under that opelating system. However, it will be apl,al~nt that any program loader suitable for employing file pointers for loading executable code can be employed with the present invention without departing from the scope thereof.
Figure 5 further depicts a co~ ,ession program 38 for colllp~ising data being transferred across the path 36. In this embodiment, the server process 48 also includes a comp~ession routine for cGInples~ g and deco"-p~essing data tr~n~mitted by the data transport layer. In one embo~imPnt, the invention provides a coll,plession pf~l~n that pc;lrul...s a hurr ..a~ çnr~ing procedure, however it will be appalent to one of o~in~y skill in the art that the substitution of alternative encoding processes does not depart form the scope of the invention. Ln a further ~re~ell~ emb~iment, the system 10 includes a c~-.hing system that allows the server 14 to cache data file blocks being read from the disk 46 and being pl~l~ed for transport to the client 12. The caching system can be any ~ ca~hing system that stores in a high access speed memory a buffer of data blocks for transfer to the client 12.
Figure 6 figuratively depicts the co-n~nenls and inter~rtion of an ~ltrrn~tive system according to the invention that includes a cache memory system, an HTTP ~ clor and a cache r~dil~r. In particular, Pigure 6 depicts a system that inrl~ldPs a client elemPn~
212, am HTTP server 214, a cache system 216, a file system server 218, a l~lu~l 222, a blU~;~. interface 224, a l~..,.chf,r pr~gl~.. 226, a file system connPctiQn process 228, a - remote access c~nl-f~l;rJn 230, a nc;lwc.lhing API 234, a r~dilcclor API 236, a file system cache API 238, an op~ g system file system interface 240, a cache r~]ir~clor 242, a nelwol~ file system client 250, an optional NFS r~dir~;lor 252, an HTIP l~dir~clor 254, a further r~li~cclor 258, and a mini-~edircclor kernel elemrnt 260.
The browser 222 can be a l~ru.. ~ as dese. ;be~ above and the client interface 224 can be an interface process, such as a N~t~c~pe plug-in, Active-X process, or any similar process, that int~.rfar,es the ~ru~r pr~gl~,. 222 with the other elen-lo,nt~ of the client 212.
Similarly, the l~llnr,her l,r~l~lll 226 can be an Active-X application, a plug-in or any other colllpu~l process that can be activated by the br~.. ~r prugl~ll 222. The d~.picted l~lJnrher program is a co---pùtcr process that can retrieve from the server 214 the application infol..lation file ~s~;~l~ with the activated application, mount the shared file system con~;1;l-ing the remote application coll.ponents, and responsive to the inforrnation in the application information file, create a select~ environment within the client 212 to start and run the application. The l~llnr.h~ program 226 can monitor the application eYe~utirJn and notif,v the server 214 when the application terrnin~t~s.
WO 9713i22S PCT/US97/04194 The l~llnrhPr program 226 can execute either a remote or a cached application. To this end, the depicted l~llnrhPr 226 interfaces to the file system connection process 228 that allows the l~llnr.her to interf~re to the client file system and to mount a remote file system to the file system of the client. Such a process for molmtin~ a file system is described above. Similarly, the l~lmr.h~r plogl~l- 226 can in~lrace with the remote access process 230 that allows the l~l-nr.hPr to access the remote application being eYPclltPA by client 212.
The remote access ~ cess 230 can dyn~mir~lly deliver blocks of executable code. The code can be loaded, as described above into the client ~lUgl~ll memory and optionally, stored within the cache memory 216 in a directory structure that mirrors the dil~lc."~
structure of the server 214. For this reason, the remote access process 230 can in~lL.
with the cache API 238 to control the storing and retrieval ûf data within the cache IllelllUl~
216.
- Figure 7 ~lepi~tQ, that in ~ itif)n to l~m~ing remote applic~ti~ nQ from the network through web pages pl~ ,enled by a server 214, appli~ ~I;o,-~ can also be run from the cache memory 216, optionally by activating links in an Off-line page. The Off-line page can be an HTML page stored locally on the client 212, and can have links to appli~ ~tionQ stored in the cache memory 216, for l~lm~hing these cached plOgl~llS. Moreover, the client can also include a process for aulu...~;r~lly l~unc.lling appli~tions from the cache memory.
Typically, this process is in~lnded in the cache ~cdil~;lul 242. This process can de~,ll~le if the same appli~tinn is available from both the server and the cache. If ~cQin~ the cache is more efficient, the plùCeSS wil1 launch the cached version of the application.
As described above, the ùpelaling system handles the request to load the remote applic~tion and routes file system l~u~i,ls to access remote application files to the app~pfiate network file system l~ile;lor. This can also include routing the reguests to the cache redireclor 242. The cache ledi~eclor 242 inlel~e~l~ certain file system requests for remote files stored on the created virtual drive ~Qoci~t~oA with the remote application. The cache re~ ;lor can determine whether the requested file has been cached. If the requested file has been cached the cache ledileclor 242 compalc;S file attributes of the file in the local cache memory 216 with the attributes of the remote file. If the attributes in~ t~ the remote files have been changed, the cache redileclc,r deletes the cached copy.
If the requested file cannot be taken from the cache memory 216, the cache redirector 242 passes the request to one of underlying network file system clients. The cache redirector 242 then finds a space in the cache memory to store that file and marks it to be cached when the OS file system reads the file from the shared network file system.
After coll~ting the file, the cache ~ cctor 242 returns the file to the OS file system in le.~yOnSe to the file system request.
After the appli~tion l~ es, the l~lln~h~r process 226 pe.r~ ,ls cleanup and ecl~ the drive/universal naming convention (UNC) col~nP~ n, l~st~res the environment to the origin~1 state, queries the cache ledil~ l 242 about all remote app1i-~ti~n~ which have co~ ~n~ntA that have been fully cached. Updates the Off-line page, col)~yh~g off-line appli~tion infollllation files to an install direclol~, and adds a link for the any new entry into the Off-line page and/or removes any links that a file bull~ped out of the cache 216. The client 212 notifies the server 214 of the ~rrlic~ti~n te..,~;n~liQn event, or of eY~ution failure event. The server 214 can then ~lr~,llll any nF~ .y m~t~ring management l~uiled for the application.
In ~ ition to the information describe~ above, the qrp~ic~tion hlfollllalion file can contain information for the Off-line Page. This can include an Off-line allowance flag. If this flag is not set, the l~lmf h~r 226 will not attempt to add the remote app!i~tion le~e3ented by this appli~tion info~ dlion file to the Off-line Page. This flag can be set by the server aAmini~tr~t~-r pro~,lalll when the web ~lmini~trator creates or updates the appli~tion information file. This infoll"alion can also include the list of the coml)one~ of the remote application that are to be cached in the cache 216 to run the application off-line.
This list can also be set by the server ~mini~tration program when the web ~vlmini~tr~t-lr creates the application information file. Optionally, the list can include an Off-line preload request flag. This flag is set to in-lir~te to the l~lnr.h~r 226 that the user requested to add the remote application l~le3ented by the applin~tion information file to the Offline Page.
W 097134225 PCTtUS97tO4194 The l~llnrher 226 can include a process that will preload all of the colllponents of the remote applirqtion to the cache memory 216 and update the Off-line Page, but not launch the remote application. The preload process can operate by generqtin~ the proper file r~uesls for the SÇlPCtP~ application pro~r.qm~, and sen~ling the file requests to the HTTP
cdil~clor.
In one emb~imPnt the lqllnrhPr can present a hierarchy of all "known" web servers running a server process accord~ng to the invention. The l,q~llnchPr can list the "known" applir-qtion links on each of these servers. The lql-nrh~r will obtain a list of "known" servers and/or their qpplic~tion links when the ln m- hPr starts eYP~ution. The list of servers can be o~lained by s~n~in~ a query request to a proxy server which is setup to be aware of other server p~cess~s according to the invention. The list of application links can then be obtained by sen~lin~ a query request to a sperific server. All applir~qtirJn links returned from the query request can then be displayed in a window of the l~nnrh.or.
Although the la...lcl~f;. p~cess can be coded in any suitable way, an embodimentcan be a 32-bit application for Windows 95 and Windows NT 3.51/4.0 ~&lr.,llns, a 16-bit application for Windows 3.1, or a process ported for op~ 7ll on a UNIX, OS/2, and MAC platform.
I?et-~rnin~ to Figure 6, it can be seen that the cache memory system 216 can act as a ,lqtqhq.~ç on the client's local disk which caches, or mirrors, remote applir~qtion~ and q.~oc;~tt~d files when an application is run via clicking on an application link. The ~l~t~h-q~ç
can be located in a hidden directory under a client in~t-qllqtion process di~ . Files can be stored in the cache in a dirrerel~l format than the dil~;l~"y structure on the server, and therefore cannot be int~ p~elRd by a local user directly. The cache 216 can improve ~c'ro~ q~nce by avoiding the need to run remote applications over slow links. Onent requests to elre~-lte the same link, appli~tion~ and ~oci~tffl files can be read from the cache rather than over the network. Additionally the cache can allow completely cached applications to be run from the Off-line page when there is no network connPction to a remote file server cont~inin~ the applications.
CA 02248086 l998-09-03 The depicted cache redilcclol 242 lies between the operating system's central file system control, and the inCt~llPd network file systems. It connects the dirre~cllt file system services, NFS, Hl-rP, etc., to implement the file c~hing me,h~ni.cm. All file system requests sent to this,layer are routed to the a~pr~,iate network file system.
~ To this end, the network file system client 250 that can act as a multiple-protocol file system that takes remote I/O l~ue~la from the client and sends them to the ap~ropl;ate server for pr~ces~ g. In the depictPA emb~imP-nt, the network file system client 250 incllJdes a plurality of redir~ that can act as a file system that takes remote I/O
requests, for files, pli~llela, serial ports, named pipes, mail slots, or other devices or abstractions, and sends the request to a server. As shown, each redilcclùr in the n~ lwulk file system 250 can ~edil~il I/O requests for use with a s~lrcted type of protocol for sharing fi~es, data or devices.
.
The n~lwolk file system client 250 can include a controller process that selects one of the plural ç~ilcclols for servicing a remote I/O request. The controller can select the l~ir~;lor by de~ ll inil~g from the I/O request, the server that has access to the requested data or device. Ad~ition~lly, the controller can include a list that id~ontifies appli~?~tiQn p~gl~ulls, or other data or devices, that are available from the multir'~ servers. The controller can select one of servers to access based on a chd~ tic or criteria such as the file systems or transport p~ ocols available. For ex~mple, the NFS relireclor may always be sel~ctçd over the H~P l~xlh~lor, if an application pr~ is available from bothtypes of servers. ~ltern~tively, the controller process can (1Pl~ the tr~n~mi~ )n latency period, which defines the current respon~e time of the network to a client request, to select the redirector of the faster network. The controller process can be part of a wrapper that encapsulates the plural ~edilc;l~la and acts as an interface to the client opcl~ling system.
The NFS Icdireclor 252 can be a file system client which h~n-lles requests to col~ne~;l to exported remote file systems and to run remote applications shared by NFS
servers. The NFS redir~~or 252 can be implem~nted as a VxD in Windows 95 and as an W 0 97/34225 - PCTrUS97/04194 FSD in Windows NT. If Windows 3.1 and Windows for Wolh~ up are su~.led, then the NFS redireclor 252 can be impl~-nPntP.~ as a redirector VxD. The core part of the edir~;lor that provides NFS plolocol~ the protocol specific c~hine and the other fealures (that pertain to either the protocol or to the client redil~clor spP~-ific function~) common for all OS platforms can be imple~ ed as a sel)~atP, OS indepentlçnt, system co~ )onent that is portable across the platforms. This core part is depicted in Figure 6 as the mini-~ir~clol 260. The shell of the depicted NFS ~ r252is configured to support the client ope~ system and can be imph~ d as a network file system wlapper that is .specific to client particular OS.
The depicted H~P lcdil~tor254 can act as a n~,lwolh file system client ~ cclor which abstracts full URL p~-~h,~ es, which are provided within the application infollllalion file. This provides an ~ shared file system. The HTIP redil~il(~r254 can then provide access to files within the Hl'rP shared file system by ",~ ;ning a Universal Naming Convention (UNC)/drive conn~cti~n to the HlTP server dilc~;lulies. From the point of view of a remote application running on a local m~ hinP, the results of ;7, ~e~;ng files through the HITP lc~lir~lor254 are the same as the results of ~ ~ces~ing files through any other known n~,lwolh file system (i.e. Microsoft N~,twolh, or NFS). The HITP~d~r 254 can be a COIIl~u~l program impl~ n~ in the C+ + CO~ U~l language.
The pr~g~ can monitor or respond to file requests made by the client opeldling system.
The program will process those file r~ue.;,ls for files stored at an ~ server. In one embo-limPnt, the prog~.. tr~n~l~tes the file system requests into HTTP compli~ntcommand .~ig~ , which can be ~-oce ~d by an HTTP server. The ~rP compli~nt cc""",al~d signals can include simple le~ue~Ls or full l~ue~ls, inr~ inE~ the GET
co",l,.~nd, or any other HI~P commqn-l~ or metho-~c suitable for co"~"~ ir~ting with an HTTP server. The server responds to the comm~n-l~ by transferring, according to the HTTP protocol, the files i(lPntifi~d by the file h~ndles generated from URL p~thn~m~.s.
This provides an HTTP shared file system that directs the HTTP server to act as a network device. The development of the HTTP redilcclor 254 follows from well known principles in the art of s~rlw~c; engi~ -g and the actual coding of such a red~;loL is within the sldll of one of ol.linaly skill in the art of colllpU~r ploglAIl~"lin~.
The HTTP redir~;~or 254 works in tight h~eg.~lion with the cache memory 216. In ~ltPrn~tive embo~impntc~ the HTrP Icdir~lor 254 may provide a process for reading a portion of a file rather than l~uil;ng the entire file to be read at once. The HI~P
redil~cLor 254 will provide the read access to the remote application files. The limited write access can be provided, for example, by employing the HITP PUT comm~nd.
It will be seen that an advantage of the HTTP redirector 254 is that the redireclor 254 provides support for ,unning applic~tion links over the Tnternet and lhlough a firewall.
Utilizing well known file system client and server sorlw~e is sllfflt~i~Pnt for lu- nillg applir~tion links over the Intranet, however allowing access to one of these well known file system servers over the T~-t~ ,l creates a security hole. ~lle. ..~ ely, an HITP server can be placed on the nclwul~'s firewall. All applications desired to be ~~~P~ccihle from the ~ntPrn~t are to reside on that web server, and applit ~tion links can be set up accûrdih~gly.
The appli~ ~ti~nc can then be run over the Internet via the ~l l l ~ l~ilec~r 254.
The Hl rP redil~tor 254 can be imple...~ te~l simil~rly to the NFS r~di,ecl~r, with a core portion imp'~ ..Pn~l within a Illinir~ ;tor and a Wl~l~)pe. for interfacing with the client OS.
Systems of the invention also provide for applications that are to be pre-inct~lled.
For example, if an appli~tion cont~in~ some system level c(jlnponents, for eY~mp~e, drivers, that need to be il.leg.~Pd with the OS during inct~ tion of that applir~tion or if inct~ tio~ hes client system reboot, such applic~tiorl is to be pre-inct~lled To address this, the invention provides remote inct~ tion of such applications onto the client, so the client can choose to install the remote application on the local m~rhine This method of in~t~ tioll runs the remote install or setup program on the client's m~hin~o and then the install plogl~l. copies the n~.s.s,.. y co--.ponents of the application from a network drive that was mounted by the client.
Figure 8 depicts a ~r~phi~l interface 16 that prûvides a dir~loly structure of an applic~tion plUgl~lll. As depicted in Figure 8, System 10 provides a graphical user intP.rf~e 16 that displays within the window of the browser ~lOgldul 78. In the deplcted embodiment of the invention, the graphical user- interface 16 is an HTML hyperlink page provided by the Web Server Process 48 and which incllldes hypertext links that graphically illustrate dil~loly infoll.lalion signals that show the file system structure of a file system 56 that has been mounted into the file hierarchy of the server 14.
As illustr~t~d in Pigure 8, the graphical user interface 16 provides the hy~l~AIlinks as gr~rhic~l icons that des~rihe dil~ctoly primitives, such as dilc~loly structures, sub diç~c~ structures, file sLIuclur~s, disk structures, or any other co..ll,.on file system structure. Figure S i~ t.,s one gr~rhic~l file structure that includes a di~ uly icon 70, a sub di~cclul y icon 72, and file icons 74A, 74B and 74C. In one embodimPnt of the invention, each icon is a hy~.t~Al link to a further HTIP URL which requests the Web Server P~ocess 48 to download an ~ tion~l HTML page that provides further ~folll,alion as to the dil~;luly structure of the mounted file system 56. It will be ay~a~enl to those of ûrdi~y skill in the art that ~y~t~nls and ~ cesses according to the invention can be practiced without such grarhi~ ~l inl~. r~ces. Moreover, the construction of an HIML
server p~cess that provides mllltirl~. links to URL sites is well-known in the art of coll.pu~r en~ ;n~, and any motlifit~ti~n~, subt~-ti~-n~, or ~ ition~ to the interface 16 depicted in Figure 8 is d~.m~ to be within the scope of one of ord.n~y skill in the art and it would not depart from the scope of the invention.
Figure 9 depicts a fimction~l block ~i~gr~m that ilh-ch;.tes one process accor~ g to the invention for allowing a client to connecl to an In~ll~el server for eYe~utin~
applications the~r.ol-l. As depicted in Figure 9, the process acco~ing to the invention can be understood as two processes, a first running on a client collll)ultr, and a second running on the server collll)ulel, which operate in part inde,pçndçntly from each other. Figure 9 depicts the server process in the left hand portion of the Figure. The server process inr,lurles steps 170, 180, 190 and 200. The client process is depicted on the right hand side ûf Figure 9 and includes steps 110, 120, 130, 140 150 and 160.
The process 100 begins with the client process step 110 that connects the client to the Web server process. As depicted in Figure 9, step 110 of the client process causes the server process to pelro~.,. step 170, which includes receiving the Web server access request to access a file. The server process continues to step 180 which is an optional step, where the server 12 authenticates the client and delerl"ines the access privileges afforded to their client by eY~mining a client ID signal and a client privilege signal that are tr~n~mi~ by the client to the server. After optional step 180, the server process continues to step 190 and passes back to the client the IP address signal and the path name signal.
In a pler~lled embodiment of the invention, step 190 also incl~ldes the step of passing back to the client an HTML page that gr~rhi~lly depicts the available application progldnls. As ilh.~ d in Figure 4, a client process proceeds to step 120, where the agent receives the IP address and the path name. Upon receipt of the IP address signal and the path name signal, the client process proceeds to step 130, and employs the IP address signal to gene,~ a dynamic mount request. In a prere.led embodiment of the invention, the client gen~tes the dynamic mount request by a client activating a hy~. lt;Al link that provides a dynamic mount request to the Web server process of the server 14.
As further depict~ by Figure 9, the dynamic mount request of the client process is passed to the server process and the server process proceeds from step 190 to step 200. In step 200, the server process pl~cesses the client's file access request and ~lrOl.-~s the mount of a remote system disk that contains the application file requested by the client. As describe~ above, the process step 200 includes the step of geneldling an array of server f~e poil~t~ls that act as file h~ndl~ to the data blocks of the appli~ ~tion ~3Ç~gldlll.
As depicted in Figure 9, step 200 passes a copy of the array of server file l oinle to the client process which proceeds to step 140 and invokes the application from the mounted remote drive. In step 140, the client process follows the normal execution process of the client system by invoking the program loader to load file blocks pointed to by a remote array of file point~.s which are generated by the client process as a function of the IP address, path name signal, and server file pointers.
W O 97/34225 PCTrUS97/04194 As depicted in Figure 9, the client process p~c~ds from step 140 to step 150 after execution of the appli~tion and exits from the application. As further depicted by Figure 9, the client process can proceed to step 160 where it issues an optional dynamic dismount drive request that transfers control of the process 100 to the server process which process the client's dismount request and removes the mounted drive from the server system file hierarchy. The dynamic dismount request creates a remote procedure call for the file sharing system 42 to dismount the spe~-ifiP~ file system, typically the file system l~-ounted by the mount proce lure 28. The construction of the dismount p~ ult; 30 is similar to the mount procedure 28 described above.
As further d~Ppict~d by Figure 9, the pr ~ ss100 can continue to operate after step 150, allow the client 12 to select a next application plO ldlll for eYçcuting. Remote application as the term is employed herein shall be understood to encolllpass a single eYçcllt~ble file, as well as the set of di~ ;es conl~in~ the co,llponents to run an applir~tinn, as well as a set of rules (environment variables, rh~nges to the Registry and to other system configuration files) that are to be applied on the local m~~hinç to run that application.
It will thus be seen that the invention effi~ipntly attains the objects set forth above, among those made a~p~nt from the prece~ g d~sc,il~lion. It will also be understood that changes may be made in the above construction and rOlcgoil1g sequences and operations without departing from the scope of the invention. For example, the invention can be understood to include primitives embe~ld~p~ into an application program or a proglA",ming language, that allow the application p~l~ll or the ~l~gl~."..lillg language to mount a remote disk and el~ç~ te application prugl~llls from that disk over an Internet connection.
As an example, it will be understood that an application plOglalll that include the functionality to co"""unicate to a data transport layer, can employ the systems and process of the invention to allow a user to access and executç, from within the application program, a second program located on a disk linked to a server site. Furthermore, it will be understood that an opeld~ing system can be adapted to include the systems and plocesses of the invention.
W O 97l34225 PCTrUS97/04194 It accordingly is int~n-~ed that all matters shown in the acco"-~anying drawings be in~lpl~,led as illustrative rather than in any limiting sense. It is also to be understood that the following claims are intended to cover all of the generic and specific features of the invention as described herein, and all st~t~m~nt~ of the scope of the invention which as a matter of language, might be said to fall therebetween.
PRO(~R~M~ FROM A l!~F,l~ORY l-F,VI(~F, ~ KF.l~ T ) A ~F.l~V~R
Field of lnve~inn - The present invention relates to systems and .. ~ .ods for cQ~ g a col,lp.~l~r to a Cv~ )u~ network, and more particularly, to ~ s and m~.thoA.c that allow clients to execute ~ tinn ~lV~;,l~llS stored at a server site.
The digital coml)ut~l is a po~.rul data pn)cess;Qe tool that allows a user to r-gi--~i7~, store and analyze data in volumes and at rates that would be imros~ible by any prior known technique. The Cvlll~ut~ ,two~k has been a similar step Çv. ~ 1. By - linking tog. Il.e~ several co ~ and by providing shared .~ur~s and cross-platro.l"
com...~ n~ e lein~Pn have developed the co..~p.,tc~ n~twv~k into a tool that provides s -ffi~i~nt p~ ;ne power to su~pvll entire co,~.~l;nn~ and ulll~e.~iLies. The il~clcased power of colll~ut~~ nclwul~ over the individual mic~oco...l...t -. is provided by disl,il,uled r~ g. Distributed pl W-~ allows for the division or distribution of a col~.,l~linn~l wo kload among the dirrc~cl~t wo~k~ on~ col-nf~t~ to the coll,l,ut~
ll~lwul~.
One of the most widely ~ceple~ and heavily used co-l-yul~l nelwol~ is the TntPrmpt The ~ntPrnet is a global system of in~ d co...l-ulr-~ net-works formed into a single worldwide n~ twulL A user, through the TntPJnet, can intpr~ctively tr~n~mit mes~Ps with users in dirre~ent countries. Simil~rly, a user in the U.S. can access the files from libraries in Europe and Asia and download these files for pc ~nal use.
Accordingly, the TnternPt provides strong communic~tion functinn~ similar to thecollllllu~ tion fi)nctic)n~ provided by ham radio O~lal(~l~. Moreover, the Internet acts like a universal library, providing electronic access to fesuu~es and information available from Internet sites throughout the world.
WO 97/34225 ~ PCT/US97/04194 Although the Tn~ provides eYeP.llent and developed resources for co..ll.lunication and file sharing, the Tnternet is still basically a static ...e~ . In other words, the content of the Tnt~ornpt~ i.e., the l~so~lr~s available to a user ~c~s.sing a site on the Tnternet is mostly stored data. Typically, a user moves about the TntPrnet using a web bn~v~r plOgl~Ull. The web bl. wser program allows for multim~Ai~ p,es~ -lation of stored data inclu-~in~ teYt images, sound clips and video clips. This allows the user to connect via the Tntern~.t to dir~t;lcnt sites on the Int~ l. However, although a user can view the in~llllation stored at an Tntern~t site, and even make a copy for their own p~ on~l use, at present, a user lacks a suitable system for directly eY~I1ting an application yr~l~l. As such, the Tntern~.t generally fails to provide the advantages of di~llibul~d p~ ;ng.
It is, in part, the size of the Internet that has impeded the av~ ility of client/server applic~tion~ on the TntPrn~t In particular, because the Tnt~rnet is so vast and open, co.~-l)Anies and universities have disposed firewalls b~tw~n their intern~l servers and the Tnternet These firewalls deny access to useful appli~tion~ by preventing ~Yi.~ting ~t~llls, such as NFS and SMB, from -~ce.~sing the appli~tion~. As such, the firewall acts as a barrier that prevents the use of traditional n~.lwol~ g sy~llls from P~e~uting client/server applir~tionc.
In re~yollse to this problem, s~lellls have been plol)O~d that provide for application programs that move bclween an Tnt~rnet site that stores the application yr~
and an ~ntP.rn-o.t site that services a user wishing to use that application program. One such proposed system is the JAVA system yl'OpOSed by Sun Micr~s~;,tt;llls. The JAVA system provides an intelyleted language system that can be opt;l~.led by the TnternP.t user to download and run small application programs, referred to as applets, located at a remote Internet site. Accordingly, the JAVA system provides a form of distributed proc~ ing in that application programs located at Internet sites are being made available for distribution to Tnt~rn~t users. This is a ~ignifi-~nt advance over the prior functions available to Internet users which previously were limited to merely viewing and transferring stored data.
However, although JAVA offers an improvement over the prior art, the JAVA
system suffers from some cipnific~nt drawbacks. First of all, the JAVA system r~uiles that each application that is to be downlo~d to an Tnt~rn~t user and run at the Tntefnet user's site, has to be written in the JAVA p~gl~...mine language. ThereforG, available program applir~ion~ such as Microsoft Word, Microsoft Excel, Intuit Quicken, or other developed application pr~gl~l-s must be rewritten in a JAVA compatible pr~gli....,..i~-~age before they can be employed with the JAVA system. This of course creates an"~ te barrier to the deployment of application pr~gr~lls across the Tnt~fnet Moreover, a ~ignific~nt de~u~ging effort will be l~ui-~d as these ~Gw~ applic~tionc are not proven code and inevitably will fail either due to bugs created during the lGWlilil g of the ~lugr~ll or bugs created by the JAVA system. Moleo~l, the pr~lrûsed JAVA system is an intGl~Gl~d language system, and inte,l,lGted language systems are notoriously slow.
Cons~u~ntly, T..t~.l.. t users are likely to notice a s~lb~t~-lial decrease in op~ ;ol- speed - while they run these applir~tionc Ad-liti--n~lly, JAVA applic~tionc available for deployment from an TntPfnPt site are plu~l --.. ed specifir~lly for Internet deployment.
Acc~ldingly, these JAVA applir~tion progl~lls Wi~ not be the pnu-gl~lls typica~yemployed by users. TnQt~, it is likely that users will operate non-JAVA p~.gl~"S which are different from those JAVA p~gl~ns deployed over the Tnle. ~el Accord,ngly, aco",~tibility rift will develop b~ lween TntP-fnpt users at remote sites and users at the host sites. As such, the JAVA system inherently provides a barrier belweell users at remote loc.~tion~ and users at host sites.
Accordingly, it is an object of the invention to provide systems that allow for deplûyment and eYP~ution of applir~tion pr~g~ ls across the ~nle~.el It is a further object of the invention to provide systems capable of negotiating ~nte. nGl firewalls.
It is another object of the invention to provide systems that int~el~te remote users ~ with the Tnt~fnet network of the host site.
WO 97/34i25 PCT/US97/04194 It is still a further object of the invention to provide systems that deploy PYicting application programs across the TntPrn~t without having to rewrite the apI~lic~tionc.
It is a further object of the invention to provide a system for deploying applirati~mc across the Tnt~ el that provides pr~g~ S which eYe~.ute quickly at remote sites.
These and other objects of the invention will be made ap~ nt from the following description of the invention.
Summa~ of the Invention Systems and processes according to the invention allow a Colll~utC~, typically rere,led to as a client, to col~ to a server of an Tnt.o(n. l site for executing an applir-~tion pl~J~;l~n that is stored on a memory device linked to that server.
The mPthotlc of the invention can include mPth~ls for allowing a client to eY~ut~-an applirAtion pl~ugl~un stored on a memory device linked to an ~ server, and can comprise the steps of Illuunting a remote file system col-~Ail-ing the appli~tiQn plUgldlll and being linked to the HITP server, ..-ol.i~ g the ope~ A~ g system to detect file system uei~ for files stored within the remote file system and passing the file system r~uests to a redirec~or elern~nt for tr~n~l~tin~ the file system requests into HTIP cG...~ t signals for tr~n~mi~ion across a network. In this practice of the invention, the step of mounting can include the step of generating an array of file pointel~ ~ep,cse..lAI;~e of poin~l~ to files ~c~i~ted with the app~ tion pfOgl~l.
In a further practice, the p,~cesses of the invention can include the step of providing plural re~li,~lor elem~nts for trAnclAting the file system requests into a selected one of plural transport protocols. For example, the client element can have a network interface to a plurality of different networks each of which use a dirrt;.~llt file transport protocol, such as NCP, NFS, SMB or any other of the open or proprietary services that provide protocol for trancmitting or sharing data, such as files, across network media. In this practice, each one of the ~ire-;lor el~mçnt~ can be adapted for employment with one or more of the data l~ln spullpr~tocols~ lh( eby allowing the client elemçnt to access any one of a plurality of servers each having a dirr~lent remote file system. The process can include a step of s~l~cting one of the plural redi~Lor r1~- ..e~lts to t~n~l~tP the file system requests. The step of sele~ting the l~dil~cls)r elF ..I ~t can be made as a function of any suitable criteria or char~tçn~ti~ in~ ding the types of file systems, as well as a measure of the tr~n~mi~cion latency time of each of the nclwol~, as well as the tr~nsmi~ion protocols of the networks.
In one prnctit e of the invention, the plural r~di~ ol s are provided with a wla~lle~
interf~~e that, in a way, encars~ t~s each of the r~ir~tor c1f ..~n~ such that all the l~ilccl~)r elçmpnts are provided with the same intçrface to the op~ g system of the client cGllll u~r. This is unde~lùod to provide portability and to reduce the comp1~yity of the overall system.
- - The term "ledilectol as used herein will be understood to el co.npass a program or process that can direct a request for data or services to a se1e~tçd source of data or services and optionally can 1-,~ le file system requests into col.. a~ s or data signals that comply with at least one nelwulk ~ tocol for ~n~micci~n of data across network media.
In a further emhotliment~ the plUCeSSeS of the invention include the further steps of providing the client with access to a cache mellloly for cache storing portions of the file system which contain the applir~tion programs, and a further step of providing a cache edileclor P1~m~nt that responds to client file requests by ~cce~in~ portions of the file system stored within the cache Ill~llloly. The ~ccçssçd portions of the file system can be employed for running the applic~tion ~ùglalll within the clients local program memory. In one practice, the process can include the step of directing the cache memory to mirror the file system being stored therein. Accordingly, in this practice, a Illilluling process can operate such that as changes are detected within the file system being exported by the ~ server, the file, and file or di~ y structure m~int~ined within the cache memory device, are ~imil~rly updated. Optionally, this Illi.luliilg can be done autom~ti~lly, or upon the instruction of the user.
CA 02248086 l998-09-03 W O 97134225 PCTrUS97/04194 In a further practice, the plocesses of the invention can include a step of storing the portions of the file system according to a file or dilccloly structure that is employed by the server. Accordingly, the cache memory device can store information that is r~p;~-nl~ e of the files for executing the appli~ti~n p~g.~." as well as the info,...ation fe~ se~ re of the dil~:toly structure ~ ed with these files. This dil~lol~ structure can include dil~lulies, sub~ lo. ;~s, paths and other dir~;lc,ly structures. Moreover, the directory structure in the cache can conÇull,l to the file system employed by the server, so that, for ~u,ple, Windows clients can store a UNIX file structure in the cache memory.
In a further pr~ tic~, the proce sses of the invention can include the step of providing an off-line page which is ~~l~,en¢~ e of at least one link to an appli(~tion pr~gl~ll stored within the cache memory. The off-line page can be an HTML page stored within a memory device ~cç~ihle by the client and made available for connecting to files stored within the cache memory device of the client. Upon invocation of the off-line page, the user can activate links within the page to cause the ey~utinn of application ~lOgl~ullS stored within the cache memory device. In a further practice of the invention, the pn~cesses of the invention can include the step of providing a preload control for allowing a client to store selectively an appli~tinn program within the cache memory. Accordingly, the preload control will allow a client to select application pl~l~lls stored at a server site and made available by the server for ~A~lling to a client, to be stored within the cache memory device, for employment by the client without r~ui,~g access through a COlllpul~
.
In a further practice, the meth~ls can include the step of providing a process for directing the server to eYP~u~e the appli~ n programs within the pl'~glalll memory of the server. In this way, metho ~ of the invention can also include functionality that aUows a client system to act as a terminal while a program eY~cu~es within the server program memory, thereby allowing a user to select belween executing the application program within the client program memory, or alternatively eY~uting the application program within the server program memory.
In a further emb~im~qnt the invention can be understood as methn-l~ for allowing a server to provide remote eYecuti- n of an appli~qtion program stored on a memory device linked to the server. The plû~SSeS can include the steps of geneldling an application informqtion file that is ~cl)resen~ e of files qcsoc:3t~d with the application program. In a further step, the pl ~ sses willg~n~ dtc a link lcl)lesel~tdti~e of a pointer to the application info~l.,alion file, and detect a request from a client to execute the application pl~gl~ll.
Re,~llsi~le to the request, the processes of the invention can transmit data signals to the client which are l~pre3ent~t;~le of the files q-~soriqtP~ with the apl~lir-q-tion PrUE1~1l. In one practice of the invention, the step of gen.,.dting an application infollllalion file can include the step of gC'~lF ~ g il~Ço.",dlion that is lep~se.,ldti~/e of a file or dir~~.y structure q~oriqt~d with the files of the -arpli~qtiQn pl'Ugl~ . In this way, the application info.",ation file can include inrol".alion that is l~ sen~dli~e of the files q~ Dci~t~d with the appli~qtion ~rûgr~" as well as the file or dile-;lul ~ structure that is employed by the server for .n~int; ;--;n~ the applir~q-tion ~ ~-~,-s in a forrnat that is suitable for eYe~utin~.
The m~tho~ of the invention can also include the step of gel~F.~ e an appli~qtion file that inch~des information which is lep~ /e of the op~ ;ng envir~nll.cnt for the appli~q-tion plUgl~ll. In this way the qMli~qtion inforrnqtion file can contain info....~t;on that allows the client to reconfigure the local oper.qtin~ envi~nlllGnt to accommodate the application plOgl~ll.
In a further e,nbo~ n~nt~ the processes of the invention can include the steps of providing the server with a link to a second server, and dil~i~ing the server to identify to the client those application programs that are stored on the second server and which are made available for eY~ution by the client. This allows the server to advertise to the client those application plogla~us which are being made available by other servers and which can be invoked by the client. This provides the client with access to the appli~tion~ available on a plurality of dirrelGnl servers. Optionally, the selver can create links to the application programs available at other servers. The client will employ those links to execute these application programs.
WO 97/34i25 PCTtUS97/04194 In a further practice, the p~cesses of the invention can include a step of providing a mPterin~ process for monil~. ;n~ the number of clients running the application ~g~
Optionally, the mPt~rine process can gPnf'~ te st~ti~tir~l h~f~llllalion that identifi~s certain char~r,teri~tics of the use of the application and which can be provided to a system ~-lminictrator for ~ iminictrative functions, such as to ~lloc~tp r~s~,ur~es more appfoprialely.
In yet a further embo~limPnt, the pl'OCeSSeS of the invention can include the step of providing an access control process for allowing the server to control a client's access to the application progl~... In this emb~imPnt the server can include an access control p~cess that ~uil'~S ~thPntir~tion, either by password or other key, to limit to a SP1f~ct~P~l group those clients which can access application pr~...s .. ~in~ ~ by that server, or by other servers.
- - In a further e---bod;~ nt the processes of the invention can include pl~ ~ 5ses that allow a client to install an app1ir~tion plogl~-- stored on a memory device linked to a server. These pl~JCeSSes can include the steps of providing the server with access to an in~t~ tinn ~n~gl~lll for in~t~11ing the applic?tion plO 1~ll for op~r~ti~n by the server, gen~aLing an app1ir~tit~n inrolllla~n file that is lep~s~,l~Li~/e of files ~c~i~l~1 with that in~ ti-)n ~,logl~ lr -I;ng a request from the client to install the applir~tion ~r~l~-, locally, and tr~ncmitting to the client, responsive to the application information file, data which is ~q)lese .1;~ e of the files ~soci~ted with the in~t~ tion program. In this practice of the invention, the pruceises can also include the step of gene~ling an applir~tion inro...lalion file that has inf~,l---aLion r~plesçl-lAIi~e of files ~soci~tp~ with the application pl~)gl~.l.
In a further embo iimPnt~ the invention can be understood as server pl'OCCSSeS that allow a client to execute locally an application plogl~ stored at a memory device of a server. These processes can include the steps of providing an HTIP server process that can access a memory device having storage for one or more server dil~ fies that store files associated with an application program, including the executable code of the application program. The server provides the client with access to the files and dir~clo. ;es, W 0 97/34i2S PCTrUS97/04194 and the client can cache portions of the file system cnnlA;~ing the application p~g~ , and employ a cache r~direclor element to access the portions of the file system that is stored within the cache memory.
The term "client", as used herein, enco...l Ac~s any data proces~ g system suitable for opc,~lh~g a process accor~ing to the invention. The term "serva" can encompass any process running on a data proce~ing pl~lro..~ that connecls into a col-lpuler network and that receives access requei~, whether under HTTP, FTP or any other conventional or proprietary protocol. The term "appli~qtio~ plUgl~ 'l as used herein, encomrA~es any COIII~JU~1 file or set of files that contain data in a format for being ;~cces$e~ and processed by the proces~ing unit of a computer system. The term '~ll-c~no~ device" as used herein, encompA~ses any device that can store Col.,~ul~r readable data and that provides an interfq.-e for Acces~ing the stored data, and can be undc;~lood to include volatile and persistent memory devices, incllJ~ing hard-disks, RAM, n~wo.~ disks, and any other suitable data storage system.
The term "file system" as used herein enco...rA~fs logical structures that define the relationship ~elween files, dilc-;lo~;-es, disks, devices and ports that are stored on or linked to a col--l~u~r system, and include file systems of dil~lc,l~ structures that define the hierarchical relAtion~hir~ ~lw~n stored files, disks, disk partitions, file blocks, devices or other sources of COlllpu~l data.
The term "server address signal" as the term is used herein, encompA~Ps any desc.illlion that identifiPs a network address of a server. The term is understood to include any descliplion for an TnPrnPt address of a server in~ 1ing any host number, any host name, any domain name or any other descli~,lion sllffi~iPnt to identify the network address of a server. The term "path name signal" as used herein encompqc~es any description suitable for providing an op~latillg system with information for identifying one or more components of a file system inçlll(ling a file, a dil~lol~, a sub-directory, a device, a port or any other direc~ol~ primitive.
_ g _ W O 97/34225 PCTnUS97/04194 In a further emboflimPnt of the invention the system can include a server elemPnt that has an ~lmini~tr~tion pr~g~ for storing on the disk at least one file system of CO111YIIlG1 files stored according to a sel~Pcted file system ~lolocol. One such ~imini.Str~tion pl~gldlll can include means for storing a file system of c~n~y~ r files according to one or more of a DOS, UN~, VMS, WINDOWS, WINDOWS 95, WINDOWS NT, OS/2, or SYSTEM 7 file system pr~col. In a further embo 1im~nt of the invention, the system can include a connection e1emPnt that inr.l~lde~ an element for g~nelating a call to a port of a server HTDP process. For eY~mplP' the con~ ;on elemPnt can include a conl~f~ ;02l plUgl~LIII that genÇ~t~s a call to the port 80 of the server process. Port 80, a well known port, provides the Tnternet address of the HTTP server oyç~l;ng the ploCeSS coupled to the client system.
In a further embodi~ nl of the invention, the server inrllldes a file sharing p~ l~n. The file sharing plu~,ldlll can be NFS, SMB or HTTP co..~pliAnl, and the file sharing ylo~ldlll can create an array of file poinl~, such as a UniY~ inode, which can be understood as an array of yoint~ to colllyul~r files stored on the server system.
These and other ~l-lbo~ of the invention will be more clearly lmders~ood by rere.~nce to the following ~let~ilP~d de~-iylion and ~tt~rh~d dl~-wings, in which like reference numbers refer to like ele~....I.~i.
~rief n~ on of th~ n~w~
Figure 1 illu~tr~tçs one system according to the invention for establishing a connection to an TntPrnçt site and for ~-~u~ g application programs located at that site;
Figure 2 illustrates one process for creating a link to an application ylugl~ll at an HITP server;
Figure 3 illustrates in greater detail the system illustrated in Figure l;
Figure 4 illustrates the system of Figure 1 having a mounted logical disk partition;
Figure 5 illustr~tPc thesystem of Figure 1 having an array of file poin~s i~llP.g~,.ted into the hierarchy of the client file system for providing the client program loader with entry points to application p,ugld.ns stored at the Internet site;
Figure 6 illllsllntes an ~ltprn~tive embodiment of a system according to the invention;
Figure 7 illustrates the system of Figure 6 employing a cache memory for ~ cPAsin~
an application pr~g~
Figure 8 depicts a graphical interface suitable for employment with the systems of Figure 1 and Figure 6 which provides a dir~clol~l structure for ~ccesc-ing and PYe~utin appli~ation progl~lls; and Figure 9 is a filnctinn~1 block ~ia~r~m of a process according to the invention for PYe~uting application pr~gl~lls from a Web Intel,.~ l site.
~aj~41 n~rr~,otion of the Invention The invention comprises, in~er alia, systems and met~o-lc that enable a web site ~mini.ctr~tor to provide links to remote applications within their web pages. One r~li7~ti~n of the invention is that a remote client can be allowed to eY~ute an application ~r~gld..l stored at a HTTP server. To this end, the invention provides the server with access to a remote file system, and with access to a file that can contain information of the files, directory structure and system environment associaled with the applit~tion program.
The invention can also include a system for allowing the client to mount the portion of the shared file system that includes the application program. The system can include an HITP
redirec~ol elemPnt that tr~ncl~tçls Op~.~t;l-~ system requests to access portions of the shared file system into Hl rP compliant commands. An HTTP server at an Internet site responds to the col~---ands and provides access to the HTTP server directories. Accordingly, the W O 97t34225 - rcTrusg7/o4l94 edi~ )r creates a drive connection to the server directories to provide a client with access to files stored therein. This provides an HTIP shared file system. In this way, a remote application can be ~-uui~ted into the client file system and then run from within a window of a br~Gr plog,~., or from a lzllnrhing ~ a",. Optionally, the links canappear as plUgldtll icons within the window of the blU ~. s~,r or l~mt her program.
It will be understood that one advantage of the systems and methods according tothe invention is that legacy app~ tion~ available for t~Yec ltion within a col~lale nc Iwolk can be readily l~lmrhed over the TntPrn~-t an Intranet, or other network system, and Y~ecut~d within a window of a brow~r or lzll~n~her p[Uy,l~"
To this end, the systems and method~ of the invention provide the ability to create links that appear within a browser type ploglolll, and which can link the client to an applir~tic)n inrc"ma~ion file that is ...~inl~in~ at the server side of a n cl~ulk connection and that contz~in~ information for lunning the application pr~l~l,. The zlpplir~tir~n ,.rc,....~, ;on file can identify those files, such as *.exe f~es and *.dll files, that the client will employ to run the appli~tion within the plOgl~~ e-llol y of the client. In one przlrtice, the server makes these files available to the client via a shared file system.
Optionally, the client can use a transfer plulocol to download the files from the shared file system and to store the files within a cache memûry system that is connected to the client.
The client can then, optionally run the applicatiûn locally out of the cache memory.
~ltt rnzltively~ a pn~gl~ll loader process opel~ali,lg on the client can load blocks of eYecutzlhle code of the applir~~ion pl~Oglalll to the local memory of the client and the code can be executed from that local memory. -The invention will now be eYplztinçd with reÇel~nce to certain illustrativeembo-lim.ont~, which are eYemplztry and not to be understood as a limiting, or an eYhzlllstive es~t.~ ;on of the invention.
Figure 1 depicts a system l0 according tû the invention for z~rc~s~ing, deploying, and eyr~uting application programs stored at a drive linked to a server, and in particular to W O 97l34225 - PCT~US97/04194 an Hl rP compliant server. In particular, a website ~flminictr~tor can employ the systems of the invention to provide a user with access to application plOgl~llS stored at different network locations, inrll-fiin~ Internet and Tntr~nPt sites. As illustrated in Figure 1 the system 10 includes a client ehPmPnt 12, co~ u~r LANs 13a and 13b, an HTIP server 14, memory devices 14a and 14b, a server 15, a network node 17, an optional program interface 16, optional application icons 16a, 16b and 16c, cQrnmllnir~ti()n PlemPnt~ 18 and network nodes l9a and l9b.
The client e1Pmpnt 12 depicted in Figure 1 can be a co------el~ially available PC
co...~Lible co..ll,uler, Unix wv.k~l;on or any other data pr~ces~ g system suitable for running a process and for opcl~ling a co.. l~n;- ~tion interface that provides aco.. lJni~tion link with a server site. Moreover, the client 12 can be a stand alone co~ Julef system or, as depicted, a networked co...l,ulcr system. The client 12 can include a teleco~ ,-unic~tion~ e1~PmPnt 18, such as a modem, and also includes a bru~cl, or l~llnrh~Pr, p~ogl~m, such as the NTEt~c~re browser, which is suitable for establishing a conn~tion to an HTTP server. In the ~e~..bo li...~nt depict~Pd by Figure 1, the b~ ~r pie~lably provides an optional ~r~rhir~l int~rf~cp~ 16 that allows a user to control and direct the operation of the system 10 to access and execute selP~ d files. The ~3epictf~
graphical intf rf~r~ 16 displays an app~ tinn icon el~pmpnt7 such as 16a, that provides a gr~rhic~l device for a user to activate an ~oci~tP~ appli~tif)~ program stored at a memory device, such as disk 14a, linked to server 14.
Figure 1 further depicts an HTTP server site that includes a server elemP-nt 14 that connects to the co..,,.,-.ni~tion~ el~mPnt 18 and the memory devices 14a and 14b. The server 14 can be any server elpmpnt suitable for running an Hl'IP server process that can be ~ccçss~Pd by a client, such as client 14. Typically, the server 14 is a data proccc~in~
system that runs one or more server processes for m~in~ ing an Tnternet or Intranet site that includes one or more files for network access. In the e---bodiment depicted in Figure 1, the server 14 connects to two memory devices 14a and 14b, depicted as external disk drive systems. The memory devices 14a and 14b can be local memory storage for the server or can be remote storage that is linked to the server 14. Each disk drive system can W O 97/34225 PCTrUS97/04194 a set of col-lyul~l files, including dil~clolies and files of eYPcut~ble application pr~l~ll code, which the server can access and control. The server 14 can be a stand alone coll.l~uler system, or as depicted, the server can be a networked conlpuk l system, having one or more data processors that can access local or networked memory devices.
Figure 1 illustr~tPs that the systems of the invention extend the capabilities of the World Wide Web by enabling web site ~mini~tr~tQrs to provide web pages that have links to remote applic~tion~. Moreover, the web site ~~mini~tr~tor can employ the systems of the invention to provide transparent inst~ tion of an application pr~lal~l at the client site.
This allows a web site ~ 1minictr~tor to make ~rrlic~tiQn~, inr1~1-1ing legacy applir~tion~
stand alone applir~tion~ and client/server applic~tion~, available for PY~Cution within a corporate Intranet and across cG~ dte bounds ll-lu.lgh a browser or l~llnrher pl~l~JI.
This is shûwn in Figure 1, by the server 14 that connects to the coln-nu~ tiQn elPn Pnt 18, the memory devices 14a and 14b and the LAN 13b. For eY~mIllç, a nelwu,k ~ministr~tor chal~ed with providing users with access to certain appli~ ~tion plO~ such as anap~lic~ti~-n pr~gl~l- for allowing a user to invest in mutual funds, can store the application ~l~gl~ll on one of the memory devices 14a or 14b. The site s Imini~tMtor can install a server process on the server 14 that allows users at the nodes l9a or l9b to access the application piOgMIll and to PYPCute the pr~gl~l- for investing and m~n~ging funds.
Accordingly, the site ~dmini~tr~tor is able to provide this application program to users connected to the LAN 13b. The systems and metho~c of the invention allow the site ~mini~tr~tor to provide remote clients with access to the application pro~,~u". For eY~mple, an Hl~P server plvCf SS can be inct~ll~l on server 14. The ~ server process will provide links within HTML pages that will link a remote client to an applil~tion inîol",~Lion file that is ~oci~t~Pd with that link and that can store information lc~l~sf~ tive of the co"lponent~, environm~Pnt, and other data relevant for PYPcuting the application program. The client's browser 16 will display the HTML page showing the links as graphical devices, such as 16a. The client can mount the shared file system cont~ining the remote application co~ 2nt~, create the environment a~propliate for running that application, and invoke the application. The application can run locally within the client memory. Upon t~ll,lination of the applir~tion, the client notifies the HTIP
server process and the server process no longer services the client.
Figure 1 further depicts that the client e1F...ç-~t 12 can also access pl~lallls and files controlled by a local server, such as server 15, to which the client 12 is conn~cted by the local area network 13a. In particular, Figure 1 shows that systems of the invention can be inl~;~dled into esisting LAN technology to allow a client to PYecute applir~tion pr~g.dlns provided by a coll~ulate network, such as an Intranet running on LAN 13a, as well as appli~tion~ stored at a remote site such as the HlTP server 14. Accordingly, by c~lllbu~ing the S~t~,.lls and metho~s of the invention with ~Yi~ting ~nl~; ~et technology, a node on an Intranet can have access to application programs stored at a remote site, with the syst~llls of the invention providing ll~lsp~ nl access to the applir~tion pl~ llS at these remote sites.
Figure 2 depicts one process for providing a web page application link. In this process, the application p~o l~lll is provided within a shared dil~cluly, or an l ~l~d file system. The dil~to~ ;P-S are to be shared lllloulgll a file system server such as a LAN
manager system, the NFS system, the NCP system or any other suitable file system server, or optionally by employing the H'ITP l~dilwlol, can be placed on an Hl~P server. For the ~pplic~tion program in the shared dil~;luly, the web site ~ministrator can, as shown by step 21, gcllC~ale an appli~ ;on information file for the remote applic~tion Optionally, the file can be created autom~tit~lly by a process eYecuting on the seNer.
This application information file conl~ information I~P~s~ly for running the remote application on the client. For eY~mrle, the applic~tion information file can include the executable files (i.e., EXE files), the initi~li7~tion files (i.e., INI files), systems files (i.e. SYS files), dircc~clly structure information, and any other infolJ~Ialion or configuration ~ parameters that will identify the proper environment for running the application. A process OpeldLillg on the client, a~plo~lialely configures the o~ldlil~g environment to allow proper eYecution of the application progradm.
After creating the application info.,l,alion file, the process in step 23 can embed within the HTML page exported by the server, an icon that refers to a link to the application information file. Optionally, a set of access rules to the application link can be defined. This is typically done during the development of the application link and the access rules can include definition~ as to which set of users and or clients are yellllilLed to PYeCutp the application from the link, how many occurrences of the applir-~tion may be running .~imull;-nPuusly, ~ uiling a user to pay a prede~",ined fee, or any other such type of access rule. If the access control is ~tisfie~, the applir~tion plUgl~lll, can be invoked.
From the above ~eSc~;p!;on~ it will be ayppal~-nt that the systems and pl~esses shown in Figures 1 and 2 can be oye~ted on cG~Illlel~ially available hal.lw~uc, and typically can be in~t~llP~ by a site ~ lmini~trator onto an eYi~tin~ LAN, such as the network 13b. For eY~mpl~, each memory device 14a and 14b can be a commercially available hard disk system, or a partition of a hard disk system, a RAM card system, or C~Ill~Ult;l RAM
memory. However, it will be appa~enl to one of or~m~ ~ skill in the art of co,,~yuler engi~ . ;ng that any memory device suitable for storing data and for intP~ ing to a data r~cessor or a collll~ule~ WUll~ can be pr; etired with the present invention, without dep~ling from the scope thereof.
The co-,,,,,ui-i~tions elem~-nt~ 18 are figuratively depicted as modems for inl;~inillg a teleco.. ~ ic~tion link bGlw~n the client 12 and the server 14. However, the co,,,--~ ir~tion elemPnt~ can also be ISDN devices, fiber optic devices, cable devices or any other type of co".. --ir~tion device suitable for establishing a co.l,ll,~ ir~tion link to a remote site. The local area networks can be ell,e~"el systems, or any network system suitable for carrying data bel~n data ~rùces~ g systems.
Figure 3 depicts in more detail the system 10 of Figure 1, and depicts system 10 in a state before the client 12 has requested to eYe~ute an application pn ~gldUl stored on the server 14. Figure 3 depicts a system 10 that inclu~es the client elf!mPnt 12, the server e]Pmlont 14, a handle collection e1ement 20, a file system 22, a device driver 26, a disk mount element 28, a disk dismount element 30, an org~ni7~tion and management element WO 97/34225 PCItUS97tO4194 32, a data tr~n~rort inteff~e 34, a tr~n~mi~iQn path 36, a second data transport interface ~lPmpnt 40, a file sharing system 42, an ~ lmini~tration program 44, a memory elemPnt 46 having a PC partition 50, a Unix partition 52 and a Mac partition 54, wherein at least one of the partitions inr.ludes a logical file system such as file system 56, and further including a file hierarchy structure 58 of files acces~ihle to the server 14.
Figure 3 depicts each functional block as an el~P-ment of the system 10. However, it will be a~l,~ent to one of oldin~y skill in the art of co.npu~r and sorlwa.e e~.g;neenng that each ekPme-nt can be a software routine that ope~ates on a data pl~ces.~ g unit to configure the data proce.~ing unit to operate as the device ~lepict~Pd as system 10 or as a s~s~ of the system 10. Moreover, it will be al~p~enl to one of o-~in~ ~ skill in the art of colllpul~l and sorlwa~ PnginP~..;ilg that the filnctiorl~l blocks depictP~l can be col..bh~cd ehP-mPnt~ of h~dw~ and s~rlwate that operate to implP.mP.nt the function~ of the system 10.
As depictPll in Figure 3, the client 12 in~.lndes a data transport interface PlP.mPnt 34, which typically is a TCP/IP int~lr~ce suitable for establishing ~onnpction~ to an Tntf..--..l or Tntr~nP.t site. The bl~er program process running on the client 12, such as the Netscape Internet bio~ l, interfaces with the TCPtIP data tlans~oll int~lptfs~ce ekPmPnt 34 to transfer data under the TCP/IP plotocol to the server 14. .Simil~rly, the handle collPction ekP.mPnt 20, the mount elemPnt 28, the dismount PlPmP.nt 30, and other el~PmPnt~ of the system 10 employ the TCP/IP data ll~ulsp(jll interface elem~P-nt 34 to transfer data and comm~n~
b~w~n the client 12 and the server 14. The intetfac~ elpmpnt 34 can be any conventional Tnte~nP.t p~ollxol interface, such as any program that follows the Winsock protocol for interfacing Windows ol)c;laling system prog,~lls to the ~ntetnet~ such as the Trumpet Winsock TCP/IP data transport interface progl~ll. However, it will be apparent to one of on linal ~ skill in the art of computer enginP~ring that any system suitable for transporting data on an IP network can be practiced with the present invention without de~)~ling from the scope thereof.
WO 97t34225 PCT/US97/04194 In the depicted embo lim-Pnt7 the server element 14 also includ~Ps a TCP/IP datatransport interface 40 which conile~;ls via the tran~mi~ion path 36 to the data transport interf~re 34 of the client elPmPnt 12. The data transport intPrface 40 transports data and control information to and from the server 14 thereby providing a transport layer for ~u~ g the file sharing system 42 and the ~(~mini~tration progld~ll 44. The development of servers that include int~g~ ed lldllS~ull layer protocols is well known in the art of COIll~ el r.n~inPPring and any transport p,ulocol layer that allows for the exch~nge of data bt;lween the client 12 and the server 14 is suitable for practice with the present invention and considered within the scope thereof.
As further illustrated by Figure 3, the depicted server 14 inrllldes a server process 48. The server process 48 interfaces to the data transport interface 40 to con~ the client 12 to the server 14. In one p~cf~llcd embo~im-Pnt of the invention, the server process 48 is a web server process for providing HTML pages to the client 12 in resro~e to hyp~
link- requests from the client 12, as well as other P,lPmrnt~ of the system. The server pr~cess 48 is a l,r~~ that implements the process of the invention and that is constructed accol~lih~g to known rrinçiplp~s in the art of colllputel and software ~n~in~-~ g.
As further depicted in Figure 3, the server 14 inrllldes an ~1mini~tration lJlOgldlll 44 which configures the server 14 for providing eYr~ut~hle appli~tion plOgldlllS to the client 12. In one emb~iment, the ~-lmini~tration pl'~ldm 44 inrllldes a partition ~rog~
for parti~ioning the memory device 46 into several logical sPction~ d~Ppirtpd as section~ 50, 52 and 54, each of which can have a device name and each of which can contain a logical file system 56. The construction of such partition ~lu~,ldlllS is well known in the art of sorlw~ P.ngineP,ring.
In the embodiment of Figure 3, the partitiûn plogl~lll creates the logical section 52 for storing data according to the Unix file system protocol. As depicted, the partition 52 inrlu-les a logical file system 56 con~i~ting of one file, for which the file system 56 inc1~lde.s a boot block, a super block, an inode list that re~l~ se.lts an array ûf poinl~,~ to a set of data file blocks that lcpl~senl the physical location of the data on the disk 46. The file system 56 can be the convention~l UNIX opeldting system file system. As further depictP~ by Figure 2, each logical disk partition section can be employed by theadmini~tration program 14 for-storing different types of co.,.~uLer files according to different logical system file plulocols such as DOS, UNIX, VAX, or any other file system protocol wherein each logical disk section inrl~ldes a logical file system 56 that provides to a prùg~ loader, or the device driver that comm~nic~tes to a ~rogl~,. loader, the low level illfo.lll~lion le~les~n~ ve of the physical disk loc~tion on which it is stored the files of the ~cso~-:a~l disk partition.
In one ~ ~lbo~ np~t of the invention, the ~mini~tr~tion pr~gl~" 44 inclu-lPs a partition sul,n~uli, e that creates each logical section 50, 52, and 54 to provide a file system of ccn~uL~l files that can contain appli~tiol- programs for running on any type of client 12 that may connect to the Tnte nel site. Such subluuLin~s are well known in the art and any suitable ~llbrouline or op~l~ng system call can be employed by the invention.
Sperifiç~lly, the ~-~ministration progld--- can be employed to subdivide the disk 46 into logical sP~tion~ for each dirr~l~, l type of client 12. Typically, the type of client is del~l"-ined by the type of ope~;~t;ng system the client runs as well as the type of processor emplûyed by the client 12. Each client 12 would provide the server 14 with a client-type signal that allows the server 14 to det~l---ine which logical section of the disk 46 ...~ in~
files suitable for that particular client. For ~...pl~ a client 12 that ope.ates under the Unix opel,ll;ng system, can access the files stored under logical section 52 and a 486 PC
con~palible cclll~uLe~ nning DOS would access logical section 50. The a~1mini~tration pi~g,~.. 44 that implemPnt~ the process of the invention can be constructed according to well known principles of sorlw~u~ engin~ring as a sur~wa~e module, such as a complied C + ~ sûrLw~c module, that employs system calls to the server upe~d~ g system, such as the UNIX opelaLing system. However, it will be a~pa~enl to one of oldindly skill in the art of computer and software e..~ e~oring that any structure that implemPnt~ the functiûn of the ~(lmini~trative program can be practiced with the present invention without departing from the scope thereof.
W O 97134225 PCTrUS97/04194 In a further embo~lim~nt of the invention, the ~mini~tration proglalll inr~ les a file access control plOgl~lll that delell"ines as a function of a client privilege signal, the access rights available to the client 12. In one embodiment, the file access control program incllldes a d~t~h~ of client i-lPntific~ti~n signals. In this emho~iment the management plOgla~ll 32 inclll~les a client management program that provides a client idtontifir~tion signal that uniquely i-1PntifiPs the client 12. The file access control pr~gldlll includes a ~1~t~h~e of client identific~tion signals and further includes a client privilege field for each client identifir~tion signal. The file control pl'~ SlcUII employs the client privilege field to detrrmine the file access rights of the client 12. The file access control program provides the file access rights to the ~lmini~tr~tion l~lu~lcull 44 which can det~...inc the proper file system or disk partition to make available to the client 12.
Accordingly the ~ ..inl~h~dlion program can provide a lir~n~ing and security system for the system 10. It will be apparellt to one of or~y skill in the art that any file access control plu~ m suitable for controlling the files that are mounted into the server file system hierarchy 58, or that controls the copy of the server file poh tel~ provided to the client 12, inrlluling password systems, on-line charge ~ S~ or any providing other such system for controlling file access rights can be practiced with the present invention withuuL
dep~Lulg from the scope thereof. The ~mini~tration p~ u-l 44 can also include the process that allows an ~lmini~tr~tor, or optionally a client, to create and configure applir~tion information files which can be specified as links in web pages. In a further embo~imPnt the ~imini~t~tion pr~gl~-- 44 can contain a process that ~I~oni~ system use and g~n~ es st~ti~tiss that allow the site ~mini~trator to track and control l~Sûul'~;S.
In a further embo~limPnt of the invention, the m~n~m~nt Pl~m~nt 32 in~ des a client management elem~nt that provides to the server 14, along with the client-type signal, a client file having information signals r~l~sen~ e of the cha~ete i~tiss of the client.
These char~rteri~tir~ can include the memory size of the client, the available progla.ll memory, the system configuration, inrll-ding the config.sys file, win.ini file, configuration files for local applications and the file names of one or more of the systems stored on the client 12. The ~mini~tration program 44 employs this infol,l.dLion to de~l",ine which files to provide the client, as well as for other conventional m~n~gement functions.
In the depicted embo lim~nt, the ~-lmini~tration plOg~lll44iS Sep~Lldte from theserver process 48, however it will be appafent to one of oidhl~ y skill in the art of colllpuler and software er~g;i~ g that the ~lmini~t-ation p~gldm can be implem~nt~ as part of the server process 48.
The file sharing system 42, depicted in Figure 3, colllllluni~tes with the Ille.lloly device 46 and allows the server clr~ nt 14 to read and write h~fol",dtion, such as C~ U~
files, to and from the memory device 46. The file sharing system 42 further ~ in~ the file hierarchy 58 for the server 14 to provide thereby the logical structure for ~cces~ing and m~n~ging coll~p--~r files which are stored as data blocks within the memory device 46.
The file sharing system in~llules a mount procedure 42 that com~ec~ a file system in a ~ ifi~ section of a disk into the eYistin~ server file system hie.~.,lly 58. Moreover, the mount procedure call 42 can convert an o~ g system specific path name into a file handle. A file handle, as is known in the art, is a data-address structure that the server 14 can employ to cG~ ic~te with the client 12. The file handle acts as a file pointer to a file of the file system. Typically, the file handle, or file pointer, is a system unique 32 bit nllmher that i-l.o.ntifies to the server 14 a file when the file is first opened and provides Ille~r a handle the server 14 can employ to access the file pointed to by the handle. In one embo~iment the file sharing system 42 is the NFS system developed by Sun Microsystems of California that creates node arrays of file poi~ for sharing a file system on a Unix platform. However, it will be a~pa~. t to one of ordin~y skill in the art that any file sharing system that can mount a file system and gen~dte a file handle that acts as a file pointer to the files of the file system, can be practiced with the present invention ~ without departing from the scope thereof.
The client 12 includes a device driver 26. The illustrated device driver 26 controls a dynamic mount procedure 28, a dynamic dismount procedure 30 and one or more W 097/34225 - PCTrUS97/04194 org~ni7~tion and management procedures 32. As described in greater detail herein after, to access an application prUgl~ sorted at the Internet site, the device driver 26 activates the dynamic mount procedure 28. The mount procedure 28 creates a remote procedure call that is passed tû the data ~ S~,U1l interface and transported to the server 14.
With reference to Figure 4, which depicts the system 10 in a state after the client 12 has SPlPCt~P~ an app~ tion progl~l, for execution, the system 10 can be further explained.
As depicted in Figure 4, the system 10 inch~des the elem~nt~ of Figure 3 and the further elemPn~ of a server array of file pOil t~l~ 60, a file hierarchy 58 that in~ es the logical file system 56 mounted at the client mount point of the file hierarchy 58 and an array of remote file pointers 24 that are ...~in~ ~l by the file system 22 of the client 12. The system 10 generates the server array of file pOinlelS 60 and the array of remote file poinle 24 in response to the client 12 requesting to Pl~ecut~P an application program stored within the logical file system 56.
In one embod;...~-nl the client 12 e~llplu~ the web browser p~gl~UIl to contact a server process 48 running on server 14. The bro.. ser program provides the server prOCe~5 48 with a client-type signal that intlic~tPs to the server process 48 the system type of client 12 and the file system protocol employed by client system 12.
In the depicted e",bo ~ pnt the server pl'~)Ce55 48 provides the ~(lminictrationpr~gldlll 44 with the client-type signal. The ~llmini~ation program 44 employs the client-type signal to d~ ...il-P a co~ )atible logical file system that is to be provided to the client 12. In one emb~imP-nt, the ~1mini~tration pr~gl~", 44 del~ll.lines the proper file system to be provided to the client 12 and provides the server process 48 with a pointer to a URL
documPnt that in~11ldes dir~ly infol,l,ation signals that describe the dir~loly structure of the file system 56 that is co~Lible with the client 12 and that will be made accec~ible to the client 12. The ~-lmini~tration program 44 can provide the web server 48 with an H~P
URL that provides a hypertext page which graphically depicts the directory information signals. Optionally, the ~-1mini~tr~tinn p~ ,ldlll 44 includes a page elemPnt that has a hypertext link program for generating a hy~~ l signal which rt;~ sen~s the directory infollnation signals as graphical icons which are h~pt;.~Al links to further URL doc~mPnt.
that provide further detail of the dil~;lc~ly structure of the logical file system 56.
The server process 48 transports to the client 12 the di~ecloly inforlll~ion of the available logical file system 56 and further provides a data file that include~ the Tntp-tTlpt network address of the server 14 and a path name to the file system 56.
The connr~;l;on el~mPnt 20 receives the data file provided by the server process 48 and eYtt~t~ the n~,twolh address signal and the path name signal. The ct llPction el~m~P,nt 20 employs the r.el~4~k address signal and the path name signal to ge. ~.a~e the array of remote file point~l~ 24 and to provide the mount l~r~ 28 with the nf~.,~
arguments to mount a file system such as system 56. Typically, the conl-~ ;orl e~ -t in~ des a col~ tf-n~l;on pr~gl~ll to col~r~tf..~lte the address and p~l,n~"P. infollllation to &e~ lf the proper mount point. In alterative embo liment~, the conl-f~l;nn elemfnt receives the proper mount point and file system name from the ~tlmini~t~tion p[~l~ll. In a further step of the ~r~cess, the browser pr~ldlll of client 12 displays to the client user a ~phir~l depiction of the logical file system 56.
In one embodiment of the invention, the client user can request to execute an application progldlll i~entifiP~ within the file system 56 by çlic~l~in~ on an application program. In reSponc~ to the action of the user, the connPction el~PInPtlt 20 passes the ~--,ces~ y ar~ulllenls to activate the mount proc~ulc 28 that gen~dtes a remote pr~dul~;
call directing the server 12 to mount the logical file system 56 that cont~in~ the application pr~gl~ll requested by client 12, into the file hierarchy 58.
In one embo~imlont the connection e1emP.nt 20 receives a data file from the server process 48 that provides the IP address of the server and the p~thn~mP. to the files available to the client 12. In an ~lt~tn~tive embo~lim~ont the connection ~oletn~.nt 20 initi~t~.s a call to a port of the server process, such as well known port 80, that provides address information of the server 14. In one example, the client 12 can select to execute the appli~tion prog~ . XLANDER.EXE. Once the collection element has determined the network address and path name, the connecbon ~l~m~nt 20 can activate the mount procedu,~ to dyn~mi~ lly mount the file system that con~ine the file XLANDER.EXE. One such mount procedure 28 is understood from the following pseudo code.
int mount_fs(mntp) struct mntent *mntp;
{
int error;
/* The mount procedu~e makes a MOUNT - TRAP call. This calls the MOUNT - TRAP routine which is a call to an opcl~ling system library. Such function calls are provided, as one e~ le, by the Win library or the SYS library. You could also write your own mount function.
- error = MOUNT TRAP(type, mntp. flags, mnt data);
if (error < 0) {
plog(XLOG ERROR, "mount failed on % s: ermo= %d", mntp- > mnt_dir, ermo);
return (-1);
}
}
main (argc, argv) int argc;
char~
{
/* The main routine receives the host name and the mount point name from the collection program */
hostname = argv[l];
mp_name = argv[2];
/* the main routine then l~,m~ls the name of the file system that is to be mounted to format the file name for the web server process. Typically the file e~t~neion ".wfs" is added to denote the world wide web file system */
W O 97/34225 rcTrusg7/o4l94 fs_name=co~ Julc-fs-name(argv[l]);
/* the main routine then packs the file system name, the mount point name, a mount type field into a structure. */
mntp- > mnt_dir=mp_name;
mntp- > mnt_fs_name=fs_name;
mntp_> mnt_type=MNTTTYPE_WWFS;
/* The main that issues calls a mount file system pr~lu~c that o~)cldtes on the mntp structure*/
ret=mount_fs(&mntp, flags, (caddr-t) &nfs_args, 1, MOUNT_TYPE_NFS);
retum ret;
}
As ill~ dlcd by the above pseudo code, the mount pl~lU~C 28 receives from the collPction el~ment 30 two ~UgUIII~..It~ that rcplcsent the file system to mount and the u~ point for the file system. The mount pr~lule 28 can then create a remote pl~lUlC call for the file sharing system 42 to activate the mount l,~lul~ 62. The mount procedulc 62 mounts into the server file hierarchy 58 the file system, such as file system 56, which inrll~des the eYecut~t le l,r~l~ull file for the XLANDER.EXE applir~tion . The mounted file system can now be ~cce~d The file sharing system 42 is a pru~,l~" e1emPnt that creates an array of file pointc 60, ~l~cted as file ptr 1-n, that Ic~sent the locations of the disk 46 that contain the eYecllt~hle code for XLANDER.EXE. In one embo liment the server process 48 provides the client 12 with a copy of the file pointers. However, any system for providing the client with a copy of the file yoinlcl~ 60 can be employed by the present invention without departing from the scope thereof As depicted in Figure 5, the connection element 20 opens a file having the copy of the file poinl~l~ 60 and gencl~tes the array of remote file pointers 24. Each remote file pointer 24, depicted as IP + PATH + FILEPTR, is a handle, through the mounted disk W 0 97/34225 PCTnUS97/04194 partition, and to a physical location on the mounted disk 46 that can be employed by the client 12 as access points to the physical location of the disk 46 that contains the executable code for the XLANDER.EXE. In one embof~iment of the invention, the array of remote file poill~Gl~, is provided to the client 12 by integrating the array of file ~inte,~ into the file hierarchy of the client 12. It will be understood that any col-nP~;on ele~ment suitable for providing a remote file pointer to a file system can be practiced with the invention, including col-n~ on elPmPnt~ that employ a conc~lP~I;on routine for fo"l,ing poilltGl~7 by con~len~ a server address signal with a p~tl.n~-..e signal and a file pointer signal, such as a connP~tin elemPnt that forms a string WWW.EPICON.COM:USR/LOCAL/STORE/XLANDER.EXE, where WWW.EPICON.COM is a server address ~Gp esc.~t~tive of an IP address, USR ,ep~ nls the disk 46, and /LOCAL/STORED/XLANDER.EXE rep~nts the p~-lt..~...e signal.
- Figure 5 further depicts that client 12 can include a pl~glalll loader e1PmPnt 62. The program loader PlPmPnt depic~Pd in Figure 5 co~ to the device driver 26 and employs the device driver 26 to access the eYe~ut l le file sele~t~P~l by the user of client 12. The device driver 26 searches the file hierarchy of the client 12 and i~entifip~s the remote file pointer which points to a first block of code of the s-Plecte~l executable p~o l~ll. The device driver 24, which in~Prf~s with the data transport interface 34, ~ce-s~s the file block of eYe~ut~hle code by requesting a transfer of the file block from the disk 46. The program loader can run the process within a window in the bl~w~r process. For PY~mpl~, in one embodiment, the client 12 was configured to run the WINDOWS 95 operating system and employed the pro~ loader supplied under that opelating system. However, it will be apl,al~nt that any program loader suitable for employing file pointers for loading executable code can be employed with the present invention without departing from the scope thereof.
Figure 5 further depicts a co~ ,ession program 38 for colllp~ising data being transferred across the path 36. In this embodiment, the server process 48 also includes a comp~ession routine for cGInples~ g and deco"-p~essing data tr~n~mitted by the data transport layer. In one embo~imPnt, the invention provides a coll,plession pf~l~n that pc;lrul...s a hurr ..a~ çnr~ing procedure, however it will be appalent to one of o~in~y skill in the art that the substitution of alternative encoding processes does not depart form the scope of the invention. Ln a further ~re~ell~ emb~iment, the system 10 includes a c~-.hing system that allows the server 14 to cache data file blocks being read from the disk 46 and being pl~l~ed for transport to the client 12. The caching system can be any ~ ca~hing system that stores in a high access speed memory a buffer of data blocks for transfer to the client 12.
Figure 6 figuratively depicts the co-n~nenls and inter~rtion of an ~ltrrn~tive system according to the invention that includes a cache memory system, an HTTP ~ clor and a cache r~dil~r. In particular, Pigure 6 depicts a system that inrl~ldPs a client elemPn~
212, am HTTP server 214, a cache system 216, a file system server 218, a l~lu~l 222, a blU~;~. interface 224, a l~..,.chf,r pr~gl~.. 226, a file system connPctiQn process 228, a - remote access c~nl-f~l;rJn 230, a nc;lwc.lhing API 234, a r~dilcclor API 236, a file system cache API 238, an op~ g system file system interface 240, a cache r~]ir~clor 242, a nelwol~ file system client 250, an optional NFS r~dir~;lor 252, an HTIP l~dir~clor 254, a further r~li~cclor 258, and a mini-~edircclor kernel elemrnt 260.
The browser 222 can be a l~ru.. ~ as dese. ;be~ above and the client interface 224 can be an interface process, such as a N~t~c~pe plug-in, Active-X process, or any similar process, that int~.rfar,es the ~ru~r pr~gl~,. 222 with the other elen-lo,nt~ of the client 212.
Similarly, the l~llnr,her l,r~l~lll 226 can be an Active-X application, a plug-in or any other colllpu~l process that can be activated by the br~.. ~r prugl~ll 222. The d~.picted l~lJnrher program is a co---pùtcr process that can retrieve from the server 214 the application infol..lation file ~s~;~l~ with the activated application, mount the shared file system con~;1;l-ing the remote application coll.ponents, and responsive to the inforrnation in the application information file, create a select~ environment within the client 212 to start and run the application. The l~llnr.h~ program 226 can monitor the application eYe~utirJn and notif,v the server 214 when the application terrnin~t~s.
WO 9713i22S PCT/US97/04194 The l~llnrhPr program 226 can execute either a remote or a cached application. To this end, the depicted l~llnrhPr 226 interfaces to the file system connection process 228 that allows the l~llnr.her to interf~re to the client file system and to mount a remote file system to the file system of the client. Such a process for molmtin~ a file system is described above. Similarly, the l~lmr.h~r plogl~l- 226 can in~lrace with the remote access process 230 that allows the l~l-nr.hPr to access the remote application being eYPclltPA by client 212.
The remote access ~ cess 230 can dyn~mir~lly deliver blocks of executable code. The code can be loaded, as described above into the client ~lUgl~ll memory and optionally, stored within the cache memory 216 in a directory structure that mirrors the dil~lc."~
structure of the server 214. For this reason, the remote access process 230 can in~lL.
with the cache API 238 to control the storing and retrieval ûf data within the cache IllelllUl~
216.
- Figure 7 ~lepi~tQ, that in ~ itif)n to l~m~ing remote applic~ti~ nQ from the network through web pages pl~ ,enled by a server 214, appli~ ~I;o,-~ can also be run from the cache memory 216, optionally by activating links in an Off-line page. The Off-line page can be an HTML page stored locally on the client 212, and can have links to appli~ ~tionQ stored in the cache memory 216, for l~lm~hing these cached plOgl~llS. Moreover, the client can also include a process for aulu...~;r~lly l~unc.lling appli~tions from the cache memory.
Typically, this process is in~lnded in the cache ~cdil~;lul 242. This process can de~,ll~le if the same appli~tinn is available from both the server and the cache. If ~cQin~ the cache is more efficient, the plùCeSS wil1 launch the cached version of the application.
As described above, the ùpelaling system handles the request to load the remote applic~tion and routes file system l~u~i,ls to access remote application files to the app~pfiate network file system l~ile;lor. This can also include routing the reguests to the cache redireclor 242. The cache ledi~eclor 242 inlel~e~l~ certain file system requests for remote files stored on the created virtual drive ~Qoci~t~oA with the remote application. The cache re~ ;lor can determine whether the requested file has been cached. If the requested file has been cached the cache ledileclor 242 compalc;S file attributes of the file in the local cache memory 216 with the attributes of the remote file. If the attributes in~ t~ the remote files have been changed, the cache redileclc,r deletes the cached copy.
If the requested file cannot be taken from the cache memory 216, the cache redirector 242 passes the request to one of underlying network file system clients. The cache redirector 242 then finds a space in the cache memory to store that file and marks it to be cached when the OS file system reads the file from the shared network file system.
After coll~ting the file, the cache ~ cctor 242 returns the file to the OS file system in le.~yOnSe to the file system request.
After the appli~tion l~ es, the l~lln~h~r process 226 pe.r~ ,ls cleanup and ecl~ the drive/universal naming convention (UNC) col~nP~ n, l~st~res the environment to the origin~1 state, queries the cache ledil~ l 242 about all remote app1i-~ti~n~ which have co~ ~n~ntA that have been fully cached. Updates the Off-line page, col)~yh~g off-line appli~tion infollllation files to an install direclol~, and adds a link for the any new entry into the Off-line page and/or removes any links that a file bull~ped out of the cache 216. The client 212 notifies the server 214 of the ~rrlic~ti~n te..,~;n~liQn event, or of eY~ution failure event. The server 214 can then ~lr~,llll any nF~ .y m~t~ring management l~uiled for the application.
In ~ ition to the information describe~ above, the qrp~ic~tion hlfollllalion file can contain information for the Off-line Page. This can include an Off-line allowance flag. If this flag is not set, the l~lmf h~r 226 will not attempt to add the remote app!i~tion le~e3ented by this appli~tion info~ dlion file to the Off-line Page. This flag can be set by the server aAmini~tr~t~-r pro~,lalll when the web ~lmini~trator creates or updates the appli~tion information file. This infoll"alion can also include the list of the coml)one~ of the remote application that are to be cached in the cache 216 to run the application off-line.
This list can also be set by the server ~mini~tration program when the web ~vlmini~tr~t-lr creates the application information file. Optionally, the list can include an Off-line preload request flag. This flag is set to in-lir~te to the l~lnr.h~r 226 that the user requested to add the remote application l~le3ented by the applin~tion information file to the Offline Page.
W 097134225 PCTtUS97tO4194 The l~llnrher 226 can include a process that will preload all of the colllponents of the remote applirqtion to the cache memory 216 and update the Off-line Page, but not launch the remote application. The preload process can operate by generqtin~ the proper file r~uesls for the SÇlPCtP~ application pro~r.qm~, and sen~ling the file requests to the HTTP
cdil~clor.
In one emb~imPnt the lqllnrhPr can present a hierarchy of all "known" web servers running a server process accord~ng to the invention. The l,q~llnchPr can list the "known" applir-qtion links on each of these servers. The lql-nrh~r will obtain a list of "known" servers and/or their qpplic~tion links when the ln m- hPr starts eYP~ution. The list of servers can be o~lained by s~n~in~ a query request to a proxy server which is setup to be aware of other server p~cess~s according to the invention. The list of application links can then be obtained by sen~lin~ a query request to a sperific server. All applir~qtirJn links returned from the query request can then be displayed in a window of the l~nnrh.or.
Although the la...lcl~f;. p~cess can be coded in any suitable way, an embodimentcan be a 32-bit application for Windows 95 and Windows NT 3.51/4.0 ~&lr.,llns, a 16-bit application for Windows 3.1, or a process ported for op~ 7ll on a UNIX, OS/2, and MAC platform.
I?et-~rnin~ to Figure 6, it can be seen that the cache memory system 216 can act as a ,lqtqhq.~ç on the client's local disk which caches, or mirrors, remote applir~qtion~ and q.~oc;~tt~d files when an application is run via clicking on an application link. The ~l~t~h-q~ç
can be located in a hidden directory under a client in~t-qllqtion process di~ . Files can be stored in the cache in a dirrerel~l format than the dil~;l~"y structure on the server, and therefore cannot be int~ p~elRd by a local user directly. The cache 216 can improve ~c'ro~ q~nce by avoiding the need to run remote applications over slow links. Onent requests to elre~-lte the same link, appli~tion~ and ~oci~tffl files can be read from the cache rather than over the network. Additionally the cache can allow completely cached applications to be run from the Off-line page when there is no network connPction to a remote file server cont~inin~ the applications.
CA 02248086 l998-09-03 The depicted cache redilcclol 242 lies between the operating system's central file system control, and the inCt~llPd network file systems. It connects the dirre~cllt file system services, NFS, Hl-rP, etc., to implement the file c~hing me,h~ni.cm. All file system requests sent to this,layer are routed to the a~pr~,iate network file system.
~ To this end, the network file system client 250 that can act as a multiple-protocol file system that takes remote I/O l~ue~la from the client and sends them to the ap~ropl;ate server for pr~ces~ g. In the depictPA emb~imP-nt, the network file system client 250 incllJdes a plurality of redir~ that can act as a file system that takes remote I/O
requests, for files, pli~llela, serial ports, named pipes, mail slots, or other devices or abstractions, and sends the request to a server. As shown, each redilcclùr in the n~ lwulk file system 250 can ~edil~il I/O requests for use with a s~lrcted type of protocol for sharing fi~es, data or devices.
.
The n~lwolk file system client 250 can include a controller process that selects one of the plural ç~ilcclols for servicing a remote I/O request. The controller can select the l~ir~;lor by de~ ll inil~g from the I/O request, the server that has access to the requested data or device. Ad~ition~lly, the controller can include a list that id~ontifies appli~?~tiQn p~gl~ulls, or other data or devices, that are available from the multir'~ servers. The controller can select one of servers to access based on a chd~ tic or criteria such as the file systems or transport p~ ocols available. For ex~mple, the NFS relireclor may always be sel~ctçd over the H~P l~xlh~lor, if an application pr~ is available from bothtypes of servers. ~ltern~tively, the controller process can (1Pl~ the tr~n~mi~ )n latency period, which defines the current respon~e time of the network to a client request, to select the redirector of the faster network. The controller process can be part of a wrapper that encapsulates the plural ~edilc;l~la and acts as an interface to the client opcl~ling system.
The NFS Icdireclor 252 can be a file system client which h~n-lles requests to col~ne~;l to exported remote file systems and to run remote applications shared by NFS
servers. The NFS redir~~or 252 can be implem~nted as a VxD in Windows 95 and as an W 0 97/34225 - PCTrUS97/04194 FSD in Windows NT. If Windows 3.1 and Windows for Wolh~ up are su~.led, then the NFS redireclor 252 can be impl~-nPntP.~ as a redirector VxD. The core part of the edir~;lor that provides NFS plolocol~ the protocol specific c~hine and the other fealures (that pertain to either the protocol or to the client redil~clor spP~-ific function~) common for all OS platforms can be imple~ ed as a sel)~atP, OS indepentlçnt, system co~ )onent that is portable across the platforms. This core part is depicted in Figure 6 as the mini-~ir~clol 260. The shell of the depicted NFS ~ r252is configured to support the client ope~ system and can be imph~ d as a network file system wlapper that is .specific to client particular OS.
The depicted H~P lcdil~tor254 can act as a n~,lwolh file system client ~ cclor which abstracts full URL p~-~h,~ es, which are provided within the application infollllalion file. This provides an ~ shared file system. The HTIP redil~il(~r254 can then provide access to files within the Hl'rP shared file system by ",~ ;ning a Universal Naming Convention (UNC)/drive conn~cti~n to the HlTP server dilc~;lulies. From the point of view of a remote application running on a local m~ hinP, the results of ;7, ~e~;ng files through the HITP lc~lir~lor254 are the same as the results of ~ ~ces~ing files through any other known n~,lwolh file system (i.e. Microsoft N~,twolh, or NFS). The HITP~d~r 254 can be a COIIl~u~l program impl~ n~ in the C+ + CO~ U~l language.
The pr~g~ can monitor or respond to file requests made by the client opeldling system.
The program will process those file r~ue.;,ls for files stored at an ~ server. In one embo-limPnt, the prog~.. tr~n~l~tes the file system requests into HTTP compli~ntcommand .~ig~ , which can be ~-oce ~d by an HTTP server. The ~rP compli~nt cc""",al~d signals can include simple le~ue~Ls or full l~ue~ls, inr~ inE~ the GET
co",l,.~nd, or any other HI~P commqn-l~ or metho-~c suitable for co"~"~ ir~ting with an HTTP server. The server responds to the comm~n-l~ by transferring, according to the HTTP protocol, the files i(lPntifi~d by the file h~ndles generated from URL p~thn~m~.s.
This provides an HTTP shared file system that directs the HTTP server to act as a network device. The development of the HTTP redilcclor 254 follows from well known principles in the art of s~rlw~c; engi~ -g and the actual coding of such a red~;loL is within the sldll of one of ol.linaly skill in the art of colllpU~r ploglAIl~"lin~.
The HTTP redir~;~or 254 works in tight h~eg.~lion with the cache memory 216. In ~ltPrn~tive embo~impntc~ the HTrP Icdir~lor 254 may provide a process for reading a portion of a file rather than l~uil;ng the entire file to be read at once. The HI~P
redil~cLor 254 will provide the read access to the remote application files. The limited write access can be provided, for example, by employing the HITP PUT comm~nd.
It will be seen that an advantage of the HTTP redirector 254 is that the redireclor 254 provides support for ,unning applic~tion links over the Tnternet and lhlough a firewall.
Utilizing well known file system client and server sorlw~e is sllfflt~i~Pnt for lu- nillg applir~tion links over the Intranet, however allowing access to one of these well known file system servers over the T~-t~ ,l creates a security hole. ~lle. ..~ ely, an HITP server can be placed on the nclwul~'s firewall. All applications desired to be ~~~P~ccihle from the ~ntPrn~t are to reside on that web server, and applit ~tion links can be set up accûrdih~gly.
The appli~ ~ti~nc can then be run over the Internet via the ~l l l ~ l~ilec~r 254.
The Hl rP redil~tor 254 can be imple...~ te~l simil~rly to the NFS r~di,ecl~r, with a core portion imp'~ ..Pn~l within a Illinir~ ;tor and a Wl~l~)pe. for interfacing with the client OS.
Systems of the invention also provide for applications that are to be pre-inct~lled.
For example, if an appli~tion cont~in~ some system level c(jlnponents, for eY~mp~e, drivers, that need to be il.leg.~Pd with the OS during inct~ tion of that applir~tion or if inct~ tio~ hes client system reboot, such applic~tiorl is to be pre-inct~lled To address this, the invention provides remote inct~ tion of such applications onto the client, so the client can choose to install the remote application on the local m~rhine This method of in~t~ tioll runs the remote install or setup program on the client's m~hin~o and then the install plogl~l. copies the n~.s.s,.. y co--.ponents of the application from a network drive that was mounted by the client.
Figure 8 depicts a ~r~phi~l interface 16 that prûvides a dir~loly structure of an applic~tion plUgl~lll. As depicted in Figure 8, System 10 provides a graphical user intP.rf~e 16 that displays within the window of the browser ~lOgldul 78. In the deplcted embodiment of the invention, the graphical user- interface 16 is an HTML hyperlink page provided by the Web Server Process 48 and which incllldes hypertext links that graphically illustrate dil~loly infoll.lalion signals that show the file system structure of a file system 56 that has been mounted into the file hierarchy of the server 14.
As illustr~t~d in Pigure 8, the graphical user interface 16 provides the hy~l~AIlinks as gr~rhic~l icons that des~rihe dil~ctoly primitives, such as dilc~loly structures, sub diç~c~ structures, file sLIuclur~s, disk structures, or any other co..ll,.on file system structure. Figure S i~ t.,s one gr~rhic~l file structure that includes a di~ uly icon 70, a sub di~cclul y icon 72, and file icons 74A, 74B and 74C. In one embodimPnt of the invention, each icon is a hy~.t~Al link to a further HTIP URL which requests the Web Server P~ocess 48 to download an ~ tion~l HTML page that provides further ~folll,alion as to the dil~;luly structure of the mounted file system 56. It will be ay~a~enl to those of ûrdi~y skill in the art that ~y~t~nls and ~ cesses according to the invention can be practiced without such grarhi~ ~l inl~. r~ces. Moreover, the construction of an HIML
server p~cess that provides mllltirl~. links to URL sites is well-known in the art of coll.pu~r en~ ;n~, and any motlifit~ti~n~, subt~-ti~-n~, or ~ ition~ to the interface 16 depicted in Figure 8 is d~.m~ to be within the scope of one of ord.n~y skill in the art and it would not depart from the scope of the invention.
Figure 9 depicts a fimction~l block ~i~gr~m that ilh-ch;.tes one process accor~ g to the invention for allowing a client to connecl to an In~ll~el server for eYe~utin~
applications the~r.ol-l. As depicted in Figure 9, the process acco~ing to the invention can be understood as two processes, a first running on a client collll)ultr, and a second running on the server collll)ulel, which operate in part inde,pçndçntly from each other. Figure 9 depicts the server process in the left hand portion of the Figure. The server process inr,lurles steps 170, 180, 190 and 200. The client process is depicted on the right hand side ûf Figure 9 and includes steps 110, 120, 130, 140 150 and 160.
The process 100 begins with the client process step 110 that connects the client to the Web server process. As depicted in Figure 9, step 110 of the client process causes the server process to pelro~.,. step 170, which includes receiving the Web server access request to access a file. The server process continues to step 180 which is an optional step, where the server 12 authenticates the client and delerl"ines the access privileges afforded to their client by eY~mining a client ID signal and a client privilege signal that are tr~n~mi~ by the client to the server. After optional step 180, the server process continues to step 190 and passes back to the client the IP address signal and the path name signal.
In a pler~lled embodiment of the invention, step 190 also incl~ldes the step of passing back to the client an HTML page that gr~rhi~lly depicts the available application progldnls. As ilh.~ d in Figure 4, a client process proceeds to step 120, where the agent receives the IP address and the path name. Upon receipt of the IP address signal and the path name signal, the client process proceeds to step 130, and employs the IP address signal to gene,~ a dynamic mount request. In a prere.led embodiment of the invention, the client gen~tes the dynamic mount request by a client activating a hy~. lt;Al link that provides a dynamic mount request to the Web server process of the server 14.
As further depict~ by Figure 9, the dynamic mount request of the client process is passed to the server process and the server process proceeds from step 190 to step 200. In step 200, the server process pl~cesses the client's file access request and ~lrOl.-~s the mount of a remote system disk that contains the application file requested by the client. As describe~ above, the process step 200 includes the step of geneldling an array of server f~e poil~t~ls that act as file h~ndl~ to the data blocks of the appli~ ~tion ~3Ç~gldlll.
As depicted in Figure 9, step 200 passes a copy of the array of server file l oinle to the client process which proceeds to step 140 and invokes the application from the mounted remote drive. In step 140, the client process follows the normal execution process of the client system by invoking the program loader to load file blocks pointed to by a remote array of file point~.s which are generated by the client process as a function of the IP address, path name signal, and server file pointers.
W O 97/34225 PCTrUS97/04194 As depicted in Figure 9, the client process p~c~ds from step 140 to step 150 after execution of the appli~tion and exits from the application. As further depicted by Figure 9, the client process can proceed to step 160 where it issues an optional dynamic dismount drive request that transfers control of the process 100 to the server process which process the client's dismount request and removes the mounted drive from the server system file hierarchy. The dynamic dismount request creates a remote procedure call for the file sharing system 42 to dismount the spe~-ifiP~ file system, typically the file system l~-ounted by the mount proce lure 28. The construction of the dismount p~ ult; 30 is similar to the mount procedure 28 described above.
As further d~Ppict~d by Figure 9, the pr ~ ss100 can continue to operate after step 150, allow the client 12 to select a next application plO ldlll for eYçcuting. Remote application as the term is employed herein shall be understood to encolllpass a single eYçcllt~ble file, as well as the set of di~ ;es conl~in~ the co,llponents to run an applir~tinn, as well as a set of rules (environment variables, rh~nges to the Registry and to other system configuration files) that are to be applied on the local m~~hinç to run that application.
It will thus be seen that the invention effi~ipntly attains the objects set forth above, among those made a~p~nt from the prece~ g d~sc,il~lion. It will also be understood that changes may be made in the above construction and rOlcgoil1g sequences and operations without departing from the scope of the invention. For example, the invention can be understood to include primitives embe~ld~p~ into an application program or a proglA",ming language, that allow the application p~l~ll or the ~l~gl~."..lillg language to mount a remote disk and el~ç~ te application prugl~llls from that disk over an Internet connection.
As an example, it will be understood that an application plOglalll that include the functionality to co"""unicate to a data transport layer, can employ the systems and process of the invention to allow a user to access and executç, from within the application program, a second program located on a disk linked to a server site. Furthermore, it will be understood that an opeld~ing system can be adapted to include the systems and plocesses of the invention.
W O 97l34225 PCTrUS97/04194 It accordingly is int~n-~ed that all matters shown in the acco"-~anying drawings be in~lpl~,led as illustrative rather than in any limiting sense. It is also to be understood that the following claims are intended to cover all of the generic and specific features of the invention as described herein, and all st~t~m~nt~ of the scope of the invention which as a matter of language, might be said to fall therebetween.
Claims (26)
1. A process for allowing a client to connect to a server of an Internet site for executing an application program stored on a disk linked to the server, comprising the steps of providing a data transport interface for connecting to said server, transporting from said server a server address signal representative of a network address of said server, and a path name signal representative of a file system that includes the application program, generating a mount request, as a function of said path name signal, transporting said mount request to said server for directing said server to provide an array of server file pointers that point to a file descriptor representative of said file system that includes the application program, generating an array of remote file pointers, as a function of said server address signal, said path name signal and said array of server file pointers, providing said array of remote file pointers to a program loader element operating on said client, and directing said program loader to employ one of said remote file pointers to transport from said disk to a local program memory element, a file block associated with said selected remote file pointer.
2. A process according to claim 1, including the further step of transporting to said server, a client-type signal representative of a file system protocol employed by said client.
3. A process according to claim 1, including the further step of providing said server with an administration program for storing a file system of computer files on said disk according to a select file system protocol.
4. A process according to claim 3, wherein said step of providing said server with an administration program includes the step of providing a file controller for storing computer files according to one or more of a DOS, UNIX, VMS, WINDOWS, WINDOWS 95, WINDOWS NT, OS/2, SYSTEM 7 file system protocol.
5. A process according to claim 3, wherein said step providing an administration program includes the step of providing a partition controller for generating a disk partition for storing a file system of computer files according to said select file system protocol.
6. A process according to claim 3, wherein said step of providing an administration program includes the step of providing file directory controller for generating directory information signalsrepresentative of said file system of computer files and for transporting said directory information signals to said client for providing a file directory of the computer files available to be accessed by said client.
7. A process according to claim 1, including the further step of providing said server with a file access control program for determining, as a function of a client privilege signal, a set of file systems of computer files available to be mounted by said client.
8. A process according to claim 1, wherein said client accesses an application program stored on a memory device linked to an HTTP server, comprising the further step of providing a redirector element for translating the file system requests into HTTP
compliant signals, for transmission across a network.
compliant signals, for transmission across a network.
9. A process according to claim 8, including the step of directing said redirector element to process, responsive to a file system request, a URL pathname to generate a signal for accessing a file stored within a remote file system.
10. A process according to claim 8, comprising the further step of providing plural redirector elements for translating said file system requests into selected transport protocols.
11. A process according to claim 10, wherein said step of providing plural redirector elements includes the step of providing an NFS redirector element for translating requests into NFS compliant signals.
12. A process according to claim 10, wherein said step of providing plural redirector elements includes the step of providing a SMB redirector element for translating requests into SMB compliant signals.
13. A process according to claim 10, including the further step of, selecting one of said plural redirector elements to translate said file system requests.
14. A process according to claim 13, including the step of selecting said redirector as a function of the type of remote file systems operating on the servers of one or more networks or as a function of the types of network transport protocols employed by one or more networks coupled to said client.
15. A process according to claim 13, wherein said client couples to a plurality of networks and including the further step of selecting said redirector as a function of comparing the transmission latency time characteristic for each of said plural networks.
16. A process according to claim 1, including the further steps of providing said client with access to a cache memory for cache storing portions of a remote file system containing said application program, and providing a cache redirector element for directing said client to access said portions of said file system stored within said cache memory.
17. A process according to claim 16, including the step of directing said cache memory to mirror said file system.
18. A process according to claim 16, including the step of providing an Off-line page having at least one link to an application program stored within said cache memory.
19. A process according to claim 16, including the further step of providing a pre-load control for allowing said client to store selectively an application program within said cache memory.
20 A process according to claim 1, including the step of providing a process for directing said server to execute said application program within a program memory of said server.
21. A process according to claim 1, including the step of generating an application information file having information representative of files associated with said application program and information representative of a file structure associated with said files of said application program and/or information representative of an operating environment for said application program.
22. A process according to claim 1, including the further steps of providing said server with a link to a second server, and directing said server to identify to said client application programs stored on said second server and available for execution by said client.
23. A process according to claim 1, including the further step of providing an access control process for allowing said server to control access of said client to said application program.
24. A system for allowing a client to execute an application program stored on a disk linked to the server of an Internet site, comprising a data transport interface for connecting to said server, connection means for collecting from said server a server address signal representative of a network address of said server, and a path name signal representative of a file system that includes the application program, mount mens for generating a mount request, as a function of said path name signal, and for providing said mount request to said data transport means to direct said server to provide an array of server file pointers that point to a file descriptor representative of said file system that includes the application program, file handle means for generating an array of remote file pointers as a function of said server address signal, said path name signal and said array of server file pointers, and a program loader element having means for selecting one of said remote file pointers and for transporting a file block associate with said selected remote file pointer from said disk to a local program memory element.
25. A system according to claim 24, wherein said file handle means includes concatenation means for concatenating said server address, said path name signal and on of said file pointers to generate one of said remote file pointers.
26. A system according to claim 24, wherein said application program comprises an installation program for installing a second application program, further including a process for generating an application information file representative of filesassociated with said installation program, a detector for detecting a request from said client to install said application program, and a configuration element for configuring the operating environment of said clientresponsive to said application information file, whereby said second application program is installed on said client by operation of said installation program running on said client.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/616,746 | 1996-03-14 | ||
US08/616,746 US5838910A (en) | 1996-03-14 | 1996-03-14 | Systems and methods for executing application programs from a memory device linked to a server at an internet site |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2248086A1 true CA2248086A1 (en) | 1997-09-18 |
Family
ID=24470791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002248086A Abandoned CA2248086A1 (en) | 1996-03-14 | 1997-03-14 | Systems and methods for executing application programs from a memory device linked to a server |
Country Status (5)
Country | Link |
---|---|
US (5) | US5838910A (en) |
EP (4) | EP2506143A3 (en) |
AU (1) | AU711280B2 (en) |
CA (1) | CA2248086A1 (en) |
WO (1) | WO1997034225A1 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676813B2 (en) | 2004-09-30 | 2010-03-09 | Citrix Systems, Inc. | Method and system for accessing resources |
US7752600B2 (en) | 2004-09-30 | 2010-07-06 | Citrix Systems, Inc. | Method and apparatus for providing file-type associations to multiple applications |
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 |
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 |
US8090797B2 (en) | 2009-05-02 | 2012-01-03 | Citrix Systems, Inc. | Methods and systems for launching applications into existing isolation environments |
US8095940B2 (en) | 2005-09-19 | 2012-01-10 | Citrix Systems, Inc. | Method and system for locating and accessing resources |
US8117559B2 (en) | 2004-09-30 | 2012-02-14 | Citrix Systems, Inc. | Method and apparatus for virtualizing window information |
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 |
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 |
US8171483B2 (en) | 2007-10-20 | 2012-05-01 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
Families Citing this family (504)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073246A1 (en) * | 1998-06-29 | 2002-06-13 | Stephen F.B. Pickett | Code server |
US5649204A (en) * | 1991-08-22 | 1997-07-15 | Rec Software, Inc. | Method and apparatus for consolidating software module linkage information used for starting a multi-module program |
US6026452A (en) * | 1997-02-26 | 2000-02-15 | Pitts; William Michael | Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data |
US6813769B1 (en) | 1997-10-28 | 2004-11-02 | Microsoft Corporation | Server application components with control over state duration |
US5715174A (en) * | 1994-11-15 | 1998-02-03 | Absolute Software Corporation | Security apparatus and method |
US6269392B1 (en) * | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US7006661B2 (en) | 1995-07-27 | 2006-02-28 | Digimarc Corp | Digital watermarking systems and methods |
US7289643B2 (en) | 2000-12-21 | 2007-10-30 | Digimarc Corporation | Method, apparatus and programs for generating and utilizing content signatures |
US6088515A (en) * | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
US6437803B1 (en) | 1998-05-29 | 2002-08-20 | Citrix Systems, Inc. | System and method for combining local and remote windows into a single desktop environment |
GB9603582D0 (en) | 1996-02-20 | 1996-04-17 | Hewlett Packard Co | Method of accessing service resource items that are for use in a telecommunications system |
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 |
US6003007A (en) * | 1996-03-28 | 1999-12-14 | Dirienzo; Andrew L. | Attachment integrated claims system and operating method therefor |
US9619841B2 (en) | 1996-03-28 | 2017-04-11 | Integrated Claims Systems, Llc | Systems to assist in the creation, transmission, and processing of health insurance claims |
JPH09274607A (en) * | 1996-04-08 | 1997-10-21 | Hitachi Ltd | Computer system and operating method for the same |
EP0825506B1 (en) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
US6721941B1 (en) * | 1996-08-27 | 2004-04-13 | Compuware Corporation | Collection of timing and coverage data through a debugging interface |
US5991542A (en) * | 1996-09-13 | 1999-11-23 | Apple Computer, Inc. | Storage volume handling system which utilizes disk images |
SE507138C2 (en) * | 1996-10-14 | 1998-04-06 | Mirror Image Internet Ab | Procedure and apparatus for information transmission on the Internet |
US6758755B2 (en) | 1996-11-14 | 2004-07-06 | Arcade Planet, Inc. | Prize redemption system for games executed over a wide area network |
US7058696B1 (en) * | 1996-11-22 | 2006-06-06 | Mangosoft Corporation | Internet-based shared file service with native PC client access and semantics |
US20060129627A1 (en) * | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
US6119161A (en) * | 1997-02-28 | 2000-09-12 | International Business Machines Corporation | Managing connection requests in a dialup computer network |
US7020700B1 (en) * | 1997-02-28 | 2006-03-28 | International Business Machines Corporation | Client side socks server for an internet client |
US6144377A (en) * | 1997-03-11 | 2000-11-07 | Microsoft Corporation | Providing access to user interface elements of legacy application programs |
US6678724B2 (en) * | 1997-03-12 | 2004-01-13 | Microsoft Corporation | Common namespace for internet and local filesystem objects |
US6421733B1 (en) * | 1997-03-25 | 2002-07-16 | Intel Corporation | System for dynamically transcoding data transmitted between computers |
US6587877B1 (en) * | 1997-03-25 | 2003-07-01 | Lucent Technologies Inc. | Management of time and expense when communicating between a host and a communication network |
US6182122B1 (en) * | 1997-03-26 | 2001-01-30 | International Business Machines Corporation | Precaching data at an intermediate server based on historical data requests by users of the intermediate server |
US6061517A (en) | 1997-03-31 | 2000-05-09 | International Business Machines Corporation | Multi-tier debugging |
KR100247951B1 (en) * | 1997-04-11 | 2000-03-15 | 윤종용 | Program modification method of PDA |
US7167857B2 (en) | 1997-04-15 | 2007-01-23 | Gracenote, Inc. | Method and system for finding approximate matches in database |
US7308485B2 (en) | 1997-04-15 | 2007-12-11 | Gracenote, Inc. | Method and system for accessing web pages based on playback of recordings |
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 |
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 |
US5987523A (en) * | 1997-06-04 | 1999-11-16 | International Business Machines Corporation | Applet redirection for controlled access to non-orginating hosts |
US6675195B1 (en) * | 1997-06-11 | 2004-01-06 | Oracle International Corporation | Method and apparatus for reducing inefficiencies caused by sending multiple commands to a server |
US6453334B1 (en) * | 1997-06-16 | 2002-09-17 | Streamtheory, Inc. | Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching |
US6134591A (en) * | 1997-06-18 | 2000-10-17 | Client/Server Technologies, Inc. | Network security and integration method and system |
US7058720B1 (en) * | 1997-06-30 | 2006-06-06 | Microsoft Corporation | Geographical client distribution methods, systems and computer program products |
US6098108A (en) * | 1997-07-02 | 2000-08-01 | Sitara Networks, Inc. | Distributed directory for enhanced network communication |
US6195097B1 (en) * | 1997-07-08 | 2001-02-27 | International Business Machines Corporation | Web-based DCE management |
US6202199B1 (en) * | 1997-07-31 | 2001-03-13 | Mutek Solutions, Ltd. | System and method for remotely analyzing the execution of computer programs |
US6122643A (en) * | 1997-08-25 | 2000-09-19 | Synopsys, Inc. | Method and system for electronic article submission |
US7043537B1 (en) * | 1997-09-05 | 2006-05-09 | Cisco Technology, Inc | System and method for remote device management |
US6170012B1 (en) * | 1997-09-12 | 2001-01-02 | Lucent Technologies Inc. | Methods and apparatus for a computer network firewall with cache query processing |
US5950205A (en) * | 1997-09-25 | 1999-09-07 | Cisco Technology, Inc. | Data transmission over the internet using a cache memory file system |
US6043815A (en) * | 1997-09-30 | 2000-03-28 | The United States Of America As Represented By The Secretary Of The Navy | Method for using guiscript and providing a universal client device |
US6091412A (en) * | 1997-09-30 | 2000-07-18 | The United States Of America As Represented By The Secretary Of The Navy | Universal client device permitting a computer to receive and display information from several special applications |
US5946695A (en) * | 1997-10-20 | 1999-08-31 | Micron Electronics, Inc. | Method for viewing and providing to a user parameter-specific information |
US6631425B1 (en) | 1997-10-28 | 2003-10-07 | Microsoft Corporation | Just-in-time activation and as-soon-as-possible deactivation or server application components |
US5890161A (en) | 1997-10-28 | 1999-03-30 | Microsoft Corporation | Automatic transaction processing of component-based server applications |
US5958004A (en) | 1997-10-28 | 1999-09-28 | Microsoft Corporation | Disabling and enabling transaction committal in transactional application components |
US7076784B1 (en) | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
US6134594A (en) | 1997-10-28 | 2000-10-17 | Microsoft Corporation | Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects |
US6014666A (en) * | 1997-10-28 | 2000-01-11 | Microsoft Corporation | Declarative and programmatic access control of component-based server applications using roles |
US5953503A (en) * | 1997-10-29 | 1999-09-14 | Digital Equipment Corporation | Compression protocol with multiple preset dictionaries |
US6362836B1 (en) * | 1998-04-06 | 2002-03-26 | The Santa Cruz Operation, Inc. | Universal application server for providing applications on a variety of client devices in a client/server network |
US6925606B2 (en) | 1997-11-13 | 2005-08-02 | Tarantella, Inc. | Color quality and packet shaping features for displaying an application on a variety of client devices |
US6061518A (en) * | 1997-11-25 | 2000-05-09 | International Business Machines Corporation | Data processing system and method for debugging a JavaScript program |
US6574644B2 (en) * | 1997-11-26 | 2003-06-03 | Siemens Corporate Research, Inc | Automatic capturing of hyperlink specifications for multimedia documents |
US6202091B1 (en) * | 1997-12-08 | 2001-03-13 | Nortel Networks Limited | Process and apparatus for initializing a computer from power up |
US6567853B2 (en) * | 1997-12-08 | 2003-05-20 | International Business Machines Corporation | Scalable I/O system for the efficient transfer of storage device data by a non-server reconnection |
US6587121B1 (en) * | 1997-12-19 | 2003-07-01 | Unisys Corporation | Graphical table of contents for a help system |
US6260040B1 (en) * | 1998-01-05 | 2001-07-10 | International Business Machines Corporation | Shared file system for digital content |
AU2684999A (en) * | 1998-02-25 | 1999-09-15 | Wayne A. Little | Method of linking communications |
US6078921A (en) * | 1998-03-03 | 2000-06-20 | Trellix Corporation | Method and apparatus for providing a self-service file |
WO1999046672A1 (en) * | 1998-03-10 | 1999-09-16 | Ftp Software, Inc. | Direct network file system |
AU2954499A (en) * | 1998-03-19 | 1999-10-11 | Barak Cohen | A method and system for operating distributed hardware devices remotely on a network across different platforms |
US6085227A (en) * | 1998-03-20 | 2000-07-04 | International Business Machines Corporation | System and method for operating scientific instruments over wide area networks |
US6163878A (en) * | 1998-03-31 | 2000-12-19 | Jereme Kohl | Method and system for designing, generating and storing applications |
US7756892B2 (en) * | 2000-05-02 | 2010-07-13 | Digimarc Corporation | Using embedded data with file sharing |
US7689532B1 (en) | 2000-07-20 | 2010-03-30 | Digimarc Corporation | Using embedded data with file sharing |
US7372976B2 (en) | 1998-04-16 | 2008-05-13 | Digimarc Corporation | Content indexing and searching using content identifiers and associated metadata |
US6026437A (en) * | 1998-04-20 | 2000-02-15 | International Business Machines Corporation | Method and system in a computer network for bundling and launching hypertext files and associated subroutines within archive files |
US6202206B1 (en) * | 1998-05-14 | 2001-03-13 | International Business Machines Corporation | Simultaneous installation and configuration of programs and components into a network of server and client computers |
US6308212B1 (en) * | 1998-05-29 | 2001-10-23 | Hewlett-Packard Company | Web user interface session and sharing of session environment information |
US6765901B1 (en) * | 1998-06-11 | 2004-07-20 | Nvidia Corporation | TCP/IP/PPP modem |
US6591305B2 (en) * | 1998-06-30 | 2003-07-08 | Sun Microsystems, Inc. | Method and system for delivering data from a server object to a client object using a non-proprietary data transfer protocol |
US6157617A (en) * | 1998-07-31 | 2000-12-05 | Neo-Core, L.L.C. | Method and system of network packet accounting |
US6757705B1 (en) * | 1998-08-14 | 2004-06-29 | Microsoft Corporation | Method and system for client-side caching |
US6442620B1 (en) | 1998-08-17 | 2002-08-27 | Microsoft Corporation | Environment extensibility and automatic services for component applications using contexts, policies and activators |
US6425017B1 (en) | 1998-08-17 | 2002-07-23 | Microsoft Corporation | Queued method invocations on distributed component applications |
US6473791B1 (en) | 1998-08-17 | 2002-10-29 | Microsoft Corporation | Object load balancing |
US6370531B1 (en) * | 1998-08-21 | 2002-04-09 | International Business Machines Corporation | Method and computer program product for automatic conversion of data based on location extension |
US6963914B1 (en) * | 1998-09-01 | 2005-11-08 | Lucent Technologies Inc. | Method and apparatus for retrieving a network file using a logical reference |
US6327608B1 (en) | 1998-09-25 | 2001-12-04 | Microsoft Corporation | Server administration tool using remote file browser |
US6782431B1 (en) * | 1998-09-30 | 2004-08-24 | International Business Machines Corporation | System and method for dynamic selection of database application code execution on the internet with heterogenous clients |
US6553414B1 (en) * | 1998-10-02 | 2003-04-22 | Canon Kabushiki Kaisha | System used in plural information processing devices for commonly using peripheral device in network |
ATE273538T1 (en) | 1998-10-28 | 2004-08-15 | Verticalone Corp | APPARATUS AND METHOD FOR AUTOMATIC AGGREGATION AND SUPPLY OF ELECTRONIC PERSONAL INFORMATION OR DATA |
US6366915B1 (en) * | 1998-11-04 | 2002-04-02 | Micron Technology, Inc. | Method and system for efficiently retrieving information from multiple databases |
JP2000148503A (en) * | 1998-11-10 | 2000-05-30 | Mitsubishi Electric Corp | Dynamic module constituting system and its method and device |
US7506033B2 (en) * | 1998-11-12 | 2009-03-17 | International Business Machines Corporation | System and method for remotely accessing a client in a client server environment |
US6763370B1 (en) | 1998-11-16 | 2004-07-13 | Softricity, Inc. | Method and apparatus for content protection in a secure content delivery system |
US6374402B1 (en) * | 1998-11-16 | 2002-04-16 | Into Networks, Inc. | Method and apparatus for installation abstraction in a secure content delivery system |
US7017188B1 (en) | 1998-11-16 | 2006-03-21 | Softricity, Inc. | Method and apparatus for secure content delivery over broadband access networks |
EP1208482A1 (en) * | 1998-11-30 | 2002-05-29 | Siebel Systems, Inc. | Client server system with thin client architecture |
US6487665B1 (en) | 1998-11-30 | 2002-11-26 | Microsoft Corporation | Object security boundaries |
US6385724B1 (en) | 1998-11-30 | 2002-05-07 | Microsoft Corporation | Automatic object caller chain with declarative impersonation and transitive trust |
US6574736B1 (en) | 1998-11-30 | 2003-06-03 | Microsoft Corporation | Composable roles |
US8069407B1 (en) | 1998-12-08 | 2011-11-29 | Yodlee.Com, Inc. | Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes |
US7085997B1 (en) | 1998-12-08 | 2006-08-01 | Yodlee.Com | Network-based bookmark management and web-summary system |
JP2000172657A (en) * | 1998-12-08 | 2000-06-23 | Fujitsu Ltd | System and method for distributed processing, computer- readable recording medium with program for computer to execute the same method recorded therein, server device and client device |
US7672879B1 (en) | 1998-12-08 | 2010-03-02 | Yodlee.Com, Inc. | Interactive activity interface for managing personal data and performing transactions over a data packet network |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6928469B1 (en) | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
US6449652B1 (en) * | 1999-01-04 | 2002-09-10 | Emc Corporation | Method and apparatus for providing secure access to a computer system resource |
US7415102B2 (en) | 1999-01-22 | 2008-08-19 | Pointset Corporation | Method and apparatus for setting programmable features of an appliance |
US6680730B1 (en) * | 1999-01-25 | 2004-01-20 | Robert Shields | Remote control of apparatus using computer networks |
US6651087B1 (en) | 1999-01-28 | 2003-11-18 | Bellsouth Intellectual Property Corporation | Method and system for publishing an electronic file attached to an electronic mail message |
CN1108578C (en) * | 1999-01-28 | 2003-05-14 | 国际商业机器公司 | Method and apparatus of invoking and providing response for off-line customer |
US6601018B1 (en) | 1999-02-04 | 2003-07-29 | International Business Machines Corporation | Automatic test framework system and method in software component testing |
US6510402B1 (en) * | 1999-02-04 | 2003-01-21 | International Business Machines Corporation | Component testing with a client system in an integrated test environment network |
US6574578B1 (en) * | 1999-02-04 | 2003-06-03 | International Business Machines Corporation | Server system for coordinating utilization of an integrated test environment for component testing |
US6922708B1 (en) | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
US6748455B1 (en) | 1999-02-23 | 2004-06-08 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events with filtering |
US6829770B1 (en) | 1999-02-23 | 2004-12-07 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events |
US6594690B2 (en) * | 1999-02-24 | 2003-07-15 | Hewlett-Packard Development Company, L.P. | Network peripheral device driver installer |
WO2000051394A1 (en) * | 1999-02-24 | 2000-08-31 | Neoplanet, Inc. | Network browser method and system for controlling browser operation |
US6487587B1 (en) * | 1999-03-01 | 2002-11-26 | Sun Microsystems, Inc. | Method and system for data processing by proxy |
US6584507B1 (en) * | 1999-03-02 | 2003-06-24 | Cisco Technology, Inc. | Linking external applications to a network management system |
US6804718B1 (en) * | 1999-03-18 | 2004-10-12 | Kent Ridge Digital Labs | Computing system and method for migrating a mobile computing environment |
SG94330A1 (en) * | 1999-07-24 | 2003-02-18 | Kent Ridge Digital Labs | Mobile computing system and method for a network |
US6519628B1 (en) | 1999-03-24 | 2003-02-11 | Live Person, Inc. | Method and system for customer service using a packet switched network |
US6446255B1 (en) * | 1999-03-29 | 2002-09-03 | International Business Machines Corporation | Global registry object for mapping registry functions and registry equivalent functions across multiple operating systems in a cross-platform program |
WO2000060466A1 (en) * | 1999-04-05 | 2000-10-12 | Manage.Com | Management agent and system including the same |
US7370071B2 (en) | 2000-03-17 | 2008-05-06 | Microsoft Corporation | Method for serving third party software applications from servers to client computers |
US7730169B1 (en) | 1999-04-12 | 2010-06-01 | Softricity, Inc. | Business method and system for serving third party software applications |
US7526481B1 (en) * | 1999-04-19 | 2009-04-28 | Oracle International Corporation | Web servers with queryable dynamic caches |
US6591279B1 (en) | 1999-04-23 | 2003-07-08 | International Business Machines Corporation | System and method for computer-based notifications of real-world events using digital images |
US8099758B2 (en) | 1999-05-12 | 2012-01-17 | Microsoft Corporation | Policy based composite file system and method |
AU5025600A (en) | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Process control configuration system with parameterized objects |
US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
US7752535B2 (en) | 1999-06-01 | 2010-07-06 | Yodlec.com, Inc. | Categorization of summarized information |
US6788980B1 (en) | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
US6889256B1 (en) * | 1999-06-11 | 2005-05-03 | Microsoft Corporation | System and method for converting and reconverting between file system requests and access requests of a remote transfer protocol |
KR100294889B1 (en) * | 1999-06-19 | 2001-07-12 | 윤종용 | Slave device and data sharing method |
US7058817B1 (en) * | 1999-07-02 | 2006-06-06 | The Chase Manhattan Bank | System and method for single sign on process for websites with multiple applications and services |
US6584497B1 (en) | 1999-07-28 | 2003-06-24 | International Business Machines Corporation | Method, system, and program for returning a file requested through a network connection |
US7280995B1 (en) | 1999-08-05 | 2007-10-09 | Oracle International Corporation | On-the-fly format conversion |
US8335775B1 (en) | 1999-08-05 | 2012-12-18 | Oracle International Corporation | Versioning in internet file system |
US6549916B1 (en) | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
US7882426B1 (en) * | 1999-08-09 | 2011-02-01 | Cognex Corporation | Conditional cell execution in electronic spreadsheets |
US6463343B1 (en) | 1999-08-10 | 2002-10-08 | International Business Machines Corporation | System and method for controlling remote devices from a client computer using digital images |
US7483967B2 (en) * | 1999-09-01 | 2009-01-27 | Ximeta Technology, Inc. | Scalable server architecture based on asymmetric 3-way TCP |
JP2001075793A (en) * | 1999-09-03 | 2001-03-23 | Fuji Xerox Co Ltd | Remote procedure call expression generation system |
US6356933B2 (en) | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
US6748555B1 (en) * | 1999-09-09 | 2004-06-08 | Microsoft Corporation | Object-based software management |
US6687745B1 (en) * | 1999-09-14 | 2004-02-03 | Droplet, Inc | System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection |
US6434745B1 (en) | 1999-09-15 | 2002-08-13 | Direct Business Technologies, Inc. | Customized web browsing and marketing software with local events statistics database |
US6675205B2 (en) * | 1999-10-14 | 2004-01-06 | Arcessa, Inc. | Peer-to-peer automated anonymous asynchronous file sharing |
US6895591B1 (en) * | 1999-10-18 | 2005-05-17 | Unisys Corporation | Virtual file system and method |
WO2001033383A1 (en) * | 1999-11-01 | 2001-05-10 | Mangosoft Corporation | Internet-based shared file service with native pc client access and semantics and distributed version control |
US6910082B1 (en) | 1999-11-18 | 2005-06-21 | International Business Machines Corporation | Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server |
US6633919B1 (en) | 1999-11-18 | 2003-10-14 | International Business Machines Corporation | Method, system and program product for managing the flow of data between senders and receivers of a computing environment |
US6385701B1 (en) | 1999-11-19 | 2002-05-07 | International Business Machines Corporation | Method, system and program products for sharing data between varied clients using token management |
US6976258B1 (en) | 1999-11-30 | 2005-12-13 | Ensim Corporation | Providing quality of service guarantees to virtual hosts |
US20010003192A1 (en) * | 1999-12-07 | 2001-06-07 | Ramsay Nigel James | Servicing of linked applications in a client-server environment |
US6658452B1 (en) * | 1999-12-09 | 2003-12-02 | International Business Machines Corporation | Schemes for selecting and passing an application from an application provider to an application service provider |
US6421673B1 (en) | 1999-12-13 | 2002-07-16 | Novient, Inc. | Method for mapping applications and or attributes in a distributed network environment |
US6920636B1 (en) * | 1999-12-15 | 2005-07-19 | Microsoft Corporation | Queued component interface passing for results outflow from queued method invocations |
US8429248B1 (en) * | 1999-12-17 | 2013-04-23 | Intel Corporation | Distributed file system including multicast retrieval |
GB2373902B (en) * | 1999-12-21 | 2004-10-20 | Intel Corp | Architecture for dynamically exposing hardware capabilities using a page description language |
US6877023B1 (en) * | 2000-01-28 | 2005-04-05 | Softwired, Inc. | Messaging system for delivering data in the form of portable message formats between message clients |
US6529985B1 (en) | 2000-02-04 | 2003-03-04 | Ensim Corporation | Selective interception of system calls |
US6711607B1 (en) | 2000-02-04 | 2004-03-23 | Ensim Corporation | Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service |
US6560613B1 (en) * | 2000-02-08 | 2003-05-06 | Ensim Corporation | Disambiguating file descriptors |
US6754716B1 (en) | 2000-02-11 | 2004-06-22 | Ensim Corporation | Restricting communication between network devices on a common network |
US7343421B1 (en) | 2000-02-14 | 2008-03-11 | Digital Asset Enterprises Llc | Restricting communication of selected processes to a set of specific network addresses |
US20020087949A1 (en) * | 2000-03-03 | 2002-07-04 | Valery Golender | System and method for software diagnostics using a combination of visual and dynamic tracing |
US7065547B2 (en) * | 2000-03-09 | 2006-06-20 | Persels Conrad G | Integrated on-line system with enchanced data transfer protocol |
US6948003B1 (en) | 2000-03-15 | 2005-09-20 | Ensim Corporation | Enabling a service provider to provide intranet services |
US7418439B2 (en) * | 2000-03-17 | 2008-08-26 | Twin Peaks Software, Inc. | Mirror file system |
US7142691B2 (en) | 2000-03-18 | 2006-11-28 | Digimarc Corporation | Watermark embedding functions in rendering description files |
US7188175B1 (en) | 2000-04-06 | 2007-03-06 | Web.Com, Inc. | Method and system for communicating between clients in a computer network |
EP1146422A1 (en) * | 2000-04-13 | 2001-10-17 | Abb Research Ltd. | Method to set up a communications link between an embedded server and a client computer |
US20020007394A1 (en) * | 2000-04-18 | 2002-01-17 | Bertolus Phillip Andre | Retrieving and processing stroed information using a distributed network of remote computers |
US7111168B2 (en) * | 2000-05-01 | 2006-09-19 | Digimarc Corporation | Digital watermarking systems |
US6785713B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for communicating among a network of servers utilizing a transport mechanism |
US6785726B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for delivering local and remote server events in a similar fashion |
US6789112B1 (en) | 2000-05-08 | 2004-09-07 | Citrix Systems, Inc. | Method and apparatus for administering a server having a subsystem in communication with an event channel |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
US6985937B1 (en) | 2000-05-11 | 2006-01-10 | Ensim Corporation | Dynamically modifying the resources of a virtual server |
US7185005B1 (en) | 2000-05-12 | 2007-02-27 | Oracle International Corporation | Nested transactions in a file system |
US6578036B1 (en) * | 2000-05-15 | 2003-06-10 | Sun Microsystems, Inc. | Mechanism for performing polling in a system |
US6907421B1 (en) | 2000-05-16 | 2005-06-14 | Ensim Corporation | Regulating file access rates according to file type |
US8145724B1 (en) | 2000-05-25 | 2012-03-27 | International Business Machines Corporation | Method of, system for, and computer program product for providing a data structure for configuring connections between a local workstation file system and a remote host file system |
US6658461B1 (en) * | 2000-05-25 | 2003-12-02 | International Business Machines Corporation | Method of, system for, and computer program product for providing a user interface for configuring connections between a local workstation file system and a remote host file system |
US6961726B1 (en) | 2000-05-25 | 2005-11-01 | International Business Machines Corporation | Method of, system for, and computer program product for storing, retrieving, and using remote host file attributes on a local file system |
US7028268B1 (en) | 2000-06-15 | 2006-04-11 | Conley Jr Ralph F | Multiple destination banners |
US7017187B1 (en) | 2000-06-20 | 2006-03-21 | Citigroup Global Markets, Inc. | Method and system for file blocking in an electronic messaging system |
US6996599B1 (en) * | 2000-06-21 | 2006-02-07 | Microsoft Corporation | System and method providing multi-tier applications architecture |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
JP4950389B2 (en) * | 2000-06-21 | 2012-06-13 | マイクロソフト コーポレーション | Network-based application, architecture and system for processing it, and method for executing the same |
US7155667B1 (en) | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7191394B1 (en) | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US6999191B2 (en) * | 2000-06-22 | 2006-02-14 | Konica Corporation | Administrating system of image forming apparatus and image forming apparatus |
US7325009B1 (en) | 2000-06-30 | 2008-01-29 | Brightpoint, Inc. | Customer-controlled inventory access |
US6721779B1 (en) * | 2000-07-07 | 2004-04-13 | Softwired Ag | Messaging proxy system |
US7143024B1 (en) | 2000-07-07 | 2006-11-28 | Ensim Corporation | Associating identifiers with virtual processes |
US7245291B2 (en) | 2000-07-11 | 2007-07-17 | Imran Sharif | System and method for internet appliance data entry and navigation |
US20030115167A1 (en) * | 2000-07-11 | 2003-06-19 | Imran Sharif | Web browser implemented in an Internet appliance |
US20020078445A1 (en) * | 2000-07-11 | 2002-06-20 | Imran Sharif | Internet appliance for interactive audio/video display using a remote control unit for user input |
US6980313B2 (en) * | 2000-07-11 | 2005-12-27 | Imran Sharif | Fax-compatible internet appliance |
US6941351B2 (en) | 2000-07-11 | 2005-09-06 | Microsoft Corporation | Application program caching |
KR100865249B1 (en) * | 2000-07-20 | 2008-10-27 | 디지맥 코포레이션 | Using embedded data with file sharing |
US20020013809A1 (en) * | 2000-07-31 | 2002-01-31 | Nobuyuki Hashimoto | Processing device, remotely operated controlling device, remotely operated system and recording medium |
US6909691B1 (en) | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
US8600783B2 (en) | 2000-08-18 | 2013-12-03 | The Crawford Group, Inc. | Business to business computer system for communicating and processing rental car reservations using web services |
US7899690B1 (en) | 2000-08-18 | 2011-03-01 | The Crawford Group, Inc. | Extended web enabled business to business computer system for rental vehicle services |
US6842770B1 (en) * | 2000-08-18 | 2005-01-11 | Apple Computer, Inc. | Method and system for seamlessly accessing remotely stored files |
AU2001289168A1 (en) * | 2000-08-25 | 2002-03-04 | Truedisk.Com, Inc. | A secure distributed server in an insecure network |
US7035912B2 (en) * | 2000-08-28 | 2006-04-25 | Abaco.P.R., Inc. | Method and apparatus allowing a limited client device to use the full resources of a networked server |
US20020059440A1 (en) * | 2000-09-06 | 2002-05-16 | Hudson Michael D. | Client-side last-element cache network architecture |
US7283976B2 (en) * | 2001-03-22 | 2007-10-16 | International Business Machines Corporation | System and method for invoice imaging through negative confirmation process |
US7197480B1 (en) * | 2000-09-07 | 2007-03-27 | International Business Machines Corporation | System and method for front end business logic and validation |
US7386495B2 (en) * | 2001-03-23 | 2008-06-10 | International Business Machines Corporation | System and method for processing tax codes by company group |
US7356496B2 (en) * | 2001-03-22 | 2008-04-08 | International Business Machines Corporation | System and method for synchronizing ledger accounts by company group |
JP2002083309A (en) * | 2000-09-07 | 2002-03-22 | Hitachi Ltd | Service offering method, its executing device, storage medium recording its processing program |
US8027892B2 (en) * | 2001-03-28 | 2011-09-27 | International Business Machines Corporation | System and method for automating invoice processing with positive confirmation |
US6947063B1 (en) * | 2000-09-07 | 2005-09-20 | International Business Machines Corporation | System and method for data transfer with respect to external applications |
US7155403B2 (en) * | 2001-03-22 | 2006-12-26 | International Business Machines Corporation | System and method for leveraging procurement across companies and company groups |
US7107587B1 (en) * | 2000-09-18 | 2006-09-12 | Microsoft Corporation | Access redirector and entry reflector |
US20020111956A1 (en) * | 2000-09-18 | 2002-08-15 | Boon-Lock Yeo | Method and apparatus for self-management of content across multiple storage systems |
US6732211B1 (en) | 2000-09-18 | 2004-05-04 | Ensim Corporation | Intercepting I/O multiplexing operations involving cross-domain file descriptor sets |
JP2002099495A (en) * | 2000-09-26 | 2002-04-05 | Fujitsu Ltd | Client server system, server and client |
US6691113B1 (en) * | 2000-09-28 | 2004-02-10 | Curl Corporation | Persistent data storage for client computer software programs |
JP4902904B2 (en) * | 2000-10-06 | 2012-03-21 | ソニー株式会社 | Information processing method and medium storing program |
US7792923B2 (en) | 2000-10-13 | 2010-09-07 | Zhe Khi Pak | Disk system adapted to be directly attached to network |
US7013455B1 (en) * | 2000-10-19 | 2006-03-14 | International Business Machines Corporation | System for automatically altering environment variable to run proper executable file by removing references to all except one duplicate file in the path sequence |
US9819561B2 (en) | 2000-10-26 | 2017-11-14 | Liveperson, Inc. | System and methods for facilitating object assignments |
US8868448B2 (en) | 2000-10-26 | 2014-10-21 | Liveperson, Inc. | Systems and methods to facilitate selling of products and services |
US7346842B1 (en) | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
US7051084B1 (en) | 2000-11-02 | 2006-05-23 | Citrix Systems, Inc. | Methods and apparatus for regenerating and transmitting a partial page |
US6959320B2 (en) * | 2000-11-06 | 2005-10-25 | Endeavors Technology, Inc. | Client-side performance optimization system for streamed applications |
US8831995B2 (en) | 2000-11-06 | 2014-09-09 | Numecent Holdings, Inc. | Optimized server for streamed applications |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US20020083183A1 (en) * | 2000-11-06 | 2002-06-27 | Sanjay Pujare | Conventionally coded application conversion system for streamed delivery and execution |
US6918113B2 (en) * | 2000-11-06 | 2005-07-12 | Endeavors Technology, Inc. | Client installation and execution system for streamed applications |
US20020087883A1 (en) * | 2000-11-06 | 2002-07-04 | Curt Wohlgemuth | Anti-piracy system for remotely served computer applications |
US7043524B2 (en) * | 2000-11-06 | 2006-05-09 | Omnishift Technologies, Inc. | Network caching system for streamed applications |
US6766333B1 (en) | 2000-11-08 | 2004-07-20 | Citrix Systems, Inc. | Method and apparatus for synchronizing a user interface element displayed on a client and a software application component executing on a web server |
US8312429B2 (en) * | 2000-11-10 | 2012-11-13 | Oracle International Corporation | Cell based data processing |
WO2002049278A2 (en) * | 2000-11-22 | 2002-06-20 | Azoth Technologies, Inc. | Method, architecture, and apparatus for dynamic content translation and switching |
US7778981B2 (en) * | 2000-12-01 | 2010-08-17 | Netapp, Inc. | Policy engine to control the servicing of requests received by a storage server |
US7346928B1 (en) | 2000-12-01 | 2008-03-18 | Network Appliance, Inc. | Decentralized appliance virus scanning |
US7058648B1 (en) | 2000-12-01 | 2006-06-06 | Oracle International Corporation | Hierarchy-based secured document repository |
US7814194B2 (en) * | 2000-12-07 | 2010-10-12 | International Business Machines Corporation | Method and system for machine-aided rule construction for event management |
US7631054B2 (en) * | 2000-12-07 | 2009-12-08 | International Business Machines Corporation | Method and system for generating list of operating systems for a target device |
US7089281B1 (en) | 2000-12-08 | 2006-08-08 | Sun Microsystems, Inc. | Load balancing in a dynamic session redirector |
US20020105548A1 (en) | 2000-12-12 | 2002-08-08 | Richard Hayton | Methods and apparatus for creating a user interface using property paths |
US7451196B1 (en) | 2000-12-15 | 2008-11-11 | Stream Theory, Inc. | Method and system for executing a software application in a virtual environment |
US6769118B2 (en) * | 2000-12-19 | 2004-07-27 | International Business Machines Corporation | Dynamic, policy based management of administrative procedures within a distributed computing environment |
US6965683B2 (en) | 2000-12-21 | 2005-11-15 | Digimarc Corporation | Routing networks for use with watermark systems |
US8103877B2 (en) | 2000-12-21 | 2012-01-24 | Digimarc Corporation | Content identification and electronic tickets, coupons and credits |
US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
US8312435B2 (en) | 2000-12-26 | 2012-11-13 | Identify Software Ltd. (IL) | System and method for conditional tracing of computer programs |
US7099849B1 (en) * | 2000-12-28 | 2006-08-29 | Rightsline, Inc. | Integrated media management and rights distribution apparatus |
US7092953B1 (en) | 2000-12-28 | 2006-08-15 | Rightlsline, Inc. | Apparatus and methods for intellectual property database navigation |
KR100372915B1 (en) * | 2001-01-02 | 2003-02-19 | 김한규 | Network-attached disk system |
US20020093161A1 (en) * | 2001-01-12 | 2002-07-18 | Enor Corporation | Scooter |
US20020133624A1 (en) * | 2001-01-16 | 2002-09-19 | Tony Hashem | System and process for routing information in a data processing system |
US6582078B2 (en) | 2001-02-27 | 2003-06-24 | Barton L. Halpern | Method and system for planning corrective refractive surgery |
JP4291467B2 (en) * | 2001-03-01 | 2009-07-08 | 株式会社ソニー・コンピュータエンタテインメント | Entertainment device, menu display method, and information recording medium |
US7243077B2 (en) * | 2001-03-02 | 2007-07-10 | International Business Machines Corporation | Method and computer program product for managing an internet trading network |
US7080373B2 (en) * | 2001-03-07 | 2006-07-18 | Freescale Semiconductor, Inc. | Method and device for creating and using pre-internalized program files |
US6618736B1 (en) | 2001-03-09 | 2003-09-09 | Ensim Corporation | Template-based creation and archival of file systems |
US20020138603A1 (en) * | 2001-03-20 | 2002-09-26 | Robohm Kurt W. | Systems and methods for updating IP communication service attributes |
US8660017B2 (en) | 2001-03-20 | 2014-02-25 | Verizon Business Global Llc | Systems and methods for updating IP communication service attributes using an LDAP |
US8200577B2 (en) * | 2001-03-20 | 2012-06-12 | Verizon Business Global Llc | Systems and methods for retrieving and modifying data records for rating and billing purposes |
US7047417B2 (en) * | 2001-03-20 | 2006-05-16 | Leskuski Walter J | Systems and methods for accessing reporting services |
US7043480B2 (en) * | 2001-03-20 | 2006-05-09 | Mci, Inc. | Systems and methods for communicating from an integration platform to a lightweight directory access protocol based database |
US8417632B2 (en) * | 2001-03-20 | 2013-04-09 | Verizon Business Global Llc | Systems and methods for interfacing with a billing and account management unit |
US8195738B2 (en) * | 2001-03-20 | 2012-06-05 | Verizon Business Global Llc | Systems and methods for communicating from an integration platform to a profile management server |
US7054866B2 (en) | 2001-03-20 | 2006-05-30 | Mci, Inc. | Systems and methods for communicating from an integration platform to a provisioning server |
US7039041B2 (en) * | 2001-03-20 | 2006-05-02 | Robohm Kurt W | Operational support system for telecommunication services |
US6996832B2 (en) * | 2001-05-30 | 2006-02-07 | Bea Systems, Inc. | System and method for software component plug-in framework |
US7099663B2 (en) | 2001-05-31 | 2006-08-29 | Qualcomm Inc. | Safe application distribution and execution in a wireless environment |
US8056009B2 (en) * | 2001-06-02 | 2011-11-08 | Cognex Technology And Investment Corporation | System for initiating communication between a user interface and a vision processor |
US20020184347A1 (en) * | 2001-06-02 | 2002-12-05 | Steven Olson | Configuration of a machine vision system over a network |
US7194513B2 (en) * | 2001-07-08 | 2007-03-20 | Imran Sharif | System and method for using an internet appliance to send/receive digital content files as E-mail attachments |
US7783761B2 (en) * | 2001-07-16 | 2010-08-24 | Zhe Khi Pak | Scheme for dynamically connecting I/O devices through network |
KR20010088528A (en) * | 2001-08-02 | 2001-09-28 | 전대식 | A portable storage device and Method for using a remote storage device in the network as auxiliary memory of the local computer system by using the same device |
US7062660B2 (en) * | 2001-08-06 | 2006-06-13 | International Business Machines Corporation | Method and apparatus for controlling the performance of a file system mount operation by a user lacking superuser authority |
US7769823B2 (en) * | 2001-09-28 | 2010-08-03 | F5 Networks, Inc. | Method and system for distributing requests for content |
US20050149682A1 (en) * | 2001-10-09 | 2005-07-07 | Han-Gyoo Kim | Virtual multiple removable media jukebox |
US20030083758A1 (en) * | 2001-11-01 | 2003-05-01 | Williamson Charles G. | Remote updating of intelligent household appliances |
US20030083028A1 (en) * | 2001-11-01 | 2003-05-01 | Williamson Charles G. | Remote programming of radio preset stations over a network |
US20030080113A1 (en) * | 2001-11-01 | 2003-05-01 | Williamson Charles G. | Intelligent oven appliance |
US7171468B2 (en) * | 2001-11-10 | 2007-01-30 | Kabushiki Kaisha Toshiba | System and method for accessing a document management repository |
US6606685B2 (en) * | 2001-11-15 | 2003-08-12 | Bmc Software, Inc. | System and method for intercepting file system writes |
US8001052B2 (en) | 2001-12-10 | 2011-08-16 | Dunkeld Bryan C | System and method for unique digital asset identification and transaction management |
US20030126555A1 (en) * | 2002-01-03 | 2003-07-03 | International Business Machines Corporation | Enhanced attribute prompting in browser clients |
JP2003215880A (en) * | 2002-01-23 | 2003-07-30 | Oki Data Corp | Color image recorder |
US20030145230A1 (en) * | 2002-01-31 | 2003-07-31 | Huimin Chiu | System for exchanging data utilizing remote direct memory access |
US20040064565A1 (en) * | 2002-02-06 | 2004-04-01 | International Business Machines Corporation | Obtaining location information using a rejection model |
US7010762B2 (en) * | 2002-02-27 | 2006-03-07 | At&T Corp. | Pre-loading content to caches for information appliances |
US8671213B2 (en) | 2002-03-14 | 2014-03-11 | Citrix Systems, Inc. | Methods and apparatus for generating graphical and media displays at a client |
US7376695B2 (en) | 2002-03-14 | 2008-05-20 | Citrix Systems, Inc. | Method and system for generating a graphical display for a remote terminal session |
US8135843B2 (en) | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
US7191217B2 (en) * | 2002-04-10 | 2007-03-13 | Nippon Telegraph And Telephone Corporation | Distributed server-based collaborative computing |
US7499983B2 (en) * | 2002-05-06 | 2009-03-03 | Micron Technology, Inc. | Web dispatch service |
US20040039612A1 (en) | 2002-06-14 | 2004-02-26 | Neil Fitzgerald | Method and apparatus for customer direct on-line reservation of rental vehicles |
US8108231B2 (en) | 2002-06-14 | 2012-01-31 | The Crawford Group, Inc. | Method and apparatus for improved customer direct on-line reservation of rental vehicles |
US7062764B2 (en) * | 2002-06-17 | 2006-06-13 | Microsoft Corporation | System and method for manipulating offline software |
CA2391756A1 (en) * | 2002-06-26 | 2003-12-26 | Ibm Canada Limited-Ibm Canada Limitee | Accessing a remote iseries or as/400 computer system from the eclipse integrated development environment |
US7249313B2 (en) | 2002-06-26 | 2007-07-24 | International Business Machines Corporation | Creating and utilizing a wizard to capture an application's interdependencies between web pages and data accesses for running the application's downloadable dynamic web pages off-line |
CA2391733A1 (en) * | 2002-06-26 | 2003-12-26 | Ibm Canada Limited-Ibm Canada Limitee | Framework to access a remote system from an integrated development environment |
US7200645B2 (en) * | 2002-06-26 | 2007-04-03 | International Business Machines Corporation | Running dynamic web pages off-line with a wizard |
US6947940B2 (en) * | 2002-07-30 | 2005-09-20 | International Business Machines Corporation | Uniform name space referrals with location independence |
US7565413B1 (en) * | 2002-08-05 | 2009-07-21 | Cisco Technology, Inc. | Content request redirection from a wed protocol to a file protocol |
US7062517B2 (en) * | 2002-08-14 | 2006-06-13 | Hitachi, Ltd. | Method and apparatus for centralized computer management |
US7178139B2 (en) * | 2002-08-27 | 2007-02-13 | Delphi Technologies, Inc. | Executable file system for an embedded computer |
JP4250933B2 (en) * | 2002-09-04 | 2009-04-08 | コニカミノルタビジネステクノロジーズ株式会社 | Data management system and data management program |
US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
US20040073605A1 (en) * | 2002-10-15 | 2004-04-15 | Conley, Ralph F. | Multi-tier web publishing software and system |
US7386839B1 (en) | 2002-11-06 | 2008-06-10 | Valery Golender | System and method for troubleshooting software configuration problems using application tracing |
US20040133699A1 (en) * | 2002-12-04 | 2004-07-08 | Tony Hashem | System and method for performing data transfer |
US8266005B2 (en) | 2003-01-17 | 2012-09-11 | Uniloc Luxembourg | Automated pricing system |
US7035860B2 (en) * | 2003-01-17 | 2006-04-25 | International Business Machines Corporation | Trusted access by an extendible framework method, system, article of manufacture, and computer program product |
US20040177335A1 (en) * | 2003-03-04 | 2004-09-09 | International Business Machines Corporation | Enterprise services application program development model |
US7349943B2 (en) * | 2003-03-12 | 2008-03-25 | Microsoft Corporation | Protocol-independent client-side caching system and method |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US8032866B1 (en) | 2003-03-27 | 2011-10-04 | Identify Software Ltd. | System and method for troubleshooting runtime software problems using application learning |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US20050050159A1 (en) * | 2003-09-03 | 2005-03-03 | Zeev Suraski | Remote debugging of web applications |
US8694510B2 (en) | 2003-09-04 | 2014-04-08 | Oracle International Corporation | Indexing XML documents efficiently |
US8229932B2 (en) | 2003-09-04 | 2012-07-24 | Oracle International Corporation | Storing XML documents efficiently in an RDBMS |
US7457880B1 (en) | 2003-09-26 | 2008-11-25 | Ximeta Technology, Inc. | System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network |
US7558842B2 (en) * | 2003-10-17 | 2009-07-07 | E2Open, Inc. | Large file transfer in a design collaboration environment |
US20050091226A1 (en) * | 2003-10-23 | 2005-04-28 | Yun Lin | Persistent caching directory level support |
WO2005043279A2 (en) * | 2003-10-31 | 2005-05-12 | Disksites Research And Development Ltd. | Device, system and method for storage and access of computer files |
US7475125B2 (en) * | 2003-11-24 | 2009-01-06 | Microsoft Corporation | Seamless discovery of workstation-installed remote applications from an extranet |
US7590713B2 (en) * | 2003-11-24 | 2009-09-15 | Microsoft Corporation | Presenting a merged view of remote application shortcuts from multiple providers |
US7720906B2 (en) * | 2003-11-24 | 2010-05-18 | Microsoft Corporation | Web service for remote application discovery |
KR100550288B1 (en) * | 2003-12-02 | 2006-02-08 | 주식회사 하우리 | Method for recovering data in ext2 file system, and computer-readable storage medium recorded with data-recover program |
US20070118869A1 (en) * | 2003-12-09 | 2007-05-24 | Lee Ted Y | "Method and a system for controlling, navigating and managing data files, url's and other file system objects using code-based commands, in a computer system or an appliance enhanced by a computer system" |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
US7664836B2 (en) * | 2004-02-17 | 2010-02-16 | Zhe Khi Pak | Device and method for booting an operation system for a computer from a passive directly attached network device |
US20050193017A1 (en) * | 2004-02-19 | 2005-09-01 | Han-Gyoo Kim | Portable multimedia player/recorder that accesses data contents from and writes to networked device |
US20060069884A1 (en) * | 2004-02-27 | 2006-03-30 | Han-Gyoo Kim | Universal network to device bridge chip that enables network directly attached device |
US7761923B2 (en) | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
US20050194456A1 (en) | 2004-03-02 | 2005-09-08 | Tessier Patrick C. | Wireless controller with gateway |
US7779130B1 (en) * | 2004-04-02 | 2010-08-17 | Microsoft Corporation | Method and apparatus to transfer a new data object from a data acquisition device to a user storage device |
US7930277B2 (en) | 2004-04-21 | 2011-04-19 | Oracle International Corporation | Cost-based optimizer for an XML data repository within a database |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US7707618B1 (en) * | 2004-05-28 | 2010-04-27 | Netapp, Inc. | System and method for implementing access controls using file protocol rule sets |
US7827539B1 (en) | 2004-06-25 | 2010-11-02 | Identify Software Ltd. | System and method for automated tuning of program execution tracing |
US7746900B2 (en) * | 2004-07-22 | 2010-06-29 | Zhe Khi Pak | Low-level communication layers and device employing same |
US7860943B2 (en) * | 2004-08-23 | 2010-12-28 | Zhe Khi Pak | Enhanced network direct attached storage controller |
US20060067356A1 (en) * | 2004-08-23 | 2006-03-30 | Han-Gyoo Kim | Method and apparatus for network direct attached storage |
US20060048136A1 (en) * | 2004-08-25 | 2006-03-02 | Vries Jeff D | Interception-based resource detection system |
US8805934B2 (en) | 2004-09-02 | 2014-08-12 | Vmware, Inc. | System and method for enabling an external-system view of email attachments |
US7711835B2 (en) | 2004-09-30 | 2010-05-04 | Citrix Systems, Inc. | Method and apparatus for reducing disclosure of proprietary data in a networked environment |
US8613048B2 (en) | 2004-09-30 | 2013-12-17 | Citrix Systems, Inc. | Method and apparatus for providing authorized remote access to application sessions |
US7748032B2 (en) * | 2004-09-30 | 2010-06-29 | Citrix Systems, Inc. | Method and apparatus for associating tickets in a ticket hierarchy |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US20060074933A1 (en) * | 2004-09-30 | 2006-04-06 | Microsoft Corporation | Workflow interaction |
US7240162B2 (en) | 2004-10-22 | 2007-07-03 | Stream Theory, Inc. | System and method for predictive streaming |
US20060095470A1 (en) * | 2004-11-04 | 2006-05-04 | Cochran Robert A | Managing a file in a network environment |
US8359591B2 (en) | 2004-11-13 | 2013-01-22 | Streamtheory, Inc. | Streaming from a media device |
US7712022B2 (en) * | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7721190B2 (en) | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US8458467B2 (en) * | 2005-06-21 | 2013-06-04 | Cisco Technology, Inc. | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element |
US7627547B2 (en) | 2004-11-29 | 2009-12-01 | Oracle International Corporation | Processing path-based database operations |
US8141106B2 (en) * | 2004-12-01 | 2012-03-20 | Computer Associates Think, Inc. | Managing elements residing on legacy systems |
GB2421095A (en) * | 2004-12-10 | 2006-06-14 | Hewlett Packard Development Co | Facilitating access to an electronic datum in a file system |
US8131766B2 (en) | 2004-12-15 | 2012-03-06 | Oracle International Corporation | Comprehensive framework to integrate business logic into a repository |
US7921076B2 (en) | 2004-12-15 | 2011-04-05 | Oracle International Corporation | Performing an action in response to a file system event |
US20060136389A1 (en) * | 2004-12-22 | 2006-06-22 | Cover Clay H | System and method for invocation of streaming application |
US20060168269A1 (en) * | 2004-12-30 | 2006-07-27 | Microsoft Corporation | Bus abstraction |
US7849257B1 (en) | 2005-01-06 | 2010-12-07 | Zhe Khi Pak | Method and apparatus for storing and retrieving data |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US8024568B2 (en) | 2005-01-28 | 2011-09-20 | Citrix Systems, Inc. | Method and system for verification of an endpoint security scan |
US20060190251A1 (en) * | 2005-02-24 | 2006-08-24 | Johannes Sandvall | Memory usage in a multiprocessor system |
US20060200570A1 (en) * | 2005-03-02 | 2006-09-07 | Nokia Corporation | Discovering and mounting network file systems via ad hoc, peer-to-peer networks |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US8499023B1 (en) * | 2005-03-23 | 2013-07-30 | Oracle America, Inc. | Servlet-based grid computing environment using grid engines and switches to manage resources |
WO2006102621A2 (en) | 2005-03-23 | 2006-09-28 | Stream Theory, Inc. | System and method for tracking changes to files in streaming applications |
US8024523B2 (en) | 2007-11-07 | 2011-09-20 | Endeavors Technologies, Inc. | Opportunistic block transmission with time constraints |
US20060218165A1 (en) * | 2005-03-23 | 2006-09-28 | Vries Jeffrey De | Explicit overlay integration rules |
US9547780B2 (en) | 2005-03-28 | 2017-01-17 | Absolute Software Corporation | Method for determining identification of an electronic device |
US7673228B2 (en) | 2005-03-30 | 2010-03-02 | Microsoft Corporation | Data-driven actions for network forms |
US8010515B2 (en) * | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
GB2426417A (en) * | 2005-05-16 | 2006-11-22 | Onshare Ltd | HTTP tunnelling |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US20090076821A1 (en) * | 2005-08-19 | 2009-03-19 | Gracenote, Inc. | Method and apparatus to control operation of a playback device |
US20070055740A1 (en) * | 2005-08-23 | 2007-03-08 | Luciani Luis E | System and method for interacting with a remote computer |
US8738732B2 (en) | 2005-09-14 | 2014-05-27 | Liveperson, Inc. | System and method for performing follow up based on user interactions |
US9432468B2 (en) | 2005-09-14 | 2016-08-30 | Liveperson, Inc. | System and method for design and dynamic generation of a web page |
US8271611B2 (en) * | 2005-09-28 | 2012-09-18 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system of invoking MIDlets from a web browser on a local device |
US8073841B2 (en) | 2005-10-07 | 2011-12-06 | Oracle International Corporation | Optimizing correlated XML extracts |
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 |
US8356053B2 (en) | 2005-10-20 | 2013-01-15 | Oracle International Corporation | Managing relationships between resources stored within a repository |
US8949455B2 (en) | 2005-11-21 | 2015-02-03 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
US20070208587A1 (en) * | 2005-12-08 | 2007-09-06 | Arun Sitaraman | Systems, software, and methods for communication-based business process messaging |
US7810102B2 (en) * | 2005-12-29 | 2010-10-05 | Sap Ag | Service adaptation of the enterprise services framework |
US7783985B2 (en) * | 2006-01-04 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods for transferring data between computing devices |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
JP5002165B2 (en) * | 2006-02-16 | 2012-08-15 | 株式会社日立製作所 | Remote desktop system |
JP2007226398A (en) * | 2006-02-22 | 2007-09-06 | Hitachi Ltd | Database connection management method and computer system |
US20070234328A1 (en) * | 2006-03-01 | 2007-10-04 | Microsoft Corporation | File handling for test environments |
WO2007103583A2 (en) | 2006-03-09 | 2007-09-13 | Gracenote, Inc. | Method and system for media navigation |
US8271309B2 (en) | 2006-03-16 | 2012-09-18 | The Crawford Group, Inc. | Method and system for providing and administering online rental vehicle reservation booking services |
US7860857B2 (en) | 2006-03-30 | 2010-12-28 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
JP2007287066A (en) * | 2006-04-20 | 2007-11-01 | Konica Minolta Business Technologies Inc | Image processing apparatus, method for installing application in the same and application installation processing program |
US7895639B2 (en) * | 2006-05-04 | 2011-02-22 | Citrix Online, Llc | Methods and systems for specifying and enforcing access control in a distributed system |
US20080133714A1 (en) * | 2006-05-25 | 2008-06-05 | Saveas Service Provider And Consulting Plc. | Eagleeyeos zone: method of control of separation technology of file sharing for network computers |
US20080028044A1 (en) * | 2006-07-26 | 2008-01-31 | Intellidyne, L.L.C. | System and method for file transfer |
US8990270B2 (en) * | 2006-08-03 | 2015-03-24 | Hewlett-Packard Development Company, L. P. | Protocol virtualization for a network file system |
US7606752B2 (en) | 2006-09-07 | 2009-10-20 | Yodlee Inc. | Host exchange in bill paying services |
US9183321B2 (en) | 2006-10-16 | 2015-11-10 | Oracle International Corporation | Managing compound XML documents in a repository |
US7827177B2 (en) * | 2006-10-16 | 2010-11-02 | Oracle International Corporation | Managing compound XML documents in a repository |
US7797310B2 (en) | 2006-10-16 | 2010-09-14 | Oracle International Corporation | Technique to estimate the cost of streaming evaluation of XPaths |
US8738703B2 (en) | 2006-10-17 | 2014-05-27 | Citrix Systems, Inc. | Systems and methods for providing online collaborative support |
US8261345B2 (en) | 2006-10-23 | 2012-09-04 | Endeavors Technologies, Inc. | Rule-based application access management |
US8312449B2 (en) * | 2006-10-31 | 2012-11-13 | International Business Machines Corporation | Viral installation of operating systems in a network |
US8533846B2 (en) | 2006-11-08 | 2013-09-10 | Citrix Systems, Inc. | Method and system for dynamically associating access rights with a resource |
US8533741B2 (en) * | 2006-12-29 | 2013-09-10 | Sandisk Technologies Inc. | Methods for launching a program application |
US8078674B2 (en) * | 2007-05-10 | 2011-12-13 | International Business Machines Corporation | Server device operating in response to received request |
US20090064134A1 (en) * | 2007-08-30 | 2009-03-05 | Citrix Systems,Inc. | Systems and methods for creating and executing files |
US8286082B2 (en) | 2007-09-12 | 2012-10-09 | Citrix Systems, Inc. | Methods and systems for providing, by a remote machine, access to a desk band associated with a resource executing on a local machine |
US7783666B1 (en) | 2007-09-26 | 2010-08-24 | Netapp, Inc. | Controlling access to storage resources by using access pattern based quotas |
US8880693B2 (en) * | 2007-09-28 | 2014-11-04 | Verizon Patent And Licensing Inc. | Network service provider-assisted authentication |
JP2009087124A (en) * | 2007-10-01 | 2009-04-23 | Buffalo Inc | Storage device and storage device access control method |
US8190707B2 (en) | 2007-10-20 | 2012-05-29 | Citrix Systems, Inc. | System and method for transferring data among computing environments |
US8892738B2 (en) | 2007-11-07 | 2014-11-18 | Numecent Holdings, Inc. | Deriving component statistics for a stream enabled application |
US7792934B2 (en) * | 2008-01-02 | 2010-09-07 | Citrix Systems International Gmbh | Loading of server-stored user profile data |
US7933873B2 (en) * | 2008-01-17 | 2011-04-26 | International Business Machines Corporation | Handling transfer of bad data to database partitions in restartable environments |
US8521682B2 (en) * | 2008-01-17 | 2013-08-27 | International Business Machines Corporation | Transfer of data from transactional data sources to partitioned databases in restartable environments |
US8156084B2 (en) * | 2008-01-17 | 2012-04-10 | International Business Machines Corporation | Transfer of data from positional data sources to partitioned databases in restartable environments |
US7991734B2 (en) * | 2008-03-07 | 2011-08-02 | Microsoft Corporation | Remote pointing |
US7882202B2 (en) * | 2008-04-01 | 2011-02-01 | International Business Machines Corporation | System to delegate virtual storage access method related file operations to a storage server using an in-band RPC mechanism |
EP2111011A1 (en) * | 2008-04-16 | 2009-10-21 | Thomson Telecom Belgium | Device and method for sharing files |
US8261334B2 (en) | 2008-04-25 | 2012-09-04 | Yodlee Inc. | System for performing web authentication of a user by proxy |
US9100246B1 (en) * | 2008-06-19 | 2015-08-04 | Symantec Corporation | Distributed application virtualization |
CN104407518B (en) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | The system and method interacted to the reality and Simulation Facility for process control |
EP2144421A1 (en) * | 2008-07-08 | 2010-01-13 | Gemplus | Method for managing an access from a remote device to data accessible from a local device and corresponding system |
US8762313B2 (en) | 2008-07-25 | 2014-06-24 | Liveperson, Inc. | Method and system for creating a predictive model for targeting web-page to a surfer |
US8799200B2 (en) | 2008-07-25 | 2014-08-05 | Liveperson, Inc. | Method and system for creating a predictive model for targeting webpage to a surfer |
US8805844B2 (en) | 2008-08-04 | 2014-08-12 | Liveperson, Inc. | Expert search |
US7958112B2 (en) | 2008-08-08 | 2011-06-07 | Oracle International Corporation | Interleaving query transformations for XML indexes |
US9952845B2 (en) * | 2008-08-29 | 2018-04-24 | Red Hat, Inc. | Provisioning machines having virtual storage resources |
US8732588B2 (en) * | 2008-09-09 | 2014-05-20 | Applied Systems, Inc. | Method and apparatus for remotely displaying screen files and efficiently handling remote operator input |
EP2335177A4 (en) * | 2008-10-06 | 2012-06-20 | Ericsson Telefon Ab L M | Digital rights management in user-controlled environment |
US9892417B2 (en) | 2008-10-29 | 2018-02-13 | Liveperson, Inc. | System and method for applying tracing tools for network locations |
US20100115472A1 (en) * | 2008-10-30 | 2010-05-06 | Lee Kun-Bin | Method of Facilitating Browsing and Management of Multimedia Files with Data Structure thereof |
US8555359B2 (en) | 2009-02-26 | 2013-10-08 | Yodlee, Inc. | System and methods for automatically accessing a web site on behalf of a client |
US9524396B2 (en) * | 2009-04-16 | 2016-12-20 | International Business Machines Corporation | System that maintains objects created and modified within designated directories on a per-client basis in a network filesystem |
US8238538B2 (en) | 2009-05-28 | 2012-08-07 | Comcast Cable Communications, Llc | Stateful home phone service |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
US20100319010A1 (en) * | 2009-06-12 | 2010-12-16 | International Business Machines Corporation | Systems and Methods for Operating System Identification and Web Application Execution |
US20110235592A1 (en) * | 2010-03-26 | 2011-09-29 | Qualcomm Incorporated | Network resource leasing |
WO2011127049A1 (en) | 2010-04-07 | 2011-10-13 | Liveperson, Inc. | System and method for dynamically enabling customized web content and applications |
US8812733B1 (en) * | 2010-08-19 | 2014-08-19 | Google Inc. | Transport protocol independent communications library |
US8918465B2 (en) | 2010-12-14 | 2014-12-23 | Liveperson, Inc. | Authentication of service requests initiated from a social networking site |
US9350598B2 (en) | 2010-12-14 | 2016-05-24 | Liveperson, Inc. | Authentication of service requests using a communications initiation feature |
US8667183B1 (en) * | 2011-03-20 | 2014-03-04 | Israel L'Heureux | Server-side HTTP translator |
US8949464B2 (en) | 2011-05-10 | 2015-02-03 | Israel L'Heureux | Client-side HTTP translator |
US8595291B2 (en) * | 2011-08-04 | 2013-11-26 | Motivity Solutions, Inc. | Server hierarchical structure on user-agents |
JP5533829B2 (en) * | 2011-09-27 | 2014-06-25 | カシオ計算機株式会社 | Information acquisition system, information processing apparatus, information processing method, and program |
WO2013049163A1 (en) * | 2011-09-28 | 2013-04-04 | Apperian, Inc. | Conveyance of configuration information in a network |
US9369504B1 (en) * | 2011-10-31 | 2016-06-14 | Rollapp, Inc. | Enabling seamless remote access to online applications through a web server |
US20150334184A1 (en) * | 2011-12-22 | 2015-11-19 | Hew-Lett-Pack Development Company, L.P. | Enabling execution of remotely-hosted applications using application metadata and client updates |
US8943002B2 (en) | 2012-02-10 | 2015-01-27 | Liveperson, Inc. | Analytics driven engagement |
US8805941B2 (en) | 2012-03-06 | 2014-08-12 | Liveperson, Inc. | Occasionally-connected computing interface |
US20140225809A1 (en) * | 2012-04-01 | 2014-08-14 | Dgsj Network Inc. | Method, system, and device for generating, distributing, and maintaining mobile applications |
US9563336B2 (en) | 2012-04-26 | 2017-02-07 | Liveperson, Inc. | Dynamic user interface customization |
US9672196B2 (en) | 2012-05-15 | 2017-06-06 | Liveperson, Inc. | Methods and systems for presenting specialized content using campaign metrics |
EP2690551B1 (en) * | 2012-07-26 | 2019-07-03 | 2236008 Ontario Inc. | Background service launcher for dynamic service provisioning |
EP3029589B1 (en) * | 2013-08-02 | 2023-08-30 | Bothnic Information Co. Ltd. | Device for permitting program, program transaction device and method for permitting program thereof |
JP6461167B2 (en) | 2014-01-21 | 2019-01-30 | オラクル・インターナショナル・コーポレイション | System and method for supporting multi-tenancy in an application server, cloud or other environment |
US11386442B2 (en) | 2014-03-31 | 2022-07-12 | Liveperson, Inc. | Online behavioral predictor |
US9449346B1 (en) | 2014-05-21 | 2016-09-20 | Plaid Technologies, Inc. | System and method for programmatically accessing financial data |
US9595023B1 (en) | 2014-05-21 | 2017-03-14 | Plaid Technologies, Inc. | System and method for facilitating programmatic verification of transactions |
WO2015200372A1 (en) * | 2014-06-23 | 2015-12-30 | Oracle International Corporation | System and method for portable partitions in a multitenant application server environment |
US10318280B2 (en) | 2014-09-24 | 2019-06-11 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
EP3198431A1 (en) | 2014-09-24 | 2017-08-02 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
US10382446B2 (en) | 2015-05-28 | 2019-08-13 | Cameyo Inc. | Computerized system, method and computer program product, for managing a computer program's operations |
CA2988120A1 (en) | 2015-06-02 | 2016-12-08 | Liveperson, Inc. | Dynamic communication routing based on consistency weighting and routing rules |
CN105183515B (en) * | 2015-09-02 | 2019-10-15 | 深圳一电航空技术有限公司 | The method and device of holder firmware upgrade |
EP4006755A1 (en) | 2015-09-08 | 2022-06-01 | Plaid Inc. | Secure permissioning of access to user accounts, including secure deauthorization of access to user accounts |
US10726491B1 (en) | 2015-12-28 | 2020-07-28 | Plaid Inc. | Parameter-based computer evaluation of user accounts based on user account data stored in one or more databases |
US10984468B1 (en) | 2016-01-06 | 2021-04-20 | Plaid Inc. | Systems and methods for estimating past and prospective attribute values associated with a user account |
CN109844717B (en) | 2016-08-14 | 2023-05-23 | 利维帕尔森有限公司 | System and method for real-time remote control of mobile applications |
US10791103B2 (en) * | 2016-10-28 | 2020-09-29 | Vmware, Inc. | Adapting remote display protocols to remote applications |
US10606611B2 (en) * | 2017-06-02 | 2020-03-31 | Apple Inc. | Techniques for performing dynamic linking |
US11468085B2 (en) | 2017-07-22 | 2022-10-11 | Plaid Inc. | Browser-based aggregation |
US10878421B2 (en) | 2017-07-22 | 2020-12-29 | Plaid Inc. | Data verified deposits |
CN107885995A (en) * | 2017-10-09 | 2018-04-06 | 阿里巴巴集团控股有限公司 | The security sweep method, apparatus and electronic equipment of small routine |
US11316862B1 (en) | 2018-09-14 | 2022-04-26 | Plaid Inc. | Secure authorization of access to user accounts by one or more authorization mechanisms |
KR20200086856A (en) * | 2019-01-10 | 2020-07-20 | 최재호 | Apparatus and method of file sharing based on chat room |
US11887069B2 (en) | 2020-05-05 | 2024-01-30 | Plaid Inc. | Secure updating of allocations to user accounts |
US11327960B1 (en) | 2020-10-16 | 2022-05-10 | Plaid Inc. | Systems and methods for data parsing |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4825354A (en) * | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
US4887204A (en) * | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US4897782A (en) * | 1987-10-19 | 1990-01-30 | International Business Machines Corporation | Local cache structure for maintaining updated file characteristics in a file sharing system |
US5146568A (en) * | 1988-09-06 | 1992-09-08 | Digital Equipment Corporation | Remote bootstrapping a node over communication link by initially requesting remote storage access program which emulates local disk to load other programs |
JPH05504428A (en) * | 1989-08-01 | 1993-07-08 | シリコン・グラフィックス,インコーポレイテッド | File change monitor for computer operating and file management systems |
DE68926345T2 (en) * | 1989-08-03 | 1996-11-07 | Ibm | DATA PROCESSING NETWORK |
US5423034A (en) * | 1992-06-10 | 1995-06-06 | Cohen-Levy; Leon | Network file management with user determined hierarchical file structures and means for intercepting application program open and save commands for inputting and displaying user inputted descriptions of the location and content of files |
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US5586304A (en) * | 1994-09-08 | 1996-12-17 | Compaq Computer Corporation | Automatic computer upgrading |
US5504892A (en) * | 1994-09-08 | 1996-04-02 | Taligent, Inc. | Extensible object-oriented file system |
US5623699A (en) * | 1994-12-06 | 1997-04-22 | Thunderwave, Inc. | Read only linear stream based cache system |
US5628005A (en) * | 1995-06-07 | 1997-05-06 | Microsoft Corporation | System and method for providing opportunistic file access in a network environment |
WO1997015018A1 (en) * | 1995-10-16 | 1997-04-24 | Bell Communications Research, Inc. | Method and system for providing uniform access to heterogeneous information |
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 |
-
1996
- 1996-03-14 US US08/616,746 patent/US5838910A/en not_active Expired - Lifetime
-
1997
- 1997-03-14 AU AU23297/97A patent/AU711280B2/en not_active Expired
- 1997-03-14 EP EP10183770.6A patent/EP2506143A3/en not_active Withdrawn
- 1997-03-14 CA CA002248086A patent/CA2248086A1/en not_active Abandoned
- 1997-03-14 WO PCT/US1997/004194 patent/WO1997034225A1/en active Application Filing
- 1997-03-14 US US08/818,665 patent/US5838916A/en not_active Expired - Lifetime
- 1997-03-14 EP EP20100183763 patent/EP2511828A3/en not_active Ceased
- 1997-03-14 EP EP19970916019 patent/EP0901655A4/en not_active Ceased
- 1997-03-14 EP EP20100183759 patent/EP2506142A3/en not_active Ceased
-
1998
- 1998-07-02 US US09/108,770 patent/US6065043A/en not_active Expired - Lifetime
- 1998-11-16 US US09/192,951 patent/US6240442B1/en not_active Expired - Lifetime
-
1999
- 1999-07-16 US US09/356,225 patent/US6115741A/en not_active Expired - Lifetime
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117559B2 (en) | 2004-09-30 | 2012-02-14 | Citrix Systems, Inc. | Method and apparatus for virtualizing window information |
US8302101B2 (en) | 2004-09-30 | 2012-10-30 | Citrix Systems, Inc. | Methods and systems for accessing, by application programs, resources provided by an operating system |
US7676813B2 (en) | 2004-09-30 | 2010-03-09 | Citrix Systems, Inc. | Method and system for accessing resources |
US8352964B2 (en) | 2004-09-30 | 2013-01-08 | Citrix Systems, Inc. | Method and apparatus for moving processes between isolation environments |
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 |
US8042120B2 (en) | 2004-09-30 | 2011-10-18 | Citrix Systems, Inc. | Method and apparatus for moving processes between isolation environments |
US7680758B2 (en) | 2004-09-30 | 2010-03-16 | Citrix Systems, Inc. | Method and apparatus for isolating execution of software applications |
US8132176B2 (en) | 2004-09-30 | 2012-03-06 | Citrix Systems, Inc. | Method for accessing, by application programs, resources residing inside an application isolation scope |
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 |
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 |
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 |
US9021494B2 (en) | 2007-10-20 | 2015-04-28 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
US8171483B2 (en) | 2007-10-20 | 2012-05-01 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
US9009720B2 (en) | 2007-10-20 | 2015-04-14 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
US9009721B2 (en) | 2007-10-20 | 2015-04-14 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
US8090797B2 (en) | 2009-05-02 | 2012-01-03 | Citrix Systems, Inc. | Methods and systems for launching applications into existing isolation environments |
US8326943B2 (en) | 2009-05-02 | 2012-12-04 | Citrix Systems, Inc. | Methods and systems for launching applications into existing isolation environments |
Also Published As
Publication number | Publication date |
---|---|
EP2511828A2 (en) | 2012-10-17 |
EP2506143A3 (en) | 2014-01-01 |
EP2506142A3 (en) | 2012-11-07 |
EP2511828A3 (en) | 2012-11-07 |
WO1997034225A1 (en) | 1997-09-18 |
AU2329797A (en) | 1997-10-01 |
AU711280B2 (en) | 1999-10-07 |
EP0901655A4 (en) | 2012-07-04 |
EP2506142A2 (en) | 2012-10-03 |
US5838916A (en) | 1998-11-17 |
US6115741A (en) | 2000-09-05 |
US6065043A (en) | 2000-05-16 |
EP0901655A1 (en) | 1999-03-17 |
EP2506143A2 (en) | 2012-10-03 |
US5838910A (en) | 1998-11-17 |
US6240442B1 (en) | 2001-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2248086A1 (en) | Systems and methods for executing application programs from a memory device linked to a server | |
US6691176B1 (en) | Method for managing client services across browser pages | |
US7634772B2 (en) | Automatic software downloading from a computer network | |
US6347398B1 (en) | Automatic software downloading from a computer network | |
US6023698A (en) | System and method for transparently registering and updating information over the internet | |
US7281047B2 (en) | System and method for automatic provision of an application | |
US6611915B1 (en) | Selective loading of client operating system in a computer network | |
US5623600A (en) | Virus detection and removal apparatus for computer networks | |
US5497463A (en) | Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system | |
KR100260682B1 (en) | A process for running applets over non-ip networks | |
US6529936B1 (en) | Object-oriented web server architecture suitable for various types of devices | |
TW535065B (en) | Method and apparatus for atomic file look-up | |
US6959320B2 (en) | Client-side performance optimization system for streamed applications | |
US20030167355A1 (en) | Application program interface for network software platform | |
US20080034420A1 (en) | System and method of portal customization for a virtual private network device | |
US20050204361A1 (en) | Process and apparatus for sharing inline caches | |
JP4418137B2 (en) | Network browser device, computer, and method for diagnosing and repairing computer | |
WO2000077614A2 (en) | Software packaging and distribution system | |
US20030005048A1 (en) | System and method for integrated web-based software code environment | |
JP2001502821A (en) | System and method for executing an application program stored in a memory device coupled to a server | |
JP4886593B2 (en) | Method, system and medium for displaying HTML text on a non-graphical console | |
US6519633B1 (en) | Installable file system for client in a computer network | |
US7263696B1 (en) | Dynamic web based jar file finder | |
Cisco | Index | |
Cisco | Configuring Components after Installation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |