`Collins, III et al.
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US005845090A
`[HJ Patent Number:
`[451 Date of Patent:
`
`5,845,090
`Dec. 1, 1998
`
`[54] SYSTEM FOR SOFTWARE DlSTRlBUTlON
`IN A DIGITAL COMPUTER NETWORK
`
`(75)
`
`Inventors: T heodore Joseph Collins, ill, S t. Paul;
`Scott Roy Anderson, Eden Prairie;
`Steven James McDowall, Coon
`Rapids; Charles Henry Kratsch, Lino
`Lakes; Joseph Paul Larson, Golden
`Valley, all of Minn.
`
`(73) Assignee: Platinium Technology, Inc., Oak Brook
`Terrace, 111.
`
`(21) Appl. No.: 723,051
`
`(22) Filed:
`
`Sep . 30, 1996
`
`Related U.S. Application Data
`
`(63) Couti.uuation of Ser. No. 194,925, Feb. 14, 1994, abandoned.
`Int. C l.6
`... ........................ G06F 15/177; G06F 9/445
`[51]
`................................ 395/200.51; 395/200.32;
`[52] U.S. C l .
`395/712; 395/653
`(58) Field of Search ............................ 395/200.5, 200.51,
`395/ 200.52, 200.32, 200.56, 712, 651, 652,
`653
`
`(56)
`
`Refer ences Cited
`
`U.S. PATENT DOCUMENTS
`
`3/1991 Chernow et al. ....................... 395/700
`4,999,806
`5,155,837 10/1992 Liu et al. ............................. 395/200.1
`5,155,847 10/1992 Kirouac et al. .................... 395/200.09
`5,247,683
`9/1993 Holmes et al. ......................... 395/700
`5,367,683 11/1994 Brett ........................................ 395/700
`5,367,686 11/1994 Fisher et al. ............................ 395/700
`4/1995 Nilsson et al. .......................... 395/700
`5,410,703
`5,421,009
`5/1995 Plait ..................................... 395/200.l
`5/1995 Scholz et al. ........................... 395/700
`5,421,017
`7/1995 Goire et al. ........................ 395/200.09
`5,434,999
`6/1997 Pinard et al. ...................... 395/200.32
`5,638,494
`7/1997 Dewey et al. .......................... 395/712
`5,652,887
`5,655,081
`8/1997 Bonnell et al. .................... 395/200.32
`
`OTHER PUBLICATIONS
`"Star Sentry, Software Manager 21" Users Guide 1994 May
`AT&T.
`"Software Update Distribution System", Fry 1992.
`
`Frye Inc., "Software Update and Distribution System" Ver(cid:173)
`sion 1, ©1992.
`C.H. Kratsch et al , Electronic Software Distribution: The
`Key to Distributed Computing, (Nov. 1993) (White Paper,
`copy enclosed) .
`
`(Li<>t continued on next page.)
`
`Primary Examiner-Mark H. Rinehart
`Auomey, Agent, or Firm-Schwegman, Lundberg,
`Woes.<>ner & Kluth, P.A.
`
`(57)
`
`ABSTRACT
`
`A process of distributing software and data in a digital
`computer network by combining the software and data,
`together with programs and data known as methods, into
`single entities referred to as Packages, and then by using
`specific techniques to transmit Packages from one computer
`to another. The methods are operable on a Target digital
`computer to unpack and perform useful functions sucb as
`installing and backing out software on the Target digital
`computer, collecting data from the Target digital computer
`and forwarding it to another digital computer, or completing
`a system administration function on the Target digital com(cid:173)
`puter. The techniques used in transmitting Packages between
`digital computers includes use of Agent software to transfer
`and activate Packages at appropriate times. The techniques
`also include forwarding multiple copies of Packages
`received on a slow network connection to one or more
`digital computers connected on faster network connections.
`The techniques also include temporarily storing one or more
`Packages for later transmission to computers which connect
`occasionally to the network. Further, the techniques include
`limiting simultaneous transfers to Target digital computers
`based on network capacity and topology. The techniques
`also including limiting the type of software and data which
`each Package may affect on a Target digital computer, to
`more easily manage which Package.<> must be backed out in
`what order from the Target digital computers. Finally, the
`techniques also include constructing Packages which con(cid:173)
`tain some software and data which depends on the configu(cid:173)
`ration of the Target digital computer, and transferring only
`that part of the Package which is appropriate for each Target
`digital computer's configuration.
`
`28 Claims, 8 Drawing Sheets
`
`"'""
`-=·
`
`• ~tw::mll1
`
`IPR2017-00184
`UNIFIED EX1003
`
`
`
`5,845,090
`Page 2
`
`OIBER PUBLICATIONS
`
`J. Huntington-Lee, Excellence Award: ViaTech's Xfer,
`Managing Distributed Systems Newsletter, (Jan. 1994).
`Hewlett Packard, HP Distributed Management Environment
`(DME) Technologies, (Jun. 1993), (Marketing literature,
`copy enclosed).
`Open Software Foundation (OSF), OSF Distributed Man(cid:173)
`agement Environment Rationale, (Sep. 1991) Discussion
`Paper, copy enclosed).
`Kristin Marks, Easy Transport, LAN Magazine, (Jul. 1993)
`(Copy enclosed).
`Legent Corporation, Electronic Software Distribution, (May
`1993) (Marketing literature, copy enclosed).
`NCR Corporation, Star SENTRY Software Management,
`(Oct. 1992) (Marketing literature, copy enclosed).
`Tivoli Corporation, Tivoli/Courier, (Jun. 1993) (Marketing
`literature, copy enclosed).
`Bill Kirwin, Software Distribution: Getting the Code to the
`Node, (May 1993) (Paper presented to Twelfth Annual
`Office Automation Systems Conference, copy enclosed).
`J. William Semich. "Control Thousands of Desktop Apps!"
`Datamation, Dec. 12, 1993; p. 18 (Copy enclosed).
`Steven J. Vaughan. "Reach Out and Touch Someone With
`RemoteWare." PC Computing, Dec. 1993: p. 146 (Copy
`enclosed).
`
`Paula Musich. "Frye adds WAN support to NetWare Distri(cid:173)
`bution software." PC Week, Nov. 29, 1993: p. 49 (Copy
`enclosed).
`Mary Jo Foley. "Sun unit ships downsizing tools." PC Week,
`Nov. 22, 1993: p. 41 (Copy enclosed).
`Eric Smalley. "Banyan plans file distributor." PC Week, Oct.
`4, 1993: p. 22 (Copy enclosed).
`Jean S. Bozman. "Software distribution key to open sys(cid:173)
`tems." Computerworld, Oct. 18, 1993: p. 85 (Copy
`enclosed).
`Matt Kramer. "LAN software maintenance made easier." PC
`Week, Jan. 18, 1993: p.63 (Copy enclosed).
`Steve Higgins. "Reach to ship sofware-distribution system."
`PC Week, Nov. 9, 1992: p. 27 (Copy enlcosed).
`Stephan Loudermilk. "Startup releases client/server distri(cid:173)
`bution system." PC Week, Nov. 2, 1992: p. 6 (Copy
`enclosed).
`Beth Freedman. "Software Vendors Bet Big on Electronic
`Distribution." PC Week, Jul. 6, 1992: p.133 (Copy
`enclosed).
`Rosemary Hamilton. "Tools on way to track micro pack(cid:173)
`ages." Computerworld, May. 11, 1992: p. 1 (Copy enclosed).
`Paula Musich. "Spectrum Offering Will Fill NetWare Hole."
`PC Week, Jun. 17, 1991: p. 4 (Copy enclosed).
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 1 of 8
`
`5,845,090
`
`NETWORK
`MANAGEMENT ~
`'--~-S-ER_v_E_R~---- ~~
`
`DISTRIBUTION
`PACKAGE
`
`COMMAND
`PACKAGE
`
`DISTRIBUTION
`PACKAGE
`
`FIG. 1
`
`2
`
`DISTRIBUTION
`TARGET
`
`3
`
`COMMAND
`TARGET
`
`2
`
`DISTRIBUTION
`TARGET
`
`4
`
`HOP
`SERVER
`
`4
`~
`HOP
`SERVER
`
`·I
`
`COMMAND
`PACKAGE
`
`I
`
`COLLECTION
`PACKAGE
`
`DISTRIBUTION
`PACKAGE
`
`3
`~
`COMMAND
`TARGET
`
`IZ ~ Kr COMMAND
`
`PACKAGE
`
`COLLECTED
`DATA PACKAGES
`
`6
`
`COLLECTION
`RECEIVER
`
`5
`
`COLLECTION
`TARGET
`
`5
`
`COLLECTION
`TARGET
`
`5
`
`COLLECTION
`TARGET
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 2 of 8
`
`5,845,090
`
`NATIVE
`PACKAGE
`ENVIRONMENT
`
`,,.-
`'-
`
`-.....
`----
`
`LOCAL
`FILE
`7~ SYSTEM
`...._
`----
`t
`PACKAGE
`TOOL
`
`8
`
`NETWORK
`-.....
`-......,
`MENAGEMENT C
`r
`~ '-
`----
`SERVER
`CENTRAL r--10
`NETWORK
`PACKAGE
`9~ FILE
`ARCHIVE
`SYSTEM
`'-
`' -
`
`FIG. 2
`
`PACKAGE
`DEFINmON
`
`1
`-
`
`1(2
`CENTRAL
`PACKAGE
`MANAGER
`'
`
`T
`I
`
`_ /
`
`,.,-
`-.....
`r--..._
`----
`OUTBOUND
`
`.,___ - PACKAGE
`
`-... QUEUE_,
`~
`16
`13
`~
`PACKAGE
`TRANSFERr--
`AGENT
`
`,.,--
`'-
`INBOUND
`15~ PACKAGE -
`QUEUE
`
`-
`
`lf
`
`REMOTE DISTRIBUTION
`SERVER
`
`17
`
`~
`PACKAGE
`TRANSFER
`AGENT
`
`18
`• s
`r
`-..._
`_...
`----
`~
`OUTBOUND
`INBOUND
`PACKAGE
`PACKAGE
`"-QUEUE___, QUEUE
`
`19
`s
`
`~
`
`I
`
`r
`'-
`
`~
`
`I
`
`• 17
`
`~
`
`PACKAGE
`-- TRANSFER
`AGENT
`
`TRANSFER
`TOOL
`
`~r-
`
`~
`
`1 1
`
`REPORTING
`TOOL
`
`(
`
`14
`
`/
`
`'-
`
`PACKAGE TRANSFER
`
`TARGET
`SYSTEM
`
`23~
`
`___,,
`
`REMOTE ----
`
`PACKAGE
`ARCHIVE
`
`'---
`
`"--
`
`20 ~ PACKAGE -- TRANSFER-l
`•
`
`,,.,--
`___.,
`'---
`OUTBOUND
`
`QUEUE
`
`----
`
`'-
`
`REMOTE
`PACKAGE --
`MANAGER
`
`-
`
`•
`
`PACKAGE
`
`AGENT
`~21
`
`---
`/
`'-
`----
`INBOUND
`PACKAGE
`...._QUEUE___,
`?
`224
`
`22
`
`r
`'-
`
`25~
`
`'-
`
`I
`
`_,,
`TARGET
`FILE
`SYSTEM
`
`PACKAGE
`INSTALLATION
`AND BACKOUT
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 3 of 8
`
`5,845,090
`
`38
`
`DATA
`FILES
`
`FIG. 3
`
`
`
`FIG. 4
`
`40
`
`RECEIVE PACKAGE
`
`41 DETERMINE PACKAGE lYPE
`
`0 •
`rJ'J.
`•
`
`MESSAGE
`INSTALLATION
`METHODS
`
`MESSAGE
`BACK OUT
`METHODS
`
`43
`
`MESSAGE
`SYSTEM
`ADMINISTRATION
`METHODS
`
`MESSAGE
`REVERSE SYSTEM
`ADMINISTRATION
`METHODS
`45
`
`49
`
`MESSAGE
`52 REVERSE SYSTEM
`ADMINISTRATION
`METHODS
`
`MESSAGE
`BACK OUT
`METHODS
`
`51
`
`FORWARD
`TO PACKAGE
`DESTINATION(S)
`
`COLLECT
`DATA
`
`46
`
`50
`
`53
`
`FORWARD
`TO COLLECTION
`RECEIVER
`
`54 NOTIFY NETWORK
`MANAGER SERVER
`
`55
`
`END
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 5 of 8
`
`5,845,090
`
`FIG. SA
`
`FIG. 58
`
`FIG. 5
`
`1 DISTRIBUTION 1 - - ----1- i
`SERVER
`
`STAGING
`SERVER
`
`56
`
`10
`
`CENTRAL
`PACKAGE
`ARCHIVE
`
`STAGING
`IMAGE
`
`57
`
`FIG. SA
`
`STAGING
`SERVER
`
`REQUEST
`
`58
`
`56 ~ TARGET
`
`RESPONSE
`
`STAGING
`IMAGE
`
`57
`
`FIG. 58
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 6 of 8
`
`5,845,090
`
`FIG. 6
`
`59
`
`\
`
`CREATION
`ORDER
`
`s,
`
`c,
`
`60
`
`\
`
`61
`
`\
`
`A,
`
`TARGET
`S~~\iM INS6~L~~ION
`
`TARGET
`
`S~~\iM
`
`B~~~~~T
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 7 of 8
`
`5,845,090
`
`62
`
`\
`
`PACKET
`WITH CRITERIA-
`DEPENDENT
`ITEMS
`
`B C
`
`A
`
`63
`
`\
`
`B,,.-----+---~
`
`TARGET REQUESTS PACKAGE. AND
`REPORTS CRITERIA VALUE
`
`64
`
`\
`
`PACKET
`SEND TO
`
`TARGET D
`
`FIG. 7
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 8 of 8
`
`5,845,090
`
`65
`
`UNBUILT
`
`BUILD
`
`66
`
`CHANGE AND
`SAVE
`
`BUILT
`
`FIG. 8
`
`CLEAN {PROFILE EXEMPT)
`
`CLEAN
`{PROFILE SENSITIVE)
`
`UNCLEAN
`
`CLEAN
`
`CERTIFY
`
`67
`
`UNCLEAN
`
`68
`
`READY
`
`TRANSFER SAVED
`
`69
`
`CLOSED
`
`
`
`5,845,090
`
`1
`SYSTEM FOR SOFTWARE DISTRIBUTION
`IN A DIGITAL COMPUTER NETWORK
`
`This is a continuation of application Ser. No. 08/194,925,
`filed Feb. 14, 1994 now abandoned.
`
`TECHNICAL FIELD OF THE INVENTION
`The present invention pertains to the field of digital
`computing equipment, and particularly to the application of
`computing equipment to distributed networks of computer
`networks.
`
`5
`
`10
`
`2
`FIG. 2 is a detailed block diagram of the functional
`components employed by the present invention.
`FIG. 3 is a diagram of the components of a Software
`Package (Package), which is the fundamental unit of transfer
`in the present invention.
`FIG. 4 is a block flow diagram of the functional compo(cid:173)
`nents of the Remote Package Manager, which is the com(cid:173)
`puter program which executes on a software distribution
`target.
`FIG. 5 is a block diagram of the functions performed by
`the Remote Package Manager when it is acting as a Staging
`Server for a software distribution target.
`FIG. 6 is a block diagram showing the relationship
`15 between Packages and Package Streams.
`FIG. 7 is a block diagram showing the function of
`Distribution Criteria in the invention.
`FIG. 8 is a block diagram showing the finite state machine
`for Software Packages.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`BACKGROUND OF THE INVENTION
`Digital computing equipment (computers) are often elec(cid:173)
`trically connected to other digital computer equipment
`through internetworks of wiring and software. Each com(cid:173)
`puter in an internetwork requires programs and data
`(software) to operate. Traditionally, software is entered into
`a computer through removable magnetic media, such as
`magnetic tape or removable disks. Because each computer
`in a large internetwork requires its own copy of software, 20
`and since a relatively few administrators must install and
`update software on every computer in a network, distribut(cid:173)
`ing software throughout a network by traditional techniques
`is time-consuming, error-prone, or impractical.
`Distributing software by transmitting it through the net-
`work between computers is known in the art as Electronic
`Software Distribution (ESD). ESD can reduce the number of
`administrators required to install and update software in a
`network, and improve the speed and accuracy of software
`distribution. Existing software distribution techniques,
`however, are often unreliable, inefficient, and incomplete.
`The present invention is an improvement over existing
`techniques, employing advanced processes and methods of
`ESD.
`
`25
`
`30
`
`35
`
`The present invention is a means of distributing software
`in a digital computer network by using the network to
`transmit Software Packages. Software Packages are the
`fundamental unit of transfer in the present invention. Pack(cid:173)
`ages are transferred between a Network Management Server
`and Distribution Targets. Any digital computer electrically
`connected to the network is a potential Distribution Target,
`while one or more computers are pre-designated as the
`Network Management Server for a given network. There are
`three types of Software Packages: Distribution Packages,
`Collection Packages, and Command Packages. Distribution
`Packages contain methods and data for installing computer
`programs and data on one or more Distribution Targets.
`Collection Packages contain methods for collecting data
`from Distribution Targets (in this context called Collection
`Targets), and forwarding that data to one Distribution Target
`(in this context called a Collection Receiver). Command
`Packages contain methods for accomplishing a system
`administration task on a Distribution Target (in this context
`called a Command Target).
`This detailed narrative describes the invention in terms
`used in the art which may have different meanings than the
`terms of the same name in patent law. Specifically, terms
`common in object technology, such as object, data, and
`method, do not necessarily connote the same meaning as
`they have as terms of art in patent law. An object is an entity
`50 which contains data and methods. Data is generic informa(cid:173)
`tion represented in digital form. Methods are programs or
`instructions operable on a digital computer, which, when
`applied to the data of an object, produce a desired and
`consistent result.
`FIG. 1 is a block diagram of the functions accomplished
`by the present invention. The Network Management Server
`(NMS) (1) is a digital computer electrically connected to one
`or more internetworks, and pre-designated as the NMS. The
`NMS acts as the central repository of Software Packages for
`60 the network. It also acts as the central distribution point for
`Software Packages for the network. An alternative embodi(cid:173)
`ment includes one or more NMS platforms, with one acting
`as the "Master" NMS for the enterprise internetwork.
`A Distribution Target (2) is another digital computer
`65 electrically connected to the NMS through one or more
`internetworks. A Distribution Target receives Software
`Packages from the NMS, and sends a digital message to the
`
`40
`
`SUMMARY OF THE INVENTION
`The present invention is a process for transferring digital
`computer software and data from one digital computer to
`one or more digital computers through a network of elec(cid:173)
`trical connections between the two or more digital comput(cid:173)
`ers. The process includes combining the software and data,
`together with digital computer programs and data called
`methods which are operable on digital computers to act on
`the software and data, into a single entity called a Package.
`The process further includes transferring Packages from one 45
`digital computer to one or more digital computers through
`the network by a specific technique. This transfer technique
`includes mechanisms for uniform transfer control called
`Profiles, automatic modification of Package contents based
`on recipient's configuration called Criteria, and network
`capacity control to limit network consumption called Trans(cid:173)
`mission Windows and Congestion Control Groups. Each
`Package can either install software and data, collect data, or
`accomplish a useful system administration function on a
`digital computer. A key feature of the present invention, 55
`which distinguishes it in the art, is the use of object
`technology to encapsulate Packages, such that the transfer is
`not a mere transmission and receipt of binary data from one
`digital computer to another. Instead, the present invention
`uses the computing resources available on each digital
`computer in the network to instrument the Package objects
`to install, backout, collect and forward, or configure them(cid:173)
`selves.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of the functions accomplished
`by the present invention.
`
`
`
`5,845,090
`
`15
`
`3
`Package to initiate the installation. Each Distribution may be
`scheduled on the NMS to occur on or after a specific point
`in time, or to occur periodically without further manual
`intervention by a system administrator on the NMS. Each
`Distribution may send one or more packages to one or more 5
`Distribution Targets.
`A Command Target (3) is another name for a Distribution
`Target when it receives and acts on a Command Package.
`Command Packages are identical to Distribution Packages,
`except that they contain a different set of methods. The 10
`methods contained in a Distribution Software Package act,
`among other things, to unpack data from the Software
`Package and install it on a Distribution Target. The methods
`contained in a Command Package, by contrast, act on data
`to perform a system administration function on the Com-
`mand Target.
`A Hop Server ( 4) is a digital computer which stores a
`Software Package and then forwards it to one or more
`Distribution Targets. Although not pictured, all three types
`of Software Packages may be transmitted through a Hop
`Server. The purpose of a Hop Server is to reduce network 20
`traffic across slow and expensive resources, such as Wide
`Area Networks (WANs). Hop Servers enable the NMS to
`transmit a Software Package once to the Hop Server, which
`in turn can forward the Package to many Targets on its Local
`Area Network (LAN). Although not pictured, Hop Servers 25
`may distribute to additional Hop Servers.
`Both the NMS and Hop Servers employ a technique
`known as Transmission Windows. A Transmission Window
`is a configurable parameter on the NMS and Hop Server(s)
`which sets the maximum number of simultaneous transmis- 30
`sions which can occur at a given time. As one transmission
`completes, another is started, until all Targets for a Distri(cid:173)
`bution have received the Software Package. Since digital
`computers can submit data for transmission across a network
`faster than the network can communicate the data to the
`receiver, this technique requires mechanisms to limit the
`number of simultaneous transmissions. One limit is identi(cid:173)
`fied above, a limit on the maximum number of concurrent
`transfers. This limit, however, does not solve a potential
`problem in internetworks which do not guarantee end-to-end
`reliable transmissions. For example, frame relay networks
`do not guarantee that data sent will be transmitted to the
`ultimate destination. This means that data messages can and
`are discarded as the NMS transmits to a remote Target across
`progressively slower frame relay links. The data loss is
`compensated for by re-transmission of the discarded data,
`but as network traffic increases, the number of
`re-transmissions can exceed the volume of data being trans(cid:173)
`mitted correctly.
`Therefore, the present invention also employs a technique
`referred to here as Congestion Control Groups. A Conges(cid:173)
`tion Control Group is a set of two or more Targets which
`should not receive simultaneous transmissions. One or more
`Targets are assigned to at most one Congestion Control
`Group. Each Congestion Control Group is assigned a maxi(cid:173)
`mum number of concurrent transmissions to its members
`(n). When a distribution starts, the NMS and Hop Servers
`scan and periodically re-scan the list of Targets which are
`candidates for immediate transmission. The NMS or Hop
`Server cross-references the list of Congestion Control Group
`members currently receiving transmissions. If candidate
`Target is a member of a Congestion Control Group and n
`members of that group are presently receiving a
`transmission, then that candidate is disqualified from the
`current scan. Transmission to that candidate Target cannot
`begin until n-1 or fewer members of that group are currently
`receiving transmissions.
`
`4
`Although not pictured, one or more Targets may be
`grouped for convenience. A Software Package can then be
`transmitted to a group of Targets, rather than an individual
`target. Groups of Targets which all share the same mission(cid:173)
`critical software can be grouped in a special set called a
`Profile. All members of a Profile have identical mission-
`critical software. Software Packages which are marked as
`Profile Software Packages may only be transmitted to one or
`more pre-specified Profiles. Before a Profile Software Pack(cid:173)
`age may be transmitted to a Profile, it must be certified by
`a system administrator as error-free. Profile Software Pack-
`ages must be sent to the Profile members in the order in
`which it was certified. That is, if Profile Software Packages
`A, B, and C were certified in that order, then B cannot be
`transmitted to the Profile members until A has been suc(cid:173)
`cessfully transmitted. Similarly, C cannot be transmitted
`before B. Software Packages, therefore, carry an attribute
`identifying whether they are Profile Software Packages.
`A Collection Target (5) is another name for a Distribution
`Target when it receives and acts on a Collection Package.
`Collection Packages are similar to Distribution Packages,
`except that they list the data to be collected from the
`Collection Target. When the data is collected into a Software
`Package, it is then sent to a Collection Receiver (6). A
`Collection Package may be sent to one or more Collection
`Targets, but each Collection Package must specify exactly
`one Collection Receiver, which receives all the collected
`data. The Collection Receiver may be the same digital
`computer as the NMS.
`A single digital computer may be at one time a Distribu(cid:173)
`tion Target, a Command Target, a Hop Server, and a Col(cid:173)
`lection Target.
`FIG. 2 shows a detailed block diagram of the functional
`components employed by the present invention. There are
`35 four generic digital computing environments indicated:
`Native Package, Network Manager Server, Remote Network
`Management Server, and Target System. The Native Pack(cid:173)
`age environment is the starting point for all packages. That
`is, all packages must be created in the native computing
`40 environment where they will ultimately be installed. For
`example, if a package is created for a personal computer
`(PC), it must be authored on a PC. The Network Manage(cid:173)
`ment Server Environment is a multi-user digital computer,
`which excels at networking. It initiates transfers and reports
`45 status. The Remote Distribution Server environment is an
`optional environment, which can become a Hop Server
`(discussed above), a Staging Server (discussed below), or
`both. The Target System environment is the digital computer
`or computers which receives a transfer, either distribution,
`50 collection, or command. In this discussion, the term Soft(cid:173)
`ware Package indicates a generic Package of type
`Distribution, Collection, or Command.
`As the figure shows, these four environments support the
`three basic functions of the invention: Package Definition,
`55 Package Transfer, and Package Installation and Backout.
`Package Definition means that all the attributes of a package
`are specified, and the data is provided for the package.
`Package Transfer means that the package is transmitted via
`the internetwork to one or more Targets, optionally through
`60 a Remote Distribution Server. At the Target, the Package is
`installed. That is, software operable on the Target digitally
`messages the Software Package to install itself. If the
`installation fails, or if the Package is of type Backout
`discussed below), then the Package receives a digital mes-
`65 sage to backout instead of install.
`All packages are constructed by using one or more tools
`on the local file system (7) of a Native Package digital
`
`
`
`5,845,090
`
`5
`computer. Files, scripts and data are drawn from this file
`system by using a software program called a Package Tool
`(8). The Package Tool enables the user to specify the
`following attributes for each package: (1) name, description
`and identifier for the package, (2) type of package
`(distribution, collection, or command), (3) name of author,
`( 4) specific attributes of the methods, and ( 5) an optional
`assigned profile.
`The Package Tool also enables the user to specify the
`package contents, including data files and methods.
`In addition to raw network transmission, the network file
`system (9) is a means by which the Package Tool (8) can
`transfer its information to the Central Package Manager
`(12). The Central Package Manager (12) maintains the
`Central Package Archive (10), which is the central reposi(cid:173)
`tory of all Software Packages for an enterprise. The Central
`Package Archive (10) may physically be placed on several
`digital computers, and need not be restricted to one com(cid:173)
`puter. Once a Software Package is stored in the Central
`Package Archive (10), it may be transferred using the rest of
`the invention.
`The Transfer Tool (11) is a computer program which
`accesses the Central Package Archive (10) to schedule
`transfers or one or more Software Packages. The Transfer
`Tool enables the user to specify the following attributes of
`a transfer: (1) name, description, and identifier for the
`transfer, (2) type of transfer (distribution, collection or
`command), (3) name of administrator scheduling transfer,
`( 4) specific values for methods, (5) date and time for
`transmission, ( 6) date and time for installation, (7) specific
`attributes of backout image, (8) frequency of transfer (one(cid:173)
`time or recurring), and (9) target for transfer (target
`computer, group, or profile).
`Once a Software Package is scheduled for transmission
`via the internetwork to a target computer, group, or Profile,
`an indication is stored in the Outbound Package Queue (13).
`The Package Transfer Agent (16) program acts on this
`indication, and transfers the Package from the Central Pack(cid:173)
`age Archive (10) to the Target System, optionally through
`one or more Remote Distribution Servers. Return notifica(cid:173)
`tions from computers other than the Network Management
`Server are received by the Package Transfer Agent (16) and
`the Inbound Package Queue (15) to reach the Central
`Package Manager (12) and ultimately the Central Package
`Archive (10). The Reporting Tool (14) draws this informa(cid:173)
`tion from the Central Package Archive (10) and Central
`Package Manager (12) to produce status reports on Packages
`and Transfers.
`If a given Target System for a transfer is specified in the
`Central Package Manager to receive its transfers through a
`Hop Server or Staging Server, then the Software Package is
`transmitted to that computer by the Package Transfer Agent
`(17). The Hop or Staging Server receives the Software
`Package through its own Package Transfer Agent (21),
`which places it on its own Outbound Package Queue (18).
`Return notifications are placed by the Package Transfer
`Agent (17) on its own Inbound Package Queue (19), for
`transmission to the Network Management Server. The Pack(cid:173)
`age Transfer Agent transmits Packages on its Outbound
`Package Queue (18) to one or more Target Systems, which
`receive the Package through their Package Transfer Agent
`(21).
`The Package Transfer Agent (21) on the Target System
`places packages on the Inbound Package Queue (24). The
`Remote Package Manager (23) acts on these queue entries to
`install or backout the Software Packages. The Remote
`
`6
`Package Manager (23) returns indications to the Network
`Management Server by placing them on its own Outbound
`Package Queue (20), where the Package Transfer Agent (21)
`transmits them to the Network Management Station. In
`5 acting on a transmitted Software Package, the Remote
`Package Manager manipulates the local file system (25), and
`stores backout images in the Remote Package Archive (22)
`when appropriate.
`FIG. 3 is a diagram of the components of a Software
`10 Package (Package), which is the fundamental unit of transfer
`in the present invention. The figure shows the Package (39)
`as an object, which is an entity containing both data and
`methods to act on that data. Methods may include, among
`other things, programs, scripts, instructions, additional data,
`15 and protocols. Methods are activated on the computer by
`messaging the appropriate method. That is, an agent pro(cid:173)
`gram may initiate an installation by sending an "install"
`message to a Package.
`A Package (39) may contain a pre-build method (26)
`20 which is messaged prior to assembling the package data files
`each time the package is transferred. For example, informa(cid:173)
`tion may be extracted from a database, and placed into the
`Central Package Archive prior to building the package for
`transfer each time it is transferred. A Package may contain
`25 a post-build method (27), which is messaged after the build
`is complete each time a package is transferred. A Package
`will contain both installation (28) and backout methods (29).
`A Package may contain a pre-install method (30), which is
`messaged on each target computer prior to installing the
`30 Package. A Package may contain a post-install method (31),
`which is messaged after a successful installation on the
`target computer. A Package may contain a pre-backout
`method (32) which is messaged prior to backing the Package
`out on the Target computer. A Package may contain a
`35 post-backout method (33) which is messaged after a suc(cid:173)
`cessful backout of the Package on the Target computer. A
`Command Package may contain a System Administration
`Command method (34), which performs some system
`administration function on the Target computer. A Command
`40 Package may contain a Reverse System Administration
`Command method (35) which reverses the effects of the
`System Administration Command method (34). A Distribu(cid:173)
`tion or Collection Package may contain a Dynamic File
`Manifest (36) which specifies the files to collect at package
`45 build time on the NMS, or at data collection time on the
`Target system. The Package must contain a Package File
`Manifest (37), specifying the files contained in the Package
`(if any), their attributes, and their sizes. Finally, the Package
`may contain data files (38), binaries, text, executables, etc.
`50 for transmission to the Target computer.
`FIG. 4 shows the actions taken by the Package Transfer
`Agent and Remote Package Manager (21, and 23 in FIG. 2)
`when operating on Packages in the Inbound or Outbound
`Package Queues (24, and 20 in FIG. 2). The Package
`55 Transfer Agent and Remote Package Manager may be
`combined into the same computer program, and will be
`referred to collectively here as Transfer Daemon.
`The Transfer Daemon begins ( 40) by determining the
`Package Type ( 41), and acting accordingly. If the Package
`60 Type is Distribution, then it messages the Package to begin
`installation. The package then optionally messages a pre(cid:173)
`install method, makes a backout image of data files affected
`by the Package as specified in the Package File Manifest (37
`in FIG. 3), and installs the files into the Target's file system.
`65 If any of these steps fails ( 48), then the Transfer Daemon
`messages the backout methods (51) to reverse the affects of
`the package on the system. If the Package Type is Distri-
`
`
`
`5,845,090
`
`25
`
`7
`bution Backout, then the Transfer Daemon messages the
`Software Package to initiate its backout methods ( 43). This
`includes optionally messaging the pre-backout methods,
`restoring the backout image of the affected files, and mes(cid:173)
`saging the post-backout methods.
`If the Package Type is Command, then the Transfer
`Daemon messages the Package to initiate the System
`Administration methods ( 44). If these methods fail ( 49),
`then the Tran