Systems and methods for providing localized functionality in browser based postage transactions
10930088 ยท 2021-02-23
Assignee
Inventors
Cpc classification
G07B2017/00161
PHYSICS
International classification
Abstract
Systems and methods which implement localized functionality in a client server system using a technique of caching one or more functional objects for access in response to an appropriate server call are shown. Embodiments provide a browser based postage indicia generation and printing solution in which a browser upon which a postage client is operable is controlled to cache one or more functional objects in the form of script files. Various functional objects may be optimized for caching by clients such as postal rating scripts, postal insurance rating scripts, address verification scripts, etc. Security and/or accuracy verification may be implemented by a server to independently verify the results of use of the use of functional objects by a client.
Claims
1. A method comprising: accessing, by a postage client device of a postage client server system, a browser executable postal function script file from a postage server device of the postage client server system using a substantially unique resource identifier, wherein the browser executable postal function script file comprises raw postal function data useful for performing a particular postal function associated with postage indicia generation transactions converted into the browser executable postal function script file; caching, by the postage client device in cache memory thereof, the browser executable postal function script file for subsequent execution by the postage client device when performing postage indicia generation transactions; performing, by the postage client device, a postage indicia generation transaction by executing platform independent code using a browser of the postage client device, wherein the executing platform independent code implements localized postal functionality in the postage client device by accessing the browser executable postal function script file by the postage client device initiating a postage server call using the substantially unique resource identifier that is redirected to the cache memory caching the browser executable postal function script file and performing the particular postal function for the postage indicia generation transaction through execution of the browser executable postal function script file; and receiving, by the postage client device if the raw postal function data corresponding to the browser executable postal function script file becomes out of date, a replacement substantially unique resource identifier for an updated browser executable postal function script file for use by the postage client device when performing postage indicia generation transactions using the browser of the postage client device, wherein the updated browser executable postal function script file comprises updated raw postal function data useful for performing the particular postal function associated with postage indicia generation converted into the updated browser executable postal function script file.
2. The method of claim 1, wherein the raw postal function data comprises postal rating information and the particular postal function comprises rating a postal item for postage indicia generation.
3. The method of claim 2, wherein the browser executable postal function script file is comprised of a subset of the postal rating information selected as appropriate for the postage client device.
4. The method of claim 3, wherein the subset of the postal rating information comprises postal rating information for a shipper zone corresponding to the postage client device.
5. The method of claim 1, wherein the raw postal function data comprises postal insurance information and the particular postal function comprises postal insurance rating for a postal item for postage indicia generation.
6. The method of claim 1, wherein the raw postal function data comprises address verification information and the particular postal function comprises verifying at least a portion of an address for a postal item for postage indicia generation.
7. The method of claim 6, wherein the browser executable postal function script file is comprised of a subset of the address verification information selected as appropriate for the postage client device.
8. The method of claim 7, wherein the subset of the address verification information comprises information sufficient for verifying that city, state, and zip code information of recipient addresses are correct and omits additional address information of an address database of the postage server device.
9. The method of claim 1, wherein the substantially unique resource identifier comprises a substantially unique uniform resource locator (URL).
10. The method of claim 1, wherein the receiving the replacement substantially unique resource identifier for the updated browser executable postal function script file is in response to the postage server device determining that the postal client device produced an erroneous postage indicium request using the browser executable postal function script file.
11. A postal client device configured for performing postage generation transactions in a postage client server system, the postal client device comprising: cache memory caching a browser executable postal function script file for subsequent execution by the postage client device when performing postage indicia generation transactions, wherein the browser executable postal function script file comprises raw postal function data useful for performing a particular postal function associated with postage indicia generation transactions converted into the browser executable postal function script file, and wherein the browser executable postal function script file was initially accessed by the postage client device from a postage server device of the postage client server system using a substantially unique resource identifier; and a processor executing platform independent code using a browser of the postage client device and performing a postage indicia generation transaction, wherein the executing platform independent code implements localized postal functionality in the postage client device by accessing the browser executable postal function script file by the postage client device initiating a postage server call using the substantially unique resource identifier that is redirected to the cache memory caching the browser executable postal function script file and performing the particular postal function for the postage indicia generation transaction through execution of the browser executable postal function script file, and wherein the executing platform independent code receives a replacement substantially unique resource identifier for an updated browser executable postal function script file for use by the postage client device if the raw postal function data corresponding to the browser executable postal function script file becomes out of date, wherein the updated browser executable postal function script file comprises updated raw postal function data useful for performing the particular postal function associated with postage indicia generation converted into the updated browser executable postal function script file.
12. The postal client device of claim 11, wherein the raw postal function data comprises postal rating information and the particular postal function comprises rating a postal item for postage indicia generation.
13. The postal client device of claim 12, wherein the browser executable postal function script file is comprised of a subset of the postal rating information selected as appropriate for the postage client device.
14. The postal client device of claim 13, wherein the subset of the postal rating information comprises postal rating information for a shipper zone corresponding to the postage client device.
15. The postal client device of claim 11, wherein the raw postal function data comprises postal insurance information and the particular postal function comprises postal insurance rating for a postal item for postage indicia generation.
16. The postal client device of claim 11, wherein the raw postal function data comprises address verification information and the particular postal function comprises verifying at least a portion of an address for a postal item for postage indicia generation.
17. The postal client device of claim 16, wherein the browser executable postal function script file is comprised of a subset of the address verification information selected as appropriate for the postage client device.
18. The postal client device of claim 17, wherein the subset of the address verification information comprises information sufficient for verifying that city, state, and zip code information of recipient addresses are correct and omits additional address information of an address database of the postal server device.
19. The postal client device of claim 11, wherein the substantially unique resource identifier comprises a substantially unique uniform resource locator (URL).
20. The postal client device of claim 11, wherein the replacement substantially unique resource identifier for the updated browser executable postal function script file is received in response to the postal server device determining that the postal client device produced an erroneous postage indicium request using the browser executable postal function script file.
21. The postal client device of claim 11, wherein the browser executable postal function script file comprises a functional object corresponding to the raw postal function data, and wherein the functional object is executable by the processor for performing at least a portion of the function associated with the postage indicia generation transaction using data of the raw data.
22. The postal client device of claim 21, wherein the platform independent code comprises code for performing the postage indicia generation transaction, the code including client executable code providing access to the one or more functional objects for performing the postage indicia generation transaction by the substantially unique resource identifier, whereby the client executable code as served to clients is updated to include different substantially unique resource identifiers when the raw data and the one or more functional objects are updated.
23. A method comprising: accessing, by a postage client device of a postage client server system, a browser executable postal function script file from a postage server device of the postage client server system using a substantially unique resource identifier, wherein the browser executable postal function script file comprises a subset of raw postal function data selected as appropriate for the postage client device and useful for performing a particular postal function associated with postage indicia generation transactions converted into the browser executable postal function script file; caching, by the postage client device in cache memory thereof, the browser executable postal function script file for subsequent execution by the postage client device when performing postage indicia generation transactions; performing, by the postage client device, a postage indicia generation transaction by executing platform independent code using a browser of the postage client device, wherein the executing platform independent code implements localized postal functionality in the postage client device by accessing the browser executable postal function script file by the postage client device initiating a postage server call using the substantially unique resource identifier that is redirected to the cache memory caching the browser executable postal function script file and performing the particular postal function for the postage indicia generation transaction through execution of the browser executable postal function script file; and receiving, by the postage client device in response to the postage server device determining that the postage client device produced an erroneous postage indicium request using the browser executable postal function script file, a replacement substantially unique resource identifier for an updated browser executable postal function script file for use by the postage client device when performing postage indicia generation transactions using the browser of the postage client device, wherein the updated browser executable postal function script file comprises updated raw postal function data useful for performing the particular postal function associated with postage indicia generation converted into the updated browser executable postal function script file.
24. The method of claim 23, wherein the raw postal function data comprises postal rating information and the particular postal function comprises rating a postal item for postage indicia generation.
25. The method of claim 24, wherein the subset of the postal rating information comprises postal rating information for a shipper zone corresponding to the postage client device.
26. The method of claim 23, wherein the raw postal function data comprises address verification information and the particular postal function comprises verifying at least a portion of an address for a postal item for postage indicia generation.
27. The method of claim 26, wherein the address verification information is a subset of the address verification information comprising information sufficient for verifying that city, state, and zip code information of recipient addresses are correct and omits additional address information of an address database of the postal server device.
28. The method of claim 23, wherein the substantially unique resource identifier comprises a substantially unique uniform resource locator (URL).
Description
BRIEF DESCRIPTION OF THE DRAWING
(1) For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
(2)
(3)
DETAILED DESCRIPTION OF THE INVENTION
(4)
(5) The illustrated embodiment of system 100 comprises client system 120 in communication with server system 110 via network 150. Client system 120 of embodiments is operable as a postage client and correspondingly server system 120 of embodiments is operable as a postage server. Accordingly, client system 120 and server system 110 of embodiments cooperate to generate and print postage indicia 102, such as may be utilized with respect to postal item 101.
(6) Server system 110 may comprise one or more processor-based systems operable to provide server side operation as described herein. For example, server system 110 may comprise a computer having a processor (e.g., processors from the PENTIUM and/or XEON line of processors available from Intel Corporation), memory (e.g., random access memory (RAM), read only memory (ROM), magnetic memory, optical memory, flash memory, etc.), input/output apparatuses (e.g., display, keyboard, mouse, printer, etc.), and network interface (e.g., Ethernet interface, optical interface, T1 interface, etc.) operable under control of an instruction set defining operation as described herein.
(7) Client system 120 may likewise comprise one or more processor-based systems operable to provide client side operation as described herein. For example, client system 120 may comprise a computer having a processor (e.g., processors from the PENTIUM and/or XEON line of processors available from Intel Corporation), memory (e.g., RAM, ROM, magnetic memory, optical memory, flash memory, etc.), input/output apparatuses (e.g., display, keyboard, mouse, printer, etc.), and network interface (e.g., Ethernet interface, optical interface, T1 interface, etc.) operable under control of an instruction set defining operation as described herein. The illustrated embodiment of client system 120 includes memory 122, operable to provide a cache memory utilized as described below, and printer 123, operable to provide printing of postage indicia 102.
(8) Network 150 may comprise one or more networks suitable for facilitating communication between server system 110 and client system 120. For example, network 150 may comprise a local area network (LAN), metropolitan area network (MAN), wide area network (WAN), wireless network, the public switched telephone network (PSTN), the Internet, an intranet, an extranet, etc.
(9) It should be appreciated that network 150 may include systems in addition to server system 110 and client system 120, whether utilized in providing functionality associated with server system 110 and client system 120 or separate therefrom. For example, network 150 may comprise additional servers and clients in addition to routers, gateways, bridges, repeaters, switches, caches, etc. The illustrated embodiment of system 100 shows system 130, such as may comprise a proxy server utilized by client system 120, as representative of such additional systems.
(10) In operation according to embodiments of the invention, server system 110 functions as a web-based postage server (postage web server) providing postage indicia generation web services to clients. Accordingly, server system 110 may serve various web pages, such as may comprise platform independent hypertext mark-up language (HTML), extensible mark-up language (XML), or JAVA based web pages, to clients for performing postage indicia generation. Correspondingly, client system 120 of embodiments functions as a web-based postage client (postage web client) providing a postage indicia generation user interface to users. Accordingly, embodiments of client system 120 operate as a browser-based client, wherein platform independent code is operable within browser software executing upon client system 120. Examples of browser software as may be utilized according to embodiments of the invention include INTERNET EXPLORER available from Microsoft Corporation, FIREFOX available from Mozilla Corporation, SAFARI available from Apple Inc., and NETSCAPE NAVIGATOR available from Netscape communications Corporation.
(11)
(12) At block 201 of the illustrated embodiment raw data (e.g., data 103 of
(13) Raw data from which a functional object is created may comprise an amount of data in excess to that which can be communicated efficiently via network 150. Accordingly, embodiments of the invention operate to parse the raw data for creating useful functional objects adapted for network communication and caching as discussed herein. For example, raw data in the form of a table of postage rates throughout the nation may be parsed into smaller, useful blocks of data, such as to provide individual rate tables for each shipper zone in the nation. Such individual rate tables may thus be converted into a plurality of functional objects, each of a size conducive to communication via network 150.
(14) Other forms of data, such as insurance rates, address databases, etc. may be similarly parsed into a plurality of functional objects. For example, an address database used for verifying recipient address information, as is required for particular services offered by the United States Postal Service (USPS), is on the order of several gigabytes. Thus, such an address database is not generally suitable for efficient communication to a client in a typical client server scenario. Embodiments of the present invention operate to parse the address database to a reduced database sufficient for verifying that the city, state, and zip code information of recipient addresses are correct (e.g., omitting additional detail with respect to the addresses), which is sufficient to satisfy the requirements of many services of the USPS. The reduced database may further be parsed into smaller collections of data, such as commercial addresses, residential addresses, geographic regions, etc. The resulting reduced address database functional objects are each preferably of a size conducive to communication via network 150.
(15) Functional objects of embodiments of the invention comprise script files which are executable within a browser operable upon client system 120. For example, functional objects of an embodiment of the invention may comprise a JAVA script file executable by a browser of client system 120. It should be appreciated that such a script file may not only include appropriate data from the aforementioned raw data, but also includes appropriate instructions (e.g., executable code) to define operation by the host browser to perform desired functionality with respect to the data.
(16) One or more of such functional objects may be relevant to any particular user or situation. Thus, appropriate ones of the functional objects may be provided to clients according to embodiments of the invention, as discussed below.
(17) At block 202 of the illustrated embodiment unique or substantially unique resource identifiers are created by server system 110 for each of the functional objects. For example, unique uniform resource locators (URLs) may be assigned to each such functional object, whereby the corresponding functional object is served by server system 110 to client system 120 upon the browser of client system 120 accessing the unique URL. The resource identifiers utilized according to embodiments of the invention may include designators indicative of the type of data included in the functional objects, the valid date or dates for the data included in the functional objects, or other attributes regarding the use or contents of the functional objects. Alternatively, the resource identifiers utilized according to embodiments of the invention may be arbitrary with respect to the functional objects.
(18) As previously mentioned, and as will be better appreciated from the discussion which follows, the resource identifiers provide unique or substantially unique identification of an associated functional object. By substantially unique, it is meant that within the typical operation of system 100 a resource identifier is unique. Although resource identifiers may ultimately be repeated, and thus not truly unique, such repetition is provided such that disambiguation between two or more functional objects is not required. The foregoing unique identification not only facilitates operation of appropriate functionality through access of a functional object using its resource identification, but also facilitates updating, replacement, revision, etc. of the functional objects without express user interaction or even knowledge of the updating and without actively flushing out of date functional objects from cache, all within the normal operational framework of host browser software.
(19) At block 203 of the illustrated embodiment client code for performing postage indicia generation operation is provided by server system 110 to client system 120. For example, a user of client system 120 may launch browser software thereon and navigate to a web page served by server system 110 for postage indicia generation services. This may result in code, such as in the form of a web page, applets, etc., being provided by server system 110 to client system 120. The foregoing code preferably includes resource identifiers (e.g., URLs) for appropriate functional objects useful to the user's generation of postage indicia for implementing one or more functional objects as desired for postage indicia generation.
(20) At block 204 of the illustrated embodiment, client system 120 executes the code within a host browser thereof to provide postage indicia generation operation in cooperation with server system 110. Details with respect to client server operation to provide postage indicia generation and printing is provided in aforementioned patent application entitled Virtual Security Device.
(21) Execution of postage indicia generation code provided to client system 120 of embodiments of the invention operates to implement one or more of the foregoing functional objects, as appropriate. Moreover, such execution implements localized functionality, within the normal operational framework of host browser software, using a technique of caching one or more such functional objects for access in response to an appropriate server call.
(22) In operation according to embodiments of the invention, where execution of the postage indicia generation code by client system 120 is to implement functionality provided by a particular functional object, the resource identifier for a current instance of the functional object is present in the code. The browser of client system 120 then accesses the functional object using the resource identifier. If the current instance of the functional object, as indicated by its unique or substantially unique resource identifier, has not been previously accessed by client system 120, the resource identifier will direct the browser to server system 110, or other resource server, to provide the functional object to client system 120. Operation of the host browser of client system 120, perhaps in accordance with instructions of the postage indicia generation code, causes the current instance of the functional object to be cached, such as within memory 122 by a browser cache of client system 120. Accordingly, if the current instance of the functional object has been previously accessed by client system 120, the functional object will be accessed from cache (e.g., from memory 122) when the resource identifier directs the browser to server system 110, or other resource server.
(23) The foregoing operation facilitates providing only those functional objects actually utilized by a client system to that client system. Accordingly, where a client system only utilizes a limited amount of data, such as associated with a single shipping zone, only the functional object containing that data need be provided to the client system. If the client system should subsequently need additional data, such as associated with another shipping zone, the functional object containing that data may be provided to the client system when needed. Each such functional object is preferably cached for subsequent use by the client system. However, embodiments of the invention may operate to cache only particular functional objects, such as those expected to receive repeated use, those historically receiving repeated use, etc.
(24) It should be appreciated that caching of functional objects according to embodiments of the present invention differs significantly from mere automatic caching of data. For example, embodiments of the invention operate to cache a parsed subset of data and code for its use as an object for future performing functions in the future (e.g., future calculations). Automated caching merely caches the information provided to the client. Where postage rating functionality is performed, such caching would result in only the particular rate determination for a mail piece being cached (which is generally not useful with respect to future mail pieces). A server would not generally provide a postage rate table to the client in prior client server models due to the size of the rate table being too large to efficiently communicate and too large for caching/storage by the client. Moreover, the foregoing unique or substantially unique resource identifiers facilitates updating, replacement, revision, etc. of the functional objects without express user interaction or even knowledge of the updating and without actively flushing out of date functional objects from cache, all within the normal operational framework of host browser software. That is, as the data of a functional object becomes out of date, and thus an updated functional object is created, an updated unique resource identifier is used to direct the client to the updated functional object rather than using a cached instance of the functional object.
(25) As previously mentioned, the functional objects of embodiments of the invention comprise script files which are executable within the browser operable upon client system 120. Such script files according to embodiments includes appropriate instructions (e.g., executable code) and data to define operation by the host browser to perform desired functionality. For example, the postage indicia generation code may operate to solicit information regarding a mail piece, a destination address, the class of service desired, etc. and invoke a functional object providing postage rating functionality. Thus the functional object may be executed by client system 120 to determine a postage rate appropriate to the postal item. Where the user has previously invoked this postage rating functionality, communication with server system 110 may be avoided and client system 120 may autonomously operate to provide the rating functionality. Should the user wish to view various postage rating options, multiple instances of server calls may likewise be avoided.
(26) A plurality of functional objects may be invoked, one or more of which may itself be invoked a plurality of times, throughout execution of the postage indicia generation code. Continuing with the above example, after operation to provide postal item rating using a first functional object, an embodiment of the present invention may invoke a second functional object, such as to calculate an insurance rate for the postal item appropriate to the postal service selected, verify recipient address information (e.g., ensure the city, state, and zip code for the intended recipient are correct and up to date), etc.
(27) After operation of the postage indicia generation code and appropriate functional objects, the illustrated embodiment of block 204 operates to make a transaction completion server call from client system 120 to server system 110. For example, having collected postal item information, determined a postal rate for the selected postal service, and verified the city, state, and zip code of a recipient address is accurate, client system 120 may provide the appropriate information to server system 110 to request generation of a postage indicium, preferably associated with debiting a postal security device (e.g., postage vault) by an amount suitable for the postage indicium and/or the postage indicia generation service.
(28) At block 205 of the illustrated embodiment, server system 110 operates to independently verify proper implementation of the functional objects. Functional objects provided for use by clients may be subject to malicious or inadvertent alteration, or otherwise be improperly used. Accordingly, server system 110 of the illustrated embodiment implements verification of the results of use of the use of functional objects by client system 120 prior to completing a transaction (e.g., prior to generating a requested postage indicium). For example, server system 110 may operate to independently verify the rate calculation for a postage indicium requested to be generated by client system 120 having implemented a postage rating script. Such verification may be accomplished using mail piece data provided by client system 120 and rating table information available at server system 110. Such verification not only prevents instances of functional object tampering or alternation, but may also be used to ensure that the most up to date information has been used with respect to the related functions.
(29) At block 206 of the illustrated embodiment a determination is made as to whether the foregoing verification has detected an error. If an error is detected, processing according to the illustrated embodiment proceeds to block 209 for performing error processing. For example, client system 120 may be prevented from further postage indicia generation operation until a source of the error can be determined. Alternatively, a functional object associated with the detected error may be pushed to client system 120 and postage indicia generation operation repeated in an attempt to correct the error.
(30) If, however, no error is detected at block 206, processing according to the illustrated embodiment proceeds to block 207 for completion of the transaction. For example, server system 110 may generate the requested postage indicium, preferably debiting a postal security device (e.g., postage vault) associated with the user, and providing a data packet comprising the generated postage indicium to client system 120. Client system 120 may utilize the data packet comprising the generated postage indicium to print postage indicium 102 on mail piece 101 using printer 123.
(31) Upon completion of the transaction at block 207, processing according to the illustrated embodiment proceeds to block 208 wherein a determination is made as to whether any of the raw data of the functional objects has changed (e.g., data has been updated, has expired, etc.). If the raw data has not changed, processing according to the illustrated embodiment returns to block 203 to facilitate performing repeated transactions using the current instance of the functional objects. However, if the raw data, or a portion thereof, has changed, processing according to the illustrated embodiment returns to block 201 to facilitate conversion of the changed raw data to a revised (then to be current) instance of a functional object. As previously mentioned, the use of resource identifiers according to embodiments facilitates operation of the clients to use up to date functional objects provided by such processing.
(32) It should be appreciated that operation according to the embodiment of
(33) It should be appreciated that, although embodiments have been discussed herein with reference to providing functional objects to clients by server 110, embodiments of the invention may implement various techniques for distributing functional objects to clients. For example, a copy and distribute network may be implemented wherein various servers which are geographically dispersed are provided with functional objects. Resource identifiers utilized according to embodiments of the invention may operate to obtain a functional object from a particular server disposed geographically most near a client system, thereby further optimizing network communications utilized in the client server processing.
(34) Although embodiments have been discussed with respect to caching functional objects in a memory of the client system, the localized functionality provided herein need not be cached in such a memory to achieve benefits as discussed herein. For example, functional objects may be cached by server 130, such as may comprise a proxy server, disposed more near client system 120 (e.g., on a same LAN, geographically more near, etc.) than is server system 110 and latency may be reduced as discussed above.
(35) It should be appreciated that the concepts herein are not limited in applicability to the exemplary postage indicia generation processing. For example, embodiments of the present invention may be implemented with respect to client server services implementing amortization tables, tax rate tables, regulations, etc. Similarly, the concepts herein are not limited in applicability to the exemplary postal items. For example, embodiments of the present invention may be implemented with respect to items transported by services such as Federal Express, United Parcel Service, trucking services, rail services, air carrier services, etc.
(36) Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.