Facebook, Inc. v. Phoenix Media/Communications Group, Inc. et al
Filing
106
DECLARATION re 105 Preliminary Claim Construction Briefs by Facebook, Inc.. (Attachments: # 1 Exhibit A, # 2 Exhibit B, # 3 Exhibit C, # 4 Exhibit D, # 5 Exhibit E)(Torres, Javier)
EXHIBIT B
111111
1111111111111111111111111111111111111111111111111111111111111
US006314458Bl
(54)
(75)
United States Patent
(10)
Steele et al.
(12)
(45)
APPARATUS AND METHOD FOR
COMMUNICATION BETWEEN MULTIPLE
BROWSERS
Assignee: Hewlett-Packard Company, Palo Alto,
CA(US)
( *)
Notice:
References Cited
(56)
U.S. PATENT DOCUMENTS
5,388,196
5,644,768
5,758,355
6,061,692
6,141, 759
Inventors: Douglas W. Steele, Fort Collins; Todd
M. Goin, Loveland; Craig W. Bryant,
Fort Collins, all of CO (US)
(73)
Patent No.:
US 6,314,458 Bl
Date of Patent:
*Nov. 6, 2001
*
*
2/1995
7/1997
5/1998
5!2000
10/2000
Pajak et a!. ..........................
Periwal eta!. .......................
Buchanan .............................
Thomas eta!. ......................
Braddy .................................
345/329
709/102
707/201
707/200
713/201
* cited by examiner
Primary Examiner-Viet D. Vu
Subject to any disclaimer, the term of this
patent is extended or adjusted under 35
U.S.C. 154(b) by 0 days.
This patent is subject to a terminal disclaimer.
(21)
Appl. No.: 09/540,260
(22)
Filed:
Mar. 31, 2000
Related U.S. Application Data
(63)
Continuation of application No. 09/061,360, filed on Apr.
15, 1998, now Pat. No. 6,065,051.
(51)
(52)
Int. Cl? ...................................................... G06F 13/00
U.S. Cl. .......................... 709/219; 709/203; 709/223;
709/313
Field of Search ..................................... 709/203, 217,
709/219, 223, 224, 225, 227, 313, 329;
707/10, 104
(58)
31
CLIEN
An apparatus and method for providing flexible communications 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 an application program ascertain if potentially shared
database data was updated. If potentially shared database
data was updated, then the application program establishes
a connection to a security server and transmits a database
change notice to the security server. The security server
receives the database change notice and checks its sign-on
list of all the client browsers currently active and sends a
database change notice to all client user interface browsers
currently connected 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 utilization of stale database data in the client user browser.
14 Claims, 9 Drawing Sheets
r---------------------------140
sERVER
1
120
'--I
100
CLIENT USER INTERFACE
(BROWSER)
MAKE CALL TO SERVER
APPLICATION FOR
SERVICE
RECEIVE OUTPUT DATA
DISPLAY DATA TO USER
RECEIVE DATABASE
CHANGE NOTICE
ABSTRACT
(57)
81
APPLICATION PROGRAM
(CGI-BIN)
I
1-+-''-----i-1~ RECEIVE REQUEST FOR
I
I
I
I
82
RECEIVE PROGRAM NAME,
AND ARGUMENTS
IF AUTHORIZATION IS OK
THEN EXECUTE
REQUESTED PROGRAM
SEND STDOUT TO SERVER
APPLICATION
SERVICE FROM CLIENT USER
INTERFACE
IF AUTHORIZATION IS OK THEN
INVOKE REQUIRED
APPLICATION PROGRAM
RETURN OUTPUT FROM
APPLICATION PROGRAM
LOOP
160
CLIEN
SECURITY SERVER
CLIENT USER INTERFACE
(BROWSER)
ESTABLISH LISTEN SOCKET
RECEIVE DATABASE
CHANGE NOTICE
12, 16, 21, 33 OR 35 ---------------------------------------\.-CLIENT USER INTERFACE
(BROWSER)
1
RECEIVE DATABASE
CHANGE NOTICE
I
I
RECEIVE DATABASE CHANGE
NOTICE ON THE LISTEN
SOCKET
SEND DATABASE CHANGE
NOTICE TO ALL THE CLIENT
USER INTERFACES
CURRENTLY CONNECTED
TO THE SECURITY SERVER
(ACTIVE)
LOOP
86
IF DATABASE DATA IS
CHANGED THEN
ESTABLISH A SOCKET TO
THE SECURITY SERVER
AND SEND DATABASE
CHANGE NOTICE TO THE
SECURITY SERVER
EXIT
~---------------------------
U.S. Patent
Nov. 6, 2001
US 6,314,458 Bl
Sheet 1 of 9
FIG. 1
.,-11
LAPTOP
PC
WORKSTATION
12
LAPTOP
UNIX
WORKSTATION
26
18
32
31
NETWORK
SERVER
PC
UNIX
WORKSTATION
WORKSTATION
WEB SERVER
D
34
33
35
d
•
\Jl
•
FIG. 2
MEMORY 51
OPERATING SYSTEM 52
41
WINDOW MANAGER 53
BROWSER
PROGRAM
STORAGE
PROCESSOR
180
DATABASE
APPLICATION
46
INPUT DEVICES
44
0000
DISPLAY
KEYBOARD
45
MOUSE
-
MODEM
100
d
FIG. 3
•
\Jl
•
MEMORY _I!
OPERATING SYSTEM 72
WINDOW MANAGER 73
61
SERVER APPLICATION
(HTTP)
STORAGE
PROCESSOR
120
~160
140
APPLICATION PROGRAM
(CGI-BIN)
SECURITY SERVER
BROADCAST
ROUTINE
67
INPUT DEVICES
0000
DISPLAY
KEYBOARD
65
64
MOUSE
-
MODEM
d
FIG. 4
~------------------------------------·
CLIEN
100
r---------------------------140
120
'-11 SERVER APPLICATION (HTTP D)
APPLICATION PROGRAM
31
!SERVER
CLIENT USER INTERFACE
(BROWSER)
J-+--1..--~l~
MAKE CALL TO SERVER
:
APPLICATION FOR
SERVICE
I
RECEIVE OUTPUT DATA
I
DISPLAY DATA TO USER
RECEIVE DATABASE
....._ CHANGE NOTICE
__.:
_______
L-------------------------------r----J
12, 16, 21, 33 OR 35==::::
(CGI-BIN)
RECEIVE REQUEST FOR
SERVICE FROM CLIENT USER
INTERFACE
IF AUTHORIZATION IS OK THEN
INVOKE REQUIRED
APPLICATION PROGRAM
RETURN OUTPUT FROM
APPLICATION PROGRAM
LOOP
-------------------------------~----
160
CLIEN
CLIENT USER INTERFACE
(BROWSER)
SECURITY SERVER
ESTABLISH LISTEN SOCKET
RECEIVE DATABASE
CHANGE NOTICE
12, 16, 21, 33 OR 35 -----,
---------------------------------~--
CLIENT USER INTERFACE
(BROWSER)
RECEIVE DATABASE
CHANGE NOTICE
RECEIVE DATABASE CHANGE
NOTICE ON THE LISTEN
SOCKET
SEND DATABASE CHANGE
NOTICE TO ALL THE CLIENT
USER INTERFACES
CURRENTLY CONNECTED
TO THE SECURITY SERVER
(ACTIVE)
LOOP
82
RECEIVE PROGRAM NAME,
AND ARGUMENTS
IF AUTHORIZATION IS OK
THEN EXECUTE
REQUESTED PROGRAM
SEND STDOUT TO SERVER
APPLICATION
IF DATABASE DATA IS
CHANGED THEN
ESTABLISH A SOCKET TO
THE SECURITY SERVER
AND SEND DATABASE
CHANGE NOTICE TO THE
SECURITY SERVER
EXIT
I
DATABASE
____________________________
I
J
•
\Jl
•
U.S. Patent
Nov. 6, 2001
US 6,314,458 Bl
Sheet 5 of 9
FIG. 5
101
INITIALIZE CLIENT BROWSER PROGRAM
102
GET USER NAME AND PASSWORD FROM USER
INVOKE CLIENT BROWSER DATABASE UPDATE
ROUTINE
103
104
CLIENT BROWSER PROGRAM RECEIVES A
REQUEST FOR SERVICE FROM THE USER
_)
10 5
~
BIND TO SERVER APPLICATION
(HTTP DAEMON)
,
v
106
MAKE CALL TO SERVER APPLICATION (HTTPD) _ /
FOR SERVICE
,.
107
SUSPEND UNTIL RETURN OF DATA
__/
108
RETURN OUTPUT TO USER
l-/
109
I
I
LOOP
~
U.S. Patent
Nov. 6, 2001
Sheet 6 of 9
FIG. 6
US 6,314,458 Bl
121
INITIALIZE SERVER APPLICATION
(HTTPD) SYSTEM
122
WAIT TO RECEIVE CLIENT
REQUEST FOR SERVICE
123
ELSE
CHECK AUTHORIZATION
YES
BIND TO REQUESTED CGI-BIN
PROGRAM
INVOKE THE REQUESTED
APPLICATION PROGRAM
125
126
SUSPEND UNTIL RETURN OF
STDOUT DATA
127
RECEIVE STDOUT AND STDERR
129
LOOP SERVER APPLICATION
(HTTP D)
U.S. Patent
Nov. 6, 2001
Sheet 7 of 9
FIG. 7
US 6,314,458 Bl
141
INTIALIZE APPLICATION PROGRAM
(CGI-BIN)
142
RECEIVE EXECUTE AND ENVIRNONMENT
ARGUMENTS
YES
144
EXECUTE REQUESTED SERVICE PROGRAM
145
RECEIVE STDOUT AND STDERR
SEND STDOUT TO SERVER APPLICATION
YES
ESTABLISH A SOCKET TO THE SECURITY
SERVER
SEND DATABASE CHANGE NOTICE TO THE
SECURITY SERVER
147
148
EXIT
U.S. Patent
Sheet 8 of 9
Nov. 6, 2001
US 6,314,458 Bl
FIG. 8
INITIALIZE SECURITY SERVER
-
16 1
162
ESTABLISH A CGI-BIN LISTEN SOCKET
WAIT FOR CONNECTION (ON CGI-BIN LISTEN
SOCKET) FROM CGI-BIN PROGRAM
RECEIVE DATABASE CHANGE NOTICE
REQUEST FROM CGI-BIN PROGRAM ON CGI-BIN
SOCKET
,.._
-
16 3
164
~
,.
165
INDENTIFY ALL CONNECTED (ACTIVE) CLIENT
USER INTERFACES
~
166
SEND DATABASE CHANGE NOTICE TO ALL THE
CLIENT USER INTERFACES CURRENTLY
CONNECTED TO THE SECURITY SERVER
,_
,.
LOOP
167
~
U.S. Patent
Sheet 9 of 9
Nov. 6, 2001
US 6,314,458 Bl
FIG. 9
18 1
INITIALIZE CLIENT BROWSER DATABASE
UPDATE ROUTINE
18 2
BIND TO SECURITY SERVER
APPLICATION
,.
SUSPEND UNTIL CLIENT BROWSER
DATABASE UPDATE ROUTINE RECEIVES
A OATABASE CHANGE NOTICE FROM
THE SECURITY SERVER
18 3
~
184
PROCESS DATABASE CHANGE NOTICE
AND UPDATE DATA IN CLIENT BROWSER
,.
185
DISPLAY UPDATE OF DATABASE DATA
TO USER
~
LOOP
186
US 6,314,458 Bl
1
2
APPARATUS AND METHOD FOR
COMMUNICATION BETWEEN MULTIPLE
BROWSERS
a network connection to any computer other than the one
from which the client browser code itself was loaded.
Therefore, if a 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 to notify other browsers running the
same application of changes to their underlying database.
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,051 and
incorporated herein by reference.
5
10
SUMMARY OF THE INVENTION
Certain objects, advantages, and novel features of the
invention will be set forth in part in the description that
1. Field of the Invention
follows and in part will become apparent to those skilled in
The present invention generally relates to computers and 15 the art upon examination of the following or may be learned
with the practice of the invention. The objects and advansoftware, and more particularly, to the apparatus and method
tages of the invention may be realized and obtained by
for providing flexible communication of data modification
means of the instrumentalities and combinations particularly
of Web resources between multiple client browsers, where
pointed out in the appended claims.
the Web resources are on a server.
20
To achieve the advantages and novel features, the present
2. Description of Related Art
invention is generally directed to an apparatus and method
As known in the art, the Internet is a world-wide collecfor providing flexible communications of data modification
tion of networks and gateways that use the TCP/IP suite of
of Web resources between client browsers, where the Web
protocols to communicate with one another. At the heart of
resources are on a server.
the Internet is a backbone of high speed data communication
25
In accordance with one embodiment of the present
lines between major nodes or host computers consisting of
invention, a client user interface (browser) makes the call to
thousands of commercial government educational and other
a server application for service. The server application
computer systems that route data and messages.
verifies authorization and then determines which CGI-BIN
World Wide Web (WWW) refers to the total set of
interlinked hypertext documents residing on hypertext trans- 30 application program can perform the requested service. The
server application invokes the CGI-BIN application profer protocol (HTTP) servers all around the world. Docugram to execute the requested program. The CGI-BIN
ments on the WWW, called pages or Web pages, are written
application program receives the program name and
in hypertext mark-up language (HTML) identified by uniarguments, then executes the requested program and returns
form resource locators (URL) that specify the particular
machine and pathname by which a file can be accessed and 35 the output to the server application. The CGI-BIN application program then ascertains if database data, accessible to
transmitted from node to node to the end user under HTIP.
multiple browsers, was updated. If database data was
A Web site is a related group of these documents and
updated, then the CGI-BIN application program establishes
associated files, scripts, subprocedures, and databases that
a connection to a security server and transmits a database
are served up by an HTTP server on the WWW.
Users need a browser program and an Internet connection 40 change notice to the security server.
The security server receives the database change notice
to access a Web site. Browser programs, also called "Web
and checks its sign-on list of all the client browsers currently
browsers," are client applications that enable a user to
active. The security server requires all client browsers that
navigate the Internet and view HTML documents on the
request access to the database to sign-on (i.e. register with)
WWW, another network, or the user's computer. Web
browsers also allow users to follow codes called "tags" 45 to the security server before access to the database is
granted. The security server then sends a database change
imbedded in an HTML document, which associate particular
notice to all client user interface browsers currently conwords and images in the document with URLs so that a user
nected to the security server.
can access another file that may be half way around the
world, at the press of a key or the click of a mouse.
All client user browsers, upon receiving a database
These files may contain text (in a variety of fonts and 50 change notice, then display the database change notice
and/or change data within the client user browser. This
styles), graphic images, movie files, and sounds as well as
method of notification and/or data update avoids the utilijava applets, perl applications, other scripted languages,
zation of stale database data in the client user browser.
active X-controls, or other small imbedded software programs that execute when the user activates them by, for
BRIEF DESCRIPTION OF THE DRAWINGS
example, clicking on a link. Scripts are applications that are 55
The accompanying drawings incorporated in and forming
executed by a HTTP server in response to a request by a
a part of the specification illustrate several aspects of the
client user. These scripts are invoked by the HTTP daemon
present invention, and together with the description, serve to
to do a single job, and then they exit.
explain the principles of the invention. In the drawings:
One type of script is a common gateway interface (CGI)
FIG. 1 is a block diagram of the client/server system
script. Generally, a CGI script is invoked when a user clicks 60
utilizing the Internet.
on an element in a Web page, such as a link or image. CGI
scripts are used to provide interactivity in a Web page. CGI
FIG. 2 is a block diagram illustrating a browser program,
scripts can be written in many languages including C, C++,
with a database update routine, situated within a computer
and Perl. A CGI-BIN is a library of CGI scripts applications
readable medium, for example, in a computer system of the
that can be executed by a HTTP server.
65 client systems.
A key difficulty with communication between client
FIG. 3 is a block diagram illustrating a server's service
browsers is caused because the client browser will not create
application program, the CGI-BIN program and the security
BACKGROUND OF THE INVENTION
US 6,314,458 Bl
3
4
server broadcast routine situated within a computer readable
connected to the network 11. In order to find a resource, the
medium, for example, in a computer system of the server
user should know the network location of the resource
systems.
denoted by a network location identifier or URL. These
identifiers are often cryptic, following very complex
FIG. 4 is a block diagram illustrating the processes and
communication traffic between the client browsers, using the 5 schemes and formats in their naming conventions.
Systems today identify, access, and process these
server application, CGI-BIN application program, and the
resources desired by a user by using the processor 41,
security server processes, as shown in FIGS. 2 and 3.
storage device 42, and memory 51 with an operating system
FIG. 5 is a flow chart of the process for the client browser
52 and window manager 53. The processor accepts data
of the present invention, as shown in FIG. 4.
10 from memory 51 and storage 42 over the bus 43. Direction
FIG. 6 is a flow chart of the process for the server's server
from the user can be signaled by using the input devices
application of the present invention, as shown in FIG. 4.
mouse 44 and keyboard 45. The actions input and result
FIG. 7 is a flow chart of the process for the security server
output are displayed on the display terminal 46.
program of the present invention, as shown in FIG. 4.
The first embodiment of the present invention involves
FIG. 8 is a flow chart of the process for the CGI-BIN 15 the browser program 100. The browser program 100 is the
program process of the present invention, as shown in FIG.
software that interacts with the server to obtain the requested
4.
data and functionality requested by the client user. The client
FIG. 9 is a flow chart of the database update routine in the
browser program 100 and database update routine 180 will
client browser of the present invention, as shown in FIG. 4.
be described hereafter in detail with regard to FIGS. 4, 5, 6
20 and 10.
DETAILED DESCRIPTION OF 1HE
Illustrated in FIG. 3 is the architecture implementing the
PREFERRED EMBODIMENT
Web Server 31 and the network server 26. The principal
difference between the servers 31 and 26 and the clients 12,
The present invention will now be described in detail with
specific reference to the drawings. While the invention will
16, 21, 22,33 and 34, illustrated in FIG. 1, are that the client
be described in connection with these drawings, there is no 25 systems interface to the user and request the functionality
intent to limit it to the embodiment or embodiments disthrough the browser program 100, while the servers 26 and
31 provide the services requested by the client systems
closed therein. On the contrary, the intent is to cover all
alternatives, modifications, and equivalents included within
utilizing the server application program 120, the security
server 160, and CGI-BIN application program 140.
the spirit and scope of the invention as defined by the
30
appended claims.
Otherwise, the functionality of processor 61, storage 62,
mouse 64, keyboard 65, display 66, and modem 67 are
Turning now to the drawings, FIG. 1 is a block diagram
essentially the same as corresponding items of FIG. 2
of just one system configuration that illustrates the
described above. As known in the art, the client systems 12,
flexibility, expandability, and platform independence of the
14, 16, 21, 22,33 and 34, and servers 26 and 31, may reside
present invention. While the system configuration could take
35
on the same physical machine.
many forms, the diagram of FIG. 1 illustrates a plurality of
diverse workstations 12, 14 and 16 directly connected to a
The principal difference in the servers is that the memory
network, for example, but not limited to, a LAN 18. Addi71 interacting with the operating system 72 and the window
tional workstations 21, 22 may similarly be remotely located
manager 73 provide the services requested by the client
and in communication with the network 18 through a dial-in
utilizing the server application 120, CGI-BIN application
40
or other connection 24. Each of the workstations in FIG. 1
program 140, and security server 160. Server application
are uniquely illustrated to emphasize that workstations may
120, CGI-BIN application program 140, and security server
comprise a diverse hardware platform.
160 will herein be defined in more detail with regard to FIG.
4 and FIGS. 7, 8 and 9.
As is well known, browser applications are provided and
readily available for a variety of hardware platforms. Brows- 45
With regard to FIG. 4, the client system 12, 16, 21, 22, 33
or 34 can request services from the Web server 31 by
ers are most commonly recognized for their utility for
accessing information over the Internet 32. As
utilizing the client system browser program 100. The
aforementioned, a browser is a device or platform that
browser user interface program first receives a request from
allows a user to view a variety of service collections. The
the user and checks to make sure that the user is authorized
browser retrieves information from a Web server 31 or 50 to access a particular function.
network server 26 using HTTP, then interprets HTML code,
Next, the client user interface browser 100 makes a call81
formats, and displays the interpreted result on a workstation
to the service application for service. This request for service
display.
goes out on a network line to the server 31 and is received
by the server application 120.
Additional workstations 33 and 34 may similarly be
located and in communication with the Web servers 31 for 55
The server application 120 receives a request for service
access to Web pages on the local server and the Internet.
from the client user interface 100. Next, the server applicaWorkstations 33 and 34 communicate with the Web server
tion 120 finds the requested program and executes 82 the
31 on a LAN network 35. Networks 18 and 35 may be, for
requested program by invoking CGI-BIN application proexample, Ethernet type networks, also known as 10 BASE
gram 140 using the program name and arguments.
2, 10 BAS 5, 10 BSAF, 10 BAST, BASE BAN network, 60
The CGI-BIN application program 140 receives the proCO-EX cable, and the like.
gram name and execution arguments. The CGI-BIN application program 140 checks to verify that the authorization is
As illustrated in FIG. 2 client systems today generally
include only a browser program 100 (e.g., Netscape, Internet
correct, then executes the requested program to provide the
client user browser 100 the requested service. Any database
Explorer, or other browser program) for use in accessing
locations on a network 11. These browser programs 100 65 access 83 required is completed. The application program
reside in computer memory 51 and access communication
140 sends the output of the requested program service to the
facilities modem 47 to transport the user to other resources
server application 120. The server application 120 receives
US 6,314,458 Bl
5
6
the output from the application program and returns the
Illustrated in FIG. 7 is the flow diagram for the CGI-BIN
output to the client user browser requesting service as shown
application 140. First, the CGI-BIN application program 140
is initialized at step 141. The CGI-BIN application program
in item 85.
140 receives the request for the requested service with the
The application program 140, after returning the output to
the server application 120 then checks to see if database data 5 program name and arguments, at step 142. The CGI-BIN
application program 140 establishes whether the client user
was changed during the execution of the requested program.
interface requesting the service is authorized to access the
If database data was changed in access 83, then the appliservice at step 143. If the application program 140 detercation program 140 establishes a communication socket to
mines that the client user interface 100 was not authorized
the security server, and then forwards a database change
notice 86 to the security server 160. The security server 160 10 to access the requested service, then the application program
140 proceeds to step 148 and terminates.
receives the database change notice 86 on the socket established by the application program 140. The security server
If the client user interface 100 is authorized to access the
requested service, the CGI-BIN application program 140
160 checks its sign-on listing of all client user interfaces 100
currently active. Then, the security server 160 sends a
executes the requested service program. After the requested
database change notice 87 to all client user interfaces 100 15 service program is executed at step 144, the CGI-BIN
program 140 receives the stdout and standard error messages
that are currently active for further processing.
from the requested service program and sends the stdout and
The browser program 100 then returns the output to the
standard error data to the server application 120 at step 145.
application program that requested service in the client
Next, the application program 140 checks to see if datasystem 12. This process will be further explained hereafter
with regard to FIGS. 5-9.
20 base data was changed at step 146. If no database change has
occurred, the application program 140 proceeds to step 148
The process implemented by the browser program 100 in
and terminates.
the client system 12 is illustrated in FIG. 5. The first step 101
of the browser program 100 is to initialize the client browser
If the application program 140 determines that database
program 100. The browser program 100 accepts the login of
data was changed, then the application program 140 estabthe user name and password from the user and creates a 25 lishes a socket to the security server and sends a database
change notice to the security server at step 147. In the
connection to the security server 140 at step 102. Browser
program 100 invokes the client browser database update
preferred embodiment, a TCP/IP socket is established. Once
routine 180 at step 103. The browser program 100 then waits
the database change notice is sent to the security server 160,
to receive a request for service from the user at step 104.
the application program closes the socket established to the
30
security server 160 and exits at step 148.
When browser program 100 receives the request for
With regard to FIG. 8 illustrated is shown the process of
service from the user at step 104. The browser program 100
binds to the server application 120 at step 105. The browser
the security server 140. First, the security server 160 is
program 100 makes a call to the server application 120 at
initialized at step 161. Next, the security server 160 estabstep 106. The user browser program 100 is then suspended 35 lishes a CGI-BIN application program 140 listen socket at
until the returning of data at step 107.
step 162. The security server 160 then waits for connection
to a CGI-BIN application program 140 on the listen socket
When data is returned to the client user interface, the
established at step 162.
browser program 100 is unsuspended and the browser
program 100 returns the data received from server applicaWhen a connection is made to a CGI-BIN application
tion 120 to the user at step 108. The client user interface 40 program 140, the security server 160 receives a database
browser 100 returns to step 104 and waits for the next
change notice request 86 from the CGI-BIN program 140 on
request for service from the user.
the CGI-BIN socket at step 164. The security server 160 then
identifies all connected client user interfaces 100 that are
Illustrated in FIG. 6 is the flow diagram of the architecture
currently active at step 165. In the preferred embodiment,
and process implemented by the server application 120. The
server application 120 is initialized at step 121. The server 45 the security server 160 determines which client user interfaces are active by checking a listing for all client user
application 120 waits to receive a client request for service
interfaces that are currently connected to the security server.
at step 122.
The security server 160 sends a database change notice to
When a client request is received at step 122, the server
all the client user interfaces 100 that are currently identified
application 120 checks if the client user interface 100
making the request is authorized to access the requested 50 as active and connected to the security server 160 at step
166. The security server 160 then returns to step 163 to wait
resource at step 123. If the authorization check is okay, then
until it receives another token from a user client interface
the server application 120 determines which application
100.
program 100 will provide the services requested by the
client system. The server application 120 binds to the
Illustrated in FIG. 9 is the diagram for the client browser
specified CGI-BIN application program 140 and invokes the 55 database update routine 180. The client browser database
specified CGI-BIN application 140 with the specified arguupdate routine 180 is part of the client user browser 100 in
ments and sends the necessary data at step 125. The server
the preferred embodiment. First, the client browser database
application 120 process is suspended at step 126, until data
update routine is initialized at step 181. The client browser
is received from the specified CGI-BIN application 140.
database update routine binds to the security server 160 at
When the output is received from the specified CGI-BIN 60 step 182. The client browser database update routine 180
suspends all processing until the client user browser update
application program 140, the server application 120 receives
routine receives a database change notice from the security
the output at step 127. The server application 120 prepares
server 160.
the output received from the CGI-BIN application 140 and
Upon receipt of a database change notice from the secureturns that output to the client requesting service at step
128. The server application 120 then exits that session, loops 65 rity server 160, the client browser database update routine
back to step 122, and suspends itself until a new request is
then processes the database change notice and updates any
received.
occurrence of the data changed in the client browser at step
US 6,314,458 Bl
7
8
184. The client browser database update routine 180 can
7. The application apparatus of claim 6, further comprisdisplay a message to the user that an update of database data
ing:
has occurred at step 185. The client browser database update
means for determining if the database data, accessible to
routine 180 then returns to step 183 and waits for the next
the plurality of browsers, was modified while performdatabase change notice to be received from security server 5
ing the request for service.
160.
8. A security server apparatus for providing flexible
The foregoing description has been presented for purcommunications of data modification of network resources
poses of illustration and description. It is not intended to be
between a plurality of client browsers, comprising:
exhaustive or to limit the invention to the precise forms
disclosed. Obvious modifications or variations are possible 10
means for receiving a sign-on request from a client
in light of the above teachings. The embodiment or embodibrowser;
ments discussed were chosen and described to provide the
means for adding the client browser to a list of currently
best illustration of the principles of the invention and its
connected client browsers;
practical application to thereby enable one of ordinary skill
means for receiving a database change notice from an
in the art to utilize the invention in various embodiments and
15
application server if database data accessible to the
with various modifications as are suited to the particular use
plurality of browsers was modified by the client
contemplated. All such modifications and variations are
browser; and
within the scope of the invention as determined by the
appended claims when interpreted in accordance with the
means for retransmitting the database change notice to the
breadth to which they are fairly and legally entitled.
plurality of browsers.
20
What is claimed is:
9. The security server apparatus of claim 8, further
1. A method for providing flexible communications of
comprising:
data modification of network resources between a plurality
means for determining a plurality of active browsers.
of browsers, the method comprising the steps of:
10. The security server apparatus of claim 9, wherein the
receiving a request for service from one of the plurality of 25 active browsers determining means further comprises:
browsers;
means for checking the list of currently connected client
performing the request for service;
browsers.
generating a database change notice if database data
11. An application apparatus for communication of data
accessible to the plurality of browsers was modified
modifications of network resources between a plurality of
while performing the request for service; and
30 browsers, comprising:
transmitting the database change notice to a security
a first application mechanism that receives a request for
server for retransmission to the plurality of browsers.
service from one of the plurality of browsers;
2. The method of claim 1, further including the step of:
a second application mechanism that provides the
determining if the database data, accessible to the pluralrequested service to the one of the plurality of browsity of browsers, was modified while performing the 35
ers;
request for service.
a third application mechanism that generates a database
3. A method for providing flexible communications of
change notice if database data accessible to the pluraldata modification of network resources between a plurality
ity of browsers was modified; and
of browsers, the method comprising the steps of:
a fourth application mechanism that transmits the data40
receiving a sign-on request from a client browser;
base change notice to a security server for retransmisadding the client browser to a list of currently connected
sion to the plurality of browsers.
client browsers;
12. The application apparatus of claim 11, further comreceiving a database change notice from an application
prising:
server if database data accessible to the plurality of
45
a fifth application mechanism that determines if the
browsers was modified by the client browser; and
database data, accessible to the plurality of browsers,
retransmitting the database change notice to the plurality
was modified while performing the request for service.
of browsers.
13. A security server for communication of data modifi4. The method of claim 3, further including the step of:
cations of network resources between a plurality of
determining the client browsers that are currently con50 browsers, comprising:
nected.
a first security server mechanism that receives a sign-on
5. The method of claim 4, wherein the determining
request from a client browser;
currently connected client browsers step further includes the
a second security server mechanism that adds the client
step of:
browser to a list of currently connected client browsers;
checking the list of currently connected client browsers. 55
6. An application apparatus for providing flexible coma third security server mechanism that receives a database
munications of data modification of network resources
change notice from an application server if database
between a plurality of client browsers, comprising:
data accessible to the plurality of browsers was modified by the client browser; and
means for receiving a request for service from one of the
plurality of browsers;
a fourth security server mechanism that retransmits the
60
database change notice to the plurality of browsers.
means for performing the request for service;
14. The security server of claim 13, further comprising:
means for generating a database change notice if database
data accessible to the plurality of browsers was modia fifth security server mechanism that determines a plufied while performing the request for service; and
rality of active browsers by checking the list of curmeans for transmitting the database change notice to a 65
rently connected client browsers.
security server for retransmission to the plurality of
browsers.
* * * * *
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?