throbber
United States Patent [19]
`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-01290
`Ubisoft EX1002 Page 1
`
`

`

`US. Patent
`
`Nov. 25, 1997
`
`Sheet 1 of 10
`
`5,692,129
`
`‘a;
`0mm
`
`N 65%
`
`\ M6565 :
`w <55
`
`i
`
`3
`
`IPR2017-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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-01290
`Ubisoft EX1002 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 initiating execution of applications 23
`through their corresponding application objects 49. In
`addition, the present

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket