throbber
United States Patent
`
`Bittinger et at
`
`DIFFERENCING CLIENT/SERVER
`COMMUNICATION SYSTEM FOR USE
`WITH CGI FORMS
`
`Inventors
`
`Reed Reed Bittinger Michael Levi
`Fraenkel both of Raleigh Barron
`Cornelius Housel III Chapel Hill
`David Bruce Lindquist Raleigh all of
`NC
`
`Assignee
`
`International Business Machines
`Corp Armonk N.Y
`
`Notice
`
`The term of this patent shall not extend
`the expiration date of Pat No
`beyond
`5754774
`
`Appl No 601903
`
`Filed
`
`Feb 15 1996
`
`Int Cl.6
`U.S Cl
`
`Field of Search
`
`GO6F 3/00
`
`395/200.33
`
`395/200.48
`
`200.48
`395/200.01
`200.33 200
`
`395/200.47
`
`References Cited
`
`U.S PATENT DOCUMENTS
`
`5193162
`5241625
`5473772
`5574906
`5600834
`5611038
`
`3/1993
`
`Bordsen
`
`et
`
`8/1993
`Epard et
`12/1995 Halliwell
`11/1996 Morris
`2/1997 Howard
`Shaw et
`
`3/1997
`
`et
`
`711/152
`
`345/502
`
`395/712
`
`707/1
`
`707/201
`
`345/302
`
`FOREIGN PATENT DOCUMENTS
`
`665 670 A3
`
`1/1995
`
`European Pat Off
`
`H04L 29/06
`
`OTHER PUBLICATIONS
`
`IBM Technical Disclosure Bulletin Method
`to Reduce
`Changed Data Sent Between Computer Systems vol 35
`No 1B pp 110112
`Austin et al File System Caching in Large PointtoPoint
`No
`Networks Software Engineering Journal vol
`pp
`6580 Jan 1992
`
`1111111111111111111111111111111111
`US005859971A
`Patent Number
`
`Date of Patent
`
`5859971
`Jan 12 1999
`
`Nelson et al Caching in the Sprite Network File System
`pp 34 1987
`Operating Systems Review vol 21 No
`Huizinga et al TwoLevel Client Caching
`and Discon
`of Notebook Computers
`nected Operation
`Systems SIGICE Bulletin vol 21 No
`1995
`IBM Technical Disclosure Bulletin Method
`Abstract
`for
`Transmitting Only Document Change Data vol 27 pp
`844846 Jun 1984
`International Search Report
`
`pp 914 Jul
`
`in Distributed
`
`List continued
`
`on next page
`
`Primary ExaminerP arshotam
`Assistant ExaminerKenneth
`Attorney Agent or FirmJerry
`
`Lall
`
`Coulter
`Herndon
`
`ABSTRACT
`
`to
`
`first
`
`request
`
`and computer program product
`method apparatus
`for
`reducing the data transmitted over an external communica
`tion link from first application
`resident
`in
`computer
`second application
`second computer The
`resident
`in
`method apparatus and computer program product
`include
`data stream from the first application
`to be provided
`storing
`to the second application
`from the
`in response to
`second application
`cache
`in
`resident
`in the first
`computer
`server base cache entry and in cache
`resident
`in
`to create
`cache entry
`the second computer
`to create
`client base
`Requests from the second application
`are interrogated
`determine
`client base cache entry corresponding
`to the
`request exists and to determine
`server base
`interrogated
`cache entry corresponding
`request exists
`to the interrogated
`The response data stream is intercepted prior to transmission
`the response on the external communication link and
`of
`to the server base cache entry to provide differ
`compared
`to the difference between the inter
`ence data corresponding
`cepted response and the server base
`cache entry The dif
`the external communication link
`ference data is sent over
`and acquired by the second computer which reconstructs the
`cache
`response data stream by combining the client base
`data to create
`entry with the difference
`response data
`stream which is provided to the second application
`
`if
`
`to
`
`if
`
`48 Claims 19 Drawing Sheets
`
`Petitioner IBM – Ex. 1011, p. 1
`
`

`
`5859971
`Page
`
`OTHER PUBLICATIONS
`
`IBM Sales Brochure G3253595OO prioted Sep 1995
`
`HTTP Working
`Hyptertext Traosfer ProtocolHTTP/1.O
`Group BernersLee et alInternetDraft Basic HTTP
`IBM Sales Brochure G3253598O printed Sep 1995
`
`IBM ARTour Technical OverviewRelease
`
`IBM Publication 5B14O11OOO 1995
`
`Petitioner IBM – Ex. 1011, p. 2
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`FIG
`
`PRIOR ART
`
`10
`
`Web Browser
`
`TCP/IP
`15
`
`20
`
`Web Server
`
`FIG
`
`Petitioner IBM – Ex. 1011, p. 3
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`FIG
`
`100
`
`Receive request from
`web browser
`
`105
`
`Does
`Cache Entry Exist
`
`for Request
`
`No
`
`Yes
`
`110
`
`No
`
`Is entry
`
`Coherent
`
`Yes
`
`iii
`
`Send Cache entry
`to Browser as
`HTTP data stream
`
`Send Coherency Check
`to SSI
`request
`including
`Coherency Interval
`CRC of cache entry
`and HTTP request
`
`106
`
`Send Request to Server
`Side Intercept Module
`SSI including HTTP
`request Coherency
`Interval and Null CRC
`
`Petitioner IBM – Ex. 1011, p. 4
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`FIG.4
`
`160
`
`Receive Response from
`including Response
`SSI
`Type CRC and Age
`
`J5Response Coherent
`
`167
`
`Receive data stream
`
`and store
`
`Yes
`
`170
`
`Does
`Cache entry exist
`for data stream
`stored
`
`No
`
`166
`
`Update cache entry by
`updating Store Date
`Time
`Current Date
`Time Age received
`from SSI
`
`171
`
`172
`
`Delete old
`cache entry
`
`Update Cache with
`received data including
`HTTP data CRC of HTTP
`data and Store Date
`Time
`Current Date
`Time Received Age
`
`173
`
`Create Cache Entry
`by storing HTTP data
`received URL of HTTP
`data CRC of HTTP data
`and Store Date Time
`Current Date Time Age
`
`174
`
`Send HTTP data of
`Cache Entry to Browser
`as HTTP data stream
`
`Petitioner IBM – Ex. 1011, p. 5
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`120
`
`Recetve Request from
`Client Side intercept
`Module CSI Including
`Coherency Interval
`CRC and H11P data
`
`ZIS/
`
`Response to
`Request
`in
`Cache
`
`125
`
`No
`
`Yes
`
`130
`
`No
`
`Is
`
`SSI Cache
`entry Coherent
`
`YES
`
`13
`
`No
`
`Does
`CRC of SSI
`CRC
`entry
`receed
`
`Yes
`
`136
`
`Send coheren1
`response to CSI
`
`FIG
`
`126
`
`Send HUP
`request to
`
`seiver
`
`/137
`
`Send streams
`response to CSI
`Including CRC of SSI
`entr Age of SSI entry
`and HTTP data of SSI
`
`enliy
`
`Petitioner IBM – Ex. 1011, p. 6
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`145
`
`No
`
`Does
`server Cache
`entry exist
`
`or response
`
`Yes
`
`146
`
`__________________
`
`Create
`
`Server Cache
`
`EnfrybystorlngtheCRC
`of received H11P data
`the H1TP data and the
`Stored Date lime
`Current Date lime
`_________ _____
`
`140
`
`Receive response from
`server and store H1TP
`data siTeam and
`calculate CRC of H1TI
`
`Yes
`
`150
`
`Does
`
`ççc
`cache entry
`ac
`
`151
`
`No
`
`153
`
`Update Store
`Date lime
`
`Current
`Date lime
`____________
`
`152
`
`Delete stored
`
`response
`frOm server
`______
`
`Delete H1IP data of
`server cache entry
`
`154
`____________________
`Update Server cache
`entry wtth CRC of server
`response 1-HIP data of
`server response and Store
`Dafe lime Current
`Date lime
`
`Yes
`
`155
`
`No
`
`Does
`SSlcache
`CRC
`CSI
`cache CRC
`
`FIG.o
`
`156
`
`157
`
`Send coheren response
`
`wttti
`
`Send stream response
`Including I-fliP data received
`from server CRC of I-in
`data andAge
`
`Petitioner IBM – Ex. 1011, p. 7
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`FIG
`
`206
`
`No
`
`Set CRC to send to SSI
`to CRC of client base cache
`entry for CGI request
`
`Send CGI request to SSI
`Including H1TP request and
`CRC of client base
`cache entry
`
`Petitioner IBM – Ex. 1011, p. 8
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`260
`
`Receive response to CGI
`from SSI including
`request
`response type and CRC
`of server base form
`
`FIG
`
`II
`
`55
`
`267
`
`Yes
`
`266
`
`response and store
`Receive
`HTTP data CGI difference
`data and CRC
`
`270
`
`Does
`client base
`
`No
`
`277
`
`271
`
`276
`
`Rebase the client
`cache by storing the
`HTTP data received
`from the SSI and
`the CRC received
`from the SSI
`
`the HTTP
`Reconstruct
`from the web
`
`server by merging the
`CGI difference data to
`the client base form
`HTTP data to create
`the HTTP data stream
`
`0-
`
`client base
`
`Create
`cache entry by storing
`the URL of the CGI
`the CRC of
`request
`the HTTP data from
`the SSI and the HTTP
`data from the SSI
`
`278
`
`Send reconstructed
`response to browser
`as H1TP data stream
`
`Petitioner IBM – Ex. 1011, p. 9
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`FIG
`
`FIG 10
`
`FIG
`1OA
`
`FIG
`106
`
`220
`
`Receive CGI request from
`CSI including CRC of
`client base cache entry
`and HTTP data of request
`
`221
`
`Send CGi request
`to web server
`
`response from
`server and store HTTP
`data CRC of HTTP
`data and null CGI
`
`difference data
`
`FIG 1OA
`
`Yes
`
`No
`
`Petitioner IBM – Ex. 1011, p. 10
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet
`
`of 19
`
`5859971
`
`245
`
`CRC of response
`CRC of server
`ase entry
`
`Yes
`
`No
`
`246
`
`Compute difference
`between server base
`cache entry for CGI
`request and response
`from web server
`
`241
`
`Create server base
`cache entry by storing
`URL of CGI request
`HTTP data of response
`from server and
`CRC of 1-ITIP data
`
`Yes1
`
`Update server base
`cache entry with HTTP
`data of response CRC
`of HTTP data and Null
`the CGI difference data
`
`Yes
`
`Is
`
`CRC0fSSI
`CRC of CSI
`
`250
`
`No
`
`21
`
`253
`
`FIG lOB
`
`HTTP data set
`to received
`HTTP data
`
`252
`
`Send response to CSI
`of CRC of SSI base
`cache entry HTTP
`data and CGI
`difference data
`
`0-
`
`Petitioner IBM – Ex. 1011, p. 11
`
`

`
`tim
`
`SERVER
`
`WEB
`
`11
`
`FIG
`
`20
`
`40
`
`30
`
`10
`
`Petitioner IBM – Ex. 1011, p. 12
`
`

`
`40
`
`12
`
`FIG
`
`30
`
`Petitioner IBM – Ex. 1011, p. 13
`
`

`
`multi
`
`plexrealsocket
`Delete
`
`the
`
`/-
`
`313
`
`Wtual
`
`320
`
`virtual
`
`New
`
`fromrealevent
`Removerealsocket
`
`list
`
`309
`
`Closej
`
`Socket
`
`eal
`
`realsocket
`Multiplex
`
`Datao
`
`n
`
`simplexsocket
`Datareceivedo
`
`n
`
`plexrealsocket
`Closet
`multi
`
`he
`
`312
`
`ActivityTimer
`MultiplexSocket
`
`05
`
`____Aami
`
`incomingconnection
`
`Realsocketcreatedb
`
`y
`
`the
`
`virtualsocket
`function
`
`for
`
`SSI
`
`or
`
`CSI
`
`Start
`
`1308
`
`virtualsocket
`
`simplex
`
`Create
`
`1307
`
`realeventlist
`realsocket
`
`Add
`
`to
`
`306
`
`realsocket
`event
`
`an
`
`for
`
`on
`
`Wait
`
`13A
`
`FIG
`
`302
`
`3/
`
`realsocket
`Createfirst
`
`3/
`
`13o1
`Enter
`
`300
`
`FlG.13B
`
`13A1
`
`FIG
`
`13
`
`FIG
`
`Petitioner IBM – Ex. 1011, p. 14
`
`

`
`FIG.13B
`
`________
`
`No
`
`simplexrealsocket
`delete
`
`Closea
`
`nd
`
`existingsocket
`
`Dataf
`
`or
`
`virtualevent
`
`signal
`
`and
`
`virtualsocket
`
`the
`
`316
`
`Yes
`
`Simplex
`
`it
`
`Is
`
`315
`
`signalvirtuals
`
`and
`
`sockets11
`
`Markvirtual
`
`310
`
`311
`
`sockets1
`
`virtual
`
`Disconnect
`
`____________
`
`Queuedatat
`
`o
`
`324
`
`fUflctiOfl
`
`SSI
`
`or
`
`CSI
`
`Start
`
`323
`
`activitytimer
`multiplexsocket
`
`Cancelt
`
`he
`
`322
`
`virtualsocket
`
`Createmultiplex
`
`321
`
`Petitioner IBM – Ex. 1011, p. 15
`
`

`
`plexvirtualsocket
`evento
`multi
`
`the
`
`n
`
`virtual
`
`Waitf
`
`or
`
`332
`
`331
`
`14
`
`FIG
`
`multiolexvirtual
`queuedi
`Flusht
`
`the
`
`n
`
`data
`
`he
`
`virtualsocketqueue
`queuedi
`
`the
`
`n
`
`simç
`
`data
`
`Flusht
`
`he
`
`plexvirtualsocket
`
`multi
`requestt
`
`the
`
`o
`
`via
`
`SSI
`
`the
`
`Sendt
`
`he
`
`Isimplexvirtualsocket
`
`the
`
`browserv
`
`ia
`
`the
`
`to
`
`response
`
`Sendt
`
`he
`
`virtualsocket
`
`simplex
`
`the
`
`evento
`
`n
`
`virtual
`
`Waitf
`
`or
`
`326
`
`325
`
`Petitioner IBM – Ex. 1011, p. 16
`
`

`
`380
`
`Ui
`
`response
`
`375
`
`Closed
`Socket
`
`event
`
`the
`
`Exami
`
`virtualsocket
`
`simplex
`
`the
`
`evento
`
`n
`
`rtual
`
`vi
`
`or
`
`370
`
`366
`
`15
`
`FIG
`
`-I
`
`362
`
`365
`
`373
`
`378
`
`virtualsocket
`
`multiplex
`
`Deletet
`
`he
`
`virtualsocket
`
`multiplex
`
`Closet
`
`he
`
`374
`
`379
`
`the
`
`Delete
`
`Process
`
`DataReceived
`
`372
`
`377
`
`data
`
`he
`
`socketqueue
`simplexvirtual
`queuedi
`Flusht
`
`the
`
`n
`
`simplexvirtualsocket
`
`the
`
`Serverv
`
`ia
`
`the
`
`requestt
`
`o
`
`Sendt
`
`he
`
`Process
`
`361
`
`364
`
`ReceiveC
`
`SI
`
`360
`
`socketaueue
`multiplexvirtual
`queuedi
`Flusht
`
`data
`
`he
`
`the
`
`n
`
`plexvirtualsocket
`
`multi
`responset
`
`the
`
`o
`
`via
`
`CSI
`
`the
`
`Sendt
`
`he
`
`376
`
`virtualsocket
`
`Closet
`
`he
`
`simplexvirtualsocket
`
`the
`
`responsev
`
`ia
`
`Server
`
`Receivet
`
`he
`
`371
`
`Server
`
`the
`
`to
`
`virtualsocket
`
`simplex
`
`reate
`
`363 C
`
`Petitioner IBM – Ex. 1011, p. 17
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet 16 of 19
`
`5859971
`
`FIG 16-1
`
`400
`
`Yes
`
`406
`
`FIG 16-2
`
`420
`
`427
`
`428
`
`Send
`
`Add data
`
`to virtual
`
`socket queue
`
`Return
`
`Connect virtual
`
`to real socket
`
`Petitioner IBM – Ex. 1011, p. 18
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet 17 of 19
`
`5859971
`
`FIG 16-3
`
`430
`
`FIG 16-4
`
`445
`
`436
`
`Yes
`
`Petitioner IBM – Ex. 1011, p. 19
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet 18 of 19
`
`5859971
`
`450
`
`FIG 17-1
`
`Petitioner IBM – Ex. 1011, p. 20
`
`

`
`U.S Patent
`
`Jan 12 1999
`
`Sheet 19 of 19
`
`5859971
`
`480
`
`FIG 17-2
`
`Add bClosehl
`indicator
`to socket queue
`
`No
`
`Yes
`
`495
`
`Remove real socket
`
`from real event
`
`list
`
`Petitioner IBM – Ex. 1011, p. 21
`
`

`
`5859971
`
`to
`
`DIFFERENCING CLIENT/SERVER
`COMMUNICATION SYSTEM FOR USE
`WITH CGI FORMS
`
`FIELD OF THE INVENTION
`
`The present
`ing between
`applications
`such as web browser and
`
`invention relates
`
`invention relates to methods of communicat
`on different computers
`resident
`web server More particularly
`to differencing methods of
`the present
`communication
`over
`an external communication
`between two computers
`
`link
`
`BACKGROUND OF THE INVENTION
`
`initiate
`
`10
`
`20
`
`which for purposes of this example may be home page
`The URL acts as the address of the web site and is unique
`the Internet The web server would then obtain
`throughout
`and supply the web browser with the HTML data corre
`the home page specified by the URL This
`sponding
`operation may involve further communications on the Inter
`net by the Internet web server or the URL may specify the
`server which is in the local network to which the browser is
`attached The web browser would then evaluate the HTML
`data received as an HTTP data stream from the web server
`there were any embedded hyper-links such as an
`to see if
`icon or an image and if such
`hyper-link exists would
`requests specifying the URL of the hyper-link to
`obtain the specified data This data would then be incorpo
`rated into the home page and displayed to the user As is seen
`single user input request by web
`in this simple example
`in multiple additional requests which are
`browser may result
`automatically carried out by the web browser in response to
`the receipt of the HTML data corresponding
`to the user input
`request
`The basic communication structure for an Internet based
`In FIG
`web browser 10
`system is depicted in FIG
`web server 20 over
`communicates with
`communication
`link 15 This communication link is typically
`local area
`con
`25 network connection wide area network
`connection
`combination thereof The
`nection over
`telephone lines or
`web browser 10 communicates with the web server 20 using
`web
`TCP/IP For the majority of Internet communications
`web server using the generic
`browser communicates with
`protocol HTTP which is
`30 communication
`transmitted
`the web browser and
`the web server over
`between
`the
`TCP/IP link between the web browser and the web server
`The actual data transferred between the web browser 10 and
`the web server 20 are HTTP data objects e.g HTML data
`The web server 20 may be
`as described above
`proxy
`which receives web browser communications from num
`ber of web browsers
`and
`routes them to the appropriate
`
`server
`The popularity of the web browser/web
`server and their
`information and transport protocols HTML and
`40 common
`HTTP has lead to rapid acceptance
`of web technology
`as
`for network access
`information
`universal
`interface
`and language for com
`Furthermore because the protocols
`munication between web browsers
`and web servers
`are
`the communication protocols and
`standardized
`will be the same whether
`is using Netscape
`user
`NavigatorTM NCSA MosaicTM WebExplorerTM or any other
`web browser as their web browser to access network
`infor
`for web
`mation Therefore the
`large installed user base
`browsers combined with the connectivity of the Internet and
`servers using the HTTP
`the ease of writing web application
`defined Common Gateway
`Interface CGImake web tech
`forms-based
`nology very attractive
`large class of
`
`to
`
`language
`
`for
`
`55
`
`65
`
`applications
`At the same time that
`the Internet was growing in popu
`larity and acceptance mobile computing was also increasing
`The
`laptops notebooks Personal
`use of
`in popularity
`Digital/Communication Assistants PDAs/PCAs
`and other
`lead to an increase in demands
`devices
`has
`portable
`60 wireless communications Wireless wide
`cellular communications and packet
`radio however suffer
`from common limitations if used in web context The high
`cost per byte of communications slow response time low
`bandwidth
`and unreliability
`all hamper
`use of wireless
`for the stateless communication protocol of the
`technology
`World Wide Web Also because the web protocol is stateless
`the amount of data per request and the number of commu
`
`for
`
`area networks
`
`as
`
`The recent publicity and emphasis on the information
`has increased awareness and acceptance of
`superhighway
`mass communication media This broad
`the Internet
`viable media
`based recognition of
`the
`Internet
`as
`for
`communication and interaction across multiple networks has
`also created
`large established
`user base built upon the
`protocols for interaction between com
`
`Internet standardized
`puter networks
`The paradigm for the Internet
`is that of
`client-server
`relationship where Internet
`clients browsers communicate
`with Internet
`servers To provide
`the
`greater
`access
`the communication protocols and languages utilized
`and servers have become standardized These
`by the clients
`protocols include the Hyper-Text Transfer Protocol HTTP
`which is the communication protocol used for communica
`tions between clients and servers and the Transfer Control
`Protocol TCP/IP the TCP portion of
`Protocol/Internet
`for communication
`which is the transport
`specific protocol
`between computers or applications Also standardized
`is the
`language in which clients and servers communicate which is
`Language HTML Because
`called Hyper-Text Markup
`and language are machine independent
`these protocols
`to sending
`utilize
`connectionless
`best-efforts protocol
`transaction is fully self contained Thus
`information each
`for example each message from client contains informa
`the capabilities of the browser and is independent
`tion about
`of any other communications for the communication to be
`nature of the communica
`completed This self-contained
`tions between
`client and
`server may be referred to as
`stateless communications and
`the amount of
`increases
`client and
`data which must be transferred between
`given communication
`for
`the World Wide Web client/server
`web browser which acts as
`the client may be
`applications
`the user interface The web browser sends user
`requests to
`the appropriate web server and
`formats and displays the
`HTML data returned from the web server The web browser
`also evaluates the HTML data to determine
`there are any
`in the HTML data which
`embedded hyper-link statements
`would require
`subsequent browser requests which would
`web server acts as the
`then be initiated by the browser
`server for the client and processes the web browsers requests
`and returns the requested response as an HTML data portion
`HTTP data stream
`typical world wide web communica
`As an example of
`web browser
`tion the case of
`for
`initiating
`home page
`from the web server
`illustrates the basic
`relationship between HTTP HTML TCP and
`the web
`the web browser
`browser and server When the user of
`specific web site the web
`information from
`initiates communication with the web server by
`to the web server specifying the
`get request
`sending
`Universal Resource Locator URL of the desired web site
`
`to
`
`and
`
`server
`
`if
`
`request
`
`Internet
`
`In the context
`
`of
`
`of
`
`requests
`browser
`
`Petitioner IBM – Ex. 1011, p. 22
`
`

`
`5859971
`
`In
`
`to
`
`invention the second
`further aspect of the present
`determines
`the server base form is identical
`computer
`to
`if
`form and
`form and the
`the
`client
`base
`the
`base
`server
`difference data are transmitted to the second computer
`over
`the external communication link if
`the server base form is
`form The intercepted
`not
`identical
`the
`client base
`to the response from the
`response data stream corresponding
`is then reconstructed
`by combining the
`first
`the external communication
`
`application
`server base form received over
`link with the difference
`
`data received
`
`the external
`
`to
`
`over
`communication link to create
`data stream corresponding
`response The client base form correspond
`the intercepted
`is also updated by storing the
`ing to the interrogated
`request
`form as the client base
`cache entry
`
`received
`
`server base
`
`corresponding
`
`to the interrogated
`
`In
`
`server
`
`first
`
`if
`
`request
`invention the
`rebasing aspect of the present
`determines
`between
`the difference
`computer
`server base form and the intercepted response is greater
`threshold The server base
`difference
`predefined
`
`the
`
`than
`
`form
`
`the wireless connection
`
`if
`
`nication
`requests transferred
`over
`the communication
`are larger than would be necessary
`combining wireless
`were not self contained
`Thus
`communication technology
`technology or any low-speed
`with web technology
`seems impractical as the strength of the
`web
`technology
`in its universal nature
`weaknesses of the wireless technology
`OBJECTS AND SUMMARY OF THE
`INVENTION
`
`exacerbates
`
`the
`
`In view of the above limitations it
`is one object of the
`communication system which
`invention to provide
`present
`reduces the amount of data to be transferred between appli
`cations
`
`10
`
`It
`
`invention to
`the present
`is an additional object of
`communication system which may be used in
`provide
`web browser/server
`environment
`
`It
`
`is
`
`invention to be
`the present
`further object of
`compatible with existing communication protocols and lan
`low speed or wireless communication system 20
`guages in
`requiring modification of web browser or web
`without
`
`server applications
`
`It
`
`corresponding
`
`to
`
`the
`
`storing the intercepted
`
`the first
`
`application
`
`if
`
`to
`
`is updated by
`interrogated
`request
`response data stream received from
`cache entry corre
`as the server base
`the difference between
`sponding to the intercepted request
`the server base form and the intercepted response is greater
`threshold The comparison
`difference
`than the predefined
`form
`then utilizes the updated server base
`In an alternative embodiment of the present
`invention
`plurality of server base cache
`entries which correspond
`from the second application
`are maintained
`the request
`from the second application
`to deter
`
`request
`
`mining if
`
`provide
`determines
`
`identical
`
`base
`
`entries exist
`
`to
`
`computer
`forms is
`
`to the client
`forms is
`
`archival
`
`current
`
`first
`
`is interrogated
`cache
`plurality of server
`from the second application
`corresponding
`to the request
`plurality of server base forms The first
`if one of the plurality of server base
`to the client base form and utilizes the one of the
`plurality of server base forms which is identical
`form if one of
`base
`the plurality of server base
`to the client base form
`identical
`An additional embodiment of
`the
`invention
`present
`includes updating the server cache entry with the data stream
`from the
`from the first application
`in response to the request
`second application
`data sets which
`plurality of difference
`from the second application
`and
`to the request
`correspond
`which represent
`between successive server
`the differences
`cache
`entries are maintained to provide
`archival
`difference
`plurality of CRC entries are also maintained wherein
`data
`each of the plurality of CRC entries is associated with one
`data sets and uniquely identify
`of the plurality of difference
`the server base form from which the difference data set was
`plurality of difference data sets and CRCs exist
`50 derived If
`from the second application
`to the request
`corresponding
`and if one of the plurality of CRCs corresponds
`to
`server
`form which is identical
`form the
`base
`to the client base
`to the CRC which
`difference
`data corresponding
`to the client base form the successive archival
`55 corresponds
`difference data sets and the difference data calculated for the
`form and
`the response from the
`server base
`are sent to the second computer over the external
`application
`communication link The response data stream correspond-
`from the
`ing to the communication from the first application
`the external communication link
`data stream received over
`
`25
`
`30
`
`40
`
`45
`
`60
`
`invention
`
`resident
`
`in first
`
`resident
`
`in
`
`second
`
`the data is transmitted over
`
`an external
`
`computer
`
`to the second
`
`to create
`
`in
`
`request
`
`request
`
`resident
`
`to
`
`if
`
`if
`
`to
`
`invention to
`the present
`is an additional object of
`communication system which reduces the amount
`provide
`web browser and
`of communication required between
`web server and thereby enhances performance of the com
`munication system
`In view of these and other objects the present
`method of reducing the data transmitted over
`provides
`communication link from first application
`and to
`second application
`computer
`computer where
`communication link from the first
`computer One aspect of
`invention includes
`the present
`data stream from the first application to be provided
`storing
`from the
`to the second application
`in response to
`second application
`cache
`computer
`resident
`in the first
`server base cache entry The data stream to be
`to the second application
`provided
`in response to
`is also stored in cache
`from the second application
`cache entry
`in the second computer
`to create
`client base
`from the
`second application
`are evaluated
`Requests
`determine
`client base cache entry corresponding
`to the
`form
`client base
`request exists to provide
`interrogated
`Requests from the second application
`are also interrogated
`to determine
`server base cache entry corresponding
`to
`server base form
`the interrogated request exists to provide
`The data stream corresponding
`to the
`response originated by
`the first application
`in response to the interrogated
`request
`from the second application
`is intercepted prior to transmis
`response on the external communication link and
`sion of the
`compared to the server base form to provide difference data
`between
`the difference
`the
`corresponding
`intercepted
`form The difference
`response and the server base
`data is
`over the external communica
`to the second computer
`sent
`tion link and the difference data transmitted over the external
`communication link sent by the first
`computer
`is acquired
`from the external communication link The response data
`to the communication from the first
`stream corresponding
`from the client/server
`is reconstructed
`specific
`application
`data stream received over the external communication link
`by combining the client base form with the difference
`the external communication link to create
`received over
`data stream corresponding
`to the
`intercepted
`The reconstructed
`data stream corresponding
`to
`to the second applica
`response is provided
`
`response
`
`response
`the intercepted
`
`tion
`
`data
`
`combining the client base
`
`is reconstructed
`
`by successively
`form with the difference
`
`data received
`the external
`over
`communication link to create
`response data stream corre
`65 sponding to the intercepted response The client cache entry
`from the second application
`corresponding
`to the request
`data stream
`also updated with the reconstructed
`
`is
`
`Petitioner IBM – Ex. 1011, p. 23
`
`

`
`5859971
`
`io
`
`15
`
`20
`
`25
`
`30
`
`40
`
`first
`
`In alternative embodiments of the present
`invention the
`web server
`and
`the second
`comprises
`application
`web browser Alternatively
`the
`comprises
`application
`wireless commu
`external communication link comprises
`nication link Furthermore
`embodiment
`an alternative
`from the web browser comprising CGI
`includes the request
`
`request
`As will be appreciated by those of skill
`in this art the
`above described aspects of the present
`invention may also be
`having
`as an apparatus or
`program product
`program means
`computer-readable
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`provided
`
`FIG is
`
`block diagram of
`
`typical web browser/web
`
`server system
`web browser/web
`FIG is
`block diagram of
`system according to one embodiment of the present
`and
`tion utilizing
`client intercept
`server intercept
`FIG is
`flow diagram depicting
`client-side intercept module in
`
`server
`inven
`
`operations
`preferred embodiment
`
`carried out
`
`by
`
`of
`
`the present
`
`invention implementing
`
`coherent caching
`
`system
`FIG is
`flow diagram depicting
`client-side intercept module in
`
`by
`
`operations
`preferred embodiment
`
`carried out
`
`the present
`system
`FIG is
`flow diagram depicting
`operations
`server-side intercept module in preferred embodiment
`
`invention implementing
`
`coherent caching
`
`carried out
`
`of
`
`by
`
`of
`
`the present
`
`invention implementing
`
`coherent caching
`
`system
`FIG is
`flow diagram depicting
`operations
`server-side intercept module in preferred embodiment
`
`carried out
`
`by
`
`of
`
`the present
`
`invention implementing
`
`coherent caching
`
`system
`FIG is
`flow diagram depicting
`carried out
`operations
`preferred embodiment
`client-side intercept module in
`invention implementing
`differencing data
`the present
`
`by
`
`of
`
`carried out
`
`transfer system
`FIG is
`flow diagram depicting
`operations
`preferred embodiment
`client-side intercept module in
`differencing data
`the present
`invention implementing
`transfer system
`FIG is
`carried out
`flow diagram depicting
`operations
`server-side intercept module in preferred embodiment
`the present
`differencing data
`invention implementing
`transfer system
`FIG 10 which is comprised of FIG 1OA and FIG lOB
`which collectively form FIG 10 is
`flow diagram depicting
`server-side intercept module in
`carried out by
`operations
`preferred embodiment of the present
`invention implement
`differencing data transfer system
`ing
`FIG 11 is
`block diagram of one aspect of the present
`invention utilizing virtual sockets
`FIG 12 is
`block diagram of
`client-side intercept
`module and
`server-side intercept module according to one
`invention utilizing virtual sock
`embodiment of the present
`ets
`FIG 13 which is comprised of FIG 13A and FIG 13B
`which collectively form FIG 13 is
`flow diagram depicting
`carried out by
`socket manager of either
`the
`operations
`client-side intercept module
`server-side
`or the
`intercept
`module according to one embodiment of the present
`inven
`tion utilizing virtual sockets
`FIG 14 is
`flow diagram depicting operations
`carried out
`function in one embodiment of the
`client-side intercept
`invention utilizing virtual sockets
`
`by
`of
`
`by
`of
`
`by
`
`present
`
`by
`
`to
`
`the present
`
`FIG 15 is
`operations carried out
`flow diagram depicting
`function in one embodiment of the
`server-side intercept
`invention utilizing virtual sockets
`present
`FIG 16-1 is
`flow diagram depicting
`the virtual create
`one embodiment of
`operation
`according
`invention utilizing virtual sockets
`FIG 16-2 is
`
`to
`
`to
`
`the present
`
`receive
`
`the present
`
`the present
`
`the virtual send
`flow diagram depicting
`one embodiment of
`to
`operation
`according
`invention utilizing virtual sockets
`FIG 16-3 is
`flow diagram depicting
`the virtual
`one embodiment of
`operation
`according
`invention utilizing virtual sockets
`FIG 16-4 is
`flow diagram depicting
`the virtual select
`one embodiment of
`operation
`according
`invention utilizing virtual sockets
`FIG 17-1 is
`
`flow diagram depicting
`the virtual
`one embodiment of
`operation
`according
`and
`invention utilizing virtual sockets
`FIG 17-2 is
`
`to
`
`the present
`
`flow diagram depicting
`the virtual close
`one embodiment of
`operation
`according
`invention utilizing virtual sockets
`
`to
`
`the present
`
`flush
`
`DETAILED DESCRIPTION
`
`invention now will be described more fully
`The present
`hereinafter with reference to the accompanying drawings in
`which preferred embodiments of the invention are shown
`This invention may however be embodied in many different
`forms and should not be construed as limited to the embodi
`forth herein rather these embodiments are pro
`ments set
`vided so that
`this disclosure will be thorough and complete
`and will
`fully convey the scope of the invention to those
`skilled in the art Like numbers
`like elements
`refer
`to
`
`throughout
`FIGS
`to 10 and 13 to 17-2 are flowchart illustrations of
`methods
`and systems according to the invention It will be
`understood that each block of the flowchart illustrations and
`combinations of blocks in the flowchart illustrations can be
`implemented by computer program instructions These com
`puter program instructions may be loaded onto
`computer
`to produce
`or other programmable apparatus
`machine
`such that
`the instructions which execute on the computer or
`other programmable apparatus create means for implement-
`ing the functions specified in the flowchart block or blocks
`These computer program instructions may also be stored in
`computer-readable memory that can direct
`computer or
`other programmable apparatus to function in
`manner such that
`the instructions stored in the computer-
`readable memory produce an article of manufacture
`includ
`ing instruction means which implement
`the function speci
`fied in the flowchart block or blocks The computer program
`instructions may also be loaded onto
`computer
`or other
`programmable apparatus to cause
`series of operational
`steps to be performed on the computer
`or other program
`mable apparatus to produce
`implemented pro
`computer
`the instructions which execute on the com
`cess such that
`puter or other programmable apparatus provide
`steps for
`specified in the flowchart block
`
`particular
`
`implementing the functions
`60 or blocks
`Accordingly blocks of the flowchart
`illustrations support
`func
`combinations of means for performing the specified
`tions and combinations of steps for performing the specified
`functions It will also be understood
`that each block of the
`illustrations and combinations of blocks
`in the
`illustrations can be implemented by special pur
`flowchart
`pose hardware-based
`systems which perform the
`computer
`
`65
`
`flowchart
`
`Petitioner IBM – Ex. 1011, p. 24
`
`

`
`5859971
`
`is
`
`first
`
`or steps or combinations of special
`functions
`specified
`and computer
`purpose hardware
`instructions
`FIG illustrates one embodiment of the present
`inven
`tion As seen
`in FIG
`web browser 10 communicates
`client-side intercept module 30 The web server 20
`with
`server-side interrupt module 40 The
`communicates with
`client-side interrupt module 30 then communicates with the
`server-side interrupt modul

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