throbber
(12) United States Patent
`Arrouye et al.
`
`US006256635B1
`US 6,256,635 B1
`Jul. 3, 2001
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`(54) METHOD AND APPARATUS FOR
`CONFIGURING A COMPUTER USING
`SCRIPTING
`
`(75)
`
`Inventors; Yan Arrouye, cuper?no; John
`(jomiskey, San Jose; Chris Nebe],
`Sunnyvale; Richard Ford, Arlington;
`Michel Guittet, Redmond; Alice Li,
`Los Altos, all of CA (US)
`
`(73)
`
`_
`_
`_
`Asslgnee' Apple Computer’ Inc" cupemno’ CA
`(Us)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U-S-C- 154(k)) by 0 days-
`
`(21)
`(22)
`(51)
`(52)
`
`(58)
`
`(56)
`
`Appl. No.: 09/074,705
`
`Filed:
`
`May 8, 1998
`
`7
`Int. Cl- .................................................... ..
`US. Cl. .......................... .. 707/102; 707/10; 707/200;
`709/220; 709/223; 713/1; 717/11
`Field of Search ............................ .. 707/10, 102, 103,
`707/200, 201; 709/220, 221, 223, 226;
`713/1; 717/11
`
`References Cited
`
`U'S' PATENT DOCUMENTS
`12/1992 Galis et al. .......................... .. 706/45
`5,175,800
`5/1995 Filip et al. ......................... .. 707/103
`5,414,812
`5,784,539 * 7/1998 LenZ ..................................... .. 706/45
`577847563 : 7/1998 Marshall et a1
`709/221
`578387907
`11/1998 Hansen """"" "
`709/220
`5,931,909 * 8/1999 Taylor
`709/221
`6,029,196 * 2/2000 LenZ
`709/221
`6,066,182 * 5/2000 Wilde et al. . . . . . . .
`. . . .. 717/11
`6,078,951 * 6/2000 Pashupathy et al. .............. .. 709/217
`
`FOREIGN PATENT DOCUMENTS
`
`0791881
`0803808
`
`8/1997 (EP) .
`10/1997 (EP) .
`
`OTHER PUBLICATIONS
`
`“AppleScript: Easy—to—learn Automation for Macintosh
`Systems,” a PDF printable version of 6—page document,
`dovvnloaded on Jul. 11,2000, at WWW.apple.com/apple
`scr1pt/techsheet/AppleScr1pt.00.html.*
`“Process Manager for a Personal Computer” IBM Technical
`Disclosure Bulletin, US, IBM Corp. NeW York, vol. 30, No.
`6, pp. 10—15 XP000035572 ISSN: 0018—8689 11/1987.
`“Method for Updating Con?guration Once” IBM Technical
`Disclosure Bulletin, US, IBM Corp. NeW York, vol. 38, No.
`2, pp. 537—538 XP0000502680 ISSN: 0018—8689 2/1995.
`
`* Cited by examiner
`
`Primary Examiner—Hosain T. Alam
`(74) Attorney, Agent, or Firm—The Hecker LaW Group
`(57)
`ABSTRACT
`
`_
`A method and apparatus for con?gurmg a computer. One
`embodiment of the invention Combines all of the prior art
`control panels related to networking into a consolidated
`NetWork Setup Control Panel. In addition, the invention
`provides for computer con?guration by scripting. The con
`?guration may be for a type of system setting or for netWork
`con?gurations and protocols. Through scripting, a computer
`may be con?gured locally or remotely on a netWork. One
`embodiment of the invention provides for a centralized
`database or Con?guration Library consisting of collected
`data relating to available con?guration settings. This data
`base is not limited to con?guration information and can be
`used as a general database containing information the user
`desires to store_ To modify a con?guration by scripting, the
`invention provides for a Scripting Interface consisting of a
`Scripting Server and Scripting Plug-In. The Scripting Server
`-
`-
`receives the script forWarded from a user or netWork
`d .
`.
`h
`.
`d d
`.
`h
`a lmmstr‘i‘tol’ parses t e Scnpt an
`etefmmes ,1 e aPPrO'
`PnaFe scnptmg Plug-1W0 forward the deslred actlon t°~ The
`Scripting Plug-In receives the commands and executes the
`appropriate actions to modify the con?guration as directed.
`
`44 Claims, 11 Drawing Sheets
`
`E] % NETWORK SETUP
`
`[) Connecllon Status
`V Edlt Configurations
`
`El E
`
`E
`
`Checked (/) llama wlll be available lor“Home Office":
`/ I
`NAME
`I TYPE
`/ (PU Apple AT Nel
`AppleTalk
`/ (F9 Apple Internet
`TCP/IP
`#9 Mlcroweb
`TCP/IP
`$ MicroweblSP
`Remote Access(PPP)
`/ 8%? Mixed DiaI'Up@Ap~-
`FlemoleAccess(AFlAP) T
`
`:
`E
`
`E]
`
`NETWORK SETUP CONTROL PANEL, MAIN WINDOW
`
`l?
`
`001
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 1 0f 11
`
`US 6,256,635 B1
`
`om?
`
`89>
`E95: mowwwooml
`
`
`
`o:
`
`2:
`
`Fm
`
`EDGE
`
`002
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 2 0f 11
`
`US 6,256,635 B1
`
`200
`
`Access Database
`
`Modify Database
`
`202
`
`Readers Accessing?
`
`Notify Reader by
`(a) Message; and/or
`(b) Operation Fail
`
`206
`
`Reader Close Database
`
`Reader Open Database
`
`208
`
`210
`
`FIGURE 2
`
`003
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 3 6f 11
`
`US 6,256,635 B1
`
`300
`User Transmits /
`Command to Script
`Interference
`
`Scripting Server
`Receives Command
`
`302
`
`Scripting Server
`Interprets Commands
`
`304
`
`306
`S
`t.
`S _
`crip ing erver
`Forwards Commands /
`to Scripting Plug-In
`
`Scripting Plug-in
`Executes Action
`
`308
`
`Scripting Plug-In
`Notifies Operating
`System
`
`310
`
`FIGURE 3
`
`004
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 4 0f 11
`
`US 6,256,635 B1
`
`FIGURE 4A
`
`400A
`
`402A
`
`Scripting
`Server
`
`Con?guration Library
`
`404A
`
`File System
`
`406A
`
`Configuration Library
`
`File System
`
`4045
`
`4065
`
`005
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 5 0f 11
`
`US 6,256,635 B1
`
`500
`
`504
`
`Format A
`
`Format 8
`
`Map
`
`Map
`
`502
`
`506
`
`Format C
`
`Format C
`
`08
`
`Store Data
`
`Database
`
`FIGURE 5
`
`006
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 6 6f 11
`
`US 6,256,635 B1
`
`600
`/
`Network Scripting
`Server
`
`602
`
`608
`
`604
`
`606
`
`OT Configuration Library
`
`Configuration Library
`
`File System
`
`FIGURE 6
`
`007
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 7 0f 11
`
`US 6,256,635 B1
`
`702
`Existing Control Panels
`Modify Existing Files and /
`Date Stamp Files with Dale
`Change Made
`
`From Step 818
`
`704
`
`Check Date Stamp
`of Each Legacy File
`
`706
`
`Yes
`
`D
`
`Commence
`Import
`Operation
`
`712
`/
`
`File Support
`Multiple
`Configurations?
`
`720
`
`714
`/
`
`718
`/
`
`Create a
`Create
`Configuration in New
`Database for Each —> Globals
`Configuration
`
`_
`Create a Configuration
`To Figure 8
`in New Database for ————> grlggg’s
`Configuration
`_‘
`
`l
`
`Y )
`
`FIGURE 7
`
`008
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 8 of 11
`
`US 6,256,635 B1
`
`From Figure 7
`
`.
`
`Continue execution until
`
`.
`
`.
`
`800
`
`" _ _ _ _ —>
`
`complete
`
`Commence export
`
`802
`
`804
`
`Legacy tile protocols support
`multiple configurations?
`
`YES
`
`NO
`
`Write matched
`configurations to legacy
`tiles in legacy file format
`
`806
`
`Write currently active
`configurations to legacy file
`In legacy file format
`
`812
`
`Write new configurations
`from new database to old
`legacy file format
`
`808
`
`810
`
`Write global settings
`
`Write global settings
`
`Capture date stamp
`
`814
`
`816
`
`Continue
`
`FIGURE 8
`
`8,8
`
`009
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 9 0f 11
`
`US 6,256,635 B1
`
`900
`
`Draft
`Script
`
`902
`
`Configure
`Remote Computer
`
`9 04
`
`Launch Script on Remote
`Scripting
`Server
`
`906
`
`FIGURE 9
`
`010
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 10 0f 11
`
`US 6,256,635 B1
`
`or mEDGI
`
`N02 1 mEmI
`
`82152
`
`z QIEE N njmE
`
`F GEE
`
`0009
`
`mobmmo
`/ m8?
`<89
`
`woo? _ wamouwm
`
`011
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`U.S. Patent
`
`Jul. 3, 2001
`
`Sheet 11 0f 11
`
`US 6,256,635 B1
`
`mm
`
`3 mEDUE
`
`
`
`
`
`mOFIO m:>_OI uEm tom
`
`012
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`US 6,256,635 B1
`
`1
`METHOD AND APPARATUS FOR
`CONFIGURING A COMPUTER USING
`SCRIPTING
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`This invention relates to the ?eld of computer software,
`and, more speci?cally, to netWork protocols and con?gura
`tion.
`Portions of the disclosure of this patent document contain
`material that is subject to copyright protection. The copy
`right oWner has no objection to the facsimile reproduction
`by anyone of the patent document or the patent disclosure as
`it appears in the Patent and Trademark Of?ce ?le or records,
`but otherWise reserves all copyright rights Whatsoever.
`Apple, Macintosh, AppleTalk, AppleScript, and all Apple
`based trademarks and logos are trademarks or registered
`trademarks of Apple Computer, Inc. in the United States and
`other countries.
`2. Background Art
`In modern computing environments, it is commonplace to
`employ multiple computers or Workstations linked together
`in a netWork to communicate betWeen, and share data With,
`netWork users. A netWork also may include resources, such
`as printers, modems, ?le servers, etc., and may also include
`services, such as electronic mail.
`A netWork can be a small system that is physically
`connected by cables (a local area netWork or “LAN”), or
`several separate netWorks can be connected together to form
`a larger netWork (a Wide area netWork or “WAN”). Other
`types of netWorks include the internet, tel-com netWorks, the
`World Wide Web, intranets, extranets, Wireless netWorks,
`and other netWorks over Which electronic, digital, and/or
`analog data may be communicated. Individual computers
`often use various ports to physically connect to a netWork.
`For example, if you need to dial into a netWork using the
`phone lines and a modem, the modem port may be utiliZed.
`Other ports that may be used include a Printer Port, Ethernet,
`Infrared, and Remote Access.
`To enable the computers on a netWork to communicate
`With each other, a set of standardiZed rules for exchanging
`the information betWeen the computers, referred to as a
`“protocol”, is utiliZed. Protocols generally specify the data
`format, timing, sequencing, and error checking of data
`transmissions. Numerous protocols are used in the netWork
`ing environment. For example, transmission control
`protocol/internet protocols (“TCP/IP”) are the protocols
`used on the internet and on many multiplatform netWorks,
`and AppleTalk is the netWork protocol built into every
`Macintosh computer.
`To enable individual computers to utiliZe a speci?c
`protocol, numerous computer settings, including the settings
`for the desired protocol, must be properly con?gured. Sev
`eral softWare applications for controlling the settings,
`referred to here as “utilities” may be utiliZed to control the
`con?guration and modi?cation of a protocol to enable
`netWork capabilities. For example, in a Macintosh
`environment, the folloWing “control panel” user interface
`utilities may be utiliZed to con?gure a computer for various
`types of netWork access: AppleTalk, TCP/IP, OT/PPP (Open
`Transport/Point-to-Point), Infrared, Dial Assist, and
`Modem. Further, the information and data relating to each
`protocol are stored independently from other protocols in
`individual ?les. These ?les are accessible to one user at a
`time. If tWo users desire to access the con?guration ?le, the
`
`10
`
`15
`
`25
`
`45
`
`55
`
`65
`
`2
`?rst user to open the ?le With the information is permitted
`access and the second user is denied access. Some prior art
`methods permit multiple users to read a ?le at the same time.
`HoWever, these methods do not provide any protection for
`those users should the ?le be modi?ed by another user While
`they are reading it.
`In some situations, if one of the protocols is con?gured in
`a certain manner, one of the other protocols does not operate.
`For example, if tWo con?gurations or devices try and use the
`same non-sharable port, the user may not be alloWed to use
`the desired port until the con?icting device is deactivated
`(e.g., a printer can’t be activated if it shares the same port as
`“modem settings”). To deactivate the con?icting device, the
`user has to search numerous control panels to locate the
`con?icting device and deactivate or delete the con?icting
`con?guration by adjusting the settings. Thus, the use of an
`individual control panel for each protocol forces the user to
`make adjustments and modi?cations in numerous control
`panels in order to properly con?gure the computer. For
`example, if a user desires to enable multiple netWorking
`protocols (e.g., one TCP/IP protocol With a static IP address
`(IP addresses are discussed beloW), one TCP/IP protocol
`With a dynamic IP address, and one AppleTalk protocol),
`numerous control panels for each protocol must be accessed
`and con?gured properly. In addition, if a user desires to
`connect to the internet, but has a protocol other than TCP/IP
`active (e.g., AppleTalk), the connection cannot be processed.
`The user may have to deactivate the active protocol (e.g.,
`AppleTalk) using that protocol’s control panel, and then
`activate the TCP/IP protocol using the TCP/IP control panel.
`To route messages and communicate betWeen computers
`using a TCP/IP protocol, each individual computer must be
`identi?ed With a unique identi?er or address. The unique
`identi?er is referred to as an internet address or Internet
`Protocol (IP) address. An individual computer can be
`assigned a static IP address that does not change. An
`individual computer can also maintain a dynamic IP address
`such that Whenever it connects to the netWork, the computer
`is assigned an IP address. In this manner, each time the
`individual computer connects to the netWork, a different IP
`address may be assigned to the computer.
`It is often beyond the scope of the user’s knoWledge to
`con?gure a netWorking protocol. For example, an employee
`that solely performs Word processing is not likely to have the
`knoWledge to con?gure his/her computer for netWork access
`and operation. Thus, it is desirable for a netWork adminis
`trator to be able to con?gure a user’s computer from the
`administrator’s or another’s computer (referred to as
`“remote con?guration”).
`To enable a computer to execute a sequence of instruc
`tions or commands, a computer program is utiliZed. One
`type of computer program that provides for the automation
`of a task or a series of tasks is called a script. A script can
`be used to perform simple tasks such as a ?le back-up , or
`more complex tasks such as adding capability to a program
`or presentation. A scripting language is used to create a
`script.
`TWo common methods are utiliZed in scripting languages:
`(1) Event Scripting; and (2) Semantic Scripting. Event
`scripting consists of mimicking a user’s actions and events
`as they are performed in a user interface. For example,
`copying the user’s actions entailed in moving a mouse over
`a screen location containing a checkbox for activating sound
`and depressing the mouse button. Semantic scripting con
`sists of function speci?c commands that perform speci?c
`actions. For example, the execution of a command to
`
`013
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`US 6,256,635 B1
`
`3
`activate sound. In the Macintosh environment, one type of
`semantic scripting language that is often utilized is called
`AppleScript.
`To enable network con?guration, one prior art method
`referred to as “Location Manager”) allows users to assign
`speci?c settings to a “location” for a variety of capabilities
`including networking, printers, time Zone, ?le sharing,
`sound, and frequently used applications. Once a location is
`set up, a user can select that location and the computer
`system recogniZes the user’s preferences for that environ
`ment. For example, a home location and an office location
`may be set up for the various printers and networks available
`at the user’s home and of?ce. However, it is not possible for
`a network administrator to remotely con?gure a computer or
`adjust network settings.
`Another prior art method used to con?gure a network
`referred to as “NetInfo” provides for a centraliZed database
`that contains the available con?gurations. When a user
`wants to con?gure his/her computer for network
`capabilities, the user accesses the centraliZed database to
`determine what options are available. However, it is not
`possible for a network administrator to remotely con?gure a
`user’s computer or adjust network settings. This prior art
`method is more fully described in US. Pat. No. 5,410,691
`entitled “Method and Apparatus for Providing a Network
`Con?guration Database” issued on Apr. 25, 1995 and US.
`Pat. No. 5,459,863 entitled “Method of Maintaining Integ
`rity in a Network Database” issued on Oct. 17, 1995.
`Another prior art method provides the ability to swap
`various con?guration ?les in order to con?gure a computer.
`However, the system is not noti?ed when the ?le swapping
`occurs and does not recogniZe the new con?guration. To
`enable the system to recogniZe the new con?guration, the
`computer must be restarted or one of the control panels must
`be manually adjusted.
`
`SUMMARY OF THE INVENTION
`
`The invention provides for the con?guration of a com
`puter. One embodiment of the invention combines the prior
`art control panels related to networking into a consolidated
`Network Setup Control Panel. In addition, the invention
`provides for computer con?guration by scripting. The con
`?guration may be for any type of system setting or for
`network con?gurations and protocols. Through scripting, a
`computer may be con?gured locally or remotely on a
`network.
`One embodiment of the invention provides for a central
`iZed database consisting of the collected data relating to
`available con?guration settings. This database is not limited
`to con?guration information and can be used as a general
`database containing any type of information the user desires
`to store. The database may be accessed by an administrator
`desiring to con?gure a computer. When con?guring a com
`puter for network accessibility, the database may be modi
`?ed directly using the Network Setup Control Panel. One
`embodiment of the invention provides for modi?cation of
`the database and computer con?guration through scripting.
`To modify a con?guration by scripting, the invention
`provides for a Scripting Interface consisting of a Scripting
`Server and Scripting Plug-In. The Scripting Server is pro
`grammed with the general knowledge of the structure and
`type of objects representing con?gurations stored in the
`database. The Scripting Server receives the script forwarded
`from a user or network administrator, parses the script and
`determines the appropriate Scripting Plug-In to forward the
`desired action to (by accessing the general knowledge the
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`4
`Scripting Server maintains). The Scripting Plug-In is pro
`grammed to maintain knowledge of the speci?c ?elds and
`methods of the objects stored in the database. Thus, the
`Scripting Plug-In receives the commands and executes the
`appropriate actions to modify the con?guration as directed.
`To create a script, one embodiment of the invention
`provides for the use of a dictionary containing available
`commands and objects that may be modi?ed. After creating
`a script, the administrator merely executes the script on a
`copy of the Scripting Server that is run either remotely or
`locally. In this manner, a computer may be con?gured using
`scripting.
`In addition, one embodiment of the invention provides for
`backwards compatibility with prior art con?guration settings
`(using the ?le formats that existed in the prior art). The
`backwards compatibility method includes exporting and
`importing various con?guration settings into the consoli
`dated database.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of one embodiment of a
`computer system capable of providing a suitable execution
`environment for an embodiment of the invention.
`FIG. 2 illustrates the multiple reader protection provided
`by one embodiment of the invention.
`FIG. 3 illustrates the method of processing scripts pro
`vided by one embodiment of the invention.
`FIG. 4a demonstrates the architectural design of one
`embodiment of the invention.
`FIG. 4b demonstrates the architectural design of FIG. 4a
`customiZed for network con?guration of one embodiment of
`the invention
`FIG. 5 illustrates the ?le mapping used to combine
`incompatible ?le formats of one embodiment of the inven
`tion.
`FIG. 6 demonstrates the architectural design of FIG. 4b
`customiZed with an additional library to enable additional
`features of one embodiment of the invention.
`FIGS. 7 and 8 illustrate a method for enabling backwards
`compatibility with prior art ?le formats provided by one
`embodiment of the invention.
`FIG. 9 illustrates a method for performing a computer
`con?guration of one embodiment of the invention.
`FIG. 10 demonstrates a database of one embodiment of
`the invention.
`FIG. 11 is a screen print-out of a combined Network Setup
`Control Panel of one embodiment of the invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`The invention is a method and apparatus for con?guring
`a computer. In the following description, numerous speci?c
`details are set forth to provide a more thorough description
`of embodiments of the invention. It is apparent, however, to
`one skilled in the art, that the invention may be practiced
`without these speci?c details. In other instances, well known
`features have not been described in detail so as not to
`obscure the invention.
`Embodiment of Computer Execution Environment
`(Hardware)
`An embodiment of the invention can be implemented as
`computer software in the form of computer readable code
`executed on a general purpose computer such as computer
`100 illustrated in FIG. 1, or in the form of bytecode class
`
`014
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`US 6,256,635 B1
`
`5
`?les running on such a computer. Akeyboard 110 and mouse
`111 are coupled to a bi-directional system bus 118. The
`keyboard and mouse are for introducing user input to the
`computer system and communicating that user input to
`processor 113. Other suitable input devices may be used in
`addition to, or in place of, the mouse 111 and keyboard 110.
`I/O (input/output) unit 119 coupled to bi-directional system
`bus 118 represents such I/O elements as a printer, A/V
`(audio/video) I/O, etc.
`Computer 100 includes a video memory 114, main
`memory 115 and mass storage 112, all coupled to
`bi-directional system bus 118 along With keyboard 110,
`mouse 111 and processor 113. The mass storage 112 may
`include both ?xed and removable media, such as magnetic,
`optical or magnetic optical storage systems or any other
`available mass storage technology. Bus 118 may contain, for
`example, thirty-tWo address lines for addressing video
`memory 114 or main memory 115. The system bus 118 also
`includes, for example, a 32-bit data bus for transferring data
`betWeen and among the components, such as processor 113,
`main memory 115, video memory 114 and mass storage 112.
`Alternatively, multiplex data/address lines may be used
`instead of separate data and address lines.
`In one embodiment of the invention, the processor 113 is
`a microprocessor manufactured by Motorola, such as the
`680X0 processor or a microprocessor manufactured by Intel,
`such as the 80X86, or Pentium processor. HoWever, any
`other suitable microprocessor or microcomputer may be
`utiliZed. Main memory 115 is comprised of dynamic random
`access memory (DRAM). Video memory 114 is a dual
`ported video random access memory. One port of the video
`memory 114 is coupled to video ampli?er 116. The video
`ampli?er 116 is used to drive the cathode ray tube (CRT)
`raster monitor 117. Video ampli?er 116 is Well knoWn in the
`art and may be implemented by any suitable apparatus. This
`circuitry converts pixel data stored in video memory 114 to
`a raster signal suitable for use by monitor 117. Monitor 117
`is a type of monitor suitable for displaying graphic images.
`Computer 100 may also include a communication inter
`face 120 coupled to bus 118. Communication interface 120
`provides a tWo-Way data communication coupling via a
`netWork link 121 to a local netWork 122. For example, if
`communication interface 120 is an integrated services digital
`netWork (ISDN) card or a modem, communication interface
`120 provides a data communication connection to the cor
`responding type of telephone line, Which comprises part of
`netWork link 121. If communication interface 120 is a local
`area netWork (LAN) card, communication interface 120
`provides a data communication connection via netWork link
`121 to a compatible LAN. Wireless links are also possible.
`In any such implementation, communication interface 120
`sends and receives electrical, electromagnetic or optical
`signals Which carry digital data streams representing various
`types of information.
`NetWork link 121 typically provides data communication
`through one or more netWorks to other data devices. For
`example, netWork link 121 may provide a connection
`through local netWork 122 to local server computer 123 or
`to data equipment operated by an Internet Service Provider
`(ISP) 124. ISP 124 in turn provides data communication
`services through the World Wide packet data communication
`netWork noW commonly referred to as the “Internet” 125.
`Local netWork 122 and Internet 125 both use electrical,
`electromagnetic or optical signals Which carry digital data
`streams. The signals through the various netWorks and the
`signals on netWork link 121 and through communication
`interface 120, Which carry the digital data to and from
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`computer 100, are exemplary forms of carrier Waves trans
`porting the information.
`Computer 100 can send messages and receive data,
`including program code, through the netWork(s), netWork
`link 121, and communication interface 120. In the Internet
`example, remote server computer 126 might transmit a
`requested code for an application program through Internet
`125, ISP 124, local netWork 122 and communication inter
`face 120. In accord With the invention, one such application
`is that of remotely con?guring a computer.
`The received code may be executed by processor 113 as
`it is received, and/or stored in mass storage 112, or other
`non-volatile storage for later execution. In this manner,
`computer 100 may obtain application code in the form of a
`carrier Wave.
`Application code may be embodied in any form of
`computer program product. A computer program product
`comprises a medium con?gured to store or transport com
`puter readable code, or in Which computer readable code
`may be embedded. Some examples of computer program
`products are CD-ROM disks, ROM cards, ?oppy disks,
`magnetic tapes, computer hard drives, servers on a netWork,
`and carrier Waves.
`The computer systems described above are for purposes
`of example only. An embodiment of the invention may be
`implemented in any type of computer system or program
`ming or processing environment.
`UtiliZation of Computer SoftWare
`As indicated in the background, control panels may
`contain multiple related functions and data structures. To
`encapsulate these related functions and data structures, one
`embodiment of the invention utiliZes a standard object
`oriented programming (OOP) language approach. To pro
`vide an understanding of encapsulation of related data
`structures and methods, an overvieW of object-oriented
`programming is provided beloW.
`Object-Oriented Programming
`Object-oriented programming is a method of creating
`computer programs by combining certain fundamental
`building blocks, and creating relationships among and
`betWeen the building blocks. The building blocks in object
`oriented programming systems are called “objects.” An
`object is a programming unit that groups together a data
`structure (one or more instance variables) and the operations
`(methods) that can use or affect that data. Thus, an object
`consists of data and one or more operations or procedures
`that can be performed on that data. The joining of data and
`operations into a unitary building block is called “encapsu
`lation.”
`An object can be instructed to perform one of its methods
`When it receives a “message.” A message is a command or
`instruction sent to the object to execute a certain method. A
`message consists of a method selection (e.g., method name)
`and a plurality of arguments. A message tells the receiving
`object What operations to perform.
`One advantage of obj ect-oriented programming is the Way
`in Which methods are invoked. When a message is sent to an
`object, it is not necessary for the message to instruct the
`object hoW to perform a certain method. It is only necessary
`to request that the object execute the method. This greatly
`simpli?es program development.
`Object-oriented programming languages are predomi
`nantly based on a “class” scheme. The class-based object
`oriented programming scheme is generally described in
`Lieberman, “Using Prototypical Objects to Implement
`Shared Behavior in Object-Oriented Systems,” OOPSLA 86
`Proceedings, September 1986, pp. 214—223.
`
`015
`
`ServiceNow, Inc.'s Exhibit 1006
`
`

`

`US 6,256,635 B1
`
`7
`Aclass de?nes a type of object that typically includes both
`variables and methods for the class. An object class is used
`to create a particular instance of an object. An instance of an
`object class includes the variables and methods de?ned for
`the class. Multiple instances of the same class can be created
`from an object class. Each instance that is created from the
`object class is said to be of the same type or class.
`To illustrate, an employee object class can include “name”
`and “salary” instance variables and a “setisalary” method.
`Instances of the employee object class can be created, or
`instantiated for each employee in an organization. Each
`object instance is said to be of type “employee.” Each
`employee object instance includes “name” and “salary”
`instance variables and the “setisalary” method. The values
`associated With the “name” and “salary” variables in each
`employee object instance contain the name and salary of an
`employee in the organization. A message can be sent to an
`employee’s employee object instance to invoke the “seti
`salary” method to modify the employee’s salary (i.e., the
`value associated With the “salary” variable in the employee’s
`employee object).
`A hierarchy of classes can be de?ned such that an object
`class de?nition has one or more subclasses. A subclass
`inherits its parent’s (and grandparent’s etc.) de?nition. Each
`subclass in the hierarchy may add to or modify the behavior
`speci?ed by its parent class. Some object-oriented program
`ming languages support multiple inheritance Where a sub
`class may inherit a class de?nition from more than one
`parent class. Other programming languages support only
`single inheritance, Where a subclass is limited to inheriting
`the class de?nition of only one parent class.
`An object is a generic term that is used in the object
`oriented programming environment to refer to a module that
`contains related code and variables. A softWare application
`can be Written using an object-oriented programming lan
`guage Whereby the program’s functionality is implemented
`using objects. The encapsulation provided by objects in an
`object-oriented programming environment may be eXtended
`to the notion of control panels and representations of the
`control panel con?gurations stored in a database.
`Embodiment of SoftWare Apparatus for Con?guring a Com
`puter
`One embodiment of the invention provides for the ability
`to easily and remotely con?gure a computer for netWork
`accessibility. The multiple control panels that are used in the
`prior art to properly con?gure a computer are consolidated
`into one Network Control Panel that alloWs the con?gura
`tion of the various protocols that the computer operating
`system supports. To provide for one Network Control Panel,
`the present invention implements several unique features.
`One embodiment of the invention provides for a central
`iZed database that remains persistent on the computer that
`consists of the collected data relating to available con?gu
`ration settings. This database is not limited to con?guration
`information and can be used as a general database contain
`ing information the user desires to store. The database may
`be accessed by an administrator desiring to con?gure any
`computer.
`The consolidated database provides advantages and fea
`tures not available in the prior art. Some of these advantages
`include: (1) A combined uniform database containing a
`collection of the incompatible ?le formats for the individual
`con?gurations; (2) The database may be vieWed and read by
`multiple readers and may be modi?ed by one user or Writer
`concurrently (the embodiment provides protection for the
`readers When the database is modi?ed by a Writer); (3) The
`database maintains crash protection; (4) The database is
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`capable of receiving remote commands or remote scripting;
`(5) The database maintains ba

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket