`US007093005B2
`
`(12) United States Patent
`Patterson
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,093,005 B2
`*Aug. 15, 2006
`
`(54) GRAPHICAL EDITOR FOR DEFINING AND
`CREATING A COMPUTER SYSTEM
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`0262750 A2
`
`4/1988
`
`(75)
`
`Inventor: Martin Patterson, Mountain View, CA
`(US)
`
`(73)
`
`Assignee: Terraspring, Inc., Fremont, CA (US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.c. l54(b) by 835 days.
`
`This patent is subject to a terminal dis(cid:173)
`claimer.
`
`(21) Appl. No.: 09/863,945
`
`(22)
`
`Filed:
`
`May 22,2001
`
`(65)
`
`(63)
`
`(60)
`
`(51)
`
`(52)
`(58)
`
`(56)
`
`Prior Publication Data
`
`US 2002/0052941 Al
`
`May 2,2002
`
`Related U.S. Application Data
`
`Continuation-in-part of application No. 09/502,170,
`filed on Feb. 11,2000, now Pat. No. 6,779,016.
`
`Provisional application No. 60/212,925, filed on Jun.
`20, 2000, now abandoned.
`
`Int. Cl.
`(2006.01)
`G06F 15/177
`7091220; 709/221; 715/513
`U.S. Cl.
`Field of Classification Search
`709/201-3,
`709/220-224,249,250,223-6; 715/513
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,591,967 A
`5,163,130 A
`5,504,670 A
`
`5/1986 Mattes et al.
`11/1992 Rullot
`4/1996 Barth et al.
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`computer Dictionary, Third Edition,
`Microsoft Press
`Microsoft Press Publishing, 1997, p. 197.*
`
`(Continued)
`
`Primary Examiner-Krisna Lim
`(74) Attorney, Agent, or Firm-Hickman Palermo Truong &
`Becker, LLP; Edward A. Becker
`
`(57)
`
`ABSTRACT
`
`A method and apparatus for defining and deploying a
`networked computer system features creating and storing a
`graphical representation using a graphical editor to drag and
`drop icons representing computing elements and network
`elements into a workspace, such that a logical configuration
`of the networked computer system is represented by the
`graphical representation. A corresponding textual represen(cid:173)
`tation of the computer system is automatically created and
`stored according to a structured markup language. Based on
`the textual representation, one or more commands are gen(cid:173)
`erated for configuring an operable computer system that
`conforms to the logical configuration. The commands may
`be directed to one or more devices that are interconnected to
`one or more computing elements and storage devices, to
`instruct
`the devices to logically connect
`the computing
`elements and storage devices into the computer system. In
`one embodiment, a graphical representation of the logical
`configuration of the networked computer system is created,
`based on a user selection from a palette of one or more
`graphical icons that represent computing elements and net(cid:173)
`work elements of the computer system, and a user selection
`of graphical interconnections of the icons. As a result, a
`real-world virtual server farm or data center may be created
`and deployed.
`
`(Continued)
`
`41 Claims, 18 Drawing Sheets
`
`1QJ.
`CREA TE AND STORE GRAPHICAL
`REPRESENTATION OF LOGICAL
`CONFIGURA TION OF COMPUTER SYSTEM
`
`l.Q.Z
`CREA TE ANO STORE TEXTUAL
`REPRESENTATION OF LOGICAL
`CONFIGURA TION OF COMPUTER SYSTEM
`
`~
`GENERA TE COMMAND(S) FOR DEVICE(S)
`TO CREA TE PHYSICAL OPERABLE
`COMPUTER SYSTEM
`
`IOC
`COMPONENT
`DATABASE
`
`CUSTOMER
`INFORMA TION
`&: FML
`REPOSITORY
`
`CONTROL PLANE
`DATABASE
`
`Oracle Exhibit 1003, Page 1
`
`
`
`u.s. PATENT DOCUMENTS
`5,574,914 A
`11/1996 Hancock et al.
`5,590,284 A
`12/1996 Crosetto
`8/1997 George et al.
`5,659,786 A
`5/1998 Raab et al.
`5,751,967 A
`10/1998 Hansen
`5,819,042 A
`5,821,937 A *
`10/1998 Tonelli et al.
`11/1998 Blickenstaff et al.
`5,832,522 A
`9/1999 Yuuki et al.
`5,951,683 A
`10/1999 Beeler, Jr.
`5,974,563 A
`6/2000 Popelka et al.
`6,081,883 A
`6,182,139 Bl
`112001 Brendel
`6,212,559 Bl
`4/2001 Bixler et al.
`6,230,200 Bl
`5/2001 Forecast et al.
`6,260,109 Bl
`7/2001 Ofer et al.
`6,330,246 Bl
`12/2001 Denning et al.
`6,381,321 Bl
`4/2002 Brown et al.
`6,389,432 Bl
`5/2002 Pothapragada et al.
`6,393,466 Bl
`5/2002 Hickman et al.
`6,421,711 Bl
`7/2002 Blumenau et al.
`9/2002 Nolan et al.
`6,446,141 Bl
`6,466,559 Bl
`10/2002 Johansson et al.
`112003 Turner et al.
`6,505,229 Bl
`4/2003 Tamer et al.
`6,542,909 Bl
`6,597,956 Bl
`7/2003 Aziz et al.
`6,631,442 Bl
`10/2003 Blumenau
`10/2003 Nolan et al.
`6,640,278 Bl
`12/2003 Nguyen et al.
`6,658,526 Bl
`6,779,016 Bl
`8/2004 Aziz et al.
`2002/0052941 Al
`5/2002 Patterson
`
`US 7,093,005 B2
`Page 2
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`EP
`EP
`EP
`EP
`EP
`WO
`WO
`WO
`
`0490624 A2
`0750256 A2
`0791 881 Al
`o 905 621 Al
`0917056 A2
`0935200 Al
`WO 97/49214 Al
`WO 99/57957 A2
`WO 00/29954 Al
`
`6/1992
`12/1996
`8/1997
`3/1999
`5/1999
`8/1999
`12/1997
`11/1999
`5/2000
`
`715/853
`
`OTHER PUBLICATIONS
`
`Rob Short, et aI., "Windows NT Clusters for Availability and
`Scalability," 1997 IEEE, pp. 8-13.
`Eric Prud'hommeaux, "XML-based HTTP Server Configu(cid:173)
`ration
`Language,"
`http://www.w3.org/1999/07/9-http(cid:173)
`server-conf.html, Sep. 7, 1999, XP-002152599, pp. 1-5.
`Nathan J. Muller, "Design and Conquer," Oct. 1996, BYTE,
`vol. 21, No. 10, XP 000683573, pp. 93-98.
`Elliotte Rusty Harold, "XML: Extensible Markup Lan(cid:173)
`guage," 1998, pp. 1-431.
`Radek Vingralek, et aI., "Snowball: Scalable Storage on
`Networks of Workstations with Balanced Load," pp. 117(cid:173)
`156, Distributed and Parallel Databases, vol. 6, No.2, Apr.
`1998, XP-002162201.
`Armando Fox, et aI., "Cluster-Based Scalable Network
`Services," pp. 78-91, Operating Systems Review (SIGOPS),
`US, ACM Headquarter, New York, vol. 31, No.5, Dec. I,
`1997, XP-000771023.
`* cited by examiner
`
`Oracle Exhibit 1003, Page 2
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 1 of 18
`
`US 7,093,005 B2
`
`FIG. 1A
`
`101
`CREA TE AND STORE GRAPHICAL
`REPRESENTA TION OF LOGICAL
`CONFIGURA TION OF COMPUTER SYSTEM
`~
`102
`CREA TE AND STORE TEXTUAL
`REPRESENTA TION OF LOGICAL
`CONFIGURA TION OF COMPUTER SYSTEM
`~
`104
`GENERA TE COMMAND(S) FOR DEVICE(S)
`TO CREA TE PHYSICAL OPERABLE
`COMPUTER SYSTEM
`
`FIG. 18
`
`FIG. 1C
`
`110
`DESIGN
`~
`112
`IMPLEMENTA TION
`~
`114
`CUSTOMIZA TION
`~
`116
`DEPLOYMENT
`
`140
`RETRIEVE INFORMA TION IDENTIFYING
`ONE OR MORE DEVICES, FROM A
`PHYSICAL INVENTORY TABLE
`~
`142
`SELECT ALL RECORDS IN THE TABLE
`THA T IDENTIFY A PARTICULAR
`DEVICE TYPE THA T IS IDLE
`~
`144
`SELECT ONE OR MORE VLANS FOR USE
`IN THE DATA CENTER, AND MAP
`THE SELECTED VLANS TO LABELS
`i
`146
`SEND ONE OR MORE MESSAGES TO
`A HARDWARE ABSTRACTION LA YER THA T
`FORMS PART OF COMPUTING GRID
`
`Oracle Exhibit 1003, Page 3
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 2 of 18
`
`US 7,093,005 B2
`
`FIG. 1D
`
`CLIENT 120
`
`BROWSER
`122
`
`_1
`~124
`
`SERVICE PROVIDER 126
`
`GUI/EDlTER
`SERVER 128
`
`ADMINISTRA TION/
`MANAGEMENT
`SERVER 130
`
`COMPUTING GRID 132
`
`DATA
`CENTER 134
`
`-...
`
`-
`
`--
`
`~
`
`129
`
`--'
`
`"'-
`IDC
`COMPONENT
`DATABASE
`
`\
`
`".-
`~
`
`131
`
`-
`-
`
`-"
`
`......
`CUSTOMER
`INFORMA TION
`& FML
`REPOSITORY
`
`~
`
`~
`
`135
`
`....
`"'-
`CONTROL PLANE
`DATABASE
`
`Oracle Exhibit 1003, Page 4
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 3 of 18
`
`US 7,093,005 B2
`
`FIG. 1£
`
`CREA TE NEW
`DA TA CENTER
`
`SUBMIT
`FOR VALIDA TION
`
`ACCEPTED
`
`152
`PENDING 1 - - - - -1
`
`158
`PENDING
`INACTIVE
`
`FIG. 2A
`
`I
`ICOMPANY INFO Ii-J
`
`202
`
`200
`
`204
`
`I
`
`ICORPORA TE SITEIiJ'
`1
`T
`I MARKETING 1"-1
`I
`208
`CUSTOMER HOME l-J
`PAGE
`
`20
`6
`jl--i
`
`10
`
`I
`LOGIN
`I
`I
`2
`ADMIN l----J
`PAGE
`
`Oracle Exhibit 1003, Page 5
`
`
`
`e•
`
`7J).
`•
`
`~ ~~ ~=~
`
`FIG. 28
`
`I
`
`CUSTOMER HOME
`PAGE
`
`I
`
`II IDC MONITOR I
`
`220
`
`I
`II SERVICE DESKIIII IDC DESIGNERII
`r
`216"
`214 W VISUAL EDITOR r-
`224- .....
`..J
`_. _? CONFIGURA TION
`
`~ ~.
`
`~Ul
`
`...
`No
`
`\
`
`o0
`
`('D
`
`,j;o,.
`
`rFJ=(cid:173)
`('D.....
`o........
`
`QO
`
`dr
`
`Jl
`
`",......:I=\C
`
`"'w==tit=N
`
`II BACKUP Ir
`_~
`
`I-lMODIFY POLICY!1
`
`I-l
`I
`I LI
`
`RESTORE ~
`I
`LOGS
`
`240
`
`~228
`
`I
`
`I
`
`I
`
`_.....
`I
`
`r-222
`
`,..\
`
`APPLICA TIONS
`
`SERVERS
`
`NETWORK
`
`ADVANCED
`
`U
`I U
`
`I U
`
`J
`
`LOGIN
`
`n LOG FILE ACCESS I
`
`I
`
`'>-234
`
`U ATTENDED SCALING I
`
`I
`
`SERVICE
`
`ALER TS &: ALARM
`ACTION
`
`REPORTS
`
`MONITORS
`
`I
`
`~I
`
`..J
`
`DEVICE
`_V MANAGEMENT
`
`-~
`
`t-
`
`SERVER
`MANAGEMENT
`
`STORAGE
`--" MANAGEMENT
`
`236
`
`Oracle Exhibit 1003, Page 6
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 5 of 18
`
`US 7,093,005 B2
`
`FIG. 2C
`
`210
`
`"1
`IADMINISTRA TIONI
`
`252;
`
`J
`ACCOUNT
`MANAGEMENT
`
`I
`
`J
`FARM
`MANA~EMENT
`
`f
`254 J IDC APPROVALS
`256
`
`I
`PHYSICAL
`INVENTORY
`I
`
`I H
`
`STORAGE
`
`H
`
`~
`
`FIREWALLS
`
`CPU
`
`~LOAD BALANCIN
`
`~ SWITCHES
`
`L...j
`
`OTHER
`
`258
`
`~
`
`2580
`
`I
`
`258b
`
`258c
`
`258d
`
`258e
`
`258f
`
`FIG. 2D
`
`I
`284
`IDC STATUS
`
`282
`LOGIN
`
`286
`IDC TOP-LEVEL
`MONITOR SUMMARY
`
`I
`288
`COMPANY NEWS
`
`Oracle Exhibit 1003, Page 7
`
`
`
`e•
`
`7J).
`
`• ~ ~~ ~=~
`
`~ ~.
`
`~Ul
`
`...
`No
`
`\
`
`o0
`
`('D
`
`rFJ=(cid:173)
`('D.....
`0\
`o........
`
`QO
`
`FIG. 2E
`
`260 CUSTOMER CONTROL CENTER
`
`262 VIEW LA YER
`
`264 SCREEN
`TEMPLATE
`
`266 SCREEN
`COMPONENTS
`
`268 SCREEN
`DEFINITIONS
`
`I
`
`llQ MODEL LA YER
`
`12.Z.2. CON TROLLER LA YER
`
`274 REQUEST I
`
`PROCESSOR
`
`276
`COMMANDS
`
`I 278 SCREEN
`
`MANAGER
`
`280 SESSION
`MANAGER
`
`I
`I
`
`dr
`
`Jl
`
`",......:I=\C
`
`W-==tit=N
`
`290 PERSISTENCE LA YER
`
`Oracle Exhibit 1003, Page 8
`
`
`
`e•
`
`7J).
`•
`
`~ ~~ ~=~
`
`>=~....
`
`~Ul
`
`N00
`
`0\
`
`('D
`
`rFJ=(cid:173)
`('D.....
`......:J
`o........
`
`QO
`
`dr
`
`Jl
`
`",......:I=\C
`
`W-==tit=N
`
`30481
`
`fJ Terraspring Form Builder - Microsoft
`Internet Explorer
`I 302A 3028 302C
`302
`terraspring I
`~
`~
`- / . - - - /
`- l
`~r1i~~~=:s::~~~~2MOIn
`I> lOltor ~ MOnitor'
`-
`
`[> Change State
`
`300
`-
`
`310
`\
`
`.
`Fn Feb 2 15:20:44 PST 2001
`- Support
`Account
`Logout
`Infrastructure Editor
`
`~68
`i8I FIG. 3A
`I
`
`3308
`
`(§me~J20B ~
`(
`
`312
`
`3228
`
`502
`
`Elements
`
`~ ~
`
`306
`
`C~~~~!
`
`ffi)
`J0811 e ~ I
`
`I
`
`Infrastructure Details
`Name:farm1
`State: Active Status: Gray
`Form Type: Development
`Data Center:
`Pseudo Data Center:
`200
`212
`
`500
`
`Notes:
`
`I
`
`~
`
`ti
`~ Set Backup SChedul~
`
`I
`
`326C
`
`324D
`
`J24E ~J14
`
`3288
`
`Oracle Exhibit 1003, Page 9
`
`
`
`u.s. Patent
`
`Aug. 15,2006
`
`Sheet 8 of 18
`
`US 7,093,005 B2
`
`FIG. 38
`
`306
`
`Elements
`
`326~ ~
`ffiJ
`~
`
`328
`
`330
`
`320
`
`322
`
`324
`
`e
`
`Oracle Exhibit 1003, Page 10
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 9 of 18
`
`US 7,093,005 B2
`
`332A
`
`326A
`
`3328
`
`~S~b?e€E
`
`FIG. 3C
`
`331
`
`336
`
`324
`322~ (332C
`Firewam
`-338
`340
`328~
`m BGJancerU'- 332D
`342
`II
`
`fi)332£
`324A ~served
`
`346
`
`332£
`
`3248
`
`344
`348
`
`332F
`
`330~ ~BackhaJii1
`
`350
`
`Oracle Exhibit 1003, Page 11
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 10 of 18
`
`US 7,093,005 B2
`
`FIG. 4A
`
`[j Configure Server - Web Page Dialog
`
`e )
`I
`Name~ Serverl y
`
`402 ;4
`
`400'"
`
`[1]8
`
`Configure: Server
`410
`
`408
`~ Local Storage
`
`Type II Sun 420R 2CPU 2GB RAMII 'V II
`
`Disk
`
`Backup Size(GB)
`
`Image ~
`
`Notes
`
`0
`
`l:2I
`
`l:2l
`
`~
`
`k=v
`
`8
`
`l
`I Solaris G
`B
`8 ~ ~ None
`
`406)
`
`Name
`Serverl
`
`II Add Disk II
`412 ) 4)8
`II
`
`I'
`
`Server Group
`
`Server Count: 111
`ethO:
`IP Address
`Not Assigned
`
`II Delete Disk"
`
`416\ \..414
`
`ethl:
`
`IP Address
`
`Not Con figured V 420
`
`[£E] ~ Cancel ~ [ ] ; ]
`https: / /openview2.xcftech.com/ccc/protected/ali/ConfigNode/html/cfServer.jspIQ Internet
`
`Oracle Exhibit 1003, Page 12
`
`
`
`e•
`
`7J).
`•
`
`~ ~~ ~=~
`
`~ ~.
`
`~Ul
`
`...
`No
`
`\
`
`o0
`
`('D
`
`rFJ=(cid:173)
`('D.............
`o........
`
`QO
`
`dr
`
`Jl
`
`",......:I=\C
`
`"'w==tit=N
`
`422
`
`FIG. 48
`m[B]
`~ )I-=:~~~::=~~=;;==~~~
`[J Configure Firewall - Web Page Dialog
`Nome~ Firewollt ~ 424
`TypeICisco PIX 515B--- 426
`
`1 to 1 NAT Mapping for the Outside Interface:
`Interface
`DNS Entry
`Serverl-ethO
`Server1-Firewolll
`
`430
`
`Configure: Firewall
`
`IP Address
`Setup Upon
`Activation
`
`I
`
`Notesl
`
`428
`
`~
`
`~
`
`432
`
`(
`
`Interface: 0 Outside 0 Inside 0 DMZ
`Access
`Service
`~IDenYI
`
`~ all
`
`E]
`438
`
`I custom a
`
`,~
`
`436
`
`ProtocolI[[] 9
`
`Port
`
`434
`
`424A
`
`4248
`
`DNS Entry. Firewalll-ethO
`
`IP Address: Not Assigned
`
`From
`
`e By Nome
`~ OIP Be Mask
`441
`
`)
`0 By Name
`~ 0IP Be Mask
`
`IOutside Ell
`
`Mask
`
`~
`
`Inside
`
`G
`
`v
`
`To
`
`If.PIBI (;) By Name
`Il:::::lI9 0 IP Be Mask
`445
`\m 0By Name
`o IP k Mask
`!
`444
`
`439A
`
`4398
`
`440
`
`442
`
`448 ~lLQ!9I ~ Cancel ~ ~
`
`https: / /openview2.xettech.com/ccc/proteded/cII/ConfigNode/html/cfFirewall.jsp
`
`o Internet
`
`Oracle Exhibit 1003, Page 13
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 12 of 18
`
`US 7,093,005 B2
`
`FIG. 4C
`
`{j Configure Load Balancer - Web Page Dialog
`
`450
`
`~ )
`Configure: Load Balancer
`l!I>....--~ , - - - - - - - - - - - - - -= - - - - - - - - ,
`
`Load Balancing Group
`Port Number
`
`Name
`
`462
`
`1;21 Serverl- ethO
`o Balancer2-ethO
`
`~lance~viPO
`
`458
`
`464
`
`466
`
`~80
`~
`
`~G
`~~
`
`~
`
`468
`
`470
`
`https: / /c1orify/ccc/drypen/ConfigNode/HtmI/LoodBol ~ Local Internet
`
`[§g] ~ Cancel~ [E;J
`
`Oracle Exhibit 1003, Page 14
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 13 of 18
`
`US 7,093,005 B2
`
`FIG. 40
`[J Configure Subnet - Web Page Dialog
`oX :::>io r--
`
`4"":'"7,=:'8~-c-o-n-fi..:..gU-r-e:-S-ub-n-e..,t
`
`474
`
`Nomel SUbnet21j
`Notes,----------.:::::a
`~
`
`472
`
`480
`482
`
`,J
`Subnet Properties
`Subnet IP Set upon activation
`Mask Set upon activation
`
`484
`
`Access to
`~ Network
`Attached
`Storage
`486------N.A.S. IP Set upon activation
`
`0 Yes @ No
`
`https://ciarify/ccc/drypen/ConfigNode/HtmI/Subnet. ~Local Internet
`
`FIG. 4E
`(j Configure Internet - Web Page Dialog
`
`& )
`I
`Name~ Internet1J
`
`Notes
`
`489
`
`490
`
`~
`
`~
`
`mm
`
`Configure:
`
`Internet
`
`488
`
`Internet Properties
`
`IP Address Maximum: ~ Up to 256 B
`~
`492
`
`~ ~ Cancel ~ [];]
`
`https://clarify!ccc/drypen/ConfigNode/Html/cfInternetJ ~ Local Internet
`
`Oracle Exhibit 1003, Page 15
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 14 of 18
`
`US 7,093,005 B2
`
`FIG. 4F
`
`[j Configure Backhaul - Web Page Dialog
`
`~ )
`Nome~ Backhaul1J
`
`I 4
`
`95
`
`Notes
`
`496
`
`~
`
`I;=;
`v
`
`m~
`
`Configure: Backhaul
`
`494
`
`Backhaul Properties
`
`IP Address: Set upon activation
`
`498)
`
`[£E]
`
`~ CancelI ~
`
`https://ciarify/ccc/drypen/ConfigNode/Html/cfBcckhoJ ~ Local Internet
`
`FIG. 5
`
`(A)
`Normal
`
`(8)
`Mouse Over
`
`508
`
`--~507
`
`502
`
`504
`
`506
`
`Oracle Exhibit 1003, Page 16
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 15 of 18
`
`US 7,093,005 B2
`
`FIG. 6A
`
`J24F
`
`604
`
`606
`
`FIG. 68
`
`U Create Disk Image - Microsoft Internet Explorer
`
`Snapshot: Image
`
`Name:
`
`Description:
`
`612
`
`I ~r-- 614
`
`:D ~ 616
`~
`Hardware Compatability: 0 Current Architecture ~ Any Architecture
`~ server2-0B--- 618
`
`Server:
`
`Disk:
`
`620
`
`622
`
`/
`~ [Cancel ~
`
`Oracle Exhibit 1003, Page 17
`
`
`
`u.s. Patent
`
`Aug. 15, 2006
`
`Sheet 16 of 18
`
`US 7,093,005 B2
`
`FIG. 7
`
`EDGE
`
`1
`
`*
`J-
`
`FARM
`
`1
`
`*
`
`MONITOR
`
`1
`
`*
`
`CONNECTS
`
`*l
`11
`~{ABSTRACn 1 *
`NODE
`1 1
`~
`
`ICON
`
`PORT
`
`INTERFACE
`
`I BALANCES
`
`I
`
`NETWORK
`
`FIREWALL
`
`1
`
`""'---
`
`LOAD
`BALANCER
`
`SERVER
`
`1~~l
`C) ~ ~
`a5
`'!
`C:l
`*1 *~ *
`SERVICE
`
`-oJ
`
`-oJ
`
`C:l
`
`1
`
`*
`
`1
`
`*
`
`WHO
`
`DISK
`
`INTERNET
`
`SUBNET
`
`Oracle Exhibit 1003, Page 18
`
`
`
`e•
`
`7J).
`•
`
`~ ~~ ~=~
`
`,
`
`818
`(
`
`f 819
`JA VA XML
`GENERA TOR
`
`FIG. 8A
`804
`802
`r-----::L--------------------------------.--------------------~
`i 812
`!
`808 JAVASCRIPT .-r809
`,814 816,
`810'
`GENERA TE l
`'I
`\ JA VA XML
`:
`XML
`:
`FEML
`FEML
`\
`GENERA TOR
`: SERVLET
`PARSER RnR'
`TO FML
`: R()fi
`
`01 rJ
`
`III
`
`I
`
`~ ~.
`
`~Ul
`
`...
`No
`
`\
`
`o0
`
`.---~_--.
`
`JA VASCRIPT
`OBJECT
`MODEL
`
`FEML
`DOM
`
`CLIENT
`
`FEML
`
`FEML
`
`FEML
`DOM
`
`FML
`DOM
`
`FML
`
`SERVER
`
`----------------------------------------~--------------------------------------------------------
`
`('D
`
`......:J
`
`rFJ=(cid:173)
`('D.........
`o........
`
`QO
`
`dr
`
`Jl
`
`",......:I=\C
`
`W-==tit=N
`
`FIG. 88
`804
`802
`------~---------------------------------,
`r-----::L--------------------------------.--
`!812
`!
`f 814
`,819 822,
`818
`826"
`810'
`808 JAVASCRIPT .-r824
`\ JA VA XML
`'I
`GENERA TE
`FML
`(
`JA VA XML
`:
`XML
`:
`!SE~VLET
`!
`GENE~A TOR 808'
`TO FEML
`PARSER
`FARM
`PARSER
`
`I
`I
`I
`:
`
`FEML
`
`FEML
`
`FEML
`DOM
`
`FML
`DOM
`
`FML
`
`FEML
`DOM
`
`a~T
`
`I
`I
`I
`JA VASCRIPT
`:
`:
`OBJECT
`MODEL
`:
`I ' - - - - - - - - '
`
`I!
`
`~----------------------------------------~--------------------------------------------------------
`
`i
`
`~~
`
`Oracle Exhibit 1003, Page 19
`
`
`
`e•
`
`7J).
`•
`
`~ ~~ ~=~
`
`~ ~.
`
`~Ul
`
`...
`No
`
`\
`
`o0
`
`SERVER
`
`930
`
`928
`
`('D
`
`QO
`
`rFJ=(cid:173)
`('D.........
`o........
`
`QO
`
`dr
`
`Jl
`
`",......:I=\C
`
`"'w==tit=N
`
`HOST
`
`924
`
`PROCESSOR
`
`904
`
`i
`
`COMMUNICA TION
`INTERFACE
`
`918
`
`NETWORK
`LINK (
`
`~~~ _
`
`920
`
`r---------------------------------------------------
`STORAGE
`MAIN
`ROM
`DEVICE
`MEMORY
`910
`906
`
`908
`
`IIIIIIIIIIIIIIIIIIIIII
`
`BUS
`
`902
`
`FIG. 9
`
`DISPLAY
`912
`
`INPUT
`DEVICE
`914
`
`CURSOR
`CONTROL
`916
`
`Oracle Exhibit 1003, Page 20
`
`
`
`US 7,093,005 B2
`
`1
`GRAPHICAL EDITOR FOR DEFINING AND
`CREATING A COMPUTER SYSTEM
`
`RELATED APPLICATIONS; PRIORITY CLAIMS
`
`This application is a continuation-in-part of, and domestic
`priority is claimed under 35 U.S.c. 120 from, application
`Ser. No. 09/502,170, filed Feb. 11, 2000, now issued as U.S.
`Pat. No. 6,779,016 on Aug. 17,2004, entitled "Extensible
`Computing System," naming Ashar Aziz, et a!., as inventors,
`the entire contents of which is hereby incorporated by
`reference as if fully set forth herein. Domestic priority is
`claimed under 35 U.S.c. 119 from prior Provisional appli(cid:173)
`cation Ser. No. 60/212,925, filed Jun. 20, 2000, which is now
`abandoned, entitled "Symbolic Definition of a Virtual Com(cid:173)
`puter System," and naming as inventors Ashar Aziz, et a!.,
`the entire contents of which is hereby incorporated by
`reference as if fully set forth herein.
`
`FIELD OF THE INVENTION
`
`The present invention generally relates to data processing
`in the field of visual programming and data networking. The
`invention relates more specifically to a method and appara(cid:173)
`tus for graphically defining and creating a computer system.
`
`BACKGROUND OF THE INVENTION
`
`2
`computer program elements are selected from a palette and
`moved into a graphical representation of the logical flow of
`the program.
`Microsoft Visio is a well-known tool for creating graphi(cid:173)
`cal presentations useful in business and industry. An end
`user may create a Visio presentation by dragging and drop(cid:173)
`ping symbols into a workspace. Complex pictures and
`diagrams can be created. Templates or "stencils" may be
`created and distributed, enabling others to create new pic-
`10 tures and diagrams that have the same appearance param(cid:173)
`eters as the stencil
`that
`is used as a basis for the new
`diagrams.
`Based on the foregoing, there is a clear need in this field
`for a way to visually create a logical description of a virtual
`15 server farm and instantiate a corresponding tangible, oper(cid:173)
`able computing system relatively instantly, or other com(cid:173)
`puter system configurations that are created based on the
`extensible computing framework described in Aziz, et a!.
`There is a specific need for a way to create such a
`20 description using graphic icons and other symbols that
`represent elements of a real server farm or other computer
`system.
`End users also would find it useful to have a way to
`negotiate fees and costs for a particular virtual server farm
`25 with the service provider that is providing the hardware to
`implement the server farm. Thus there is also a need for a
`way to use the visual representation, or a resulting logical
`description of a computer system, to prepare a quote for fees
`and costs involved in creating, configuring and activating a
`30 real computer system that embodies the visual representa(cid:173)
`tion. There is a related need for a way to prepare such quotes
`on a rapid basis for use in counection with short-lived server
`farms and similar computer facilities.
`There is also a need for a way to determine whether a
`particular institution, which is requested to implement the
`visual representation, has sufficient resources to create,
`configure and activate a real computer system that embodies
`the visual representation.
`There is a further need for a way to integrate an editor for
`creating such a visual representation with other related
`functions pertaining to creating instant data centers, includ(cid:173)
`ing customer account management, customer support, etc.
`There is also a need for a way to cause instant creation of
`45 a physical server farm based on creating a graphical repre(cid:173)
`sentation of the server farm. There is a need to provide such
`a tool in a way that is integrated with pre-existing graphic
`design tools that are compatible or based upon HTML or
`other personal computer software or systems.
`
`35
`
`Data processing users desire to have a flexible, extensible
`way to rapidly create and deploy complex computer systems
`and data centers that include a plurality of servers, one or
`more load balancers, firewalls, and other network elements.
`One method for creating such a system is described in
`co-pending U.S. patent application Ser. No. 09/502,170,
`filed Feb. 11,2000, now issued as U.S. Pat. No. 6,779,016
`on Aug. 17,2004, entitled "Extensible Computing System,"
`naming Ashar Aziz, et a!., as inventors, the entire disclosure
`of which is hereby incorporated by reference as if fully set
`forth herein. Aziz, et a!., disclose a method and apparatus for
`selecting, from within a large, extensible computing frame- 40
`work, elements for configuring a particular computer sys(cid:173)
`tem. Accordingly, upon demand, a virtual server farm or
`other data center may be created, configured and brought
`on-line to carry out useful work, all over a global computer
`network, virtually instantaneously.
`Although the methods and systems disclosed in Aziz, et
`a!., are powerful and flexible, users and administrators of the
`extensible computing framework, and the virtual server
`farms that are created using it, would benefit from improved
`methods for defining and deploying virtual server farms. For 50
`example, an improvement upon Aziz, et a!., would be a way
`to specifY, price, order and deploy virtual server farms using
`a networked computer workstation and a standard browser.
`Using one known online service, "Rackspace.com," a
`user may select a server platform, configure it with a desired 55
`combination of disk storage, tape backup, and certain soft(cid:173)
`ware options, and then purchase use of the configured server
`on a monthly basis. However, this service is useful only for
`configuring a single server computer. Further,
`the user
`interface is rudimentary and relies only on pull-down lists 60
`and other elements defined in Hypertext Markup Language
`(HTML).
`Visual programming is a known method for rapidly
`defining a computer program by linking together graphical
`icons that represent program elements. For example, U.S. 65
`Pat. No. 5,163,130 (Jean-Marie Hullot, NeXT Computer,
`Inc., 1992) discloses a visual programming method in which
`
`SUMMARY OF THE INVENTION
`
`The foregoing needs, and other needs that will become
`apparent from the following description, are achieved by the
`present invention, which comprises, in one aspect, a method
`of defining and deploying a networked computer system. A
`textual representation of a logical configuration of the net(cid:173)
`worked computer system is created and stored, according to
`a structured markup language. Based on the textual repre(cid:173)
`sentation, one or more commands are generated for one or
`more switch devices that are interconnected to one or more
`computing elements and storage devices. The commands
`instruct the switch devices to logically connect the comput(cid:173)
`ing elements and storage devices into an operable physical
`computer system that conforms to the logical configuration.
`As a result, a textual language may be used to specifY one
`or more instant data centers or virtual server farms, and
`
`Oracle Exhibit 1003, Page 21
`
`
`
`US 7,093,005 B2
`
`3
`physical elements to implement the data centers or virtual
`server fanns are then configured and activated as specified
`in the commands.
`According to one embodiment, the method also includes
`receiving a graphical representation of a logical configura(cid:173)
`tion of the networked computer system. The graphical
`representation is created and stored based on a first user
`selection from a palette of one or more graphical icons that
`logical elements and physical elements of the
`represent
`networked computer system and a second user selection of
`graphical interconnections of the icons. One feature of this
`aspect involves creating and storing a textual representation
`comprises the step of creating and storing the textual rep(cid:173)
`resentation of the logical configuration of the networked
`computer system according to a structured markup language
`that is automatically generated based on the graphical rep(cid:173)
`resentation.
`In another feature, the textual representation comprises at
`least one server role definition comprising at least a role
`name value and a hardware type value, and one or more 20
`definitions of servers of the networked computer system,
`wherein each definition of a server uses and references the
`server role definition. Another feature is that the textual
`representation comprises at least one server role definition
`comprising at least a role name value and a hardware type
`value, and a plurality of definitions of servers in a server tier
`or server group of the networked computer system, wherein
`each definition of a server uses and references the server role
`definition.
`According to another feature, the textual representation
`comprises at least one definition of a load balancing func(cid:173)
`tion; at least one server tier definition that defines a plurality
`of servers that receive inbound traffic from the load balanc(cid:173)
`ing function; and at least one fixed server definition that
`defines a fixed server that is associated with one of the
`the
`servers in the server tier. A related feature is that
`definition of the load balancing function comprises an
`indication that inbound traffic directed to the load balancing
`function arrives from an outer virtual local area network.
`In another feature, the textual representation comprises at
`least one server tier definition that defines a plurality of
`servers that receive inbound traffic from a load balancing
`function; and at least one definition of the load balancing
`function, comprising an output port value, an input port
`value, a virtual address value, a load balancing policy value,
`and a tier value that identifies the server tier that is managed
`using the load balancing function. A related feature involves
`creating and storing at least one server tier definition that
`defines a plurality of servers that receive inbound traffic
`from the load balancing function. Each server tier definition
`comprises one or more input port values, a role value, and
`information specifYing a maximum number of physical
`servers and a minimum number of physical servers for use
`in a server tier represented by the server tier definition.
`In another feature, the textual representation comprises at
`least one fixed server definition that defines a statically
`addressed server of the networked computer system; and
`wherein each server definition comprises one or more input
`port values that identify a virtual local area network, a role
`value that identifies a processing role carried out by the
`server, and infonnation specifying a network address of the
`server.
`the method also
`feature,
`According to still another
`includes associating a first server definition of the textual
`representation with a graphical icon. The first server defi(cid:173)
`nition comprises at least one external entity declaration that
`represents a network address of a server that is represented
`
`4
`by the first server definition. In the textual representation, a
`copied server definition is created and stored, based on
`duplicating the first server definition that is associated with
`the graphical icon. Each external entity declaration of the
`server definition of the textual representation and the copied
`server definition of the textual representation is resolved into
`a different actual network address. Based on the textual
`representation, one or more commands are generated for one
`or more switch devices that are interconnected to one or
`10 more computing elements and storage devices. The com(cid:173)
`mands instruct the switch devices to logically connect the
`computing elements and storage devices into an operable
`computer system that confonns to the logical configuration.
`In another feature, the textual representation comprises
`15 one or more firewall definitions that comprise a firewall
`name value, a plurality of port values that define logical
`connections to a firewall device associated with the firewall
`definition, and one or more definitions of services that the
`firewall is allowed to pennit or deny.
`In still another feature, the textual representation com-
`prises at least one server role definition comprising at least
`a role name value and a hardware type value; a disk attribute
`definition that defines additional local disk storage for the
`server defined in the server role definition, comprising a
`25 drive name value and a drive size value; and one or more
`definitions of servers of the networked computer system.
`Each definition of a server uses and references the server
`role definition. A related feature involves generating one or
`more commands that allocate disk space according to the
`30 drive size value in a storage device that is accessible using
`a storage area network interface. The allocated disk space is
`mapped to a server of the networked computer system that
`implements one of the definitions of servers. The allocated
`disk space may be presented as a single logical volume, or
`35 as one or more logical disks that are created from logical
`volumes that are located on one or more physical disk
`drives.
`In still another feature, the textual representation com(cid:173)
`prises an action definition that defines actions for execution
`40 for each server in a tier of one or more servers when an
`additional server is added to the tier. The action definition
`may comprise a tier name value that identifies the tier, and
`a script name value that identifies a script of actions for
`execution with respect to each server in the tier identified by
`45 the name value. The method also may involve receiving
`information indicating that a new server has been added to
`the tier; executing the script of actions with respect to each
`server in the tier.
`the textual representation com-
`In yet another feature,
`50 prises an action definition that defines actions for execution
`for each server in a tier of one or more servers when one of
`the servers is removed from the tier. The action definition
`may comprise a tier name value that identifies the tier, and
`a script name value that identifies a script of actions for
`55 execution with respect to each server in the tier identified by
`the name value. Action definitions generally comprise defi(cid:173)
`nitions corresponding to those actions that would be carried
`out in adding a server to a server fann manually. A related
`feature may involve receiving infonnation indicating that
`60 one of the servers has been deleted from the tier and
`executing the script of actions with respect to each server in
`the tier.
`the invention provides a method of
`In another aspect,
`defining and deploying a networked computer system that
`65 features a graphical user interface. In the GUI, a palette of
`one or more graphical icons that represent logical elements
`ofthe networked computer system is displayed. One or more
`
`Oracle Exhibit 1003, Page 22
`
`
`
`US 7,093,005 B2
`
`5
`of the graphical icons are selected. The selected icons are
`graphically interconnected. A graphical representation of a
`logical configuration of the networked computer system is
`created and stored based on the selection and interconnec(cid:173)
`tion. A textual representation of a logical configuration ofthe
`networked computer system is created and stored according
`to a structured markup language. Based on the textual
`representation, one or more commands are generated for one
`or more switch devices that are interconnected to one or
`more computing elements and storage devices. The com- 10
`mands instruct the switch devices to logically connect the
`computing elements and storage devices into an operable
`computer system that conforms to the logical configuration.
`According to another feature, a user may select graphical 15
`icons representing power control features and add them to
`existing icons or other elements of the graphical represen(cid:173)
`tation.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`6
`FIG. 4C is a diagram of a load balancer configuration
`dialog that may be used to create or modify one or more
`parameter values pertaining to a load balancer;
`FIG. 4D is a diagram of a subnet configuration dialog that
`may be used to create or modify one or more parameter
`values pertaining to a subnet;
`FIG. 4E is a diagram of an Internet configuration dialog
`that may be used to create or modify one or more parameter
`values pertaining to an Internet connection;
`FIG. 4F is a diagram of a backhaul configuration dialog
`that may be used to create or modify one or more parameter
`values pertaining to a backhaul connection;
`FIG. 5 is a two-part diagram of a Lifecycle Icon according
`to one embodiment;
`FIG. 6A is a diagram of an example of a context menu that
`is displayed in association with a server to which the context
`menu relates;
`FIG. 6B is a diagram of an example 'Snapshot: Image'
`window that opens in response to the selection from the
`20 context menu of FIG. 6A;
`FIG. 7 is a block diagram of an example object model that
`may be used in an embodiment;
`FIG. 8 is a two-part block diagram that illustrates pro(cid:173)
`cesses of gene