`Sonderegger et a].
`
`[54] MANAGING APPLICATION PROGRAMS IN
`A COMPUTER NETWORK BY USING A
`DATABASE OF APPLICATION OBJECTS
`
`[75] Inventors: Kelly E. Sonderegger; Kevin L.
`Hopton; Matthew G. Brooks; Andy
`Lawrence, all of Orem; Damon Janis;
`Lori K. Dayton, both of Provo;
`Thomas B. Oldroyd, Orem, all of Utah
`
`[73] Assignee: Novell, Inc., Orem, Utah
`
`[21] Appl. No.: 499,711
`[22] Filed:
`Jul. 7, 1995
`
`[51] Int. Cl.6 ......................... .. G06F 15/163; G06F 17/30
`[52] US. Cl. .............................. .. 3950.00.11; 395/200.03;
`395/200.06; 395120009; 395/200.1l; 395/610;
`395/614
`[58] Field of Search ....................... .. 395120009, 200.03,
`395/200.06, 200.11, 610, 614
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,961,224 10/1990 Ylmg ........................ ..
`5,109,486
`4/1992 Seymour
`5,271,007 12/1993 Kurahashi et al.
`5,276,883
`1/1994 Halliwell .............. ..
`5,325,533
`6/1994 Mclnerney et a1.
`5,341,473
`3/1994 Travis, Jr. et a1. . . . .
`
`395/200
`370/851
`395/700
`395/700
`. . . .. 395/200
`
`5,367,635 11/1994 Bauer et a1. . . . . . . .
`
`. . . .. 395/200
`
`395/650
`5/1995 Behm et a1.
`5,414,845
`. 395/200
`611995 Berteau ............ ..
`5,423,003
`395/600
`6/1995 Cohen-Levy et al. .
`5,423,034
`8/1995 Wrabetz et a1. .................. .. 395/650
`5,442,791
`2/1996 Wanderer et al.
`395000.09
`5,491,796
`5/1996 Cuthbert et a1.
`395/700
`5,522,077
`7/1996 Conrad et al.
`395/155
`5,539,870
`5,572,724 11/1996 Watanabeetal. .
`395/616
`5,592,676
`1/1997 Bonnafoux ............................ .. 395/800
`
`OTHER PUBLICATIONS
`
`K. McCloghrie et a1. “Management Information Base for
`Network Management of TCP/IP-based internets: MIB-II”,
`Network Working Group, Mar. 1991, RFC 1212, pp. 1-15.
`
`US005692129A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,692,129
`Nov. 25, 1997
`
`K. McCloghrie et al. “Management Information Base for
`Network Management of TCP/IP-based Internets: MIB-ll”,
`Network Working Group, Mar. 1991, RFC 1213, pp. l-53.
`K. McCloghrie et a1. “Management Information Base for
`Network Management of TCP/IP-based Internets”, Network
`Working Group, May 1990, RFC 1156, pp. l—70.
`K. Seki et al., “Distributed Object System Framework
`ORB”, Jul. 1994, NEC Research and Development, Jun.
`1994, pp. 292-297.
`Anonymous, Method for Administering Domain Applica
`tion settings, IBM Technical Disclosure Bulletin, Apr. 1994,
`p. 33.
`Anonymous, “Graphical User Interface for the Distributed
`Computing Environment”, IBM Technical Disclosure Bul
`letin, Jan. 1995, pp. 409-410.
`Primary Examiner——'I‘homas G. Black
`Assistant Examiner-—Jean Raymond Homere
`Attorney Agent‘, or Firm—Computer LawPlusPlus
`[57]
`ABSTRACT
`
`A method and apparatus for management of application
`programs in a computer network are disclosed. A modi?ed
`hierarchical database which includes application objects that
`represent applications and their execution environments is
`utilized. Administrator tools support the creation, deletion,
`and modi?cation of application objects. Each application
`object includes the location of an executable code for a given
`application, an icon, a working directory name, drive
`mappings, printer port captures, command line parameters,
`and similar information. An application launcher queries the
`database and updates a list of available applications which is
`kept in the user’s desktop. ‘The launcher automatically
`launches speci?ed applications when a user runs the
`launcher. The launcher also uses the information in the
`application object to setup resources needed by the
`application, to create a process that executes the application,
`and to clean up after me application terminates. Resource
`setup involves mapping drives and capturing printer ports as
`needed. The database, the launcher, and the administrator
`tools allow consistent tracking and use of information about
`application programs and their execution environments in
`the network.
`
`71 Claims, 10 Drawing Sheets
`
`I
`II
`I
`|
`l
`
`DEFINE mo ADD DESK I'oP Armature
`
`DEF/NEAND ADDAUIO STAI'ITATTHIEUTE
`
`DEFINE AND ADD LAUNCHER counmmmow A‘ITRIBUTE
`
`DEFINE AND ADD KION A'ITFUBUTE
`
`DEFINE/1ND Abu FILE PATH ATTHIBUTE
`
`DEFINE AND ADD BLURB A‘ITRIBUTE
`
`DEFINE IND ADD STAFITUP SCR‘PT ATI'RIEIUTE
`
`I
`t
`:
`
`l
`
`|
`l
`
`:
`
`I
`
`102
`
`104
`
`105
`
`we
`
`l
`I
`—— 1 1O
`
`DEFINE AND ADD SHUY DOWN SCRIPT AWRIEUYé
`
`:
`
`DEFINE/1ND ADD UCENSYNG ATFRIBUIE
`
`DEFINE AND ADD PARAMETERSATTWEUTE
`
`DEFINE AND ADD DRIVE MAPHNGS I?'rFuBmE
`
`DEFINE ma non PRINTER Poms ATIRIBU'TE
`
`I 12
`
`> 1 1 4
`
`I
`I
`If
`I
`T- 1 1 5
`
`DEFINEAND ADD contacts A't mauve
`
`I
`
`120
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 1
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 1 of 10
`
`5,692,129
`
`‘a;
`0mm
`
`N 65%
`
`\ M6565 :
`w <55
`
`i
`
`3
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 2
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 2 0f 10
`
`5,692,129 -
`
`EOEEQZEQ
`
`.rzmzmo/‘zé
`
`29:63am? 1
`
`909 § .3 .@ E
`K a“
`OK
`
`Ill
`
`mmzgom A '.
`
`I
`
`
`
`wwzgom .
`
`Fzw§wo<z<§ J “mm. $1
`ZOEEE (m? mm 8 mm)
`
`lobawo 1‘ v
`
`
`300k mum: (mm 8.5 i)
`/% .
`
`510235 \\
`2920??? \ 8R
`
`8
`
`N .UDN
`
`8 mm)
`
`mkomwmo
`
`mwOEDOMmE
`mmk
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 3
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 3 of 10
`
`' 5,692,129
`
`I
`l
`I
`I
`I
`I
`I
`I
`I
`I
`
`I
`I
`l
`l
`I
`|
`I
`I
`I
`I
`I
`I
`|
`|
`I
`l
`I
`
`REGISTER WITH
`ADMINISTRATION PROGRAM
`
`60
`f
`
`62
`
`NEED
`TO DEFINE
`ANOTHER
`CLASS?
`
`[-64
`
`MODIFY SCHEMA
`
`GET CONTEXT
`
`66
`M
`
`68
`f
`RECEIVE MESSAGE
`FROM ADMINISTRATION PROGRAM
`
`‘
`
`I
`HANDLE MESSAGE
`
`70
`/
`
`l
`I
`I
`l
`I
`I
`|
`I
`I
`I
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`l
`I
`
`I
`I
`|
`I
`l
`I
`
`l _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _I
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 4
`
`
`
`US. Patent '
`
`Nov. 25, 1997
`
`Sheet 4 0f 10
`
`5,692,129
`
`INITIALIZE
`
`74
`\
`» INITIALIzE PAGES,
`BITMAPS, AND SCHEMA
`
`I
`I
`I
`I
`l
`I
`|
`I
`80
`78
`\
`| CREATE OBJECT \
`I
`ENABLE _* ENABLE OBJECT
`I
`_’ BROWSER
`CREATOR
`
`76 \
`CONFIGUFIE BROWSEI:I_>
`
`SET FLAT BROWSER FILTER
`CHARACTERISTICS
`
`l
`I
`I
`I
`I
`I
`' I
`I
`I
`I
`' ' I
`
`I
`I MODIFY
`l
`|
`'
`|
`| DELETE
`'
`
`I
`| CLOSE
`I
`I
`|
`
`82\
`» MODIFY APPLICATION
`OBJECT _
`
`I
`I
`I
`I
`I
`86\
`DELETE
`l
`-§ APPLICATION —> I
`OBJECT
`I
`
`B4\ A
`+
`
`88 \
`’
`
`CLEAN UP AND
`FREE REsOuRCEs
`
`I
`I
`' ’ l
`l
`I
`
`l _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ I
`
`1
`
`FIG. 4
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 5
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 5 of 10
`
`5,692,129
`
`+
`
`»
`
`»
`
`+
`
`»
`
`_ _ _ _ _ _ _ _ _
`
`NQK »
`
`3K »
`
`m. .UNE
`
`
`
`_l||..l I | | l | | I .l..l._
`
`-liwNla--
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 6
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 6 0f 10
`
`DEFINE AND ADD DESKTOP ATTRIBUTE
`I
`DEFINE AND ADD AUTO START ATTRIBUTE
`i
`DEFINE AND ADD LAUNCHER CONFIGURATION ATTRIBUTE
`I
`DEFINE AND ADD ICON ATTRIBUTE
`I
`DEFINE AND ADD FILE PATH A'ITRIBUTE 4
`I
`DEFINE AND ADD WORKING DIRECTORY ATI'RIBUTE
`t -
`DEFINE AND ADD FLAGS ATTRIBUTE
`I’
`DEFINE AND ADD BLURB ATTRIBUTE
`I
`DEFINE AND ADD STARTUP SCRIPT ATTRIBUTE
`I
`DEFINE AND ADD SHUT DOWN SCRIPT ATTRIBUTE
`V
`DEFINE AND ADD LICENSING A‘ITFIIBUTE
`
`I
`.
`DEFINE AND ADD PARAMETERS ATTRIBUTE
`I
`DEFINE AND ADD DRIVE MAPPINGS ATTRIBUTE
`
`I
`I
`I
`DEFINE AND ADD PRINTER PORTS ATTRIBUTE
`
`.
`V
`DEFINE AND ADD CONTACTS ATTRIBUTE
`
`104
`
`102
`
`If- 91
`:
`93 W
`I
`W 96
`I
`98
`ff
`I
`100
`fl‘
`I
`If
`I
`I
`I
`[F- 106
`I
`108
`f
`I
`1 10
`W
`l
`1 12
`W‘
`l
`1 14
`f
`'
`1 16
`/|'
`I
`118
`
`W
`l
`
`120
`[
`I
`
`_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ J
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 7
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 7 of 10
`
`5,692,129
`
`139
`
`I
`READ LAUNCHER
`CONFIGURATION ATTRIBUTE
`140
`I
`LAUNCH AUTO sTART /
`APPLICATIONS
`I
`GET ICONs
`
`142
`/
`
`t
`
`I
`
`MANUALLY
`REFRESH
`ICONS
`
`/144 I
`VIEW
`146
`APPLICATION /
`OBJECT
`PROPERTY
`VALUES
`
`I /148
`
`ASK
`
`CONTACT
`FOR HELP
`
`l /150
`LAUNCH UsER
`SELECTED
`APPLICATION
`
`BROwsE/
`
`sEARCH
`
`-
`
`,
`
`143
`
`I
`ICONS /156
`
`UPDATE
`
`152/
`
`154/
`
`UPDATE
`APPLICATION
`STATUS
`I
`CLEAN UP
`AFTER ANY
`TE RMI NATED
`APPLICATIONS
`
`I
`
`I
`
`FIG. 8
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 8
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 8 of 10
`
`5,692,129
`
`l
`I
`I
`l
`l
`I
`l
`I
`l
`l
`'
`I
`I
`I
`l
`l
`l
`I
`I
`I
`I
`l
`l
`I
`I
`l
`
`I
`
`/_
`DISABLE UPDATES
`
`160
`
`1
`
`/-—162
`
`SETUP RESOURCES
`AND FLAGS
`
`l
`
`/-—164
`
`INITIALIZE APPLICATION
`PROCESS INFORMATION
`
`l /—166
`
`UPDATE APPLICATION
`STATUS
`
`ENABLE UPDATES
`
`1 /170
`
`YIELD CONTROL TO
`APPLICATION PROCESS
`
`FIG. 9
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 9
`
`
`
`US. Patent
`
`Nov. 25, 1997
`
`Sheet 9 of 10
`
`5,692,129
`
`READ FLAGS ATI‘RIBUTE
`
`I
`
`MAP DRIVES AS NEEDED
`
`I /— 178
`CAPTURE PORTS AS NEEDED
`
`I /— 180
`I
`DETERMINE EXECUTABLE LOCATION
`I
`
`ATTACH SERVER AS NEEDED
`
`I /— 184
`DETERMINE WORKING DIRECTORY LOCATION
`
`1 /— 186
`DETERMINE COMMAND LINE PARAMETERS
`
`FIG. 10
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 10
`
`
`
`U.S. Patent
`
`Nov. 25, 1997
`
`Sheet 10 of 10
`
`5,692,129
`
`‘I88
`
`MORE
`RESOURCES
`TO
`CLAIM’?
`
`IS
`RESOURCE
`ALREADY
`CLAIMED?
`
`CLAIM RESOURCE
`
`ARE
`PRIOR AND
`PRESENT CLAIMS
`CONSISTENT'7
`
`REPORT ERROR
`
`{-198
`
`INCREMENT RESOURCE USE COUNT
`
`, FIG. 11
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`l
`I
`I
`I
`I
`I
`I
`I
`l
`I
`l
`l
`I
`I
`I
`I
`l
`I
`l
`I
`I
`_.I
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 11
`
`
`
`5,692,129
`
`1
`MANAGING APPLICATION PROGRAMS IN
`A COMPUTER NETWORK BY USING A
`DATABASE OF APPLICATION OBJECTS
`
`FIELD OF THE INVENTION
`The present invention relates to the management of appli
`cation programs in a computer network, and more particu
`larly to a method and apparatus for managing applications in
`a multi-server network through the use of application objects
`in a hierarchical directory services database.
`
`TECHNICAL BACKGROUND OF THE
`INVENTION
`
`'
`
`It is not unusual for a modern computer network to
`contain several server machines as well as numerous client
`machines. The servers typically provide ?le access, printer
`access, and other services to users who are stationed at the
`client machines. Some large networks contain dozens of
`servers and hundreds of clients. The person responsible for
`administering the network is known as the “network admin
`istrator” or “administrator.” Persons who use the network
`are known as “users.” Administrators are also users.
`A wide variety of application programs such as word
`processors, spreadsheets, database managers, program
`development tools, and the like (collectively, “applications”)
`are typically found on one or more servers in the network.
`However, applications are often under-utilized Sometimes a
`potential user does not know whether a particular applica
`tion would be helpful because the user is unfamiliar with that
`application. Sometimes applications could be made avail
`able to those who would bene?t from their use, but the
`necessary ?le access rights and execution environment have
`not been provided by the administrator. Sometimes a user
`who is familiar with an application does not realize that the
`application was recently placed on the network.
`Even if a user wishes to execute a particular application
`and believes that the executable code for that application
`exists somewhere on the network, the user still must locate
`and access that code in order to utilize the application.
`Unfortunately, the executable codes for applications are
`often scattered amongst many servers, thereby making it
`di?icult at times even for administrators to locate particular
`executable codes. The situation is much worse for users who
`are unfamiliar with the technical aspects of network orga
`nization and administration. Because such users are often
`unable to locate ?'re desired executable codes and/or create
`appropriate execution environments, they are unnecessarily
`prevented from using helpful applications.
`More experienced users often manually maintain records
`of the locations of certain application executables, but this
`approach has several drawbacks. Often, a user does not
`initially know where a particular executable is located.
`Scanning the directories of numerous servers to locate an
`executable is a possible approach. But scanning directories
`is potentially very time-consuming, particularly if it
`becomes necessary to attach the user’s client machine to
`numerous servers to access their directories. Asking a net
`work administrator where to ?nd a particular program is also
`possible, but repeatedly answering such queries from many
`users takes signi?cant time away from other tasks that
`require the administrator’s attention and expertise. Keeping
`manual records requires maintenance each time an execut
`able’s location is changed, thereby cutting into the time the
`user and/or administrator could be devoting to other duties.
`In addition to an executable code, other resources 'are
`typically required by an application before it can success
`
`10
`
`15
`
`20
`
`25
`
`2 .
`fully execute. In some cases it is necessary to map drives, to
`capture printer ports, or to specify a working directory for
`?les which will hold intermediate or ?nal data produced by
`the application. Access to ?les or directories may require
`that the user have read, write, or other rights. In some
`network environments a particular application will run more
`e?iciently or effectively if its execution is preceded by a set
`of commands found in a startup script, or if its execution is
`followed by a set of commands found in a shutdown script.
`Many applications allow or require parameters to be passed
`to the application’s executable code on the same command
`line which invokes that code.
`Thus, in addition to maintaining the location of the
`executable code, users and administrators who manually
`maintain records regarding applications often ?nd it helpful
`or necessary to maintain additional information regarding
`the execution environment of each application, such as drive
`mappings, printer port requirements, working directory
`names, access rights, scripts, and command line parameters.
`In practice this additional information is at least as widely
`scattered as the executable codes and is often stored in
`different formats by different persons. Many users lack the
`expertise, the time, or both, to manually manage such
`information. After an application has been on the network
`for some time, it is not unusual for inconsistent versions of
`execution environment information to be found in different
`formats on different machines throughout the network.
`Thus, it would be an advancement in the art to provide a
`computer-implemented method and apparatus for consis
`tently tracking the location of application program execut
`able codes in a network
`It would also be an advancement to provide such a method
`and apparatus which reduce the administrative e?ort asso
`ciated with changes in the location of application program
`executable codes or changes in other information needed to
`execute an application.
`It would be a further advancement to provide such a
`method and apparatus for consistently tracking and employ
`ing additional information used to execute an application
`program, such as drive mappings, printer port requirements,
`working directory names, scripts, and/or command line
`parameters.
`Such a method and apparatus are disclosed and claimed
`herein.
`
`35
`
`BRIEF SUMMARY OF THE INVENTION
`The present invention provides a method and apparatus
`for centrally managing application programs in a computer
`network. One aspect of the present invention provides a
`modi?ed database schema. The database schema de?nes
`what type of resources can be represented in the database.
`The database provides network administrators with an e?i
`cient and effective way to determine what resources are
`available on the network, to provide fault-tolerance by
`making resources available even if a server on the network
`becomes unavailable, and to control the access of particular
`network users or groups of users to particular network
`resources.
`The resources represented in the modi?ed database
`include application programs, such as word processors and
`spreadsheets, that reside on the network. The modi?cations
`to the schema provided by the present invention support the
`creation, deletion, and alteration of application objects in the
`database. In one embodiment, administrative routines for
`managing application objects are provided through a “snap
`in” module that extends the familiar NWAdmin tool pres
`ently used on Novell NetWare® networks.
`
`50
`
`55
`
`65
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 12
`
`
`
`5,692,129
`
`20
`
`25
`
`35
`
`3
`Each application object represents one application pro
`gram and its execution environment. Thus, in one embodi
`ment each application obj ect includes the location of at least
`one executable code for the application in question, a brief
`name which textually identi?es the application, an icon
`which graphically identi?es the application, the location of
`the application’s working directory, the drive mappings and
`printer port captures needed by the application, and the
`command line parameters (if any) that should be passed to
`the application when it begins execution. Alternative
`embodiments of application objects include additional use
`ful information such as a brief textual description (“blurb”)
`describing the application to potential new users, a list of
`other users who can be contacted to answer questions about
`the application. licensing information, and scripts to run
`before and/or after execution of the application.
`Collecting such information about each application into
`one application object in the database assists greatly in
`preventing the creation or use of inconsistent or obsolete
`information about the application. Moreover, application
`objects receive the bene?cial characteristics of the database
`such as hierarchical organization. access control, replication
`of database objects to provide fault-tolerance, and access
`through familiar interface tools.
`The present invention also provides an application
`launcher. In one embodiment, the application launcher
`allows a user to browse through the application objects
`which represent the applications available to that user and to
`view the information currently stored in the objects. The
`launcher also automatically launches speci?ed “auto start”
`applications when a user runs the launcher. In addition, the
`launcher updates a list of available applications that is
`associated with the user’ s desktop by querying the database.
`The launcher’s update capability relieves administrators of
`the need to manually update each user’s desktop when a new
`application is added to the network or an established appli
`cation is moved.
`When it is requested to launch an application, the launcher
`uses the information in the application’s database object to
`setup execution environment resources needed by the
`application, to then create a process which executes the
`application, and to ?nally clean up after the application
`terminates. Resource setup typically involves mapping
`drives and capturing printer ports as needed; setup may also
`involve running a startup script. After the application
`terminates, the launcher cleans up by unmapping drives,
`releasing captured ports, and detaching from servers as
`needed. Cleaning up also includes running a shutdown script
`if one is provided.
`Thus, the present invention provides a computer
`irnplemented method and apparatus for consistently tracking
`and employing information about application programs and
`their execution environments in a network. Consistency is
`achieved by gathering the information into a central data
`base which is accessed through speci?ed administrator tools
`and user interfaces. Database updates are readily perfonned
`with the administrator tools or by the application launcher,
`thereby reducing the effort associated with changes in the
`location of executables or in the other information needed to
`execute an application.
`The features and advantages of the present invention will
`become more fully apparent through the following descrip
`tion and appended claims taken in conjunction with the
`accompanying drawings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`To illustrate the manner in which the advantages and
`features of the invention are obtained, a more particular
`
`4
`description of the invention summarized above will be
`rendered by reference to the appended drawings. Under
`standing that these drawings only provide selected embodi
`ments of the invention and are not therefore to be considered
`limiting of its scope, the invention will be described and
`explained with additional speci?city and detail through the
`use of the accompanying drawings in which:
`FIG. 1 is a diagram illustrating a computer network.
`FIG. 2 is a diagram illustrating components of the com
`puter network of FIG. 1 together with administrator tools
`and user tools employed in conjunction with the computer
`network.
`FIG. 3 is a ?owchart illustrating an event-driven embodi
`ment of application management routines according to the
`present invention for supplementing the administrator tools
`and the network shown in FIG. 2..
`FIG. 4 is a ?owchart illustrating an alternative command
`driven embodiment of the application management routines
`of the present invention.
`FIG. 5 is a ?owchart further illustrating an application
`management routine for modifying a network database
`schema according to the present invention.
`FIG. 6 is a ?owchart further illustrating attribute de?ni
`tion and addition steps of the routine shown in FIG. 5.
`FIG. 7 is a ?owchart further illustrating class de?nition
`and addition steps of the routine shown in FIG. 5.
`FIG. 8 is a ?owchart further illustrating an application
`launcher according to the present invention.
`FIG. 9 is a ?owchart further illustrating an application
`launching step shown in FIG. 8.
`FIG. 10 is a ?owchart further illustrating a resource setup
`step shown in FIG. 9.
`FIG. 11 is a ?owchart further illustrating drive mapping,
`port capturing, and server attaching steps shown in FIG. 10.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`The present invention relates to a method and apparatus
`for managing application programs in a computer network
`that includes hardware, software, and data components. In
`describing the present invention and its context, the terms
`“program,” “module,” “routine,” “subroutine,” “function,”
`and “procedure” are used interchangeably because the tech
`nical diiferences between these software components do not
`alter the scope of the present invention. The terms “object
`code,” “executable code,” and “executable” are likewise
`used interchangeably. As used herein, the term “embodi
`ment” encompasses speci?c methods, speci?c apparatus,
`and speci?c program storage devices or articles of manu
`facture which are provided by the present invention.
`Reference is now made to the ?gures wherein like parts
`are referred to by like numerals. One of the many networks
`suited for use with the present invention is indicated gen
`erally at 10 in FIG. 1. In one embodiment, the network 10
`includes Novell NetWare® software, version 4.x (NetWare
`is a registered trademark of Novell, Inc.). The illustrated
`network 10 includes several connected local networks 12.
`Each local network 12 includes a ?le server 14 and one or
`more user stations 16. A printer 18 and an array of disks 20
`are also attached to the network 10. Although a particular
`network 10 is shown, the present invention is also useful in
`a variety of other networks which are known to one of skill
`in the art.
`I
`With reference to FIGS. 1 and 2, administration and use
`of the network 10 are supported by network software and
`
`50
`
`55
`
`65
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 13
`
`
`
`5
`hardware elements, by administrator tools, and by user tools.
`FIG. 2 illustrates the relationship between these compo
`nents. The network 10 includes a variety of resources 22,
`such as the printers 18, the disk array 20 and other storage
`devices, and applications 23 and data that are stored on one
`or more of the ?le servers 14 and user stations 16.
`The network resources 22 are administered through cer
`tain directory services 24. The precise nature of the directory
`services 24 varies among dilferent networks but in general
`the directory services 24 administer both the location of the
`resources 22 and the rights of network users to use the
`resources 22.
`In a presently preferred embodiment the directory ser
`vices 24 include services provided by NetWare Directory
`Services (“NDS”) software 26 that is commercially avail-
`able from Novell, Inc. of Orem, Utah (NetWare Directory
`Services is a trademark of Novell, Inc.). The directory
`services 24 component includes a schema 28. Prior to the
`present invention the schema 28 was a default schema 30
`that did not support application objects. The schema 28 of
`the present invention is an extended schema 32 which does
`support application objects.
`The schemas 28, 30, and 32 each include a set of
`“attribute syn ” de?nitions, a set of “attribute” de?nitions,
`and a set of “object class” (also known as “class”) de?ni
`tions. The NDS software 26 and the default NDS schema 30
`are described in chapters 6 through 8 of NetWare 4 for
`Professionals by Bierer et a1. (“Bierer”), which are incor
`porated herein by reference. Certain ideas explained in
`Bierer are repeated herein. The terms “attribute” and “prop
`erty” are used interchangeably in Bierer and herein, as are
`the terms “attribute syntax” and “property syntax.” Differ
`ences between the default schema 30 and the extended
`schema 32 of the present invention are described in detail
`below after a general discussion of the generic schema 28.
`Each attribute syntax in the schema 28 is speci?ed by an
`attribute syntax name and the kind and/or range of values
`that can be assigned to attributes of the given attribute syntax
`type. Attribute syntaxes thus correspond roughly to data
`types such as integer, ?oat, string, or Boolean in conven
`tional programming languages.
`Each attribute in the schema 28 has certain information
`associated with it. Each attribute has an attribute name and
`an attribute syntax type. The attribute name identi?es the
`attribute, while the attribute syntax limits the values that are
`assumed by the attribute. For instance, the default schema 30
`includes an attribute of syntax type integer having the name
`“supported connections” which speci?es the number of
`concurrent connections a ?le server allows.
`Each attribute may also have associated with it any or all
`of the following ?ags: Non-removable, Hidden, Public
`Read, Read Only, Single-Valued, Sized, and String. The
`general meanings of these ?ags are familiar to those of skill
`in the art. If the Sized ?ag is set for a given attribute, then
`upper and lower bounds (possibly including No Limit) are
`imposed on values currently held by that attribute.
`Each object class in the schema 28 also has certain
`information associated with it. Each class has a name which
`identi?es this class, a set of super classes that identi?es the
`other classes from which this class inherits attributes, and a
`set of containment classes that identi?es the classes permit
`ted to contain instances of this class. Although the topics of
`class inheritance, containment, and instantiation are familiar
`to those of skill in the art, their use in connection with
`application object classes according to the present invention
`is new.
`
`30
`
`35
`
`45
`
`55
`
`65
`
`5,692,129
`
`10
`
`15
`
`20
`
`25
`
`6
`Each object class also has a container flag and an effective
`?ag. The container ?ag indicates whether the class is a
`container class, that is, whether it is capable of containing
`instances of other classes. The effective ?ag indicates
`whether instances of the class can be de?ned. Non-effective
`classes are used only to de?ne attributes that will be inher
`ited by other classes, whereas eifective classes are used to
`de?ne inheritable attributes, to de?ne instances, or to de?ne
`both.
`In addition, each object class groups together certain
`attributes. The naming attributes of a class are those
`attributes that can be used to name instances of the class. The ,
`mandatory attributes of a class are those attributes that must
`exist in each valid instance of the class and/or become
`mandatory attributes of classes which inherit from the class.
`The optional attributes of a class are those attributes that
`may, but need not, exist in each valid instance of the class.
`Optional attributes of a parent class become optional
`attributes of a child class which inherits from the parent
`class, unless the attributes are mandatory in some other
`parent class from which the child inherits, in which case they
`are also mandatory in the child.
`An object is an instance of an object class. Ditferent
`objects of the same class have the same mandatory attributes
`but may have different current values in their corresponding
`mandatory attributes. Different objects of the same class
`may have diiferent optional attributes, and/or diiferent cur
`rent values in their corresponding optional attributes.
`The directory services 24 also include an interface library
`34 which provides access to the schema 28 and to a 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 imple
`ments the schema 28. In some embodiments the interface
`library 34 includes tables or commands stored in a ?le which
`is read by the schema 28 during its initialization and when
`objects are created, thereby de?ning the available attributes
`and classes.
`In addition or as an alternative, the interface library 34
`includes a set of routines that are available to other code to
`access and modify the schema 28. In one embodiment the
`interface library 34 includes an API that de?nes an interface
`to an NWDSxxxO library 36 which is commercially avail
`able from Novell, Inc. of Orem, Utah. The NWDSxxxO
`library 36 is so named because the names of functions and
`data types de?ned in the library 36 typically begin with
`“NWDS,” an acronym for “NetWare Directory Services.”
`The use of particular elements of the NWDSxxx() library 36
`in connection with the present invention is described here
`after.
`The database 38 contains objects 49 and 51 that are
`de?ned according to the schema 28 and the particulars of the
`network 10. These objects 49 and 51 represent resources 22
`of the network 10. The database 38 is 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 must be instances of a container object class.
`The database 38 is also a “synchronized-partition” data
`base 38. The database 38 is typically divided into two or
`more non-overlapping 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
`?le servers 14 in the network 10. The replicas of a given
`partition are regularly updated by the directory services 24
`
`IPR2017-01839
`Ubisoft, et al. EX1014 Page 14
`
`
`
`5,692,129
`
`7
`through an automated synchronization process, thereby
`reducing the diiferences 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.
`Administration and use of the resources 22 are supported
`by the directory services 24, by administrator tools 42, and
`by user tools 44. Typical administrator tools 42 include
`partition management routines 46 for managing the parti
`tions of the database 38.
`The present invention supplements the previously avail
`able administrator tools 42 by providing application man
`agement routines 48 for creating, deleting, and modifying
`application objects 49 and/or desktop attributes on user,
`group, and container objects 51 in the database 38. The
`addition of application objects 49 to the database 38 and
`other features of the present invention make application
`programs 23 available to network administrators and users
`in a previously unknown, uniform, convenient, and e?icient
`
`manner. ‘
`
`15
`
`The present invention also provides users with an appli
`cation launcher 50 for initia