US6047312A - System for replicating and associating file types with application programs among plurality of partitions in a server - Google Patents

System for replicating and associating file types with application programs among plurality of partitions in a server Download PDF

Info

Publication number
US6047312A
US6047312A US08/816,256 US81625697A US6047312A US 6047312 A US6047312 A US 6047312A US 81625697 A US81625697 A US 81625697A US 6047312 A US6047312 A US 6047312A
Authority
US
United States
Prior art keywords
application
file type
file
server
workstation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/816,256
Inventor
Matthew G. Brooks
Russell T. Young
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
Novell Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US08499711 external-priority patent/US5692129B1/en
Application filed by Novell Inc filed Critical Novell Inc
Priority to US08/816,256 priority Critical patent/US6047312A/en
Assigned to NOVELL, INC. reassignment NOVELL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROOKS, MATTHEW G., YOUNG, RUSSELL T.
Application granted granted Critical
Publication of US6047312A publication Critical patent/US6047312A/en
Assigned to EMC CORPORATON reassignment EMC CORPORATON ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CPTN HOLDINGS LLC
Assigned to CPTN HOLDINGS, LLC reassignment CPTN HOLDINGS, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NOVELL, INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Definitions

  • the invention relates to software for use in a network, and more particularly, to software for establishing an application associated with a selected non-executable file in a network environment.
  • the network provides access to applications and devices to the various connected workstations so that the users may share these resources.
  • the network facilitates communication among the workstations so that the users can exchange information.
  • Many network schemes are known, including client/server, mainframe, and peer-to-peer systems.
  • the workstations in many networks are not merely dumb terminals, but retain many functions which allow them to operate as independent computers, even though many functions are provided by a connected computer, such as a server.
  • Some useful features of standalone systems conflict or defy compatibility with a network environment.
  • many standalone systems employ file typing to associate a file with a particular application and initiate that application.
  • a file manager program lists a series of files stored in a memory. The files may be associated with several different applications, such as a word processing, spreadsheet, or graphic design applications. While in the file manager program, a user may select one of the files for access, for example by using a pointing device like a mouse.
  • Individual files may include a file type extension, such as the last three letters in the name of the file, which corresponds to the relevant application.
  • file type extensions indicate (to the file manager program) which application program is associated with the selected file.
  • the file manager accesses a local memory location which stores a table of file type extensions and a series of application identifiers to associate certain applications with particular file type extensions. The file manager then initiates the appropriate application and passes the file name to the application for access by the application.
  • a remote computer e.g. a server
  • many application programs typically reside on a remote computer, e.g. a server, to facilitate sharing of the application.
  • the file type information stored in the local memory of the workstation may become outdated. Consequently, a program such as the file manager may be unable to retrieve valid file type information from the local memory for a selected application stored on a remote computer.
  • appropriate file type information may be nonexistent in the local memories of the network workstations.
  • the local memory of each workstation is individually adjusted each time the file type information for an application is added or changed at a great cost of administrator time and resources.
  • a system for associating file types with applications provides alternative methods and apparatus for providing current file type information in a network environment.
  • the applications are available on a network having a directory service.
  • the applications are stored as objects on the network and are available through the directory service.
  • Each application object (or an associated object in the directory service) includes file type information, and suitably other information, associated with the application. Such information may, for example, indicate if, which users are authorized to access particular applications.
  • the user workstations on the network include a system, for example an application launcher, for calling the application objects to identify which applications are available to the user or the workstation and for retrieving the file type information from the network server.
  • the application launcher gathers the file type information and related information for each of the accessible applications and stores it in the local memory of the user workstation. Such updating of the file type information may be performed periodically, for example during a refresh cycle or upon logging onto the network, to ensure that the user workstations and the network server contain consistent information.
  • the user workstation checks its local memory for the file type information corresponding to the selected file. Because the information is periodically updated by the application launcher, the current information is available to associate a particular file type extension with an application stored remotely. As a result, the appropriate application may be suitably initiated. In addition, because the file type information is stored with the application object, the file type information may be easily modified by adjusting the data stored in the application object. Consequently, individual adjustments to the local memories of the various workstations are unnecessary to update the file type information.
  • FIG. 1 is a diagram of a network according to various aspects of the present invention.
  • FIG. 2 is a diagram illustrating the interaction of various network components
  • FIG. 3 is a general flow diagram of a process for accessing and updating applications and the like on the network of FIGS. 1 and 2;
  • FIGS. 4A-B are a flow diagram of a setup procedure for the network
  • FIG. 5 is a flow diagram of a procedure for launching an application using file type extensions.
  • FIG. 6 is a flow diagram of an application launching process.
  • a suitable network 10 for use in accordance with various aspects of the present invention comprises at least one file server 14; at least one user station 16; and a communications medium 17.
  • the network 10 operates in conjunction with Novell NetWare software, version 4.x (NetWare is a registered trademark of Novell, Inc.).
  • the network 10 is suitably configured as several interconnected local networks 12. Each local network 12 may also include a server 14 and one or more user stations 16.
  • the network 10 and local networks 12 further suitably include one or more other devices, such as a printer 18 and a disk array 20.
  • the network 10 may comprise any suitable computer network in a variety of configurations.
  • the server 14 suitably comprises a conventional computer, preferably a high speed computer, for providing access to files, printing, communications, and other services available to users of the network.
  • the server 14 is suitably accessed by users via user stations 16 to access applications, store files, communicate, and the like.
  • the server 14 also suitably communicates with other servers 14 and various devices, such as the printer 18 and the disk array 20.
  • Each user station 16 suitably comprises a terminal connected to at least one of the servers 14.
  • the user station 16 includes an independent microprocessor capable of communicating with the server 14 to make use of the services provided by the server 14.
  • the user station 16 suitably comprises an IBM-compatible personal computer equipped with a network card to facilitate communication with the server 14.
  • the user station 16 suitably operates using an operating system and/or environment.
  • the user station 16 suitably operates using an MS-DOS operating system from MICROSOFT and a WINDOWS 3.1 platform, also available from MICROSOFT.
  • the particular operating system or environment may be any suitable operating system or environment, including Windows 95, UNIX, or others.
  • the user station 16 may be configured as a portable computer that may be selectively connected to the network 10 to operate as a user station 16 and disconnected from the network 10 to operate as an independent, standalone system.
  • the communications medium 17 facilitates communications between the various components of the network 10.
  • the communications medium 17 may comprise a system of conventional network cables connected between the various components.
  • the communications medium 17 suitably comprises any sort of communications system, including fiber optic, telephonic, microwave, cellular, or wireless communication systems.
  • the devices connected to the network, such as the printer 18 and the disk array 20, also suitably comprise conventional devices for performing various tasks in conjunction with requests from network components.
  • FIGS. 1 and 2 administration and use of the network 10 are suitably supported by network software and hardware elements, administrator tools, and user tools.
  • FIG. 2 illustrates an exemplary relationship between these components.
  • the network 10 suitably includes a variety of accessible resources 22, such as an application 23 and data accessible to one or more of the file servers 14 and user stations 16.
  • the network resources 22 are administered through a directory services system 24.
  • the precise nature of the directory services 24 may vary among different networks.
  • the directory services system 24 operates on at least one of the servers 14 and suitably administers the location of the resources 22 and the rights of network users to use the resources 22.
  • the directory services 24 include services provided by NetWare Directory Services ("NDS") software 26, which is commercially available from Novell, Inc. of Orem, Utah (NetWare Directory Services is a trademark of Novell, Inc.).
  • the directory services system 24 includes a schema 28; an interface library 34; and a database 38.
  • the schema comprises a set of information relevant to the storage aspects of the database 38.
  • the schema 28 suitably includes a list of all of the fields in the database 38, the field types, the maximum and minimum acceptable values for each field, and information relating to the structure of the database 38.
  • the schema 28 is an API-extensible schema in that the attributes and object classes found in the schema can be altered through an Application Programmers' Interface (“API”) without direct access to the source code that implements the schema 28.
  • API Application Programmers' Interface
  • the interface library 34 provides access to the schema 28 and to the database 38.
  • the interface library 34 includes tables or commands stored in a file which are read by the schema 28 during its initialization and when objects are created to define the available attributes and classes.
  • the interface library 34 may include a set of routines that are available to other programs to access and modify the schema 28.
  • the interface library 34 suitably includes an API that defines an interface to an NWDSxxx() library 36 which is commercially available from Novell, Inc. of Orem, Utah.
  • the NWDSxxx() library 36 is so named because the names of functions and data types defined in the library 36 typically begin with "NWDS," an acronym for "NetWare Directory Services.”
  • the database 38 suitably includes a "synchronized-partition" database.
  • the database 38 is typically divided into two or more nonoverlapping partitions.
  • a replica of each partition is physically stored on one or more of the file servers 14 in the network 10.
  • the replicas of a given partition are regularly updated by the directory services 24 through an automated synchronization process, consequently reducing the differences between replicas caused by activity on the network 10.
  • the database 38 includes a Novell NetWare Directory Services database ("NDS database”) 40.
  • the database 38 further contains various database objects 49, 51.
  • Objects 49 and 51 are suitably defined according to the schema 28 and the particulars of the network 10. These objects 49 and 51 represent resources 22 of the network 10, such as applications, files, and components.
  • the database 38 is preferably a "hierarchical" database 38 because the objects 49 and 51 in the database 38 are connected in a hierarchical tree structure. Objects in the tree that can contain other objects are called “container objects.” and are configured to be instances of a container object class.
  • the administrator tools 42 are suitably available to an administrator or administrative staff to control and manage the network 10.
  • the administrator tools 42 suitably include partition management routines 46 for managing the partitions of the database 38.
  • the administrator tools 42 also suitably include application management routines 48 for creating, deleting, and modifying an application object 49 and/or desktop attributes for user, group, and a container object 51 in the database 38.
  • application objects 49 in the database 38 include an application program 23 and other information relevant to the application and its use on the network 10.
  • the application objects 49 make application programs 23 available to network administrators and users alike.
  • the user tools 44 provide the user station and the user with various programs and mechanisms to manipulate data, suitably both independently and in conjunction with the network 10 and the resources 22.
  • the user tools 44 suitably include an application launcher 50 for initiating applications 23 using corresponding application objects 49 in the database 38.
  • the NOVELL APPLICATION LAUNCHER may be provided as the application launcher 50.
  • the user tools 44 further suitably include selected desktop environments 52, which may be modified by desktop attributes associated with database objects 49, such as user, group, and container objects, to facilitate the use of the application objects 49.
  • User, group, container, and/or other objects 51 which have a desktop attribute are herein termed "desktop objects.”
  • the user station 16 also suitably includes a memory system including a registry 58.
  • the registry 58 suitably comprises a reserved section of memory resident on the user station 16 and used by the user station 16 for various functions.
  • the registry 58 is used to store, among other things, various information relevant to associating file type extensions with application programs 23 that may be stored in the database 38.
  • files may be selected at the user workstation 16 in programs such as the WINDOWS File Manager for execution.
  • the file manager program accesses a library stored in the registry 58.
  • the library contains information for matching various file type extensions with certain applications.
  • the application management routines 48, as well as the schema 28, the database 38, and the registry 58, include tangible embodiments stored in one or more program storage devices 11. Suitable storage devices 11 include floppy disks, hard disks, tape, CD-ROMs, and other computer usable media. Each program storage device 11 is readable by one or more of the file servers 14 and user stations 16. Each program storage device 11 tangibly embodies a program, functions, or instructions that are executable by the server 14 and/or user station 16 to perform application managing steps.
  • database objects 49 represent various resources available on or otherwise associated with the network 10, such as application objects and desktop objects.
  • an application object 49 in the database 38 includes an application program 23 and a set of associated information relevant to the application program 23 and its use.
  • the application objects 49 suitably render the application programs 23 available to network administrators and users alike.
  • an application object 49 representing an application program 23 and its associated information suitably includes a series of application attributes which indicate how the application program 23 is to be used and operated in the network 10.
  • the application attributes are suitably modifiable by selected personnel, such as the network administrator.
  • the administrator may control how the application program 23 is used and by which users, machines, groups, or the like.
  • the application attributes suitably include an icon attribute containing some or all of a set of icon data.
  • the icon attribute allows icons for all of the application objects 49 that are visible to the user to be obtained from the database 38.
  • Each application object 49 further suitably includes a "file path" attribute.
  • a file path attribute may be set to have a value corresponding to the full path (including server name) to the application object's *.EXE, *.COM, *.BAT, or other executable file.
  • the server name is maintained in a separate "server” attribute or a configurable default format.
  • the file path attribute is multi-valued rather than single-valued, and contains one or more executable file paths. Listing several file paths increases the possibility of launching an application program 23 in the event a particular server 14 becomes unavailable.
  • the file path attribute is added to the generic application object's 49 class.
  • fault tolerance is provided at a higher level by an application fault tolerance object 53 (FIG. 2).
  • the application fault tolerance object 53 includes a list which references a plurality of application objects 49.
  • One suitable embodiment of the list uses an "alternate application objects" attribute having a distinguished name attribute syntax and no flags.
  • the alternate application objects attribute may be added to the generic application objects class.
  • application objects 49 suitably include file typing information associated with the application.
  • the file typing information includes a set of information which may be associated with files corresponding to, generated by, or otherwise associated with the particular application. For example, if the application appends the file extension ".djn" to files it creates, this information may be reflected in the file typing information.
  • the application object 49 further suitably includes information corresponding to an interface with the application program 23. For example, when a file is to be accessed following execution of the application, a particular format for the command line may be necessary to properly pass the file name to the application program 23. This information, referred to in this case as the file type command line parameters, is also suitably stored in the application object 49.
  • the application objects 49 are stored in the database 38 associated with the directory services 24.
  • the application objects 49 may be stored in any suitable manner or organization.
  • the network administrator suitably places a set of application objects 49 in the same container object if they differ only in which server 14 (FIG. 1) holds the executable code.
  • the application launcher 50 could easily locate a replacement application object 49 to launch if a server 14 or a portion of the communications medium 17 is lost.
  • the "best" (i.e., newest, fastest, physically closest, located on least loaded server, or most reliable) version of an application 23 could be listed first, with less desirable versions following in order of decreasing desirability.
  • the database 38 further suitably includes desktop objects, such as user objects, group objects, and container objects.
  • the desktop objects are suitably associated with a particular user or user station 16.
  • a particular user may have a designated log in handle associated with a container object. Consequently, the user is subject to the terms of the container object represented by the desktop attributes in the container object, regardless of the particular user station 16 occupied by the user.
  • a particular user station 16 may be associated with a particular geographical object so that the attributes associated with the geographical object apply to the user station 16, regardless of the user occupying the user station 16.
  • the desktop attributes may thus be used to organize users, stations 16, and other components of the network 10 to provide security and maximize the efficient use of network resources.
  • the application objects are available to at least a portion of the user stations 16 to request execution of application programs 23.
  • the user station 16 includes a suitable system for gaining access to particular applications via the application objects 49 in the database 38 using file typing information.
  • the application launcher 50 performs various functions to associate file type extensions with the relevant application object 49 and initiate execution of the application program 23.
  • the application launcher 50 is suitably associated with the desktop environment 52.
  • the application launcher 50 and the application management routines 48 are combined in a single tool, similar to the NWAdmin program available from NOVELL. These embodiments allow a user to readily browse or search for application objects 49 in the database 38 and to then launch that application object 49.
  • the application launcher 50 may be configured to perform a search within the database 38 by searching the desktop attributes in one or more desktop objects 51.
  • the application launcher 50 is suitably initially stored at a public location on the network 10 where it can be downloaded by a user station 16 when the user logs onto the network 10, for example in conjunction with login scripts.
  • a program executed by the user station 16 reads a user object's container object in the database 38 when a user logs onto the network 10.
  • the container object suitably includes a stream syntax "application launcher bootstrap" attribute which contains the executable code for the application launcher 50. Storing the application launcher 50 in a stream attribute provides the advantages of storage in the database 38, such as replication and distribution.
  • the application launcher 50 may be stored on each individual user client 16 having access to the network 10. Execution of the application launcher 50 may be initiated automatically, for example following login, at the users's election, or via any other appropriate mechanism.
  • the local registry 58 of the user station 16 suitably includes information, including file type information, for operating the user station 16 as a standalone computer.
  • the local registry 58 of the user station 16 is reconfigured, for example by the application launcher 50, with registry information relevant to the application objects 49 in the database 38 which are accessible to the user station 16.
  • the reconfiguration of the local registry 58 is suitably performed to provide file typing information corresponding to application programs 23 stored in the database 38.
  • the user station 16 initially engages in a setup procedure to configure the user station 16 for its environment (step 140).
  • the user station 16 powers up, initializes, and boots (FIG. 4, step 200).
  • the user station 16 checks a clean up flag stored in its local memory (step 202). This flag is controlled by the application launcher 50, as described in greater detail as below. If the clean up flag indicates that a clean up process was not completed at termination of the previous application launcher session, the user station 16 retrieves a set of registry parameters from a preselected location in the local memory and places it in the registry 58 (step 204).
  • the registry parameters retrieved from the preselected memory location are those parameters used by the user station 16 as a standalone system.
  • the clean up process may be performed by the application launcher 50 after it is initiated, as described in greater detail below.
  • the user station 16 attempts to log onto the network 10 (step 206). If the network 10 is not available, for example due to disconnection or the like, the user station 16 configures itself for standalone operation (step 208). If the network 10 is available, the computer logs onto the network 10, suitably using an appropriate user identification and security measures (step 210). Once access to the network 10 is gained, the user station 16 downloads a series of login scripts and executes them (step 212).
  • the application launcher 50 is suitably activated to collect the registry information for the application objects 49 available to the user station 16 on the network 10 and to adjust the local registry 58 accordingly (step 214). If the application launcher 50 is already resident, the user station 16 may automatically execute the application launcher 50 following the login process. Alternatively, the application launcher 50 may be manually activated by the user or called by another program. In the preferred embodiment, however, the application launcher 50 is stored at a public location, for example in the directory services database 38. The application launcher 50 may then be downloaded, such as during execution of the login scripts.
  • the application launcher 50 Upon execution, the application launcher 50 reads the current value of a launcher configuration attribute from the database 38 and stores that information in a local buffer (step 216).
  • the launcher configuration attribute includes information relating to the application launcher 50, such as which or how many container objects are associated with the user and whether the icon information should be automatically refreshed.
  • the application launcher 50 determines which application objects are accessible to the user station 16, i.e. the desktop objects. In a preferred embodiment, the application launcher 50 uses the information in the launcher configuration attribute to identify the container objects accessible to the user and user station 16. The application launcher 50 then suitably checks each application object 49 in each accessible container object designated by the launcher configuration attribute (step 218). If the user station 16 is authorized to access the application object 49, the application launcher 50 collects the icon information and file type information from the application object 49 (step 220). For example, the application launcher 50 may be configured to poll each of the accessible application objects 49, and to continue polling the application objects 49 at selected intervals to update the resources available to the user station 16.
  • the icon for an application program 23 is preferably stored in the icon attribute in addition to its usual storage in the application program's 23 executable file. Accordingly, the application launcher 50 collects the icons of all applications 23 listed in the desktop attribute. Similarly, the file type information and the command line parameters are also stored in the object and are accessible to the application launcher 50.
  • the application launcher 50 copies the information currently in the user station 16 registry and stores it in the preselected location for the original registry information, as mentioned above (step 222).
  • the application launcher 50 displays the icons associated with the accessible applications.
  • the application launcher 50 reconfigures the information in the registry 58 to include the file type information in the local registry 58 for each of the accessible application objects 49 (step 224).
  • the application launcher 50 reconfigures the registry information so that if a match between a file type extension and an application object 49 occurs, the application launcher 50 is called, regardless of the relevant application object 49.
  • the application launcher 50 reconfigures the registry 58 such that the application launcher 50 is called only if an application object 49 is called, and not in the event that a locally stored program is desired. As described in greater detail below, the application launcher 50 then initiates execution of the relevant application 23, checks the command line parameters in the application object 49 for the particular application 23, and provides the file name to the application 23 in the proper format.
  • the application launcher 50 may be configured to perform an auto start launching step 140 to launch a set of applications 23 specified in an auto start attribute of the desktop object 51 (step 140).
  • the procedure for launching applications is described in greater detail below.
  • error messages are provided to the user and/or to the network administrator if an attempted step fails.
  • the launcher 50 responds to commands or events provided by the user.
  • One such command orders the launcher 50 to perform a manual icon refresh step 144.
  • Icon refresh is useful because the network administrator may have added new application objects 49 to those available to the user, may have deleted other application objects 49, and/or may have changed the current attribute values of still other application objects 49 after the launcher 50 last read those values.
  • the application launcher 50 maintains an internal list of application objects 49 for which icons are currently displayed.
  • a refresh process causes the application launcher 50 to scan a portion of the database 38 to determine whether the application launcher's 50 internal list differs from the attributes listed in the desktop attribute of the desktop 52 in the database 38.
  • the portion of the database 38 hierarchy to be searched is specified by the container levels value stored in the launcher configuration attribute of the user and container objects.
  • time stamps are used to detect changes to the database 38.
  • a string comparison may be used to detect name changes. Any differences detected are reflected in the internal list and other internal data of the application launcher 50 and in the icons displayed on the user station 16 screen.
  • the application launcher 50 also performs certain procedures not directly requested by the user. For instance, the application launcher 50 maintains an internal structure that reflects the current status of each application 23 launched by the application launcher 50. This status information includes user interface information such as drive mappings, printer port captures, and server attachments made by the application launcher 50 before launching an application 23, and an indication whether the application 23 has terminated.
  • the application launcher 50 detects termination of an application 23 by polling, by an interrupt or event notification, or by other familiar means. Changes in the application's 23 status are reflected in the application launcher's 50 internal structure during a status updating procedure (step 152).
  • an icon updating procedure (step 156) is also performed without a direct user request. Aside from being initiated by the application launcher 50, the icon updating procedure is substantially similar to the user-initiated manual icon refresh procedure. Both of these procedures are performed to reduce the workload of the network administrator by reducing or eliminating the need for the administrator to manually update user desktops 52 after changing the application objects 49 in the schema database 38.
  • the user may also select a specific application 23 and order the application launcher 50 to initiate execution of the selected application 23 (step 150).
  • the application 23 is selected for launching by double-clicking a mouse button after positioning a desktop cursor over the application's 23 displayed icon.
  • launching an application 23 includes executing a launching process for the selected application 23 (step 158). To launch a user selected application 23, the launching process is performed only once, whereas if the application launcher is configured to execute an auto start of one or more applications 23, the launching process is executed repeatedly, with one repetition being performed for each application 23 specified in the auto start attribute of the desktop 52.
  • the launching process includes a disabling procedure (step 160) which disables both the application status updating procedure (step 152) and the automatic icon updating process (step 156). Disabling the updating procedures simplifies the launching process by preventing inconsistencies in the application launcher's 50 status information.
  • a resource setup routine then sets up resources needed by the application 23 that is being launched (step 162).
  • the resource setup routine also sets standard flags that communicate with operating system process creation routines.
  • a process initialization routine (step 164) invokes an operating system routine or other process initializer to initialize a process control block or similar process control structure used by the operating system.
  • the process initialization routine also allocates a processor to a process, task, or thread corresponding to the application 23.
  • the process initialization routine includes a call to, for example, the ShellExecute() or CreateProcess() modules.
  • An update status routine (step 166) then updates the application launcher's 50 internal application status information to indicate that the application 23 has been launched.
  • the step 166 also records a process ID, instance handle, task handle, or other process identifier supplied by successful completion of the process initializer routine.
  • An enabling procedure then reverses the disabling effects of the previous disabling procedure. This allows the updating procedures to proceed again. If the user interface was changed during the disabling procedure to indicate that launching is underway, such as by displaying an hourglass cursor, then that change is also reversed.
  • a control transferor transfers control of a processor in the network 10 to the process initialized during the process initialization routine.
  • the application launcher 50 suspends itself, invokes a sleep function, or otherwise yields control of the processor to the newly launched process of the application 23 to allow execution of the application program.
  • the yield procedure includes a call to, for example, the Yield() routine.
  • inventions may include different procedures which to accomplish substantially the same results as the described launching process.
  • the process initialization routine may be combined with the yielding procedure in environments which provide a single system call to create a new process and pass control to that process.
  • the relative order of the disabling procedure and the setup resources procedure is reversed.
  • the disabling procedure and the enabling procedure are omitted in embodiments which do not use interrupt or event paradigms. That is, the disabling procedure and the enabling procedure are omitted when there is no risk of creating inconsistent status information in the launcher 50 during the launching process.
  • the user may select a file for access and automatically initiate execution of the relevant application 23 and accessing of the file.
  • the application launcher 50 uses the file type extension portion of the filename, accesses the information stored in the local registry 58 to find the application 23 associated with the file type extension.
  • the application launcher 50 further suitably initiates execution of the appropriate application 23.
  • the application launcher determines the format required by the application program 23 to provide the file name to the application program 23, and proceeds to provide the file name to the application in the proper format.
  • a user may select a particular file for access, for example by positioning the cursor over the file name or icon and double-clicking the appropriate mouse button (step 502).
  • the operating system or other relevant software such as the file manager program in the WINDOWS environment, accesses the local registry 58 to identify the application program 23 corresponding to the file type extension of the selected file (step 504). If no match occurs, an error message is returned (step 506). If a corresponding application object 49 is found via the registry 58, the information stored in the registry 58 directs the system to call the relevant application program 23. If the application program 23 is a locally stored application, the application is initiated conventionally. If the application program 23 is a shared application stored in the database 38, however, the application launcher 50 is called, regardless of which application object 49 corresponds to the file type extension (step 508).
  • the application launcher 50 calls the application program 23 associated with the relevant application object 49 to initiate execution of the application program 23 by executing the launching process (step 158).
  • the application launcher 50 further reads the command line information from the application object 49 to determine the appropriate format in which to provide the file name to the application program 23 (step 512).
  • the application launcher 50 then places the file name in the appropriate format as indicated by the file type command line parameters and provides it to the application program 23 (step 514).
  • the application launcher 50 may be registered as a DDE protocol server. In this configuration, the application launcher 50 provides the file name to the application program 23 in the appropriate form via a DDE exchange using the DDE format.
  • the application launcher 50 updates the status information and cleans up during a cleaning process (step 154).
  • the cleaning process which proceeds according to the settings in the application object's flags attribute, possibly includes unmapping drives, releasing captured printer ports, detaching from servers 14, and releasing memory used internally by the application launcher 50 to hold the application's status information.
  • the application launcher 50 copies the original registry information from the user station's 16 memory into the registry 58.
  • the application launcher 50 suitably sets the cleanup flag to indicate that the cleanup was properly performed.

Abstract

A method and apparatus according to various aspects of the present invention provides a system for associating files with relevant application programs in a network. The applications are available on a network, suitably as application objects. Each application object also includes file type information associated with the application. When a user logs onto the network, the file type information is retrieved from each accessible application object. The application launcher stores the retrieved information in the local memory of the user workstation. When a file is selected at the user workstation, the user workstation checks its local memory for the file type information corresponding to the selected file. Because the information is periodically updated by the application launcher, the current information is available to associate a particular file type extension with an application stored remotely. As a result, the appropriate application may be initiated.

Description

CROSS-REFERENCES TO RELATED APPLICATIONS
This application is a continuation-in-part of U.S. patent application Ser. No. 08/499,711, filed Jul. 7, 1995, now U.S. Pat. No. 5,692,129, and is a nonprovisional application based on U.S. Provisional Application Ser. No. 60/013,331, filed Mar. 13, 1996.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to software for use in a network, and more particularly, to software for establishing an application associated with a selected non-executable file in a network environment.
2. Description of the Related Art
Computers have proven to be among the most powerful and versatile tools developed over the last several decades, and continue to improve as processing speeds rise, applications mature, and new innovations add functionality. A modem computer is considerably more powerful than computers only five or ten years old.
Although many computers are designed to operate as an isolated, standalone machine, systems designers commonly link multiple standalone computers into a network to facilitate communications and resource sharing. The network provides access to applications and devices to the various connected workstations so that the users may share these resources. In addition, the network facilitates communication among the workstations so that the users can exchange information. Many network schemes are known, including client/server, mainframe, and peer-to-peer systems.
The workstations in many networks are not merely dumb terminals, but retain many functions which allow them to operate as independent computers, even though many functions are provided by a connected computer, such as a server. Some useful features of standalone systems, however, conflict or defy compatibility with a network environment. For example, many standalone systems employ file typing to associate a file with a particular application and initiate that application. For example, in the WINDOWS 3.1 operating environment from MICROSOFT, a file manager program lists a series of files stored in a memory. The files may be associated with several different applications, such as a word processing, spreadsheet, or graphic design applications. While in the file manager program, a user may select one of the files for access, for example by using a pointing device like a mouse.
Individual files may include a file type extension, such as the last three letters in the name of the file, which corresponds to the relevant application. Such file type extensions indicate (to the file manager program) which application program is associated with the selected file. In the typical WINDOWS environment, the file manager accesses a local memory location which stores a table of file type extensions and a series of application identifiers to associate certain applications with particular file type extensions. The file manager then initiates the appropriate application and passes the file name to the application for access by the application.
In a network environment, however, many application programs typically reside on a remote computer, e.g. a server, to facilitate sharing of the application. As the applications become available or are updated on the remote computer, the file type information stored in the local memory of the workstation may become outdated. Consequently, a program such as the file manager may be unable to retrieve valid file type information from the local memory for a selected application stored on a remote computer. With respect to new applications resident at the remote computer, appropriate file type information may be nonexistent in the local memories of the network workstations. Thus, to ensure that the file type information is updated, the local memory of each workstation is individually adjusted each time the file type information for an application is added or changed at a great cost of administrator time and resources.
SUMMARY OF THE INVENTION
A system for associating file types with applications according to various aspects of the present invention provides alternative methods and apparatus for providing current file type information in a network environment. In a preferred embodiment, the applications are available on a network having a directory service. The applications are stored as objects on the network and are available through the directory service. Each application object (or an associated object in the directory service) includes file type information, and suitably other information, associated with the application. Such information may, for example, indicate if, which users are authorized to access particular applications.
The user workstations on the network include a system, for example an application launcher, for calling the application objects to identify which applications are available to the user or the workstation and for retrieving the file type information from the network server. The application launcher gathers the file type information and related information for each of the accessible applications and stores it in the local memory of the user workstation. Such updating of the file type information may be performed periodically, for example during a refresh cycle or upon logging onto the network, to ensure that the user workstations and the network server contain consistent information.
When a file is selected at the user workstation, the user workstation checks its local memory for the file type information corresponding to the selected file. Because the information is periodically updated by the application launcher, the current information is available to associate a particular file type extension with an application stored remotely. As a result, the appropriate application may be suitably initiated. In addition, because the file type information is stored with the application object, the file type information may be easily modified by adjusting the data stored in the application object. Consequently, individual adjustments to the local memories of the various workstations are unnecessary to update the file type information.
BRIEF DESCRIPTION OF THE DRAWING FIGURES
The subject matter of the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, may best be understood by reference to the following description taken in conjunction with the claims and the accompanying drawing, in which like parts may be referred to by like numerals:
FIG. 1 is a diagram of a network according to various aspects of the present invention;
FIG. 2 is a diagram illustrating the interaction of various network components;
FIG. 3 is a general flow diagram of a process for accessing and updating applications and the like on the network of FIGS. 1 and 2;
FIGS. 4A-B are a flow diagram of a setup procedure for the network;
FIG. 5 is a flow diagram of a procedure for launching an application using file type extensions; and
FIG. 6 is a flow diagram of an application launching process.
DETAILED DESCRIPTION OF PREFERRED EXEMPLARY EMBODIMENTS
Referring now to FIG. 1, a suitable network 10 for use in accordance with various aspects of the present invention comprises at least one file server 14; at least one user station 16; and a communications medium 17. In one embodiment, the network 10 operates in conjunction with Novell NetWare software, version 4.x (NetWare is a registered trademark of Novell, Inc.). The network 10 is suitably configured as several interconnected local networks 12. Each local network 12 may also include a server 14 and one or more user stations 16. The network 10 and local networks 12 further suitably include one or more other devices, such as a printer 18 and a disk array 20. Although a particular network 10 is shown, the network 10 may comprise any suitable computer network in a variety of configurations.
The server 14 suitably comprises a conventional computer, preferably a high speed computer, for providing access to files, printing, communications, and other services available to users of the network. The server 14 is suitably accessed by users via user stations 16 to access applications, store files, communicate, and the like. The server 14 also suitably communicates with other servers 14 and various devices, such as the printer 18 and the disk array 20.
Each user station 16 suitably comprises a terminal connected to at least one of the servers 14. Preferably, the user station 16 includes an independent microprocessor capable of communicating with the server 14 to make use of the services provided by the server 14. For example, the user station 16 suitably comprises an IBM-compatible personal computer equipped with a network card to facilitate communication with the server 14. In addition, the user station 16 suitably operates using an operating system and/or environment. For example, the user station 16 suitably operates using an MS-DOS operating system from MICROSOFT and a WINDOWS 3.1 platform, also available from MICROSOFT. It should be noted, however, that the particular operating system or environment may be any suitable operating system or environment, including Windows 95, UNIX, or others. Further, the user station 16 may be configured as a portable computer that may be selectively connected to the network 10 to operate as a user station 16 and disconnected from the network 10 to operate as an independent, standalone system.
The communications medium 17 facilitates communications between the various components of the network 10. For example, the communications medium 17 may comprise a system of conventional network cables connected between the various components. Alternatively, the communications medium 17 suitably comprises any sort of communications system, including fiber optic, telephonic, microwave, cellular, or wireless communication systems. The devices connected to the network, such as the printer 18 and the disk array 20, also suitably comprise conventional devices for performing various tasks in conjunction with requests from network components.
Referring now to FIGS. 1 and 2, administration and use of the network 10 are suitably supported by network software and hardware elements, administrator tools, and user tools. FIG. 2 illustrates an exemplary relationship between these components. In particular, the network 10 suitably includes a variety of accessible resources 22, such as an application 23 and data accessible to one or more of the file servers 14 and user stations 16.
In the present embodiment, the network resources 22 are administered through a directory services system 24. The precise nature of the directory services 24 may vary among different networks. In the present embodiment, the directory services system 24 operates on at least one of the servers 14 and suitably administers the location of the resources 22 and the rights of network users to use the resources 22. In a preferred embodiment, the directory services 24 include services provided by NetWare Directory Services ("NDS") software 26, which is commercially available from Novell, Inc. of Orem, Utah (NetWare Directory Services is a trademark of Novell, Inc.).
The directory services system 24 according to the present embodiment includes a schema 28; an interface library 34; and a database 38. The schema comprises a set of information relevant to the storage aspects of the database 38. For example, the schema 28 suitably includes a list of all of the fields in the database 38, the field types, the maximum and minimum acceptable values for each field, and information relating to the structure of the database 38. In a preferred embodiment, the schema 28 is an API-extensible schema in that the attributes and object classes found in the schema can be altered through an Application Programmers' Interface ("API") without direct access to the source code that implements the schema 28.
The interface library 34 provides access to the schema 28 and to the database 38. In some embodiments, the interface library 34 includes tables or commands stored in a file which are read by the schema 28 during its initialization and when objects are created to define the available attributes and classes. In addition or as an alternative, the interface library 34 may include a set of routines that are available to other programs to access and modify the schema 28. For example, the interface library 34 suitably includes an API that defines an interface to an NWDSxxx() library 36 which is commercially available from Novell, Inc. of Orem, Utah. The NWDSxxx() library 36 is so named because the names of functions and data types defined in the library 36 typically begin with "NWDS," an acronym for "NetWare Directory Services."
The database 38 suitably includes a "synchronized-partition" database. The database 38 is typically divided into two or more nonoverlapping partitions. To improve the response time to database 38 queries and to provide fault-tolerance, a replica of each partition is physically stored on one or more of the file servers 14 in the network 10. The replicas of a given partition are regularly updated by the directory services 24 through an automated synchronization process, consequently reducing the differences between replicas caused by activity on the network 10. In one embodiment, the database 38 includes a Novell NetWare Directory Services database ("NDS database") 40.
The database 38 further contains various database objects 49, 51. Objects 49 and 51 are suitably defined according to the schema 28 and the particulars of the network 10. These objects 49 and 51 represent resources 22 of the network 10, such as applications, files, and components. The database 38 is preferably a "hierarchical" database 38 because the objects 49 and 51 in the database 38 are connected in a hierarchical tree structure. Objects in the tree that can contain other objects are called "container objects." and are configured to be instances of a container object class.
Administration and use of the resources 22 are supported by the directory services 24, a set of administrator tools 42, and a set of user tools 44. The administrator tools 42 are suitably available to an administrator or administrative staff to control and manage the network 10. The administrator tools 42 suitably include partition management routines 46 for managing the partitions of the database 38. Further, the administrator tools 42 also suitably include application management routines 48 for creating, deleting, and modifying an application object 49 and/or desktop attributes for user, group, and a container object 51 in the database 38. As described further below, application objects 49 in the database 38 include an application program 23 and other information relevant to the application and its use on the network 10. The application objects 49 make application programs 23 available to network administrators and users alike.
The user tools 44 provide the user station and the user with various programs and mechanisms to manipulate data, suitably both independently and in conjunction with the network 10 and the resources 22. In a network system according to various aspects of the present invention, the user tools 44 suitably include an application launcher 50 for initiating applications 23 using corresponding application objects 49 in the database 38. For example, the NOVELL APPLICATION LAUNCHER may be provided as the application launcher 50. In addition, the user tools 44 further suitably include selected desktop environments 52, which may be modified by desktop attributes associated with database objects 49, such as user, group, and container objects, to facilitate the use of the application objects 49. User, group, container, and/or other objects 51 which have a desktop attribute are herein termed "desktop objects."
The user station 16 also suitably includes a memory system including a registry 58. The registry 58 suitably comprises a reserved section of memory resident on the user station 16 and used by the user station 16 for various functions. For example, in the WINDOWS 3.1 environment, the registry 58 is used to store, among other things, various information relevant to associating file type extensions with application programs 23 that may be stored in the database 38. For example, files may be selected at the user workstation 16 in programs such as the WINDOWS File Manager for execution. To determine the appropriate application to run to access the selected file, the file manager program accesses a library stored in the registry 58. The library contains information for matching various file type extensions with certain applications. Although the portion of memory is referred to as a registry 58, it should be noted that any suitable portion of memory may be used to perform the functions of the registry 58 in accordance with various aspects of the present invention.
The application management routines 48, as well as the schema 28, the database 38, and the registry 58, include tangible embodiments stored in one or more program storage devices 11. Suitable storage devices 11 include floppy disks, hard disks, tape, CD-ROMs, and other computer usable media. Each program storage device 11 is readable by one or more of the file servers 14 and user stations 16. Each program storage device 11 tangibly embodies a program, functions, or instructions that are executable by the server 14 and/or user station 16 to perform application managing steps.
As previously mentioned, database objects 49 represent various resources available on or otherwise associated with the network 10, such as application objects and desktop objects. For example, an application object 49 in the database 38 includes an application program 23 and a set of associated information relevant to the application program 23 and its use. The application objects 49 suitably render the application programs 23 available to network administrators and users alike. In a system according to various aspects of the present invention, an application object 49 representing an application program 23 and its associated information suitably includes a series of application attributes which indicate how the application program 23 is to be used and operated in the network 10. The application attributes are suitably modifiable by selected personnel, such as the network administrator. Thus, the administrator may control how the application program 23 is used and by which users, machines, groups, or the like.
For example, the application attributes suitably include an icon attribute containing some or all of a set of icon data. The icon attribute allows icons for all of the application objects 49 that are visible to the user to be obtained from the database 38. Each application object 49 further suitably includes a "file path" attribute. For example, a file path attribute may be set to have a value corresponding to the full path (including server name) to the application object's *.EXE, *.COM, *.BAT, or other executable file. In an alternative embodiment, the server name is maintained in a separate "server" attribute or a configurable default format. In some embodiments, the file path attribute is multi-valued rather than single-valued, and contains one or more executable file paths. Listing several file paths increases the possibility of launching an application program 23 in the event a particular server 14 becomes unavailable. The file path attribute is added to the generic application object's 49 class.
In some embodiments, fault tolerance is provided at a higher level by an application fault tolerance object 53 (FIG. 2). The application fault tolerance object 53 includes a list which references a plurality of application objects 49. One suitable embodiment of the list uses an "alternate application objects" attribute having a distinguished name attribute syntax and no flags. Alternatively, the alternate application objects attribute may be added to the generic application objects class.
In addition, application objects 49 suitably include file typing information associated with the application. The file typing information includes a set of information which may be associated with files corresponding to, generated by, or otherwise associated with the particular application. For example, if the application appends the file extension ".djn" to files it creates, this information may be reflected in the file typing information. In addition, the application object 49 further suitably includes information corresponding to an interface with the application program 23. For example, when a file is to be accessed following execution of the application, a particular format for the command line may be necessary to properly pass the file name to the application program 23. This information, referred to in this case as the file type command line parameters, is also suitably stored in the application object 49.
In a network 10 according to various aspects of the present invention, the application objects 49 are stored in the database 38 associated with the directory services 24. The application objects 49 may be stored in any suitable manner or organization. For example, the network administrator suitably places a set of application objects 49 in the same container object if they differ only in which server 14 (FIG. 1) holds the executable code. Thus, the application launcher 50 could easily locate a replacement application object 49 to launch if a server 14 or a portion of the communications medium 17 is lost. Alternatively, the "best" (i.e., newest, fastest, physically closest, located on least loaded server, or most reliable) version of an application 23 could be listed first, with less desirable versions following in order of decreasing desirability.
As previously indicated, the database 38 further suitably includes desktop objects, such as user objects, group objects, and container objects. The desktop objects are suitably associated with a particular user or user station 16. For example, a particular user may have a designated log in handle associated with a container object. Consequently, the user is subject to the terms of the container object represented by the desktop attributes in the container object, regardless of the particular user station 16 occupied by the user. Similarly, a particular user station 16 may be associated with a particular geographical object so that the attributes associated with the geographical object apply to the user station 16, regardless of the user occupying the user station 16. The desktop attributes may thus be used to organize users, stations 16, and other components of the network 10 to provide security and maximize the efficient use of network resources.
The application objects are available to at least a portion of the user stations 16 to request execution of application programs 23. To facilitate requests for execution, the user station 16 includes a suitable system for gaining access to particular applications via the application objects 49 in the database 38 using file typing information. In the present embodiment, the application launcher 50 performs various functions to associate file type extensions with the relevant application object 49 and initiate execution of the application program 23.
The application launcher 50 is suitably associated with the desktop environment 52. In some embodiments of the present invention, the application launcher 50 and the application management routines 48 are combined in a single tool, similar to the NWAdmin program available from NOVELL. These embodiments allow a user to readily browse or search for application objects 49 in the database 38 and to then launch that application object 49. Alternatively, the application launcher 50 may be configured to perform a search within the database 38 by searching the desktop attributes in one or more desktop objects 51.
In a preferred embodiment, the application launcher 50 is suitably initially stored at a public location on the network 10 where it can be downloaded by a user station 16 when the user logs onto the network 10, for example in conjunction with login scripts. In one embodiment of the application launcher 50, a program executed by the user station 16 reads a user object's container object in the database 38 when a user logs onto the network 10. The container object suitably includes a stream syntax "application launcher bootstrap" attribute which contains the executable code for the application launcher 50. Storing the application launcher 50 in a stream attribute provides the advantages of storage in the database 38, such as replication and distribution. Alternatively, the application launcher 50 may be stored on each individual user client 16 having access to the network 10. Execution of the application launcher 50 may be initiated automatically, for example following login, at the users's election, or via any other appropriate mechanism.
In a standalone configuration, the local registry 58 of the user station 16 suitably includes information, including file type information, for operating the user station 16 as a standalone computer. In the present embodiment, the local registry 58 of the user station 16 is reconfigured, for example by the application launcher 50, with registry information relevant to the application objects 49 in the database 38 which are accessible to the user station 16. In particular, the reconfiguration of the local registry 58 is suitably performed to provide file typing information corresponding to application programs 23 stored in the database 38.
For example, referring now to FIGS. 3 and 4A-B, the user station 16 initially engages in a setup procedure to configure the user station 16 for its environment (step 140). First, the user station 16 powers up, initializes, and boots (FIG. 4, step 200). In one embodiment, during or following the boot up process, the user station 16 checks a clean up flag stored in its local memory (step 202). This flag is controlled by the application launcher 50, as described in greater detail as below. If the clean up flag indicates that a clean up process was not completed at termination of the previous application launcher session, the user station 16 retrieves a set of registry parameters from a preselected location in the local memory and places it in the registry 58 (step 204). As described below, the registry parameters retrieved from the preselected memory location are those parameters used by the user station 16 as a standalone system. In an alternative embodiment, however, the clean up process may be performed by the application launcher 50 after it is initiated, as described in greater detail below.
The user station 16 then attempts to log onto the network 10 (step 206). If the network 10 is not available, for example due to disconnection or the like, the user station 16 configures itself for standalone operation (step 208). If the network 10 is available, the computer logs onto the network 10, suitably using an appropriate user identification and security measures (step 210). Once access to the network 10 is gained, the user station 16 downloads a series of login scripts and executes them (step 212).
After the user station 16 is logged onto the network 10, the application launcher 50 is suitably activated to collect the registry information for the application objects 49 available to the user station 16 on the network 10 and to adjust the local registry 58 accordingly (step 214). If the application launcher 50 is already resident, the user station 16 may automatically execute the application launcher 50 following the login process. Alternatively, the application launcher 50 may be manually activated by the user or called by another program. In the preferred embodiment, however, the application launcher 50 is stored at a public location, for example in the directory services database 38. The application launcher 50 may then be downloaded, such as during execution of the login scripts.
Upon execution, the application launcher 50 reads the current value of a launcher configuration attribute from the database 38 and stores that information in a local buffer (step 216). The launcher configuration attribute includes information relating to the application launcher 50, such as which or how many container objects are associated with the user and whether the icon information should be automatically refreshed.
The application launcher 50 then determines which application objects are accessible to the user station 16, i.e. the desktop objects. In a preferred embodiment, the application launcher 50 uses the information in the launcher configuration attribute to identify the container objects accessible to the user and user station 16. The application launcher 50 then suitably checks each application object 49 in each accessible container object designated by the launcher configuration attribute (step 218). If the user station 16 is authorized to access the application object 49, the application launcher 50 collects the icon information and file type information from the application object 49 (step 220). For example, the application launcher 50 may be configured to poll each of the accessible application objects 49, and to continue polling the application objects 49 at selected intervals to update the resources available to the user station 16. As previously indicated, the icon for an application program 23 is preferably stored in the icon attribute in addition to its usual storage in the application program's 23 executable file. Accordingly, the application launcher 50 collects the icons of all applications 23 listed in the desktop attribute. Similarly, the file type information and the command line parameters are also stored in the object and are accessible to the application launcher 50.
When each of the application objects 49 have been checked, the application launcher 50 copies the information currently in the user station 16 registry and stores it in the preselected location for the original registry information, as mentioned above (step 222). The application launcher 50 then displays the icons associated with the accessible applications. In addition, the application launcher 50 reconfigures the information in the registry 58 to include the file type information in the local registry 58 for each of the accessible application objects 49 (step 224). In particular, the application launcher 50 reconfigures the registry information so that if a match between a file type extension and an application object 49 occurs, the application launcher 50 is called, regardless of the relevant application object 49. In a preferred embodiment, the application launcher 50 reconfigures the registry 58 such that the application launcher 50 is called only if an application object 49 is called, and not in the event that a locally stored program is desired. As described in greater detail below, the application launcher 50 then initiates execution of the relevant application 23, checks the command line parameters in the application object 49 for the particular application 23, and provides the file name to the application 23 in the proper format.
If desired, the application launcher 50 may be configured to perform an auto start launching step 140 to launch a set of applications 23 specified in an auto start attribute of the desktop object 51 (step 140). The procedure for launching applications is described in greater detail below. As elsewhere, error messages are provided to the user and/or to the network administrator if an attempted step fails.
Referring again to FIG. 3, after the setup procedure is completed, the launcher 50 responds to commands or events provided by the user. One such command orders the launcher 50 to perform a manual icon refresh step 144. Icon refresh is useful because the network administrator may have added new application objects 49 to those available to the user, may have deleted other application objects 49, and/or may have changed the current attribute values of still other application objects 49 after the launcher 50 last read those values.
The application launcher 50 maintains an internal list of application objects 49 for which icons are currently displayed. A refresh process (step 144) causes the application launcher 50 to scan a portion of the database 38 to determine whether the application launcher's 50 internal list differs from the attributes listed in the desktop attribute of the desktop 52 in the database 38. The portion of the database 38 hierarchy to be searched is specified by the container levels value stored in the launcher configuration attribute of the user and container objects. In one embodiment, time stamps are used to detect changes to the database 38. Alternatively, a string comparison may be used to detect name changes. Any differences detected are reflected in the internal list and other internal data of the application launcher 50 and in the icons displayed on the user station 16 screen.
In addition, with continued reference to FIGS. 2 and 3, the application launcher 50 also performs certain procedures not directly requested by the user. For instance, the application launcher 50 maintains an internal structure that reflects the current status of each application 23 launched by the application launcher 50. This status information includes user interface information such as drive mappings, printer port captures, and server attachments made by the application launcher 50 before launching an application 23, and an indication whether the application 23 has terminated. The application launcher 50 detects termination of an application 23 by polling, by an interrupt or event notification, or by other familiar means. Changes in the application's 23 status are reflected in the application launcher's 50 internal structure during a status updating procedure (step 152).
If the launcher configuration attribute indicates that icons should be automatically refreshed, then an icon updating procedure (step 156) is also performed without a direct user request. Aside from being initiated by the application launcher 50, the icon updating procedure is substantially similar to the user-initiated manual icon refresh procedure. Both of these procedures are performed to reduce the workload of the network administrator by reducing or eliminating the need for the administrator to manually update user desktops 52 after changing the application objects 49 in the schema database 38.
The user may also select a specific application 23 and order the application launcher 50 to initiate execution of the selected application 23 (step 150). In an embodiment tailored to the WINDOWS environment, the application 23 is selected for launching by double-clicking a mouse button after positioning a desktop cursor over the application's 23 displayed icon. With reference to FIGS. 2 and 6, launching an application 23 includes executing a launching process for the selected application 23 (step 158). To launch a user selected application 23, the launching process is performed only once, whereas if the application launcher is configured to execute an auto start of one or more applications 23, the launching process is executed repeatedly, with one repetition being performed for each application 23 specified in the auto start attribute of the desktop 52.
In the present embodiment, the launching process includes a disabling procedure (step 160) which disables both the application status updating procedure (step 152) and the automatic icon updating process (step 156). Disabling the updating procedures simplifies the launching process by preventing inconsistencies in the application launcher's 50 status information.
A resource setup routine then sets up resources needed by the application 23 that is being launched (step 162). The resource setup routine also sets standard flags that communicate with operating system process creation routines. A process initialization routine (step 164) invokes an operating system routine or other process initializer to initialize a process control block or similar process control structure used by the operating system. The process initialization routine also allocates a processor to a process, task, or thread corresponding to the application 23. In an embodiment tailored to the WINDOWS environment, the process initialization routine includes a call to, for example, the ShellExecute() or CreateProcess() modules.
An update status routine (step 166) then updates the application launcher's 50 internal application status information to indicate that the application 23 has been launched. In one embodiment, the step 166 also records a process ID, instance handle, task handle, or other process identifier supplied by successful completion of the process initializer routine.
An enabling procedure (step 168) then reverses the disabling effects of the previous disabling procedure. This allows the updating procedures to proceed again. If the user interface was changed during the disabling procedure to indicate that launching is underway, such as by displaying an hourglass cursor, then that change is also reversed.
During a yielding procedure (step 170), a control transferor transfers control of a processor in the network 10 to the process initialized during the process initialization routine. The application launcher 50 suspends itself, invokes a sleep function, or otherwise yields control of the processor to the newly launched process of the application 23 to allow execution of the application program. In one embodiment tailored to the WINDOWS environment, the yield procedure includes a call to, for example, the Yield() routine.
Other embodiments of the invention may include different procedures which to accomplish substantially the same results as the described launching process. For instance, the process initialization routine may be combined with the yielding procedure in environments which provide a single system call to create a new process and pass control to that process. In some such embodiments, the relative order of the disabling procedure and the setup resources procedure is reversed. In addition, the disabling procedure and the enabling procedure are omitted in embodiments which do not use interrupt or event paradigms. That is, the disabling procedure and the enabling procedure are omitted when there is no risk of creating inconsistent status information in the launcher 50 during the launching process.
Further, in accordance with various aspects of the present invention, the user may select a file for access and automatically initiate execution of the relevant application 23 and accessing of the file. When a file is selected for access, the application launcher 50, using the file type extension portion of the filename, accesses the information stored in the local registry 58 to find the application 23 associated with the file type extension. The application launcher 50 further suitably initiates execution of the appropriate application 23. Moreover, the application launcher determines the format required by the application program 23 to provide the file name to the application program 23, and proceeds to provide the file name to the application in the proper format.
For example, referring now to FIG. 5, a user may select a particular file for access, for example by positioning the cursor over the file name or icon and double-clicking the appropriate mouse button (step 502). The operating system or other relevant software, such as the file manager program in the WINDOWS environment, accesses the local registry 58 to identify the application program 23 corresponding to the file type extension of the selected file (step 504). If no match occurs, an error message is returned (step 506). If a corresponding application object 49 is found via the registry 58, the information stored in the registry 58 directs the system to call the relevant application program 23. If the application program 23 is a locally stored application, the application is initiated conventionally. If the application program 23 is a shared application stored in the database 38, however, the application launcher 50 is called, regardless of which application object 49 corresponds to the file type extension (step 508).
When the application launcher 50 activates, the application launcher 50 calls the application program 23 associated with the relevant application object 49 to initiate execution of the application program 23 by executing the launching process (step 158). The application launcher 50 further reads the command line information from the application object 49 to determine the appropriate format in which to provide the file name to the application program 23 (step 512). The application launcher 50 then places the file name in the appropriate format as indicated by the file type command line parameters and provides it to the application program 23 (step 514). Alternatively, the application launcher 50 may be registered as a DDE protocol server. In this configuration, the application launcher 50 provides the file name to the application program 23 in the appropriate form via a DDE exchange using the DDE format.
When the application launcher 50 terminates, the application launcher 50 updates the status information and cleans up during a cleaning process (step 154). The cleaning process, which proceeds according to the settings in the application object's flags attribute, possibly includes unmapping drives, releasing captured printer ports, detaching from servers 14, and releasing memory used internally by the application launcher 50 to hold the application's status information. Further, upon request by the user to exit the application launcher 50, the application launcher 50 copies the original registry information from the user station's 16 memory into the registry 58. In addition, the application launcher 50 suitably sets the cleanup flag to indicate that the cleanup was properly performed.
While the principles of the invention have now been made clear in illustrative embodiments, there will be immediately obvious to those skilled in the art many modifications of structure, arrangements, proportions, the elements, materials and components, used in the practice of the invention which are particularly adapted for a specific environment and operating requirements without departing from those principles.

Claims (56)

We claim:
1. A computer-implemented method of providing, to a user computer, file type extension data associated with a plurality of application objects stored with associated attributes in a synchronized-partition database in a memory associated with a server, wherein at least one of the application objects has an attribute representing an application program and that application object includes at least one file type extension indicia corresponding to the application program, comprising the steps of:
establishing a communication link between the server and the user computer;
transferring the at least one file type extension indicia from the at least one of the application objects to a memory associated with the user computer via the communication link;
receiving input data at the user computer, wherein the input data identifies a file type extension which corresponds to the application program represented by the application object attribute; and
identifying the application program corresponding to the file type extension according to the application object file type extension indicia which was previously transferred to the memory associated with the user computer.
2. The method of claim 1, wherein at least one of the application objects includes an icon indicia, further comprising the steps of:
transferring the icon indicia from the at least one of the application objects to the memory associated with the user computer; and
displaying an icon corresponding to the icon indicia at the user computer.
3. The method of claim 1, further comprising the step of replicating at least one of the application objects and its file type extension indicia among a plurality of partitions of the database.
4. The method of claim 1, wherein the application objects are organized in a hierarchical structure.
5. The method of claim 1, wherein the step of transferring the at least one file type extension indicia comprises the steps of:
identifying a user account to be accessed via the user computer;
determining whether an access to the application program by the user account is authorized; and
copying the file type extension indicia to the memory associated with the user computer only if the access to the application program by the user account is authorized.
6. The method of claim 1, further comprising the steps of:
copying a second file type extension indicia stored at the first location in the user computer memory to a second location in the user computer memory; and
storing the first file type extension indicia associated with the application objects at the first location in the user computer memory.
7. The method of claim 6, further comprising the step of determining whether the server is responsive to the user computer, and wherein the steps of copying a second file type extension indicia and storing the first file type extension indicia are performed only if the server is responsive to the user computer.
8. The method of claim 1, wherein at least one of the application objects includes at least one command line parameter, and further comprising the step of transferring the at least one command line parameter specifying a format from the at least one of the application objects to the memory associated with the user computer.
9. The method of claim 8, further comprising the step of initiating the application program corresponding to the file type extension and passing the file name to the application program in the format specified by the command line parameter.
10. The method of claim 1, wherein at least one of the step of identifying the application object and the step of transferring the file type extension data is initiated by an application launcher.
11. The method of claim 1, further comprising the step of initiating an application launcher prior to the step of identifying the application program, and during the initiating step the application launcher determines which application objects are accessible to the user computer.
12. The method of claim 1, wherein the at least one of the application objects further includes a command line parameter, further comprising the steps of:
transferring the command line parameter from the at least one of the application objects to the memory associated with the user computer via the communication link;
initiating the application program corresponding to the file type extension; and
passing the file name to the application program in the format specified by the command line parameter.
13. A computer-implemented method of providing file type extension information associated by application objects with a plurality of programs stored on a server, the application objects defined according to a database schema, wherein at least one of the plurality of programs is available to a user account accessible via a user computer, comprising the steps of:
establishing a communication link between the server and the user computer;
collecting file type extension information from at least one application object associated with the at least one program available to the user account from the server;
transferring the file type extension information associated with the at least one program to the user computer via the communication link; and
replicating among a plurality of partitions at least one application object which associates the at least one program available to the user account and the file type extension information.
14. The method of claim 13, further comprising the steps of:
collecting an icon indicia associated by an application object with the at least one program available to the user account from the server;
transferring the icon indicia from the server to the user computer; and
displaying an icon corresponding to the icon indicia at the user computer.
15. The method of claim 13, wherein the step of transferring the file type extension information comprises the steps of:
identifying the user account to be accessed via the user computer;
determining whether an access to the at least one of the plurality of programs by the user account is authorized; and
copying the file type extension information to the memory associated with the user computer only if the access to the application program by the user account is authorized.
16. The method of claim 13, further comprising the steps of:
copying a second file type extension information stored at a first location in a memory associated with the user computer to a second location in the memory associated with the user computer; and
storing the file type extension information associated with the at least one program at the first location in the user computer memory.
17. The method of claim 13, wherein the at least one program available to the user account corresponds to at least one command line parameter specifying a format, and further comprising the step of transferring the at least one command line parameter from the server to the user computer via the communication link.
18. The method of claim 17, further comprising the steps of:
receiving input data at the user computer, wherein the input data identifies a file having a file type extension, wherein the file type extension corresponds to the at least one program available to the user account;
initiating the at least one program available to the user account corresponding to the file type extension; and
passing the file name to the application program in the format specified by the command line parameter.
19. The method of claim 13, wherein at least one of the step of collecting file type extension information and the step of transferring the file type extension information is initiated by an application launcher.
20. The method of claim 13, further comprising the steps of:
collecting at least one command line parameter specifying a file name format associated by an application object with the at least one program available to the user account from the server;
transferring the at least one command line parameter to the user computer via the communication link;
initiating the at least one program; and
passing a file name to the application program in the format specified by the at least one command line parameter.
21. A computer system using file type extension information, comprising:
a server having a memory, the server memory containing a plurality of application objects, each of which represents one or more programs and includes at least one file type extension indicia, wherein at least one of the plurality of programs is associated by at least one application object with the at least one file type extension indicia, and wherein the server memory includes a plurality of partitions, and at least one of the plurality of programs and the at least one file type extension indicia are replicated among the plurality of partitions; and
a workstation having a memory, wherein the workstation is configured to be selectively connected to the server, including:
a retrieval system configured to be selectively connected to the server for retrieving the at least one file type extension indicia from the application object in the server memory; and
a storage system responsive to the retrieval system for storing the at least one file type extension indicia retrieved from the server memory in the workstation memory.
22. The computer system of claim 21, wherein the workstation further includes an application initiation system, including:
a selection system for receiving selection data specifying a file having a file extension stored in the workstation memory for access;
an identifying system for identifying the at least one of the plurality of programs corresponding to the file extension based on the file type extension indicia stored in the workstation memory;
an initiation system for initiating the identified at least one of the plurality of programs associated with the file type extension indicia; and
a file name system for passing the file name to the initiated at least one of the plurality of programs in the format specified by the command line parameter.
23. The computer system of claim 22, wherein the application initiation system includes an application launcher.
24. The computer system of claim 21, wherein at least one of the plurality of programs is associated with an icon indicia by an application object stored in the server memory, the retrieval system is configured to be selectively connected to the server for retrieving the icon indicia from the application object in the server memory, the workstation further comprising a display system configured to display an icon corresponding to the icon indicia.
25. The computer system of claim 21, wherein the application objects which represent the plurality of programs are organized in a hierarchical structure.
26. The computer system of claim 21, wherein the user computer operates in conjunction with a selected user account among a plurality of user accounts, access to the at least one of the plurality of programs is authorized for at least one of a plurality of user accounts, and wherein said retrieval system is configured to retrieve the at least one file type extension indicia only if the selected user account is authorized to access the at least one of the plurality of programs.
27. The computer system of claim 21, wherein the workstation memory contains an outdated file type extension indicia at a first location in the workstation memory, and said storage system is further configured to copy the outdated file type extension indicia to a second location in the workstation memory and store the file type extension indicia retrieved from the server at the first location in the workstation memory.
28. The computer system of claim 27, wherein the storage system is configured to copy the outdated file type extension indicia to a second location in the workstation memory and store the file type extension indicia retrieved from the server at the first location in the workstation memory only if the server is responsive to the workstation.
29. The computer system of claim 21, wherein the at least one of the plurality of programs is associated with at least one command line parameter specifying a format stored in the server memory and the retrieval system is configured to be selectively connected to the server for retrieving the command line parameter from the server memory.
30. The computer system of claim 29, wherein the workstation further includes an application initiation system, including:
a selection system for receiving selection data specifying a file having a file extension stored in the workstation memory for access;
an identifying system for identifying the at least one of the plurality of programs corresponding to the file extension based on the file type extension indicia stored in the workstation memory;
an initiation system for initiating the identified at least one of the plurality of programs associated with the file type extension indicia; and
a file name system for passing the file name to the initiated at least one of the plurality of programs in the format specified by the command line parameter.
31. The computer system of claim 21, wherein the retrieval system includes an application launcher.
32. A computer system using file type extension information, comprising:
a network including a database having a plurality of application objects, wherein at least one of the application objects includes an application program and file type extension data associated with the application program, wherein the database includes a plurality of partitions, and the plurality of application objects is replicated among the plurality of partitions;
a user workstation configured to be selectively connected to the network, including:
a memory, including:
a registry portion of the memory; and
at least one file stored in the memory, wherein the file is associated with the application program and has a file type extension; and
an application launcher operating on the user workstation, wherein the application launcher includes:
a transfer system configured to be selectively connected to the database for transferring the file type extension data from the at least one of the application objects to the registry;
an identification system having access to the memory for identifying the application program associated with the at least one file according to the file type extension data in the registry and the file type extension of the file; and
an application initiation system responsive to the identification system and configured to be selectively connected to the network for initiating execution of the application program.
33. The computer system of claim 32, wherein the identification system includes:
a selection system connected to an input device for receiving selection data from the input device specifying the at least one file for access; and
a matching system responsive to the selection system for matching the file type extension of the at least one file with the application program associated with the file based on the file type extension data transferred to the registry and the file type extension of the at least one file.
34. The computer system of claim 32, wherein the at least one of the application objects further includes a command line parameter specifying a format for providing a file name to the application program, and the transfer system is further configured to be selectively connected to the database for transferring the command line parameter from the at least one of the application objects to the memory.
35. The computer system of claim 34, wherein the application initiation system includes:
an launching system configured to be selectably connected to the network for launching the identified application program associated with the at least one file; and
a file name system having access to the memory and responsive to the launching system for passing the file name to the initiated at least one of the plurality of programs in the format specified by the command line parameter.
36. The computer system of claim 34, wherein the application initiation system includes an application launcher.
37. The computer system of claim 32, wherein the at least one of the application objects includes an icon indicia stored in the database, the transfer system is configured to be selectively connected to the database for transferring the icon indicia from the database to the user workstation memory, the user workstation further comprising a display system configured to display an icon corresponding to the icon indicia.
38. The computer system of claim 32, wherein the plurality of application objects is organized in a hierarchical structure.
39. The computer system of claim 32, wherein the user workstation operates in conjunction with a selected user account among a plurality of user accounts, access to the application program is authorized for at least one of the plurality of user accounts, and wherein said transfer system transfers the file type extension data only if the selected user account is authorized to access the at least one of the plurality of programs.
40. The computer system of claim 32, wherein the user workstation memory contains outdated file type extension data in the registry, and the transfer system copies the outdated file type extension data to a backup location in the workstation memory prior to transferring the file type extension data from the at least one of the application objects to the registry.
41. The computer system of claim 40, wherein the transfer system copies the outdated file type extension data to a backup location in the workstation memory prior to transferring the file type extension data from the at least one of the application objects to the registry only if the user workstation is connected to the network.
42. A computer-implemented method for executing a program represented by an attribute of an application object to access a data file having a name and a file type designator via a workstation, comprising the steps of:
selecting the data file at the workstation using an input device connected to the workstation;
identifying the program for accessing the data file according to the file type designator and at least one file type designator datum stored in at least one of a server and the workstation;
initiating execution of the identified program on at least one of the server and the workstation;
determining a file name format associated by the application object with the identified program according to the file type designator and at least one command line parameter stored in the application object on at least one of the server and the workstation;
formatting the file name of the data file in the determined file name format; and
providing the formatted file name to the executing program.
43. The method of claim 42, further comprising the step of transferring the at least one file type designator datum stored in the server to the workstation.
44. The method of claim 43, further comprising the steps of:
copying an outdated file type designator datum stored at a first location in the workstation to a second location in the workstation; and
storing the file type designator datum from the server at the first location in the workstation.
45. The method of claim 44, further comprising the step of determining whether the workstation is connected to the server, and wherein the steps of copying an outdated file type designator datum and storing the file type designator datum from the server are performed only if the workstation is connected to the server.
46. The method of claim 43, wherein the step of transferring the at least one file type designator datum comprises the steps of:
identifying a user account to be accessed via the workstation;
determining whether an access to the program by the user account is authorized; and
copying the file type designator datum to the workstation only if the access to the program by the user account is authorized.
47. The method of claim 42, wherein an icon indicia associated with the program is stored on the server, further comprising the steps of:
transferring the icon indicia from the server to the workstation; and
displaying an icon corresponding to the icon indicia at the workstation.
48. The method of claim 42, further comprising the step of replicating at least one application object representing the program among a plurality of partitions.
49. A computer system, comprising:
a server, including a plurality of programs stored on the server, wherein each of the programs is associated with a file name format by at least one application object;
a workstation, wherein the workstation is selectably responsive to the server, comprising:
a memory, wherein said memory contains:
a plurality of files, wherein at least one of the files includes a file name and a file type designator; and
a set of file type information in at least one application object attribute indicative of at least one of the plurality of programs as corresponding to the file type designator;
a file selector having access to the memory for designating the at least one of the files to be accessed; and
an application launcher responsive to the file selector and having access to the memory, wherein the application launcher identifies the at least one of plurality of programs based on the file type information and the file type designator, initiates the identified program stored on the server, and formats the file name of the selected file in the file name format of the identified program.
50. The computer system of claim 49, wherein the workstation further comprises a retrieval system configured to be selectively connected to the server for retrieving a second set of file type information from the server and storing the second set of file type information in the workstation memory.
51. The computer system of claim 49, wherein the application launcher comprises:
an identifying system for identifying the at least one of the plurality of programs corresponding to the file type designator based on the file type information;
an initiation system for initiating the identified at least one of the plurality of programs associated with the file type designator; and
a file name system for passing the file name to the initiated at least one of the plurality of programs in the file name format of the identified at least one of the plurality of programs.
52. The computer system of claim 49, wherein the at least one of the plurality of programs is associated with an icon indicia stored on the server and the application launcher is configured to be selectively connected to the server for retrieving the icon indicia from the server, the workstation further comprising a display system configured to display an icon corresponding to the icon indicia.
53. The computer system of claim 49, wherein the server includes a plurality of partitions, and the at least one of the plurality of programs and the file type information are replicated among the plurality of partitions.
54. The computer system of claim 49, wherein the workstation operates in conjunction with a selected user account among a plurality of user accounts on the server, access to the at least one of the plurality of programs is authorized for at least one of a plurality of user accounts, and wherein the application launcher initiates the at least one of the plurality of programs only if the selected user account is authorized to access the at least one of the plurality of programs.
55. The computer system of claim 49, wherein the workstation memory contains an outdated set of file type information at a first location in the workstation memory, and the application launcher selectively connects to the server for retrieving an updated set of file type information from the server, copies the outdated set of file type information to a second location in the workstation memory, and stores the updated set of file type information retrieved from the server at the first location in the workstation memory.
56. The computer system of claim 55, wherein the application launcher copies the outdated set of file type information to the second location in the workstation memory and stores the updated set of file type information retrieved from the server at the first location in the workstation memory only if the server is responsive to the workstation.
US08/816,256 1995-07-07 1997-03-13 System for replicating and associating file types with application programs among plurality of partitions in a server Expired - Lifetime US6047312A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/816,256 US6047312A (en) 1995-07-07 1997-03-13 System for replicating and associating file types with application programs among plurality of partitions in a server

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08499711 US5692129B1 (en) 1995-07-07 1995-07-07 Managing application programs in a computer network by using a database of application objects
US1333196P 1996-03-13 1996-03-13
US08/816,256 US6047312A (en) 1995-07-07 1997-03-13 System for replicating and associating file types with application programs among plurality of partitions in a server

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US08499711 Continuation-In-Part US5692129B1 (en) 1995-07-07 1995-07-07 Managing application programs in a computer network by using a database of application objects

Publications (1)

Publication Number Publication Date
US6047312A true US6047312A (en) 2000-04-04

Family

ID=46254440

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/816,256 Expired - Lifetime US6047312A (en) 1995-07-07 1997-03-13 System for replicating and associating file types with application programs among plurality of partitions in a server

Country Status (1)

Country Link
US (1) US6047312A (en)

Cited By (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026605A1 (en) * 2000-04-06 2002-02-28 Terry Robert F. System and method for real time monitoring and control of a computer machine environment and configuration profile
US6366876B1 (en) * 1997-09-29 2002-04-02 Sun Microsystems, Inc. Method and apparatus for assessing compatibility between platforms and applications
US6424976B1 (en) 2000-03-23 2002-07-23 Novell, Inc. Method of implementing a forward compatibility network directory syntax
US20020112150A1 (en) * 1998-10-22 2002-08-15 Lawing Rod D. Method and system for central management of a computer network
US6519610B1 (en) 2000-09-01 2003-02-11 Novell, Inc. Distributed reference links for a distributed directory server system
US20030069923A1 (en) * 2001-10-02 2003-04-10 Franklyn Peart Method for distributed program execution with server-based file type association
US20030069924A1 (en) * 2001-10-02 2003-04-10 Franklyn Peart Method for distributed program execution with web-based file-type association
US20030074393A1 (en) * 2001-10-02 2003-04-17 Franklyn Peart Methods for distributed program execution with file-type association in a client-server network
US20030079132A1 (en) * 2001-02-23 2003-04-24 International Business Machines Corporation Computer functional architecture and a locked down environment in a client-server architecture
US20030076362A1 (en) * 2001-09-28 2003-04-24 Masahiro Terada Display control method and display control processing system for concealed window on desktop
US20030084096A1 (en) * 2001-10-31 2003-05-01 Bryan Starbuck Computer system with file association and application retrieval
US6633906B1 (en) * 1999-04-26 2003-10-14 International Business Machines Corporation Method and system for managing windows desktops in a heterogeneous server environment
US6664979B1 (en) * 1994-12-29 2003-12-16 Microsoft Corporation Aggregation of system settings into objects
US20040049544A1 (en) * 2002-09-05 2004-03-11 Hitachi, Ltd. In-context launch management method, system therefor, and computer-readable storage medium
US6748380B2 (en) 2001-05-14 2004-06-08 International Business Machines Corporation Method, system, and program product for permission to access software
US20040133622A1 (en) * 2002-10-10 2004-07-08 Convergys Information Management Group, Inc. System and method for revenue and authorization management
US20040181557A1 (en) * 2001-07-26 2004-09-16 Microsoft Corporation System and method for reliably replicating data
US6804817B1 (en) * 1997-08-08 2004-10-12 Fujitsu Limited Information-object designation system
US6834301B1 (en) * 2000-11-08 2004-12-21 Networks Associates Technology, Inc. System and method for configuration, management, and monitoring of a computer network using inheritance
US20050044423A1 (en) * 1999-11-12 2005-02-24 Mellmer Joseph Andrew Managing digital identity information
DE10260999B4 (en) * 2002-11-08 2005-03-03 Dr. Nussbaum Gesellschaft für Informationsverarbeitung, Fachberatung und Telekommunikation mbH Method for controlling a computer
US6868451B1 (en) * 2000-06-20 2005-03-15 Palm Source, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US20050071378A1 (en) * 2003-09-30 2005-03-31 Smith Alan G. Method of storing applications on removable storage
US20050172315A1 (en) * 2004-02-03 2005-08-04 Microsoft Corporation Virtual tuner
US20050177832A1 (en) * 1998-11-24 2005-08-11 Microsoft Corporation System and method for terminating applications
US20050278419A1 (en) * 2004-06-14 2005-12-15 Morris Robert P System and method for linking resources with actions
US20060020545A1 (en) * 2004-07-26 2006-01-26 Microsoft Corporation Payroll system
US20060059174A1 (en) * 2004-09-16 2006-03-16 International Business Machines Corporation Apparatus, system, and method for locating an application compatible with a file
US20060070029A1 (en) * 2004-09-30 2006-03-30 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US20060069662A1 (en) * 2004-09-30 2006-03-30 Citrix Systems, Inc. Method and apparatus for remapping accesses to virtual system resources
US20060085789A1 (en) * 2004-09-30 2006-04-20 Laborczfalvi Lee G Method and apparatus for moving processes between isolation environments
US20060090171A1 (en) * 2004-09-30 2006-04-27 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US20060101053A1 (en) * 2004-11-05 2006-05-11 Proctor Reginal R System and method for associating software programs with data files within a computer network
US20060123125A1 (en) * 2000-12-01 2006-06-08 Microsoft Corporation Peer networking host framework and hosting API
US7072911B1 (en) 2001-07-27 2006-07-04 Novell, Inc. System and method for incremental replication of changes in a state based distributed database
US7177906B2 (en) 2001-05-31 2007-02-13 Palmsource, Inc. Software application launching method and apparatus
US7194557B1 (en) * 2004-11-08 2007-03-20 Palmsource, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US20070067321A1 (en) * 2005-09-19 2007-03-22 Bissett Nicholas A Method and system for locating and accessing resources
US20070083868A1 (en) * 2000-05-02 2007-04-12 Microsoft Corporation Methods and Architectures for Resource Management
US20070083610A1 (en) * 2005-10-07 2007-04-12 Treder Terry N Method and a system for accessing a plurality of files comprising an application program
US20070083522A1 (en) * 2005-10-07 2007-04-12 Nord Joseph H Method and a system for responding locally to requests for file metadata associated with files stored remotely
AU2006233277B2 (en) * 2001-10-02 2007-07-05 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US7302452B2 (en) 2003-06-05 2007-11-27 International Business Machines Corporation Method and apparatus for handling requests for files in a data processing system
US20070288535A1 (en) * 2006-06-13 2007-12-13 Hitachi, Ltd. Long-term data archiving system and method
US20080034280A1 (en) * 2002-11-28 2008-02-07 Carro Fernando I Method and systems for hyperlinking files
US20080148000A1 (en) * 2006-12-18 2008-06-19 Novell, Inc. Techniques for data replication with snapshot capabilities
US20080222348A1 (en) * 2007-03-08 2008-09-11 Scandisk Il Ltd. File system for managing files according to application
AU2006233857B2 (en) * 2001-10-02 2008-09-11 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US20080235669A1 (en) * 2003-02-10 2008-09-25 International Business Machines Corporation Method, system, and program product for accessing required software to process a file
US20080250190A1 (en) * 2007-04-03 2008-10-09 Brian Johnson Portable memory device operating system and method of using same
US20090106780A1 (en) * 2007-10-20 2009-04-23 Nord Joseph Method and system for communicating between isolation environments
US20090171917A1 (en) * 2007-12-31 2009-07-02 Htc Corporation Method for opening file
US20090193030A1 (en) * 2008-01-30 2009-07-30 Gorsev Blagojce electronic device, a database, system, and method for presenting the content of a file to a user
US20090240698A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Computing environment platform
US20100122313A1 (en) * 2008-11-09 2010-05-13 Aspect9, Inc. Method and system for restricting file access in a computer system
US7797727B1 (en) * 2005-01-31 2010-09-14 Hewlett-Packard Development Company, L.P. Launching an application in a restricted user account
US20100281102A1 (en) * 2009-05-02 2010-11-04 Chinta Madhav Methods and systems for launching applications into existing 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
US7882170B1 (en) * 2004-10-06 2011-02-01 Microsoft Corporation Interfacing a first type of software application to information configured for use by a second type of software application
US7908252B1 (en) 2008-03-19 2011-03-15 Crossroads Systems, Inc. System and method for verifying paths to a database
EP2407874A1 (en) * 2010-07-15 2012-01-18 Research in Motion Corporation Method and apparatus for designating a given file as selected in a computing device
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
US20120131004A1 (en) * 2008-08-11 2012-05-24 Mcdermott Matt Method for enhanced vehicle service
US20120150898A1 (en) * 2010-12-09 2012-06-14 International Business Machines Corporation Dynamic Collection Of System Support Files In A Data Processing Environment
WO2013173940A1 (en) * 2012-05-22 2013-11-28 Beijing Baina Info - Tech,Co., Ltd A method and system for providing application data
US8627068B1 (en) 2005-04-29 2014-01-07 Hewlett-Packard Development Company, L. P. Selecting access authorities
US20140109084A1 (en) * 2012-08-30 2014-04-17 Tencent Technology (Shenzhen) Company Limited Systems and Methods for File Processing
WO2014186246A1 (en) * 2013-05-14 2014-11-20 Google Inc. System and method for identifying applicable third-party applications to associate with a file
WO2015103249A3 (en) * 2013-12-31 2015-08-20 Google Inc. Associating network-hosted files with network-hosted applications
US9135279B2 (en) 2007-05-04 2015-09-15 Microsoft Technology Licensing, Llc Mesh-managing data across a distributed set of devices
US9292280B2 (en) 2013-03-15 2016-03-22 Google Inc. Systems and methods for multi-tiered format registration for applications
US20170024264A1 (en) * 2013-03-14 2017-01-26 Vmware, Inc. Attaching applications based on file type
US20180121030A1 (en) * 2016-10-28 2018-05-03 Vmware, Inc. Adapting remote display protocols to remote applications
US20180121036A1 (en) * 2016-11-01 2018-05-03 Adobe Systems Incorporated Server-driven custom context menus
US10027764B2 (en) 2013-12-31 2018-07-17 Google Llc Associating network-hosted files with network-hosted applications
US10404769B2 (en) 2013-12-31 2019-09-03 Google Llc Remote desktop video streaming alpha-channel
US20210297495A1 (en) * 2016-10-24 2021-09-23 Palantir Technologies Inc. Automatic discovery and registration of service applications for files introduced to a user interface
US11841970B1 (en) * 2007-09-26 2023-12-12 Trend Micro Incorporated Systems and methods for preventing information leakage
US20230418624A1 (en) * 2022-06-24 2023-12-28 Microsoft Technology Licensing, Llc File opening optimization

Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4555775A (en) * 1982-10-07 1985-11-26 At&T Bell Laboratories Dynamic generation and overlaying of graphic windows for multiple active program storage areas
US4961224A (en) * 1989-03-06 1990-10-02 Darby Yung Controlling access to network resources
US5109486A (en) * 1989-01-06 1992-04-28 Motorola, Inc. Distributed computer system with network and resource status monitoring
US5261098A (en) * 1991-08-28 1993-11-09 Sun Microsystems, Inc. Method and apparatus for deriving object type and obtaining object type attribute values
US5265250A (en) * 1990-03-29 1993-11-23 At&T Bell Laboratories Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
US5271007A (en) * 1990-12-25 1993-12-14 Fuji Xerox Co., Ltd. Network system having controlled access to available resources
US5276883A (en) * 1989-08-03 1994-01-04 International Business Machines Corporation System and method for uniform control of local and remote applications in a data processing network
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
US5341478A (en) * 1990-08-14 1994-08-23 Digital Equipment Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5349642A (en) * 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
US5355497A (en) * 1992-06-10 1994-10-11 Physiotronics Corporation File directory structure generator and retrevial tool with document locator module mapping the directory structure of files to a real world hierarchical file structure
US5367635A (en) * 1991-08-29 1994-11-22 Hewlett-Packard Company Network management agent with user created objects providing additional functionality
US5412772A (en) * 1992-10-13 1995-05-02 Novell, Inc. System for permitting a view of an object or a user interface to be exchanged between operating system environments
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling system
US5423003A (en) * 1994-03-03 1995-06-06 Geonet Limited L.P. System for managing network computer applications
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
US5442791A (en) * 1992-03-31 1995-08-15 Aggregate Computing, Inc. Integrated remote execution system for a heterogenous computer network environment
US5491796A (en) * 1992-10-23 1996-02-13 Net Labs, Inc. Apparatus for remotely managing diverse information network resources
US5522077A (en) * 1994-05-19 1996-05-28 Ontos, Inc. Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers
US5539870A (en) * 1992-10-05 1996-07-23 International Business Machines Corporation Computerized system and process for interactively managing a distributed database system
US5542086A (en) * 1993-07-06 1996-07-30 Novell, Inc. Document type metamorphosis in an object-oriented operating system having a graphical user interface
US5572724A (en) * 1992-10-12 1996-11-05 Hitachi, Ltd. System for controlling communications between an application and a remote system using a protocol identifier and an application context identifier
US5592676A (en) * 1990-02-28 1997-01-07 Bull, S.A. System architecture for enabling remote console control of an application and method of using said architecture
US5655081A (en) * 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
US5666486A (en) * 1995-06-23 1997-09-09 Data General Corporation Multiprocessor cluster membership manager framework
US5689708A (en) * 1995-03-31 1997-11-18 Showcase Corporation Client/server computer systems having control of client-based application programs, and application-program control means therefor
US5692129A (en) * 1995-07-07 1997-11-25 Novell, Inc. Managing application programs in a computer network by using a database of application objects
US5729682A (en) * 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
US5758355A (en) * 1996-08-07 1998-05-26 Aurum Software, Inc. Synchronization of server database with client database using distribution tables
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US5764908A (en) * 1996-07-12 1998-06-09 Sofmap Future Design, Inc. Network system containing program modules residing in different computers and executing commands without return results to calling modules
US5768511A (en) * 1995-09-18 1998-06-16 International Business Machines Corporation Method and system for managing objects in networked computer system with action performed in the server and object updated in the client
US5797139A (en) * 1995-12-14 1998-08-18 International Business Machines Corporation Method, memory and apparatus for designating a file's type by building unique icon borders

Patent Citations (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4555775B1 (en) * 1982-10-07 1995-12-05 Bell Telephone Labor Inc Dynamic generation and overlaying of graphic windows for multiple active program storage areas
US4555775A (en) * 1982-10-07 1985-11-26 At&T Bell Laboratories Dynamic generation and overlaying of graphic windows for multiple active program storage areas
US5109486A (en) * 1989-01-06 1992-04-28 Motorola, Inc. Distributed computer system with network and resource status monitoring
US4961224A (en) * 1989-03-06 1990-10-02 Darby Yung Controlling access to network resources
US5276883A (en) * 1989-08-03 1994-01-04 International Business Machines Corporation System and method for uniform control of local and remote applications in a data processing network
US5592676A (en) * 1990-02-28 1997-01-07 Bull, S.A. System architecture for enabling remote console control of an application and method of using said architecture
US5265250A (en) * 1990-03-29 1993-11-23 At&T Bell Laboratories Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
US5341478A (en) * 1990-08-14 1994-08-23 Digital Equipment Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5271007A (en) * 1990-12-25 1993-12-14 Fuji Xerox Co., Ltd. Network system having controlled access to available resources
US5261098A (en) * 1991-08-28 1993-11-09 Sun Microsystems, Inc. Method and apparatus for deriving object type and obtaining object type attribute values
US5367635A (en) * 1991-08-29 1994-11-22 Hewlett-Packard Company Network management agent with user created objects providing additional functionality
US5442791A (en) * 1992-03-31 1995-08-15 Aggregate Computing, Inc. Integrated remote execution system for a heterogenous computer network environment
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
US5355497A (en) * 1992-06-10 1994-10-11 Physiotronics Corporation File directory structure generator and retrevial tool with document locator module mapping the directory structure of files to a real world hierarchical file structure
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling system
US5539870A (en) * 1992-10-05 1996-07-23 International Business Machines Corporation Computerized system and process for interactively managing a distributed database system
US5572724A (en) * 1992-10-12 1996-11-05 Hitachi, Ltd. System for controlling communications between an application and a remote system using a protocol identifier and an application context identifier
US5412772A (en) * 1992-10-13 1995-05-02 Novell, Inc. System for permitting a view of an object or a user interface to be exchanged between operating system environments
US5491796A (en) * 1992-10-23 1996-02-13 Net Labs, Inc. Apparatus for remotely managing diverse information network resources
US5349642A (en) * 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
US5542086A (en) * 1993-07-06 1996-07-30 Novell, Inc. Document type metamorphosis in an object-oriented operating system having a graphical user interface
US5423003A (en) * 1994-03-03 1995-06-06 Geonet Limited L.P. System for managing network computer applications
US5522077A (en) * 1994-05-19 1996-05-28 Ontos, Inc. Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers
US5655081A (en) * 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
US5689708A (en) * 1995-03-31 1997-11-18 Showcase Corporation Client/server computer systems having control of client-based application programs, and application-program control means therefor
US5729682A (en) * 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
US5666486A (en) * 1995-06-23 1997-09-09 Data General Corporation Multiprocessor cluster membership manager framework
US5692129A (en) * 1995-07-07 1997-11-25 Novell, Inc. Managing application programs in a computer network by using a database of application objects
US5692129B1 (en) * 1995-07-07 1999-08-17 Novell Inc Managing application programs in a computer network by using a database of application objects
US5768511A (en) * 1995-09-18 1998-06-16 International Business Machines Corporation Method and system for managing objects in networked computer system with action performed in the server and object updated in the client
US5797139A (en) * 1995-12-14 1998-08-18 International Business Machines Corporation Method, memory and apparatus for designating a file's type by building unique icon borders
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US5764908A (en) * 1996-07-12 1998-06-09 Sofmap Future Design, Inc. Network system containing program modules residing in different computers and executing commands without return results to calling modules
US5758355A (en) * 1996-08-07 1998-05-26 Aurum Software, Inc. Synchronization of server database with client database using distribution tables

Non-Patent Citations (54)

* Cited by examiner, † Cited by third party
Title
"Advantages of NAL.EXE--The Wrapper", Anon., www.novel.com/intranetware/ntint/nal-wrap.html, Dec. 20, 1996, pp. 1-5.
"Common Internet File Formats", E. Perlman et al., Internet Literacy Consultants, Dec. 19, 1995, pp. 1-7.
"Directory Map, Computer", Expanded Class Definitions, Jun. 5, 1992.
"Distributed Object System Framework ORB", K. Seki et al., NEC Research and Development, Jul. 1994, pp. 292-297.
"Graphical User Interface for the Distributed Computing Environment", Anon., IBM Technical Disclosure Bulletin, Jan. 1995, pp. 1-2.
"Graphical User Interface for the Distributed Computing Environment", Anonymous, IBM Technical Disclosure Bulletin, Jan. 1995, pp. 409-410.
"Inside OLE Second Edition", K. Brockschmidt, Microsoft Press, 1995, pp. 65-73, 169-172, 226-237, 268-274, 277-301, 328-338, 617, 667-669, 830-833, 988, 989, 1126, 1145-1164.
"Integrating NT-delivered Applications with Novell Application Launcher (NAL)", Anon., www.novel.com/intranetware/ntint/nal-use.html, Dec. 20, 1996, pp. 1-5.
"Method for Administering Domain Application Settings", Anonymous, IBM Technical Disclosure Bulletin, Apr. 1994, p. 33.
"Netware 4 for Professionals", D. Bierer et al., 1993 New Riders Publishing Chapters 6-14, pp. 476-490, 499, 761-762, 777-784, 1057, 1167-1184.
"Novell Application Launcher™ Flyer", Anon., www.novell.com/managewise/NAL/nalflyer.html, no later than Mar. 7, 1997, pp. 1-5.
"Novell Application Launcher™ White Paper", Anon., www.novell.com/managewise/NAL/white 1.html, no later than Mar. 7, 1997, 1-5.
"Novell Application Launcher™", Anon., www.novel.com/managewise/NAL, no later than Mar. 7, 1997, p. 1.
"Novell Modifies NDS to Create Launcher", E. Smalley, PC Week, Apr. 3, 1995, pp. 23-24.
"Registering File Extensions", Anon., Microsoft Corporation, 1997, p. 1.
"Registering File Extensions: From April 1998 Microsoft Developer's Network CD", Anon., Excerpted from "The Windows Interface Guidelines for Software Design", 1995, pp. 1-14.
"Supporting Creation", Anon., Microsoft Corporation, 1997, pp. 1-2.
"System Management Server Functions", Directions on Microsoft, Jul./Aug. 1995, pp. 15-18, 20-21.
"The Application Identifier Key", Anon., Microsoft Corporation, 1997, pp. 1-2.
"The Filename Extension Key", Anon., Microsoft Corporation, 1997, pp. 1-3.
Advantages of NAL.EXE The Wrapper , Anon., www.novel.com/intranetware/ntint/nal wrap.html, Dec. 20, 1996, pp. 1 5. *
API Code, 1989 1995. *
API Code, 1989-1995.
Brainshare 1995 presentation notes, Mar. 20 24, 1995. *
Brainshare 1995 presentation notes, Mar. 20-24, 1995.
Common Internet File Formats , E. Perlman et al., Internet Literacy Consultants, Dec. 19, 1995, pp. 1 7. *
Directory Map, Computer , Expanded Class Definitions, Jun. 5, 1992. *
Disk One (contains eighteen *.LIB, *.DLL files), 1993 1994. *
Disk One (contains eighteen *.LIB, *.DLL files), 1993-1994.
Distributed Object System Framework ORB , K. Seki et al., NEC Research and Development, Jul. 1994, pp. 292 297. *
Graphical User Interface for the Distributed Computing Environment , Anon., IBM Technical Disclosure Bulletin, Jan. 1995, pp. 1 2. *
Graphical User Interface for the Distributed Computing Environment , Anonymous, IBM Technical Disclosure Bulletin, Jan. 1995, pp. 409 410. *
icon.c, icon h source code, 1992. *
icon.c, icon-h source code, 1992.
Inside OLE Second Edition , K. Brockschmidt, Microsoft Press, 1995, pp. 65 73, 169 172, 226 237, 268 274, 277 301, 328 338, 617, 667 669, 830 833, 988, 989, 1126, 1145 1164. *
Integrating NT delivered Applications with Novell Application Launcher (NAL) , Anon., www.novel.com/intranetware/ntint/nal use.html, Dec. 20, 1996, pp. 1 5. *
K. McCloghrie et al., "Management Information Base for Network Management of TCP/IP-based Internets", Network Working Group, May 1990, RFC 1156, pp. 1-70.
K. McCloghrie et al., "Management Information Base for Network Management of TCP/IP-based Internets: MIB-II", Network Working Group, Mar. 1991, RFC 1212, pp. 1-15.
K. McCloghrie et al., "Management Information Base for Network Management of TCP/IP-based Internets: MIB-II", Network Working Groups, Mar. 1991, RFC 1213, pp. 1-53.
K. McCloghrie et al., Management Information Base for Network Management of TCP/IP based Internets , Network Working Group, May 1990, RFC 1156, pp. 1 70. *
K. McCloghrie et al., Management Information Base for Network Management of TCP/IP based Internets: MIB II , Network Working Group, Mar. 1991, RFC 1212, pp. 1 15. *
K. McCloghrie et al., Management Information Base for Network Management of TCP/IP based Internets: MIB II , Network Working Groups, Mar. 1991, RFC 1213, pp. 1 53. *
Method for Administering Domain Application Settings , Anonymous, IBM Technical Disclosure Bulletin, Apr. 1994, p. 33. *
Netware 4 for Professionals , D. Bierer et al., 1993 New Riders Publishing Chapters 6 14, pp. 476 490, 499, 761 762, 777 784, 1057, 1167 1184. *
Novell Application Launcher , Anon., www.novel.com/managewise/NAL, no later than Mar. 7, 1997, p. 1. *
Novell Application Launcher Flyer , Anon., www.novell.com/managewise/NAL/nalflyer.html, no later than Mar. 7, 1997, pp. 1 5. *
Novell Application Launcher White Paper , Anon., www.novell.com/managewise/NAL/white 1.html, no later than Mar. 7, 1997, 1 5. *
Novell Modifies NDS to Create Launcher , E. Smalley, PC Week, Apr. 3, 1995, pp. 23 24. *
Registering File Extensions , Anon., Microsoft Corporation, 1997, p. 1. *
Registering File Extensions: From April 1998 Microsoft Developer s Network CD , Anon., Excerpted from The Windows Interface Guidelines for Software Design , 1995, pp. 1 14. *
Supporting Creation , Anon., Microsoft Corporation, 1997, pp. 1 2. *
System Management Server Functions , Directions on Microsoft, Jul./Aug. 1995, pp. 15 18, 20 21. *
The Application Identifier Key , Anon., Microsoft Corporation, 1997, pp. 1 2. *
The Filename Extension Key , Anon., Microsoft Corporation, 1997, pp. 1 3. *

Cited By (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6664979B1 (en) * 1994-12-29 2003-12-16 Microsoft Corporation Aggregation of system settings into objects
US6804817B1 (en) * 1997-08-08 2004-10-12 Fujitsu Limited Information-object designation system
US6366876B1 (en) * 1997-09-29 2002-04-02 Sun Microsystems, Inc. Method and apparatus for assessing compatibility between platforms and applications
US20020112150A1 (en) * 1998-10-22 2002-08-15 Lawing Rod D. Method and system for central management of a computer network
US7120684B2 (en) 1998-10-22 2006-10-10 Electronic Data Systems Corporation Method and system for central management of a computer network
US20050177832A1 (en) * 1998-11-24 2005-08-11 Microsoft Corporation System and method for terminating applications
US8095930B2 (en) * 1998-11-24 2012-01-10 Microsoft Corporation System and method for priority-based selection of applications for termination
US6633906B1 (en) * 1999-04-26 2003-10-14 International Business Machines Corporation Method and system for managing windows desktops in a heterogeneous server environment
US7680819B1 (en) 1999-11-12 2010-03-16 Novell, Inc. Managing digital identity information
US20050044423A1 (en) * 1999-11-12 2005-02-24 Mellmer Joseph Andrew Managing digital identity information
US8631038B2 (en) 1999-11-12 2014-01-14 Emc Corporation Managing digital identity information
US6424976B1 (en) 2000-03-23 2002-07-23 Novell, Inc. Method of implementing a forward compatibility network directory syntax
US20020026605A1 (en) * 2000-04-06 2002-02-28 Terry Robert F. System and method for real time monitoring and control of a computer machine environment and configuration profile
US20070083868A1 (en) * 2000-05-02 2007-04-12 Microsoft Corporation Methods and Architectures for Resource Management
US8375393B2 (en) 2000-05-02 2013-02-12 Microsoft Corporation Methods and architectures for resource management
US7693949B2 (en) * 2000-06-20 2010-04-06 Palmsource Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US20080028102A1 (en) * 2000-06-20 2008-01-31 Palmsource, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US20100153604A1 (en) * 2000-06-20 2010-06-17 Palmsource, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US8452836B2 (en) 2000-06-20 2013-05-28 Access Co., Ltd. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US6868451B1 (en) * 2000-06-20 2005-03-15 Palm Source, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US6519610B1 (en) 2000-09-01 2003-02-11 Novell, Inc. Distributed reference links for a distributed directory server system
US6834301B1 (en) * 2000-11-08 2004-12-21 Networks Associates Technology, Inc. System and method for configuration, management, and monitoring of a computer network using inheritance
US7620724B2 (en) 2000-12-01 2009-11-17 Microsoft Corporation Peer networking host framework and hosting API
US20060123124A1 (en) * 2000-12-01 2006-06-08 Microsoft Corporation Peer networking host framework and hosting API
US7774477B2 (en) 2000-12-01 2010-08-10 Microsoft Corporation Peer networking host framework and hosting API
US20060184661A1 (en) * 2000-12-01 2006-08-17 Microsoft Corporation Peer networking host framework and hosting API
US20060168159A1 (en) * 2000-12-01 2006-07-27 Microsoft Corporation Peer networking host framework and hosting API
US7702795B2 (en) 2000-12-01 2010-04-20 Microsoft Corporation Peer networking host framework and hosting API
US20060123125A1 (en) * 2000-12-01 2006-06-08 Microsoft Corporation Peer networking host framework and hosting API
US7191438B2 (en) * 2001-02-23 2007-03-13 Lenovo (Singapore) Pte, Ltd. Computer functional architecture and a locked down environment in a client-server architecture
US20030079132A1 (en) * 2001-02-23 2003-04-24 International Business Machines Corporation Computer functional architecture and a locked down environment in a client-server architecture
US6748380B2 (en) 2001-05-14 2004-06-08 International Business Machines Corporation Method, system, and program product for permission to access software
US7177906B2 (en) 2001-05-31 2007-02-13 Palmsource, Inc. Software application launching method and apparatus
US8266222B2 (en) 2001-05-31 2012-09-11 Access Co., Ltd. Software application launching method and apparatus
US20070168964A1 (en) * 2001-05-31 2007-07-19 Palmsource, Inc. Software application launching method and apparatus
US20040181557A1 (en) * 2001-07-26 2004-09-16 Microsoft Corporation System and method for reliably replicating data
US7707180B2 (en) * 2001-07-26 2010-04-27 Microsoft Corporation System and method for reliably replicating data
US7072911B1 (en) 2001-07-27 2006-07-04 Novell, Inc. System and method for incremental replication of changes in a state based distributed database
US7458032B2 (en) * 2001-09-28 2008-11-25 Fujifilm Corporation Display control method and display control processing system for concealed window on desktop
US20030076362A1 (en) * 2001-09-28 2003-04-24 Masahiro Terada Display control method and display control processing system for concealed window on desktop
US20030074393A1 (en) * 2001-10-02 2003-04-17 Franklyn Peart Methods for distributed program execution with file-type association in a client-server network
US20030069924A1 (en) * 2001-10-02 2003-04-10 Franklyn Peart Method for distributed program execution with web-based file-type association
AU2006233277B2 (en) * 2001-10-02 2007-07-05 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US7117243B2 (en) * 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US6952714B2 (en) 2001-10-02 2005-10-04 Citrix Systems, Inc. Method for distributed program execution with server-based file type association
US7330872B2 (en) * 2001-10-02 2008-02-12 Citrix Systems, Inc. Method for distributed program execution with web-based file-type association
AU2006233857B2 (en) * 2001-10-02 2008-09-11 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US20030069923A1 (en) * 2001-10-02 2003-04-10 Franklyn Peart Method for distributed program execution with server-based file type association
US7203737B2 (en) * 2001-10-31 2007-04-10 Microsoft Corporation Computer system with file association and application retrieval
US20030084096A1 (en) * 2001-10-31 2003-05-01 Bryan Starbuck Computer system with file association and application retrieval
US7165251B2 (en) * 2002-09-05 2007-01-16 Hitachi, Ltd. In-context launch management method, system therefor, and computer-readable storage medium
US20040049544A1 (en) * 2002-09-05 2004-03-11 Hitachi, Ltd. In-context launch management method, system therefor, and computer-readable storage medium
US20040133622A1 (en) * 2002-10-10 2004-07-08 Convergys Information Management Group, Inc. System and method for revenue and authorization management
US8489742B2 (en) * 2002-10-10 2013-07-16 Convergys Information Management Group, Inc. System and method for work management
DE10260999B4 (en) * 2002-11-08 2005-03-03 Dr. Nussbaum Gesellschaft für Informationsverarbeitung, Fachberatung und Telekommunikation mbH Method for controlling a computer
US8041753B2 (en) 2002-11-28 2011-10-18 International Business Machines Corporation Method and systems for hyperlinking files
US20080034280A1 (en) * 2002-11-28 2008-02-07 Carro Fernando I Method and systems for hyperlinking files
US20080235669A1 (en) * 2003-02-10 2008-09-25 International Business Machines Corporation Method, system, and program product for accessing required software to process a file
US8060485B2 (en) * 2003-02-10 2011-11-15 International Business Machines Corporation Method, system, and program product for accessing required software to process a file
US7302452B2 (en) 2003-06-05 2007-11-27 International Business Machines Corporation Method and apparatus for handling requests for files in a data processing system
US20050071378A1 (en) * 2003-09-30 2005-03-31 Smith Alan G. Method of storing applications on removable storage
US8607270B2 (en) * 2004-02-03 2013-12-10 Microsoft Corporation Virtual tuner
US20050172315A1 (en) * 2004-02-03 2005-08-04 Microsoft Corporation Virtual tuner
US20050278419A1 (en) * 2004-06-14 2005-12-15 Morris Robert P System and method for linking resources with actions
US20060020545A1 (en) * 2004-07-26 2006-01-26 Microsoft Corporation Payroll system
US20060059174A1 (en) * 2004-09-16 2006-03-16 International Business Machines Corporation Apparatus, system, and method for locating an application compatible with a file
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
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
CN101329636B (en) * 2004-09-30 2014-01-29 茨特里克斯系统公司 Method and apparatus for virtualizing window information
US20060070029A1 (en) * 2004-09-30 2006-03-30 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US20060069662A1 (en) * 2004-09-30 2006-03-30 Citrix Systems, Inc. Method and apparatus for remapping accesses to virtual system resources
US20060085789A1 (en) * 2004-09-30 2006-04-20 Laborczfalvi Lee G Method and apparatus for moving processes between isolation environments
US20060090171A1 (en) * 2004-09-30 2006-04-27 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8352964B2 (en) 2004-09-30 2013-01-08 Citrix Systems, Inc. Method and apparatus for moving processes between isolation environments
US20060174223A1 (en) * 2004-09-30 2006-08-03 Muir Jeffrey D Method and environment for associating an application with an isolation environment
US20060265714A1 (en) * 2004-09-30 2006-11-23 Bissett Nicholas A Methods and systems for accessing, by application programs, resources provided by an operating system
US20070094667A1 (en) * 2004-09-30 2007-04-26 Bissett Nicholas A Method for accessing, by application programs, resources residing inside an application isolation environment
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
US8132176B2 (en) 2004-09-30 2012-03-06 Citrix Systems, Inc. Method for accessing, by application programs, resources residing inside an application isolation scope
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8042120B2 (en) 2004-09-30 2011-10-18 Citrix Systems, Inc. Method and apparatus for moving processes between isolation environments
US7882170B1 (en) * 2004-10-06 2011-02-01 Microsoft Corporation Interfacing a first type of software application to information configured for use by a second type of software application
US20060101053A1 (en) * 2004-11-05 2006-05-11 Proctor Reginal R System and method for associating software programs with data files within a computer network
US7194557B1 (en) * 2004-11-08 2007-03-20 Palmsource, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
US7797727B1 (en) * 2005-01-31 2010-09-14 Hewlett-Packard Development Company, L.P. Launching an application in a restricted user account
US8627068B1 (en) 2005-04-29 2014-01-07 Hewlett-Packard Development Company, L. P. Selecting access authorities
US20070067321A1 (en) * 2005-09-19 2007-03-22 Bissett Nicholas A Method and system for locating and accessing resources
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US20070083610A1 (en) * 2005-10-07 2007-04-12 Treder Terry N Method and a system for accessing a plurality of files comprising an application program
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070083522A1 (en) * 2005-10-07 2007-04-12 Nord Joseph H Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070288535A1 (en) * 2006-06-13 2007-12-13 Hitachi, Ltd. Long-term data archiving system and method
US7844787B2 (en) 2006-12-18 2010-11-30 Novell, Inc. Techniques for data replication with snapshot capabilities
US20080148000A1 (en) * 2006-12-18 2008-06-19 Novell, Inc. Techniques for data replication with snapshot capabilities
US20080222348A1 (en) * 2007-03-08 2008-09-11 Scandisk Il Ltd. File system for managing files according to application
US20080250190A1 (en) * 2007-04-03 2008-10-09 Brian Johnson Portable memory device operating system and method of using same
US9135279B2 (en) 2007-05-04 2015-09-15 Microsoft Technology Licensing, Llc Mesh-managing data across a distributed set of devices
US11841970B1 (en) * 2007-09-26 2023-12-12 Trend Micro Incorporated Systems and methods for preventing information leakage
US20090106780A1 (en) * 2007-10-20 2009-04-23 Nord Joseph 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
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
US20090171917A1 (en) * 2007-12-31 2009-07-02 Htc Corporation Method for opening file
US20090193030A1 (en) * 2008-01-30 2009-07-30 Gorsev Blagojce electronic device, a database, system, and method for presenting the content of a file to a user
US7908252B1 (en) 2008-03-19 2011-03-15 Crossroads Systems, Inc. System and method for verifying paths to a database
US20090240698A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Computing environment platform
US9298747B2 (en) * 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US8818976B2 (en) * 2008-08-11 2014-08-26 Matt McDermott Method for enhanced vehicle service
US20120131004A1 (en) * 2008-08-11 2012-05-24 Mcdermott Matt Method for enhanced vehicle service
US20100122313A1 (en) * 2008-11-09 2010-05-13 Aspect9, Inc. Method and system for restricting file access in a computer system
US20100281102A1 (en) * 2009-05-02 2010-11-04 Chinta Madhav Methods and systems for launching applications into existing 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
EP2407874A1 (en) * 2010-07-15 2012-01-18 Research in Motion Corporation Method and apparatus for designating a given file as selected in a computing device
US20120150898A1 (en) * 2010-12-09 2012-06-14 International Business Machines Corporation Dynamic Collection Of System Support Files In A Data Processing Environment
WO2013173940A1 (en) * 2012-05-22 2013-11-28 Beijing Baina Info - Tech,Co., Ltd A method and system for providing application data
US20140109084A1 (en) * 2012-08-30 2014-04-17 Tencent Technology (Shenzhen) Company Limited Systems and Methods for File Processing
US20170024264A1 (en) * 2013-03-14 2017-01-26 Vmware, Inc. Attaching applications based on file type
US10394624B2 (en) * 2013-03-14 2019-08-27 Vmware, Inc. Attaching applications based on file type
US9292280B2 (en) 2013-03-15 2016-03-22 Google Inc. Systems and methods for multi-tiered format registration for applications
WO2014186246A1 (en) * 2013-05-14 2014-11-20 Google Inc. System and method for identifying applicable third-party applications to associate with a file
US9489430B2 (en) 2013-05-14 2016-11-08 Google Inc. System and method for identifying applicable third-party applications to associate with a file
WO2015103249A3 (en) * 2013-12-31 2015-08-20 Google Inc. Associating network-hosted files with network-hosted applications
US10027764B2 (en) 2013-12-31 2018-07-17 Google Llc Associating network-hosted files with network-hosted applications
US10404769B2 (en) 2013-12-31 2019-09-03 Google Llc Remote desktop video streaming alpha-channel
US20210297495A1 (en) * 2016-10-24 2021-09-23 Palantir Technologies Inc. Automatic discovery and registration of service applications for files introduced to a user interface
US10791103B2 (en) * 2016-10-28 2020-09-29 Vmware, Inc. Adapting remote display protocols to remote applications
US20180121030A1 (en) * 2016-10-28 2018-05-03 Vmware, Inc. Adapting remote display protocols to remote applications
US10834236B2 (en) * 2016-11-01 2020-11-10 Adobe Inc. Server-driven custom context menus
US20180121036A1 (en) * 2016-11-01 2018-05-03 Adobe Systems Incorporated Server-driven custom context menus
US20230418624A1 (en) * 2022-06-24 2023-12-28 Microsoft Technology Licensing, Llc File opening optimization

Similar Documents

Publication Publication Date Title
US6047312A (en) System for replicating and associating file types with application programs among plurality of partitions in a server
EP0838055B1 (en) Method for managing applications in a network
US6119131A (en) Persistent volume mount points
US7000235B2 (en) Method and apparatus for managing data services in a distributed computer system
US6772178B2 (en) Method and apparatus for managing remote data replication in a distributed computer system
US6269406B1 (en) User group synchronization to manage capabilities in heterogeneous networks
US6996587B2 (en) Method and apparatus for managing data volumes in a distributed computer system
US6697924B2 (en) Storage area network methods and apparatus for identifying fiber channel devices in kernel mode
US7177935B2 (en) Storage area network methods and apparatus with hierarchical file system extension policy
US8327004B2 (en) Storage area network methods and apparatus with centralized management
US6920494B2 (en) Storage area network methods and apparatus with virtual SAN recognition
US5751962A (en) Object-based systems management of computer networks
US8060587B2 (en) Methods and apparatus for launching device specific applications on storage area network components
US6952698B2 (en) Storage area network methods and apparatus for automated file system extension
US7499986B2 (en) Storage area network methods with event notification conflict resolution
US20010023440A1 (en) Directory-services-based launcher for load-balanced, fault-tolerant, access to closest resources
US7457846B2 (en) Storage area network methods and apparatus for communication and interfacing with multiple platforms
US20030154267A1 (en) Storage area network methods and apparatus for dynamically enabled storage device masking
US20030167327A1 (en) Storage area network methods and apparatus for topology rendering
US20030177168A1 (en) Storage area network methods and apparatus for validating data from multiple sources
US20030146929A1 (en) User interface architecture for storage area network
US20030149770A1 (en) Storage area network methods and apparatus with file system extension
US20040117369A1 (en) Method and apparatus for centralized management of a storage virtualization engine and data services
JP2002297432A (en) Distributed-processing-type database management system
Cisco Preparing to Install CiscoWorks

Legal Events

Date Code Title Description
AS Assignment

Owner name: NOVELL, INC., UTAH

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROOKS, MATTHEW G.;YOUNG, RUSSELL T.;REEL/FRAME:008691/0696

Effective date: 19970716

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: EMC CORPORATON, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CPTN HOLDINGS LLC;REEL/FRAME:027016/0160

Effective date: 20110909

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: CPTN HOLDINGS, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOVELL, INC.;REEL/FRAME:027169/0200

Effective date: 20110427