`
`PROVISIONAL APPLICATION COVER SHEET
`This is a request for filing a PROVISIONAL APPLICATION under 37 CFR 1.53(b)(2).
`
`Docket Number
`
`55218-0500
`
`Type a plus sign
`(+) inside this box
`
`~
`
`.
`...,
`o-f
`0
`
`"'~=!I~
`
`--,.--
`
`+ ~
`u
`
`~
`
`LAST NAME
`
`FIRST NAME
`
`INVENTOR(s)/APPLICANT(s)
`MIDDLE INITIAL
`RESIDENCE (City and Either State or Foreign Country)
`
`Aziz
`Patterson
`Markson
`
`Ashar
`Martin
`Thomas
`
`Fremont, California
`Mountain View, Califonria
`San Mateo, California
`
`TITLE OF THE INVENTION (280 characters max)
`SYMBOLIC DEFINITION OF A VIRTUAL COMPUTER SYSTEM
`CORRESPONDENCE ADDRESS
`Hickman Palenno Truong & Becker LLP
`1600 Willow Street
`~San Jose, CA 95125
`l1408) 414-1080
`
`.:.::: ~
`:~
`
`o~l2J
`,[]
`
`~h~
`
`~.~
`~[]
`
`~'"
`
`~
`
`Specification
`Drawings
`
`ENCLOSED APPLICATION PARTS (check all that apply)
`[2J
`Small Entity Statement
`Number ofpages [124]
`D
`Other (specify):
`Number ofsheets]
`METHOD OF PAYMENT (check one)
`A check or money order is enclosed to cover the Provisional filing fees
`The Commissioner is hereby authorized to charge filing fees and credit Deposit
`Account Number: 50-1302
`
`PROVISIONAL
`FILING FEE
`AMOUNT ($)
`
`$75.00
`
`The invention was made by an agency of the United States Government or under a contract with an agency of
`t'Ire United States Government.
`~dmJ
`[J
`Yes, the name of the U.S. Government agency and the Government contract number are:
`D Additional inventors are being named on separately numbered sheets attached hereto.
`
`No.
`
`Respectfully submitted,
`Hickman Palenno Truong & Becker LLP
`
`Christopher J. Palenno
`Attorney of Record
`Registration No. 42,056
`
`EXPRESS MAIL CERTIFICATE OF MAILING
`
`"Express Mail" mailing label number EL624356320US
`
`Date of Deposit 6/20/00
`
`I hereby certify that this paper or fee is being deposited with the United States Postal Service "Express Mail Post
`Office to Addressee" service under 37 CFR 1.10 on the date indicated above and is addressed to the Commissioner
`of Patents and Trademarks, Washington, D.C. 20231.
`aa:5~ (VUDa-e,
`
`1600 Willow Street
`San Jose, CA 95125
`(408) 414-1080 CJP:clw
`Date: June _20,2000
`Facsimile(408) 414-1076
`
`Oracle Exhibit 1004, Page 1
`
`
`
`- - - - - - - -
`
`- - - - - - - - - - - -
`
`----~ - - - - - --
`
`AppJk.mt 01' Patentee: ..,A""'SI""'IA.......R""'A....Z.....l""'Z...e"'-ta....l"'-.
`Serial or PatelltNo.:
`Filed or Issued:
`For: SYMnOLIC:-D:-E='F=IN=IT=r=ON-:--O---F~A--V~IR-1-'U-A-L~c6MiiU/ffik SYSTE~:M--~~~------------
`
`---:Attorney's Docket No.: ,5.~218-0500
`_
`
`VERl.l"Jl!:D STATEMENT (DECLARATION) C1.JAIMTNG SMALL ENTITY STATUS
`(37) ern 1.9(f) and 1.27(c) - SMALL BUSINESS CONCER.l\'
`
`I hereby declare that Jam
`(J tht owner of 1.he sn1all business concern identified below:
`all official of the small business concern empowered to act on behalf of the concern
`[X]
`identified below:
`
`NAM.E OF ORGANIZATION: XCFTech. Inc.. a Delawm'e COl'poration
`ADDRESS OF ORGANT7:ATION:~4~~lSitQ."Mj~Ri~ntJ)t;h:_~ ...E.wl1mJlt. CA 94538
`
`I hereby declare that the above identified small b1,l5~neS5 concern qualiliec1 as a small bl\siness cancel'll as defined ill 13 CFR 121.3-18, and
`reproduced in 37 CFR 1.9(d), for purposes of paying rcducccl fees under section 4l(a) and (b) of Title 35, United States Code, in that the
`numbL'r of employees of the concern, including those of its affiliates, does 110t exceed 500 persons. For purposes of this staTement, (1) the
`number of employees of the business concern is the aveTage over tha plcvious fiscal year of the concern of the persous employed on a full(cid:173)
`time, part-time or temporary basis during each of the pay periods of the fiscal year, and (2) concems are affiliates of each etlter when either,
`directly or indirectly, one eOnCern Controls or has the power to cOlltrol the other, oral third party or partiel;; controls or has the power TO control
`both.
`
`I hereby declare that rights under contract or law have been conveyed 10 anti renmin. with The small business concem idcntificd above with
`rcg~r:d to !he invention, entitled SYMBOLIC DEli'lNITION OF A VIRTUAL COMPUTER SYSTEM by invcnlor(s) ASHAR AZrZ,
`M.t~TlN PATTBRSON, THOMAS MARKSON in
`
`tl)e specification filed herewitb;
`(X]
`[J application Serial No.
`() pafenl no,
`
`t fitcd.
`> issued
`
`_
`
`If t1'@1rights held by the above identified small businesS concern are not exclusive, each individual, conccm or organization having rights to
`t11cimvention is J1~tc~l Qclc>w* (Iud no rights to the invention ate held by any person, other than the inventor, who could not qualify as an
`ind?,p'cndcnt illwnlor under 37 CFR 1.9(c) if that person made the invention, or by liny CQl1ccm which would not qualify as a small business
`cOt~Illl1J:ldet 37 CPR 1.9(d} or a Ilonprofit organi7.11tion under 37 CFR L9(c)_ $NOTE: Separate verified statements are required from each
`mll{~n person, concem or organiz.ation having rights 10 the invention averring to their St<ltllS as small entities. (37 CFR 1.27)
`~f~
`_
`N1\;~R __.
`AD:alrnSS
`0.= [ J I-N-n-rv-m-u-A-L-----[-l-S-M-A-I-.r-.B-U-S-IN-E-'S-S-C-.O-N-C-E-RN--
`
`] NONPROFIT ORGANIZATION
`
`;:;::::::'w
`
`NAMR_._~
`ADDRESS :-:::-==:-:-::-
`[
`] INDIVIDUAL
`
`-=----
`-:----::--
`] SMALL BUSINESS CONCERN
`
`] NONPROFIT ORGANT7.ATION
`
`I :acknowledge the dUly to file, in this application or patent, natiHcatioll of any change in status resulting in loss ofentitlement to small entity
`SlUms prlor to paying, or at tIle tinla ofllaying, the carlicst of the issue icc or any maintenance fee due after the date 01\ which status as Ii small
`entity is no longer appropriale, (37 CFR L28(b))
`
`1 hC'r~b)' declare that all statemenlS mnde berein of my own knowledge are true and that all statcmcnts made 011 intormation and beUef are
`believed to pc truc; and filIthcr that thesc statements wert: made with the knowledge that willful false statements and the like so madc arC
`pltnish~ble by flIle or imprisonment, or both, under section 1001 of Title 18 of the United States Code, and that sllch willtul false Statelllel)tS
`ffi::ly jcopardi7.6 the validity ofthe application, any patent issuing Ih~rcon, or any patent to which tIlis vel'ifiea statement i.~ directed.
`
`rive Fremont CA 94538
`
`Oracle Exhibit 1004, Page 2
`
`
`
`·.
`
`55218-0500
`
`Patent
`
`UNITED STATES PROVISIONAL PATENT ApPLICATION
`
`FOR
`
`SYMBOLIC DEFINITION OF A VIRTUAL COMPUTER SYSTEM
`
`INVENTORS:
`
`ASHAR AzIZ, FREMONT, CALIFORNIA
`MARTIN PATTERSON, MOUNTAIN VIEW, CALIFORNIA
`THOMAS MARKSON, SAN MATEO, CALIFORNIA
`
`PREPARED BY:
`
`HICKMAN PALERMO TRUONG & BECKER, LLP
`1600 WILLOW STREET
`SAN JOSE, CALIFORNIA 95125
`(408) 414-1080
`
`EXPRESS MAIL CERTIFICATE OF MAILING
`
`"Express Mail" mailing label number ""'E=L=6=24-.'-'3"'-'5:::...:6=2=3'-"0:..;:U'-"S"--
`
`_
`
`55218-0500
`
`-1-
`
`Oracle Exhibit 1004, Page 3
`
`
`
`SYMBOLIC DEFINITION OF A VIRTUAL COMPUTER SYSTEM
`
`FIELD OF THE INVENTION
`
`The present invention generally relates to data processing in the field of visual
`
`5
`
`programming and data networking. The invention relates more specifically to a method and
`
`apparatus for symbolically creating a definition of a computer system.
`
`BACKGROUND OF THE INVENTION
`
`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
`
`10 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, entitled "Extensible Computing System," naming Ashar Aziz et al. as inventors, the
`
`entire disclosure of which is hereby incorporated by reference as if fully set forth herein.
`
`Aziz et al. disclose a method and apparatus for selecting, from within a large, extensible
`
`15
`
`computing framework, elements for configuring a particular computer system. Accordingly,
`
`upon demand, a virtual server farm or other data center may be created, configured and
`
`brought on-line to carry out useful work, allover a global computer network, virtually
`
`instantaneously.
`
`Although the methods and systems disclosed in Aziz et al. are powerful and flexible,
`
`20
`
`users and adm~nistrators ofthe 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 example, an improvement upon Aziz et al. would be a way to
`
`specify, price, order and deploy virtual server farms using a networked computer workstation
`
`and a standard browser.
`
`55218-0500
`
`-2-
`
`Oracle Exhibit 1004, Page 4
`
`
`
`Using one known online service, "Rackspace.com," a user may select a server
`
`platfonn, configure it with a desired combination of disk storage, tape backup, and certain
`
`software 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
`
`5
`
`user interface is rudimentary and relies only on pull-down lists 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. Pat. No.
`
`5,163,130 (Jean-Marie Hullot, NeXT Computer, Inc., 1992) discloses a visual programming
`
`10 method in which computer program elements are selected from a palette and moved into a
`
`graphical representation ofthe logical flow ofthe program.
`
`The commercial product "Visio" is a well-known tool for creating graphical
`
`presentations useful in business and industry. An end user may create a Visio presentation by
`
`dragging and dropping symbols into a workspace. Complex pictures and diagrams can be
`
`15
`
`created. Templates or "stencils" may be created and distributed, enabling others to create
`
`new pictures and diagrams that have the same appearance parameters 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 server fann, or other computer system configurations that are
`
`20
`
`created based <;m the extensible computing framework described in Aziz et al.
`
`There is a specific need for a way to create such a description using graphic icons and
`
`other symbols that represent elements of a real server fann or other computer system.
`
`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,
`
`55218-0500
`
`-3-
`
`Oracle Exhibit 1004, Page 5
`
`
`
`configuring and activating a real computer system that embodies the visual representation.
`
`There is a related need for a way to prepare such quotes on a rapid basis for use in connection
`
`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
`
`5
`
`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 save a visual representation so that it can be
`
`retrieved and modified at a later time.
`
`End users also would find it useful to have a way to negotiate fees and costs for a
`
`10
`
`particular virtual server farm with the service provider that is providing the hardware to
`
`implement the server farm.
`
`-- HARDWARE OVERVIEW
`
`FIG. 1 is a block diagram that illustrates a computer system 100 upon which an
`
`embodiment ofthe invention may be implemented. Computer system 100 includes a bus 102
`
`15
`
`or other communication mechanism for communicating information, and a processor 104
`
`coupled with bus 102 for processing information. Computer system 100 also includes a main
`
`memory 106, such as a random access memory (RAM) or other dynamic storage device,
`
`coupled to bus 102 for storing information and instructions to be executed by processor 104.
`
`Main memory 106 also may be used for storing temporary variables or other intermediate
`
`20
`
`information d~ring execution of instructions to be executed by processor 104. Computer
`
`system 100 further includes a read only memory (ROM) 108 or other static storage device
`
`coupled to bus 102 for storing static information and instructions for processor 104. A
`
`storage device 110, such as a magnetic disk or optical disk, is provided and coupled to bus
`
`102 for storing information and instructions.
`
`55218-0500
`
`-4-
`
`Oracle Exhibit 1004, Page 6
`
`
`
`Computer system 100 may be coupled via bus 102 to a display 112, such as a cathode
`
`ray tube (CRT), for displaying information to a computer user. An input device 114,
`
`including alphanumeric and other keys, is coupled to bus 102 for communicating information
`
`and command selections to processor 104. Another type of user input device is cursor
`
`5
`
`control 116, such as a mouse, a trackball, or cursor direction keys for communicating
`
`direction information and command selections to processor 104 and for controlling cursor
`
`movement on display 112. This input device typically has two degrees of freedom in two
`
`axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specifY
`
`positions in a plane.
`
`10
`
`The invention is related to the use of computer system 100 for symbolically creating a
`
`definition of a computer system. According to one embodiment of the invention,
`
`symbolically creating a definition of a computer system is provided by computer system 100
`
`in response to processor 104 executing one or more sequences of one or more instructions
`
`contained in main memory 106. Such instructions may be read into main memory 106 from
`
`15
`
`another computer-readable medium, such as storage device 110. Execution ofthe sequences
`
`of instructions contained in main memory 106 causes processor 104 to perform the process
`
`steps described herein. In alternative embodiments, hard-wired circuitry may be used in
`
`place of or in combination with software instructions to implement the invention. Thus,
`
`embodiments ofthe invention are not limited to any specific combination ofhardware
`
`20
`
`circuitry and spftware.
`
`The term "computer-readable medium" as used herein refers to any medium that
`
`participates in providing instructions to processor 104 for execution. Such a medium may
`
`take many forms, including but not limited to, non-volatile media, volatile media, and
`
`transmission media. Non-volatile media includes, for example, optical or magnetic disks,
`
`55218-0500
`
`-5-
`
`Oracle Exhibit 1004, Page 7
`
`
`
`such as storage device 110. Volatile media includes dynamic memory, such as main memory
`
`106. Transmission media includes coaxial cables, copper wire and fiber optics, including the
`
`wires that comprise bus 102. Transmission media can also take the form of acoustic or light
`
`waves, such as those generated during radio-wave and infra-red data communications.
`
`5
`
`Common forms of computer-readable media include, for example, a floppy disk, a
`
`flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other
`
`optical medium, punch cards, paper tape, any other physical medium with patterns ofholes, a
`
`RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a
`
`carrier wave as described hereinafter, or any other medium from which a computer can read.
`
`10
`
`Various forms of computer readable media may be involved in carrying one or more
`
`-
`
`sequences of one or more instructions to processor 104 for execution. For example, the
`
`instructions may initially be carried on a magnetic disk of a remote computer. The remote
`
`computer can load the instructions into its dynamic memory and send the instructions over a
`
`telephone line using a modem. A modem local to computer system 100 can receive the data
`
`15
`
`on the telephone line and use an infrared transmitter to convert the data to an infrared signal.
`
`An infrared detector can receive the data carried in the infrared signal and appropriate
`
`circuitry can place the data on bus 102. Bus 102 carries the data to main memory 106, from
`
`which processor 104 retrieves and executes the instructions. The instructions received by
`
`main memory 106 may optionally be stored on storage device 110 either before or after
`
`20
`
`execution by processor 104.
`
`Computer system 100 also includes a communication interface 118 coupled to bus
`
`102. Communication interface 118 provides a two-way data communication coupling to a
`
`network link 120 that is connected to a local network 122. For example, communication
`
`interface 118 may be an integrated services digital network (ISDN) card or a modem to
`
`55218-0500
`
`-6-
`
`Oracle Exhibit 1004, Page 8
`
`
`
`provide a data communication connection to a corresponding type oftelephone line. As
`
`another example, communication interface 118 may be a local area network (LAN) card to
`
`provide a data communication connection to a compatible LAN. Wireless links may also be
`
`implemented. In any such implementation, communication interface 118 sends and receives
`
`5
`
`electrical, electromagnetic or optical signals that carry digital data streams representing
`
`various types of information.
`
`Network link 120 typically provides data communication through one or more
`
`networks to other data devices. For example, network link 120 may provide a connection
`
`through local network 122 to a host computer 124 or to data equipment operated by an
`
`10
`
`Internet Service Provider (ISP) 126. ISP 126 in tum provides data communication services
`
`through the world wide packet data communication network now commonly referred to as
`
`the "Internet" 128. Local network 122 and Internet 128 both use electrical, electromagnetic
`
`~
`
`or optical signals that carry digital data streams. The signals through the various networks
`
`and the signals on network link 120 and through communication interface 118, which carry
`
`15
`
`the digital data to and from computer system 100, are exemplary forms of carrier waves
`
`transporting the information.
`
`Computer system 100 can send messages and receive data, including program code,
`
`through the network(s), network link 120 and communication interface 118. In the Internet
`
`example, a server 130 might transmit a requested code for an application program through
`
`20
`
`Internet 128, I~P 126, local network 122 and communication interface 118. In accordance
`
`with the invention, one such downloaded application provides for symbolically creating a
`
`definition of a computer system as described herein.
`
`55218-0500
`
`-7-
`
`Oracle Exhibit 1004, Page 9
`
`
`
`The received code may be executed by processor 104 as it is received, and/or stored
`
`in storage device 110, or other non-volatile storage for later execution. In this manner,
`
`computer system 100 may obtain application code in the form of a carrier wave.
`
`In the foregoing specification, the invention has been described with reference to
`
`5
`
`specific embodiments thereof. It will, however, be evident that various modifications and
`
`changes may be made thereto without departing from the broader spirit and scope of the
`
`invention. The specification and drawings are, accordingly, to be regarded in an illustrative
`
`rather than a restrictive sense.
`
`Embodiments of the invention may include:
`
`l.
`
`A method of defining and deploying a networked computer system, comprising the
`
`steps of:
`
`creating and storing a textual representation of a logical configuration of the
`
`networked computer system according to a structured markup language;
`
`based on the textual representation, generating one or more commands for one or
`
`more switch devices that are interconnected to one or more computing
`
`elements and storage devices, wherein the commands instruct the switch
`
`devices to logically connect the computing elements and storage devices into
`
`an operable computer system that conforms to the logical configuration.
`
`2.
`
`A method as recited in Claim 1, further comprising the step of receiving a graphical
`
`representation of a logical configuration of the networked computer system that is
`
`based on a first user selection from a palette of one or more graphical icons that
`
`represent logical elements of the networked computer system and a second user
`
`selection of graphical interconnections of the icons.
`
`1
`
`2 3 4 5 6 7 8 9
`
`1
`
`2 3 4 5
`
`55218-0500
`
`-8-
`
`Oracle Exhibit 1004, Page 10
`
`
`
`1
`
`2
`
`3
`
`4
`
`I
`
`2
`
`3
`
`4
`
`5
`
`1
`
`2
`
`3
`
`4
`5
`6
`
`I
`
`2
`
`3
`
`4
`
`5
`
`6
`
`1
`
`2
`
`3
`
`1
`
`2
`
`3
`
`3.
`
`A method as recited in Claim 2, wherein the step of creating and storing a textual
`
`representation comprises the step of creating and storing the textual representation of
`
`the logical configuration of the networked computer system according to a structured
`
`markup language based on the graphical representation.
`
`4.
`
`A method as recited in Claim 1, wherein 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 definitions of servers of the networked computer system, wherein each
`
`definition of a server uses and references the server role definition.
`
`5.
`
`A method as recited in Claim 1, wherein 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 of the networked computer system,
`
`wherein each definition of a server uses and references the server role
`
`definition.
`
`6.
`
`A method as recited in Claim I, wherein the textual representation comprises:
`
`at least one definition of a load balancing function;
`
`at least one server tier definition that defines a plurality of servers that receive
`
`inbound traffic from the load balancing function; and
`
`at least one fixed server definition that defines a fixed server that is associated with
`
`one of the servers in the server tier.
`
`7.
`
`8.
`
`A method as recited in Claim 6, wherein the 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.
`
`A method as recited in Claim 1, wherein 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
`
`55218-0500
`
`-9-
`
`Oracle Exhibit 1004, Page 11
`
`
`
`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.
`
`9.
`
`A method as recited in Claim 1, wherein the textual representation comprises at least
`
`one server tier definition that defines a plurality of servers that receive inbound traffic
`
`from the load balancing function; and wherein 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.
`
`10.
`
`A method as recited in Claim 1, wherein 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 information specifying a network
`
`address of the server.
`
`11.
`
`A method as recited in Claim 1, further comprising the steps of:
`
`associating a first server definition of the textual representation with a graphical icon,
`
`wherein the first server definition comprises at least one external entity
`
`declaration that represents a network address of a server that is represented by
`
`the first server definition;
`
`creating and storing, in the textual representation, a copied server definition based on
`
`duplicating the first server definition that is associated with the graphical icon;
`
`resolving each external entity declaration of the server definition of the textual
`
`.representation and the copied server definition ofthe textual representation
`
`into a different actual network address;
`
`based on the textual representation, generating one or more commands for one or
`
`more switch devices that are interconnected to one or more computing
`
`elements and storage devices, wherein the commands instruct the switch
`
`4 5 6 7 1
`
`2 3 4 5 6 1
`
`2 3 4 5
`
`6 1
`
`2 3 4 5 6 7 8 9
`
`10
`
`11
`
`12
`
`13
`
`..
`
`55218-0500
`
`-10-
`
`Oracle Exhibit 1004, Page 12
`
`
`
`14
`
`15
`
`devices to logically connect the computing elements and storage devices into
`
`an operable computer system that conforms to the logical configuration.
`
`12.
`
`A method as recited in Claim I, wherein the textual representation comprises at least
`
`one firewall definition that comprises a firewall name value, a plurality ofport values
`
`that define logical connections to a firewall device associated with the firewall
`
`definition, and one more definitions of services that the firewall is allowed to permit
`
`or deny.
`
`13.
`
`A method as recited in Claim I, wherein the textual representation comprises:
`
`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 drive name value and a
`
`drive size value; and
`
`one or more definitions of servers of the networked computer system, wherein each
`
`definition of a server uses and references the server role definition.
`
`14.
`
`A method as recited in Claim 13, wherein the step of generating one or more
`
`commands comprises the steps of:
`
`generating one or more commands that allocate disk space according to the drive size
`
`value in a storage device that is accessible using a storage area network
`
`interface;
`
`mapping the allocated disk space to a server of the networked computer system that
`
`implements one of the definitions of servers.
`
`15.
`
`A method as recited in Claim I, wherein the textual representation comprises an
`
`action definition that defines actions for execution for with respect to each server in a
`
`tier of one or more servers when an additional server is added to the tier.
`
`16.
`
`A method as recited in Claim IS, wherein the action definition complises 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 the name value.
`
`I
`
`2 3 4 5 1
`
`2 3 4 5 6 7 8 I
`
`2 3 4 5 6 7 1
`
`2 3 1
`
`2 3
`
`55218-0500
`
`-11-
`
`Oracle Exhibit 1004, Page 13
`
`
`
`17.
`
`A method as recited in Claim 16, further comprising the steps of:
`
`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.
`
`18.
`
`A method as recited in Claim 1, wherein the textual representation comprises an
`
`action definition that defines actions for execution for with respect to each server in a
`
`tier of one or more servers when one of the servers is removed from the tier.
`
`19.
`
`A method as recited in Claim 18, wherein the action defmition comprises 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 the name value.
`
`20.
`
`A method as recited in Claim 16, further comprising the steps of:
`
`receiving information indicating that one of the servers has been deleted from the tier;
`
`executing the script of actions with respect to each server in the tier.
`
`21.
`
`A computer-readable medium carrying one or more sequences of instructions for
`
`defining and deploying a networked computer system, wherein execution of the one
`
`or more sequences ofinstructions by one or more processors causes the one or more
`
`processors to perform the steps of:, comprising the steps of:
`
`creating and storing a textual representation of a logical configuration of the
`
`networked computer system according to a structured markup language;
`
`based on the textual representation, generating one or more commands for one or
`
`more switch devices that are interconnected to one or more computing
`
`elements and storage devices, wherein the commands instruct the switch
`
`devices to logically connect the computing elements and storage devices into
`
`an operable computer system that conforms to the logical configuration.
`
`22.
`
`A method of defining and deploying a networked computer system, comprising the
`
`steps of:
`
`displaying a palette of one or more graphical icons that represent logical elements of
`
`the networked computer system;
`
`1
`
`2 3 1
`
`2 3 1
`
`2 3 1
`
`2 3 1
`
`2 3 4 5 6 7 8 9
`
`10
`
`11
`
`1
`
`2 3 4
`
`55218-0500
`
`-12-
`
`Oracle Exhibit 1004, Page 14
`
`
`
`receiving first user input representing a selection of one or more of the graphical
`
`icons;
`
`receiving second user input representing graphical interconnections of the icons;
`
`creating, storing and displaying a graphical representation of a "logical configuration
`
`ofthe networked computer system based on the first user input and the second
`
`user input;
`
`creating and storing a textual representation of a logical configuration of the
`
`networked computer system according to a structured markup language;
`
`based on the textual representation, generating one or more commands for one or
`
`more switch devices that are interconnected to one or more computing
`
`elements and storage devices, wherein the commands instruct the switch
`
`devices to logically connect the computing elements and storage devices into
`
`an operable computer system that conforms to the logical configuration.
`
`23.
`
`A method as recited in Claim 22, wherein the step of creating and storing a textual
`
`representation comprises the step of creating and storing the textual representation of
`
`the logical configuration ofthe networked computer system according to a structured
`
`markup language based on the graphical representation.
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`1
`
`2 3 4 5
`
`ABSTRACT OF THE DISCLOSURE
`
`A method and apparatus for defining and deploying a networked computer system features
`
`creating and storing a textual representation of a logical configuration of the networked
`
`computer system according to a structured markup language. Based on the textual
`
`10
`
`representation, one or more commands are generated for configuring an operable computer
`
`system that conforms to the logical configuration. The commands may be directed to one or
`
`more switch devices that are interconnected to one or more computing elements and storage
`
`devices, to instruct the switch devices to logically connect the computing elements and
`
`storage devices into the computer system. In one embodiment, a graphical representation of
`
`55218-0500
`
`-13-
`
`Oracle Exhibit 1004, Page 15
`
`
`
`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 logical elements of the
`
`networked computer system, and a user selection of graphical interconnections of the icons.
`
`The textual representation is generated automatically based on the graphical representation.
`
`5
`
`As a result, a real-world virtual server farm or data center may be created and deployed by
`
`dragging and dropping icons representing computing elements.
`
`55218-0500
`
`-14-
`
`Oracle Exhibit 1004, Page 16
`
`
`
`I \
`
`\
`
`-
`
`FIG. 1
`
`DISPLAY
`112
`
`INPUT DEVICE
`114
`
`CURSOR
`CONTROL
`116
`
`\ - - - - - - - - - - - - - - - - - - l
`I
`MAIN
`I
`MEMORY
`1QQ
`I
`1 / /
`
`ROM
`
`1Q8.
`
`STORAGE
`DEVICE
`
`1.1Q.
`
`SERVER
`13.Q.
`
`V).....
`
`128
`
`126
`
`BUS
`
`102
`
`PROCESSOR
`104
`
`COMMUNICATION
`INTERFACE
`
`ill I
`
`I
`~J
`
`HOST
`124
`
`iii
`
`Oracle Exhibit 1004, Page 17
`
`
`
`ITech
`
`3000 Bridge Parkway Suite 101
`Redwood Shores
`CA 94065-1291
`
`Phone 650 620-3100
`Fax 650 620-9012
`
`Phase 1 User Interface Design
`
`Beta 0.9 Web User Interface
`
`XCFTECH, INC. PROPRIETARY AND CONFIDENTIAL
`
`016
`
`Oracle Exhibit 1004, Page 18
`
`
`
`1 Introduction
`
`This document describes the first release of
`XCFTech's online services. It presents:
`
`the web-accessible user interface for
`
`•
`
`•
`
`•
`
`•
`
`A list of target user types and their goals.
`
`A series of high-level storyboards for each of the main user types.
`
`A function-by-function description of the user interface components along with
`their navigation design.
`
`A structure diagram shOWing how the various components of the system inter(cid:173)
`relate.
`
`The user interface described here exists as a component within XCFTech's corporate web
`site, documented elsewhere. As such, it does not address issues such as look and feel,
`wider site content and web site