`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
`
`
`
`"'w==tit=N
`
`",......:I=\C
`
`Jl
`
`dr
`
`UATTENDEDSCALINGI
`
`I
`
`'>-234
`
`nLOGFILEACCESSI
`
`I
`
`('D
`
`\
`Noo0
`
`...
`
`~ ~.
`
`~Ul
`
`~ ~~ ~=~
`
`J).
`
`e•7
`
`•
`
`... ....
`('D.....
`rFJ=(cid:173)
`
`QO
`
`,j;o,.
`
`o.
`
`~228
`
`_.....
`
`I
`
`I
`
`I
`
`I
`
`I
`
`LOGS
`
`240
`
`RESTORE~
`
`ILI
`I-l
`
`I
`
`I-lMODIFYPOLICY!1
`
`_~
`
`IIBACKUPIr
`
`LOGIN
`
`J
`
`ADVANCED
`
`NETWORK
`
`SERVERS
`
`U
`
`IU
`
`I U
`
`APPLICATIONS
`
`,..\
`
`r-222
`
`I
`
`CUSTOMERHOME
`
`PAGE
`
`I
`
`FIG.28
`
`--"MANAGEMENT
`
`STORAGE
`
`236
`
`MANAGEMENT
`
`SERVER
`
`t-
`
`-~
`
`_VMANAGEMENT
`
`DEVICE
`
`MONITORS
`
`REPORTS
`
`ALERTS&:ALARM
`
`ACTION
`
`~I
`
`..J
`
`I
`
`_._?CONFIGURATION
`
`SERVICE
`
`220
`
`IIIDCMONITORI
`
`I
`
`216"
`IISERVICEDESKIIIIIDCDESIGNERII
`
`r
`
`..J
`224-.....
`214WVISUALEDITORr-
`
`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
`
`
`
`it=N
`
`",......:I=\C
`
`==t
`W-
`
`Jl
`
`dr
`
`('D
`
`\
`Noo0
`
`...
`
`~ ~.
`
`~Ul
`
`• ~ ~~ ~=~
`e•7
`
`J).
`
`... ....
`0\
`('D.....
`rFJ=(cid:173)
`
`QO
`
`o.
`
`290PERSISTENCELAYER
`
`I
`
`I
`
`280SESSION
`
`MANAGER
`
`I278SCREEN
`
`MANAGER
`
`COMMANDS
`
`276
`
`12.Z.2.CONTROLLERLAYER
`
`274REQUESTI
`
`PROCESSOR
`
`llQMODELLAYER
`
`I
`
`DEFINITIONS
`268SCREEN
`
`COMPONENTS
`266SCREEN
`
`264SCREEN
`
`TEMPLATE
`
`262VIEWLAYER
`
`260CUSTOMERCONTROLCENTER
`
`FIG.2E
`
`Oracle Exhibit 1003, Page 8
`
`
`
`it=N
`
`",......:I=\C
`
`==t
`W-
`
`Jl
`
`dr
`
`... ....
`......:J
`('D.....
`rFJ=(cid:173)
`
`QO
`
`o.
`
`('D
`
`0\
`
`N00
`
`>=~.
`
`...
`
`~Ul
`
`~ ~~ ~=~
`
`J).
`
`e•7
`
`•
`
`i8IFIG.3A
`
`~68
`
`.
`
`310
`
`\
`
`300
`
`-
`
`302
`
`~
`
`I302A3028302C
`
`-/.---/
`
`-l
`
`terraspringI
`
`~
`
`30481
`
`InternetExplorer
`
`fJTerraspringFormBuilder-Microsoft
`
`I
`
`Account
`
`-Support
`
`InfrastructureEditor
`Logout
`FnFeb215:20:44PST2001
`
`I>lOltor~MOnitor'
`
`~r1i~~~=:s::~~~~2MOIn
`
`3288
`
`J24E~J14
`
`324D
`
`326C
`
`502
`
`3228
`
`(§me~J20B~
`
`312
`
`(
`
`3308
`
`~SetBackupSChedul~
`ti
`
`~
`
`Notes:
`
`I
`
`J0811e~I
`ffi)
`
`I
`
`212
`200
`PseudoDataCenter:
`DataCenter:
`FormType:Development
`State:ActiveStatus:Gray
`Name:farm1
`InfrastructureDetails
`
`500
`
`I
`
`C~~~~!
`
`Elements
`
`[>ChangeState
`
`~ ~
`
`306
`
`-
`
`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
`
`
`
`"'w==tit=N
`
`",......:I=\C
`
`Jl
`
`dr
`
`... ....
`('D..... .... ....
`rFJ=(cid:173)
`
`QO
`
`o.
`
`('D
`
`~ ~.
`
`...
`
`~Ul
`
`~ ~~ ~=~
`
`J).
`
`e•7
`
`•
`
`I
`
`Activation
`SetupUpon
`IPAddress
`
`Configure:Firewall
`
`430
`
`Serverl-ethO
`Server1-Firewolll
`Interface
`DNSEntry
`1to1NATMappingfortheOutsideInterface:
`
`TypeICiscoPIX515B---426
`Nome~Firewollt~424
`~)I-=:~~~::=~~=;;==~~~
`m[B]
`[JConfigureFirewall-WebPageDialog
`
`FIG.48
`
`422
`
`\
`Noo0
`
`4248
`
`424A
`
`434
`
`oInternet
`
`https://openview2.xettech.com/ccc/proteded/cII/ConfigNode/html/cfFirewall.jsp
`
`448~lLQ!9I~Cancel~~
`
`442
`
`440
`
`4398
`
`439A
`
`G
`
`v
`
`oIPkMask
`\ m0ByName
`
`445
`
`444
`
`!
`
`Inside
`
`~
`
`Il:::::lI90IPBeMask
`If.PIBI(;)ByName
`
`Mask
`
`IOutsideEll
`
`~0IPBeMask
`0ByName
`
`)
`
`441
`~OIPBeMask
`eByNome
`
`Icustoma
`
`438
`E]
`
`~all
`
`Port
`
`ProtocolI[[]9
`
`To
`
`From
`
`Service
`
`436
`
`,~
`
`~IDenYI
`Access
`
`IPAddress:NotAssigned
`
`DNSEntry.Firewalll-ethO
`
`Interface:0Outside0Inside0DMZ
`
`432
`
`(
`
`~
`
`~
`
`428
`
`Notesl
`
`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
`
`
`
`it=N
`
`",......:I=\C
`
`==t
`W-
`
`... ....
`('D..... ....
`rFJ=(cid:173)
`
`QO
`
`......:J
`
`o.
`
`('D
`
`Jl
`
`dr
`
`FML
`
`~~
`
`DOM
`FML
`
`DOM
`FEML
`
`FEML
`
`i
`
`:
`
`III
`
`
`
`FEML
`
`:
`
`a~T
`
`DOM
`FEML
`
`PARSER
`
`XML
`
`~----------------------------------------~--------------------------------------------------------
`
`,819822,
`------~---------------------------------,
`
`f814
`
`PARSER
`JAVAXML
`
`818
`
`(
`
`TOFEML
`
`FML
`
`GENE~ATOR808'
`
`\JAVAXML
`
`810'
`
`804
`
`!SE~VLET
`'I
`!812
`
`r-----::L--------------------------------.--
`
`808JAVASCRIPT.-r824
`
`FIG.88
`
`802
`
`I'--------'
`
`JAVASCRIPT
`
`MODEL
`OBJECT
`
`:
`:
`:
`I
`
`II
`
`I!
`
`GENERATE
`
`FARM
`
`826"
`
`!
`!
`:
`
`----------------------------------------~--------------------------------------------------------
`
`\
`Noo0
`
`SERVER
`
`...
`
`~ ~.
`
`~Ul
`
`FML
`
`DOM
`FML
`
`DOM
`FEML
`
`FEML
`
`FEML
`
`CLIENT
`
`DOM
`FEML
`
`JAVASCRIPT
`
`MODEL
`OBJECT
`
`.---~_--.
`
`~ ~~ ~=~
`
`,
`
`f819
`
`GENERATOR
`JAVAXML
`
`818
`
`(
`
`J).
`
`e•7
`
`•
`
`TOFML
`FEML
`
`,814816,
`
`810'
`
`PARSERRnR'
`
`\JAVAXML
`
`:SERVLET
`
`'I
`i812
`
`:
`
`01rJ
`
`GENERATOR
`
`XML
`
`808JAVASCRIPT.-r809
`
`\
`
`FEML
`
`GENERATEl
`
`r-----::L--------------------------------.--------------------~
`
`804
`
`FIG.8A
`
`:R()fi
`
`III
`
`I
`
`!
`:
`
`802
`
`Oracle Exhibit 1003, Page 19
`
`
`
`"'w==tit=N
`
`",......:I=\C
`
`Jl
`
`dr
`
`924
`
`HOST
`
`920
`
`~~~_
`
`LINK(
`NETWORK
`
`INTERFACE
`COMMUNICATION
`
`918
`
`i
`
`904
`
`PROCESSOR
`
`('D
`
`\
`Noo0
`
`...
`
`~ ~.
`
`~Ul
`
`~ ~~ ~=~
`
`J).
`
`e•7
`
`•
`
`... ....
`('D..... ....
`rFJ=(cid:173)
`
`QO
`
`QO
`
`o.
`
`902
`
`BUS
`
`928
`
`930
`
`SERVER
`
`910
`
`DEVICE
`STORAGE
`
`908
`
`ROM
`
`906
`MEMORY
`MAIN
`
`IIIIIIIIIIIIIIIIIIIIII
`
`r---------------------------------------------------
`
`916
`
`CONTROL
`CURSOR
`
`914
`
`DEVICE
`INPUT
`
`912
`
`DISPLAY
`
`FIG.9
`
`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 generating FEML text and FML text based on a
`25 JavaScript object model, and the converse process of gen(c