throbber
United States Patent [191
`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

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