Motorola Mobility, Inc. v. Apple, Inc.

Filing 94

NOTICE by Motorola Mobility, Inc. of Filing Brief on Claim Construction (Attachments: # 1 Exhibit, # 2 Exhibit, # 3 Exhibit, # 4 Exhibit, # 5 Exhibit, # 6 Exhibit, # 7 Exhibit, # 8 Exhibit, # 9 Exhibit, # 10 Exhibit, # 11 Exhibit, # 12 Exhibit, # 13 Exhibit, # 14 Exhibit, # 15 Exhibit, # 16 Exhibit, # 17 Exhibit, # 18 Exhibit, # 19 Exhibit, # 20 Exhibit, # 21 Exhibit, # 22 Exhibit, # 23 Exhibit, # 24 Exhibit, # 25 Exhibit, # 26 Exhibit, # 27 Exhibit, # 28 Exhibit, # 29 Exhibit, # 30 Exhibit, # 31 Affidavit)(Giuliano, Douglas)

Download PDF
Exhibit 13 to Motorola’s Opening Claim Construction Brief July 28, 2011 11111111111111111111111111111111!11.11111911111111111111111111111111 United States Patent [11] Patent Number: [45] Date of Patent: [19] Eggleston et al. 5,958,006 Sep. 28, 1999 3/1997 Morikawa 4/1997 Canale 7/1997 Thadani 393/616 395/200.01 370/241 [54] METHOD AND APPARATUS FOR COMMUNICATING SUMMARIZED DATA [75] Inventors: Gene Eggleston, Cary; Mitch Hansen, Fox River Grove; Anthony Rzany, Crystal Lake, all of Ill. Primary Examiner—Eric Coleman Attorney, Agent, or Firm—Terri S. Hughes Assignee: Motorola, Inc., Schaumburg, Ill. [57] [73] 5,613,108 5,619,648 5,648,965 In a main embodiment, select and summary (S&S) indices (213, 228) are used to provide user flexibility in reviewing and requesting otherwise filtered data. Both the user's remote unit (201) and communication server (220) maintain S&S indices containing identifying (summary) information about data which has not been fully transferred between the communication server and remote unit. As new data is filtered for transfer (704-706), identifying information is captured (710) for any non-qualifying data by either a host unit or the communication server. This information is stored (714) in the communication server's S&S index, and transferred (718) via update messaging to the remote unit. When reviewing its updates or S&S index, the user may request (722) such of the data that it desires partial or full transfers of for further review. Thus, a cost efficient review mechanism is provided to users for determining whether to transfer data that otherwise fails selected filter parameters. [21] Appl. No.: 08/574,541 [22] Filed: Dec. 19, 1995 Related U.S. Application Data [63] Continuation-in-part of application No. 08/557,657, Nov. 13, 1995. [51] [52] [58] Int. C1. 6 U.S. Cl. Field of Search [56] GO6F 15/16 709/219; 709/206 395/200.62; 709/206, 709/216, 217, 219 References Cited U.S. PATENT DOCUMENTS 7/1994 Boat 6/1996 Liu 7/1996 Amram 5,333,266 5,530,703 5,537,586 395/200 370/85.13 395/600 BSI XCVR /MODE 27 Claims, 8 Drawing Sheets 216 218 201 219 BS2 203 205 ---N TIMER L PROTOCOL TRANSLATOR II 6 MAIL DB 211 1213 . \ 209 214 --230 CSO MANAGER 244 VIRTUAL SESSION MANAGER TIMER I MEMORY...ill 212 • ROCESSOR PROFILE I ill AP STORE 07 PSF S&S 0: NDEX DB RR PRG POST OFFICE HOST SERVER MAILBOXES' 222 204 USER I/0 DISPLAY 240 242 SESSION MANAGER 217 202 DATA CODER ABSTRACT 255 HOSTS 7260 226 ADMIN HOST(A) \ I ACTIVE CLIENT PROFILE DB INACTIVE CLIENT PROFILE DB CLIENT MAIU S&S INDEX DB MEMORY -..'= - 228 COMMUNICATION SERVER '-225 EXHIBIT 13 PAGE 1 BILLING MANAGER 250 220 262 266 CLIENT /GROUP PROFILE DB 264 100 130 / COMM / SERVER 115 HOST/ SERVER 110 111 FIG.1 EXHIBIT 13 PAGE 2 00 0 0 C1 216 201 242 21 CM BS2 XCVR /MODE 202 DATA CODER 203 SESSION MANAGER 217 7 PROTOCOL TRANSLATOR '230 CSO MANAGER 244 / 205 VIRTUAL SESSION MANAGER i 06 USER I/O TIMER DISPLAY TIMER g I MEMORY PROFILE STORE S&S NDEX DB 07 9 I MAIL DB 4 211 -ROCESSOR AP PSF 0: 213 209 214 F1G.2 PRG 229 CONTROLLER 226, t \I ACTIVE INACTIVE CLIENT CLIENT PROFILE PROFILE DB DB COMMUNICATION SERVER • HOST B 234 PRG MEMORY -....= ----246 255 231 [ QUERY MANGER k 224 232 POST OFFICE HOST SERVER MAILBOXES' 222 204 7- 240 X260 DMIN HOST(A) t CLIENT MAIL/ S&S INDEX DB 1.11.79 --- 225 = BILLING MANAGER 250 220 262- I CLIENT /GROUP PROFILE DB 266 264 CA ' .0 A .. 0 0 01 EXHIBIT 13 PAGE 3 ▪ U.S. Patent Sep. 28, 1999 5,958,006 Sheet 3 of 8 MS/CLIENT 301 HOST/SERVER(E. G., POST OFFICE) VSM 303 ACK 302 AUTHENTICATION; SEND REGISTRATION/ LOGON TO HOST RECEIVE REGISTRATION' AUTHENTICATE 305 304 INSTANTIATION 11 -- .1 306 SEND REGISTRATION 1-307 308 309 RECEIVE REG.;FULLY 1219(' FULLY QUALIFIED;STARt QUALIFIED,START TIMER TIMER VIRTUAL SESSION ESTABLISHED--•- • -•--SESSION ESTABLISHED—•• • QUERY FOR MAIL 321 • 320' • 7 324 • RECEIVE NEW MAIL I, RECEIVE MAIL, RECEIVE MAIL FOR MS FORWARD TO CLIENT ACKNOWLEDGE . 1 327-j 331 • • • • • FORWARD MAIL TO VSM ACKNOWLEDGE TO SERVER UPDATE TIMER 322 UPDATE POST OFFICE BOX(E.G., MARK READ) UPDATE TIMER • • 328 332 OTHER DATA EXCHANG OTHER DATA EXCHANG 326 330 OTHER DATA EXCHANG 333 UPDATE TIMER UPDATE TIMER 334 MORE DATA? 336 NO NO MORE DATA. FIG. 3 338 TIME OUT? TIME OUT? 340 339 REMOVE QUALIFICATION REMOVE QUALIFICATION LOGOFF EXHIBIT 13 PAGE 4 NO 7341 LOGOFF CLIENT I U.S. Patent Sep. 28, 1999 MS/CLIENT 5,958,006 Sheet 4 of 8 COMM SERVER HOST/SERVER QUERY OBJECT FOR MAIL RECEIVE QUERY 408----/ I 406 NO 414 416 RECEIVE MAIL; ACKNOWLEDGE t __ RECEIVE QULIFYING MAIL;FORWARD • • o APPLY FILTERS; I SEND QUALIFYING MAIL RECEIVE MAIL APPLY FILTERS • FORWARD MAIL 1.- 420 ------FORWARD QUALIFYING MAIL /424 RECEIVE MAIL; ACKNOWLEDGE 4 422 ACKNOWLEGE (LIST QUALIFYING, UNQUALIFIED MAIL) 430 / GENERATE MAIL II 428 MARK INDEX 426 • • 432 APPLY FILTERS 1 FORWARD QUALIFYING 434 / MAIL/ATTACHMENTS; RETAIN ALL UNQUALIFIED MAIL 436 • •• FORWARD MAIL 438 440 USER OVERRIDE, SEND UNQUALIFIED MAIL 11 —"_ FORWARD MAIL • • • 444 442 CHANGE FILTER SETTINGS) ACK RECEIVE; ADJUST CLIENT PROFILE/OBJECT • • • EXHIBIT 13 PAGE 5 F1G.4 U.S. Patent Sep. 28, 1999 5,958,006 Sheet 5 of 8 APPLY FILTERS TO MAIL 602 i. APPLY FILTERS TO MAIL MSG SIZE> FILTER SIZE? 604 YES 606 7 TRUNCATE MESSAGE 11 NO / 518 TEXT ATTACH -MENTS>PERMITTED NO OR SIZE? FORWARD QUALIFYING MESSAGE(S1 NO FIG.5 OMIT 608 YES 610 7 TRUNCATE/OMIT TEXT; I FLAG FILE ATTACHMENTS PERMITTED? 612 NO 7 FILE/FLAG 7. 616 yEs L SEND MESSAGE FIG.6 EXHIBIT 13 PAGE 6 614 II U.S. Patent Sep. 28, 1999 HOST/SERVER COMM SERVER MS/CLIENT 5,958,006 Sheet 6 of 8 RECEIVE QUERY I APPLY FILTERS SEND QUERY OBJECT1 702 NO 708. • • • -4 SEND QUALIFYING MAIL 710 714 I UHL IDEN 1 11 YINCi \ RECEIVE ID INFO, SAVE IN SUMMARY INDEX - — INFORMATION FOR EACH NON-QUALIFYIN MAIL, SEND WAIT PREDETERMINED1 PERIOD? 716 ' MARK QUALIFYING ANDI NON-QUALIFYING MAIL — DETERMINE CLIENT SUMMARY INDEX CONTENT, SEND SUMMARY INDEX DELTA ----- 718 724 USER REQUESTS RECEIVE REQUEST, R SPECIFIED MAIL;SEND FORWARD OBJ: REQUEST(E.G., TO POST OFFICE SERIAL NO.) RECEIVE; UPDATE CLIENT SUMMARY INDEX, PROMPT USER 730 RECEIVE MAIL; ACKNOWLEDGE, UPDATE INDEX /726 RETRIEVE SPECIFIED I MAIL, FORWARD RECEIVE, FORWARD TO CLIENT 728 UPDATE INDEX, SEND ACKNOWLEDGEMENT 732 '-734 MARK MAIL AS READ F1G.7 801 802 CLIENT 1 SUMMARY SERIAL NO.1 HEADER INFO.1(E.G.,AUTHOR;SUBJECT;DATE/TIME IN; SIZE:ACKNOWLEDGEMENT/SIZE:PRIORITY) INDEX SERIAL NO.2 HEADER INFO 2 FIG.8 EXHIBIT 13 PAGE 7 U.S. Patent Sep. 28, 1999 MS/CLIENT HOST/SERVER COMM SERVER 902 FORM REPLY (NEW CONTENT) 5,958,006 Sheet 7 of 8 904 GENERATE OPTIMIZED REPLY="DELTA" BETWEEN REPLY AND A PREEDING MESSAGE, AND PRECEEDING MESSAGE IDENTIFIER COMPARE OPTIMIZED RECEIVE OPTMIZED REPLY AND STANDARD REPLY REPLY,SEND SHORT -FST REQUEST PRECEEDIN MESSAGE CORRESPONDING TO PRECEEDIN MSG.ID 910 1" /912 ---l■ RECONSTRUCT REPLY USING DELTA AND PRE CEEDING MESSAGE RETRIEVE PRECEEDIN MESSAGE; SEND TO COMM SERVER 914 SEND REPLY TO ADDRESSEE 920 916 ,-918 -, RECEIVE REPLY IF FOR CLIENT • •• • •• COMPARE REPLY TO PROCEEDING MESSAGE TO SOURCE/ADDRESSOF FROM CLIENT(IN INDEX) FOR CONTENT MATCH GENERATE OPTIMIZED REPLY=DELTA PLUS PRECEEDING MESSAGE IDENTIFIER 922 ,-926 924 RECONSTRUCT REPLY UPDATE INDEX; ACKNOWLEDGE `928 SEND OPTIMIZED REPL 930 UPDATE INDEX, ETC. - EXHIBIT 13 PAGE 8 FIG.9 U.S. Patent 952 Sep. 28, 1999 MS/CLIENT COMM SERVER SEND MESSAGE ADMIN/SERVER MESSAGE PARAMETER(E.G.,SIZ , 954 CLASS) <USE LIMIT(FROM CLIENT OBJECT R DB9 964 968 ALERT CLIENT USE LIMIT REACHED A 70 'If OPTIONALLY(IF CAPABLE) 1)SEND REQUEST TO ADMINISTRATOR FOR ADDITIONAL ALLOCATION 2)AUTHORIZE COMM. SERVER PROVIDER FOR ADDITONAL CHARGE /DEBIT j 5,958,006 Sheet 8 of 8 NO ES 956 • •• FORWARD MESSAGE USER PRIVILEGE QUALIFY OR OVERRID 9 NO 966 FORWARD NOTIFIER TOI CLIENT, (OPTIONALLY) ADMINISTRATOR 1)FORWARD REQUEST TO ADMINISTRATOR OR 2)PROCESS CHARGE/ DEBIT AMOUNT,ADJUST LIMIT IF APPROVED 958 UPDATE CLIENT OBJECT/ DATA BASE REFLECTING NEW TRANSACTION TOTAL (ESTIMATED), DETERMINE NEW USE LIMIT FORWARD NOTIFIER T ADMINISTRATOR OF ANY OVERRIDE; ALERT TO CLIENT ,-962 VERIFY PRIVILEGE; Fl ALERT ADMINISTRATO 972 974 UPDATE USE LIMIT,NO PROCESS REQUEST FOR -TIFY CLIENT PRG, ETC. UPDATE PRG USE LIMIT 11-ar APPROVAL OF NEW LIMIT ■ 976 NOTIFY COMM. SERVER 980 ( NEW 978 USE LIMIT END ) < ALERT THERESHOLD? 984 982 YES, FORWARD NOTIFIER T ALERT CLIENT CLIENT, (OPTIONALLLY) ADMINISTRATOR 986 I RECEIVE BILLING INFOR -MATION FROM PROVIDER, 988 REPLACE ESTIMATED USE CHARGES IN BILLING UPDATE PRG USE LIMIT, INDEX, UPDATE DIRECT ALERT CLIENT OBJECT REFLECTING NEW TRANSACTION TOTAL, UPDATE USE LIMIT, NOTIFY 990 r CLIENT, ADMIN. CLIENT REQUEST • • • DOWNLOAD OF CUR r92 RENT BILLING INDEX UPDATE EVENT OCCURS (E.G., START NEW • • • .1111- 1 BILLING CYCLE); ADJUST USE LIMITINTIFY CLIENT F. EXHIBIT 13 PAGE 9 • •• F1G.10 5,958,006 1 2 METHOD AND APPARATUS FOR COMMUNICATING SUMMARIZED DATA The present application is a continuation-in-part of U.S. application Ser. No. 08/557,657, filed Nov. 13, 1995, entitled "Method and Apparatus for Virtual Session Communications", by Gene Eggleston and Mitch Hansen, commonly owned together with this application by Motorola, Inc. now Pat. No. 5,771,353. FIELD OF THE INVENTION The present invention relates to communications and more particularly an improved method and apparatus for transferring data in a communications system. BACKGROUND The last 10 years have seen a tremendous increase in the demand for communications services, including both wired and wireless networks capable of handling data communications. Unlike real-time voice services, such as standard telephony or cellular wireless services, in which circuitswitched communications are used because of the sensitivity of users to the timing of oral dialogue/voice data, greater efficiencies can often be achieved in non-voice data communications through the use of packet-switched or hybrid communications systems. This is particularly the case with communications to remote users (e.g., persons sending messages via one of the well-known available wireless networks like GSM (Global System for Mobiles) or AMPS (Advanced Mobile Phone System) cellular), where protracted circuit-switched sessions into a mail server or LAN (local area network) could be prohibitively expensive due to the high per-minute session charges by the wireless service provider. One solution to this problem has been for users to limit, as much as feasible, their communications to sessionless communications. This can be done, e.g., by subscribing to additional email services that can receive LAN/WAN (wide area network) email and send out broadcast pages and transmissions to registered users, in lieu of requiring a user to maintain a session with a mail server. However, this disadvantageously requires subscription to an additional service, and is typically limited in the types of applications supported. With the rapid growth in emerging sessionoriented applications—like the popular client server application of Lotus Notes®—the need is growing for more cost effective solutions to providing connectivity of such sessionoriented applications and users remotely located from their host servers. Regardless of whether a session-oriented or session-less communication service is used, it is also desirable to limit the amount of information communicated between a remote user and host, both to save off-site user's time and to limit the costs arising from the more expensive rates for remote communications. Unfortunately, typical applications like email do not provide for user-selected methods for choosing and limiting the volume of downloaded communications, or for filtering uploaded or downloaded communications. Thus, a user who wants to receive remote messaging is left with an option of receiving all his messages (or some summary thereof), even the ones he or she might otherwise be willing to leave unprocessed until a later time when no longer using expensive remote communications services. Further, many processes, like that of a typical email reply, are wasteful of bandwidth by resending all earlier messages each time a new reply is generated, even though the earlier messages may still be stored at both ends of the wireless network. In addition to the above concerns over how to optimize the types and amount of data being transferred, there is additionally a problem in a lack of effective techniques for monitoring and even controlling an aggregate use of tariffed 5 networks. While the network service providers have means for tracking use by an individual unit basis, which is totaled in periodic billing statements, this information is typically unavailable to users or their managers/application administrators. Thus, users and managers are typically left without 10 any effective means for controlling the level of messaging during a billing cycle, and can only monitor or react to usage following the service providers periodic statements. There remains therefore a need for an improved means for data communications that solves these and related problems. 15 BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a communications system according to a first embodiment of the invention; FIG. 2 is a block diagram of a communications system 20 according to a further embodiment of the invention; FIG. 3 is a flow chart illustrating virtual session data transfer between the different functional entities of the wireless communications system of FIG. 2; 25 FIG. 4 is a flow chart illustrating a pre-stage filtering embodiment for data transfer between the different functional entities of the wireless communications system of FIG. 2; FIG. 5 is a flow chart illustrating one embodiment of 30 pre-stage filtering for data transfers; FIG. 6 is a flow chart illustrating another embodiment of pre-stage filtering for data transfers; FIG. 7 is a flow chart illustrating a message summarization and selection embodiment for data transfer between the 35 different functional entities of the wireless communications system of FIG. 2; FIG. 8 is a diagram illustrating an embodiment of a summary index for use in the process of FIG. 7; FIG. 9 is a flow chart illustrating an optimized reply 40 embodiment for data transfer between the different functional entities of the wireless communications system of FIG. 2; and FIG. 10 is a flow chart illustrating a rate governor 45 embodiment for data transfer between the different functional entities of the wireless communications system of FIG. 2. DETAILED DESCRIPTION These problems and others are solved by the improved method and apparatus according to the invention. A presently preferred first main embodiment of the invention is a system including a virtual session manager (VSM) for establishing and maintaining a sessionless communication 55 path with a first data processing device (e.g., a mobile client) on the one hand and a session-oriented communication path with a second data processing device (e.g., a host system). The session-oriented communication protocol (including network and application layer protocols) with the host 60 system permits remote access to, e.g., LAN-based applications, while the virtual session, via a sessionlessoriented communication protocol, between the VSM and remote (i.e., coupled via a tariffed network or connection) client permits this access to be carried out without the 65 expense of a dedicated/circuit switched connection. In a second main embodiment, a prestage filter stage is provided for applying user-definable filter parameters (e.g., 50 EXHIBIT 13 PAGE 10 3 5,958,006 reject, pass, or granularity filters) on data being transferred between the remote communication unit and communication server. For downloading, e.g., email from a host post office, a communication server controller preferably either for- wards the filter parameters in a query object or message to the post office to apply and return qualified mail, or the communication server receives all unprocessed mail and applies the filters locally, only acknowledging as processed that mail which is qualified. For uploading, e.g., email from 4 provided for both limiting user or group data transfer beyond a set amount, as well as providing alerts to users as the limit is approached. Turning now to FIG. 1, there is generally depicted a 5 communication system 100 in accordance with a first embodiment of the invention. This system is configured to support one or more user devices such as wireless subscriber units (i.e., mobile station (MS) 105) communicating with host processor 115 via an infrastructure including base a client, a client controller applies an upload prestage filter 10 station 120 and intermediate system 125 coupled to a data so as to retain all filter rejected mail, while transmitting mail network 130. In the illustrated case mobile station 105 is a passing the filters. Thus, only desired data transfers (i.e., portable computer having an rf (radio frequency) modem those meeting user defined filters) are communicated over 106. A communications server 110, including a virtual the expense-bearing networks between the remote unit and session manager (VSM) and query manager (QM), is communication server. is coupled between the public data network 130 and the host In yet another main embodiment, a select and summary server 115. The virtual session manager and query manager (S&S) listing or index is used to provide user flexibility in are, preferably, an appropriately configured data processing reviewing and requesting otherwise filtered data. Both the device, the VSM and QM program being shipped for loading user's remote communication unit and communication on the server 110 via any convenient means such as a server maintain a S&S index containing identifying 20 machine-readable CD-ROM 111 (compact disc-read only (summary) information about data which has not been fully memory) or the like. Counterpart client-communications transferred between the communication unit and communi- software, e.g., a prestage filter, can be shipped via a similar convenient form like CD-ROM 107, downloaded directly cation server. As new data is reviewed and filtered for transfer, identifying/summary information is captured for from server 110 to subscriber 105 (also being, e.g., a data any non-qualifying data by either a host unit or the com- 25 processing device, by which is meant virtually any processor munication server. This information is stored in the com- (but not a human) capable of processing data for a promunication server's S&S index, and at least periodically, or grammed result, whether a general purpose computer or upon request, transferred via update messaging to the remote more specialized electronic processor), or the like. communication unit. Upon reviewing its updates or its S&S In this embodiment the mobile user 105 communicates index, the user may send a request for such of the data that 30 with the server/VSM 110 using any appropriate data protoit desires partial or full transfers for further review. Thus, a col being used by the data network 130, as necessarily cost efficient review mechanism is provided to users for modified for transport over the wireless infrastructure; the determining whether to transfer data that otherwise fails wireless infrastructure could be, e.g., any private system like selected filter parameters. ARDIS® or DataTAC®, CDPD (cellular digital packet In a fourth main embodiment, a method and apparatus for 35 data), GPRS (GSM Packet Radio Service), and the like. optimized reply to messaging is provided. When sending a Thus, a sessionless data flow between the mobile user 105 reply, the remote communication unit's controller generates and server/VSM 110 occurs on an event driven basis, and no a delta (e.g., data representing the content difference costly connection is maintained when there is nothing being between two messages) between a preceding message and communicated. In order to keep connectivity costs to a the reply message, and forms an optimized reply using the 40 minimum, the server 110 is preferably connected to the delta and an identifier of the preceding message. On receiv- LAN/WAN on which the host 115 is also connected, via any ing the optimized reply, the communication server uses the standard LAN/WAN communication channel (e.g., a bus or data unit identifier to retrieve the preceding message from a backbone). This allows the communications server 110 to further host (e.g., the post office mailbox of the user asso- advantageously maintain the same session with the host 115 ciated with the remote unit), reconstructs the full reply from 45 that the client 105 typically enjoys when connected to the the retrieved message and the delta, and forwards the full LAN/WAN. Thus, by use of the server 110 the client 105 can reply to the addressee. When receiving a reply for the remote achieve a virtual session with the host 115 with almost the unit, an index is preferably maintained at both the remote same access as if directly connected to the host's 115 LAN, unit and communication server of mail stored at the remote but at a substantial reduction in the cost of communicating unit. Resort is made to this index to determine a preceding so via the wireless network and PDN 130. message forming part of the reply. An optimized reply is FIG. 2 illustrates an alternative communication system similarly formed from a delta and identifying information of 200 embodiment of the present invention. A first client, a the preceding message, and sent to the remote unit. In this mobile end system (M-ES) computer including a user device manner, the volume and expense incurred in reply messag- 201, is in communication with a base station (BS1) 218 of ing is greatly reduced, by only sending a delta and small 55 a wireless communication system. This base station 218 is header (i.e., the identifying information). coupled, e.g., on a same bus or via bridges/routers, to a Finally, in a fifth embodiment, a rate governor is provided communication server 220 which includes VSM 230. An for monitoring and controlling the amount of communica- electronic mail (email) post office is coupled locally to VSM tions between the remote unit and communication server. 230, either as another program running on the same comPreferably, as threshold(s) are passed a user is alerted to 60 munications server 220 or located on another server 240 of amounts (time and/or charges) spent or remaining, and once the communications server's 220 LAN/WAN. It is not a use limit is reached further communication is restricted. A important, however, where the post office is located for main rate governor is maintained at the communication purposes of operation of the VSM 230, as is illustrated by server, allowing access, control and the like by system other application hosts B and C 255, 260 being in commuadministrators and the like. A further rate governor, respon- 65 nication via other networks such as a public data network or sive to the main rate governor, may also be used at the public switched telephone network 250. In fact, the same remote unit. By means of this rate governor a mechanism is user 201 could be concurrently coupled via the VSM 230 to, EXHIBIT 13 PAGE 11 5,958,006 5 6 for example, a local email post office 240, a remote clientserver host 255, a further database host server (not shown), an administrator host server 260, a multimedia host, a voice processor, etc. It should be understood that for purposes of this application, a first device or component is responsive to or in communication with a second unit or component regardless of whether the first and second units are directly coupled or indirectly coupled, such as via intermediate units, including switches that operatively couple the units for only a segment of time, as long as a signal path can be found that directly or indirectly establishes a relationship between the first and second units. For example, the client computer 105 is in communication with the VSM server 110 even though intermediate system (e.g., a router or switch) 125 and a packet network 130 having multiple switches etc. are disposed between the user device 105 and VSM server 110. In the illustrated case client 201 includes a data transfer manager or exchange unit 206, which in simple form could be an appropriately programmed electronic processor 207 (e.g., a general purpose CPU (central processing unit) and memory or data store 211. A timer 205 is also preferably employed in the data exchange control process, as will be explained further in connection with the flow chart of FIG. 3 below. A typical client 201 would also include some form(s) of user interface such as display 204, a data encoder/ decoder 203 to accommodate the system communications protocol(s), and a transceiver (if using rf or infrared communications) and a modulator-demodulator (or modem) 202 to connect to a wireless or wireline communications network. Transceiver/modem 202 in this case would either include a built-in or attached user module for wireless LAN communications; the specific type will vary depending on the system, e.g., including PCMCIA (personal computer memory card interface association) wireless modems, and attached or built-in PSTN (public switched telephone network) modem, etc. Specific features of data exchange unit 206 preferably includes (as more fully described below) a prestage filter (PSF) manager 208, rate governor (RG) 209, user profile store 212, select and summary index store 213, and mail store 214 (a store being any available device (e.g., ROM (read-only memory), disks) or program (e.g., a database) for storage of the specified information). The communication server 220 preferably includes a data transfer manager or controller 229 having a VSM 230, memory stores for storing active client profile (user parameters) and inactive client profile information 226 and 227, a timer 224, and optionally some form of protocol translators or formatters 222. The VSM 230 serves to manage the virtual session with the client 201 and session with host systems 240,255 and/or 260 based on the parameters loaded into the active user parameter store/profile memory 226 or object. Controller 229 preferably also includes a query manager (QM) 231 for controlling specific processes (e.g., sending messages to a post office to query for unprocessed messages and forwarding received messages etc.), and a prestage filter 232 and rate governor 234. Memory 225 also preferably includes a client select and summary index database or store 228, which will also be described more fully below in connection with FIGS. 7 and 8. The protocol translators 222 serve to format or code the messages as appropriate for transport between the VSM 230 and client 201; these include, e.g., appropriate protocol software that can be located at the communications server, or any other convenient processor per design of the given communication system. By messages is meant any appropriate data unit (whether a frame, datastream, packet, or other format), including objects, datagrams, etc., for containing information being communicated. Communications server 220 is also illustrated as supporting additional users, e.g. user module 216, communicating via different access points, e.g., control module (CM) 217 of a wireless LAN and base station 219, all access points 5 217-219 being coupled via a common bus, backbone, etc. These base stations can be part of the same communication system, similar systems owned by different service providers, or even different systems, all of which may be different from the communications server service provider. 10 Thus, for example, a single communications server can support at one local region 215 an ARDIS® node, a RAM® node, a wireless LAN controller module, a CDPD node, an in-building cordless telephone node, etc., allowing users from a variety of systems to access the same communicais tions server and post office. Users not registered could access through the appropriate one of these nodes along the model of FIG. 1, i.e., via PDN 250 to a remote communications server having their VSM/QM. Thus, any number of system configurations is possible, limited only by the net20 work services provided and the user's preference. A process by which a VSM manages communications between client and host is illustrated in the flow chart embodiment of FIG. 3. This process typically begins with a user event, such as instantiation (forming) of a communi25 cations object at the client and sending a registration message (steps 301-302). Alternatively, the infrastructure could initiate the communications by sending a page or the like requesting the client to register (for example, when the client has registered with the wireless system but not yet requested 30 registration with the communications server). In any event, once a registration message is received by the communications server, it preferably authenticates and otherwise qualifies the client, including sending a logon/registration message to the host for its authentication of the client (steps 35 303-305). Upon successful authentication, the communications server instantiates a client object (CO) for the communications session including client parameters retrieved from an inactive client parameter store, as modified by the user in his registration or subsequent messages (step 306). 40 These parameters include at a minimum client and host identifiers, but may also include additional preferences based on the type of communications involved. Also, the registration and authentication process can be handled by the VSM, or alternatively by another appropriately programmed 45 entity of the communications server. Following instantiation at the server, a response message, e.g., a further registration message, is sent to the client, and an acknowledgment (ACK) returned to the server; both client and server then retain the instantiated objects as fully qualified, and may 50 start session timers (steps 307-309). At this point a virtual session has been established between the client and the VSM, and a regular session established between the VSM and host computer. If the registration is not successful, then any instantiated object is deleted, with the client returned to 55 an inactive status. Upon establishing the virtual session, a query is preferably generated by query manager requesting unprocessed data for the user, and the VSM forwards the query to the host (step 320). In the case of email, e.g., this might include 60 generating a request message for all unread mail in the users post office box. The post office then checks for new mail received, and forwards all such mail to the VSM (steps 321-322). Because the VSM has established a LAN session with the post office, these communications are performed 65 relatively quickly, e.g., in accordance with the LAN's and host's typical processing for their current loading level. The VSM in turn forwards the data (i.e., mail) received via the EXHIBIT 13 PAGE 12 5,958,006 7 8 virtual session transport (step 323). For example, in the case of FIG. 1 where PDN 130 is an ISDN (integrated services digital network) network connected to a CDPD wireless network, the mail would be appropriately packetized by the communications server and delivered via the serving BS 120 according to ISDN/CDPD system protocols. This can take up to several minutes or more for a moderately sized mail package. However, since the data is being delivered in a sessionless mode, the amount of time the communication channel (including the more expensive wireless communication channel portion, as well as the portion via PDN 130) is tied up is kept to a minimum. This also translates into a significant cost savings for the user, since the user is only charged on a per packet basis for mail when it is actually transported, and doesn't have to pay for a prolonged session to keep connected to the post office in order to receive new mail. Finally, upon receipt by the client, appropriate acknowledgments are sent and the post office box updated, e.g., by marking the mail as read or processed (steps 324-326). While in some systems it may be advantageous to store some of the data at the communications server, in the case of email and the like it is presently envisioned that the communication server is preferably used in maintaining the sessions between client and host, and not as a remote server for the host. Thus, rather than have all new data from the host pushed down to the communications server, most data exchanges are preferably initiated, at some predetermined interval or intervals, by the communications server (e.g., by the query manager). Further, it is an inefficient use of resources to continue querying a host or attempting to deliver data when the client is no longer receiving at its remote location (occurring, e.g., when the client leaves a coverage area, or the user turns off its modem or processor). Thus, a process for either maintaining the client in an active status, or removing the client from active status in response to an event, is also preferably included in the VSM. One such process is to utilize timers at both client and VSM to determine when a virtual session is no longer active. The timers are first set upon registration, and are subsequently reset after each data exchange (steps 327-336). If no data exchange occurs within a predetermined period of time, say 20 minutes, both client and VSM would remove the client qualification (i.e., destroy the client object for the communication session) and, if desired, mark the client as being in an inactive status (steps 337-340). The VSM would also forward a logoff message to the host (step 341). In order to avoid an undesired time out, the client is preferably configured to send a short message after a predetermined period since the last data exchange, sufficiently prior to the time at which the timers elapse so that the VSM can receive it. Otherwise, if there are only intermittent data exchanges, the client may be required to frequently re-register; this in turn means the client will not be notified of outbound data until the client re-registers and is again coupled via the virtual session manager. Turning now to FIGS. 4 through 6, a presently preferred embodiment is shown for prestage filtering data for transfer between the different functional entities of the wireless communications system of FIG. 2. This typically begins with the generation of a query object or message at the communications server (step 406). This object/message may be created in response to a preceding client generated message (e.g., a request generated when clicking on an application button requesting updates, executing the mail application, etc.), or in response to settings in the client profile. However, after updating the active client profile/ object for an active client application, the query manager is preferably programmed to send query objects at predetermined intervals for each application being run by each active client, the intervals varying depending on the application 5 type or administrator preference (e.g., for mail about every 10-30 seconds or longer). Alternatively, the intervals could be user specified via the client profile, for example to shorten the query intervals for time critical applications (e.g., for emergency services or "real time" applications), or lengthen 10 the intervals when less frequent updates are desired (e.g., to conserve on traffic expenses for updates to a rapidly changing, but non-time critical, group-ware file or document). The content of the query objects will vary depending both 15 upon the application and client filter settings. One approach for mail applications is to have a predetermined number of user-definable filter attributes stored in the client profile databases (e.g., stores 212 and 226-227 of FIG. 2). These attributes can include, by way of example, the priority of a 20 message (e.g., urgent, normal, or low); the date on which the message is sent or posted; the size of the message (typically uncompressed, i.e., the normal stored size; although transmission size or cost could also be used); the author of the message; and the subject of the message (e.g., key words in 25 a subject line or in the text). These attributes can simply be used as reject criteria (e.g., reject all messages having "low" priority, date before "12/15/95", size more than "2" kbytes (kilobytes), or subject not containing "project x"), pass criteria (all messages from "Boss") or a combination of both, 30 the variety and complexity being a matter of design choice. These attributes also preferably include certain "granularity" filters, i.e., filters additionally limiting the size of a message passing all or most of the other filters. Three possible examples of granularity filters are a truncation size filter 35 (e.g., truncate the message after the first "100" bytes), and text or file attachment filters (e.g., indicating whether or not to strip attachments). Thus, messages passing all criteria but message size could still be received in a truncated size meeting the message size criterion. Alternatively, messages 40 failing the author or subject filters could still be passed with header information, by setting all rejected messages to be passed with a text truncation size of "0" bytes. One skilled in the art will appreciate that a variety of other reject/pass filter criteria may be used, and the specific ones and combinations of user-definable (or even administrator-definable) features will be largely a matter of design choice depending on factors such as the desired functionality, complexity, and application(s) (including filterable features). It is significant, however, that clients are now provided by the present 50 invention with a means for effecting prestage filtering of their communications by virtue of the communications server and definable filter settings, rather than having to choose between receiving no messages or receive all messages, including less important or expensive and time55 consuming transmissions. The prestage filtering is preferably performed at the host server. This may be accomplished, for example, by passing the filter attributes in an appropriately formatted query object or message for use by the host application. In the 60 illustrated case a query object with the client filter settings is forwarded to the post office, and applied by a communications server object or CSO (instantiated at the post office when the virtual session is established). The post office/CSO reads/queries the query object for the filter attributes, and 65 applies these criteria in the selection and formatting of unprocessed messages (steps 408-412). The filtered messages are then encapsulated and forwarded to the QM, which EXHIBIT 13 PAGE 13 5,958,006 9 10 similarly forwards the filtered messages (with appropriate filtered, those not rejected are forwarded (step 518). FIG. 6 protocol translation) to the client (steps 414-416). illustrates the application of granularity filters. If a message Alternatively, where the host application is not designed to exceeds the filter size, it is appropriately truncated permit prestage filtering, all unprocessed messages can be (including insertion of a note indicating truncation) (steps forwarded to the communications server, where the filters 5 602-606). Similarly, if there are text or file attachments, and are applied via a prestage filter (PSF) object or routine (e.g., these are marked to be filtered, they are stripped with, PSF 232 of FIG. 2), with only qualifying/filtered messages optionally, a note being inserted alerting the addressee that being forwarded to the client (steps 410, 418-424). Through the attachment was stripped (steps 608-614). Once filtered, acknowledgments the post office is notified how to mark the the message is sent (step 616). mail index in both cases. For example, when prestage 10 FIGS. 7 and 8 illustrate a further enhancement, permitting filtering at the post office, all forwarded mail would be the user to more conveniently review selected information marked as processed/read and all filtered mail as unproceven for filtered/rejected data. In the preferred embodiment essed (truncated messages being marked as either depending a query object or message is similarly generated by the on design conventions, or if available marked as filtered or communication server as described above. However, in partially processed). If prestage filtering is done at the is addition to the profile information, the query object in this communications server only those messages forwarded to case includes a request for summary information about each the client would be acknowledged and marked as processed partially and fully rejected message (step 702). When the (step 428). host (i.e., a post office server in the illustrated case) receives In addition to download/downlink filtering, prestage filthe query it applies the appropriate filters; if only qualifying tering is also advantageously used in upload/uplink trans- 20 mail is present, this is forwarded to the client as described missions. This can take the form of granularity filtering, or above (steps 704-708). Where there is partially (e.g., automatically retaining the whole data unit or message based truncated) or fully rejected data, identifying summary inforupon filterable attributes for later transmission when on a mation is captured for all rejected data (step 710). For mail lower cost network. In this case, each client would have a this identifying summary information would include the prestage filter (PSF) unit such as that of PSF 208 of FIG. 2 25 message serial number, along with certain header information (801 and 802 of FIG. 8). This header information may (e.g., a PSF object or routine drawing on selected attributes in the profile store 212). Each data unit generated is filtered include any filterable attribute (e.g., date, author, subject, using the user-selected criteria, with qualifying data being size, priority, attachment indicator) and is preferably client forwarded via the communication server (steps 430-436). If definable, so the client can decide how much header infora data unit is not sent, it is retained locally for transmission m mation it needs and how much to omit. All qualifying and later, e.g., when connected via a lower cost network to the non-qualifying (i.e., filter-rejected) mail is marked similarly post office. As an enhancement, the user could additionally as described above (step 712). be provided with a selection of types of send buttons (i.e., When the response object or message is received by the filtered send or unfiltered send), or be prompted with an alert QM of the communication server, the encapsulated identidialogue or similar message when a message is filtered to 35 fying summary information is saved to a select and summary decide whether to forward the data unfiltered (steps (S&S) index, such as that illustrated by client S&S index 438-440). Similarly, the user can be provided with several database 228 of FIG. 2 and the index structure of FIG. 8. groups of filter settings that could be manually or automatiThis index is preferably created in response to the first query cally activated, so as to enable the client to adjust plural filter following full qualification, although one could retain a settings with a minimum effort, for example by switching to 40 stored index when the client is inactive as long as the index a more restrictive profile when entering important meetings is fully updated upon re-registration/qualification. In order (which profile could be automatically activated via an approto minimize transmissions between the communication priately configured and coupled calendar program, etc.). server and the client, only changes to the S&S index are While only the client need retain the upload filter forwarded, as summary delta data (i.e., a delta of the revised attributes in its profile store, preferably both the communi- 45 index to the immediately preceding index, the preceding cation server and client store copies of the download filter index being an acknowledged version same as that stored in settings in their profile memories. This conveniently permits the S&S index (e.g., S&S index database 213 of FIG. 2) of a client to review all settings whenever desired, and to the client). Where only identifying summary information is change the settings locally. When the download settings are received in response to the query object, one may additionchanged at the client, the changes are communicated to the so ally delay forwarding the delta information to the client for communication server preferably as soon as the change is a predetermined period of time or until the next message made, or as soon as a virtual session is established if the passing the prestage filters is forwarded, whichever comes changes are made while offline from the communication first (i.e., the filter-rejected information more likely being server (steps 442-444). Further, where a summary index of less important, some users may prefer to receive S&S index filtered messages is maintained (as is described in connec- 55 updates less frequently in order to further reduce costs or tion with FIGS. 7 and 8 below), upon a change in filter interruptions) (steps 714-718). settings the communication server may be automatically set Upon receiving the delta of the identifying summary to forward all messages previously rejected but now passing information, the client updates its S&S index and, when the new filter settings. appropriate, prompts the user (again, the prompt criteria FIGS. 5 and 6 illustrate two approaches to prestage 60 could be set for all messages, or some sub-set based on any filtering particularly useful for email filtering. In FIG. 5, a filterable attribute, etc.). The user is thus able to review the series of five reject filters are applied to each message. If a summary information and make a determination on whether mail message does not meet any of the criteria (priority, date, or not to override the filter rejection. For mail the user wants size, author, or subject/key word) then it is left unprocessed to read, the user indicates the decision by any appropriate (steps 502-516). Once all unreviewed messages (i.e., all 65 means (clicking on the message, voice command, etc.) and unprocessed messages, or if expanded marking is available an appropriate request generated (e.g., for all selected mail, all unprocessed messages not previously filtered) have been for only a partially filtered version (e.g., truncated), etc.) EXHIBIT 13 PAGE 14 5,958,006 11 12 (steps 720-722). The request is appropriately translated, as message may be selected for transmission where the overneeded, and sent as a query object or message to the post head of the delta and message identifier make the optimized office. Upon retrieval, the requested data is forwarded to the reply bigger than the normal reply message would be. client via the QM. Upon receipt at the client, a read However, in most instances it is anticipated that the optiacknowledgment may be generated and sent to the commu- c mized reply will be smaller than a normal reply message, nication server. Preferably when the read acknowledgment providing significant savings to the client in time and costs. is received at the communication server a further ACK When the optimized reply is received at the QM of the (acknowledgment signal) may be sent to the client, at which communication server, a determination is made on whether time both client and communication server update their to reconstruct the normal reply message (i.e., form a replica respective S&S indices to remove the entry for read mail 10 reply) or to forward the optimized reply, based on known from the S&S index, and note any partially read mail. Upon parameters (if any) of the target communication unit/client. acknowledgment, the post office may further mark any read Thus, for example, where both the originating and target mail as processed (steps 724-734). clients are active and served by the same communication As with prestage filtering, one skilled in the art will server and thus are known to have optimized reply appreciate that many more filterable attributes and summary is capabilities, and the target client was an addressee or origiinputs are possible than those described, and which ones are nator of the preceding message identified by the message available will depend on such factors as the desired identifier of the optimized reply, a reconstructed reply may functionality, complexity, and application(s) (including filnot be required. Rather, since the preceding message would terable features) for which the select and summary index is either be in the inbox or outbox of the target unit, the target being used. The index structure may thus similarly vary 20 unit can reconstruct the reply message from the identified significantly, as will the means for achieving similar indices mail in its mailbox and the delta. This advantageously for both the client and communication server; in other allows bandwidth to be minimized for both the sending and words, while one could simply periodically forward the target clients. Further, if perchance the target unit has whole index, where practical any one of a number of known already deleted the identified preceding message, the condelta (e.g., data representing the content difference between 25 troller of the target unit could, rather than acknowledge two files) or other update approaches for communicating receipt, send a request for the normal reply message, which less than the whole index are likely more preferable. What the communication server would reconstruct as described is significant, no matter the particular design approach next. selected, is that a summary index, showing unprocessed or In cases where the target unit is not an active client with partially processed data (e.g., that filtered), is available to a 30 the communication server, the QM (or other appropriate client for determination on whether to process the data entity of the controller) functions to reconstruct the reply further, with a substantially identical index being retained at message from the optimized reply. Because the communithe communication server in order to further reduce transcation server preferably does not retain a copy of client mail mission requirements. or data located on other hosts (such remote stores typically FIG. 9 illustrates a yet further improvement, this embodi- 35 adding complexity and cost, while being unnecessary in ment permitting a user to minimize the data transmitted for view of the virtual session established via the communicaresponses to earlier data transmissions. This is particularly tion server), it would use the identifier to retrieve the advantageous in the case of email, where it is common to preceding message from the host (e.g., send a query object append all prior messages in an email conversation to a or message to the appropriate post office) (steps 908-912). reply, making for lengthy reply messages that contain sub- 40 This can be implemented by requesting the preceding messtantial portions that are identical to mail already saved at sage from the client inbox, or from the originating unit's the client or target unit. While this has come to be expected outbox (or even the target unit's inbox, if it is a cc: on the in email replies, it is also quite costly in time and tariff preceding message). Because the serial number is a unique charges in bandwidth limited systems like most wireless number widely used in email applications, this is the prefcommunication systems. erable message identifier for email systems. However, where this unique number is unavailable other identifiers may be Starting from a client perspective, the process of FIG. 9 used, including author, date and/or subject matches. Further, commences with a client formulating a reply to a received for some messages it may even be advantageous to use other mail message, much as he or she would for any typical email relatively unique values, such as CRC or other values, by application (step 902). However, when the user executes the reply, e.g., by clicking on a send button, the client controller so themselves or together with other identifiers. It is relatively unimportant for purposes of the invention what the identifier (201 of FIG. 2) optimizes the reply message by calculating is, as long as it is useful within the accuracy demanded by a delta or difference, using any appropriate delta routine, the system design for retrieving the correct preceding mesbetween the reply message and the preceding message. This sage. delta is then formed into an optimized reply along with a message/data unit identifier for the preceding message/data 55 Once the preceding message has been received by the unit (preferably the mail serial number, although any retrievcommunication server, it uses a counterpart delta routine to able identifier of the preceding message may be used, such that of the client to reconstruct a replica of the reply message as header information, or even a CRC (cyclic redundancy from the delta of the optimized reply and the retrieved copy check) value) (step 904). To ensure that only the shortest of the preceding message. Once reconstructed, the reply message is being sent, the controller additionally compares 60 message is forwarded to the target unit(s), as well as to the the reply message with the optimized reply to determine outbox or sent mail folder of the client's post office box which is optimum for transmission (step 906). This deter(steps 914-916). While some additional processing and mination may be made based on a comparison of the network traffic is required between the communication message sizes, compressed and formatted message sizes, or server and host, this is relatively inexpensive compared to any other convenient means for estimating which version of 65 the savings achieved by using an optimized reply over the the reply will require the least bandwidth or transport cost. tariffed network between the communication server and Thus, for example, a normal reply message to a very short client. EXHIBIT 13 PAGE 15 5,958,006 14 13 While the preceding approach can be implemented without resort to a message index, it can be further optimized by use of indices at the communication server and client. In this case, a full index of each active client's mailbox (or other application file(s)) is maintained at both the client and the communication server. This index could advantageously be one of the S&S indices 213 and 228 of FIG. 2 designed to include all mail (although perhaps with less identifying information for received mail than for filter-restricted mail, depending on factors such as the memory available and the amount of identifying information desirable). When an optimized reply is received at the communication server, a search of the appropriate client index (e.g., first the target unit, if also an active client, otherwise the client's or originating unit's indices) for the message identifier of the preceding message, indicating whether or not the preceding message has been deleted. When the preceding message's identifier is present, the process continues as noted above, in other words by sending the optimized reply to the target unit, or reconstructing the reply message and forwarding it to the target unit. Replies being sent to the client can similarly use an optimized reply to minimize messaging sizes. Thus, for example, where a reply is received by the communication server which has the client as an addressee, the communication server is capable of generating a delta between the reply message and a preceding message known to be stored in a mail database (e.g., memory 214 of FIG. 2) of the client. The preceding message is most easily identified if an additional identifier is included with the reply for ease of searching in the client's index. However, where such is not included, identifier's can be extracted from the text (e.g., author, date, recipient, subject) for comparison matching. Alternatively, a comparison of the text of the reply message can be used in determining the preceding message. For example, a series of preceding messages could be retrieved for textual comparison; or alternatively an identifying value for all or selected (e.g., sent) mail can be maintained (e.g., by calculating the text CRC value and storing it in the index), and a check of selected portions (e.g., all portions below insertions identifying preceding messages in the text) of the reply message text can then be performed. The latest or largest matching preceding message is the selected (which could be either a message sent to, or sent from, the client), so as to minimize the delta, and the delta calculated between the preceding message and the reply message. An optimized reply is then formed including the delta and preceding message identifier recognizable by the client. This optimized reply is then forwarded, and reconstructed at the client into the reply message. In other words, the client retrieves from memory the message corresponding to the message identifier, and forms a replica of the reply message from the delta and message. Once acknowledged, both client and communication server indices are appropriately updated to reflect the mail transfer (steps 918-930). This embodiment thus provides an efficient process for sending reply data between a client and the communication server, without requiring the costly transfer of earlier transmitted portions of the reply data. In a final embodiment, a rate governor is provided so as to assist clients in maintaining their messaging and expenses within desired limits. Turning to FIG. 10, with reference also to FIG. 2, one embodiment of such a rate governor is illustrated. This rate governor operates to track the approximate time and/or expense for client use, which can be as simple as timing a circuit-switched connection, or where packet data is being sent, timing (or estimating based on size) the time and/or cost of transmitting the packet over the tariffed network(s). In estimating the transmission value (e.g., cost), a rate governor could better estimate actual costs by taking into account known pricing factors established by 5 each network service provider (e.g., rates by time of day, by grade/quality of service (QoS) for packets, by size or bandwidth desired, etc.). These values would be maintained for application by the rate governor (234 of FIG. 2) as each data unit is received to determine an estimated transmission value. 1 In the illustrated case of an email application, upon receiving a client-generated message the QM (or other appropriate controller entity of the communication server) passes the pertinent packet information or message parameter (e.g., the packet size from the header) to the rate 15 governor, which in this case operates as a packet rate governor (or PRG). The PRG determines from the client object (or profile store) the amount of use time and/or charge still available (or alternatively, the amount already used, and limits allowed), and compares the use time remaining (e.g., 20 a previously authorized or allocated transmission value) against the value for the message parameter (step 954). Preferably several limits are established, including one or more alert thresholds. These alert thresholds would serve to 25 warn the client each time a certain threshold is passed in amounts of time/charge used or remaining, permitting the client to limit use as needed to stay within budget, or to seek a higher limit in advance of the point at which the use limit is reached. This use or transmission limit serves as the 30 budgeted limit for data transfers. Unless a user is privileged, once the use limit is reached further communications/data transfers are restricted. In the simplest form, such transfers are restricted by alerting the client that the use limit has been reached, terminating the current session and preventing 35 further sessions until additional use limit time/charge is authorized. Alternatively, certain messaging could still be permitted (based, e.g., on any filterable criteria—e.g., permitting messages to the administrator but not a further communication unit), but with reminders that routine mes40 sages will not be forwarded. This would advantageously allow critical messages, messages to an administrator (e.g., requesting additional authorization), etc., to still be transferred, although it does not prevent a user from running up excess charges for messaging to the communication 45 server. A PRG may thus also be advantageously used in the client (e.g., PRG 209 of FIG. 2), signaled by the PRG of the communication server to automatically set certain prestage filters to restrict all but certain message transfers until a new use limit is provided. If a user were to bypass this client PRG 50 and continue improper messaging, all further sessions could be terminated by the communication server with notification to the administrator and client. If the user is privileged, data transfers would still continue despite the user limit having been exceeded. However, an 55 alert would still preferably be sent to both the client and administrator, allowing the administrator to verify the privilege and reset the use limit if desirable, and the client to still be aware it has passed a targeted use amount (steps 956-968 and 980-984). In any event, after each data transfer the 60 client object or store is updated to reflect the new estimated transaction total (e.g., time remaining, total expense, etc.) (step 958). As mentioned above, if a user is not privileged it is preferable to allow the client an additional data transfer to an 65 administrator requesting additional allocation of time/ charges. This request would be forwarded by the communication server to the administrator host, where it would be EXHIBIT 13 PAGE 16 5,958,006 15 16 processed for approval. If approved, the administrator would communication system, wired or wireless, client-server, notify the communication server to adjust the use limit by a distributed or other networks, etc., in which the user is specified amount. Alternatively, if there is no system remote from a host. It can also be used with almost any administrator, but charges or debits are handled through a application program or groups of programs (e.g., transfercommunication server service provider, the client may send 5 ring database, wordprocessing, graphics, voice etc. files, any appropriate authorization for additional charge/debit to executing programs and control messages, etc.), not just the communication server (e.g., by sending an encrypted email or groupware. Moreover, while processor 206, conaccount number and identifying information like a PIN troller 229, timers 205 and 224, data stores 211 and 225, and (personal identification number). Once the charge or debit is other circuits, are described in terms of specific logical/ processed and approved to the service provider's 10 functional/circuitry relationships, one skilled in the art will satisfaction, the amount of charge or debit would be used to appreciate that such may be implemented in a variety of adjust the use limit. A notification would also be forwarded ways, preferably by appropriately configured and proto the client of the new use limit, with the client PRG being grammed processors, ASICs (application specific integrated updated accordingly (steps 970-978). circuits), and DSPs (digital signal processors), but also by In addition to updating the use limit in response to a user 15 hardware components, some combination thereof, or even a or administrator request, the rate governor can also be distributed architecture with individual elements physically advantageously set to automatically update the use limits separated but cooperating to achieve the same functionality. upon the occurrence of a predetermined update event. Thus, Thus, it should be understood that the invention is not for example, where billing and budgeting is done on a limited by the foregoing description of preferred monthly cycle, and the administrator has set rate governor 20 embodiments, but embraces all such alterations, preferences so as to automatically reset the use limit on the modifications, and variations in accordance with the spirit first day of the next billing cycle, the communication server and scope of the appended claims. will automatically reset the client use limit at the specified We claim: time and in the specified amount (step 992). 1. A system for communicating data to a communication Moreover, in order to achieve an even more accurate 25 unit associated with a first user comprising: billing control, the communication server could be coupled a host server operable for: with the tariffed network service provider(s) so as to receive filtering individual data units based on at least one periodic charge statements for client data traffic, as well as user-definable filter parameter to identify whether a updates for tariff rates, etc. In order to take advantage of data unit is a qualifying or non-qualifying data unit; these statements, a billing index would be maintained for 30 for qualifying data units, sending an identifying inforeach client estimating use and charges for each data transfer. mation part and an additional part to the communiUpon receiving the periodic charge statement (e.g., forcation unit; and warded once a day during an administrative window) the for non-qualifying data units sending the identifying estimated use entries are replaced by the actual use and information part without the additional part to the charges from the statement, and the client profile (and 35 communication unit; and object, if active) is updated to reflect a corrected use limit, a communication server, in communication with the host etc. The administrator is notified, and the client is notified server and the communication unit, comprising a data upon the next transaction, of the updated amount. If desired, transfer manager operable for controlling communicathe client or administrator can request a download of the tion of the qualifying and non-qualifying data units current billing index showing the most recent estimated and 40 from the host server to the communication unit includactual charges (steps 986-990). ing sending the identifying information part and the Finally, one should appreciate that the above process is additional part for the qualifying data units and sending equally applicable to groups as well as to individual clients. the identifying information part without the additional Thus, the PRG can advantageously be used to set use limits part for the non-qualifying data units to the communifor groups and supergroups of users, as well as for individual 45 cation unit. clients as described above. Thus, where one of the applica2. The system of claim 1, wherein the host server is a host tions being used is groupware, as opposed to the email client-server program operating on a host processor, and the example described above, different groups can be assigned host processor is in communication with the communication group use limits for groupware data transfers (while retainserver via a wide area network (WAN) communication ing individual use limits for separate email or data transfers, so channel. etc.). To avoid one or two users exhausting the group's 3. The system of claim 1, wherein the communication authorized limit, individual use limits can still be set for each server and communication unit are coupled by a first comclient, although with more flexibility, e.g., to draw on unused munication channel including a wireless communication group time before requiring additional allocation from an channel. administrator, to permit another user of the group to yield a 55 4. The system of claim 1, wherein the data transfer portion of its individual use limit, etc. As should be apparent, manager further comprises a virtual session manager many variations exist on how the rate governor is structured, adapted to control communication of data between the depending on the applications being used, clients and groups communication unit and host server by communicating the operating, the interactivity with service providers, complexdata via a sessionless-oriented communication protocol over ity or simplicity desired, and many other related and unre- 60 a first communication channel between the virtual session lated factors. manager and the communication unit, and by communicating the data via a session-oriented communication protocol One skilled in the art will appreciate that there are many between the virtual session manager and the host server. variations that are possible for the present invention, only a 5. The system of claim 1, wherein: limited number of which have been described in detail above. Thus, for example, while the embodiments above 65 the data transfer manager is further operable for commudescribe application to clients communicating in certain nicating the at least one filter parameter to the host systems, one should appreciate that it has application to any server; EXHIBIT 13 PAGE 17 5,958,006 17 18 the host server is operable for applying the at least one the second data processing device a first data unit filter parameter to determine whether to transfer to the addressed to the third data processing device, and when communication server a first data unit of the data, and it is determined not to transfer the first data unit, when the first data unit is determined not to pass the at sending first identifying information about the first data least one filter parameter, for determining a first iden- 5 unit to the second data processing device. tifying information about the first data unit and sending 14. The method of claim 13, further comprising: the first identifying information to the communication (c) at the second data processing device, storing the first server; and identifying information in a summary store of the the communication server further comprising a summary second data processing device, and sending the first store for storing the first identifying information, and 10 identifying information to the third data processing being operable for sending the first identifying infordevice. mation to the communication unit. 15. The method of claim 14, wherein second identifying 6. The system of claim 5, wherein the host server is an information previously received and sent to the third data electronic mail post office operating on a host processor, the processing device is stored in the summary store, the method first data unit is a first email message, and the first identifurther comprising: fying information is at least one of a group consisting of a 15 (d) sending only new identifying information to the third serial number of the first email message, an author name of data processing device by determining that the second the first email message, a priority level of the first email identifying information has already been sent to the message, a mail date of the first email message, a message third data processing device and only sending the first size of the first email message, and a subject word of the first 20 identifying information to the third data processing email message. device. 7. The system of claim 1, wherein the host server and 16. The method of claim 14, further comprising: communication server are different programs operating on a (d) at the third data processing device, receiving the first same host processor. 8. The system of claim 1, wherein the host server is one identifying information and, in response to a determiof the group consisting of an electronic mail post office, a 25 nation to request the first data unit, sending a request client-server host, a multimedia application host, and a voice for the first data unit to the first data processing device. processor. 17. The method of claim 16, wherein the first data 9. The method of claim 1 wherein the communication processing device is an email post office, the second data server sends the communication unit the summary part processing device is a communications server, the first data without the additional part for non-qualifying data units at 30 unit is a first email message, and the first identifying predetermined time periods. information is at least one of a group consisting of a serial 10. The method of claim 1 wherein the communication number of the first email message, an author name of the first server sends the communication unit the summary part email message, a priority level of the first email message, a without the additional part for non-qualifying data units at mail date of the first email message, a message size of the the request of the first user. 35 first email message, and a subject word of the first email 11. The method of claim 1 wherein the communication message, the method further comprising: server sends the communication unit the summary part (e) receiving the request for the first email message at the without the additional part for non-qualifying data units only communications server, requesting the first email mesif accompanied by the summary part and the additional part sage from the email post office, and, upon receiving the for qualifying data units. 40 first email message, sending the first email message to 12. A method of communicating data between a first data the third data processing device. processing device and a third data processing device via a 18. The method of claim 12, wherein step (a) further second data processing device, comprising: comprises receiving a first data unit from the first data (a) at the second data processing device, controlling processing device and applying the at least one filter paramcommunication of qualifying and non-qualifying data 45 eter to determine whether to transfer the first data unit to the units from the first data processing device to the third third data processing device, and, when it is determined not data processing device including receiving individually to transfer the first data unit, sending the first identifying filtered data units from the first data processing device information about the first data unit to the third data probased on at least one user-definable filter parameters to cessing device. identify whether a data unit is a qualifying or non- 50 19. The method of claim 18, wherein step (a) further qualifying data unit, wherein for qualifying data units, comprises storing the first identifying information in a an identifying information part and an additional part is summary store of the second data processing device. received and for non-qualifying data units, the identi20. The method of claim 19, wherein the first identifying fying information part without the additional part is information corresponds to the at least one filter parameter received, and providing the third data processing 55 and step (a) further comprises, in response to a change in the device with the identifying information part and the at least one filter parameter to a modified parameter, deteradditional part for qualifying data units and providing mining from the first identifying information whether the the third data processing device with the identifying first data unit passes the modified parameter and if so, information part without the additional part for nonrequesting the first data unit from the first data processing qualifying data units. 60 device. 13. The method of claim 12, wherein: 21. The method of claim 19, wherein at least second step (a) further comprises determining at least one filter identifying information about at least a second data unit parameter from a user profile store and communicating previously received is stored in the summary store and was the at least one filter parameter to the first data propreviously and sent to the third data processing device, step cessing device; and 65 (a) further comprising sending only new identifying infor(b) at the first data processing device, applying the at least mation stored in the summary store to the third data proone filter parameter to determine whether to transfer to cessing device by determining that the second identifying EXHIBIT 13 PAGE 18 5,958,006 19 20 information has already been sent to the third data processing device and only sending the first identifying information to the third data processing device. 22. The method of claim 21, further comprising: (b) at the third data processing device, receiving the first identifying information and, in response to a determination to request the first data unit, sending a request for the first data unit to the first data processing device. 23. The method of claim 22, wherein the first data processing device is an email post office, the second data processing device is a communications server, the first data unit is a first email message, and the first identifying information is at least one of a group consisting of a serial number of the first email message, an author name of the first email message, a priority level of the first email message, a mail date of the first email message, a message size of the first email message, and a subject word of the first email message, the method further comprising: (c) receiving the request for the first email message at the communications server, requesting the first email message from the email post office, and, upon receiving the first email message, sending the first email message to the third data processing device and deleting the first identifying information from the summary store. 24. A communications server adapted for communicating with a host server and a communication unit including a processor, the communications server comprising: (a) a user parameter store adapted to store user parameters; and (b) a data transfer manager, coupled with the user parameter store, adapted to control communication of data units between the communication unit and the host server including receiving individually filtered data units from the host server based on at least one userdefinable filter parameters to identify whether a data unit is a qualifying or non-qualifying data unit, wherein for qualifying data units, a summary part and an 5 additional part is received and for non-qualifying data units, the summary part without the additional part is received, and providing the communication unit with the summary part and the additional part for qualifying data units and providing the communication unit with 10 the summary part without the additional part for nonqualifying data units. 25. The communications server of claim 24, further comprising: is (c) a summary store storing the identifying information. 26. A controller of a communication unit adapted for requesting data over a wireless communication channel from a further data processing host via a communication server, the controller comprising: 20 (a) a summary store operable for storing identifying information received from the host via the communications server about data units not being sent from the host to the communication unit and not being received at the communication unit. 2 5 27. The controller of claim 26, further comprising: (b) a data transfer manager, coupled to the summary store, operable for, in response to a user determination to request a data unit associated with a first identifying 30 information stored in the summary store, sending a request to the communications server for the first data unit. EXHIBIT 13 PAGE 19

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?