Anda di halaman 1dari 14
02) G4) (75) 3) © en 2) @) co) 2) 8) United States Patent Steele et al. APPARATUS AND METHOD FOR COMMUNICATION BETWEEN MULTIPLE BROWSERS Inventors: Douglas W, Steele, Fort Collins; Todd M. Goin, Loveland; Craig W. Bryant, Fort Collins, all of CO (US) Assignee! ickard Company, Palo Alto, Notice: Subject to any disclaimer, the term of this patent is extended or adjusted under 35 USC. 154(b) by 0 days. This patent is subject to a terminal dis claimer. Appl. No. Filed: (09/840,260 Mar. 31, 2000 Related USS. Application Data Comtiniation of aplication No, (91061,360, fled on Ape 15, 1008, now Pat No. 6,055,081 Int. CY GOSE 13/00 US. Cl "709/219; 709/203; 709/223; 709/313 Field of Search 700/219, 709/203, 313, 6,314,458 BL *Nov. 6, 2001 USO06314458B1 US (20) Patent No.: (4s) Date of Patent: 656) References Cited USS. PATENT DOCUMENTS. 5.385.196 2/1995 Pajkot a. 345/320 Sio44,768 7/1997 Periwal et al Fo 102 5.758.355 5/1998 Buchanan 7077201 6,061,992 * 5/2000 Thomas et. 7077200 6141750 + 10/2000. Brady 713201 * cited by examiner Primary Examiner—Viet D. Vu 67) ABSTRACT ‘An apparatus and method for providing flexible communi ‘cations of data modification of Web resources between client browsers, where the Web resources are on a server. In particular the apparatus and method are accomplished by having aa application program ascertain if potentially sbared database data was updated. If potentially shared database data was updated, thea the application program establishes a connection to a security server and transmits a database change notice to the security server. The security server reccives the database change notice and checks its sign-on list of all the client browsers currenlly active and sends a database change notice to all client user interface browsers currently conaccted to the security server, All client user browsers, upon receiving a database change notice, display the database change notice or change data within the client user browser, thereby voiding the ullization of stale data- ‘base data in the client user browser. 14 Claims, 9 Drawing Sheets on fin 2 ial ati wy Sf ' EIoretmemce|| .~| [ERERAREOMmTED | [RIEATONeRooRAN wane Excreseever Ht efreceive aeauesr rom a 1 || MA CAL Tose Senor crow cuentusex | (°s|Receve pRocranane, || mel Inrenrace ano ARGUMENTS | Mumonizavion sox Twen [/ |rautnomtention 1s Ox DISPLAY DATA TO USER INVOKE REQUIRED THEN EXECUTE, H ae IRSPLIGATION PROGRAM ieauesteD procean_ |! Sarr Nonee Tero oureur tron sen sroour To ceswe |! : | [Sapettcation raecman APPLICATION ! 7 1 oor a 1 faa IrDaTaaase atais |! Len I CHANGED THEN 1 cue nT USER NTERFACE TRAYSERER Esrantisn a socxer 10 | (BROWSER) \ go,| THESECURMY SERVER |1 ESTABLISH LISTEN SocKET ZN SEND OnTABASE Receive patasase §=— ke | I CHANGE NOTICE TO THE Giandeworce [TN \Jreceve oxranase cuance Sei cemven NOTICE OW THE LISTEN ea Paes NY Sooner | JsenboaTasase cranse «2. 1/ | Norio ro mu tre cient SUE GER TERENCE Userinenraces (BROWSER) | | curmenrur connecreo | | Sone secure seven RECEIVE DATABASE 1 | were) me (Gunnge nonce 1 see U.S, Patent Nov. 6, 2001 Sheet 1 of 9 US 6,314,458 B1 FIG. 1 yl PC LAPTOP LAPTOP WORKSTATION UNIX WORKSTATION = 32 TCPIIP NETWORK pNP we; 31 SERVER PC UNIX WORKSTATION — WORKSTATION Sec (Con 33 WEB SERVER 35 US 6,314,458 BL Sheet 2 of 9 Nov. 6, 2001 U.S, Patent eS 7 : Sr wagon = OO000 Aviasia AL ly S39IA30 LNdNI ww } | i i & ‘BOVIUSINI W907 > Noluvorday | | vee wyasoud wOVvYOLS wOssa00ud or uasmoua — €$ YaOVNVW MOCNIM 2 WALSAS ONILVYadO 1S AMOWaW by é ‘Sid US 6,314,458 BL Sheet 3 of 9 Nov. 6, 2001 U.S, Patent Ww300W Oooo0o°d avidsia 29 ‘a | SNOW +49 C) 99 auvOsASy er ‘S39IAIG LNdNI > < 9 3OVUSINI WOOT (nia-199) Suenos Wvu90ud NOLLVOIMddy isvoagvous yaAwAS ALINNDaS oa oz Soeaora o9t (dtH) — NOILVorddv Y3ANaS €Z YSOVNVW MOGNIM C @Z_WALSAS ONILWY3dO 2 1Z_AMOWSN YOSS390Nd J 19 € ‘Sid R ~ 6 = = 4 US Sheet 4 of 9 Nov. 6, 2001 U.S, Patent asvaviva cS £8 4x3 YAAYSS ALIUNOAS SH OL SOLLON SONVHO. SSVaVLVG GNSS GNV USANSS ALIHNOSS SHL OL 134908 W HSI18V1S3 SI vLVvG aSvavLvd 41 NOLLWOMdd¥ YAAMAS OL LNOGLS GN3S WvuoOud dSLS3noay BLNO3X NSHL }O SI NOLLVZIOHLNY JI SINAWNOUV ONY “SIWWN Wy'd90Ud SAIO3Y (NIg-199) Wved0ud NOILVoNdd¥ 98 dOOT (2A1LOv) UYSANAS ALINNDAS SHL OL GALONNOO ATLNSNNND ‘Sa0V4NS1NI H3SN ANAIT0 3HL TV OL SOLLON BONVHO 3SveVvd ON3S 413y90S NASI SHL NO 3O1LON FONVHO 3SVEVLVG SAIZOSY 434008 N&LSIT HSIT8V1S3 UaAUSS ALTENOSS BOLLON SONVHO aSvav.LVd 3AI303Y (uasmoua) BOVIUSINI Y3sN ININO BOILON 3ONVHO SSVEVLVG 3AIZO3Y (wasmous) BOVSUSINI wasn INST 091 Y 29 dOOT WYe90Ud NOLLVOITIdd¥ WO¥S LNdLNO NYNLIY WVY¥9OUd NOILWOIddy GaYINDIY SHOANI N3HL 0 SI NOLLVZINOHLNV at BOVIUSLNI YASN LN3ITO WON SOINN3S Od LS3ND3Y FAISOFY (Gd LTH) NOILVOMddv USANSS | ! ! | ! | ! | 1 1 | | ! I N3HL G3ONVHO. | | | 1 | | | | | | | | I YaANSS I Sis ea5 eo EL VL 1 BOILON 3ONVHO SSVEVLVG SAIZOFY NM OL VLVG AVIdSIG 0. LAdLNO SAI3O3Y SOIYSS 4O4 NOLLVOIMdd USANTS OL TIVd SVN (yasmous) U.S, Patent Nov. 6, 2001 Sheet 5 of 9 FIG. 5 US 6,314,458 BL 101 INITIALIZE CLIENT BROWSER PROGRAM = }—7 ¥ 102 GET USER NAME AND PASSWORD FROM USER ( y ROUTINE INVOKE CLIENT BROWSER DATABASE UPDATE. 103 ( ¥ 3 g CLIENT BROWSER PROGRAM RECEIVES A |? REQUEST FOR SERVICE FROM THE USER t 105 BIND TO SERVER APPLICATION _/ (HTTP DAEMON) 4 106 FOR SERVICE MAKE CALL TO SERVER APPLICATION (HTTPD) 7 ¥ SUSPEND UNTIL RETURN OF DATA. | | RETURN OUTPUT TO USER |” 109 Loop U.S, Patent FIG. 6 Nov. 6, 2001 Sheet 6 of 9 IS CLIENT AUTHORIZATION OK? YES 4 BIND TO REQUESTED CGI-BIN (HTTPD) US 6,314,458 BL 121 INITIALIZE SERVER APPLICATION J (HTTPD) SYSTEM a 122 WAIT TO RECEIVE CLIENT 7 REQUEST FOR SERVICE 1 123 ae CHECK AUTHORIZATION —, 124 125 PROGRAM 7 INVOKE THE REQUESTED APPLICATION PROGRAM ¥ 126 SUSPEND UNTIL RETURN OF 7 STDOUT DATA y 127 RECEIVE STDOUT AND STDERR |____7 1 128 WRITE STDOUT TO CLIENT SToOUTL___” + 129 LOOP SERVER APPLICATION J U.S, Patent Nov. 6, 2001 Sheet 7 of 9 FIG. 7 [¢-NO: JNO. US 6,314,458 BL 141 INTIALIZE APPLICATION PROGRAM (CGIL-BIN) |__ ¥ 142 RECEIVE EXECUTE AND ENVIRNONMENT, ARGUMENTS |___ 143 IS AUTHORIZATION OK? YES + 144 EXECUTE REQUESTED SERVICE PROGRAM \ ¥ RECEIVE STDOUT AND STDERR SEND STDOUT TO SERVER APPLICATION 145 \ IS DATABASE DATA CHANGED? YES + 146 ESTABLISH A SOCKET TO THE SECURITY SERVER SEND DATABASE CHANGE NOTICE TO THE SECURITY SERVER 147 \ I 148 EXIT \ U.S, Patent Nov. 6, 2001 Sheet 8 of 9 US 6,314,458 B1 FIG. 8 161 INITIALIZE SECURITY SERVER WK 7 | 162 ESTABLISH A CGLBIN LISTEN SOCKET = }___-7 163 WAIT FOR CONNECTION (ON CGI-BIN LISTEN SOCKET) FROM CGI-BIN PROGRAM t—” ¥ RECEIVE DATABASE CHANGE NOTICE rot REQUEST FROM CGI-BIN PROGRAM ON CGI-BIN}__-7 SOCKET ¥ 165 INDENTIFY ALL CONNECTED (ACTIVE) CLIENT USER INTERFACES t+——” ¥ 166 SEND DATABASE CHANGE NOTICE TO ALL THE CLIENT USER INTERFACES CURRENTLY = }__-7 CONNECTED TO THE SECURITY SERVER ¥ 167 Loop ——— U.S, Patent Nov. 6, 2001 Sheet 9 of 9 US 6,314,458 B1 FIG. 9 181 INITIALIZE CLIENT BROWSER DATABASE J UPDATE ROUTINE ¥ 182 BIND TO SECURITY SERVER J APPLICATION ¥ SUSPEND UNTIL CLIENT BROWSER 183 DATABASE UPDATE ROUTINE RECEIVES 7 ‘A DATABASE CHANGE NOTICE FROM THE SECURITY SERVER ¥ 184 PROCESS DATABASE CHANGE NOTICE, 7 AND UPDATE DATA IN CLIENT BROWSER ¥ 185 DISPLAY UPDATE OF DATABASE DATA J TO USER ¥ 186 Loop Ee US 6,314,458 BL 1 APPARATUS AND METHOD FOR COMMUNICATION BETWEEN MULTIPLE BROWSERS. CROSS REFERENCE TO RELATED "APPLICATION ‘This application is a continuation of application entitled “SYSTEM AND METHOD FOR COMMUNICATION BETWEEN MULTIPLE BROWSERS,” Ser. No. 09/061, 360, filed Apr. 15, 1998, now U.S. Pat No. 6,065,054 and incorporated bervin by reference. BACKGROUND OF THE INVENTION 1. Field of the Invention ‘The present invention generally relates to computers and software, and more particularly, tothe apparatus and method Tor providing Nexible communication of data modification fof Web resousces heiween multiple clieat browsers, where the Web resources are om a server. 2, Description of Related Art As known in the art, the Internet is a world-wide collec- tion of networks and gateways that use the TCP/P suite of| protocols to communicate with one another. At the heart of| the Internet is a backbone of high speed data communication lines between major nodes or host computers consisting of | thousands of commercial government educational and other ‘computer systems that route data and messages, World Wide Web (WWW) refers 10 the total set of interlinked hypertext documents residing on hypertext tans- fer protocol (HTTP) servers all around the world. Docu- ‘ments on the WWW, called pages or Web pages, are written in hypertext mark-up language (HTML) idemtified by uni- form resource Joculors (URL) that specify the particular ‘machine and pathname by which a file ean be accessed and transmitted from node to node to the end user under H1 ‘A Web site is related group of these documents and associated files, scrips, subprocedures, and databases that are served up by an HTTP server oo the WWW. Users need a browser program and an Internet connection to access a Web site. Browser programs, also called “Web browsers,” are client applications that enable a user to navigate the Internet and view HTML documents on the WWW, another network, or the user's computer, Web browsers also allow users to follow codes called “tags” imbedded in an HTML document, which associate particular ‘words and images in the document with URLS so that a user can access another fle that may be half way around the ‘world, at the press of a key or the elick of a mouse. ‘These files may contain text (in a variety of fonts and styles), graphic images, movie Biles, and sounds as well as java applets, perl applications, other scripted languages, active X-controls, or other small imbedded software pro: ‘grams that execute when the user activates them by, for ‘eximple, clicking on a link. Seripts are applications that sre executed by a HTTP server in response to a request by & client user. These scripts are invoked by the HTTP daemon to-do a single job, and then they exit. One type of seript is a common gateway interface (CGI) script. Generally, a CGI script is invoked when a user clicks ‘on an element in a Web page, such as a link or image, CGI scripts are used to provide interactivity in a Web page. CGL seripts ean be written in many languages including C, C++, and! Perl. A CGI-BIN iss library of CGI seripts applications that can be executed by a HTTP server. ‘A key difficulty with communication between client browsers is caused because the client browser will ot create 0 6 s 2 «4 network connection to any computer other than the one from which the client browser code itself was. loaded. ‘Therefore if client browser changes data in a Web resource that is being shared or accessible by other browsers, the ther browsers will not be made aware of the Web resource data change However, until now, applications running in browsers have lacked the ability fo notify other browsers running the ‘same application of changes 16 their underlying database SUMMARY OF THE INVENTION Certain objects, advantages, and novel features of the invention will be set forth in part in the description that follows and in part will become apparent to those skilled in the art upon extmination of the following or may be learned ‘with the practice of the invention. The objects and advan- tages of the invention may be realized and oblained by means ofthe insteumeatalities and combinations particulaely pointed out in the appended! claims. ‘To achieve the advantages and novel features, the present invention is generally directed to an apparatus and methed for providing flexible communications of data modification fof Web resources between client browsers, where the Web In accordance with one embodiment of the present invention, a client user interface (browser) makes te call 10 4 server application for service, The server application verifies authorization and thea determines which CGL-BIN application program can perform the requested service. The server application invokes the CGEBIN application pro- ‘gram to execute the requested program. The CGLBIN application program receives. the program name and arguments, then executes the requested program and returns the output to the server application. Tae CGL-BIN applica- tion program then ascertains if database data, accessible 10 multiple browsers, was updated. If database data was updated, then the CGI-BIN application program establishes 4 connection to a security server and transmits 2 database change notice to the security server. ‘The security server receives the database change notice and checks its sign-on list ofall the client browsers currently active. The security server requires all client browsers that request access to the database to sign-on (i.e. eaister with) to the securily server before access to the database is ‘granted. The security server then sends 4 database change notice to all client user interface browsers currently con nected to the security server, Al client user browsers, upon receiving a database change notice, then display the database change notice andlor change data within the client user browser. method of notification andior data upelate avoids the utli- zation of stale database data in the client user browser, [BRIEF DESCRIPTION OF THE DRAWINGS “The accompanying drawings iocorporated in and forming «4 part ofthe specification illustrate Several aspects of the present invention, and together with the description, serve to explain the principles of the invention, In the drawings: FIG. 1 is a block diagram of the elientserver system utilizing the Internet. FIG. 2 is a block diagram illustrating a browser program, with a database update routine, situated within a computer readable medium, for example, in 4 computer system of the client systems FIG. 3 isa block diagram illustrating a server's service application program, the CGI-BIN program and the security US 6,314,458 BL 3 server broadeast routine situated within a computer readable ‘medium, for example, in a computer system of the server systems. FIG. 4 is a block diagram illustrating the processes and ‘communication traffic between the client browsers, using the server application, CGI-BIN application program, and the security server processes, as shown in FIGS. 2 and 3. FIG. 5 isa flow chart of the process forthe client browser of the present invention, as shown in FIG. 4. FIG. 6s. flow chart of the process forthe server's server application of the present invention, as shown in FIG. 4. FIG. 7 isa flow chart ofthe process for the security server program of the present invention, as shown in FIG. 4. FIG. 8 is a flow chart of the process for the CGFBIN, program process of the present invention, as shown in FIG, 4 FIG, 9 isa flow chart of the database update routine in the client browser ofthe present invention, as shown in FIG. 4, DETAILED DESCRIPTION OF THE, PREFERRED EMBODIMENT ‘The preseat invention will now be described in detail with specific reference tothe drawings. While the invention will be described intent to limit it to the embodiment or embodiments dis- closed therein, On the contrary, the intent is to cover all alternatives, modifications, and equivalents included within the spirit and scape of the invention as defined by the appended claims, “Turning now to the drawings, FIG. 1 is a block diageam fof just one system configuration that illustrates the flexibility, expandability, and platform independence of the present invention, While the system configuration could take ‘many forms, the diagram of FIG. 1 illusirates plurality of| diverse workstations 12, 14 and 16 directly connected to a network, for example, but not limited to, « LAN 18. Addi- tional workstations 21,22 may similarly be remotely located and in communication with the network 18 through a dial-in or other connection 24, Each of the workstations ia FIG. 1 fare uniquely illusirated to emphasize that workstations may ‘comprise a diverse hardware platform. As is well known, browser applications are provided and readily available fora Variety of hardware platforms. Brows- ts are most commonly recognized for their wility for accessing information over the Internet 32. As ‘aforementioned, a browser i a device or platform that allows a user lo view a Variety of service collections. The browser retrieves information from a Web server 31 ot network server 26 using HTTP, then interprets HTML code, ormats, and displays the interpreted result on a workstation display, ‘Additional workstations 33 and 34 may similarly be located and in communication with the Web servers 31 for access to Web pages on the local server and the Internet, ‘Workstations 33 and 34 communicate with the Web server 3Lon a LAN network 38, Networks 18 and 38 may be, for ‘example, Ethernet type networks, also known as 10 BASE 2, 10 BAS 5, 10 BSAF, 10 BAST, BASE BAN network, CO-EX cable, and the like ‘As illustrated in FIG. 2 client systems today generally include only a browser program 100 (c.g, Netscape, Internet Explorer, or other browser program) lor use in accessing lecations on network 11. These browser programs 100 reside in computer memory $1 and secess communication facilities modem 47 to transport the user to other resources ‘connection with these drawings, there is no. 25 0 6 s 4 ‘connected to the network HL, In onder to find a resource, the user should know the network location of the resource denoted by a network location identifier or URL. These identifiers are often cryptic, following very complex: schemes and formats in theie naming conventions Systems today ideatily, access, and process these resources desired by a user by using the processor 41, storage device 42, and memory §1 with an operating system '52 and window manager 58, The provessor accepis data from memory St and storage 42 over the bus 43. Direction from the user can be signaled by using the input devices mouse 44 and keyboard 48. The actions input and result, ‘output are displayed on the display terminal 46. ‘The first embodiment of the present invention involves the browser program 100. The browser program 100 is the software tha interacts with the server to abtain the requested data and functionality requested by the client user. The elient ‘browser progeam 100 and database update routine 180 will be described hereafter in detail with egard 0 FIGS. 4, 5, 6 and 10, Ilusteated ia FIG. 3 isthe architecture implementing the Web Server 31 and the network server 26. The principal difference between the servers 31 and 26 and the clients 12, 16, 21, 22, 3 and 3, illustrated in FIG. 1, are thatthe elient systems interface to the user and request the functionality through the browser program 100, while the servers 26 and 31 provide the services requested by the client systems Utilizing the server application program 120, the security server 160, and CGL-BIN application program 140, Otherwise, he functionally of processor 61, storage 62, mouse 64, keyboard 65, display 66, and modem 67 are essentially the same as corresponding items of FIG. 2 described above. As known inthe ar, the client systems 12, 14, 16, 21, 22,33 and 34, and servers 26 and 31, may reside ‘om the same physical machine. ‘The principal difference in the servers is that the memory ‘71 interacting withthe operating system 72 and the window manager 73 provide the services requested by the client utilizing the Server application 120, CGL-BIN application program 140, and security server 160, Server application 120, CGI-BIN application program 140, and security server 160 will herein be defined in more detail with regard to FIG. 4 and FIGS. 7, 8 and 9. With regard to FIG. 4, the client system 12, 16, 21,22, 38 for 34 can request services from the Web server’ 31_ by utilizing the client system browser program 100. The browser user interface program firs receives a request from the user and checks to make suse that the user is authorized to access «particular Function [Next the client user interface browser 100 makes call 8L to the service application for service. Ths request for service ‘goes out on a network line to the Server 31 and is reocived by the server application 120. “The server application 120 receives a request for service fom the client user interface 100. Next, the server applica tion 120 finds the requested program and executes 82 the requested program by invoking CGI-BIN application pro- ‘grim 140 using the program name and arguments ‘The CGLBIN application program 140 receives the pro- ‘gram name and execution arguments. The CGI-BIN appli= Cation program 140 checks to verify thatthe authorization is correct, then executes the requested program to provide the client user browser 100 the requested service. Any database access 83 required is completed. The application program 140 sends the output of the requested program service to the server application 120. The server application 120 receives

Anda mungkin juga menyukai