# Patent

## Title
Methods, systems, and products for providing communications services

## Abstract

Methods, systems, and products are disclosed for providing communications services. One method receives a request for communications service. The request for communications service originates from a client communications device associated with a user and requests communications service from a service provider. An availability of at least one of i) a communications network operated by the service provider and ii) another communications network operated by another service provider is dynamically assessed in real-time. A best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data is assessed to fulfill the request. The best-value scenario maximizes profitability for the service provider. The communications service is provided to fulfill the request according to the best-value scenario.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. application Ser. No. 10/720,587, filed Nov. 24, 2003, now issued as U.S. Pat. No. 7,464,179, and incorporated herein by reference in its entirety.


NOTICE OF COPYRIGHT PROTECTION
A portion of the disclosure of this patent document and its figures contain material subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, but otherwise reserves all copyrights whatsoever.
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention generally relates to computers and to communications and, more particularly, to processing data in a communications network.
2. Description of the Related Art
Manipulation of electronic data is important in computer networking and in communications. Often times electronic data must be manipulated for presentation at a client communications device. That is, the electronic data must be changed, formatted, or altered to suit the display characteristics, processing abilities, and/or storage capabilities of the client communications device. A handheld personal data assistant, for example, often requires that bandwidth-intensive electronic data, such as on-demand video, be scaled, color corrected, and/or otherwise manipulated for optimum presentation on the small display of the handheld personal data assistant. Heretofore, however, manipulation of electronic data was usually the responsibility of the client communications device—that is, the client communications device stores and utilizes one or more computer programs to manipulate incoming electronic data for presentation on the client communications device.
Locally manipulating electronic data, however, poses problems. As the electronic data is received, the client communications device must store the electronic data, process/manipulate the electronic data, and present the manipulated electronic data to the user. This process of storing, manipulating, and/or presenting the electronic data, however, often taxes the limited processing and storage capabilities of the client communications device. As both those skilled and unskilled recognize, when the processing and/or storage capabilities of the client communications device are overwhelmed, the audio/video presentation may “stumble” and degrade the user experience. Sometimes the client communications device even experiences a fault or failure when the processing and/or storage capabilities are overwhelmed. There is, accordingly, a need in the art for methods and systems of manipulating electronic data that reduce the need for locally-stored computer programs and that reduce the need for local processing requirements.
BRIEF SUMMARY OF THE INVENTION
The aforementioned problems, and other problems, are reduced by a Analysis Module. This Analysis Module comprises methods, computer systems, computer programs, and computer program products that provide communications services. Each time a user requests communications service, the Analysis Module analyzes the available communications networks and their available network routing and bandwidth. This invention then determines a best-value scenario for providing the user's requested communications service. The term “best-value scenario,” as used herein, means the Analysis Module strives to maximize profit for a service provider given one or more constraints when providing the user's requested communications service. The term “best-value scenario,” for example, might mean the lowest cost routing arrangement. The term “best-value scenario,” however, might also mean the maximum profitability for the service provider and/or network operator. The term “best-value scenario” could also mean maximizing profit while still satisfying a Service Level Agreement. Once the best-value scenario is ascertained, the service provider provides the requested communications service according to the best-value scenario.
This invention discloses methods, systems, and products for providing communications services. One of the embodiments describes a method for providing communications services. This method receives a request for communications service. The request for communications service originates from a client communications device associated with a user and requests communications service from a service provider. An availability of at least one of i) a communications network operated by the service provider and ii) another communications network operated by another service provider is dynamically assessed in real-time. A best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data is assessed to fulfill the request. The best-value scenario maximizes profitability for the service provider. The communications service is provided to fulfill the request according to the best-value scenario.
Other embodiments of this invention describe a system for providing communications services. The system includes a Analysis Module stored in a memory device, and a processor communicates with the memory device. The Analysis Module receives a request for communications service. The request for communications service originates from a client communications device associated with a user, and the request for communications service requests communications service from a service provider. The Analysis Module dynamically assesses in real-time an availability of at least one of i) a communications network operated by the service provider and ii) another communications network operated by another service provider. The Analysis Module ascertains a best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data to fulfill the request, with the best-value scenario maximizing profitability for the service provider. The communications service is then provided to fulfill the request, and the communications service is provided according to the best-value scenario.
Other embodiments of this invention describe a computer program product. A computer-readable medium stores a Analysis Module. The Analysis Module receives a request for communications service. The request for communications service originates from a client communications device associated with a user, and the request for communications service requests communications service from a service provider. The Analysis Module dynamically assesses in real-time an availability of at least one of i) a communications network operated by the service provider and ii) another communications network operated by another service provider. The Analysis Module ascertains a best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data to fulfill the request, with the best-value scenario maximizing profitability for the service provider. The communications service is then provided to fulfill the request, and the communications service is provided according to the best-value scenario.
Other systems, methods, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional systems, methods, and/or computer program products be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.



BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
These and other features, aspects, and advantages of the embodiments of the present invention are better understood when the following Detailed Description of the Invention is read with reference to the accompanying drawings, wherein:
FIG. 1 is a schematic illustrating a Analysis Module operating within a communications network, according to one of the embodiments of this invention;
FIGS. 2-4 are schematics illustrating an assessment of routing availability and bandwidth, according to more embodiments of this invention;
FIG. 5 is a schematic illustrating a response, according to still more embodiments of this invention;
FIG. 6 is a schematic illustrating a reservation, according to one of the embodiments of this invention;
FIG. 7 is a schematic illustrating fulfillment of a request for communications service, according to another of the embodiments of this invention; and
FIGS. 8 and 9 are flowcharts illustrating a method of providing communications service.



DETAILED DESCRIPTION OF THE INVENTION
This invention now will be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. These embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope of the invention to those of ordinary skill in the art. Moreover, all statements herein reciting embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
Thus, for example, it will be appreciated by those of ordinary skill in the art that the diagrams, schematics, illustrations, and the like represent conceptual views or processes illustrating systems and methods embodying this invention. The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing associated software. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the entity implementing this invention. Those of ordinary skill in the art further understand that the exemplary hardware, software, processes, methods, and/or operating systems described herein are for illustrative purposes and, thus, are not intended to be limited to any particular named manufacturer.
FIGS. 1-7 are schematics illustrating one of the embodiments of this invention. FIG. 1 shows a Analysis Module 20 operating within a communications network 22. This communications network 22 represents just one of the possible operating environments for the Analysis Module 20. The Analysis Module 20 is stored within memory 24 of a computer device 26, such as a service provider's computer server 28 communicating with the communications network 22. Each time a client communications device 30 requires communications service, the Analysis Module 20 receives a request 32 for communications service from the client communications device 30. The request 32 for communications service requests communications service via the communications network 22.
The client communications device 30 sends and receives data. When the client communications device 30 requires communications service, the term “communications service” means the client communications device 30 requests a data upload and/or a data download via a communications network. The term “data” includes electronic information, such as, for example, facsimile, electronic mail (e-mail), text, video, audio, and/or voice in a variety of formats, such as dual tone multi-frequency, digital, analog, and/or others. Additionally, the data may include: (1) executable programs, such as a software application, (2) an address, location, and/or other identifier of the storage location for the data, (3) integrated or otherwise combined files, and/or (4) profiles associated with configuration, authenticity, security, and others. The client communications device 30 may include any computer/communications device utilizing a microprocessor and/or a digital signal processor. The client communications device 30 may include, for example, a computer (laptop, desktop, tablet, server, and other computer systems), a personal digital assistant (PDA), a Global Positioning System (GPS) device, an interactive television, an Internet Protocol (IP) phone, a pager, and/or a cellular/satellite phone.
The Analysis Module 20 receives the request 32 for communications service. The client communications device 30 communicates the request 32 for communications service to the computer server 28, and thus the Analysis Module 20, via the communications network 22. The request 32 for communications service requests communications service from a service provider of the communications network 22. As the following figures illustrate, the Analysis Module 20 then determines a best-value scenario for providing the requested communications service. The term “best-value scenario,” as used herein, means the Analysis Module 20 strives to maximize profit for the service provider given one or more constraints when providing the requested communications service. The term “best-value scenario,” for example, might mean the lowest cost routing arrangement. The term “best-value scenario,” however, might also mean a maximum profitability for the service provider and/or network operator. The term “best-value scenario” could also mean maximizing profit while still satisfying a Service Level Agreement. Once the best-value scenario is ascertained, the requested communications service is provided according to the best-value scenario.
FIG. 2 illustrates an assessment of routing availability and bandwidth. When the computer server 28 receives the request for communications service (shown as reference numeral 32 in FIG. 1), the Analysis Module 20 analyzes the request and determines what data is requested. The Analysis Module 20 then dynamically, and in real-time, assesses an availability of the communications network 22 operated by the service provider. The Analysis Module 20 also dynamically, and in real-time, assesses an availability of other communications networks operated by other service providers. The Analysis Module 20 determines the best-value scenario for fulfilling the request for data, even if another service provider's communications network is more profitable.
As FIGS. 2-4 show, the Analysis Module 20 interrogates other service providers' communications networks. The Analysis Module 20 dynamically, and in real-time, assesses an availability of other communications networks operated by other service providers. If another service provider can provide the requested communications service for a cheaper price, a higher performance, or some other criteria, then the Analysis Module 20 may determine that it's more profitable and/or more advantageous to “subcontract” some or all of the requested communications service. The Analysis Module 20 communicates an interrogation 34 to the other service providers of the other communications networks. The interrogation 34 describes what data is requested, and the interrogation 34 includes any parameters for fulfilling the request for communications (shown as reference numeral 32 in FIG. 1). The interrogation also solicits the other service provider's available network routing, available bandwidth, and pricing. The Analysis Module 20, for example, sends the interrogation 34 to a wireline network 36 and/or a data network 38. The wireline network 36 is operated by another service provider and interfaces with the Public Switched Telephone Network 38. The data network 38 may also be operated by another service provider, and the data network 38 may interface with the Public Switched Telephone Network 38.
FIG. 3 shows that other interrogations 34 may be sent. The Analysis Module 20 may send the interrogation 34 to one or more wireless networks operated by other service providers. The Analysis Module 20, for example, sends the interrogation 34 to a GSM cellular network 40, a CDMA cellular network 42, a TDMA cellular network 44, and a GSM/CDMA/TDMA interoperating network 46. As those of ordinary skill in the art recognize, the GSM cellular network 40 operates using the Global System for Mobile (GSM) communications technology standard, the CDMA cellular network 42 operates using a Code Division Multiple Access (CDMA) communications technology standard, and the TDMA cellular network 44 operates using a Time Division Multiple Access (TDMA) communications technology standard. Those of ordinary skill in the art also recognize that the GSM/CDMA/TDMA interoperating network 46 may operate using a GSM-ANSI Interoperability Team (GAIT) communications technology standard, a combination CDMA/GSM technology standard, and/or a combination TDMA/CDMA technology standard.
As FIG. 4 shows, still more interrogations 34 may be sent. The Analysis Module 20 may send the interrogation 34 to even more wireless networks. These wireless networks may also include an I.E.E.E. 802 wireless network 48, an RF wireless network 50, an ISM wireless network 52, an IR wireless network 54, and another wireless network 56 using another portion of the electromagnetic spectrum. The I.E.E.E. 802 wireless network 48 utilizes any of the I.E.E.E 802 family of wireless technology standards. The RF wireless network 50 uses the radio frequency (RF) portion of the electromagnetic spectrum, the ISM wireless network 52 uses the Industrial, Scientific, and Medical (ISM) band of the electromagnetic spectrum, the IR wireless network 54 uses the infrared (IR) portion of the electromagnetic spectrum, and the another wireless network 56 utilizes any other portion/frequency within the electromagnetic spectrum.
Each service provider then evaluates their available network routing, available bandwidth, and pricing. When each service provider receives the interrogation 34, each service provider determines whether the service provider can fulfill the user's request for communications (shown as reference numeral 32 in FIG. 1). The service provider utilizes various commands, queries, tactics, and instructions for assessing the availability of routing and bandwidth. The service provider, for example, may send addressable “ping” packets throughout their communications network. The elapsed travel time for the addressable “ping” packets helps determine response times, network congestion, and/or bandwidth. The service provider may also utilize UNIX/LINUX “trace” commands or tracing features to monitor packet activity within computer devices and within their communications network. Each service provider may also utilize software routines to help assess the availability of routing and bandwidth. These software routines autonomously monitor activity within specified path(s), regions, computer devices, and/or the entire communications network. The service provider may also utilize allocation tables and/or routines to help assess the availability of routing and bandwidth. These allocation tables and/or routines contain relationships, preferences, and/or designations for various network routing paths and/or various computer devices. The allocation tables and/or routines identify, or even mandate, circumstances when certain routings or certain computer devices are required.
FIG. 5 is a schematic illustrating a response 58. When each service provider of each communications network receives the interrogation 34, each service provider evaluates their available network routing, available bandwidth, and pricing. Those service providers having available routing and bandwidth return communicate the response 58. The response 58 includes available network routing, available bandwidth, and pricing for each responding service provider. FIG. 5 shows the Analysis Module 20 receiving/gathering each submitted response 58. The Analysis Module 20 evaluates each response 58 and ascertains a best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data to fulfill the request. The best-value scenario maximizes profitability for the service provider. That is, the best-value scenario may simply be a lowest-cost scenario for providing the communications service. The best-value scenario, however, may alternatively or additionally include a lowest-cost scenario for formatting the electronic data according to a processing, storage, and/or audio/display characteristic of the client communications device (shown as reference numeral 30 in FIG. 1). The Analysis Module 20 ascertains the best-value scenario by utilizing any single communications network, regardless of the service provider. The Analysis Module 20 may also ascertain that the best-value scenario includes a combination of multiple communications networks operated by other service providers.
The best-value scenario may reflect a Service Level Agreement 60. As FIG. 5 illustrates, if a Service Level Agreement defines parameters for the user's requested communications service, the Analysis Module 20 retrieves the Service Level Agreement 60 from a database 62 of Service Level Agreements (SLA). The Analysis Module 20 then ascertains the best-value scenario that maximizing profitability for one or more service providers while still satisfying the Service Level Agreement 60.
FIG. 6 is a schematic illustrating one or more reservations 64. Once the Analysis Module 20 assesses the best-value scenario, the Analysis Module 20 may then “reserve” routing paths and/or computer devices. The Analysis Module 20 issues one or more addressable reservations 64 to help ensure the best-value scenario is accomplished. Each reservation 64 instructs a networked computer device to anticipate, and perhaps only accept, packets of data destined for the reserved paths and/or computer devices. Each reservation 64 may instruct networked computer devices to anticipate, and perhaps only accept, packets having recognized header information and/or packet content. Each reservation 64 may also include a chronology component that specifies a “window” within which the reserved packets must be received, processed, and/or communicated. Packets arriving outside this window may not receive preferential access/routing and would be queued according to more conventional strategies (e.g., sequential, first in-first out, chronological). Because the Analysis Module 20 issues one or more of the addressable reservations 64, the Analysis Module 20 is able to reduce/avoid packet infighting.
Now that the best-value scenario is ascertained, FIG. 7 shows the fulfillment of the request. The Analysis Module 20 has analyzed the request for communications service (shown as reference numeral 32 in FIG. 1), determined what data is requested, and solicited routing and bandwidth availability from competing service providers. The Analysis Module 20 then ascertained a best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data to fulfill the request for communications service. The Analysis Module 20 now provides the communications service 66 to fulfill the request, and the communications service 66 is provided according to the best-value scenario. As FIG. 7 illustrates, the communications service 66 may be provided by utilizing any single communications network and/or by utilizing multiple communications networks. If multiple communications networks are utilized, the multiple communications networks may be operated by a single service provider, or the multiple communications networks may be operated by multiple service providers. The best-value scenario may be provided by any combination of one or more wireline networks and/or one or more wireless networks.
FIG. 8 is a flowchart illustrating a method of providing communications services. A request for communications service is received (Block 68). The request for communications service originates from a client communications device associated with a user. The request for communications service requests communications service from a service provider. An availability of at least one of i) a communications network operated by the service provider, and ii) another communications network operated by another service provider, is dynamically assessed in real-time (Block 70). The availability of network routing (Block 72) and/or the availability of network bandwidth (Block 74) may be assessed. A best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data is ascertained to fulfill the request (Block 76). The best-value scenario maximizes profitability for the service provider. The best-value scenario may ascertain a lowest-cost scenario for providing the communications service (Block 78). The best-value scenario may ascertain a lowest-cost scenario for formatting the electronic data according to a characteristic of the client communications device (Block 80).
The flowchart continues with FIG. 9. If a Service Level Agreement (SLA) defines the communications service (Block 82), then the Service Level Agreement is accessed (Block 84) and the best-value scenario maximizes profitability for the service provider while satisfying the Service Level Agreement (Block 86). The best-value scenario may utilize any single communications network (Block 88) or utilize multiple communications networks (Block 90). If multiple communications networks are utilized, the multiple communications networks may be operated by a single service provider (Block 92), or the multiple communications networks may be operated by multiple service providers (Block 94). The best-value scenario may be provided by any combination of one or more wireline networks and/or one or more wireless networks (Block 96). The communications service is provided to fulfill the request (Block 98), and the communications service is provided according to the best-value scenario.
The Analysis Module (shown as reference numeral 20 in FIGS. 1-15) may be physically embodied on or in a non-transitory computer-readable medium. This computer-readable medium may include CD-ROM, DVD, tape, cassette, floppy disk, memory card, and large-capacity disk (such as IOMEGA®, ZIP®, JAZZ®, and other large-capacity memory products (IOMEGA®, ZIP®, and JAZZ® are registered trademarks of Iomega Corporation, 1821 W. Iomega Way, Roy, Utah 84067, 801.332.1000, www.iomega.com). This computer-readable medium, or media, could be distributed to end-users, licensees, and assignees. These types of computer-readable media, and other types not mention here but considered within the scope of the present invention, allow the Analysis Module to be easily disseminated. A computer program product for providing communications services includes the Analysis Module stored on the computer-readable medium. The Analysis Module receives a request for communications service. The request for communications service originates from a client communications device associated with a user, and the request for communications service requests communications service from a service provider. The Analysis Module dynamically assesses in real-time an availability of at least one of i) a communications network operated by the service provider and ii) another communications network operated by another service provider. The Analysis Module ascertains a best-value scenario of segmentation, dispersion, assemblage, and routing of electronic data to fulfill the request, with the best-value scenario maximizing profitability for the service provider. The communications service is then provided to fulfill the request, and the communications service is provided according to the best-value scenario.
The Analysis Module may also be physically embodied on or in any addressable (e.g., HTTP, I.E.E.E. 802.11, Wireless Application Protocol (WAP)) wireless device capable of presenting an IP address. Examples could include a computer, a wireless personal digital assistant (PDA), an Internet Protocol mobile phone, or a wireless pager.
While the present invention has been described with respect to various features, aspects, and embodiments, those skilled and unskilled in the art will recognize the invention is not so limited. Other variations, modifications, and alternative embodiments may be made without departing from the spirit and scope of the present invention.

## Claims

1. A method of providing communications services, comprising: receiving a request for communications service from a service provider that originates from a client communications device; determining whether a subcontracted processing service from another service provider is required to fulfill the request; subcontracting packets of data to the another service provider to receive the subcontracted processing service; receiving a result of the subcontracted processing service from the another service provider; and providing the communications service to fulfill the request.

2. The method according to claim 1, further comprising interrogating a different service provider to fulfill the subcontracted processing service.

3. The method according to claim 1, further comprising assessing an availability of a communications network to fulfill the request.

4. The method according to claim 1, further comprising grouping together individual packets of data that require the subcontracted processing service.

5. The method according to claim 1, further comprising grouping the packets of data as a segment.

6. The method according to claim 5, further comprising routing the segment to receive the subcontracted processing service.

7. The method according to claim 1, further comprising determining that the subcontracted processing service is more profitable.

8. The method according to claim 1, further comprising determining that the subcontracted processing service provides higher performance.

9. The method according to claim 1, further comprising determining that the subcontracted processing service satisfies a criterion.

10. The method according to claim 1, wherein subcontracting the packets of data comprises sending the packets of data to another service provider to receive the subcontracted processing service.

11. The method according to claim 1, wherein subcontracting the packets of data comprises sending the packets of data to another communications network to receive the subcontracted processing service.

12. The method according to claim 1, further comprising ascertaining a routing scenario that maximizes profitability.

13. The method according to claim 1, further comprising querying for a service level agreement.

14. The method according to claim 13, further comprising ascertaining a routing scenario that satisfies the service level agreement and that maximizes profitability.

15. The method according to claim 1, further comprising determining a subcontracted color correction service is required.

16. The method according to claim 1, further comprising determining a subcontracted scaling service is required.

17. The method according to claim 1, further comprising reserving a routing path to receive the subcontracted processing service.

18. A system, comprising:
a processor executing code stored in memory, the code causing the processor to: receive a request for communications service from a service provider that originates from a client communications device; determine whether a subcontracted processing service is required from another service provider to fulfill the request; group together packets of data requiring the subcontracted processing service; subcontract packets of data to the another service provider to receive the subcontracted processing service; receive a result of the subcontracted processing service from the another service provider; and provide the communications service to fulfill the request.

19. The system according to claim 18, wherein the code further causes the processor to: group the packets of data as a segment; and route the segment to receive the subcontracted processing service.

20. A non-transitory computer readable storage medium storing computer-readable instructions for performing a method of managing communications of a user, the method comprising: receiving a request for communications service from a service provider that originates at a client communications device that requests the communications service; determining whether a subcontracted processing service is required from another service provider to fulfill the request; grouping together packets of data requiring the subcontracted processing service; subcontracting the packets of data to receive the subcontracted processing service; receiving a result of the subcontracted processing service from the another service provider; and providing the communications service to fulfill the request.