`Stone
`
`[i9]
`
`[54] AUTOMATION AND DIAI TIME CHECKING
`OF SYSTEM CONFIGURATION FOR
`INTERNET
`
`P5]
`
`Inventor:
`
`Jeremy Daniel Stone. Bellevue. Wash.
`
`[73] Assignee. Microsoft Corporation, Redmon/L
`Wash.
`
`[52] U.S.Cl.. 395/2008
`
`[21] AppL Noz 634@89
`[22] Filed:
`Apr. 18, 1996
`Int. CL ...................................................... G06F 17/00
`
`[51]
`
`[58] Fitdd of Search ............................ 395/200.5, 200.59.
`395/200.56, 200.34. 200.35. 186. 187.01.
`608
`
`[56]
`
`References Cited
`
`U.S. PATENT D~S
`
`4,104,7188/1978 Publan et sL .....
`5243496
`9/1993 Pou et aL .........
`7/1996 Hensopn et sl...
`5337,645
`9/1996 Heath et st...,...
`5453239
`5377209 1 I/1996 Boyle et al.......
`Primary Exam/ner—Ellis B, Ramirez
`
`....... 395/60$
`...... 370/94. 1
`.. 395/200.59
`.. 395/200 59
`.. 395/187.01
`
`lllllnllllllllllllllllllllllllllHlllllllllllllllIIIIIIIIIIIIIIIIIIIIIIII
`US005784555A
`[11] Patent Number:
`[45] Date of Patent:
`
`5s784$55
`Jul. 21, 1998
`
`Attorney, Agent, or Firm—Klarquist Sparkman Campbell
`Leigh 81 Whinston
`
`ABSTRACT
`
`Networking software is configured for connecting to the
`Internet with a set-up automation software without disturb-
`ing the networkiog software's coafiguration for connecting
`to another computer network. such as a corporate local area
`network. Where instafiing the TCP/IP network protocol for
`communicaling on the Internet also causes binding to a
`device configured for connecting to the other computer
`aetwork. the set-up automation software records whether the
`TCP/IP network protocol was previously bound to that
`device and unbinds the TCP/lp network protocol from the
`device after installing the TCP/IP network protocol if not
`previously bound to the device. The set-up automation
`software also unbinds file and printer sharing services fiom
`a device used for connecting to the Internet. Where a dial-up
`device is used for connecting to the Internet, a dial-time
`security check and configuration check software verifies that
`the network software is correctly and securely configured for
`connecting to the Internet. The dial-time check software
`warns the user and Isirrects the configuration if the configu-
`ration is incorrect or insecure.
`22 Claims, n Drawing Sheets
`
`BE IN C NFIGURE
`INrERNET DEVICE 10
`
`70
`
`ENDCOI'FIGURE
`
`Google Exhibit 1052
`Google v. VirtaMove
`
`
`
`U.S. Patent
`
`Jul. 21, 199S
`
`Sheet 1 of 11
`
`5,784,555
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jul. 21, 1998
`Jul. 21, 1998
`
`Sheet 2 of 11
`Sheet 2 of 11
`
`5,784,555
`5,7S4,555
`
`FIG. 2
`
`50
` NETWORK
`
`
`APPLICATION
`
`52
`(INTERNET
`BROWSER)
`
`
`
`NETWORK PROGRAMMING INTERFACE
`
`
`(WINDOWS SOCKETS)
`
`
`
`
`NETWORK
`
`TCP/IP)
`(NETBEUI OR
`
`
`
`
`
`
`NETWORK
`PROTOCOL
`
`
`
`IPX/SPX)
`DRIVER
`
`
`
`DIAL-UP DEVICE
`
`
`
`
`
`NETWORK
`ADAPTER
`DRIVER
`
`
`
`
`
`
`NETWORK
`
`DIAL-UP DEVICE
`DEVICE
`
`(MODEM)
`
`
`
`(NETCARD)
`
`
`
`
`
`
`61
`
`65
`
`55
`55
`
`
`
`U.S. Patent
`
`Jul. 21, 1998
`
`Sheet 3 of 11
`
`5,7S4,555
`
`52
`
`150
`
`TO INTERNET
`
`
`
`U.S. Patent
`
`Jul. 21, 1998
`
`Sbeet 4 of 11
`
`5,7S4,555
`
`BEGIN CONFIGURE
`INTERNET DEVICE (ID
`
`YES
`
`DRIVER FOR
`"ID" INSTALLED?
`
`UNBIND NON-TCP/IP
`PROTOCOL(S) FROM "ID
`
`72
`
`NO
`
`75
`
`INSTALL INTERNET DEVICE
`DRIVER
`
`NON-TCP/IP
`PROTOCOL(S) BOUND
`TO "ID"?
`
`NO
`
`77
`
`TCP/IP
`BOUND TO "ID"?
`
`NO
`
`YES
`
`DETECT AND RECORD
`WHETHER TCP/IP BOUND TO
`EXISTING NETWORK DEVICE
`(ND)
`
`INSTALL TCP/IP
`
`79
`
`TCP/IP
`PREVIOUSLY BOUND
`TO "ND"?
`
`NO
`UN 8 IND TC P/IP F ROM "ND"
`
`UNBIND FILE AND PRINTER
`SHARING FROM "ID"
`
`81
`
`80
`
`82
`
`FILE AND
`PRINTER SHARING
`ENABLED?
`
`NO
`
`END CONFIGURE
`
`
`
`U.S. Patent
`
`Jul. 21, 1998
`Jul. 21, 1998
`
`Sheet 5 of 11
`Sbeet 5 of 11
`
`5,7S4,555
`5,784,555
`
`FIG. 5
`
`90
`90
`
`
`
`92
`
`NO
`
`
`FILE AND
`PRINTER SHARING (FPS)
`ENABLED?
`
`
`
` FPS
`BOUND TO TCP/IP
`
`\ BEGIN SECURITYCHECK
`
`
`
`
`OF "ID"?
`
`
`YES
`
`
`
`POST SECURITY WARNING
`
`
`DIALOG BOX
` CHOOSES TO DISABLE
`CHECK
`
`
`UNBIND FPS FROM TCP/IP OF
`"Ip"
`
`END SECURITY
`
`
`
`U.S. Patent (‘pepusuwosdal
`
`
`
`
`
`0}UONDSULOSdi/dOLey}UOBuueysJejUUdpueayyajqesip0}SMOPUIAAa>I|NOAPINOAA
`
`
`
`
`
`QU}SS9DDE0}BSN|jIMNOAUO!JOBUUODdI/dD194}UOBuluunssiBueUsJajyuUdpueayi4
`
`
`
`
`‘S9|lJINOASsed0e0}B]qeaqJYUBIWJOUIO}U]9}UOSYaSNJEUIO‘JeuUJEzU|
`
`
`
`U.S. Patent
`
`CD
`
`ool9DIA
`
`
`
`
`
`Jul 21, 1998
`Jul. 21, 1998
`
`Sheet 6 of 11
`Sheet 6 of 11
`
`5,7S4,555
`5,784,555
`
`AjyBipy)gJeusayUyau}
`
`GYVZIMdNlasLANYSLNI
`
`
`
`U.S. Patent
`
`Jul. 21, 1998
`
`Sbeet 7 of 11
`
`5,7S4,555
`
`BEGIN CONFIGURATION
`CHECK
`
`112
`
`NO
`
`113
`
`114
`
`NO
`
`115
`
`DIAL-UP
`ADAPTER
`INSTALLED?
`
`YES
`
`DIAL-UP
`NETWORKING
`INSTALLED'
`
`YES
`
`TC P/IP
`INSTALLED?
`
`YES
`
`TOP/IP
`BOUND TO DIAL-UP
`ADAPTER?
`
`YES
`
`131
`
`116
`
`POST CONFIGURATION
`WARNING DIALOG BOX
`
`130
`
`USER
`CHOOSES TO
`CORRECT?
`
`YES
`
`132
`
`INSTALL DIAL-UP
`NETWORKING
`
`DIAL-UP
`NETWORKING
`INSTALLED?
`
`YES
`
`DO CONFIGURE INTERNET
`DEVICE (FIG. 4)
`
`133
`
`OTHER
`NETWORK DRIVERS
`PRESENT?
`
`UNBIND NON-TCP/IP
`DEFAULT NETWORK
`PROTOCOLS
`
`YES
`
`END CONFIGURATION
`CHECK
`
`
`
`U.S. Patent
`
`Juh 21, 1998
`Jul. 21, 1998
`
`Sheet 8 of 11
`Sheet 8 of 11
`
`5,784,555
`5,7S4,555
`
`U.S. Patent GZL.
`8ZlOcLQ‘OY
`
`
`
`
`0}SMOPUIAA21NOApino~AyEUJd}U]BY}SSedde0}dnjesAjeuUaJouSIWassINO)
`vZlecl
`
`
`
`éMouNOAJO}dn3!jes
`
`
`
`
`
`QHVZIMdN.LlasLANYALNI
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jul. 21, 1998
`Jul. 21, 1998
`
`Sheet 9 of 11
`Sheet 9 of 11
`
`5,784,555
`5,784,555
`
`TAONVD<LX3NMOVE>
`
`cleLL?Old
`
`
`
`‘diSH41/9‘pseZIAASy}0}@plAoud0}
`
`d1AH
`
`‘POMOU}JOAO
`
`90¢uednodShemJUaJayIpjnogeUOIVEWJOJUIG0104
`
`
`
`
`LANYALNI
`
`
`
`
`POsU|/IMNOAUOHEWOJU!OU}PUe‘JaUsa}U]9U}0}JOOUUOD
`
`JEUOHeUUOJUIpueajdoed0}sseodenodBuini6‘yeuseyu}
`
`QU}0}JOOUUOD0}Ja}NAWODINOAdryas{IMPIEZIAASIUL
`
`
`
`jUNJaSJOUJA}U]0}BWUIODI9AA
`
`
`
`QYVZIMdNLAS
`
`6DIA
`
`002
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jul. 21, 1998
`Jul. 21, 1998
`
`Sheet 10 of 11
`Sheet 10 of 11
`
`5,784,555
`5,784,555
`
`TAOINVOD
`
`clebbeOZ
`
`Sl2—
`
`
`
`
`
`
`BulyeipJayeMOPUIMJeUILUIE}dnBug
`
`
`
`INOA0}YOSUUOD0}JeIPNOAJaquinueuoYdou}Je}UW
`
`
`
`
`
`
`
`plzserr-egs]--[_90z|
`
`
`
`‘JOQUINUauoUdeE;e|‘@poodBaly
`
`
`
`(,)eoeUlyJosaje}Spaylun
`
`
`
`“apooAyyunoy
`
`
`
`
`
`JOPIAOSOIAISSJOUIO]U]
`
`
`
`Jaquinyeuoud
`
`
`
`
`
`QYVZIMdNLASLANYSLNI
`
`OlDI
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jul. 21, 199S
`
`Sheet 11 of 11
`
`5,7S4,555
`
`CI
`
`CV
`
`M
`
`o
`
`
`
`5,784,555
`
`1
`AUTOMATION AND DIAI TLME CHECKING
`OF SYSTEM CONFIGURATION FOR
`INTERNET
`
`FIELD OF THE INVENTION
`This invention relates to configuring a computer system
`for accessing the Internet. and more particularly relates to
`aids for correctly contiguring computers to aocess the Inter-
`ne(.
`
`10
`
`BACKGROUND AND SUMMARY OF THE
`INVENTION
`Due to the iacreasing complexity and sophistication of
`software application programs, there has been a need for
`tools and procedures that automate performing specialized 15
`tasks in these applications. Automation of specialized tasks
`that are fiequently repeated (e.g., sewing up a document to
`have a particular format such as a legal brief in a word
`processing application or a financial report in a spreadsheet
`application) is particularly beneficiaL Interface programs.
`known as "Wizards." which control an application program
`to perform specialized tasks according to user selected
`options are described ia U.S. Pat. No. 5301326 to Linnett
`et al., and now included with ruany of Microsoft Corpora-
`tion 's application prograiiis.
`Another difiicult task for computer users is that of prop-
`erly configuring or seiting up application and operating
`system software for connecting to a computer network such
`as the Internet. Such configuring involves many variables sp
`that depead on the particular coruputer system snd the
`connection to be used for computer network access. A large
`proportion of computer users, however, is unfamiliar with
`computer networking, and also with the details of their own
`computer system and aetwork access connection. A large
`number of computer users therefore lack the necessary
`knowledge to successfully configure their systems for net-
`work conununication on their own.
`Further. even where the computer user has the necessary
`knowledge. the task of configuring a computer for connect-
`ing to the Internet can still be burdensome. For example,
`experieaced computer system administrators generally have
`many individual computers to configure and maintain. Each
`computer takes time to configure. and may require config-
`uring differently.
`In pmticular, there are a number of problems that make
`correctly configuring oomputers for access to the Internet
`dilficult. First. some configuration operations can affetz the
`configurations of a computer's other network connections.
`For example, setting up network protocols for an Internet so
`connection in Microsoft Corporation' Windows operating
`system can affect the configurations of other network con-
`nections, Although most home computers have no other
`network connections, many computers in businesses are
`connected to other networks. such as a private corporate ss
`computer network. These other network connections often
`require different coafigurafions than the computer's connec-
`tioa to the Internet. So. modifying the coafigurations of
`these other network connections when configuriag the Inter-
`act connection can adversely affect their performance. or so
`cause them to be inoperative.
`Second, some network configurations settings can be a
`security coacern for an Internet connection. For example.
`enabling file and printer sharing allows files stored at a
`computer (e.g.. on its hard disk) to be accessed from a ss
`network by another computer. On a corporate network or
`other private computer network. this configuration setting
`
`so
`
`45
`
`allows cofiaborafion between computer users working as a
`group with a set of files and to share a common printer.
`However, an Internet connection with this configuratioa
`setting can expose the computer's files and printer to access
`by unknown others while the computer is actively connected
`to the Internet.
`In addition to the problems associated with initially
`configuring a computer's connection to the Internet. the
`configuration can be inadvtxtently or unknowingly changed
`by the user. Such configuration changes can render the
`connection inoperative or compromise the computer's secu-
`rity. Ofien. the user becomes very confused and frustrated
`when the computer then fails to connect to the Internet. and
`only a cryptic error message results from the attempt.
`The present invention is an automated process and system
`for configuring a computer to connect to the Internet. In one
`embodiment of the invention, the automated process and
`system performs an initial configuration of a computer's
`connection to the Internet. The automated process and
`system prompts the user to input information needed in
`configuring the computer. then proceeds to coruplete setting
`the configuration according to the information provided.
`Since the automated process and system completes the
`settings. the user is relieved f'rom having to manually set a
`myriad of configuration settings and from evea having to
`know any details of which settings are made to correctly
`configure the Internet connection. In the most common case
`where the Internet connection is a dial-up modem connec-
`tion to an Internet access server of an Internet service
`the information provided by the user defines
`provider.
`communications parameters of the Internet access server
`which are obtained by the user directly from the Internet
`service provider. The user then simply enters the corrunu-
`nications parameters without having to know their signifi-
`cance. Thus. the user caa cordigure an Internet connection
`using the automated process and system without having to
`configure settiags manually or even know which settings to
`make. Novice and experienced users alike can easily con-
`time using the
`figure an Internet connection in a short
`invention.
`According to a further aspect of the invention. the auto-
`mated process and system configures an Internet connection
`without disturbing configurations of aay existing connec-
`tions to other networks (e.g., a corporate network). For
`configuring operations which affect other existing configu-
`rations (e.g.. binding communications protocols to the
`connection). the automated process and system records the
`original configuration of the other network conaections and
`restores the original oonfiguration after the configuring
`operation.
`According to yet another aspect of the invention,
`ihe
`automated process and system performs security checks to
`ensure that the Internet connection configuration does not
`In the illustrated
`pose an inadvertent security risk.
`the automated process and system checks
`embodiment.
`whether file and printer sharing is enabled for the Internet
`connection. If so. the automated process and system warns
`the user of the security risk aad prompts the user whether to
`disable file and printer sharing. The invention thus protects
`the user from unknowiagly setting risky configurations of
`the Internet conneMon.
`In another embodiment of the invention. the autoruated
`process and system checks and corrects the configuration of
`the computer's connection to the Internet at time of use. e.g.,
`time for a dial-up connection to the Internet.
`at dial
`Preferably. the automated process and system checks both
`
`
`
`5,784,555
`
`3
`that the Internet connection has an operative configuration
`and also that the configuration does not pose a security risk.
`Thus. if the user inadvertently changes configuration set-
`tings that afiect the configuration of the Internet connection
`(such as by inadvertently removing a needed communica-
`tions protocol or setting file and priater sharing), the auto-
`mated process and system corrects the configuration at the
`time of use to prevent failure of the Internet connection or
`unknown risk to security. Accordiagly. connecting to the
`Internet is made safer and more robust. As a result. computer
`support costs to individuals and corporations are reduced.
`Additional features and advantages of the invention will
`be made apparent from the following detailed description of
`an illustrated embodiment which proceeds with reference to
`the accompanying drawings.
`
`BRIEF DESCRIPITON OF THE DRAWINGS
`FIG. I is a block diagram of a computer system that may
`be used to imp)ament a method and apparatus embodying
`the invention for automated and dial-time Internet config-
`urmg.
`FIG. 2 is a block diagram of one example of a possible
`network software configuration including a dial-up TCP/IP
`connection to the Internet and an existing network connec-
`tion within a computer system such as shown in FIG. 1.
`FIG. 3 is a block diagraru of an Internet set-up
`automation. dial-time security checker and dial-time con-
`figuration checker for configuring the network software of
`FIG. 2.
`FIG. 4 is a flow diagram of set-up process according to the
`illustrated embodimeat of the invention for configuring a
`connection such as shown in FIG. 2.
`FIG. 5 is a fiow diagram of a dial time security check
`method according to the illustrated embodiment of the
`invention for a connection to the Internet such as shown in
`FIG. 2.
`HG. 6 is a view of a dialog box with controls to confirm
`disabling file aad printer sharing on the connection in the
`dial time security check method of HG. 4.
`FIG. 7 is a fiow diagram of a dial time configuration check
`method according to the illustrated embodiment of the
`invention for a coanection to the Internet such as shown in
`FIG. 2.
`FIG. 8 is a view of a dialog box with controls to confirm
`disabling file and printer sharing on the connection in the
`dial tune security check method of FIG. 6.
`FIGS. 9—11 are views of a sequence of dialogs for the
`Internet set-up automation of HG. 3.
`
`DEI'AILED DESCRIPTION OF THE
`ILLUSHVZED EMBODIMENTS
`With reference to FIG. 1. an operatiag environment for an
`illustrated embodimeat of the present invention is a com-
`puter system 20 with a computer 22 that comprises at least
`one high speed prooessing unit (CPU) 24, ia conjunction
`withe memory system 26, an input device 28. and an output
`device 30. These elements are interconnected by at least one
`bus suucture 32.
`The illustrated CPU 24 is of famiTiar design and includes
`an ALU 34 for perfonuing computations. a collection of
`registers 36 for temporary storage of data and instructions,
`and a control unit 38 for conuolling operation of the system
`20, The CPU 24 may be a processor haviag any of a variety
`of architectures iacluding Alpha from Digital. MIPS from
`
`MIPS Technology, NEC. IDT. Siemens. and others. x86
`from Intel and others. induding Cyrix. AMD. and Nexgen.
`and the PowerPc from IBM and Motorola.
`The memory system 26 generally includes high-speed
`main memory 40 in the form of a medium such as random
`access memory (RAM) and read only memory (ROM)
`semiconductor devices. and secondary storage 42 in the
`form of long term storage mediums such as floppy disks.
`hard disks, tape, CD-ROM, fiash memory. etc. and other
`«devices that stare data using electricaL magnetic. optical or
`other recording media. The main memory 40 also can
`include video display memory for displaying images
`through a display device. Those skilled in the art will
`recognize that the memory 26 can comprise a variety of
`is alternative components having a variety of storage capaci-
`ties.
`The input and output devices 28. 30 also are familiar. The
`input device 28 can comprise a keyboard. a mouse. a
`physical transducer (e.g., a microphone&. etc. The output
`zp device 30 can comprise a display. a printer. a transducer
`(e.g.. a speaker). etc. Some devices. such as a network
`interface or a modem can be used as input and/or output
`devices.
`As is familiar to those skilled in the art. the computer
`zs system 20 further includes an operating system and at least
`oae application program The operating system is the set of
`software which controls the computer system*s operation
`and the allocation of resources. The application program is
`the set of software that performs a task desired by the user,
`so using computer resources made available through the oper-
`ating system Both are resident in the illustrated memory
`system 26.
`In accordance with the practices of persons skilled in the
`invention is
`art of computer programming,
`the present
`ss described below with reference to acts and symbolic repre-
`sentations of operations that are performed by computer
`system 20. unless indicated otherwise. Such acts and opera-
`tions are sometimes referred to as being computer-executed.
`It will be appreciated that the acts and symbolically repre-
`so sented operations include the manipulation by the CPU 24 of
`electrical signals representing data bits which causes a
`resulting transformatioa or reductioa of the electrical signal
`representation. and the maintenance of data bits at memory
`locations in memory system 26 to thereby reconfigure or
`ss otherwise alter the computer system's operation. as well as
`other processing of signals. The memory locations where
`data bits are maintained arc physical locations that have
`particular elecuicaL magnetic. or optical properties cone-
`spondiag to the data bits.
`so Network Software Architecture
`With reference to HG. 2. an example network software
`configuration 50 for illustrating the inventioa utilizes a
`network software architecture which provides support for
`networking in the computer system 20 (FIG. 2). In thc
`ss ifiustrated embodiment of the invention, the network soft-
`ware architecture is that of the Windows 95 operating
`system. which is described in Inside Windows 95. by Adrian
`King. Microsoft Press. 1994. among other references. The
`network software architecture preferably has a layered
`so structure, that separates networking operations and function-
`ality into distinct modules organized in layers. The layered
`structure allows a network application 52 (such as an
`Internet browser application for interactively viewing infor-
`mation fmm the Internet) at a top layer of the architecture to
`ss communicate over a computer network(such as the Internet)
`via a network hardware device 54-55 at a bottom layer of
`the architecture without having to itself implement the
`
`
`
`5.784.555
`
`io
`
`30
`
`3
`
`various networking operations and functionality provided in
`the intervening layers.
`The illustrated network software configuration 50 sup-
`ports networking with two separate network devices 54—55.
`Network devices generally are of two types, dial-up con-
`nection network devices and dedicated connection network
`devices. Dial-up devices, such as modems. connon to a
`remote computer or network by dialing on the public tele-
`phoae system or like switched conuuunications network.
`Dedicated connection network devices. such as network ic
`adapter cards for Ethernet local area networks (LANs). are
`directly wired to other computers iu a network The illus-
`trated configuration 50 of the network software architecture
`includes both a dial-up connection network device 54 (e.g..
`a modem) and a dedicated connection network device 55 is
`(e.g.. au Ethernet LAN aetwork adapter card). Such con-
`figuration 50 is conunonly used in corporate computing
`environments where the dedicated connection network
`device connects the computer with a private corporate
`network and the dial-up network device is used for connect-
`ing to the Internet. As compared to an alternative configu-
`ration in which the corporate network includes a remote
`communications server and the computer connects to both
`the corporate network and the Internet using a single dedi-
`cated connection network device, ihe configuration 50 with 23
`a separate dial-up connection device for connecting to the
`Internet helps avoid the security risk of exposing the cor-
`porate network from access by unknown others on the
`Internet and avoids consuming corporate network band-
`width for Internet communications.
`The network application 52 is an application software
`program which communicates on the Internet or other
`computer network. The illustrated network. application 52
`preferably is an Internet browser application with which a
`user of the computer system 20 (FIG. 2)
`interactively 33
`accesses and views information from the Internet. Many
`other network applications 52 also can use the illusnated
`configuration 50 including. but not limited to. electronic
`mail and/or news readers. multi-media references and
`games. tax preparation software. on-line shopping software. so
`etc. which access. update information fiom. or post infor-
`matioa to the Internee Likewise. the illustrated configuration
`50 also afiows software applications to communicate over a
`local aetwork (e.g., a corporate LAN) connected to the
`dedicated coanection network device 55.
`The intermediate layers above the network devices 54—55
`each provide a packaged set of functions which abstract
`network communications at decreasing levels of hardware
`and network specificity for the next higher layer. These
`intermediate layers in the illustrated configuration 50 so
`include a network progranuning interface 58. network pro-
`tocols 60-61, and network adapter drivers 64-65. For
`expository convenience. FIG. 2 is a top level view of the
`network software architecture used in the configuration 50.
`While each of the layers is shown as a separate component, ss
`each layer can itself be implemented as mare than one
`separate component or layer.
`The network programming interface 58 is the next highest
`layer under the network application 52. The network appli-
`cation 52 communicates on the Internet or local network by sc
`calling application programming interfaces (APIs) of func-
`tions in a network progranuuing interface 5$. The illustrated
`network programming interface 5$ is a Windows sockets
`networking programming interface. The Windows sockets
`5$ comprises a facility or set of services for inter-process ss
`communications. e.g., commuaications over the Internet or
`other network between a process (such as one associated
`
`43
`
`with the network application 52) on the computer system 20
`(FIG. I) and a process executing on a remote computer.
`These services are implemented as a set of functions which
`are callable from a network application 52 using associated
`application programming interfaces (APIs). The functions
`are included in a dynamic link library file called
`WSOCIO2.DLL. Dynamic link library files provide func-
`tion libraries that applications caa link to and call using
`regular function calls. Alternatively. the network program-
`ining interface 58 can be implemented using other file names
`and types.
`in turn. relies on network
`The Windows sockets 58,
`operations and functionality implemented in lower layers of
`the network software architecture. At the layer under the
`Windows sockets 58. the network protocols 60 61 comprise
`one or more protocol drivers that irnplernent a set of func-
`tions which abstract communicating according to estab-
`lished networking protocols for the Windows sockets 52.
`Network protocols are a set of rules and a prearranged data
`format defining how two computers communicate on a
`network. Computers connected to the Internet typically use
`the Transmission Control Protocol (TCP) and the Internet
`(IP) protocol suite to communicate. Corporate
`Protocol
`often use the NetBIOS Extended User Interface (NEfBEUI)
`of Microsoft Coqioration or Novell's IPX/SPX protocOI.
`TCP/IP is a layered set of protocols which conceptually is
`stacked vertically into layers. TCP is a nansport layer that
`defines data flow. acknowledges data. aad retransmits lost or
`damaged data. However. the User Datagram Protocol (UDP)
`is also conunonly used as a transport layer in place of TCP.
`IP is a network layer that defines the format of data. and the
`basic unit of data transfer. TCP/IP provides a reliable.
`byte-stream-oriented virtual circuit for data n'ansfer and is
`well known in the art. There are also application protocols
`in the Internet protocol suite including File Transfer Protocol
`(FIP), Simple Mail Transfer Protocol (SMTP), Hyper Text
`Transfer Protocol (HITP). Gopher. etc. which use TCP/IP to
`pass data across the Internet.
`As TCP/IP is the default transport/network protocol suite
`for communications with coruputers on the Internet.
`the
`aetwork protocol 60 configured for the dial-up device 54
`used for Internet connection preferably is the TCP/IP
`protocoL although other network protocols used for com-
`munications on the Internet alternatively can be used for the
`aetwork protocol 60. For example. UDP/IP can be used to
`provide an unreliable (i.e.. no guaranteed delivery of data
`packets) byte-stream-orientated, connectionless (i.e.. no vir-
`tual circuit) transport/network protocol suite for data trans-
`fer. On the other hand. the network protocol 61 configured
`for the network device connecting to the local network can
`be any of various network protocols including, but not
`limited to, the NetBIOS Extended User Interface(NetBEUI).
`Internet Packet Exchange/Sequenced Packet Exchange
`(IPX/SPX). DECnet by Digital Equipment Corporation,
`NetBIOS by Microsoft Corporation. and OSI/TP-4.
`The network adapter drivers 64-65 coatrol the network
`devices 54-55, respectively. (The term driver commonly is
`used to refer to a software coinponeat that interfaces with
`hardware.) The network adapter driver 64 configured for the
`dial-up device 54 comprises one or more drivers that imple-
`ment functions for connecfion protocols and for directly
`controlling the operation of the dial-up device 64 (e.g..
`modem). The aetwork adapter driver 64 preferably uses the
`Point-to-Point Protoool (PPP) to coanect to the Internet host
`with the modem. The Serial Line Protocol (SLIP) alterna-
`tively caa be used. SLIP and PPP afiow two computers to
`communicate using TCP/IP over a standard modem and
`
`
`
`5,784,555
`
`telephone line dial-up coanection. and typicaUy provide full
`access to the set of available Internet protocols and services.
`The network adapter driver 65 configured for the network
`device 55 coanecting to the local network directly controls
`operation of the device 55,
`Each of the blacks in FI. 2 except for the devices 54-55
`is typically implemented as a module of code for a set of
`related functions.
`In the foflowiag discussion. the term "binding" generally
`refers to linking together software components (e.g.. the
`network protocols 60-61 with the network device drivers
`the componcats can interface and
`64-65) so that
`interoperate, such as by creating a reference for one com-
`ponent to the other in a system registry or the like as
`described below. The term "unbinding" generally refers to
`removing the link. such as by deleting the reference.
`Configuration and Security Automation
`Refemng now to FIG. 3, in the illustrated embodiment of
`the invention. the network software configuration 50 (FIG.
`2) is initially coafigured by an Internet set-up automation
`software 150. The network software configuration 50 also is
`checked and corrected if needed by a dial-time security
`checker 156 and a dial-time configuration checker 158. each
`time that a dialer 154 associated with the network software
`dials on lhe dial-up device 54 (FIG. 2) to connect to the
`Internet. The operation of the Internet set-up automation
`software 150. the dial-tine security checker 156 and the
`dial-time configuration checker 158 are next described with
`reference to the flow charts of FIGS. 4. 5 and 7. The Internet
`set-up automation software 150. dial-time securiiy checker
`156 and dial-time configuration checker 158 can be provided
`as components of the network applicatioa 52. components of
`the computer's operating system software. or as separate
`software compoaents.
`Internet Set-up Automation
`Referring aow to PIG. 4. an Internet set-up automation
`software 150 (FIG. 3) (also referred to as the"Internet Set-up
`Wizard") in the illustrated embodiment of the invention
`initially configures the network software configurafion 50 as
`shown in FIG. 2 according to a configure Internet device
`process 70 to provide a dial-up connection to the Internet for
`the network application 52 (FIG. 2). Although the process 70
`in the illustrated embodiment configures the network soft-
`ware for connecting to the Internet with a dial-up device 54
`(FIG. 2). alternative embodiments can configure the network
`software to connect to the Interact with a dedicated connec-
`tion network device.
`The Internet set-up automation software 150 generally is
`run when the network application 52 or any other network
`appiication that accesses the Internet is first instalied on the
`computer system 20 (FIG. I). The Internet set-up automa-
`tion software 150 can be run after the network software
`already bas baca configured for the network device 55
`(hereafter the "existing network device") which connects
`with another computer network. such as an internal corpo-
`rate local area network (LAN). According to the illustrated
`ennodiment of the invention, the process 70 configures the
`network software for the dial-up network device 54 (FIG. 2)
`so as to avoid disturbing an existing configuration of the
`network software for the existing network device 55.
`The Internet set-up automation software 150 generally has
`a two phase operation. In a first phase. the Internet set-up
`automation software 150 displays a sequence of dialogs
`200-202 (FIGS. 9-11) which comprise textual prompts
`206—208 that request certain configuration information l'rom
`the user and user interface controls 210-219 which the user
`manipulates using an input device 28 of the computer
`
`13
`
`system 20 (FIG. I) to input the configuration information,
`The configuratioa information includes various parameters
`defining the dial-up connection to be used for connecting to
`the Internet, such as a telephone number of an Internet
`access service provider's Iaternet server computer, and
`communications parameters of the server computer. In a
`second phase of operauon. the Internet set-up automation
`software 150 configures the network software for connecting
`to the Internet using the dialup device 54 according to the
`lp configuration information specified by the user. The Internet
`set-up automation software 150 performs the configure
`Internet device process 70 in this second phase so as to avoid
`disturbing the network software configuration for the exist-
`ing network device 55.
`In the Windows 95 operating system used in the illus-
`trated computer system 20 (FIG. I). Ihe network software is
`configured by installing software modules (e.g.. the network
`software oomponents such as the network pmgramming
`interface 58. the network protocols 60-61 and the network
`device drivers 64-65) into the secondary memory 42 (FIG.
`I) and setting entries in a system registry. The system
`registry is a database stored as a file in the secondary
`memory 42 and used in the Windows 95 operating system
`for storing hardware and software configuration informa-
`tion. The Windows 95 operating system includes functions
`accessed by caUs to a set of system application programming
`interfaces (APIs) which allow querying and deleting system
`registry entries, and installing the modules of the network
`software. The system APIs used by the Internet set-up
`automation so