Você está na página 1de 53

US008533704B2

(12) Ulllted States Patent


W00key
(54) APPARATUS AND METHOD FOR AUTOMATED SOFTWARE INSTALLATION

(10) Patent N0.:


(45) Date of Patent:
6,381,742 B2 6,542,167 B1 6,675,382 B1

US 8,533,704 B2
*Sep. 10, 2013

4/2002 Forbes et a1. 4/2003 Darlet er a1~ 1/2004 Foster

(75)

Inventor:

Michael J. Wookey, Los Gatos, CA


(Us)

6,832,373 B2
6,883,168 B1
6,938,250 B2

6,698,018 B1

120004 UNeill

2/2004 ZimnieWicZ et a1.

4/2005 James et a1.


8/2005 Cohen et a1.

(73) Assignee: Oracle America, Inc., RedWood City,


CA (Us)

6954928 B2
6,976,221 B2 7,058,942 B2

10/2005 Alls0P et a1~


12/2005 Darlet et 31. 6/2006 Bourke-Dunphy et a1.

( * ) Notice:

Subject' to any disclaimer, the term of this


patent 1s extended or adjusted under 35 C _ d

if???
( ommue )
OTHER PUBLICATIONS
Amendment and Response to Non-Final Of?ce Action regarding

U.S.C. 154(1)) by 164 days.


Tlhis patent is subject to a terminal diSc a1mer.

(21) Appl. No.: 13/152,088

US. Appl. N0. 13/103,820, Dec. 18,2012.

(22) Filed:
(65)

Jun. 2, 2011
Prior Publication Data _ _

(Continued)
Primary Examiner * Anna Deng

Us 2011/0239212 A1

Sep' 29 2011

(74) Attorney, Agent, or Firm * Polsinelli PC

Related US. Application Data

(63)

Continuation of application No. 13/083,382, ?led on Apr. 8, 2011, and a continuation of application No. 11/862,987, ?led on Sep 27 2007, now abandoned
_ _ 1
'

(57)

ABSTRACT

A virtual installation map, and method involving installing a


software functionality using the same, the virtual installation

1_

?l d

(60)
(51)

Ifgolgsgna app lcanon NO 60 890171

e on Fe '

map including a ?rst software installation map including a


plurality of softWare elements representative of a related soft

(52)

Int Cl G06F 9/445 U 5 Cl

(200601)

Ware ?le, the softWare elements also including at least one dependency to another softWare element. The virtual instal lation map further including a second softWare installation
map also including a second plurality of Software elements

USPC ........................................................ .. 717/174

(58)

Field of Classi?cation Search


USPC ................................................ .. 717/1684178

representative of related softWare ?le along With related


dependencies-The ?rstandSecondsoftwareinstanationmaps

See application ?le for Complete Search history


(56) References Cited
US. PATENT DOCUMENTS
6,117,187 A 6,202,207 B1 6,349,137 B1 9/2000 Staelin 3/2001 Donohue 2/2002 Hunt et a1.

may be hosted in separate databases and may relate to soft Ware products provided by different vendors. One or both
softWare installation maps may include a pointer or other reference to the other installation map thereby providing a virtual installation map, in one example.

17 Claims, 25 Drawing Sheets


Unpack software applications Into Individual /-'
?ies and represent each ?ls in an installation
map as a software element

300

identity dependencies between software


elements

310

Generate software installation mute within the Installation map. the Installation routs representing a set of software ?les to achieve a software functionallty

320

Transmit installation route to a client system to install so?ware ?les associated with the

330

software functionalily

Submit success and failure statistics to

340

installation map to generate dependency and


route con?dence levels

US 8,533,704 B2
Page 2

(56)

References Cited U.S. PATENT DOCUMENTS 7,458,073 B1 11/2008 Darling et al.

2008/0148248 A1 2008/0301646 A1 2009/0328023 A1

6/2008 Volkmer et al.

12/2008 Gupta
12/2009 Bestland et al.

2011/0225461 A1 2012/0151469 A1

9/2011 Wookey 6/2012 Wookey

7,478,093 7,503,042 7,526,468 7,694,291 7,752,158 7,761,395 7,839,816 7,861,231 7,865,874 7,870,539 7,971,202 7,987,459 8,185,872 8,387,038
2001/0037289 2002/0087949 2002/0188941 2002/0188942 2003/0028870 2003/0122871 2003/0172368 2003/0182656 2003/0220944 2003/0233385 2003/0233645 2004/0003266 2004/0019888 2004/0054991 2004/0117783 2004/0181790 2004/ 0250247 2004/0255291 2005/0055686 2005/0125525 2005/0132337 2005/0132350 2005/0144616 2005/0155031 2005/0188258 2005/0210285 2005/0223374 2005/0268282 2005/0289535 2006/0070063 2006/0080656 2006/0101457 2006/0140144 2006/0212865 2007/0006222 2007/0074197 2007/0101197 2007/0169079 2007/0220510 2007/0240134 2007/0240147 2007/0277167 2007/0300215 2008/0040714 2008/0046708 2008/0077592 2008/0098387 2008/0127164 2008/0140732

B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1

1/2009 3/2009 4/2009 4/2010 7/2010 7/2010 11/2010 12/2010 1/2011 1/2011 6/2011 7/2011 5/2012 2/2013 11/2001 7/2002 12/2002 12/2002 2/2003 7/2003 9/2003 9/2003 11/2003 12/2003 12/2003 1/2004 1/2004 3/2004 6/2004 9/2004 12/2004 12/2004 3/2005 6/2005 6/2005 6/2005 6/2005 7/2005 8/2005 9/2005 10/2005 12/2005 12/2005 3/2006 4/2006 5/2006 6/2006 9/2006 1/2007 3/2007 5/2007 7/2007 9/2007 10/2007 10/2007 11/2007 12/2007 2/2008 2/2008 3/2008 4/2008 5/2008 6/2008

Moulckers et al. Henrickson et al. Vincent et al. Chen et al.

OTHER PUBLICATIONS
Amendment and Response to Non-Final Of?ce Action regarding U.S. Appl. No. 13/162,429, Mar. 6, 2013. Amendment and Response to Non-Final Of?ce Action regarding U.S. Appl. No. 13/083,382, Nov. 23, 2012. Amendment and Response to Non-Final Of?ce Action regarding U.S. Appl. No. 13/111,340, Mar. 6, 2013. Gucer et al., Deployment Guide Series: IBM Tivoli Application

Wookey Wookey
Hall

Rangarajan et al.

Wookey Wookey
Bell et al. Chow et al. Harmsen et al. Wheeler et al.

Dependency Discovery Manager V7.1, IBM, Aug. 2008.


Non-Final Of?ce Action regarding U.S. Appl. No. 13/083,382, Jul. 23, 2012. Non-Final Of?ce Action regarding U.S. Appl. No. 13/103,820, Sep. 18, 2012. Non-Final Of?ce Action regarding U.S. Appl. No. 13/111,340, Dec. 7, 2012. Non-Final Of?ce Action regarding U.S. Appl. No. 13/114,715, Dec. 21, 2012. Non-Final Of?ce Action regarding U.S. Appl. No. 13/116,902, Dec. 21, 2012. Non-Final Of?ce Action regarding U.S. Appl. No. 13/149,353, Mar. 15, 2013. Non-Final Of?ce Action regarding U.S. Appl. No. 13/162,429, Dec. 6, 2012. Non-Final Of?ce Action regarding U.S. Appl. No. 13/171,189, Dec. 24, 2012. Amendment and Response to Non-Final Of?ce Action regarding U.S. Appl. No. 13/171,189, Mar. 25, 2013. Notice ofAlloWance regarding U.S. Appl. No. 13/162, 149, Mar. 19,
2012.

Mayr et al.
Golender et al. Cicciarelli et al.

Bryan et al.
Weisman et al. Darlet et al.
Alumbaugh et al.
Leathers et al.

....... .. 717/106

............ .. 717/177

Schottland et al. Srinivasa et al. Cohen et al. Moshir et al. Jain et al. Harres
Kaminsky et al. .......... .. 717/169

Herrick Deeths et al.


Sierer et al. ................. .. 717/174

Buban et al. Zhou et al. Wedel et al.

Markley et al.
Hammond et al.

Non-Final Of?ce Action regarding U.S. Appl. No. 13/100,982, Mar. 25, 2013. Final Of?ce Action regarding U.S. Appl. No. 13/083,382, Mar. 22,
2013.

Wang et al.
Zweifel et al. Williams Wishart et al. Laird

Amendment and Response to Non-Final Of?ce Action regarding

U.S. Appl. No. 13/114,715, Apr. 22, 2013. Final Of?ce Action regarding U.S. Appl. No. 13/103,820, May 13,
2013.

Murray et al. Takashige et al.


Cain et al. Zweifel et al. Bruner et al. Vincent et al. Maier et al.

Non-Final Of?ce Action regarding U.S. Appl. No. 13/154,123, May 23, 2013. Non-Final Of?ce Action regarding U.S. Appl. No. 13/159,231, May 29, 2013.
Amendment and Response to Non-Final Of?ce Action regarding U.S. Appl. No. 13/149,353, Jun. 17,2013. Non-Final Of?ce Action regarding U.S. Appl. No. 13/157,091, Jun. 20, 2013. Final Of?ce Action regarding U.S. Appl. No. 13/111,340, Jun. 21,
2013.

Buckley et al.
Moore et al. Keller et al. Bell et al.

Buragohain et al.
Bernabeu-Auban et al. Smith et al.

Bardsley
Wheeler et al.

Amendment and Response to Final Of?ce Action regarding U.S. Appl. No. 13/083,382, Jun. 24, 2013. Amendment and Response to Final Of?ce Action regarding U.S. Appl. No. 13/100,982, Jun. 25, 2013. Notice of Allowance regarding U.S. Appl. No. 13/162,429, Jul. 5,
2013.

Fitzgerald et al.
Brodie et al. Lo et al. Duf?eld et al. Wilson et al.

Final Of?ce Action regarding U.S. Appl. No. 13/116,902, Jul. 8,


2013.

* cited by examiner

US. Patent

Sep. 10, 2013

Sheet 1 0f 25

US 8,533,704 B2

Functional

Relationships With
Other

/ 12o
1 /1O

K100

Packages

K 140
Core Software

Pre-Installation

Inventory
Arranged In

Post lnstaliation / 150

Scripts

Scripts

Packages

I
Package
Manifest

K 130

FIG. 1 (PRIOR ART)

US. Patent

Sep. 10, 2013

Sheet 2 0f 25

US 8,533,704 B2

Software Application A (200)


210

Package 1

205

(- 220
Package 2
230

Package 3

f 240
Package 4

f" 25
Package 5

FIG. 2 (PRIOR ART)

US. Patent

Sep. 10, 2013

Sheet 3 0f 25

US 8,533,704 B2

Unpack software applications into individual /'


?les and represent each file in an installation
map as a software element
r

30D

identity dependencies between software


elements

310

Generate software installation route within the installation map, the installation route representing a set of software files to achieve a software functionality
r

320

Transmit installation route to a client system to installsoftware ?les associated with the

330

//

software functionality
l

Submit success and failure statistics to

340

installation map to generate dependency and


route con?dence levels

FIG. 3

US. Patent

Sep. 10, 2013

Sheet 5 0f 25

US 8,533,704 B2

Communicate installation request to software f, 500 agent resident on target computer (e.g.. client

computer)
7

Transmit installation request to service

// 510

provider
l
. . . . 520

Transmrt client software manifest to service /'

provider
l

i
/"'T 530

Analyze dependency map to generate installation paths


l

540

Transmit installation path(s) to software agent /

Provide input medium for administrator to select installation path


7

/" 550

Transmit path selection to service provider /

560

Transmit software elements or otherwise facilitate access to installation path

/ 57o

FIG. 5

US. Patent

Sep. 10, 2013

Sheet 6 0f 25

US 8,533,704 B2

605

600

Shared Library
Class

/ 610
Con?guration Fiie
615

Shared Library

620

Executable

Executable

B50

K 640
Class Class

/ 635

FIG. 6

US. Patent

Sep. 10, 2013

Sheet 7 0f 25

US 8,533,704 B2

701 K 702
Software Source
1

Software Seeker
l

718

f 712 /_ 727

l
l L 08

r Detector

08 She"

705 7"

K" 725

'_7_1__

OS speci?c

Software Collector

Dependency Resolver

Module (0) OS Speci?c Module (n)

Software packages
' Software '

ZLQ

Elements

Z59

Element Unpacker

Graph Manager

19
Software Element

Software

745

/ Element \
Software Element Software Element

/ 747
r

Software Element

Software Element
Software

/
Element

Software Element
Software Element

/
Software Element

FIG. 7

US. Patent

Sep. 10, 2013

Sheet 8 0f 25

US 8,533,704 B2

Obtain software application for incorporation / 300 in the dependency map

Retrieve OS plugin to determine which 05 the software application is Written for

// 810

Extract the individual ?les from each package /"' 820 in the software application

Analyze manifest and installation scripts to

830

characterize each ?le by tile type

Generate software elements to represent


each ?le in the installation map

K 840

Add software elements to installation map

and provide pointers to location of software


?les associated with soitware elements

850

FIG. 8

US. Patent

Sep. 10, 2013

Sheet 9 0f 25

US 8,533,704 B2

Begin analysis of dependencies from software application packages


Extract declared dependencies from the software packages and represent them in the

900

910

dependency map
Analyze shared libraries to determine if dependencies have been declared in the libraries and represent them in the

920

dependency map

l
Analyze con?guration ?les to determine if dependencies have been declared in the ?les and represent them in the dependency map
930

l
Identify executable ?les for dependency

940

analysis
Analyze symbol table for each executable ?le to identify dependencies and represent them in the dependency map

950

Run executable ?le to identify executable dependencies and place them in the dependency map

960

Have all executable files been

970

analyzed?

Dependency analysis is complete

980

FIG. 9

US. Patent

Sep. 10, 2013

Sheet 11 0125

US 8,533,704 B2

DEPENDENCY MAP
1100

SOFTWARE ELEMENTS 1120

SOFTWARE BOUNDARY OVERLAY 1110

\
I

"f
/

DEPENDENCY
1130

FIG.11

US. Patent

Sep. 10, 2013

Sheet 12 0f 25

US 8,533,704 B2

Describe software application with individual f, 1200 software elements in installation map

Describe dependencies between each


software element

elements that de?ne a software functionality W 1220

identify boundary around all software

Analyze software elements to identify dangling references

//~ 1230

increase the boundary to encompass any

//~ 1240

dangling references

FIG. 12

US. Patent

Sep. 10, 2013

Sheet 14 0f 25

US 8,533,704 B2

Receive client install request and software

manifest
7

1400

Route manager analyzes manifest and creates dependency route overlay

/ 1410

Start point calculator calculates a start point / 1420 of the dependency route overlay

Record start point in a persistent store

K 1430

End point calculator calculates end point of / 1440


the dependency route overlay

Route calculator determines a route from

/ 1450

start point of the dependency route overlay

1460

Submit installation routes to client

FIG. 14

US. Patent

Sep. 10, 2013

Sheet 15 0f 25

US 8,533,704 B2

SOFTWARE ELEMENTS 1530

DEPENDENCY MAP 1500

DEPENDENCY ,

"'T

ROUTE15O1\6ERLAY
FIG.15

INSTALLATION

US. Patent

Sep. 10, 2013

Sheet 16 0f 25

US 8,533,704 B2

Route manager receives installation /"_' 1500 request and manifest

Route manager calculates rapid


installation route in real-time

/ 1610

installation route is transmitted to client // 1620


as XML ?le

Software agent begins installation


based on the chosen route

/ 1630

Sen/ice provider
requests a reroute installation is

through dependency
map 1640

successful
1650

A new route is sent to the

New route is installed

software agent
1660

by software agent
1670

H6. 16

US. Patent

Sep. 10, 2013

Sheet 17 0f 25

US 8,533,704 B2

Software agent receives installation route

Software agent determines whether the ?les


for the installation are present on the client

system

if

if files are missing, request for missing ?le


made to the map

Dependency map locates and transmits the missing ?les to the software agent

r 1730

FIG. 17

Você também pode gostar