Abstract:
A method and system assists a consumer in selecting and purchasing internet services through a computer based communication system. The method and system provides an internet user real-time pricing and service quotes for internet services through the use of XML documents sent via HTTP Post.

Description:
FIELD OF INVENTION  
       [0001]     The invention concerns a method and system for assisting a consumer, i.e., an internet user, in selecting and purchasing internet services through a real-time computer based communication system. The method and system of the invention provides an internet user real-time pricing and other service quotes for internet services.  
       BACKGROUND OF THE INVENTION  
       [0002]     On-line shopping is quickly becoming the preferred means for obtaining consumer products and services. Consumers are increasingly using the Internet to browse, comparison shop and order products on-line.  
         [0003]     Online shopping systems have made product information such as pricing and availability readily available to consumers. Online shopping systems also facilitate the location and purchasing of desired products at a lower cost and with added convenience. For example, United States Patent Application Publication U.S. 2002/0174019 discloses a method wherein a consumer can request price quotes for tires from area retail dealers, and then later receive a quote directly from the dealer. Such systems, however, are not real time responsive.  
         [0004]     For a limited number of goods and services, consumers may obtain real-time price quotes and offers. U.S. Pat. No. 6,711,495 discloses a method and apparatus for gathering vehicle information on a real time basis. Such systems are tightly integrated from the information request through the returning response steps.  
         [0005]     However, this approach is not possible for all information requests, especially when dealing with multiple, disparate vendor information sources or multiple, disparate requesting users. In an environment with different vendor information sources (carrier quoting systems and carrier databases) and different requesting users running on different client platforms, the request, analysis, and response procedure is not tightly integrated.  
         [0006]     Consider the selection and purchase of internet services by an ultimate end-user consumer who must either deal directly with plural internet carriers/vendors (which is time consuming and may be frustrating) or deals with an internet services co-ordination agent (reseller) who has relationships with the plural internet carriers and can verify which carriers provide the desired internet services in the end-user consumer&#39;s area.  
         [0007]     Although use of an internet services co-ordination agent saves the consumer time and effort, e.g., bandwidth pricing has remained a relatively time-consuming process. The nature and complexity of providing offers and price quotes for internet services prevented internet services co-ordination agents/companies from providing this information in a prompt and timely manner.  
         [0008]     The process was time consuming because the consumer provided service requests to an agent/reseller who, in turn, generally needed to access each carrier&#39;s (vendor&#39;s) extranet or other available data system in order to individually compile a quote for each carrier. The flow of information was generally from human-to-computer or human to human due to the disparate nature of the requesting process and the plural data systems that needed to interact. That is, the time between making a pricing request and receiving an offer from an internet service vendor would be delayed, for example, by over 45 minutes.  
         [0009]     In an environment of increased consumer expectations, such a delay was increasingly unacceptable to consumers.  
         [0010]     Bandwidth.com, a wholesaler and sales agent of internet services, developed a system in an effort to address this prior art shortcoming (see, K. Kennedy,  BANDWIDTH.COM TEAMS WITH VAR IN ONLINE PORTAL DEAL: Solution gives Insight Direct access to realtime quotes, order tracking , published by crn.com, Mar. 13, 2002).  
         [0011]     Further, Bandwidth.com constructed a website that provided online price quotes and offers for T1 and Fractional T1 internet service with an improved response time.  
       SUMMARY OF THE INVENTION  
       [0012]     To achieve more true real-time responses and thereby satisfy increasing consumer demands, the present invention provides an improved method and system that gives the consumer the ability to obtain real-time pricing and service quotes by flexibly interfacing with disparate user applications, for originating and requesting internet service quotes, and interfacing with vendor information/pricing applications providing information for making responsive offers to the users&#39; requests for service quotes.  
         [0013]     The present invention further enables consumers and users to obtain real-time price quotes, via an internet services co-ordination agent (reseller) from multiple bandwidth carriers (vendors) verified to provide service in the consumer&#39;s area.  
         [0014]     In particular, the present invention provides a real-time solution utilizing a user&#39;s computer or a user&#39;s client system to create a service request in the form of an Extensible Markup Language (XML) document that is sent as a hypertext transfer protocol Post (HTTP POST) request into a pricing/quoting system of the reseller.  
         [0015]     The present invention allows consumers and other users to obtain pricing and order internet related services in real time without the need for tight integration, e.g., limited to a single central website, e.g., bandwidth.com&#39;s website. Thus, the present invention provides a flexible system for interfacing with a reseller&#39;s pricing/quoting system.  
         [0016]     The present invention allows more convenient co-operation between an ultimate internet services end-user, an internet services co-ordination agent (reseller), and plural ultimate internet carriers/vendors.  
         [0017]     The user of the present invention can be both a consumer on its own behalf or a consumer that wants to market to others. The present invention enables the consumer, on its own behalf, to price and buy internet related services. Alternatively, the present invention enables the consumer that wants to market to others to price-and sell internet related services within their own computer applications and servers as a front end.  
         [0018]     In both cases, the present invention can do so by originating and sending into the pricing/quoting system the internet service request via the Extensible Markup Language (XML) document (via HTTP Post request). The present invention thereby eliminates the need for extensive programming to meet the strict integration requirements of the prior art.  
         [0019]     In view of these features, the present invention relates to a method and system that assists an internet user in selecting and purchasing internet services through a computer based communication system. The method and system provides a consumer real-time pricing and service quotes for internet services.  
         [0020]     The present invention further provides a real-time solution utilizing a user&#39;s computer or client system that interacts with a pricing request application to create an XML request that is delivered as an HTTP Post request to the internet pricing website or pricing application.  
         [0021]     Additional advantages and features of the present invention will become apparent from the subsequent description and claims taken in conjunction with the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWING FIGURES  
       [0022]      FIG. 1  exemplifies the real-time method and system of the present invention.  
         [0023]      FIG. 2  shows an example of the XML API method and system according to the present invention.  
         [0024]      FIG. 3  illustrates an example of the synchronous method of the XML API method and system of the present invention.  
         [0025]      FIG. 4  exemplifies the asynchronous method of the XML API method and system of the present invention. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0026]     The present invention provides real-time pricing for internet services that include, but are not limited to, Asymmetric Digital Subscriber Line (ADSL), Cable, Satellite, Symmetric Digital Subscriber Line (SDSL), Fractional T1, Full T1, N×T1, T3, fiber optic services, OC3, OC12, OC48, and Voice Over Internet Protocol (VOIP).  
         [0027]     Referring to  FIG. 1 , there is illustrated an overview of the real-time method and system of the present invention.  
         [0028]     Real-time is a flexible term with respect to a given application and time response requirement. The present invention accommodates this flexibility as described further below. The actual time involved in providing a real-time price quote and offer may vary depending on the nature of the computer systems involved and timing decisions made by the requesting user.  
         [0029]     In the present invention, a real-time price quote and offer for internet services can be delivered to an internet user anywhere from near zero seconds to about twenty minutes. In preferred embodiments, a real-time price quote and offer for internet services can be delivered to an internet user within about 15 minutes, within about 10 minutes, or within about 5 minutes. Most preferably, the invention responds with a quote offer within about 120 seconds; still more preferably within about 45 seconds and within about 30 seconds. Embodiments responding within about 15 seconds, within about 10 seconds, and within about 5 seconds may also be configured.  
         [0030]     The term “Customer” is used herein interchangeably with the term “Consumer” or “User”. The terms Customer and User encompass any individual, group, business, system, entity or entities which are interested in obtaining at least one price quote and offer for an internet service.  
         [0031]     The customer initiates an internet services request via a User Service Request Application  10 . The user can initiate a request for internet services from a computer system hosting the User Service Request Application or via a network (website) link to a remote computer hosting the User Service Request Application  10 . As used herein, a computer system is a programmable electronic machine for processing information. The user, in typical embodiments, begins by inputting the type of internet service required, street address, city, state, zip code, and telephone number into an input screen provided by the User Service Request Application. This request information is sent by the user for processing, i.e., as a properly formatted XML document via an HTTP Post to a Pricing Request Application  30  (See XML 1  of  FIG. 1 ).  
         [0032]     The Pricing Request Application  30  may reside on a server. A server is defined as at least one computer or device on a network that manages network resources. The server operates under direction of at least one software module, e.g., the Pricing Request Application  30  directing the server to review an address database  60  to verify the accuracy of the request&#39;s telephone number, verify the city, state and zip code.  
         [0033]     Another software module of the Pricing Request Application can also direct the server to provide a number of other preliminary tasks. For example, a software module can also direct the server to calculate the straight-line distance between the located central office and a user&#39;s location.  
         [0034]     The Pricing Request Application interfaces (see XML 2  of  FIG. 1 ) with a Pricing System  40  which may reside on the same server as the Pricing Request Application  30 . The Pricing Request Application may direct the server to determine which internet service vendors  50  in the user&#39;s location provide the type of internet service requested by the user. Then the Pricing System formulates and transmits an internet service pricing request (a solicitation) to each of the identified vendors  50 . Alternatively, the solicitations can be sent to all vendors, and then based on vendor responses; the Pricing System determines availability of service (See step  240 - 250  of  FIG. 2 ). The information required by each vendor will vary from vendor to vendor and thus the solicitations must be in a format suitable for each vendor.  
         [0035]     As a result, each vendor may receive an internet service pricing request that is unique. That is, each internet service pricing request is specially formatted in to a solicitation for internet services to a particular vendor&#39;s format needs. As the requirements of each vendor system may vary, each vendor system typically requires a different format.  
         [0036]     Vendor system access methods include but are not limited to website screen scraping, XML via HTTP POST, and web services (e.g., Simple Object Access Protocol [SOAP] protocol). For some internet services, the information can be stored on a local database and accessed locally; that is, on the same server as hosting the Pricing System  40 .  
         [0037]     Screen scraping is a particularly useful way to obtain data from the vendors, particularly since the response from some vendor&#39;s extranets will be in the form of a web page which includes various extraneous data and screen scraping allows the extraction of only the needed information. A software module within the Pricing System will also include any necessary passwords or other identifiers required by each vendor such as vendor logos or other information.  
         [0038]     After the internet service pricing request solicitations are generated and sent to each of the identified vendors, the Pricing System simultaneously is set to receive proposals from each of the vendors. Once again, the format and information contained in each proposal varies from each of the vendors. The Pricing system is configured to handle each proposal in an appropriate manner. The Pricing System, as the proposals are received, will compile all of the service and price offer summary responses in an easily-readable format for the user. Data may be stored and accessed from a Pricing Support Database  70 .  
         [0039]     With reference to  FIG. 1 , the Pricing System  40 , responsive to the solicitations, receives internet service proposals from the internet vendors  50 . The received proposals comprise data regarding characteristics of offered internet services and pricing for the offered internet services such as locations served and costs. As mentioned above, the Pricing System  40  collates the data from the received proposals into a service and price offer summary in which disparate characteristics of offered internet services are grouped into groupings of comparable characteristics. For example, T1 offers, ADSL offers, and cable offers with comparable characteristics are grouped together in ascending price order.  
         [0040]     The Pricing System  40  thereafter returns (XML 3 ) the service and price offer summary to the Pricing Request Application  30  for further forwarding (XML 4 ) to the User Service Request Application  10 . XML 4  results from the Pricing Request Application  30 , after receiving the service and price offer summary, reformatting the service and price offer summary into a returned XML document readable by the User Service Request Application  10  for presenting the service and price offer summary to the user as a real-time response to the user&#39;s sent pricing request.  
         [0041]     Again referring to  FIG. 1 , a user accesses a User Service Request Application  10  which may be a dedicated coded application running on the user&#39;s PC or a website accessed via a web browser, the website running remote from the user&#39;s PC. As discussed, the User Service Request Application  10  allows a customer to obtain a real-time service and price offer summary responsive to the user-originated internet service pricing request. The customer may be the user or an agent for a consumer or customer, for example a business that runs the website embodiment of the User Service Request Application.  
         [0042]     The user may initiate and construct a pricing request for internet services by completing a request form generated by the User Service Request Application  10 . The internet services pricing request is output from the User Service Request Application (XML 1 ) in the form of a properly formatted XML document.  
         [0043]     The internet services pricing request in the form of the XML document is then forwarded to the Pricing Request Application  30  as an HTTP Post request (XML 1 ). The Pricing Request Application  30 , after receiving the pricing request, reformats the received internet pricing request into an output XML document (XML 2 ). The output XML document is forwarded to the Pricing System  40  again as an HTTP Post request.  
         [0044]     The Pricing System  40  formats the data from the received output XML document into multiple solicitations for internet services. The solicitations are forwarded to the appropriate internet service vendors, or to all vendors, as desired. For example, if the user requests a price and offer for T1 service, the solicitations will be forwarded to vendors that offer that service or to all vendors to see who offers T1 at the user&#39;s location. As the system requirements of each vendor may vary, each solicitation is formatted in a manner so that it is acceptable to at least one of a plurality of vendors  50 .  
         [0045]     The Pricing System  40  receives, responsive to the solicitations, internet service proposals from the multiple internet vendors  50 . The received proposals contain data that describes the nature and type of internet service offered by each vendor  50  in response to the solicitation.  
         [0046]     The Pricing System  40  obtains and collates the data from the received proposals into the service and price offer summary in which the characteristics of the offered internet services from the vendors  50  are grouped into groupings of comparable characteristics of offered internet services.  
         [0047]     The Pricing System  40  delivers the service and price offer summary in the form of an XML document (XML 3 ) to the Pricing Request Application  30  for forwarding as a response (XML 4 ) to the User Service Request Application  10 . The Pricing Request Application  30 , after receiving the service and price offer summary as the XML 3  document, reformats the service and price offer summary into the XML document XML 4 , which is delivered to the User Service Request Application  10 . XML 4  serves as a real-time response to the user&#39;s sent internet service pricing request that may be presented to the user as a screen of the User Service Request Application  10 .  
         [0048]     Keeping  FIG. 1  in mind,  FIG. 2  shows a further embodiment of the present invention. The request for internet services is sent via an HTTP POST prequalification request in step  210  to the Pricing Request Application  30 . The request, as extracted from XML 1 , is then analyzed to determine if the address is valid in step  220 . If the address is not valid, a return error is delivered to the requesting system in step  215 . If the address is valid, the request is further processed by the Pricing Request Application  30  to construct and deliver the pricing request to the Pricing System  40  in step  240 .  
         [0049]     Thus, the XML 1  HTTP POST request is sent to the Pricing Request Application  30  for the purposes of i) validation and ii) formatting. The HTTP Post is processed from the format provided by the User Service Request Application  10  (a general client application transmitting a general XML document) to another XML document XML 2  in a format acceptable to the Pricing System  40 , i.e., including application data required by the Pricing System  40 .  
         [0050]     Similarly, as each vendor  50  may require that the solicitation request be formatted in a different manner, the Pricing System  40  in step  240  formats the request so that the request can be forwarded to a plurality of internet service vendors  50  in step  250 . The availability of service and price is determined by each vendor and a response from each vendor, in the form of an internet service proposal, is returned to the Pricing System  40  in step  260 .  
         [0051]     Each internet service proposal contains data which characterizes the price and services offered by the vendor, see step  250 . The Pricing System  40  extracts and collates all of the internet service proposals received from the vendors so that disparate characteristics of the offered internet services are categorized into groupings of comparable characteristics, e.g., service offerings.  
         [0052]     The Pricing System  40  delivers the collated data and internet service proposals in the form of a service and price offer summary to the Pricing Request Application  30  in step  260  by way of XML 3 . The Pricing Request Application  30  in step  270  delivers by XML 4  the service and price offer summary to the user as a real-time response to the user&#39;s request for internet services. That is, XML 4  is sent to the User Service Request Application  10  for presentation to the user.  
         [0053]      FIG. 3  shows an XML API process flow of the present invention utilizing a synchronous method. In the synchronous method, the client system creates a request for pricing in step  300  (XML 1 ); sending XML 1  to the Pricing Request Application in step  310 . After sending the request XML 1 , the User Service Request Application  10  stays connected to the Pricing Request Application (an XML API system) until the results are returned. This is not an indefinite wait, but rather may be user selectable. The user prescribes the amount of time that they are willing to wait. That is, a wait time is set within the User Service Request Application  10 . Any results not returned in that amount of time are not returned to the User Service Request Application  10 .  
         [0054]     Upon receiving the XML 1  request from a user&#39;s system in step  312  via HTTP Post, the request is reviewed to assure that the request is complete and correct. If the request is incorrect or incomplete, an error message is returned to the user&#39;s system by step  314  (i.e., to the User Service Request Application  10 ). If the request is complete and correct, the address is reviewed to determine whether it is valid in step  316 . If address is not valid (step  320 ), an error message is returned to the user&#39;s system (step  318 ).  
         [0055]     If the address is valid (step  320 ), the request is further processed in the Pricing Request Application to construct and send the XML 2  request for internet services to the Pricing System  40  (step  330 ). The pricing system (step  330 ) formats the data so that the availability of service and price for an internet service can be determined from among the multiple vendors  50  (during step  350 ) after sending in step  340 .  
         [0056]     An internet service proposal is generated from each vendor system in step  350 . Each internet service proposal contains disparate data which characterizes the price and services offered by the vendor. The Pricing System in step  360  receives the proposals, extracts and collates data from all of the internet service proposals received from the vendors (step  360 ) so that disparate characteristics of the offered internet services are categorized into groupings of comparable characteristics.  
         [0057]     The Pricing System  40  delivers the collated data and internet service proposals in the form of a service and cost offer summary as XML 3  to the Pricing Request Application (in step  360 ). The Pricing Request Application  30  may write the received summary results to local databases for persistence (see step  364 ). The Pricing Request Application  30  delivers the service and price offer summary as XML 4  to the User Service Request Application as a real-time response (step  370 ) to complete the process (step  380 ) by displaying that offer summary to the user.  
         [0058]      FIG. 4  shows an XML API process flow of the present invention by way of an asynchronous method. As to the asynchronous method, the user generates XML 1  from the user&#39;s system (step  400 ). The XML 1  request is sent via an HTTP POST (step  410 ) to the Pricing Request Application  30 . The request is first reviewed to make sure that it is complete and correct (step  416 ) and to assure that the address is valid (step  420 ). Of course if either of these incomplete, incorrect, or invalid, an error message is returned to the client (step  418 ); to the User Service Request Application  10 .  
         [0059]     However, as opposed to a synchronous XML API method exemplified in  FIG. 3 , a tracking ID is created so that the User Service Request Application can retrieve results at a later time and the user request is complete for the time being (step  422 ).  
         [0060]     The User Service Request Application in step  400  can return to the Pricing Request Application  30  at a later time to retrieve the requested information. Typically, the return for the requested information is after about 30 seconds. Two calls to the Pricing Request Application are required to accomplish the same result as one synchronous request, due to the needed return call and reconnection. However, by using two calls, system resources are conserved both at the user&#39;s PC and XML API systems of the Pricing Request Application  30  while the processing of the Pricing System and vendor systems are occurring.  
         [0061]     After the tracking ID is created, the request is processed via the Pricing Request Application  30  to construct and send a request for internet services to the Pricing System (step  430 ). The Pricing System (step  440 ) formats the data so that the availability of service and price for an internet service can be determined from among multiple vendors ( 450 ) via solicitations.  
         [0062]     An internet service proposal is generated by each vendor system (step  450 ). Each internet service proposals together contain disparate data which characterizes the price and services offered by the vendor (step  450 ). The Pricing System (step  460 ) collates all of the internet service proposals received from the vendors (at step  450 ) so that disparate characteristics of the offered internet services are categorized. The collated data and internet service proposals are in the form of a service and cost offer summary, and are sent to the Pricing Request Application  30  as XML 3  in the form of an XML document (step  460 ). The Pricing Request Application writes the results to local database  80  for persistence (step  470 ).  
         [0063]     As to the retrieval of information at a later time, the User Service Request Application  10  creates an additional XML request to retrieve the results (step  482 ); that is a second, renewed XML 1 . This renewed request is sent via an HTTP POST from the user system  10  again to the Pricing Request System  30 . Again, the request is reviewed to make sure that it is complete and correct (step  486 ). However, the tracking ID that was previously generated (step  422 ) is checked to make sure that it is valid (step  492 ). If either the request is not proper (i.e. complete and correct), or if the ID is invalid, an error message is returned (step  488 ).  
         [0064]     If the ID is valid and the request is proper, the offer results are retrieved from database  80  that previously stored this information and then constructs a response in the form of a service and price offer summary XML 4  (step  494 ).